llvm/lib
Nemanja Ivanovic 01cfc43fe4 [PowerPC] Convert r+r instructions to r+i (pre and post RA)
This patch adds the necessary infrastructure to convert instructions that
take two register operands to those that take a register and immediate if
the necessary operand is produced by a load-immediate. Furthermore, it uses
this infrastructure to perform such conversions twice - first at MachineSSA
and then pre-emit.

There are a number of reasons we may end up with opportunities for this
transformation, including but not limited to:
- X-Form instructions chosen since the exact offset isn't available at ISEL time
- Atomic instructions with constant operands (we will add patterns for this
  in the future)
- Tail duplication may duplicate code where one block contains this redundancy
- When emitting compare-free code in PPCDAGToDAGISel, we don't handle constant
  comparands specially

Furthermore, this patch moves the initialization of PPCMIPeepholePass so that
it can be used for MIR tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320791 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-15 07:27:53 +00:00
..
Analysis [SCEV] Fix the movement of insertion point in expander. PR35406. 2017-12-15 05:24:42 +00:00
AsmParser Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
BinaryFormat
Bitcode Remove redundant includes from lib/Bitcode. 2017-12-13 21:30:45 +00:00
CodeGen Recommit CodeGen: Fix assertion in machine inst sheduler due to llvm.dbg.value 2017-12-15 03:56:57 +00:00
DebugInfo [COFF] Teach LLD to use the COFF .debug$H section. 2017-12-14 18:07:04 +00:00
Demangle
ExecutionEngine Remove redundant includes from lib/ExecutionEngine. 2017-12-13 21:30:50 +00:00
Fuzzer
FuzzMutate Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
IR Add MVT::v128i1, NFC 2017-12-14 19:05:21 +00:00
IRReader Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
LineEditor
Linker
LTO Remove redundant includes from lib/LTO. 2017-12-13 21:30:53 +00:00
MC [WebAssembly] Implement @llvm.global_ctors and @llvm.global_dtors 2017-12-15 00:17:10 +00:00
Object Fix many -Wsign-compare and -Wtautological-constant-compare warnings. 2017-12-14 22:07:03 +00:00
ObjectYAML [WebAssembly] Add support for init functions linking metadata 2017-12-14 21:10:03 +00:00
Option
Passes [SimplifyCFG] don't sink common insts too soon (PR34603) 2017-12-14 22:05:20 +00:00
ProfileData Fix many -Wsign-compare and -Wtautological-constant-compare warnings. 2017-12-14 22:07:03 +00:00
Support Fix many -Wsign-compare and -Wtautological-constant-compare warnings. 2017-12-14 22:07:03 +00:00
TableGen [TableGen] Give the option of tolerating duplicate register names 2017-12-07 09:51:55 +00:00
Target [PowerPC] Convert r+r instructions to r+i (pre and post RA) 2017-12-15 07:27:53 +00:00
Testing Force #define GTEST_LANG_CXX11. 2017-10-27 21:12:28 +00:00
ToolDrivers Remove redundant includes from various places. 2017-12-13 21:31:03 +00:00
Transforms [SimplifyCFG] don't sink common insts too soon (PR34603) 2017-12-14 22:05:20 +00:00
WindowsManifest
XRay [XRay] Use optimistic logging model for FDR mode 2017-11-21 07:16:57 +00:00
CMakeLists.txt
LLVMBuild.txt