Reapply bottom-up fast-isel, with several fixes for x86-32:
authorDan Gohman <gohman@apple.com>
Sat, 10 Jul 2010 09:00:22 +0000 (09:00 +0000)
committerDan Gohman <gohman@apple.com>
Sat, 10 Jul 2010 09:00:22 +0000 (09:00 +0000)
commit84023e0fbefc406a4c611d3d64a10df5d3a97dd7
tree8f47ad9a2c30661cf7b3e3f5bbe5fe195a8a44f8
parentd737fcafc4cedcbe798930d96203a9e22c1e6e68
Reapply bottom-up fast-isel, with several fixes for x86-32:
 - Check getBytesToPopOnReturn().
 - Eschew ST0 and ST1 for return values.
 - Fix the PIC base register initialization so that it doesn't ever
   fail to end up the top of the entry block.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108039 91177308-0d34-0410-b5e6-96231b3b80d8
26 files changed:
include/llvm/CodeGen/CallingConvLower.h
include/llvm/CodeGen/FastISel.h
include/llvm/CodeGen/FunctionLoweringInfo.h
include/llvm/CodeGen/SelectionDAGISel.h
include/llvm/Target/TargetLowering.h
lib/CodeGen/CallingConvLower.cpp
lib/CodeGen/LLVMTargetMachine.cpp
lib/CodeGen/SelectionDAG/FastISel.cpp
lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
lib/CodeGen/SelectionDAG/InstrEmitter.cpp
lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/CodeGen/SelectionDAG/TargetLowering.cpp
lib/Target/X86/X86.h
lib/Target/X86/X86FastISel.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86TargetMachine.cpp
lib/Target/XCore/XCoreISelLowering.cpp
lib/Target/XCore/XCoreISelLowering.h
test/CodeGen/X86/fast-isel-loads.ll
test/CodeGen/X86/fast-isel-x86.ll [new file with mode: 0644]
test/CodeGen/X86/fast-isel.ll
utils/TableGen/FastISelEmitter.cpp