llvm-mirror/lib
Bob Wilson 10465d5aa9 Overhaul the TwoAddressInstructionPass to simplify the logic, especially
for the complicated case where one register is tied to multiple destinations.
This avoids the extra scan of instruction operands that was introduced by
my recent change.  I also pulled some code out into a separate
TryInstructionTransform method, added more comments, and renamed some
variables.

Besides all those changes, this takes care of a FIXME in the code regarding
an assumption about there being a single tied use of a register when
converting to a 3-address form.  I'm not aware of cases where that assumption
is violated, but the code now only attempts to transform an instruction,
either by commuting its operands or by converting to a 3-address form,
for the simple case where there is a single pair of tied operands.

llvm-svn: 80945
2009-09-03 20:58:42 +00:00
..
Analysis Smallvectorize switchExitBlocks. 2009-09-03 20:36:13 +00:00
Archive Prune #includes from llvm/Linker.h and llvm/System/Path.h, 2009-08-23 22:45:37 +00:00
AsmParser Refactor common code from ParseAssemblyString and ParseAssemblyFile, 2009-09-02 17:18:19 +00:00
Bitcode back out my recent commit (r80858), it seems to break self-hosting buildbot's stage 2 configure 2009-09-03 02:02:59 +00:00
CodeGen Overhaul the TwoAddressInstructionPass to simplify the logic, especially 2009-09-03 20:58:42 +00:00
CompilerDriver convert LoopInfo.h and GraphWriter.h to use raw_ostream 2009-08-23 07:19:13 +00:00
Debugger Prune #includes from llvm/Linker.h and llvm/System/Path.h, 2009-08-23 22:45:37 +00:00
ExecutionEngine Fix PR4845: r77946 completely broke x86_64 Darwin (or any situation where the 2009-09-02 00:19:03 +00:00
Linker There is not any need to copy metadata while merging modules. 2009-09-03 20:35:57 +00:00
MC fix MCSymbol printing to exactly match the normal mangler rules so 2009-09-03 05:57:47 +00:00
Support Show derived host triple in --version. 2009-09-02 23:52:38 +00:00
System Improve llvm::getHostTriple for some cases where the LLVM_HOSTTRIPLE is not 2009-09-03 01:10:13 +00:00
Target Recognize more opportunities to use SSE min and max instructions, 2009-09-03 20:34:31 +00:00
Transforms Add a verifyAnalysis to LoopInfo, LoopSimplify, and LCSSA form that verify 2009-09-03 16:31:42 +00:00
VMCore Use WeakVH to hold dead mdnodes. Check use_empty() before deleting a node. 2009-09-03 17:03:47 +00:00
Makefile LLVMC doesn't need ENABLE_PIC to build now. 2009-07-04 03:54:54 +00:00