Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Simplify this code. The FastISel class has its own TD member. | Dan Gohman | 2008-09-18 | 1 | -4/+3 | |
| | | | | llvm-svn: 56311 | |||||
* | FastISel: For calls, prefer using the callee's address as a constant | Dan Gohman | 2008-09-17 | 1 | -10/+13 | |
| | | | | | | | | | | | | over having it in a register. And wait until after checking type legality before requesting that the callee address be placed in a register. Also, fix support for calls with void return type. This speeds up fast-isel isel time by about 15% and reduces instruction counts by about 3% overall on certain testcases. It also changes many indirect calls to direct calls. llvm-svn: 56292 | |||||
* | Fix a bug in ANY_EXTEND handling that was breaking 403.gcc on X86-64 in fast ↵ | Owen Anderson | 2008-09-11 | 1 | -2/+7 | |
| | | | | | | isel. llvm-svn: 56117 | |||||
* | If ISD::ANY_EXTEND fails, try ISD::ZERO_EXTEND and ISD::SIGN_EXTEND before ↵ | Owen Anderson | 2008-09-11 | 1 | -0/+7 | |
| | | | | | | | | giving up. This fixes 445.gobmk on X86-64 in fast isel. llvm-svn: 56088 | |||||
* | X86FastISel support for double->float and float->double casts. | Dan Gohman | 2008-09-10 | 1 | -0/+43 | |
| | | | | llvm-svn: 56070 | |||||
* | Add X86FastISel support for static allocas, and refences | Dan Gohman | 2008-09-10 | 1 | -59/+74 | |
| | | | | | | | to static allocas. As part of this change, refactor the address mode code for laods and stores. llvm-svn: 56066 | |||||
* | Fix a constant lowering bug. Now we can do load and store instructions with ↵ | Evan Cheng | 2008-09-09 | 1 | -28/+43 | |
| | | | | | | funky getelementptr embedded in the address operand. llvm-svn: 55975 | |||||
* | Handle calls which produce i1 results: promote to i8 but and it with 1 to ↵ | Evan Cheng | 2008-09-08 | 1 | -3/+18 | |
| | | | | | | get the low bit. llvm-svn: 55925 | |||||
* | Fix copy+pastos in comments. | Dan Gohman | 2008-09-08 | 1 | -2/+2 | |
| | | | | llvm-svn: 55918 | |||||
* | Add support to extend call operands when needed. Enable x86 fastisel call ↵ | Evan Cheng | 2008-09-08 | 1 | -24/+33 | |
| | | | | | | support. llvm-svn: 55891 | |||||
* | Initial fastisel call support for C, Fast, and X86_FastCall calling ↵ | Evan Cheng | 2008-09-07 | 1 | -42/+308 | |
| | | | | | | | | conventions. It's meant to handle "simple" calls, i.e. no byval, structret, etc. It doesn't support multi-result returns either. Not yet turned on, it needs to support sext / zext of arguments and result. llvm-svn: 55882 | |||||
* | Handle x86 truncate to i8 with target hook for now. | Evan Cheng | 2008-09-07 | 1 | -0/+38 | |
| | | | | llvm-svn: 55877 | |||||
* | Fix constant pool loads, and remove broken versions of addConstantPoolReference. | Owen Anderson | 2008-09-06 | 1 | -6/+9 | |
| | | | | llvm-svn: 55868 | |||||
* | Fix X86FastISel's shift and select code to reject illegal types. | Dan Gohman | 2008-09-05 | 1 | -1/+9 | |
| | | | | llvm-svn: 55857 | |||||
* | Fix the opcodes used by X86FastISel for shifts and conditional moves. | Dan Gohman | 2008-09-05 | 1 | -11/+11 | |
| | | | | llvm-svn: 55855 | |||||
* | Factor out code that emits load and store instructions. | Evan Cheng | 2008-09-05 | 1 | -111/+138 | |
| | | | | llvm-svn: 55854 | |||||
* | Rename method. | Owen Anderson | 2008-09-05 | 1 | -3/+3 | |
| | | | | llvm-svn: 55853 | |||||
* | X86FastISel support for shifts and conditional moves. | Dan Gohman | 2008-09-05 | 1 | -0/+99 | |
| | | | | llvm-svn: 55844 | |||||
* | Check a comparion's operand type for legality before | Dan Gohman | 2008-09-05 | 1 | -4/+4 | |
| | | | | | | expanding its operands. llvm-svn: 55820 | |||||
* | Fix X86FastISel code for comparisons and conditional branches | Dan Gohman | 2008-09-05 | 1 | -1/+9 | |
| | | | | | | | to check the result of getRegForValue before using it, and to check for illegal operand types. llvm-svn: 55819 | |||||
* | X86FastISel support for conditional branches. | Dan Gohman | 2008-09-05 | 1 | -1/+39 | |
| | | | | llvm-svn: 55816 | |||||
* | Add initial support for selecting constant materializations that require ↵ | Owen Anderson | 2008-09-05 | 1 | -0/+88 | |
| | | | | | | | | constant pool loads on X86 in fast isel. This isn't actually used yet. llvm-svn: 55814 | |||||
* | X86FastISel support for ICmpInst and FCmpInst. | Dan Gohman | 2008-09-04 | 1 | -0/+139 | |
| | | | | llvm-svn: 55811 | |||||
* | Fix the ordering of operands to the store (inverted relative to LLVM IR), ↵ | Owen Anderson | 2008-09-04 | 1 | -2/+4 | |
| | | | | | | and fix the testcase. llvm-svn: 55777 | |||||
* | Add a first attempt at implementing stores for X86 fast isel using target hooks. | Owen Anderson | 2008-09-04 | 1 | -0/+87 | |
| | | | | | | Dan or Evan, please review. llvm-svn: 55764 | |||||
* | Load from GV stub should be locally CSE'd. | Evan Cheng | 2008-09-04 | 1 | -0/+2 | |
| | | | | llvm-svn: 55763 | |||||
* | Create HandlePHINodesInSuccessorBlocksFast, a version of | Dan Gohman | 2008-09-03 | 1 | -28/+18 | |
| | | | | | | | | | | | | | HandlePHINodesInSuccessorBlocks that works FastISel-style. This allows PHI nodes to be updated correctly while using FastISel. This also involves some code reorganization; ValueMap and MBBMap are now members of the FastISel class, so they needn't be passed around explicitly anymore. Also, SelectInstructions is changed to SelectInstruction, and only does one instruction at a time. llvm-svn: 55746 | |||||
* | Add X86 target hook to implement load (even from GlobalAddress). | Evan Cheng | 2008-09-03 | 1 | -1/+130 | |
| | | | | llvm-svn: 55693 | |||||
* | Unbreak fast isel. | Evan Cheng | 2008-09-03 | 1 | -2/+5 | |
| | | | | llvm-svn: 55685 | |||||
* | Let tblgen only generate fastisel routines, not the class definition. This ↵ | Evan Cheng | 2008-09-03 | 1 | -7/+23 | |
| | | | | | | makes it easier for targets to define its own fastisel class. llvm-svn: 55679 | |||||
* | Add initial support for fast isel of instructions that have inputs pinned to ↵ | Owen Anderson | 2008-08-29 | 1 | -0/+1 | |
| | | | | | | physical registers. llvm-svn: 55545 | |||||
* | Add a target callback for FastISel. | Dan Gohman | 2008-08-28 | 1 | -0/+20 | |
| | | | | llvm-svn: 55512 | |||||
* | Factor out the predicate check code from DAGISelEmitter.cpp | Dan Gohman | 2008-08-22 | 1 | -0/+1 | |
| | | | | | | | | | and use it in FastISelEmitter.cpp, and make FastISel subtarget aware. Among other things, this lets it work properly on x86 targets that don't have SSE, where it successfully selects x87 instructions. llvm-svn: 55156 | |||||
* | Instantiate FastISel for X86. | Dan Gohman | 2008-08-19 | 1 | -0/+20 | |
llvm-svn: 55011 |