Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Handle callee saved registers in dwarf frame info (lead up to exception | Jim Laskey | 2006-08-29 | 1 | -9/+35 |
| | | | | | | handling.) llvm-svn: 29954 | ||||
* | Move isCommutativeBinOp from SelectionDAG.cpp and DAGCombiner.cpp out. Make ↵ | Evan Cheng | 2006-08-29 | 2 | -31/+3 |
| | | | | | | it a static method of SelectionDAG. llvm-svn: 29951 | ||||
* | eliminate RegisterOpt. It does the same thing as RegisterPass. | Chris Lattner | 2006-08-27 | 1 | -1/+1 |
| | | | | llvm-svn: 29925 | ||||
* | Eliminate RegisterAnalysis. RegisterPass now does all that is necessary. | Chris Lattner | 2006-08-27 | 2 | -2/+2 |
| | | | | llvm-svn: 29921 | ||||
* | s|llvm/Support/Visibility.h|llvm/Support/Compiler.h| | Chris Lattner | 2006-08-27 | 15 | -15/+15 |
| | | | | llvm-svn: 29911 | ||||
* | typo fix | Chris Lattner | 2006-08-27 | 1 | -3/+4 |
| | | | | llvm-svn: 29910 | ||||
* | Eliminate SelectNodeTo() and getTargetNode() variants which take more than | Evan Cheng | 2006-08-27 | 1 | -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 table | Nate Begeman | 2006-08-26 | 1 | -59/+81 |
| | | | | | | entries in the correct order, fixing several fixmes. llvm-svn: 29902 | ||||
* | SelectNodeTo now returns a SDNode*. | Evan Cheng | 2006-08-26 | 1 | -74/+74 |
| | | | | llvm-svn: 29901 | ||||
* | Simplifications to liveinterval analysis, no functionality change. | Chris Lattner | 2006-08-26 | 2 | -37/+36 |
| | | | | llvm-svn: 29896 | ||||
* | Completely change the way that joining with physregs is implemented. This | Chris Lattner | 2006-08-25 | 2 | -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 Laskey | 2006-08-25 | 1 | -2/+4 |
| | | | | llvm-svn: 29888 | ||||
* | Consolidate callee saved register information so that it can me used by debug | Jim Laskey | 2006-08-25 | 1 | -20/+21 |
| | | | | | | information and exception handling. llvm-svn: 29881 | ||||
* | Allow for register numbers > 31. | Jim Laskey | 2006-08-25 | 1 | -4/+14 |
| | | | | llvm-svn: 29879 | ||||
* | Get closer to handling globals correctly. We now generally get them in the | Nate Begeman | 2006-08-25 | 1 | -5/+70 |
| | | | | | | right section. llvm-svn: 29871 | ||||
* | When replacing value numbers, make sure to compactify the value # space. | Chris Lattner | 2006-08-24 | 1 | -0/+12 |
| | | | | llvm-svn: 29865 | ||||
* | Take advantage of the recent improvements to the liveintervals set (tracking | Chris Lattner | 2006-08-24 | 3 | -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 it | Nate Begeman | 2006-08-23 | 1 | -0/+428 |
| | | | | | | does emit linkable .o files in very simple cases. llvm-svn: 29850 | ||||
* | Improve the LiveInterval class to keep track of which machine instruction | Chris Lattner | 2006-08-22 | 2 | -17/+40 |
| | | | | | | | defines each value# tracked by the interval. This will be used to improve coallescing. llvm-svn: 29830 | ||||
* | Print physreg names symbolically in dumps | Chris Lattner | 2006-08-21 | 1 | -2/+3 |
| | | | | llvm-svn: 29805 | ||||
* | Print debug info as: | Chris Lattner | 2006-08-21 | 1 | -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 Laskey | 2006-08-21 | 2 | -62/+152 |
| | | | | llvm-svn: 29799 | ||||
* | Fix PR861 | Chris Lattner | 2006-08-21 | 1 | -0/+1 |
| | | | | llvm-svn: 29796 | ||||
* | Added a check so that if we have two machine instructions in this form | Bill Wendling | 2006-08-21 | 1 | -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 Lattner | 2006-08-17 | 3 | -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 Lattner | 2006-08-16 | 2 | -22/+24 |
| | | | | llvm-svn: 29740 | ||||
* | Use the appropriate typedef | Chris Lattner | 2006-08-16 | 1 | -2/+1 |
| | | | | llvm-svn: 29730 | ||||
* | Start using SDVTList more consistently | Chris Lattner | 2006-08-15 | 2 | -72/+78 |
| | | | | llvm-svn: 29711 | ||||
* | add a new SDVTList type and new SelectionDAG::getVTList methods to streamline | Chris Lattner | 2006-08-15 | 1 | -68/+79 |
| | | | | | | the creation of canonical VTLists. llvm-svn: 29709 | ||||
* | eliminate use of getNode that takes vector of valuetypes. | Chris Lattner | 2006-08-14 | 2 | -30/+30 |
| | | | | llvm-svn: 29687 | ||||
* | Add a new getNode() method that takes a pointer to an already-intern'd list | Chris Lattner | 2006-08-14 | 1 | -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 dead | Chris Lattner | 2006-08-14 | 1 | -9/+0 |
| | | | | llvm-svn: 29677 | ||||
* | Add code to resize the CSEMap hash table. This doesn't speedup codegen of | Chris Lattner | 2006-08-14 | 2 | -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 to | Chris Lattner | 2006-08-14 | 2 | -0/+2 |
| | | | | | | Rafael Espindola for pointing this out. llvm-svn: 29669 | ||||
* | Emit .set directives for jump table entries when possible, which reduces | Nate Begeman | 2006-08-12 | 1 | -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 Lattner | 2006-08-12 | 1 | -3/+3 |
| | | | | llvm-svn: 29648 | ||||
* | Switch to using SuperFastHash instead of adding all elements together. This | Chris Lattner | 2006-08-12 | 1 | -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 Lattner | 2006-08-11 | 1 | -15/+9 |
| | | | | | | speedup in isel time. llvm-svn: 29640 | ||||
* | Remove 8 more std::map's. | Chris Lattner | 2006-08-11 | 2 | -92/+58 |
| | | | | llvm-svn: 29631 | ||||
* | Move the BBNodes, GlobalValues, TargetGlobalValues, Constants, TargetConstants, | Chris Lattner | 2006-08-11 | 2 | -88/+83 |
| | | | | | | RegNodes, and ValueNodes maps into the CSEMap. llvm-svn: 29626 | ||||
* | eliminate the NullaryOps map, use CSEMap instead. | Chris Lattner | 2006-08-11 | 1 | -22/+18 |
| | | | | llvm-svn: 29621 | ||||
* | change internal impl of dag combiner so that calls to CombineTo never have to | Chris Lattner | 2006-08-11 | 1 | -12/+9 |
| | | | | | | make a temporary vector. llvm-svn: 29618 | ||||
* | Change one ReplaceAllUsesWith method to take an array of operands to replace | Chris Lattner | 2006-08-11 | 2 | -6/+5 |
| | | | | | | instead of a vector of operands. llvm-svn: 29616 | ||||
* | Start eliminating temporary vectors used to create DAG nodes. Instead, pass | Chris Lattner | 2006-08-08 | 4 | -274/+176 |
| | | | | | | | | | | | | | | | | | | | in the start of an array and a count of operands where applicable. In many cases, the number of operands is known, so this static array can be allocated on the stack, avoiding the heap. In many other cases, a SmallVector can be used, which has the same benefit in the common cases. I updated a lot of code calling getNode that takes a vector, but ran out of time. The rest of the code should be updated, and these methods should be removed. We should also do the same thing to eliminate the methods that take a vector of MVT::ValueTypes. It would be extra nice to convert the dagiselemitter to avoid creating vectors for operands when calling getTargetNode. llvm-svn: 29566 | ||||
* | Eliminate some malloc traffic by allocating vectors on the stack. Change some | Chris Lattner | 2006-08-08 | 2 | -82/+67 |
| | | | | | | | | | method that took std::vector<SDOperand> to take a pointer to a first operand and #operands. This speeds up isel on kc++ by about 3%. llvm-svn: 29561 | ||||
* | Revamp the "CSEMap" datastructure used in the SelectionDAG class. This | Chris Lattner | 2006-08-07 | 2 | -312/+517 |
| | | | | | | | | | | | eliminates a bunch of std::map's in the SelectionDAG, replacing them with a home-grown hashtable. This is still a work in progress: not all the maps have been moved over and the hashtable never resizes. That said, this still speeds up llc 20% on kimwitu++ with -fast -regalloc=local using a release build. llvm-svn: 29550 | ||||
* | Clear TopOrder before assigning topological order. Some clean ups. | Evan Cheng | 2006-08-07 | 1 | -1/+3 |
| | | | | llvm-svn: 29546 | ||||
* | Reverse the FlaggedNodes after scanning up for flagged preds or else the ↵ | Evan Cheng | 2006-08-07 | 1 | -5/+10 |
| | | | | | | order would be reversed. llvm-svn: 29545 | ||||
* | Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, which | Chris Lattner | 2006-08-04 | 2 | -51/+33 |
| | | | | | | also make it simpler. llvm-svn: 29524 | ||||
* | Copy the liveins for the first block. PR859 | Jim Laskey | 2006-08-03 | 1 | -0/+14 |
| | | | | llvm-svn: 29511 |