Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Don't hoist instructions that have implicit uses or defines. Before, it was | Bill Wendling | 2008-08-18 | 1 | -0/+5 |
| | | | | | | hoisting out some "test" and "cmp" instructions. This was obvious badness. llvm-svn: 54908 | ||||
* | Don't require Registry specializations to define random static variables. | Gordon Henriksen | 2008-08-17 | 2 | -18/+0 |
| | | | | llvm-svn: 54902 | ||||
* | Drop an unnecessary include. | Gordon Henriksen | 2008-08-17 | 1 | -1/+0 |
| | | | | llvm-svn: 54901 | ||||
* | Rename some GC classes so that their roll will hopefully be clearer. | Gordon Henriksen | 2008-08-17 | 10 | -254/+226 |
| | | | | | | | | | | | | | | | | | | In particular, Collector was confusing to implementors. Several thought that this compile-time class was the place to implement their runtime GC heap. Of course, it doesn't even exist at runtime. Specifically, the renames are: Collector -> GCStrategy CollectorMetadata -> GCFunctionInfo CollectorModuleMetadata -> GCModuleInfo CollectorRegistry -> GCRegistry Function::getCollector -> getGC (setGC, hasGC, clearGC) Several accessors and nested types have also been renamed to be consistent. These changes should be obvious. llvm-svn: 54899 | ||||
* | Don't instantiate GC metadata for declarations. | Gordon Henriksen | 2008-08-17 | 2 | -1/+3 |
| | | | | llvm-svn: 54895 | ||||
* | Fix merge error | Anton Korobeynikov | 2008-08-17 | 3 | -175/+0 |
| | | | | llvm-svn: 54891 | ||||
* | Move all assembler printing related stuff into new libAsmPrinter | Anton Korobeynikov | 2008-08-17 | 5 | -1/+173 |
| | | | | llvm-svn: 54885 | ||||
* | Factor out asmprinters from collector interface. | Anton Korobeynikov | 2008-08-17 | 1 | -0/+18 |
| | | | | llvm-svn: 54884 | ||||
* | Factor GC metadata table assembly generation out of Collector in preparation ↵ | Gordon Henriksen | 2008-08-17 | 10 | -50/+94 |
| | | | | | | for splitting AsmPrinter into its own library. llvm-svn: 54881 | ||||
* | Factor GC metadata table assembly generation out of Collector in preparation ↵ | Gordon Henriksen | 2008-08-17 | 4 | -18/+72 |
| | | | | | | for splitting AsmPrinter into its own library. llvm-svn: 54880 | ||||
* | Rework the routines that convert AP[S]Int into a string. Now, instead of | Chris Lattner | 2008-08-17 | 2 | -7/+10 |
| | | | | | | | | | | | | | | | | | returning an std::string by value, it fills in a SmallString/SmallVector passed in. This significantly reduces string thrashing in some cases. More specifically, this: - Adds an operator<< and a print method for APInt that allows you to directly send them to an ostream. - Reimplements APInt::toString to be much simpler and more efficient algorithmically in addition to not thrashing strings quite as much. This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the asmprinter. This also fixes a bug I introduced into the asmwriter in a previous patch w.r.t. alias printing. llvm-svn: 54873 | ||||
* | Move SLEB/ULEB size calculation routines from AsmPrinter to TargetAsmInfo. ↵ | Anton Korobeynikov | 2008-08-16 | 2 | -428/+402 |
| | | | | | | This makes JIT asmprinter-free. llvm-svn: 54843 | ||||
* | Convert several std::vectors over to SmallVector, and use reserve() as ↵ | Owen Anderson | 2008-08-15 | 1 | -2/+4 |
| | | | | | | appropriate for cases where std::vector is still used. llvm-svn: 54820 | ||||
* | Use SmallSet instead of std::set to save allocations. | Owen Anderson | 2008-08-14 | 1 | -3/+3 |
| | | | | llvm-svn: 54810 | ||||
* | Move MachineInstr::getOpcode inline. | Owen Anderson | 2008-08-14 | 1 | -6/+0 |
| | | | | llvm-svn: 54807 | ||||
* | Convert uses of std::vector in TargetInstrInfo to SmallVector. This change ↵ | Owen Anderson | 2008-08-14 | 4 | -35/+37 |
| | | | | | | had to be propoagated down into all the targets and up into all clients of this API. llvm-svn: 54802 | ||||
* | Make FastISel's constructor protected, and give it a destructor. | Dan Gohman | 2008-08-14 | 1 | -0/+2 |
| | | | | llvm-svn: 54793 | ||||
* | Remove more uses of std::set. | Owen Anderson | 2008-08-14 | 1 | -6/+8 |
| | | | | llvm-svn: 54787 | ||||
* | Improve support for vector casts in LLVM IR and CodeGen. | Dan Gohman | 2008-08-14 | 4 | -88/+221 |
| | | | | llvm-svn: 54784 | ||||
* | Speed up addRegisterDead by adding more fast checks before performing the ↵ | Owen Anderson | 2008-08-14 | 1 | -1/+3 |
| | | | | | | | | | expensive subregister query, and by increasing the size of the subregister hashtable so that there are fewer collisions. llvm-svn: 54781 | ||||
* | Use empty() instead of begin() == end(). | Dan Gohman | 2008-08-14 | 4 | -5/+5 |
| | | | | llvm-svn: 54780 | ||||
* | Get rid of a use of std::map. | Owen Anderson | 2008-08-13 | 1 | -2/+2 |
| | | | | llvm-svn: 54770 | ||||
* | Fix a bogus srem rule - a negative value srem'd by a power-of-2 | Dan Gohman | 2008-08-13 | 1 | -5/+3 |
| | | | | | | | can have a non-negative result; for example, -16%16 is 0. Also, clarify the related comments. This fixes PR2670. llvm-svn: 54767 | ||||
* | Expunge the last uses of std::map from LiveIntervals. | Owen Anderson | 2008-08-13 | 1 | -13/+13 |
| | | | | llvm-svn: 54766 | ||||
* | Move r2iMap_ over to DenseMap from std::map. | Owen Anderson | 2008-08-13 | 1 | -1/+1 |
| | | | | llvm-svn: 54765 | ||||
* | Allow SelectionDAG to create EXTRACT_VECTOR_ELT nodes with | Dan Gohman | 2008-08-13 | 1 | -11/+9 |
| | | | | | | | non-constant indices. Only a few of the peephole checks require a constant index. llvm-svn: 54764 | ||||
* | Make the allocation of LiveIntervals explicit, rather than holding them in ↵ | Owen Anderson | 2008-08-13 | 3 | -16/+21 |
| | | | | | | | | the r2iMap_ by value. This will prevent references to them from being invalidated if the map is changed. llvm-svn: 54763 | ||||
* | Initial checkin of the new "fast" instruction selection support. See | Dan Gohman | 2008-08-13 | 1 | -0/+104 |
| | | | | | | | the comments in FastISelEmitter.cpp for details on what this is. This is currently experimental and unusable. llvm-svn: 54751 | ||||
* | Rename SelectionDAGISel's FastISel to Fast, to begin to make | Dan Gohman | 2008-08-13 | 1 | -3/+3 |
| | | | | | | room for the new FastISel instruction selection code. llvm-svn: 54749 | ||||
* | Get rid of unused variable. | Owen Anderson | 2008-08-13 | 1 | -1/+0 |
| | | | | llvm-svn: 54742 | ||||
* | 1) Merge entire live intervals instead of parts of them. | Owen Anderson | 2008-08-13 | 1 | -62/+36 |
| | | | | | | 2) Conditionalize temporary insertion if we don't need it. llvm-svn: 54741 | ||||
* | Correct the filename in the top-of-file comment. | Dan Gohman | 2008-08-12 | 1 | -1/+1 |
| | | | | llvm-svn: 54688 | ||||
* | Take the FrameOffset into account when computing the alignment | Dan Gohman | 2008-08-11 | 1 | -1/+1 |
| | | | | | | of stack objects. This fixes PR2656. llvm-svn: 54646 | ||||
* | Fix some typos. Apparently I think C needs a power-of operator. | Gordon Henriksen | 2008-08-09 | 1 | -3/+3 |
| | | | | llvm-svn: 54574 | ||||
* | Have IRBuilder take a template argument on whether or not to preserve | Eric Christopher | 2008-08-08 | 1 | -8/+8 |
| | | | | | | | names. This can save a lot of allocations if you aren't going to be looking at the output. llvm-svn: 54546 | ||||
* | Handle visibility printing with all generality. Remove bunch of duplicate code. | Anton Korobeynikov | 2008-08-08 | 1 | -0/+11 |
| | | | | llvm-svn: 54540 | ||||
* | Reduce the entries in a phi before testing it for deadness, because removing ↵ | Owen Anderson | 2008-08-08 | 1 | -7/+7 |
| | | | | | | the entries might make it dead. llvm-svn: 54535 | ||||
* | Add skeleton of simple basic block instruction selector. | Evan Cheng | 2008-08-08 | 3 | -3/+81 |
| | | | | llvm-svn: 54522 | ||||
* | Don't crash printing the asm for a ConstantExpr PtrToInt just because the int | Nick Lewycky | 2008-08-08 | 1 | -4/+5 |
| | | | | | | | | is narrower than the pointer. This testcase emits: .byte (((17) - 16) & 255) llvm-svn: 54517 | ||||
* | Add the remaining fp_round libcalls: | Bruno Cardoso Lopes | 2008-08-07 | 3 | -2/+41 |
| | | | | | | | | | | | | | FPROUND_F80_F32, FPROUND_PPCF128_F32, FPROUND_F80_F64, FPROUND_PPCF128_F64 Support for soften float fp_round operands is added, Mips needs this to round f64->f32. Also added support to soften float FABS result, Mips doesn't support double fabs results while in 'single float only' mode. llvm-svn: 54484 | ||||
* | Do a dominator walk when scheduling copies, rather than a DFS on the CFG. ↵ | Owen Anderson | 2008-08-07 | 1 | -14/+44 |
| | | | | | | | | Also, fix a few problems when creating live intervals for temporaries created by phi elimination. llvm-svn: 54483 | ||||
* | Re-enable elimination of unnecessary SUBREG_TO_REG instructions in | Dan Gohman | 2008-08-07 | 1 | -4/+9 |
| | | | | | | | | | | | LowerSubregs, and fix an x86-64 isel bug that this exposed. SUBREG_TO_REG for x86-64 implicit zero extension is only safe for isel to generate when the source is known to always have zeros in the high 32 bits. The EXTRACT_SUBREG instruction does not clear the high 32 bits. llvm-svn: 54444 | ||||
* | Factor code that finalize PHI nodes, jump tables, etc. out of ↵ | Evan Cheng | 2008-08-07 | 1 | -14/+23 |
| | | | | | | SelectBasicBlock. No functionality changes. llvm-svn: 54438 | ||||
* | SDISel's constant branch folding can fold away self-loops, which doesn't ↵ | Owen Anderson | 2008-08-06 | 1 | -15/+40 |
| | | | | | | | | result in any dead blocks, but rather an incorrect phi input. Add code to UnreachableMachineBlockElim to get rid of these entries. llvm-svn: 54432 | ||||
* | Correct handle cases where two phis are coalesced together, and correct ↵ | Owen Anderson | 2008-08-06 | 1 | -6/+39 |
| | | | | | | | | break up the case where two different phis want to coalesce with the same vreg. llvm-svn: 54426 | ||||
* | Oops, didn't mean to commit this. | Owen Anderson | 2008-08-06 | 1 | -0/+2 |
| | | | | llvm-svn: 54425 | ||||
* | We don't need to try to coalesce input vregs that are the same as the output ↵ | Owen Anderson | 2008-08-06 | 1 | -0/+7 |
| | | | | | | vreg. llvm-svn: 54422 | ||||
* | Only trim a live interval if the register is not used after the PHI node. | Owen Anderson | 2008-08-06 | 1 | -2/+5 |
| | | | | llvm-svn: 54421 | ||||
* | Only remap each VNInfo once when doing renumbering. | Owen Anderson | 2008-08-06 | 1 | -13/+15 |
| | | | | llvm-svn: 54420 | ||||
* | Fix breakage on ARM/2008-04-10-ScavengerAssert.ll. | Owen Anderson | 2008-08-05 | 1 | -1/+2 |
| | | | | llvm-svn: 54378 |