llvm-6502/lib
Jakob Stoklund Olesen 40d07bbebb Add CoalescerPair helper class.
Given a copy instruction, CoalescerPair can determine which registers to
coalesce in order to eliminate the copy. It deals with all the subreg fun to
determine a tuple (DstReg, SrcReg, SubIdx) such that:

- SrcReg is a virtual register that will disappear after coalescing.
- DstReg is a virtual or physical register whose live range will be extended.
- SubIdx is 0 when DstReg is a physical register.
- SrcReg can be joined with DstReg:SubIdx.

CoalescerPair::isCoalescable() determines if another copy instruction is
compatible with the same tuple. This fixes some NEON miscompilations where
shuffles are getting coalesced as if they were copies.

The CoalescerPair class will replace a lot of the spaghetti logic in JoinCopy
later.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105997 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-15 16:04:21 +00:00
..
Analysis Support for nested functions/classes in debug output. (Again.) Radar 7424645. 2010-06-11 20:08:44 +00:00
Archive Eliminate some unnessary Path::exists() calls. 2010-05-27 20:51:54 +00:00
AsmParser Eliminate the restriction that the array size in an alloca must be i32. 2010-05-28 01:14:11 +00:00
Bitcode Speedup bitcode writer. Do not walk all values for all functions to emit function local metadata. In one testcase, probably worst case scenario, the 70x speed up is seen. 2010-06-02 23:05:04 +00:00
CodeGen Add CoalescerPair helper class. 2010-06-15 16:04:21 +00:00
CompilerDriver Print a space after the colon. 2010-05-20 21:11:37 +00:00
ExecutionEngine improve portability to systems that don't have powf/modf (e.g. solaris 9) 2010-05-15 17:10:24 +00:00
Linker Add basic error checking to MemoryBuffer::getSTDIN. 2010-05-27 17:31:51 +00:00
MC Don't call flush() at a library level which isn't checking for errors 2010-06-01 16:31:34 +00:00
Support Use const_iterator where appropriate. 2010-06-08 17:21:57 +00:00
System Avoid "variable 'bits' set but not used [-Wunused-but-set-variable]" 2010-06-10 16:23:15 +00:00
Target Add <cstddef> include to get ptrdiff_t, for gcc-4.6; patch by Dimitry Andric. 2010-06-15 14:50:42 +00:00
Transforms jump threading can't split a critical edge from an indirectbr. This 2010-06-14 19:45:43 +00:00
VMCore improve verifier error about unterminated block to include 2010-06-12 15:50:24 +00:00
Makefile