mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Move variable under condition where it is used
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@190567 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
b95237f10c
commit
180df81c8f
@ -586,12 +586,13 @@ static Constant *SymbolicallyEvaluateBinop(unsigned Opc, Constant *Op0,
|
|||||||
if (Opc == Instruction::Sub && DL) {
|
if (Opc == Instruction::Sub && DL) {
|
||||||
GlobalValue *GV1, *GV2;
|
GlobalValue *GV1, *GV2;
|
||||||
unsigned PtrSize = DL->getPointerSizeInBits();
|
unsigned PtrSize = DL->getPointerSizeInBits();
|
||||||
unsigned OpSize = DL->getTypeSizeInBits(Op0->getType());
|
|
||||||
APInt Offs1(PtrSize, 0), Offs2(PtrSize, 0);
|
APInt Offs1(PtrSize, 0), Offs2(PtrSize, 0);
|
||||||
|
|
||||||
if (IsConstantOffsetFromGlobal(Op0, GV1, Offs1, *DL))
|
if (IsConstantOffsetFromGlobal(Op0, GV1, Offs1, *DL))
|
||||||
if (IsConstantOffsetFromGlobal(Op1, GV2, Offs2, *DL) &&
|
if (IsConstantOffsetFromGlobal(Op1, GV2, Offs2, *DL) &&
|
||||||
GV1 == GV2) {
|
GV1 == GV2) {
|
||||||
|
unsigned OpSize = DL->getTypeSizeInBits(Op0->getType());
|
||||||
|
|
||||||
// (&GV+C1) - (&GV+C2) -> C1-C2, pointer arithmetic cannot overflow.
|
// (&GV+C1) - (&GV+C2) -> C1-C2, pointer arithmetic cannot overflow.
|
||||||
// PtrToInt may change the bitwidth so we have convert to the right size
|
// PtrToInt may change the bitwidth so we have convert to the right size
|
||||||
// first.
|
// first.
|
||||||
|
Loading…
Reference in New Issue
Block a user