| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 40757
|
|
|
|
| |
llvm-svn: 35660
|
|
|
|
| |
llvm-svn: 35208
|
|
|
|
| |
llvm-svn: 33749
|
|
|
|
|
|
|
| |
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.
llvm-svn: 32636
|
|
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
|
|
|
| |
llvm-svn: 31806
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
actually *removes* one of the operands, instead of just assigning both operands
the same register. This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.
Changing this also gets rid of a bunch of hacky code in various places.
This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.
llvm-svn: 30108
|
|
|
|
|
|
|
|
|
| |
instructions in the virtregfolded map that were deleted. Because they
were deleted, newly allocated instructions could end up at the same address,
magically finding themselves in the map. The solution is to remove entries
from the map when we delete the instructions.
llvm-svn: 28041
|
|
|
|
| |
llvm-svn: 28039
|
|
|
|
|
|
|
|
| |
But this is incorrect if the spilled value live range extends beyond the
current BB.
It is currently controlled by a temporary option -spiller-check-liveout.
llvm-svn: 28024
|
|
|
|
| |
llvm-svn: 21420
|
|
|
|
|
|
|
|
| |
it was a use, def, or both. This allows us to be less pessimistic in our
analysis of them. In practice, this doesn't make a big difference, but it
doesn't hurt either.
llvm-svn: 16632
|
|
|
|
| |
llvm-svn: 16626
|
|
|
|
|
|
|
| |
data structures). Fix the print method to send to the right ostream, not
always cerr. Delete typedefs that are only used once.
llvm-svn: 16606
|
|
|
|
|
|
| |
prune #includes, add print/dump methods, etc. No functionality changes.
llvm-svn: 16604
|
|
|
|
|
|
|
|
| |
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
|
|
|
|
|
|
| |
stack slots. This is in preparation for the iterative linear scan.
llvm-svn: 15032
|
|
|
|
|
|
| |
new one.
llvm-svn: 13895
|
|
|
|
|
|
| |
registers in the function has changed.
llvm-svn: 13893
|
|
|
|
|
|
| |
CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now.
llvm-svn: 12062
|
|
|
|
| |
llvm-svn: 12058
|
|
|
|
| |
llvm-svn: 11898
|
|
|
|
|
|
| |
to objects.
llvm-svn: 11840
|
|
|
|
|
|
|
|
|
|
|
| |
allocator.
The implementation is completely rewritten and now employs several
optimizations not exercised before. For example for 164.gzip we have
997 loads and 699 stores vs the 1221 loads and 880 stores we have
before.
llvm-svn: 11798
|
|
|
|
|
|
| |
register mapping or a stack slot mapping.
llvm-svn: 11795
|
|
|
|
| |
llvm-svn: 11782
|
|
|
|
| |
llvm-svn: 11781
|
|
251 (providing a generic machine code rewriter/spiller).
llvm-svn: 11780
|