| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 44427
|
|
|
|
|
|
| |
their value numbers with the specified value number.
llvm-svn: 43062
|
|
|
|
|
|
|
|
| |
the source register will be coalesced to the super register of the LHS. Properly
merge in the live ranges of the resulting coalesced interval that were part of
the original source interval to the live interval of the super-register.
llvm-svn: 42961
|
|
|
|
|
|
|
|
|
| |
(almost) a register copy. However, it always coalesced to the register of the
RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub-
register uses which adds subtle complications to load folding, spiller rewrite,
etc.
llvm-svn: 42899
|
|
|
|
| |
llvm-svn: 41751
|
|
|
|
| |
llvm-svn: 41739
|
|
|
|
|
|
| |
This reduces coalescing time on siod Mac OS X PPC by 35%. Also remove the back ptr from VNInfo to LiveInterval and other tweaks.
llvm-svn: 41729
|
|
|
|
| |
llvm-svn: 41669
|
|
|
|
| |
llvm-svn: 41641
|
|
|
|
|
|
|
| |
Changes related modules so VNInfo's are not copied. This decrease
copy coalescing time by 45% and overall compilation time by 10% on siod.
llvm-svn: 41579
|
|
|
|
|
|
|
|
| |
1. Eliminate the costly live interval "swapping".
2. Change ValueNumberInfo container from SmallVector to std::vector. The former
performs slowly when the vector size is very large.
llvm-svn: 41536
|
|
|
|
| |
llvm-svn: 41064
|
|
|
|
| |
llvm-svn: 41043
|
|
|
|
| |
llvm-svn: 41016
|
|
|
|
| |
llvm-svn: 40921
|
|
|
|
|
|
|
| |
- Fix some minor bugs related to special markers on val# def. ~0U means
undefined, ~1U means dead val#.
llvm-svn: 40916
|
|
|
|
| |
llvm-svn: 40914
|
|
|
|
|
|
|
|
|
|
| |
kill instruction #, and source register number (iff the value# is defined by a
copy).
- Now def instruction # is set for every value#, not just for copy defined ones.
- Update some outdated code related inactive live ranges.
- Kill info not yet set. That's next patch.
llvm-svn: 40913
|
|
|
|
|
|
| |
a live interval.
llvm-svn: 36216
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 32622
|
|
|
|
| |
llvm-svn: 32617
|
|
|
|
|
|
| |
now cerr, cout, and NullStream resp.
llvm-svn: 32298
|
|
|
|
| |
llvm-svn: 31992
|
|
|
|
| |
llvm-svn: 31958
|
|
|
|
| |
llvm-svn: 31954
|
|
|
|
|
|
|
|
|
|
| |
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380
|
|
|
|
|
|
| |
method for joining the live ranges instead of the fully-general one.
llvm-svn: 30049
|
|
|
|
| |
llvm-svn: 29994
|
|
|
|
|
|
|
|
| |
number of copies, potentially defining live ranges that appear to have
differing value numbers that become identical when coallsced. Among other
things, this fixes CodeGen/X86/shift-coalesce.ll and PR687.
llvm-svn: 29968
|
|
|
|
| |
llvm-svn: 29896
|
|
|
|
|
|
|
|
| |
paves the way for future changes, increases coallescing opportunities (in
theory, not witnessed in practice), and eliminates the really expensive
LiveIntervals::overlapsAliases method.
llvm-svn: 29890
|
|
|
|
| |
llvm-svn: 29865
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
instructions which define each value#) to simplify and improve the coallescer.
In particular, this patch:
1. Implements iterative coallescing.
2. Reverts an unsafe hack from handlePhysRegDef, superceeding it with a
better solution.
3. Implements PR865, "coallescing" away the second copy in code like:
A = B
...
B = A
This also includes changes to symbolically print registers in intervals
when possible.
llvm-svn: 29862
|
|
|
|
|
|
|
| |
defines each value# tracked by the interval. This will be used to improve
coallescing.
llvm-svn: 29830
|
|
|
|
|
|
|
|
|
|
| |
(an unused method).
Fix the merger so that it can merge ranges like this [10:12)[16:40) with
[12:38) into [10:40) instead of bogus ranges. This sort of input will be
possible for the merger coming shortly
llvm-svn: 23865
|
|
|
|
|
|
| |
Andrew for bringing this to my attn.
llvm-svn: 23850
|
|
|
|
| |
llvm-svn: 23844
|
|
|
|
|
|
|
|
| |
Fix a *bug* in the extendIntervalEndTo method. In particular, if adding
[2:10) to an interval containing [0:2),[10:30), we produced [0:10),[10,30).
Which is not the most smart thing to do. Now produce [0:30).
llvm-svn: 23841
|
|
|
|
| |
llvm-svn: 23839
|
|
|
|
| |
llvm-svn: 23400
|
|
|
|
| |
llvm-svn: 22002
|
|
|
|
| |
llvm-svn: 21420
|
|
|
|
|
|
| |
Prolang-C/bison in the JIT
llvm-svn: 18477
|
|
|
|
|
|
| |
incrementing i.
llvm-svn: 17944
|
|
|
|
|
|
| |
i->start == j->start, then certainly i->end > j->start.
llvm-svn: 17943
|
|
|
|
| |
llvm-svn: 17936
|
|
|
|
| |
llvm-svn: 17934
|
|
|
|
| |
llvm-svn: 17887
|
|
|
|
| |
llvm-svn: 16533
|