summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Switch the code generator (except the JIT) onto the new DebugLocChris Lattner2010-04-021-4/+5
| | | | | | | | | | | | | | | representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. llvm-svn: 100209
* Revert r100191 since it breaks objc in clang Mon P Wang2010-04-021-27/+5
| | | | llvm-svn: 100199
* Reapply address space patch after fixing an issue in MemCopyOptimizer.Mon P Wang2010-04-021-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: 100191
* add new apis for getting/setting !dbg metadata on Chris Lattner2010-03-311-2/+2
| | | | | | | | | instructions. In addition to being a convenience, they are faster than the old apis, particularly when not going from an MDKindID like people should be doing. llvm-svn: 99982
* Revert Mon Ping's change 99928, since it broke all the llvm-gcc buildbots.Bob Wilson2010-03-301-27/+5
| | | | llvm-svn: 99948
* Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang2010-03-301-5/+27
| | | | | | | | | memmove, and memset, e.g., llvm.memcpy.i32(i8*, i8*, i32, i32) -> llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) A update of langref will occur in a subsequent checkin. llvm-svn: 99928
OpenPOWER on IntegriCloud