| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Track allocatable instead of reserved regs, and never take an unallocatable ↵ | Jakob Stoklund Olesen | 2010-05-14 | 1 | -8/+10 | |
| | | | | | | | hint. llvm-svn: 103828 | |||||
| * | Don't set kill flags for instructions which the scheduler has cloned. | Dan Gohman | 2010-05-14 | 2 | -20/+34 | |
| | | | | | llvm-svn: 103827 | |||||
| * | Avoid scanning the long tail of physreg operands on calls | Jakob Stoklund Olesen | 2010-05-14 | 1 | -4/+9 | |
| | | | | | llvm-svn: 103823 | |||||
| * | Do not forget to mark prcessed arguments. | Devang Patel | 2010-05-14 | 1 | -0/+1 | |
| | | | | | llvm-svn: 103822 | |||||
| * | Count coalesced copies | Jakob Stoklund Olesen | 2010-05-14 | 1 | -0/+2 | |
| | | | | | llvm-svn: 103821 | |||||
| * | Allow virtreg redefines when verifying for RegAllocFast | Jakob Stoklund Olesen | 2010-05-14 | 1 | -1/+1 | |
| | | | | | llvm-svn: 103820 | |||||
| * | Remove trailing whitespace | Jim Grosbach | 2010-05-14 | 1 | -3/+3 | |
| | | | | | llvm-svn: 103807 | |||||
| * | 80 column and trailing whitespace cleanup | Jim Grosbach | 2010-05-14 | 1 | -24/+25 | |
| | | | | | llvm-svn: 103806 | |||||
| * | add cmd line option to leave dbgvalues in during post-RA sceduling. Useful | Jim Grosbach | 2010-05-14 | 1 | -5/+14 | |
| | | | | | | | while debugging what's mishandled about them in the post-RA pass. llvm-svn: 103805 | |||||
| * | Rename "HasCalls" in MachineFrameInfo to "AdjustsStack" to better describe what | Bill Wendling | 2010-05-14 | 4 | -25/+40 | |
| | | | | | | | | | | the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. llvm-svn: 103802 | |||||
| * | Add support to preserve type info for the variables that are removed by the ↵ | Devang Patel | 2010-05-14 | 2 | -14/+35 | |
| | | | | | | | optimizer. llvm-svn: 103798 | |||||
| * | When verifying two-address instructions, check the following: | Jakob Stoklund Olesen | 2010-05-14 | 2 | -12/+21 | |
| | | | | | | | | | | - Kill is implicit when use and def registers are identical. - Only virtual registers can differ. Add a -verify-fast-regalloc to run the verifier before the fast allocator. llvm-svn: 103797 | |||||
| * | Simplify the handling of physreg defs and uses in RegAllocFast. | Jakob Stoklund Olesen | 2010-05-14 | 1 | -109/+72 | |
| | | | | | | | | This adds extra security against using clobbered physregs, and it adds kill markers to physreg uses. llvm-svn: 103784 | |||||
| * | XFAIL the test I added with vg_leak, apparently it is the first and only llc | Daniel Dunbar | 2010-05-14 | 1 | -0/+2 | |
| | | | | | | | | -filetype=obj test, and -filetype=obj leaks a few objects. Added a FIXME, we need to sort out the ownership model for the various MC objects. llvm-svn: 103769 | |||||
| * | Inline Asm: Ensure buffer is newline terminated to match how the text is ↵ | Daniel Dunbar | 2010-05-14 | 1 | -0/+14 | |
| | | | | | | | | | printed. - This is a hack, but I can't decide the best place to handle this. Chris? llvm-svn: 103765 | |||||
| * | Enable opportunistic coalescing | Jakob Stoklund Olesen | 2010-05-14 | 1 | -7/+18 | |
| | | | | | llvm-svn: 103764 | |||||
| * | Trust kill flags from isel and later passes. | Jakob Stoklund Olesen | 2010-05-14 | 1 | -4/+0 | |
| | | | | | llvm-svn: 103748 | |||||
| * | Fix an embarrassing runtime regression for RegAllocFast. | Jakob Stoklund Olesen | 2010-05-14 | 1 | -9/+31 | |
| | | | | | | | | | | | | | This loop is quadratic in the capacity for a DenseMap: while(!map.empty()) map.erase(map.begin()); Instead we now do a normal begin() - end() iteration followed by map.clear(). That also has the nice sideeffect of shrinking the map capacity on demand. llvm-svn: 103747 | |||||
| * | Implement a correct ui64->f32 conversion. The old | Dale Johannesen | 2010-05-13 | 1 | -0/+36 | |
| | | | | | | | one was subject to double rounding in extreme cases. llvm-svn: 103744 | |||||
| * | Clean up RegAllocFast debug output | Jakob Stoklund Olesen | 2010-05-13 | 1 | -15/+14 | |
| | | | | | llvm-svn: 103739 | |||||
| * | Teach MachineLICM and MachineSink how to clear kill flags conservatively | Dan Gohman | 2010-05-13 | 3 | -1/+27 | |
| | | | | | | | when they move instructions. llvm-svn: 103737 | |||||
| * | Add a utility function for conservatively clearing kill flags, and make | Dan Gohman | 2010-05-13 | 2 | -1/+13 | |
| | | | | | | | use of it in MachineCSE. llvm-svn: 103726 | |||||
| * | An Instruction has a trivial kill only if its use is in the same | Dan Gohman | 2010-05-13 | 1 | -2/+5 | |
| | | | | | | | basic block. llvm-svn: 103725 | |||||
| * | Take allocation hints from copy instructions to/from physregs. | Jakob Stoklund Olesen | 2010-05-13 | 1 | -18/+68 | |
| | | | | | | | This causes way more identity copies to be generated, ripe for coalescing. llvm-svn: 103686 | |||||
| * | More asserts around physreg uses | Jakob Stoklund Olesen | 2010-05-13 | 1 | -1/+11 | |
| | | | | | llvm-svn: 103685 | |||||
| * | If REG_SEQUENCE source is livein, copy it first. Also, update livevariables ↵ | Evan Cheng | 2010-05-13 | 1 | -4/+23 | |
| | | | | | | | information when a copy is introduced. llvm-svn: 103680 | |||||
| * | Do not attempt copy coalescing if the source and dest sub-register indices ↵ | Evan Cheng | 2010-05-12 | 1 | -2/+4 | |
| | | | | | | | do not match. llvm-svn: 103679 | |||||
| * | Make sure to add kill flags to the last use of a virtreg when it is redefined. | Jakob Stoklund Olesen | 2010-05-12 | 1 | -12/+22 | |
| | | | | | | | The X86 floating point stack pass and others depend on good kill flags. llvm-svn: 103635 | |||||
| * | Remove unused variable. Tweak a comment while there. | Duncan Sands | 2010-05-12 | 1 | -2/+2 | |
| | | | | | llvm-svn: 103586 | |||||
| * | updated support for the COFF .linkonce | Nathan Jeffords | 2010-05-12 | 1 | -7/+1 | |
| | | | | | | | Now, the .linkonce directive is emitted as part of MCSectionCOFF::PrintSwitchToSection instead of AsmPrinter::EmitLinkage since it is an attribute of the section the symbol was placed into not the symbol itself. llvm-svn: 103568 | |||||
| * | Teach local regalloc about virtual registers with sub-indices. | Evan Cheng | 2010-05-12 | 1 | -9/+37 | |
| | | | | | llvm-svn: 103539 | |||||
| * | Code clean up. | Evan Cheng | 2010-05-12 | 1 | -1/+2 | |
| | | | | | llvm-svn: 103538 | |||||
| * | Avoid scoping issues, fix buildbots | Jakob Stoklund Olesen | 2010-05-12 | 1 | -20/+21 | |
| | | | | | llvm-svn: 103530 | |||||
| * | Add initial kill flag support to FastISel. | Dan Gohman | 2010-05-11 | 1 | -60/+136 | |
| | | | | | llvm-svn: 103529 | |||||
| * | Make Clang happy. | Daniel Dunbar | 2010-05-11 | 1 | -3/+3 | |
| | | | | | llvm-svn: 103528 | |||||
| * | Store the Dirty bit in the LiveReg structure instead of a bit vector. | Jakob Stoklund Olesen | 2010-05-11 | 1 | -34/+28 | |
| | | | | | llvm-svn: 103522 | |||||
| * | Keep track of the last place a live virtreg was used. | Jakob Stoklund Olesen | 2010-05-11 | 1 | -72/+118 | |
| | | | | | | | | This allows us to add accurate kill markers, something the scavenger likes. Add some more tests from ARM that needed this. llvm-svn: 103521 | |||||
| * | Don't set kill flags on uses of CopyFromReg nodes. InstrEmitter doesn't | Dan Gohman | 2010-05-11 | 1 | -9/+16 | |
| | | | | | | | | create separate virtual registers for CopyFromReg values, so uses of them don't necessarily kill the value. llvm-svn: 103519 | |||||
| * | Silence warning | Jakob Stoklund Olesen | 2010-05-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 103508 | |||||
| * | Simplify the tracking of used physregs to a bulk bitor followed by a transitive | Jakob Stoklund Olesen | 2010-05-11 | 2 | -4/+18 | |
| | | | | | | | | | closure after allocating all blocks. Add a few more test cases for -regalloc=fast. llvm-svn: 103500 | |||||
| * | I got tired of VISIBILITY_HIDDEN colliding with the gcc enum. Rename it | Duncan Sands | 2010-05-11 | 3 | -4/+4 | |
| | | | | | | | | to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is the opposite, for future use by dragonegg. llvm-svn: 103495 | |||||
| * | Trim #includes and forward declarations. | Dan Gohman | 2010-05-11 | 2 | -2/+0 | |
| | | | | | llvm-svn: 103489 | |||||
| * | Mostly rewrite RegAllocFast. | Jakob Stoklund Olesen | 2010-05-11 | 1 | -700/+469 | |
| | | | | | | | | | | | | | | | | | | | Sorry for the big change. The path leading up to this patch had some TableGen changes that I didn't want to commit before I knew they were useful. They weren't, and this version does not need them. The fast register allocator now does no liveness calculations. Instead it relies on kill flags provided by isel. (Currently those kill flags are also ignored due to isel bugs). The allocation algorithm is supposed to work with any subset of valid kill flags. More kill flags simply means fewer spills inserted. Registers are allocated from a working set that contains no aliases. That means most allocations can be done directly without expensive alias checks. When the working set runs out of registers we do the full alias check to find new free registers. llvm-svn: 103488 | |||||
| * | Implement a bunch more TargetSelectionDAGInfo infrastructure. | Dan Gohman | 2010-05-11 | 2 | -5/+9 | |
| | | | | | | | | | Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and EmitTargetCodeForMemmove out of TargetLowering and into SelectionDAGInfo to exercise this. llvm-svn: 103481 | |||||
| * | Fixes for Microsoft Visual Studio 2010, from Steven Watanabe! | Douglas Gregor | 2010-05-11 | 4 | -4/+16 | |
| | | | | | llvm-svn: 103457 | |||||
| * | It's not safe eliminate copies where src and dst have different sub-register ↵ | Evan Cheng | 2010-05-11 | 4 | -10/+15 | |
| | | | | | | | indices. llvm-svn: 103450 | |||||
| * | Ensure REG_SEQUENCE source operands are unique. | Evan Cheng | 2010-05-11 | 1 | -0/+19 | |
| | | | | | llvm-svn: 103449 | |||||
| * | Indentation. | Evan Cheng | 2010-05-10 | 1 | -4/+4 | |
| | | | | | llvm-svn: 103441 | |||||
| * | Enable multiple Compile Units in one module. | Devang Patel | 2010-05-10 | 2 | -162/+228 | |
| | | | | | | | This means now 'llvm-ld a.bc b.bc' will preserve debug info appropriately. llvm-svn: 103439 | |||||
| * | It's not safe to propagate implicit_def that defines part of a register. | Evan Cheng | 2010-05-10 | 1 | -0/+2 | |
| | | | | | llvm-svn: 103436 | |||||

