summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86FastISel.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* FastISel doesn't yet handle callee-pop functions.Dan Gohman2010-05-271-0/+4
| | | | | | To support this, move IsCalleePop from X86ISelLowering to X86Subtarget. llvm-svn: 104866
* Rename X86 subregister indices to something shorter.Jakob Stoklund Olesen2010-05-241-2/+2
| | | | | | Use the tablegen-produced enums. llvm-svn: 104493
* - Change MachineInstr::findRegisterDefOperandIdx so it can also look for defsEvan Cheng2010-05-211-1/+1
| | | | | | | | | | that are aliases of the specified register. - Rename modifiesRegister to definesRegister since it's looking a def of the specific register or one of its super-registers. It's not looking for def of a sub-register or alias that could change the specified register. - Added modifiesRegister to look for defs of aliases. llvm-svn: 104377
* Add support for thiscall calling convention.Anton Korobeynikov2010-05-161-0/+2
| | | | | | Patch by Charles Davis and Steven Watanabe! llvm-svn: 103902
* Add initial kill flag support to FastISel.Dan Gohman2010-05-111-5/+7
| | | | llvm-svn: 103529
* Add a DebugLoc argument to TargetInstrInfo::copyRegToReg, so that itDan Gohman2010-05-061-4/+5
| | | | | | doesn't have to guess. llvm-svn: 103194
* Move HandlePHINodesInSuccessorBlocks functions out of SelectionDAGISelDan Gohman2010-04-221-4/+6
| | | | | | and into SelectionDAGBuilder and FastISel. llvm-svn: 102123
* Use const qualifiers with TargetLowering. This eliminates severalDan Gohman2010-04-171-1/+0
| | | | | | | | | | | | | 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-6/+6
| | | | | | | Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
* reapply r101434Gabor Greif2010-04-161-6/+6
| | | | | | | | | | | | | 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-6/+6
| | | | llvm-svn: 101434
* reapply r101364, which has been backed out in r101368Gabor Greif2010-04-151-6/+6
| | | | | | | | | | | | | 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-6/+6
| | | | llvm-svn: 101368
* rotate CallInst operands, i.e. move callee to the backGabor Greif2010-04-151-6/+6
| | | | | | | | | | 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 const qualifiers to CodeGen's use of LLVM IR constructs.Dan Gohman2010-04-151-82/+84
| | | | llvm-svn: 101334
* Factor out EH landing pad code into a separate function, and constifyDan Gohman2010-04-141-2/+2
| | | | | | a bunch of stuff to support it. llvm-svn: 101273
* Fix a number of clang -Wsign-compare warnings that didn't have an obviousJohn McCall2010-04-061-1/+1
| | | | | | | solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. llvm-svn: 100581
* unthread MMI from FastISelChris Lattner2010-04-051-4/+2
| | | | llvm-svn: 100416
* fastisel doesn't need DwarfWriter, remove some tendricles.Chris Lattner2010-04-051-4/+2
| | | | llvm-svn: 100381
* Make isInt?? and isUint?? template specializations of the generic versions. ThisBenjamin Kramer2010-03-291-2/+2
| | | | | | | makes calls a little bit more consistent and allows easy removal of the specializations in the future. Convert all callers to the templated functions. llvm-svn: 99838
* Couple of changes that Dan mentioned for llvm.stackprotector fast-isel.Eric Christopher2010-03-181-2/+2
| | | | llvm-svn: 98881
* Make fast-isel understand llvm.stackprotector.Eric Christopher2010-03-181-0/+15
| | | | llvm-svn: 98862
* Have fast-isel understand llvm.objectsize. Update testcase for slightlyEric Christopher2010-03-111-0/+24
| | | | | | different codegen. llvm-svn: 98244
* add support, testcases, and dox for the new GHC callingChris Lattner2010-03-111-1/+5
| | | | | | convention. Patch by David Terei! llvm-svn: 98212
* not committing what you test = bad.Chris Lattner2010-03-041-1/+2
| | | | llvm-svn: 97740
* make gep matching in fastisel match the base of the gep as aChris Lattner2010-03-041-1/+8
| | | | | | | register if it isn't possible to match the indexes *and* the base. This fixes some fast isel rejects of load instructions on oggenc. llvm-svn: 97739
* Move dbg_value generation to target-independent FastISel,Dale Johannesen2010-02-261-29/+0
| | | | | | as X86 is currently the only FastISel target. Per review. llvm-svn: 97255
* Generate DBG_VALUE from dbg.value intrinsics. These currentlyDale Johannesen2010-02-181-0/+31
| | | | | | comes out as comments but will eventually generate DWARF. llvm-svn: 96601
* Uniformize the names of type predicates: rather than having isFloatTy andDuncan Sands2010-02-151-6/+6
| | | | | | isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris! llvm-svn: 96223
* refactor the conditional jump instructions in the .td file toChris Lattner2010-02-111-26/+27
| | | | | | | use a multipattern that generates both the 1-byte and 4-byte versions from the same defm llvm-svn: 95901
* 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
* Rename the PerformTailCallOpt variable to GuaranteedTailCallOpt to reflectDan Gohman2010-02-081-1/+1
| | | | | | its current purpose. llvm-svn: 95564
* Add assertion to humor the paranoid.Dale Johannesen2010-01-291-0/+1
| | | | llvm-svn: 94843
* Restore to pre-94570 state.Evan Cheng2010-01-271-0/+6
| | | | llvm-svn: 94625
* Ignore 'forced' tailcall opt in fastisel mode.Evan Cheng2010-01-261-5/+0
| | | | llvm-svn: 94617
* Code refactoring, no functionality change.Evan Cheng2010-01-261-2/+1
| | | | llvm-svn: 94570
* Generate DEBUG_VALUE comments on x86. The (limited)Dale Johannesen2010-01-261-0/+10
| | | | | | | 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-10/+0
| | | | llvm-svn: 93818
* Enable code to emit dbg.declare as DEBUG_VALUEDale Johannesen2010-01-181-0/+10
| | | | | | | | | 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
* Have FastISel handle llvm.trap().Eric Christopher2010-01-181-0/+4
| | | | llvm-svn: 93781
* Revert commit 93204, since it causes the assembler to barfDuncan Sands2010-01-121-42/+0
| | | | | | | on x86-64 linux with messages like this: Error: Incorrect register `%r14' used with `l' suffix llvm-svn: 93242
* Add manual ISD::OR fastisel selection routines. TableGen is no longer ↵Evan Cheng2010-01-111-0/+42
| | | | | | autogen them after 93152 and 93191. llvm-svn: 93204
* Reword this comment to reference a more fundamental issue.Dan Gohman2010-01-111-2/+2
| | | | llvm-svn: 93154
* After further thought revert the patch to make fast-isel avoidEric Christopher2010-01-081-6/+0
| | | | | | | | | | | putting relocations into the constant pool - this isn't needed for correctness and in the rare occasion it happens would pull us out of fast isel for the block. If fast-isel application startup time ever becomes an issue we can add better support for these addresses instead of bailing. llvm-svn: 92995
* Remove extraneous include.Eric Christopher2010-01-081-1/+0
| | | | llvm-svn: 92972
* If the data requires a relocation then don't attempt toEric Christopher2010-01-071-0/+7
| | | | | | | add it to the constant pool for fast-isel. We already don't add it for the normal case. llvm-svn: 92934
* Convert a ton of simple integer type equality tests to the new predicate.Benjamin Kramer2010-01-051-6/+6
| | | | llvm-svn: 92760
* Add a bool flag to StackObjects telling whether they reference spillDavid Greene2009-11-121-1/+1
| | | | | | | | | | | | | slots. The AsmPrinter will use this information to determine whether to print a spill/reload comment. Remove default argument values. It's too easy to pass a wrong argument value when multiple arguments have default values. Make everything explicit to trap bugs early. Update all targets to adhere to the new interfaces.. llvm-svn: 87022
* strength reduce a ton of type equality tests to check the typeid (ThroughChris Lattner2009-10-051-5/+5
| | | | | | | | the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. llvm-svn: 83297
* Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.Sandeep Patel2009-09-021-3/+4
| | | | llvm-svn: 80773
OpenPOWER on IntegriCloud