llvm-6502/lib
Quentin Colombet a1a323c637 [TwoAddressInstructionPass] Try 3 Addr Conversion After Commuting.
TwoAddressInstructionPass stops after a successful commuting but 3 Addr
conversion might be good for some cases.
 
Consider:

int foo(int a, int b) {
  return a + b;
}

Before this commit, we emit:

addl	%esi, %edi
movl	%edi, %eax
ret

After this commit, we try 3 Addr conversion:

leal	(%rsi,%rdi), %eax
ret

Patch by Volkan Keles <vkeles@apple.com>!

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241206 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-01 23:12:13 +00:00
..
Analysis Move delinearization from SCEVAddRecExpr to ScalarEvolution 2015-06-29 14:42:48 +00:00
AsmParser Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
Bitcode Add a DIModule metadata node to the IR. 2015-06-29 23:03:47 +00:00
CodeGen [TwoAddressInstructionPass] Try 3 Addr Conversion After Commuting. 2015-07-01 23:12:13 +00:00
DebugInfo Don't return error_code from a function that doesn't fail. 2015-06-30 04:08:37 +00:00
ExecutionEngine Use ErrorOr in getRelocationAdress. 2015-06-30 20:32:26 +00:00
Fuzzer
IR Fix a fixme and make DICompileUnit a distinct node. Tested via clang. 2015-06-30 18:32:18 +00:00
IRReader
LibDriver Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LineEditor
Linker Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LTO Teach LTOModule to emit linker flags for dllexported symbols, plus interface cleanup. 2015-06-29 22:04:09 +00:00
MC Pack MCSymbol::Flags in to the bitfield with other members. NFC. 2015-07-01 21:57:51 +00:00
Object Return ErrorOr from getSection. 2015-07-01 12:56:27 +00:00
Option [Option] Plug a leak when move-assigning an InputArgList. 2015-06-23 15:28:10 +00:00
Passes
ProfileData Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Support Drop the OS from the WebAssembly target triple for now. 2015-06-30 03:52:25 +00:00
TableGen [TableGen] Restore the use of the TheInit field in Record to cache the Record's DefInit. I broke this when I fixed memory leaks recently. Remove the DenseMap that mapped Record's to DefInit. 2015-06-24 06:19:19 +00:00
Target [WebAssembly] Define separate Target instances for 32-bit and 64-bit. 2015-07-01 21:42:34 +00:00
Transforms [LoopVectorize] Use ReplaceInstWithInst() helper where appropriate. 2015-07-01 22:18:30 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile