summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* forgot thisDuraid Madina2006-09-041-0/+2
| | | | llvm-svn: 30097
* add setJumpBufSize() and setJumpBufAlignment() to target-lowering.Duraid Madina2006-09-041-2/+2
| | | | | | | Call these from your backend to enjoy setjmp/longjmp goodness, see lib/Target/IA64/IA64ISelLowering.cpp for an example llvm-svn: 30095
* new fileChris Lattner2006-09-041-0/+154
| | | | llvm-svn: 30082
* Avoid beating on the mi2i map when we know the answer already.Chris Lattner2006-09-031-12/+19
| | | | llvm-svn: 30066
* minor speedupChris Lattner2006-09-031-3/+3
| | | | llvm-svn: 30065
* Fix Regression/CodeGen/Generic/2006-09-02-LocalAllocCrash.ll on X86.Chris Lattner2006-09-031-6/+11
| | | | | | | Just because an alias of a register is available, it doesn't mean that we can arbitrarily evict the register. llvm-svn: 30064
* When deleting a machine instruction, make sure to remove it from theChris Lattner2006-09-031-1/+4
| | | | | | livevariables information. This fixes several regalloc=local failures on x86 llvm-svn: 30062
* Move two methods out of line, make them work when the record for a machineChris Lattner2006-09-031-0/+36
| | | | | | instruction includes physregs. llvm-svn: 30061
* improve compat with certain versions of GCC (on cygwin?)Chris Lattner2006-09-021-1/+1
| | | | llvm-svn: 30054
* Iteration is required for some cases, even if they don't occur in crafty.Chris Lattner2006-09-021-13/+24
| | | | | | Restore it, which re-fixes X86/2006-08-21-ExtraMovInst.ll llvm-svn: 30050
* When joining two intervals where the RHS is really simple, use a light-weightChris Lattner2006-09-022-11/+172
| | | | | | method for joining the live ranges instead of the fully-general one. llvm-svn: 30049
* Allow legalizer to expand ISD::MUL using only MULHS in the rare case that isEvan Cheng2006-09-011-6/+13
| | | | | | possible and the target only supports MULHS. llvm-svn: 30022
* Corrections.Jim Laskey2006-09-011-4/+4
| | | | llvm-svn: 30021
* Pull some code out of a hot recursive function because the common case doesn'tChris Lattner2006-09-011-6/+19
| | | | | | need recursion. llvm-svn: 30015
* Reserve space in the ValueNumberInfo vector. This speeds up live intervalChris Lattner2006-09-011-10/+10
| | | | | | | | analysis 16% on crafty. Wrap long lines. llvm-svn: 30012
* Iterative coallescing doesn't buy us anything (we get identical results onChris Lattner2006-09-011-24/+4
| | | | | | crafty with and without it). Removing it speeds up live intervals 6%. llvm-svn: 30010
* DAG combiner fix for rotates. Previously the outer-most condition checksEvan Cheng2006-08-311-27/+44
| | | | | | | for ROTL availability. This prevents it from forming ROTR for targets that has ROTR only. llvm-svn: 29997
* Add a special case that speeds up coallescing a bit, but not enough.Chris Lattner2006-08-311-51/+107
| | | | llvm-svn: 29996
* Delete copies as they are coallesced instead of waiting until the end.Chris Lattner2006-08-311-0/+4
| | | | llvm-svn: 29995
* avoid calling the virtual isMoveInstr method endlessly by caching its results.Chris Lattner2006-08-312-75/+73
| | | | llvm-svn: 29994
* Fix a compiler crash bootstrapping llvm-gcc.Chris Lattner2006-08-301-2/+6
| | | | llvm-svn: 29989
* Teach the coallescer to coallesce live intervals joined by an arbitraryChris Lattner2006-08-292-155/+249
| | | | | | | | number of copies, potentially defining live ranges that appear to have differing value numbers that become identical when coallsced. Among other things, this fixes CodeGen/X86/shift-coalesce.ll and PR687. llvm-svn: 29968
* Handle callee saved registers in dwarf frame info (lead up to exceptionJim Laskey2006-08-291-9/+35
| | | | | | handling.) llvm-svn: 29954
* Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make ↵Evan Cheng2006-08-292-31/+3
| | | | | | it a static method of SelectionDAG. llvm-svn: 29951
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* Eliminate RegisterAnalysis. RegisterPass now does all that is necessary.Chris Lattner2006-08-272-2/+2
| | | | llvm-svn: 29921
* s|llvm/Support/Visibility.h|llvm/Support/Compiler.h|Chris Lattner2006-08-2715-15/+15
| | | | llvm-svn: 29911
* typo fixChris Lattner2006-08-271-3/+4
| | | | llvm-svn: 29910
* Eliminate SelectNodeTo() and getTargetNode() variants which take more thanEvan Cheng2006-08-271-254/+12
| | | | | | | 3 SDOperand operands. They are replaced by versions which take an array of SDOperand and the number of operands. llvm-svn: 29905
* Properly size the string table, and emit symbol table and string tableNate Begeman2006-08-261-59/+81
| | | | | | entries in the correct order, fixing several fixmes. llvm-svn: 29902
* SelectNodeTo now returns a SDNode*.Evan Cheng2006-08-261-74/+74
| | | | llvm-svn: 29901
* Simplifications to liveinterval analysis, no functionality change.Chris Lattner2006-08-262-37/+36
| | | | llvm-svn: 29896
* Completely change the way that joining with physregs is implemented. ThisChris Lattner2006-08-252-35/+72
| | | | | | | | paves the way for future changes, increases coallescing opportunities (in theory, not witnessed in practice), and eliminates the really expensive LiveIntervals::overlapsAliases method. llvm-svn: 29890
* Tidy up.Jim Laskey2006-08-251-2/+4
| | | | llvm-svn: 29888
* Consolidate callee saved register information so that it can me used by debugJim Laskey2006-08-251-20/+21
| | | | | | information and exception handling. llvm-svn: 29881
* Allow for register numbers > 31.Jim Laskey2006-08-251-4/+14
| | | | llvm-svn: 29879
* Get closer to handling globals correctly. We now generally get them in theNate Begeman2006-08-251-5/+70
| | | | | | right section. llvm-svn: 29871
* When replacing value numbers, make sure to compactify the value # space.Chris Lattner2006-08-241-0/+12
| | | | llvm-svn: 29865
* Take advantage of the recent improvements to the liveintervals set (trackingChris Lattner2006-08-243-221/+330
| | | | | | | | | | | | | | | | | | | instructions which define each value#) to simplify and improve the coallescer. In particular, this patch: 1. Implements iterative coallescing. 2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a better solution. 3. Implements PR865, "coallescing" away the second copy in code like: A = B ... B = A This also includes changes to symbolically print registers in intervals when possible. llvm-svn: 29862
* Initial checkin of the Mach-O emitter. There's plenty of fixmes, but itNate Begeman2006-08-231-0/+428
| | | | | | does emit linkable .o files in very simple cases. llvm-svn: 29850
* Improve the LiveInterval class to keep track of which machine instructionChris Lattner2006-08-222-17/+40
| | | | | | | defines each value# tracked by the interval. This will be used to improve coallescing. llvm-svn: 29830
* Print physreg names symbolically in dumpsChris Lattner2006-08-211-2/+3
| | | | llvm-svn: 29805
* Print debug info as:Chris Lattner2006-08-211-2/+5
| | | | | | | | | | | | | | | | *** Register mapping *** reg 1024 -> %reg1028 reg 1026 -> EAX reg 1027 -> %reg1028 instead of: *** Register mapping *** reg 1024 -> reg 1028 reg 1026 -> reg 15 reg 1027 -> reg 1028 llvm-svn: 29803
* Adding C++ member support.Jim Laskey2006-08-212-62/+152
| | | | llvm-svn: 29799
* Fix PR861Chris Lattner2006-08-211-0/+1
| | | | llvm-svn: 29796
* Added a check so that if we have two machine instructions in this formBill Wendling2006-08-211-10/+30
| | | | | | | | | MOV R0, R1 MOV R1, R0 the second machine instruction is removed. Added a regression test. llvm-svn: 29792
* switch the SUnit pred/succ sets from being std::sets to being smallvectors.Chris Lattner2006-08-173-78/+82
| | | | | | | | This reduces selectiondag time on kc++ from 5.43s to 4.98s (9%). More significantly, this speeds up the default ppc scheduler from ~1571ms to 1063ms, a 33% speedup. llvm-svn: 29743
* minor changes.Chris Lattner2006-08-162-22/+24
| | | | llvm-svn: 29740
* Use the appropriate typedefChris Lattner2006-08-161-2/+1
| | | | llvm-svn: 29730
* Start using SDVTList more consistentlyChris Lattner2006-08-152-72/+78
| | | | llvm-svn: 29711
OpenPOWER on IntegriCloud