Hal Finkel 7840990de8 [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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230553 91177308-0d34-0410-b5e6-96231b3b80d8
2015-02-25 21:36:59 +00:00
..
2013-03-27 06:52:27 +00:00
2015-01-14 22:27:36 +00:00
2015-01-07 20:54:17 +00:00
2015-01-07 20:54:17 +00:00
2014-10-21 23:01:01 +00:00
2014-10-21 23:01:01 +00:00
2014-12-26 16:42:47 +00:00
2013-04-05 23:29:01 +00:00
2014-08-04 21:06:00 +00:00
2014-08-04 21:06:00 +00:00
2013-08-06 17:03:03 +00:00
2013-04-01 15:58:15 +00:00
2015-01-10 01:57:21 +00:00
2015-01-10 01:57:21 +00:00
2012-08-28 02:10:15 +00:00
2014-10-16 20:00:02 +00:00
2015-01-14 22:27:36 +00:00
2015-02-25 01:26:59 +00:00
2015-02-25 01:26:59 +00:00
2012-08-28 02:10:33 +00:00
2013-04-27 00:43:16 +00:00
2013-12-20 18:08:54 +00:00
2015-01-14 22:27:36 +00:00
2012-12-19 15:49:14 +00:00