summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* add a new SDVTList type and new SelectionDAG::getVTList methods to streamlineChris Lattner2006-08-151-68/+79
| | | | | | the creation of canonical VTLists. llvm-svn: 29709
* eliminate use of getNode that takes vector of valuetypes.Chris Lattner2006-08-142-30/+30
| | | | llvm-svn: 29687
* Add a new getNode() method that takes a pointer to an already-intern'd listChris Lattner2006-08-141-78/+70
| | | | | | | of value-type nodes. This avoids having to do mallocs for std::vectors of valuetypes when a node returns more than one type. llvm-svn: 29685
* remove SelectionDAG::InsertISelMapEntry, it is deadChris Lattner2006-08-141-9/+0
| | | | llvm-svn: 29677
* Add code to resize the CSEMap hash table. This doesn't speedup codegen ofChris Lattner2006-08-142-3/+47
| | | | | | kimwitu, but seems like a good idea from a "avoid performance cliffs" standpoint :) llvm-svn: 29675
* Add the actual constant to the hash for ConstantPool nodes. Thanks toChris Lattner2006-08-142-0/+2
| | | | | | Rafael Espindola for pointing this out. llvm-svn: 29669
* Emit .set directives for jump table entries when possible, which reducesNate Begeman2006-08-121-3/+39
| | | | | | the number of relocations in object files, shrinkifying them. llvm-svn: 29650
* Fix an obvious bug, noticed by inspection. No current targets trigger this.Chris Lattner2006-08-121-3/+3
| | | | llvm-svn: 29648
* Switch to using SuperFastHash instead of adding all elements together. ThisChris Lattner2006-08-121-6/+24
| | | | | | doesn't significantly improve performance but it helps a small amount. llvm-svn: 29642
* Switch NodeID to track 32-bit chunks instead of 8-bit chunks, for a 2.5%Chris Lattner2006-08-111-15/+9
| | | | | | speedup in isel time. llvm-svn: 29640
* Remove 8 more std::map's.Chris Lattner2006-08-112-92/+58
| | | | llvm-svn: 29631
* Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants,Chris Lattner2006-08-112-88/+83
| | | | | | RegNodes, and ValueNodes maps into the CSEMap. llvm-svn: 29626
* eliminate the NullaryOps map, use CSEMap instead.Chris Lattner2006-08-111-22/+18
| | | | llvm-svn: 29621
* change internal impl of dag combiner so that calls to CombineTo never have toChris Lattner2006-08-111-12/+9
| | | | | | make a temporary vector. llvm-svn: 29618
* Change one ReplaceAllUsesWith method to take an array of operands to replaceChris Lattner2006-08-112-6/+5
| | | | | | instead of a vector of operands. llvm-svn: 29616
OpenPOWER on IntegriCloud