summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* back out r101423 and r101397, they break llvm-gcc self-host on darwin10Gabor Greif2010-04-161-130/+130
| | | | llvm-svn: 101434
* reapply r101364, which has been backed out in r101368Gabor Greif2010-04-151-130/+130
| | | | | | | | | | | | | with a fix 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: 101397
* back out r101364, as it trips the linux nightlybot on some clang C++ testsGabor Greif2010-04-151-130/+130
| | | | llvm-svn: 101368
* rotate CallInst operands, i.e. move callee to the backGabor Greif2010-04-151-130/+130
| | | | | | | | | | 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: 101364
* Add more const qualifiers for LLVM IR pointers in CodeGen.Dan Gohman2010-04-151-1/+1
| | | | llvm-svn: 101342
* Add const qualifiers to CodeGen's use of LLVM IR constructs.Dan Gohman2010-04-151-132/+134
| | | | llvm-svn: 101334
* Delete unneeeded arguments.Dan Gohman2010-04-141-1/+1
| | | | llvm-svn: 101276
* Pull utility routines with no SelectionDAG dependence out ofDan Gohman2010-04-141-76/+0
| | | | | | | SelectionDAGBuilder. FunctionLoweringInfo isn't an ideal place for them to live, but it's better than SelectionDAGBuilder for now. llvm-svn: 101267
* Fix typos in comments.Dan Gohman2010-04-141-1/+1
| | | | llvm-svn: 101266
* Add variants of ult, ule, etc. which take a uint64_t RHS, for convenience.Dan Gohman2010-04-081-4/+3
| | | | llvm-svn: 100824
* Use twines to simplify calls to report_fatal_error. For code size and ↵Benjamin Kramer2010-04-081-8/+8
| | | | | | readability. llvm-svn: 100756
* convert a report_fatal_error that I was able to trigger into a nice errorChris Lattner2010-04-081-3/+9
| | | | | | | | | | | | | | so the user at least knows what inline asm is a problem. For example: error: inline asm not supported yet: don't know how to handle tied indirect register inputs pr8788-1.c:14:10: note: generated from here asm ("\n" : "+r" (stack->regs) ^ Instead of: fatal error: error in backend: Don't know how to handle tied indirect register inputs yet! llvm-svn: 100731
* minor tidying.Chris Lattner2010-04-071-4/+3
| | | | llvm-svn: 100725
* rename llvm::llvm_report_error -> llvm::report_fatal_errorChris Lattner2010-04-071-6/+6
| | | | llvm-svn: 100709
* Three changes:Chris Lattner2010-04-071-39/+45
| | | | | | | | | | | | | | | 1. Introduce some enums and accessors in the InlineAsm class that eliminate a ton of magic numbers when handling inline asm SDNode. 2. Add a new MDNodeSDNode selection dag node type that holds a MDNode (shocking!) 3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc metadata, propagating it to the instruction emitter, which drops it. No functionality change. llvm-svn: 100605
* remove the now-redundant MMI pointer in SelectionDAG.Chris Lattner2010-04-051-47/+31
| | | | llvm-svn: 100419
* selection dag doesn't need DwarfWriter, remove some tendrils.Chris Lattner2010-04-051-9/+2
| | | | llvm-svn: 100382
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-041-5/+27
| | | | | | | Added support for address spaces and added a isVolatile field to memcpy, memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) llvm-svn: 100304
* stop using DebugLoc::getUnknownLoc()Chris Lattner2010-04-021-1/+1
| | | | llvm-svn: 100215
OpenPOWER on IntegriCloud