summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/PHIEliminationUtils.h
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-10 01:34:59 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-10 01:34:59 +0000
commitf09a3165421849db96c2847ed6c7d8c59fafdb49 (patch)
treed631832fa645be819f835e4c3f1e5d013bd5ae18 /llvm/lib/CodeGen/PHIEliminationUtils.h
parent0f8ee22655a824663a51cc1e3f1725a11043b5be (diff)
downloadbcm5719-llvm-f09a3165421849db96c2847ed6c7d8c59fafdb49.tar.gz
bcm5719-llvm-f09a3165421849db96c2847ed6c7d8c59fafdb49.zip
Accurately model hardware alignment rounding.
On Thumb, the displacement computation hardware uses the address of the current instruction rouned down to a multiple of 4. Include this rounding in the UserOffset we compute for each instruction. When inline asm is present, the instruction alignment may not be known. Constrain the maximum displacement instead in that case. This makes it possible for CreateNewWater() and OffsetIsInRange() to agree about the valid displacements. When they disagree, infinite looping happens. As always, test cases for this stuff are insane. <rdar://problem/10660175> llvm-svn: 147825
Diffstat (limited to 'llvm/lib/CodeGen/PHIEliminationUtils.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud