summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Factor out EH landing pad code into a separate function, and constifyDan Gohman2010-04-141-1/+1
| | | | | | a bunch of stuff to support it. llvm-svn: 101273
* Generalize this code to handle Instructions in addition to ConstantExprs.Dan Gohman2010-04-141-3/+3
| | | | llvm-svn: 101210
* Add a few comments.Dan Gohman2010-04-131-0/+5
| | | | llvm-svn: 101148
* Move printing of target-indepedent DEBUG_VALUE commentsDale Johannesen2010-04-071-1/+3
| | | | | | | into AsmPrinter. Target-dependent form is still generated by FastISel and still handled in X86 code. llvm-svn: 100596
* unthread MMI from FastISelChris Lattner2010-04-051-38/+31
| | | | llvm-svn: 100416
* fastisel doesn't need DwarfWriter, remove some tendricles.Chris Lattner2010-04-051-5/+2
| | | | llvm-svn: 100381
* Switch the code generator (except the JIT) onto the new DebugLocChris Lattner2010-04-021-2/+2
| | | | | | | | | | | | | | | 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
* add new apis for getting/setting !dbg metadata on Chris Lattner2010-03-311-4/+3
| | | | | | | | | 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
* Remove dead include.Daniel Dunbar2010-03-111-1/+0
| | | | llvm-svn: 98225
* Move dbg_value generation to target-independent FastISel,Dale Johannesen2010-02-261-0/+28
| | | | | | as X86 is currently the only FastISel target. Per review. llvm-svn: 97255
* Fix comments to reflect renaming elsewhere.Dale Johannesen2010-02-101-1/+1
| | | | llvm-svn: 95730
* move target-independent opcodes out of TargetInstrInfoChris Lattner2010-02-091-2/+2
| | | | | | | | | into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. llvm-svn: 95687
* After Victor's latest commits I am seeing nullDale Johannesen2010-02-061-0/+2
| | | | | | | addresses in dbg.declare; ignore this for the moment to prevent things from breaking. llvm-svn: 95471
* Generate DEBUG_VALUE comments on x86. The (limited)Dale Johannesen2010-01-261-0/+3
| | | | | | | dbg.declare's we currently generate go through both register allocators without perturbing the results. llvm-svn: 94480
* Revert 93811 per request.Dale Johannesen2010-01-191-3/+0
| | | | llvm-svn: 93818
* Enable code to emit dbg.declare as DEBUG_VALUEDale Johannesen2010-01-181-0/+3
| | | | | | | | | comments (fast isel, X86). This doesn't seem to break any functionality, but will introduce cases where -g affects the generated code. I'll be fixing that. llvm-svn: 93811
* Improve llvm.dbg.declare intrinsic by referring directly to the storage in ↵Victor Hernandez2010-01-151-2/+0
| | | | | | | | | its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument. llvm-svn: 93531
* Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be ↵Victor Hernandez2010-01-151-0/+2
| | | | | | auto-upgraded llvm-svn: 93515
* Improve llvm.dbg.declare intrinsic by referring directly to the storage in ↵Victor Hernandez2010-01-151-2/+0
| | | | | | | | its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. llvm-svn: 93504
* Fix a typo in a comment.Dan Gohman2010-01-121-1/+1
| | | | llvm-svn: 93227
* Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGenDan Gohman2010-01-051-12/+12
| | | | | | | uses several kinds of opcode values which are not declared within that enum. This fixes PR5946. llvm-svn: 92794
* Delete renaming use of dead dbg intrinsics.Devang Patel2010-01-051-6/+0
| | | | | | | | | Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start llvm-svn: 92672
* remove a bunch of unneeded functions.Chris Lattner2009-12-291-1/+1
| | | | llvm-svn: 92263
* This is a major cleanup of the instruction metadata interfaces thatChris Lattner2009-12-281-5/+1
| | | | | | | | | | | | | | | | | | | | | | I asked Devang to do back on Sep 27. Instead of going through the MetadataContext class with methods like getMD() and getMDs(), just ask the instruction directly for its metadata with getMetadata() and getAllMetadata(). This includes a variety of other fixes and improvements: previously all Value*'s were bloated because the HasMetadata bit was thrown into value, adding a 9th bit to a byte. Now this is properly sunk down to the Instruction class (the only place where it makes sense) and it will be folded away somewhere soon. This also fixes some confusion in getMDs and its clients about whether the returned list is indexed by the MDID or densely packed. This is now returned sorted and densely packed and the comments make this clear. This introduces a number of fixme's which I'll follow up on. llvm-svn: 92235
* rename getMDKind -> getMDKindID, make it autoinsert if an MD KindChris Lattner2009-12-281-3/+3
| | | | | | | doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. llvm-svn: 92225
* Remove dead variable.Bill Wendling2009-12-281-3/+0
| | | | llvm-svn: 92180
* Make TargetSelectInstruction protected and called from FastISel.cppDan Gohman2009-12-051-1/+9
| | | | | | instead of SelectionDAGISel.cpp. llvm-svn: 90636
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-031-1/+1
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* Rename SelectionDAGLowering to SelectionDAGBuilder, and renameDan Gohman2009-11-231-1/+1
| | | | | | SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp. llvm-svn: 89681
* Move some more code out of SelectionDAGBuild.cpp and intoDan Gohman2009-11-231-0/+1
| | | | | | FunctionLoweringInfo.cpp. llvm-svn: 89674
* "Attach debug info with llvm instructions" mode was enabled a month ago. Now ↵Devang Patel2009-11-121-44/+5
| | | | | | make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. llvm-svn: 87014
* Implement support to debug inlined functions.Devang Patel2009-11-101-39/+11
| | | | llvm-svn: 86748
* I don't see any point in having both eh.selector.i32 and eh.selector.i64,Duncan Sands2009-10-141-8/+17
| | | | | | | | | | | | | so get rid of eh.selector.i64 and rename eh.selector.i32 to eh.selector. Likewise for eh.typeid.for. This aligns us with gcc, which always uses a 32 bit value for the selector on all platforms. My understanding is that the register allocator used to assert if the selector intrinsic size didn't match the pointer size, and this was the reason for introducing the two variants. However my testing shows that this is no longer the case (I fixed some bugs in selector lowering yesterday, and some more today in the fastisel path; these might have caused the original problems). llvm-svn: 84106
* s/DebugLoc.CompileUnit/DebugLoc.Scope/gDevang Patel2009-10-131-4/+3
| | | | | | s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g llvm-svn: 84054
* Extract scope information from the variable itself, instead of relying on ↵Devang Patel2009-10-091-8/+2
| | | | | | | | alloca or llvm.dbg.declare location. While recording beginning of a function, use scope info from the first location entry instead of just relying on first location entry itself. llvm-svn: 83684
* Add support to handle debug info attached to an instruction.Devang Patel2009-10-061-0/+2
| | | | | | This is not yet enabled. llvm-svn: 83400
* If location info is attached with an instruction then keep track of alloca ↵Devang Patel2009-10-011-3/+9
| | | | | | slots used by a variable. This info will be used by AsmPrinter to emit debug info for variables. llvm-svn: 83189
* Make fast-isel try ISD::FNEG before resorting to bitcasts and xors.Dan Gohman2009-09-111-1/+9
| | | | llvm-svn: 81493
* Reapply r81171 with a fix: don't try to use i64 when itDan Gohman2009-09-111-4/+19
| | | | | | isn't legal. llvm-svn: 81492
* Revert r81171 which was causing pr4927.Bob Wilson2009-09-101-17/+4
| | | | llvm-svn: 81415
* Fix a thinko: When lowering fneg with xor, bitcast the operandsDan Gohman2009-09-071-4/+17
| | | | | | | | | from floating-point to integer first, and bitcast the result back to floating-point. Previously, this test was passing by falling back to SelectionDAG lowering. The resulting code isn't as nice, but it's correct and CodeGen now stays on the fast path. llvm-svn: 81171
* LLVM currently represents floating-point negation as -0.0 - x. FixDan Gohman2009-09-031-0/+23
| | | | | | | FastISel to recognize this pattern and emit a floating-point negation using xor. llvm-svn: 80963
* Reapply 79977.Devang Patel2009-08-281-9/+6
| | | | | | Use MDNodes to encode debug info in llvm IR. llvm-svn: 80406
* Revert 79977. It causes llvm-gcc bootstrap failures on some platforms.Devang Patel2009-08-261-6/+9
| | | | llvm-svn: 80073
* Update DebugInfo interface to use metadata, instead of special named ↵Devang Patel2009-08-251-9/+6
| | | | | | | | llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well. This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!) llvm-svn: 79977
* Record variable debug info at ISel time directly.Devang Patel2009-08-221-6/+1
| | | | llvm-svn: 79742
* Push LLVMContexts through the IntegerType APIs.Owen Anderson2009-08-131-1/+2
| | | | llvm-svn: 78948
* Add contexts to some of the MVT APIs. No functionality change yet, just the ↵Owen Anderson2009-08-121-4/+4
| | | | | | infrastructure work needed to get the contexts to where they need to be first. llvm-svn: 78759
* Fix warnings.Owen Anderson2009-08-111-5/+3
| | | | llvm-svn: 78725
* Split EVT into MVT and EVT, the former representing _just_ a primitive type, ↵Owen Anderson2009-08-111-31/+30
| | | | | | | | while the latter is capable of representing either a primitive or an extended type. llvm-svn: 78713
OpenPOWER on IntegriCloud