summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fix a bug in my legalizer reworking that caused the X86 backend to not getChris Lattner2006-01-301-2/+1
| | | | | | | a chance to custom legalize setcc, which broke a bunch of C++ Codes. Testcase here: CodeGen/X86/2006-01-30-LongSetcc.ll llvm-svn: 25821
* don't insert an and node if it isn't needed here, this can prevent foldingChris Lattner2006-01-301-1/+3
| | | | | | of lowered target nodes. llvm-svn: 25804
* Move MaskedValueIsZero from the DAGCombiner to the TargetLowering ↵Chris Lattner2006-01-301-120/+21
| | | | | | interface,making isMaskedValueZeroForTargetNode simpler, and useable from other partsof the compiler. llvm-svn: 25803
* pass the address of MaskedValueIsZero into isMaskedValueZeroForTargetNode,Chris Lattner2006-01-301-1/+1
| | | | | | to permit recursion llvm-svn: 25799
* Fix RET of promoted values on targets that custom expand RET to a target node.Chris Lattner2006-01-291-8/+9
| | | | llvm-svn: 25794
* cleanups to the ValueTypeActions interfaceChris Lattner2006-01-291-7/+5
| | | | llvm-svn: 25785
* Remove some special case hacks for CALLSEQ_*, using UpdateNodeOperandsChris Lattner2006-01-292-60/+27
| | | | | | instead. llvm-svn: 25780
* Allow custom expansion of ConstantVec nodes. PPC will use this in the future.Chris Lattner2006-01-291-22/+35
| | | | llvm-svn: 25774
* Legalize ConstantFP into TargetConstantFP when the target allows. ImplementChris Lattner2006-01-292-2/+39
| | | | | | custom expansion of ConstantFP nodes. llvm-svn: 25772
* eliminate uses of SelectionDAG::getBR2Way_CCChris Lattner2006-01-292-9/+24
| | | | llvm-svn: 25767
* Use the new "UpdateNodeOperands" method to simplify LegalizeDAG and make itChris Lattner2006-01-281-317/+194
| | | | | | | | | | | | | | faster. This cuts about 120 lines of code out of the legalizer (mostly code checking to see if operands have changed). It also fixes an ugly performance issue, where the legalizer cloned the entire graph after any change. Now the "UpdateNodeOperands" method gives it a chance to reuse nodes if the operands of a node change but not its opcode or valuetypes. This speeds up instruction selection time on kimwitu++ by about 8.2% with a release build. llvm-svn: 25746
* add another method variantChris Lattner2006-01-281-3/+18
| | | | llvm-svn: 25744
* add some methods for updating nodesChris Lattner2006-01-281-0/+234
| | | | llvm-svn: 25742
* minor tweaksChris Lattner2006-01-281-21/+21
| | | | llvm-svn: 25740
* move a bunch of code, no other change.Chris Lattner2006-01-281-326/+324
| | | | llvm-svn: 25739
* remove a couple more now-extraneous legalizeop'sChris Lattner2006-01-281-9/+5
| | | | llvm-svn: 25738
* fix a bugChris Lattner2006-01-281-2/+1
| | | | llvm-svn: 25737
* Several major changes:Chris Lattner2006-01-281-764/+488
| | | | | | | | | | | 1. Pull out the expand cases for BSWAP and CT* into a separate function, reducing the size of LegalizeOp. 2. Fix a bug where expand(bswap i64) was wrong when i64 is legal. 3. Changed LegalizeOp/PromoteOp so that the legalizer never needs to be iterative. It now operates in a single pass over the nodes. 4. Simplify a LOT of code, with a net reduction of ~280 lines. llvm-svn: 25736
* Eliminate the need for ExpandOp to set 'needsanotheriteration', as it alreadyChris Lattner2006-01-281-131/+80
| | | | | | | | | | | relegalizes the stuff it returns. Add the ability to custom expand ADD/SUB, so that targets don't need to deal with ADD_PARTS/SUB_PARTS if they don't want. Fix some obscure potential bugs and simplify code. llvm-svn: 25732
* Instead of making callers of ExpandLibCall legalize the result, makeChris Lattner2006-01-281-6/+7
| | | | | | ExpandLibCall do it itself. llvm-svn: 25731
* Eliminate the need to do another iteration of the legalizer after insertingChris Lattner2006-01-281-3/+2
| | | | | | a libcall. llvm-svn: 25730
* remove method I just addedChris Lattner2006-01-281-7/+0
| | | | llvm-svn: 25728
* add a new callbackChris Lattner2006-01-281-0/+7
| | | | llvm-svn: 25727
* Implement Promote for VAARG, and allow it to be custom promoted for peopleNate Begeman2006-01-282-1/+32
| | | | | | who don't want the default behavior (Alpha). llvm-svn: 25726
* Add a missing case to the dag combiner.Nate Begeman2006-01-281-2/+3
| | | | llvm-svn: 25723
* Remove the ISD::CALL and ISD::TAILCALL nodesChris Lattner2006-01-282-83/+1
| | | | llvm-svn: 25721
* Remove TLI.LowerReturnTo, and just let targets custom lower ISD::RET forNate Begeman2006-01-271-37/+22
| | | | | | | the same functionality. This addresses another piece of bug 680. Next, on to fixing Alpha VAARG, which I broke last time. llvm-svn: 25696
* Using bit size of integers instead of ambiguous "long" et all.Jim Laskey2006-01-271-62/+62
| | | | llvm-svn: 25694
* Sorry - really folowing convention.Jim Laskey2006-01-271-1/+1
| | | | llvm-svn: 25691
* Following convention.Jim Laskey2006-01-271-1/+1
| | | | llvm-svn: 25689
* fix buildAndrew Lenharth2006-01-271-1/+1
| | | | llvm-svn: 25687
* Fix build error that is apparently only a warning with some compilers.Chris Lattner2006-01-271-1/+1
| | | | llvm-svn: 25686
* Forgot the version number.Jim Laskey2006-01-271-1/+1
| | | | llvm-svn: 25685
* Improve visibility/correctness of operand indices in "llvm.db" objects.Jim Laskey2006-01-272-48/+71
| | | | | | Handle 64 in DIEs. llvm-svn: 25684
* Stub out a methodChris Lattner2006-01-271-0/+6
| | | | llvm-svn: 25676
* Teach the scheduler to emit the appropriate INLINEASM MachineInstr for anChris Lattner2006-01-261-0/+29
| | | | | | ISD::INLINEASM node. llvm-svn: 25668
* initial selectiondag support for new INLINEASM node. Note that inline asmsChris Lattner2006-01-263-1/+74
| | | | | | with outputs or inputs are not supported yet. :) llvm-svn: 25664
* Use global information to fill out Dwarf compile units.Jim Laskey2006-01-262-22/+18
| | | | llvm-svn: 25662
* Set up MachineDebugInfo to scan for debug information form "llvm.db"g globals.Jim Laskey2006-01-263-15/+288
| | | | | | Global Variable information is now pulled from "llvm.dbg.globals" llvm-svn: 25655
* Clean up some code; improve efficiency; and fixed a potential bug involvingEvan Cheng2006-01-261-150/+127
| | | | | | chain successors. llvm-svn: 25630
* Don't break the optimized build (by incorrect placement of #endif)Reid Spencer2006-01-251-1/+1
| | | | llvm-svn: 25613
* No need to keep track of top and bottom nodes in a group since the vector isEvan Cheng2006-01-251-5/+0
| | | | | | already in order. Thanks Jim for pointing it out. llvm-svn: 25608
* First part of bug 680:Nate Begeman2006-01-253-67/+192
| | | | | | | Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same way as everything else. llvm-svn: 25606
* Make it even more portable.Jeff Cohen2006-01-251-1/+1
| | | | llvm-svn: 25605
* Fix VC++ compilation error.Jeff Cohen2006-01-251-1/+1
| | | | llvm-svn: 25604
* Bottom up register usage reducing list scheduler.Evan Cheng2006-01-251-21/+451
| | | | llvm-svn: 25601
* Keep track of bottom / top element of a set of flagged nodes.Evan Cheng2006-01-251-1/+6
| | | | llvm-svn: 25600
* If scheduler choice is the default (-sched=default), use target schedulingEvan Cheng2006-01-251-2/+10
| | | | | | | | preference to determine which scheduler to use. SchedulingForLatency == Breadth first; SchedulingForRegPressure == bottom up register reduction list scheduler. llvm-svn: 25599
* Portably cast a pointer to an integer.Jeff Cohen2006-01-251-1/+1
| | | | llvm-svn: 25594
* fix build on 64 bit hostsAndrew Lenharth2006-01-241-1/+1
| | | | llvm-svn: 25591
OpenPOWER on IntegriCloud