summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* use ArgOperand APIGabor Greif2010-06-251-140/+140
| | | | llvm-svn: 106836
* Simplify this code; switch lowering shouldn't produce casesDan Gohman2010-06-241-12/+4
| | | | | | which trivially fold away. llvm-svn: 106765
* Optimize the "bit test" code path for switch lowering in theDan Gohman2010-06-241-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 Gohman2010-06-211-49/+11
| | | | llvm-svn: 106423
* More changes for non-top-down fast-isel.Dan Gohman2010-06-211-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 Gohman2010-06-181-2/+2
| | | | llvm-svn: 106279
* Keep track of incoming debug value of unused argument.Devang Patel2010-06-011-1/+11
| | | | | | Radar 7927666. llvm-svn: 105285
* Reorder some code in SelectionDAGBuilder.Dan Gohman2010-05-291-313/+311
| | | | llvm-svn: 105105
* SelectionDAG shouldn't have a FunctionLoweringInfo member. RegsForValueDan Gohman2010-05-291-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 Gohman2010-05-281-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 Grosbach2010-05-271-4/+0
| | | | llvm-svn: 104897
* hook ISD::STACKADDR to an intrinsicJim Grosbach2010-05-271-0/+4
| | | | llvm-svn: 104869
* Adjust eh.sjlj.setjmp to properly have a chain and to have an opcode entry inJim Grosbach2010-05-261-1/+7
| | | | | | ISD::. No functional change. llvm-svn: 104734
* Implement eh.sjlj.longjmp for ARM. Clean up the intrinsic a bit.Jim Grosbach2010-05-221-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 itDuncan Sands2010-05-111-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 Gregor2010-05-111-0/+6
| | | | llvm-svn: 103457
* Verify variable directly.Devang Patel2010-05-071-2/+2
| | | | llvm-svn: 103305
* Use getValue() for PHINodes when direct NodeMap access does not work. Devang Patel2010-05-051-1/+15
| | | | llvm-svn: 103126
* Don't pass SDValues by non-const reference unless they may beDan Gohman2010-05-011-1/+2
| | | | | | modified. llvm-svn: 102816
* Reorgnaize more switch code lowering to clean up some trickyDan Gohman2010-05-011-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 Gohman2010-05-011-1/+0
| | | | llvm-svn: 102810
* Refactor.Devang Patel2010-04-291-4/+2
| | | | llvm-svn: 102661
* DO not push DBG_VALUE machine instructions for inlined fuction arguments in ↵Devang Patel2010-04-291-0/+7
| | | | | | entry block. llvm-svn: 102653
* Re-enable 102565 with fixes.Evan Cheng2010-04-291-9/+7
| | | | llvm-svn: 102602
* Temporarily disable my changes to unbreak the build.Evan Cheng2010-04-291-0/+4
| | | | llvm-svn: 102590
* Do not generate duplicate dbg_value instructions for function arguments.Evan Cheng2010-04-291-8/+10
| | | | llvm-svn: 102585
* Avoid emitting a dbg_value machineinstr that's not going to be inserted into ↵Evan Cheng2010-04-291-0/+2
| | | | | | entry block. llvm-svn: 102581
* Check Reg against zero.Evan Cheng2010-04-291-1/+1
| | | | llvm-svn: 102573
* tidy up.Devang Patel2010-04-281-8/+2
| | | | llvm-svn: 102558
* Replace r102368 with code that's less fragile. This creates DBG_VALUE ↵Evan Cheng2010-04-281-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 Patel2010-04-271-5/+0
| | | | llvm-svn: 102463
* Revert a small part of 102372; this fixes at least oneDale Johannesen2010-04-271-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 Johannesen2010-04-261-5/+0
| | | | llvm-svn: 102380
* Add DBG_VALUE handling for byval parameters; thisDale Johannesen2010-04-261-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 downDan Gohman2010-04-221-0/+4
| | | | | | into SelectionDAGBuilder itself. llvm-svn: 102128
* Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISelDan Gohman2010-04-221-77/+13
| | | | | | and into SelectionDAGBuilder and FastISel. llvm-svn: 102123
* Move PHINodesToUpdate out of SelectionDAGBuilder and intoDan Gohman2010-04-221-5/+5
| | | | | | | | | FunctionLoweringInfo, as it isn't SelectionDAG-specific. This isn't completely natural, as PHI node state is not per-function but rather per-basic-block, however there's currently no other convenient per-basic-block state to group it with. llvm-svn: 102109
* Move several SelectionDAG-independent utility functions out of theDan Gohman2010-04-211-0/+1
| | | | | | SelectionDAG directory and into a new Analysis.cpp file. llvm-svn: 101975
* Sink the CopyToExportRegsIfNeeded calls out of SelectionDAGISelDan Gohman2010-04-201-0/+3
| | | | | | | | into SelectionDAGBuilder. This avoids a separate pass over the instructions, and has the side effect of providing debug location information to the copy. llvm-svn: 101906
* Don't send PHI nodes down to SelectionDAGBuilder of FastISel, sinceDan Gohman2010-04-201-0/+4
| | | | | | they end up doing nothing. llvm-svn: 101904
* Sink DebugLoc handling out of SelectionDAGISel into FastISel andDan Gohman2010-04-201-0/+4
| | | | | | SelectionDAGBuilder, where it doesn't have to be as complicated. llvm-svn: 101848
* Eliminate the CurMBB member from SelectionDAGBuilder. For places thatDan Gohman2010-04-191-58/+80
| | | | | | | need it, just pass around the parent block of the current instruction explicitly. llvm-svn: 101822
* Code that needs a TargetMachine should have access to one directly, ratherDan Gohman2010-04-191-3/+2
| | | | | | than just getting one through a TargetLowering. llvm-svn: 101802
* Move isInTailCallPosition out of SelectionDAGBuilder, as it isn'tDan Gohman2010-04-191-86/+0
| | | | | | SelectionDAG-specific. llvm-svn: 101801
* Delete now-unnecessary const_casts.Dan Gohman2010-04-171-7/+7
| | | | llvm-svn: 101637
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-171-4/+5
| | | | | | | | | | | | | const_casts, and it reinforces the design of the Target classes being immutable. SelectionDAGISel::IsLegalToFold is now a static member function, because PIC16 uses it in an unconventional way. There is more room for API cleanup here. And PIC16's AsmPrinter no longer uses TargetLowering. llvm-svn: 101635
* Revert 101465, it broke internal OpenGL testing.Eric Christopher2010-04-161-132/+132
| | | | | | | Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
* Avoid creating virtual registers for unused values.Dan Gohman2010-04-161-4/+4
| | | | llvm-svn: 101480
* Fix an assertion string.Dan Gohman2010-04-161-1/+1
| | | | llvm-svn: 101478
* reapply r101434Gabor Greif2010-04-161-132/+132
| | | | | | | | | | | | | with a fix for self-hosting rotate CallInst operands, i.e. move callee to the back of the operand array the motivation for this patch are laid out in my mail to llvm-commits: more efficient access to operands and callee, faster callgraph-construction, smaller compiler binary llvm-svn: 101465
OpenPOWER on IntegriCloud