summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2016-05-05 18:38:53 +0000
committerTim Northover <tnorthover@apple.com>2016-05-05 18:38:53 +0000
commitdf43264cf7e716baa5e476a41d24c556d5acbd92 (patch)
tree291b30c782a9fd33f396dcc9ffc8b47fa7d74939 /llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp
parentf7a4bd40681dc729e0744ab7ad0d08b5ac136b2c (diff)
downloadbcm5719-llvm-df43264cf7e716baa5e476a41d24c556d5acbd92.tar.gz
bcm5719-llvm-df43264cf7e716baa5e476a41d24c556d5acbd92.zip
ARM: don't attempt to merge litpools referencing different PC-anchors.
Given something like: ldr r0, .LCPI0_0 (== pc-rel var) add r0, pc ldr r1, .LCPI0_1 (== pc-rel var) add r1, pc we cannot combine the 2 ldr instructions and litpools because they get added to a different pc to form the correct address. I think the original logic came from a time when we fused the LDRpci/PICADD instructions into one pseudo-instruction so the PC was always immediately at-hand. That's no longer the case. Should fix general-dynamic TLS access on Linux, and quite possibly other -fPIC code that relies on litpools (e.g. v6m and -Oz compilations) though trivial tweaks of the .ll test didn't provoke anything. llvm-svn: 268662
Diffstat (limited to 'llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud