aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ExecutionEngine/ExecutionEngine.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2014-12-02 23:13:39 +0000
committerTim Northover <tnorthover@apple.com>2014-12-02 23:13:39 +0000
commitec7ebebe558d42924784dc290d35284864d0088a (patch)
treea426d56a03c5074c8bf9ccfe4131433a922af122 /llvm/lib/ExecutionEngine/ExecutionEngine.cpp
parentea8327b80f357011a933e8a3f25df7fb556814cd (diff)
downloadllvm-ec7ebebe558d42924784dc290d35284864d0088a.zip
llvm-ec7ebebe558d42924784dc290d35284864d0088a.tar.gz
llvm-ec7ebebe558d42924784dc290d35284864d0088a.tar.bz2
AArch64: don't be too greedy when folding :lo12: accesses into mem ops.
This frequently leads to cases like: ldr xD, [xN, :lo12:var] add xA, xN, :lo12:var ldr xD, [xA, #8] where the ADD would have been needed anyway, and the two distinct addressing modes can prevent the formation of an ldp. Because of how we handle ADRP (aggressively forming an ADRP/ADD pseudo-inst at ISel time), this pattern also results in duplicated ADRP instructions (one on its own to cover the ldr, and one combined with the add). llvm-svn: 223172
Diffstat (limited to 'llvm/lib/ExecutionEngine/ExecutionEngine.cpp')
0 files changed, 0 insertions, 0 deletions