summaryrefslogtreecommitdiffstats
path: root/llvm/lib/DebugInfo
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2015-02-25 21:36:59 +0000
committerHal Finkel <hfinkel@anl.gov>2015-02-25 21:36:59 +0000
commitcf5992167015fa7b7c084188acb97a7720cfb808 (patch)
tree9fdd74a3d9a79e5bd200b0575abeaa59b3087dfe /llvm/lib/DebugInfo
parent1d8b9c1b1f2d0d18d9e2e20f82ce7039644c1b33 (diff)
downloadbcm5719-llvm-cf5992167015fa7b7c084188acb97a7720cfb808.tar.gz
bcm5719-llvm-cf5992167015fa7b7c084188acb97a7720cfb808.zip
[PowerPC] Make LDtocL and friends invariant loads
LDtocL, and other loads that roughly correspond to the TOC_ENTRY SDAG node, represent loads from the TOC, which is invariant. As a result, these loads can be hoisted out of loops, etc. In order to do this, we need to generate GOT-style MMOs for TOC_ENTRY, which requires treating it as a legitimate memory intrinsic node type. Once this is done, the MMO transfer is automatically handled for TableGen-driven instruction selection, and for nodes generated directly in PPCISelDAGToDAG, we need to transfer the MMOs manually. Also, we were not transferring MMOs associated with pre-increment loads, so do that too. Lastly, this fixes an exposed bug where R30 was not added as a defined operand of UpdateGBR. This problem was highlighted by an example (used to generate the test case) posted to llvmdev by Francois Pichet. llvm-svn: 230553
Diffstat (limited to 'llvm/lib/DebugInfo')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud