summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Start eliminating temporary vectors used to create DAG nodes. Instead, passChris Lattner2006-08-084-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 someChris Lattner2006-08-082-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. ThisChris Lattner2006-08-072-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 Cheng2006-08-071-1/+3
| | | | llvm-svn: 29546
* Reverse the FlaggedNodes after scanning up for flagged preds or else the ↵Evan Cheng2006-08-071-5/+10
| | | | | | order would be reversed. llvm-svn: 29545
* Make SelectionDAG::RemoveDeadNodes iterative instead of recursive, whichChris Lattner2006-08-042-51/+33
| | | | | | also make it simpler. llvm-svn: 29524
* Copy the liveins for the first block. PR859Jim Laskey2006-08-031-0/+14
| | | | llvm-svn: 29511
* Work around a GCC 3.3.5 bug noticed by a user.Chris Lattner2006-08-031-1/+1
| | | | llvm-svn: 29490
* Work around a bug in gcc 3.3.5, reported by a userChris Lattner2006-08-031-1/+1
| | | | llvm-svn: 29489
* - Change AssignTopologicalOrder to return vector of SDNode* by reference.Evan Cheng2006-08-021-16/+22
| | | | | | - Tweak implementation to avoid using std::map. llvm-svn: 29479
* Final polish on machine pass registries.Jim Laskey2006-08-029-37/+69
| | | | llvm-svn: 29471
* Now that the ISel is available, it's possible to create a default instructionJim Laskey2006-08-011-17/+22
| | | | | | scheduler creator. llvm-svn: 29452
* 1. Change use of "Cache" to "Default".Jim Laskey2006-08-016-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 Laskey2006-08-011-0/+31
| | | | llvm-svn: 29436
* Introducing plugable register allocators and instruction schedulers.Jim Laskey2006-08-018-140/+119
| | | | llvm-svn: 29434
* Added AssignTopologicalOrder() to assign each node an unique id based on ↵Evan Cheng2006-08-011-2/+38
| | | | | | their topological order. llvm-svn: 29431
* PIC jump table entries are always 32-bit even in 64-bit mode.Evan Cheng2006-08-011-4/+11
| | | | llvm-svn: 29422
* Instead of blindly looking past constantexpr casts, actually constantChris Lattner2006-07-291-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 Cheng2006-07-281-14/+0
| | | | llvm-svn: 29373
* Print empty inline asms as a blank line instead of:Chris Lattner2006-07-281-1/+8
| | | | | | | | # InlineAsm Start # InlineAsm End llvm-svn: 29372
* Working toward registration of register allocators.Jim Laskey2006-07-271-11/+47
| | | | llvm-svn: 29360
* Code cleanups, per reviewNate Begeman2006-07-272-5/+7
| | | | llvm-svn: 29347
* AssignNodeIds should return unsigned.Evan Cheng2006-07-271-2/+2
| | | | llvm-svn: 29343
* AssignNodeIds assign each node in the DAG an unique id.Evan Cheng2006-07-271-0/+12
| | | | llvm-svn: 29337
OpenPOWER on IntegriCloud