Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Split the SDValue out of OutputArg so that SelectionDAG-independent | Dan Gohman | 2010-07-07 | 1 | -5/+12 |
| | | | | | | code can do calling-convention queries. This obviates OutputArgReg. llvm-svn: 107786 | ||||
* | CanLowerReturn doesn't need a SelectionDAG; it just needs an LLVMContext. | Dan Gohman | 2010-07-06 | 1 | -2/+3 |
| | | | | | | SelectBasicBlock doesn't needs its BasicBlock argument. llvm-svn: 107712 | ||||
* | Propagate debug loc. | Devang Patel | 2010-07-06 | 1 | -1/+1 |
| | | | | llvm-svn: 107710 | ||||
* | random tidying | Chris Lattner | 2010-07-05 | 1 | -6/+8 |
| | | | | llvm-svn: 107612 | ||||
* | Propagate the AlignStack bit in InlineAsm's to the | Dale Johannesen | 2010-07-02 | 1 | -1/+5 |
| | | | | | | | | | | | | | | | | | | | PrologEpilog code, and use it to determine whether the asm forces stack alignment or not. gcc consistently does not do this for GCC-style asms; Apple gcc inconsistently sometimes does it for asm blocks. There is no convenient place to put a bit in either the SDNode or the MachineInstr form, so I've added an extra operand to each; unlovely, but it does allow for expansion for more bits, should we need it. PR 5125. Some existing testcases are affected. The operand lists of the SDNode and MachineInstr forms are indexed with awesome mnemonics, like "2"; I may fix this someday, but not now. I'm not making it any worse. If anyone is inspired I think you can find all the right places from this patch. llvm-svn: 107506 | ||||
* | Rename CreateReg to CreateRegs, and MakeReg to CreateReg. | Dan Gohman | 2010-07-02 | 1 | -4/+4 |
| | | | | llvm-svn: 107451 | ||||
* | Rename CreateRegForValue to CreateReg, and change its argument | Dan Gohman | 2010-07-01 | 1 | -2/+2 |
| | | | | | | | from a Value to a Type, because it doesn't actually care about the Value. llvm-svn: 107383 | ||||
* | Reapply r106422, splitting the code for materializing a value out of | Dan Gohman | 2010-07-01 | 1 | -11/+53 |
| | | | | | | | SelectionDAGBuilder::getValue into a helper function, with fixes to use DenseMaps safely. llvm-svn: 107371 | ||||
* | Don't use operator[] here, because it's not desirable to insert a default | Dan Gohman | 2010-07-01 | 1 | -2/+5 |
| | | | | | | value if the search fails. llvm-svn: 107368 | ||||
* | Remove an unused variable. The call to getRoot has side-effects, so | Duncan Sands | 2010-06-30 | 1 | -1/+0 |
| | | | | | | this could break something (but doesn't seem to). llvm-svn: 107295 | ||||
* | use ArgOperand API | Gabor Greif | 2010-06-30 | 1 | -6/+6 |
| | | | | llvm-svn: 107279 | ||||
* | Remove initialized but otherwise unused variables. | Duncan Sands | 2010-06-29 | 1 | -2/+0 |
| | | | | llvm-svn: 107127 | ||||
* | The hasMemory argument is irrelevant to how the argument | Dale Johannesen | 2010-06-25 | 1 | -2/+2 |
| | | | | | | | | | for an "i" constraint should get lowered; PR 6309. While this argument was passed around a lot, this is the only place it was used, so it goes away from a lot of other places. llvm-svn: 106893 | ||||
* | Remove variables which are assigned to but for which the value | Duncan Sands | 2010-06-25 | 1 | -1/+0 |
| | | | | | | is not used. Spotted by gcc-4.6. llvm-svn: 106854 | ||||
* | use ArgOperand API | Gabor Greif | 2010-06-25 | 1 | -140/+140 |
| | | | | llvm-svn: 106836 | ||||
* | Simplify this code; switch lowering shouldn't produce cases | Dan Gohman | 2010-06-24 | 1 | -12/+4 |
| | | | | | | which trivially fold away. llvm-svn: 106765 | ||||
* | Optimize the "bit test" code path for switch lowering in the | Dan Gohman | 2010-06-24 | 1 | -15/+27 |
| | | | | | | case where the bit mask has exactly one bit. llvm-svn: 106716 | ||||
* | Revert r106422, which is breaking the non-fast-isel path. | Dan Gohman | 2010-06-21 | 1 | -49/+11 |
| | | | | llvm-svn: 106423 | ||||
* | More changes for non-top-down fast-isel. | Dan Gohman | 2010-06-21 | 1 | -11/+49 |
| | | | | | | | | | | Split the code for materializing a value out of SelectionDAGBuilder::getValue into a helper function, so that it can be used in other ways. Add a new getNonRegisterValue function which uses it, for use in code which doesn't want a CopyFromReg even when FuncMap.ValueMap already has an entry for it. llvm-svn: 106422 | ||||
* | Eliminate unnecessary uses of getZExtValue(). | Dan Gohman | 2010-06-18 | 1 | -2/+2 |
| | | | | llvm-svn: 106279 | ||||
* | Keep track of incoming debug value of unused argument. | Devang Patel | 2010-06-01 | 1 | -1/+11 |
| | | | | | | Radar 7927666. llvm-svn: 105285 | ||||
* | Reorder some code in SelectionDAGBuilder. | Dan Gohman | 2010-05-29 | 1 | -313/+311 |
| | | | | llvm-svn: 105105 | ||||
* | SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValue | Dan Gohman | 2010-05-29 | 1 | -43/+44 |
| | | | | | | | shouldn't have a TargetLoweringInfo member. And FunctionLoweringInfo::set doesn't needs its EnableFastISel argument. llvm-svn: 105101 | ||||
* | Eliminate the restriction that the array size in an alloca must be i32. | Dan Gohman | 2010-05-28 | 1 | -5/+6 |
| | | | | | | This will help reduce the amount of casting required on 64-bit targets. llvm-svn: 104911 | ||||
* | back out 104862/104869. Can reuse stacksave after all. Very cool. | Jim Grosbach | 2010-05-27 | 1 | -4/+0 |
| | | | | llvm-svn: 104897 | ||||
* | hook ISD::STACKADDR to an intrinsic | Jim Grosbach | 2010-05-27 | 1 | -0/+4 |
| | | | | llvm-svn: 104869 | ||||
* | Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry in | Jim Grosbach | 2010-05-26 | 1 | -1/+7 |
| | | | | | | ISD::. No functional change. llvm-svn: 104734 | ||||
* | Implement eh.sjlj.longjmp for ARM. Clean up the intrinsic a bit. | Jim Grosbach | 2010-05-22 | 1 | -0/+5 |
| | | | | | | | Followups: docs patch for the builtin and eh.sjlj.setjmp cleanup to match longjmp. llvm-svn: 104419 | ||||
* | I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it | Duncan Sands | 2010-05-11 | 1 | -1/+1 |
| | | | | | | | to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is the opposite, for future use by dragonegg. llvm-svn: 103495 | ||||
* | Fixes for Microsoft Visual Studio 2010, from Steven Watanabe! | Douglas Gregor | 2010-05-11 | 1 | -0/+6 |
| | | | | llvm-svn: 103457 | ||||
* | Verify variable directly. | Devang Patel | 2010-05-07 | 1 | -2/+2 |
| | | | | llvm-svn: 103305 | ||||
* | Use getValue() for PHINodes when direct NodeMap access does not work. | Devang Patel | 2010-05-05 | 1 | -1/+15 |
| | | | | llvm-svn: 103126 | ||||
* | Don't pass SDValues by non-const reference unless they may be | Dan Gohman | 2010-05-01 | 1 | -1/+2 |
| | | | | | | modified. llvm-svn: 102816 | ||||
* | Reorgnaize more switch code lowering to clean up some tricky | Dan Gohman | 2010-05-01 | 1 | -1/+0 |
| | | | | | | | | | | | code, and to eliminate the need for the SelectionDAGBuilder state to be live during CodeGenAndEmitDAG calls. Call SDB->clear() before CodeGenAndEmitDAG calls instead of before it, and move the CurDAG->clear() out of SelectionDAGBuilder, which doesn't own the DAG, and into CodeGenAndEmitDAG. llvm-svn: 102814 | ||||
* | Delete the EdgeMapping variable itself. | Dan Gohman | 2010-05-01 | 1 | -1/+0 |
| | | | | llvm-svn: 102810 | ||||
* | Refactor. | Devang Patel | 2010-04-29 | 1 | -4/+2 |
| | | | | llvm-svn: 102661 | ||||
* | DO not push DBG_VALUE machine instructions for inlined fuction arguments in ↵ | Devang Patel | 2010-04-29 | 1 | -0/+7 |
| | | | | | | entry block. llvm-svn: 102653 | ||||
* | Re-enable 102565 with fixes. | Evan Cheng | 2010-04-29 | 1 | -9/+7 |
| | | | | llvm-svn: 102602 | ||||
* | Temporarily disable my changes to unbreak the build. | Evan Cheng | 2010-04-29 | 1 | -0/+4 |
| | | | | llvm-svn: 102590 | ||||
* | Do not generate duplicate dbg_value instructions for function arguments. | Evan Cheng | 2010-04-29 | 1 | -8/+10 |
| | | | | llvm-svn: 102585 | ||||
* | Avoid emitting a dbg_value machineinstr that's not going to be inserted into ↵ | Evan Cheng | 2010-04-29 | 1 | -0/+2 |
| | | | | | | entry block. llvm-svn: 102581 | ||||
* | Check Reg against zero. | Evan Cheng | 2010-04-29 | 1 | -1/+1 |
| | | | | llvm-svn: 102573 | ||||
* | tidy up. | Devang Patel | 2010-04-28 | 1 | -8/+2 |
| | | | | llvm-svn: 102558 | ||||
* | Replace r102368 with code that's less fragile. This creates DBG_VALUE ↵ | Evan Cheng | 2010-04-28 | 1 | -0/+36 |
| | | | | | | instructions for function arguments early and insert them after instruction selection is done. llvm-svn: 102554 | ||||
* | Ignore DBG_VALUE instructions that points to undef values. | Devang Patel | 2010-04-27 | 1 | -5/+0 |
| | | | | llvm-svn: 102463 | ||||
* | Revert a small part of 102372; this fixes at least one | Dale Johannesen | 2010-04-27 | 1 | -0/+5 |
| | | | | | | | | of the dbg testsuite regressions. I don't think this is really the right fix; this change exposed an existing problem upstream somewhere. llvm-svn: 102410 | ||||
* | Remove crufty comments. | Dale Johannesen | 2010-04-26 | 1 | -5/+0 |
| | | | | llvm-svn: 102380 | ||||
* | Add DBG_VALUE handling for byval parameters; this | Dale Johannesen | 2010-04-26 | 1 | -22/+68 |
| | | | | | | | produces a comment on targets that support it, but the Dwarf writer is not hooked up yet. llvm-svn: 102372 | ||||
* | Sink SelectionDAGBuilder's HandlePHINodesInSuccessorBlocks down | Dan Gohman | 2010-04-22 | 1 | -0/+4 |
| | | | | | | into SelectionDAGBuilder itself. llvm-svn: 102128 | ||||
* | Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISel | Dan Gohman | 2010-04-22 | 1 | -77/+13 |
| | | | | | | and into SelectionDAGBuilder and FastISel. llvm-svn: 102123 |