llvm-6502/lib/CodeGen
Chris Lattner e5eb6f829c Add some simplifications for MULH[SU]. This allows us to compile this:
long %bar(long %X) {
  %Y = mul long %X, 4294967297
  ret long %Y
}

to this:

l1_bar:
        mov %EAX, DWORD PTR [%ESP + 4]
        mov %EDX, %EAX
        add %EDX, DWORD PTR [%ESP + 8]
        ret

instead of:

l1_bar:
        mov %ECX, DWORD PTR [%ESP + 4]
        mov %EDX, 1
        mov %EAX, %ECX
        mul %EDX
        add %EDX, %ECX
        add %EDX, DWORD PTR [%ESP + 8]
        mov %EAX, %ECX
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22044 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-15 05:39:08 +00:00
..
SelectionDAG Add some simplifications for MULH[SU]. This allows us to compile this: 2005-05-15 05:39:08 +00:00
AsmPrinter.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
BranchFolding.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
IntrinsicLowering.cpp Fix lowering of ctlz, so now UnitTests/2005-05-11-Popcount-ffs-fls passes 2005-05-11 20:24:12 +00:00
LiveInterval.cpp Print the symbolic register name in a register allocator debug dump. 2005-05-14 05:34:15 +00:00
LiveInterval.h Print the symbolic register name in a register allocator debug dump. 2005-05-14 05:34:15 +00:00
LiveIntervalAnalysis.cpp Print the symbolic register name in a register allocator debug dump. 2005-05-14 05:34:15 +00:00
LiveIntervalAnalysis.h Allow the live interval analysis pass to be a bit more aggressive about 2005-03-09 23:05:19 +00:00
LiveVariables.cpp allow a virtual register to be associated with live-in values. 2005-05-13 07:08:07 +00:00
MachineBasicBlock.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
MachineCodeEmitter.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
MachineFunction.cpp print stack object alignment in -print-machineinstr dumps 2005-05-13 22:54:44 +00:00
MachineInstr.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
Makefile Change Library Names Not To Conflict With Others When Installed 2004-10-27 23:18:45 +00:00
Passes.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
PHIElimination.cpp * Order #includes alphabetically 2005-05-05 23:45:17 +00:00
PhysRegTracker.h Improved PhysRegTracker interface. RegAlloc lazily allocates the register tracker using a std::auto_ptr 2004-02-23 06:10:13 +00:00
PrologEpilogInserter.cpp When inserting callee-save register reloads, make sure to skip over any 2005-05-15 03:09:58 +00:00
RegAllocIterativeScan.cpp Update these register allocators to set the PhysRegUsed info in MachineFunction. 2005-01-23 22:45:13 +00:00
RegAllocLinearScan.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
RegAllocLocal.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
RegAllocSimple.cpp Convert tabs to spaces 2005-04-22 04:01:18 +00:00
TwoAddressInstructionPass.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
UnreachableBlockElim.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
VirtRegMap.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
VirtRegMap.h Remove trailing whitespace 2005-04-21 22:36:52 +00:00