llvm-6502/lib/CodeGen
Chris Lattner b14ab8a10d Teach the dag combiner to turn a truncate/sign_extend pair into a sextinreg
when the types match up.  This allows the X86 backend to compile:

sbyte %toggle_value(sbyte* %tmp.1) {
        %tmp.2 = load sbyte* %tmp.1
        ret sbyte %tmp.2
}

to this:

_toggle_value:
        mov %EAX, DWORD PTR [%ESP + 4]
        movsx %EAX, BYTE PTR [%EAX]
        ret

instead of this:

_toggle_value:
        mov %EAX, DWORD PTR [%ESP + 4]
        movsx %EAX, BYTE PTR [%EAX]
        movsx %EAX, %AL
        ret

noticed in Shootout/objinst.

-Chris


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24630 91177308-0d34-0410-b5e6-96231b3b80d8
2005-12-07 07:11:03 +00:00
..
SelectionDAG Teach the dag combiner to turn a truncate/sign_extend pair into a sextinreg 2005-12-07 07:11:03 +00:00
AsmPrinter.cpp Teach the SelectionDAG ISel how to turn ConstantPacked values into 2005-12-06 06:18:55 +00:00
BranchFolding.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
ELFWriter.cpp nuke blank line 2005-11-10 18:49:46 +00:00
IntrinsicLowering.cpp continued readcyclecounter support 2005-11-11 16:47:30 +00:00
LiveInterval.cpp Fix LiveInterval::getOverlapingRanges to take things in the right order 2005-10-21 06:41:30 +00:00
LiveIntervalAnalysis.cpp Fix some spello's pointed out by Gabor Greif 2005-10-26 18:41:41 +00:00
LiveVariables.cpp Add section switching to common code generator code. Add a couple of 2005-11-21 07:06:27 +00:00
MachineBasicBlock.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
MachineCodeEmitter.cpp new is not a valid default anywhere, so make this pure virtual 2005-07-28 18:13:59 +00:00
MachineFunction.cpp Added graphviz/gv support for MF. 2005-10-12 12:09:05 +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 Alkis agrees that that iterative scan allocator isn't going to be worked on 2005-10-24 04:14:30 +00:00
PHIElimination.cpp clean up this code a bit, no functionality change 2005-10-03 07:22:07 +00:00
PhysRegTracker.h
PrologEpilogInserter.cpp Always compute max align. 2005-11-06 17:43:20 +00:00
RegAllocLinearScan.cpp I think I know what you meant here, but just to be safe I'll let you 2005-11-21 14:09:40 +00:00
RegAllocLocal.cpp Nuke noop copies. 2005-11-09 18:22:42 +00:00
RegAllocSimple.cpp Change this code ot pass register classes into the stack slot spiller/reloader 2005-09-30 01:29:00 +00:00
TwoAddressInstructionPass.cpp Fix some spello's pointed out by Gabor Greif 2005-10-26 18:41:41 +00:00
UnreachableBlockElim.cpp Remove trailing whitespace 2005-04-21 22:36:52 +00:00
VirtRegMap.cpp Fix the LLC regressions on X86 last night. In particular, when undoing 2005-10-06 17:19:06 +00:00
VirtRegMap.h Remove trailing whitespace 2005-04-21 22:36:52 +00:00