From: Jim Grosbach Date: Fri, 20 Nov 2009 19:37:38 +0000 (+0000) Subject: The verify() call of CPEIsInRange() isn't right for the assertion check of X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a9562568e5c2a897e3a51b18700eeb70f0dda48c;p=oota-llvm.git The verify() call of CPEIsInRange() isn't right for the assertion check of constant pool ranges, as CPEIsInRange() makes conservative assumptions about the potential alignment changes from branch adjustments. The verification, on the other hand, runs after those branch adjustments are made, so the effects on alignment are known and already taken into account. The sanity check in verify should check the range directly instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89473 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMConstantIslandPass.cpp b/lib/Target/ARM/ARMConstantIslandPass.cpp index 1832909a29b..e59a315a483 100644 --- a/lib/Target/ARM/ARMConstantIslandPass.cpp +++ b/lib/Target/ARM/ARMConstantIslandPass.cpp @@ -244,12 +244,15 @@ void ARMConstantIslands::verify(MachineFunction &MF) { (BBOffsets[MBBId]%4 != 0 && BBSizes[MBBId]%4 != 0)); } } -#endif for (unsigned i = 0, e = CPUsers.size(); i != e; ++i) { CPUser &U = CPUsers[i]; unsigned UserOffset = GetOffsetOf(U.MI) + (isThumb ? 4 : 8); - assert (CPEIsInRange(U.MI, UserOffset, U.CPEMI, U.MaxDisp, U.NegOk, true)); + unsigned CPEOffset = GetOffsetOf(U.CPEMI); + unsigned Disp = UserOffset < CPEOffset ? CPEOffset - UserOffset : + UserOffset - CPEOffset; + assert(Disp <= U.MaxDisp || "Constant pool entry out of range!"); } +#endif } /// print block size and offset information - debugging