mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-21 03:32:21 +00:00
Don't emit a redundant BitCastInst if the value to be defined in the
preheader is already an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74031 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6b96f6cfeb
commit
ea080be986
@ -1642,7 +1642,8 @@ void LoopStrengthReduce::StrengthReduceStridedIVUsers(const SCEV* const &Stride,
|
||||
// the preheader, instead of being forward substituted into the uses. We
|
||||
// do this by forcing a BitCast (noop cast) to be inserted into the
|
||||
// preheader in this case.
|
||||
if (!fitsInAddressMode(Base, getAccessType(Inst), TLI, false)) {
|
||||
if (!fitsInAddressMode(Base, getAccessType(Inst), TLI, false) &&
|
||||
!isa<Instruction>(BaseV)) {
|
||||
// We want this constant emitted into the preheader! This is just
|
||||
// using cast as a copy so BitCast (no-op cast) is appropriate
|
||||
BaseV = new BitCastInst(BaseV, BaseV->getType(), "preheaderinsert",
|
||||
|
Loading…
x
Reference in New Issue
Block a user