summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Silence unused variable warning.Devang Patel2009-04-091-1/+1
| | | | llvm-svn: 68735
* llvm.dbg.func_start also defines beginning of function scope.Devang Patel2009-04-091-7/+3
| | | | llvm-svn: 68727
* Don't attempt to handle aggregate argument values in FastISel; letDan Gohman2009-04-071-1/+5
| | | | | | SelectionDAG do those. This fixes PR3955. llvm-svn: 68546
* Improve FastISel's handling of truncates to i1, and implementDan Gohman2009-03-131-10/+18
| | | | | | | | ptrtoint and inttoptr in X86FastISel. These casts aren't always handled in the generic FastISel code because X86 sometimes needs custom code to do truncation and zero-extension. llvm-svn: 66988
* Fix FastISel's assumption that i1 values are always zero-extendedDan Gohman2009-03-131-1/+14
| | | | | | | | | by inserting explicit zero extensions where necessary. Included is a testcase where SelectionDAG produces a virtual register holding an i1 value which FastISel previously mistakenly assumed to be zero-extended. llvm-svn: 66941
* Oops...I committed too much.Bill Wendling2009-03-131-4/+6
| | | | llvm-svn: 66867
* Temporarily XFAIL this test.Bill Wendling2009-03-131-6/+4
| | | | llvm-svn: 66866
* Pass in a std::string when getting the names of debugging things. This cuts downBill Wendling2009-03-091-4/+6
| | | | | | on the number of times a std::string is created and copied. llvm-svn: 66396
* Clean up dwarf writer, part 1. This eliminated the horrible recursive ↵Evan Cheng2009-02-251-4/+4
| | | | | | | | getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior. This is a very minor compile time win. llvm-svn: 65438
* Overhaul my earlier submission due to feedback. It's a large patch, but most ofBill Wendling2009-02-241-1/+0
| | | | | | | | | | | | them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. llvm-svn: 65379
* - Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emitBill Wendling2009-02-241-0/+1
| | | | | | | | | | a DBG_LABEL or not. We want to fall back to the original way of emitting debug info when we're in -O0/-fast mode. - Add plumbing in to pass the "Fast" flag to places that need it. - XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I need to investigate still. llvm-svn: 65367
* Revert this. It was breaking stuff.Bill Wendling2009-02-131-6/+45
| | | | llvm-svn: 64428
* Turn off the old way of handling debug information in the code generator. UseBill Wendling2009-02-131-45/+6
| | | | | | | the new way, where all of the information is passed on SDNodes and machine instructions. llvm-svn: 64427
* make fast isel fall back to selectiondags for VLA llvm.declare intrinsics.Chris Lattner2009-02-121-2/+2
| | | | llvm-svn: 64379
* Create DebugLoc information in FastISel. Several temporary methods wereBill Wendling2009-02-031-25/+32
| | | | | | | created. Specifically, those BuildMIs which use "DebugLoc::getUnknownLoc()". I'll remove them soon. llvm-svn: 63584
* Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and ↵Evan Cheng2009-01-221-3/+3
| | | | | | SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead. llvm-svn: 62762
* Verify debug info.Devang Patel2009-01-191-5/+5
| | | | llvm-svn: 62545
* Validate dbg_* intrinsics before lowering them.Devang Patel2009-01-151-5/+5
| | | | llvm-svn: 62286
* Use DebugInfo interface to lower dbg_* intrinsics.Devang Patel2009-01-131-20/+25
| | | | llvm-svn: 62127
* Rename getABITypeSize to getTypePaddedSize, asDuncan Sands2009-01-121-2/+2
| | | | | | suggested by Chris. llvm-svn: 62099
* Factor out the code for sign-extending/truncating gep indicesDan Gohman2008-12-081-23/+32
| | | | | | | | | and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. llvm-svn: 60696
* Eliminate some unused variable compile time warnings.Evan Cheng2008-11-241-0/+2
| | | | llvm-svn: 59952
* Emit label for llvm.dbg.func.start of the inlined function.Devang Patel2008-11-061-3/+8
| | | | llvm-svn: 58814
* FastISel support for exception-handling constructs.Dan Gohman2008-10-141-1/+69
| | | | | | | | | - Move the EH landing-pad code and adjust it so that it works with FastISel as well as with SDISel. - Add FastISel support for @llvm.eh.exception and @llvm.eh.selector. llvm-svn: 57539
* calls can be supported.Chris Lattner2008-10-131-9/+9
| | | | llvm-svn: 57428
* Add a "loses information" return value to APFloat::convertDale Johannesen2008-10-091-4/+8
| | | | | | | and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. llvm-svn: 57329
* Avoid emitting redundant materializations of integer constantsDan Gohman2008-10-071-3/+4
| | | | | | | for things like null pointers, which at this level aren't different from regular integer constants. llvm-svn: 57265
* Implement fast-isel support for zero-extending from i1.Dan Gohman2008-10-031-1/+12
| | | | | | | It turns out that this is a fairly common operation, and it's easy enough to handle. llvm-svn: 56990
* Optimize conditional branches in X86FastISel. This replacesDan Gohman2008-10-021-10/+18
| | | | | | | | | | | sequences like this: sete %al testb %al, %al jne LBB11_1 with this: je LBB11_1 llvm-svn: 56969
* Move the primary fast-isel top-level comments to FastISel.cpp, whereDan Gohman2008-09-301-0/+28
| | | | | | they'll be a little more visible. Also, update and reword them a bit. llvm-svn: 56877
* Support for i1 XOR in FastISel. It is actually safe becauseDan Gohman2008-09-251-2/+3
| | | | | | i1 operands are assumed to already by zero-extended. llvm-svn: 56615
* FastISel support for debug info.Dan Gohman2008-09-251-0/+94
| | | | llvm-svn: 56610
* Fix a recent fast-isel coverage regression - don't bail out beforeDan Gohman2008-09-251-3/+4
| | | | | | giving the target a chance to materialize constants. llvm-svn: 56605
* Arrange for FastISel code to have access to the MachineModuleInfoDan Gohman2008-09-231-1/+3
| | | | | | object. This will be needed to support debug info. llvm-svn: 56508
* Refactor X86SelectConstAddr, folding it into X86SelectAddress. ThisDan Gohman2008-09-191-21/+15
| | | | | | | results in better code for globals. Also, unbreak the local CSE for GlobalValue stub loads. llvm-svn: 56371
* FastISel support for i1 constants.Dan Gohman2008-09-101-2/+10
| | | | llvm-svn: 56068
* Add X86FastISel support for static allocas, and refencesDan Gohman2008-09-101-13/+21
| | | | | | | to static allocas. As part of this change, refactor the address mode code for laods and stores. llvm-svn: 56066
* Clean this up, based on Evan's suggestions.Owen Anderson2008-09-091-2/+2
| | | | llvm-svn: 56009
* Check for type legality before materializing integer constants in fast isel. ↵Owen Anderson2008-09-091-0/+2
| | | | | | | | With this change, all of MultiSource/Applications passes on Darwin/X86 under FastISel. llvm-svn: 55982
* Fix a constant lowering bug. Now we can do load and store instructions with ↵Evan Cheng2008-09-091-0/+13
| | | | | | funky getelementptr embedded in the address operand. llvm-svn: 55975
* Add fast isel physical register definition support.Evan Cheng2008-09-081-7/+64
| | | | llvm-svn: 55892
* Indentation.Evan Cheng2008-09-071-2/+2
| | | | llvm-svn: 55880
* Revert r55859. This is breaking the build in the abscence of its companion ↵Owen Anderson2008-09-051-4/+12
| | | | | | commit. llvm-svn: 55865
* FastISel support for AND and OR with type i1.Dan Gohman2008-09-051-2/+10
| | | | llvm-svn: 55846
* FastISel support for ConstantExprs.Dan Gohman2008-09-051-5/+17
| | | | llvm-svn: 55843
* FastISel support for unreachable.Dan Gohman2008-09-051-0/+4
| | | | llvm-svn: 55818
* Add initial support for selecting constant materializations that require ↵Owen Anderson2008-09-051-1/+1
| | | | | | | | constant pool loads on X86 in fast isel. This isn't actually used yet. llvm-svn: 55814
* Do trivial local CSE for constants and other non-Instruction valuesDan Gohman2008-09-031-12/+15
| | | | | | in FastISel. llvm-svn: 55748
* Create HandlePHINodesInSuccessorBlocksFast, a version ofDan Gohman2008-09-031-152/+127
| | | | | | | | | | | | | HandlePHINodesInSuccessorBlocks that works FastISel-style. This allows PHI nodes to be updated correctly while using FastISel. This also involves some code reorganization; ValueMap and MBBMap are now members of the FastISel class, so they needn't be passed around explicitly anymore. Also, SelectInstructions is changed to SelectInstruction, and only does one instruction at a time. llvm-svn: 55746
* Oops, I accidentally broke the fallback case with my last commit.Owen Anderson2008-09-031-0/+2
| | | | llvm-svn: 55704
OpenPOWER on IntegriCloud