aboutsummaryrefslogtreecommitdiffstats
path: root/test/Transforms/LoopStrengthReduce
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
commitdae412bd320f1522bd1d850be0276212fca0331f (patch)
treeaddc865b66b7088f8f71d7839c70155a7dd1f55e /test/Transforms/LoopStrengthReduce
parent9cce24a257108ec50f65652d233b9ffadc691682 (diff)
downloadexternal_llvm-dae412bd320f1522bd1d850be0276212fca0331f.zip
external_llvm-dae412bd320f1522bd1d850be0276212fca0331f.tar.gz
external_llvm-dae412bd320f1522bd1d850be0276212fca0331f.tar.bz2
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> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147825 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LoopStrengthReduce')
0 files changed, 0 insertions, 0 deletions