llvm-6502/lib/Target
Chris Lattner b7cb9ffd34 Two more improvements for null pointer handling: storing a null pointer
and passing a null pointer into a function.

For this testcase:

void %test(int** %X) {
  store int* null, int** %X
  call void %test(int** null)
  ret void
}

we now generate this:

test:
        sub %ESP, 12
        mov %EAX, DWORD PTR [%ESP + 16]
        mov DWORD PTR [%EAX], 0
        mov DWORD PTR [%ESP], 0
        call test
        add %ESP, 12
        ret

instead of this:

test:
        sub %ESP, 12
        mov %EAX, DWORD PTR [%ESP + 16]
        mov %ECX, 0
        mov DWORD PTR [%EAX], %ECX
        mov %EAX, 0
        mov DWORD PTR [%ESP], %EAX
        call test
        add %ESP, 12
        ret


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13558 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-13 15:26:48 +00:00
..
CBackend syntactically loopify natural loops so that the GCC loop optimizer can find them. This should *dramatically* improve the performance of CBE compiled code on targets that depend on GCC's loop optimizations (like PPC) 2004-05-09 20:41:32 +00:00
PowerPC
Sparc Add support for widening integral casts. 2004-05-08 06:36:14 +00:00
SparcV8 Add support for widening integral casts. 2004-05-08 06:36:14 +00:00
SparcV9 Updating my versions of ModuloScheduling in cvs. Still not complete. 2004-05-08 16:12:10 +00:00
X86 Two more improvements for null pointer handling: storing a null pointer 2004-05-13 15:26:48 +00:00
Makefile
MRegisterInfo.cpp
Target.td
TargetData.cpp
TargetFrameInfo.cpp
TargetInstrInfo.cpp
TargetMachine.cpp
TargetSchedInfo.cpp Changed CPUResource to allow access to maxnum users. 2004-05-08 16:12:50 +00:00