Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Rename getABITypeSize to getTypePaddedSize, as | Duncan Sands | 2009-01-12 | 1 | -2/+2 | |
| | | | | | | suggested by Chris. llvm-svn: 62099 | |||||
* | Factor out the code for sign-extending/truncating gep indices | Dan Gohman | 2008-12-08 | 1 | -23/+32 | |
| | | | | | | | | | and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. llvm-svn: 60696 | |||||
* | Eliminate some unused variable compile time warnings. | Evan Cheng | 2008-11-24 | 1 | -0/+2 | |
| | | | | llvm-svn: 59952 | |||||
* | Emit label for llvm.dbg.func.start of the inlined function. | Devang Patel | 2008-11-06 | 1 | -3/+8 | |
| | | | | llvm-svn: 58814 | |||||
* | FastISel support for exception-handling constructs. | Dan Gohman | 2008-10-14 | 1 | -1/+69 | |
| | | | | | | | | | - Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. llvm-svn: 57539 | |||||
* | calls can be supported. | Chris Lattner | 2008-10-13 | 1 | -9/+9 | |
| | | | | llvm-svn: 57428 | |||||
* | Add a "loses information" return value to APFloat::convert | Dale Johannesen | 2008-10-09 | 1 | -4/+8 | |
| | | | | | | | and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. llvm-svn: 57329 | |||||
* | Avoid emitting redundant materializations of integer constants | Dan Gohman | 2008-10-07 | 1 | -3/+4 | |
| | | | | | | | for things like null pointers, which at this level aren't different from regular integer constants. llvm-svn: 57265 | |||||
* | Implement fast-isel support for zero-extending from i1. | Dan Gohman | 2008-10-03 | 1 | -1/+12 | |
| | | | | | | | It turns out that this is a fairly common operation, and it's easy enough to handle. llvm-svn: 56990 | |||||
* | Optimize conditional branches in X86FastISel. This replaces | Dan Gohman | 2008-10-02 | 1 | -10/+18 | |
| | | | | | | | | | | | sequences like this: sete %al testb %al, %al jne LBB11_1 with this: je LBB11_1 llvm-svn: 56969 | |||||
* | Move the primary fast-isel top-level comments to FastISel.cpp, where | Dan Gohman | 2008-09-30 | 1 | -0/+28 | |
| | | | | | | they'll be a little more visible. Also, update and reword them a bit. llvm-svn: 56877 | |||||
* | Support for i1 XOR in FastISel. It is actually safe because | Dan Gohman | 2008-09-25 | 1 | -2/+3 | |
| | | | | | | i1 operands are assumed to already by zero-extended. llvm-svn: 56615 | |||||
* | FastISel support for debug info. | Dan Gohman | 2008-09-25 | 1 | -0/+94 | |
| | | | | llvm-svn: 56610 | |||||
* | Fix a recent fast-isel coverage regression - don't bail out before | Dan Gohman | 2008-09-25 | 1 | -3/+4 | |
| | | | | | | giving the target a chance to materialize constants. llvm-svn: 56605 | |||||
* | Arrange for FastISel code to have access to the MachineModuleInfo | Dan Gohman | 2008-09-23 | 1 | -1/+3 | |
| | | | | | | object. This will be needed to support debug info. llvm-svn: 56508 | |||||
* | Refactor X86SelectConstAddr, folding it into X86SelectAddress. This | Dan Gohman | 2008-09-19 | 1 | -21/+15 | |
| | | | | | | | results in better code for globals. Also, unbreak the local CSE for GlobalValue stub loads. llvm-svn: 56371 | |||||
* | FastISel support for i1 constants. | Dan Gohman | 2008-09-10 | 1 | -2/+10 | |
| | | | | llvm-svn: 56068 | |||||
* | Add X86FastISel support for static allocas, and refences | Dan Gohman | 2008-09-10 | 1 | -13/+21 | |
| | | | | | | | to static allocas. As part of this change, refactor the address mode code for laods and stores. llvm-svn: 56066 | |||||
* | Clean this up, based on Evan's suggestions. | Owen Anderson | 2008-09-09 | 1 | -2/+2 | |
| | | | | llvm-svn: 56009 | |||||
* | Check for type legality before materializing integer constants in fast isel. ↵ | Owen Anderson | 2008-09-09 | 1 | -0/+2 | |
| | | | | | | | | With this change, all of MultiSource/Applications passes on Darwin/X86 under FastISel. llvm-svn: 55982 | |||||
* | Fix a constant lowering bug. Now we can do load and store instructions with ↵ | Evan Cheng | 2008-09-09 | 1 | -0/+13 | |
| | | | | | | funky getelementptr embedded in the address operand. llvm-svn: 55975 | |||||
* | Add fast isel physical register definition support. | Evan Cheng | 2008-09-08 | 1 | -7/+64 | |
| | | | | llvm-svn: 55892 | |||||
* | Indentation. | Evan Cheng | 2008-09-07 | 1 | -2/+2 | |
| | | | | llvm-svn: 55880 | |||||
* | Revert r55859. This is breaking the build in the abscence of its companion ↵ | Owen Anderson | 2008-09-05 | 1 | -4/+12 | |
| | | | | | | commit. llvm-svn: 55865 | |||||
* | FastISel support for AND and OR with type i1. | Dan Gohman | 2008-09-05 | 1 | -2/+10 | |
| | | | | llvm-svn: 55846 | |||||
* | FastISel support for ConstantExprs. | Dan Gohman | 2008-09-05 | 1 | -5/+17 | |
| | | | | llvm-svn: 55843 | |||||
* | FastISel support for unreachable. | Dan Gohman | 2008-09-05 | 1 | -0/+4 | |
| | | | | llvm-svn: 55818 | |||||
* | Add initial support for selecting constant materializations that require ↵ | Owen Anderson | 2008-09-05 | 1 | -1/+1 | |
| | | | | | | | | constant pool loads on X86 in fast isel. This isn't actually used yet. llvm-svn: 55814 | |||||
* | Do trivial local CSE for constants and other non-Instruction values | Dan Gohman | 2008-09-03 | 1 | -12/+15 | |
| | | | | | | in FastISel. llvm-svn: 55748 | |||||
* | Create HandlePHINodesInSuccessorBlocksFast, a version of | Dan Gohman | 2008-09-03 | 1 | -152/+127 | |
| | | | | | | | | | | | | | 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 | |||||
* | Oops, I accidentally broke the fallback case with my last commit. | Owen Anderson | 2008-09-03 | 1 | -0/+2 | |
| | | | | llvm-svn: 55704 | |||||
* | Fix an issue where we were reusing materializations of constants in blocks ↵ | Owen Anderson | 2008-09-03 | 1 | -9/+15 | |
| | | | | | | | | | not dominated by the materialization. This is the simple fix, materializing the constant before every use. It might be better to either track domination of uses or to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses. llvm-svn: 55703 | |||||
* | 80 col violations. | Evan Cheng | 2008-09-02 | 1 | -2/+4 | |
| | | | | llvm-svn: 55668 | |||||
* | Fix an issue where a use might be selected before a def, and then we didn't ↵ | Owen Anderson | 2008-08-30 | 1 | -8/+23 | |
| | | | | | | | | | | | respect the pre-chosen vreg assignment when selecting the def. This is the naive solution to the problem: insert a copy to the pre-chosen vreg. Other solutions might be preferable, such as: 1) Passing the dest reg into FastEmit_. However, this would require the higher level code to know about reg classes, which they don't currently. 2) Selecting blocks in reverse postorder. This has some compile time cost for computing the order, and we'd need to measure its impact. llvm-svn: 55555 | |||||
* | Implement null and undef values for FastISel. | Dan Gohman | 2008-08-28 | 1 | -0/+5 | |
| | | | | llvm-svn: 55500 | |||||
* | Hook up support for fast-isel of trunc instructions, using the newly working ↵ | Owen Anderson | 2008-08-28 | 1 | -1/+4 | |
| | | | | | | support for EXTRACT_SUBREG. llvm-svn: 55482 | |||||
* | FastEmitInst_extractsubreg doesn't need to be passed the register class. It ↵ | Owen Anderson | 2008-08-28 | 1 | -2/+2 | |
| | | | | | | can get it from MachineRegisterInfo instead. llvm-svn: 55476 | |||||
* | Add a helper method that will be used to support EXTRACT_SUBREG for ↵ | Owen Anderson | 2008-08-27 | 1 | -0/+11 | |
| | | | | | | selecting trunc's in fast-isel. llvm-svn: 55439 | |||||
* | Fix FastISel's bitcast code for the case where getRegForValue fails. | Dan Gohman | 2008-08-27 | 1 | -1/+4 | |
| | | | | llvm-svn: 55431 | |||||
* | Use TargetLowering to get the types in fast isel, which handles pointer ↵ | Owen Anderson | 2008-08-27 | 1 | -4/+4 | |
| | | | | | | types correctly for our purposes. llvm-svn: 55428 | |||||
* | Don't check TLI.getOperationAction. The FastISel way is to | Dan Gohman | 2008-08-27 | 1 | -6/+2 | |
| | | | | | | | just try to do the action and let the tablegen-generated code determine if there is target-support for an operation. llvm-svn: 55427 | |||||
* | Add a new FastISel method, getRegForValue, which takes care of | Dan Gohman | 2008-08-27 | 1 | -133/+95 | |
| | | | | | | | the details of materializing constants and other values into registers, and make use of it in several places. llvm-svn: 55426 | |||||
* | Add a comment about the current floating-point constant code in FastISel. | Dan Gohman | 2008-08-27 | 1 | -0/+6 | |
| | | | | llvm-svn: 55425 | |||||
* | Basic FastISel support for floating-point constants. | Dan Gohman | 2008-08-27 | 1 | -0/+74 | |
| | | | | llvm-svn: 55401 | |||||
* | Fix handling of inttoptr and ptrtoint when unhandled operands are present. | Owen Anderson | 2008-08-27 | 1 | -2/+6 | |
| | | | | llvm-svn: 55400 | |||||
* | Add support for fast isel of inttoptr and ptrtoint in the cases where ↵ | Owen Anderson | 2008-08-27 | 1 | -0/+19 | |
| | | | | | | truncation is not needed. llvm-svn: 55399 | |||||
* | Factor out a large amoutn of the cast handling code in fast isel into helper ↵ | Owen Anderson | 2008-08-26 | 1 | -107/+81 | |
| | | | | | | | | methods. This simultaneously makes the code simpler and adds support for sext as well. llvm-svn: 55398 | |||||
* | Add support for fast isel of zext. | Owen Anderson | 2008-08-26 | 1 | -0/+29 | |
| | | | | llvm-svn: 55396 | |||||
* | Add support for fptosi of constants in fast isel. | Owen Anderson | 2008-08-26 | 1 | -3/+29 | |
| | | | | llvm-svn: 55393 | |||||
* | Refactor the bitcast code into its own function. | Dan Gohman | 2008-08-26 | 1 | -58/+69 | |
| | | | | llvm-svn: 55387 |