Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | 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 | ||||
* | Work around a GCC 3.3.5 bug noticed by a user. | Chris Lattner | 2006-08-03 | 1 | -1/+1 |
| | | | | llvm-svn: 29490 | ||||
* | Work around a bug in gcc 3.3.5, reported by a user | Chris Lattner | 2006-08-03 | 1 | -1/+1 |
| | | | | llvm-svn: 29489 | ||||
* | - Change AssignTopologicalOrder to return vector of SDNode* by reference. | Evan Cheng | 2006-08-02 | 1 | -16/+22 |
| | | | | | | - Tweak implementation to avoid using std::map. llvm-svn: 29479 | ||||
* | Final polish on machine pass registries. | Jim Laskey | 2006-08-02 | 9 | -37/+69 |
| | | | | llvm-svn: 29471 | ||||
* | Now that the ISel is available, it's possible to create a default instruction | Jim Laskey | 2006-08-01 | 1 | -17/+22 |
| | | | | | | scheduler creator. llvm-svn: 29452 | ||||
* | 1. Change use of "Cache" to "Default". | Jim Laskey | 2006-08-01 | 6 | -15/+31 |
| | | | | | | | | | | | 2. Added argument to instruction scheduler creators so the creators can do special things. 3. Repaired target hazard code. 4. Misc. More to follow. llvm-svn: 29450 | ||||
* | Forgot the added files for plugable machine passes. | Jim Laskey | 2006-08-01 | 1 | -0/+31 |
| | | | | llvm-svn: 29436 | ||||
* | Introducing plugable register allocators and instruction schedulers. | Jim Laskey | 2006-08-01 | 8 | -140/+119 |
| | | | | llvm-svn: 29434 | ||||
* | Added AssignTopologicalOrder() to assign each node an unique id based on ↵ | Evan Cheng | 2006-08-01 | 1 | -2/+38 |
| | | | | | | their topological order. llvm-svn: 29431 | ||||
* | PIC jump table entries are always 32-bit even in 64-bit mode. | Evan Cheng | 2006-08-01 | 1 | -4/+11 |
| | | | | llvm-svn: 29422 | ||||
* | Instead of blindly looking past constantexpr casts, actually constant | Chris Lattner | 2006-07-29 | 1 | -14/+20 |
| | | | | | | | | fold them. This correctly truncates constants that are too large for the destination slot and makes the code easier to understand. This fixes PR853 and Regression/CodeGen/X86/2006-07-28-AsmPrint-Long-As-Pointer.ll llvm-svn: 29408 | ||||
* | Remove InFlightSet hack. No longer needed. | Evan Cheng | 2006-07-28 | 1 | -14/+0 |
| | | | | llvm-svn: 29373 | ||||
* | Print empty inline asms as a blank line instead of: | Chris Lattner | 2006-07-28 | 1 | -1/+8 |
| | | | | | | | | # InlineAsm Start # InlineAsm End llvm-svn: 29372 | ||||
* | Working toward registration of register allocators. | Jim Laskey | 2006-07-27 | 1 | -11/+47 |
| | | | | llvm-svn: 29360 | ||||
* | Code cleanups, per review | Nate Begeman | 2006-07-27 | 2 | -5/+7 |
| | | | | llvm-svn: 29347 | ||||
* | AssignNodeIds should return unsigned. | Evan Cheng | 2006-07-27 | 1 | -2/+2 |
| | | | | llvm-svn: 29343 | ||||
* | AssignNodeIds assign each node in the DAG an unique id. | Evan Cheng | 2006-07-27 | 1 | -0/+12 |
| | | | | llvm-svn: 29337 |