mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
add a fastpath to ConstantExpr::getBitCast to handle the case when an obviously
unneeded bitcast is requested. This is common for frontends who just unconditionally cast even if the target is often the right type already. THis prevents going into getFoldedCast which switches on the opcode and does a bunch of other stuff before doing the same opzn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67435 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
3ee87b6f9d
commit
8c7f24a36a
@ -1996,6 +1996,11 @@ Constant *ConstantExpr::getBitCast(Constant *C, const Type *DstTy) {
|
||||
unsigned DstBitSize = DstTy->getPrimitiveSizeInBits();
|
||||
#endif
|
||||
assert(SrcBitSize == DstBitSize && "BitCast requires types of same width");
|
||||
|
||||
// It is common to ask for a bitcast of a value to its own type, handle this
|
||||
// speedily.
|
||||
if (C->getType() == DstTy) return C;
|
||||
|
||||
return getFoldedCast(Instruction::BitCast, C, DstTy);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user