- May 14, 2010
-
-
Devang Patel authored
llvm-svn: 103822
-
Jakob Stoklund Olesen authored
llvm-svn: 103821
-
Jakob Stoklund Olesen authored
llvm-svn: 103820
-
Jim Grosbach authored
llvm-svn: 103807
-
Jim Grosbach authored
llvm-svn: 103806
-
Jim Grosbach authored
while debugging what's mishandled about them in the post-RA pass. llvm-svn: 103805
-
Bill Wendling authored
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
-
Devang Patel authored
llvm-svn: 103798
-
Jakob Stoklund Olesen authored
- 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
-
Jakob Stoklund Olesen authored
This adds extra security against using clobbered physregs, and it adds kill markers to physreg uses. llvm-svn: 103784
-
Daniel Dunbar authored
-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
-
Daniel Dunbar authored
- This is a hack, but I can't decide the best place to handle this. Chris? llvm-svn: 103765
-
Jakob Stoklund Olesen authored
llvm-svn: 103764
-
Jakob Stoklund Olesen authored
llvm-svn: 103748
-
Jakob Stoklund Olesen authored
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
-
Dale Johannesen authored
one was subject to double rounding in extreme cases. llvm-svn: 103744
-
- May 13, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 103739
-
Dan Gohman authored
when they move instructions. llvm-svn: 103737
-
Dan Gohman authored
use of it in MachineCSE. llvm-svn: 103726
-
Dan Gohman authored
basic block. llvm-svn: 103725
-
Jakob Stoklund Olesen authored
This causes way more identity copies to be generated, ripe for coalescing. llvm-svn: 103686
-
Jakob Stoklund Olesen authored
llvm-svn: 103685
-
Evan Cheng authored
If REG_SEQUENCE source is livein, copy it first. Also, update livevariables information when a copy is introduced. llvm-svn: 103680
-
Evan Cheng authored
llvm-svn: 103679
-
- May 12, 2010
-
-
Jakob Stoklund Olesen authored
The X86 floating point stack pass and others depend on good kill flags. llvm-svn: 103635
-
Duncan Sands authored
llvm-svn: 103586
-
Nathan Jeffords authored
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
-
Evan Cheng authored
llvm-svn: 103539
-
Evan Cheng authored
llvm-svn: 103538
-
Jakob Stoklund Olesen authored
llvm-svn: 103530
-
Dan Gohman authored
llvm-svn: 103529
-
Daniel Dunbar authored
llvm-svn: 103528
-
Jakob Stoklund Olesen authored
llvm-svn: 103522
-
Jakob Stoklund Olesen authored
This allows us to add accurate kill markers, something the scavenger likes. Add some more tests from ARM that needed this. llvm-svn: 103521
-
- May 11, 2010
-
-
Dan Gohman authored
create separate virtual registers for CopyFromReg values, so uses of them don't necessarily kill the value. llvm-svn: 103519
-
Jakob Stoklund Olesen authored
llvm-svn: 103508
-
Jakob Stoklund Olesen authored
closure after allocating all blocks. Add a few more test cases for -regalloc=fast. llvm-svn: 103500
-
Duncan Sands authored
to LLVM_LIBRARY_VISIBILITY and introduce LLVM_GLOBAL_VISIBILITY, which is the opposite, for future use by dragonegg. llvm-svn: 103495
-
Dan Gohman authored
llvm-svn: 103489
-
Jakob Stoklund Olesen authored
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
-