llvm/lib
Simon Pilgrim c00cd8e3c8 [X86] Memory folding for commutative instructions.
This patch improves support for commutative instructions in the x86 memory folding implementation by attempting to fold a commuted version of the instruction if the original folding fails - if that folding fails as well the instruction is 're-commuted' back to its original order before returning.

This mainly helps the stack inliner better fold reloads of 3 (or more) operand instructions (VEX encoded SSE etc.) but by performing this in the lowest foldMemoryOperandImpl implementation it also replaces the X86InstrInfo::optimizeLoadInstr version and is now used by FastISel too.

Differential Revision: http://reviews.llvm.org/D5701


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219584 91177308-0d34-0410-b5e6-96231b3b80d8
2014-10-12 10:52:55 +00:00
..
Analysis AssumptionTracker: Don't create temporary CallbackVHs. 2014-10-11 19:13:01 +00:00
AsmParser Make CallingConv::ID an alias of "unsigned". 2014-09-10 18:00:17 +00:00
Bitcode Do not destroy external linkage when deleting function body 2014-09-23 12:54:19 +00:00
CodeGen Revert "DebugInfo: Ensure that all debug location scope chains from instructions within a function, lead to the function itself." 2014-10-10 18:46:21 +00:00
DebugInfo Add couple of missing 'override' keyword. NFC. 2014-10-10 17:34:30 +00:00
ExecutionEngine [MCJIT] Replace memcpy with readBytesUnaligned in RuntimeDyldMachOI386. 2014-10-10 23:07:09 +00:00
IR Return undef on FP <-> Int conversions that overflow (PR21330). 2014-10-10 23:00:21 +00:00
IRReader Pass a && to getLazyBitcodeModule. 2014-09-03 17:31:46 +00:00
LineEditor
Linker Merge alignment of common GlobalValue. 2014-09-09 17:48:18 +00:00
LTO LTO: Document the Boolean argument from r218784 2014-10-02 21:11:04 +00:00
MC MC: Shrink MCSymbolRefExpr by only storing the bits we need. 2014-10-11 17:57:27 +00:00
Object Object, COFF: Move the VirtualSize/SizeOfRawData logic to getSectionSize 2014-10-09 08:42:31 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData Reduce double set lookups. NFC. 2014-10-10 15:32:50 +00:00
Support Guard the definition of the stack tracing function with the same macros 2014-10-11 01:04:40 +00:00
TableGen Eliminate some deep std::vector copies. NFC. 2014-10-03 18:33:16 +00:00
Target [X86] Memory folding for commutative instructions. 2014-10-12 10:52:55 +00:00
Transforms InstCombine: Simplify commonIDivTransforms 2014-10-12 08:34:24 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile