| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Tests cases have been removed but attached to open PR12330.
llvm-svn: 153286
|
|
|
|
|
|
|
| |
Canonicallize on the non-suffixed form, but continue to accept assembly that
has any correctly sized type suffix.
llvm-svn: 144583
|
|
|
|
|
|
|
|
| |
Rewriting the entire loop nest now requires -enable-lsr-nested.
See PR11035 for some performance data.
A few unit tests specifically test nested LSR, and are now under a flag.
llvm-svn: 140762
|
|
|
|
| |
llvm-svn: 140761
|
|
|
|
|
|
|
| |
they thought they were, because alternation was expanding
wrong in {{}}'s.
llvm-svn: 129194
|
|
|
|
|
|
| |
VFP vmla / vmls (they cause stalls). Disabling them in isel is properly not a right solution, I'll look into a proper solution next.
llvm-svn: 118922
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Fix pre-ra scheduler so it doesn't try to push instructions above calls to
"optimize for latency". Call instructions don't have the right latency and
this is more likely to use introduce spills.
2. Fix if-converter cost function. For ARM, it should use instruction latencies,
not # of micro-ops since multi-latency instructions is completely executed
even when the predicate is false. Also, some instruction will be "slower"
when they are predicated due to the register def becoming implicit input.
rdar://8598427
llvm-svn: 118135
|
|
|
|
|
|
| |
The bug that broke i386 linux has been fixed in r115191.
llvm-svn: 115204
|
|
|
|
|
|
|
|
|
|
|
| |
if-conversion profitability.
Rather than having arbitrary cutoffs, actually try to cost model the conversion.
For now, the constants are tuned to more or less match our existing behavior, but these will be
changed to reflect realistic values as this work proceeds.
llvm-svn: 114973
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
passes now"
This reverts revision 114633. It was breaking llvm-gcc-i386-linux-selfhost.
It seems there is a downstream bug that is exposed by
-cgp-critical-edge-splitting=0. When that bug is fixed, this patch can go back
in.
Note that the changes to tailcallfp2.ll are not reverted. They were good are
required.
llvm-svn: 114859
|
|
|
|
|
|
| |
break critical edges on demand.
llvm-svn: 114633
|
|
|
|
|
|
| |
ARM register class allocation order functions to take advantage of that.
llvm-svn: 112841
|
|
|
|
|
|
| |
for.
llvm-svn: 110739
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
it's too late to start backing off aggressive latency scheduling when most
of the registers are in use so the threshold should be a bit tighter.
- Correctly handle live out's and extract_subreg etc.
- Enable register pressure aware scheduling by default for hybrid scheduler.
For ARM, this is almost always a win on # of instructions. It's runtime
neutral for most of the tests. But for some kernels with high register
pressure it can be a huge win. e.g. 464.h264ref reduced number of spills by
54 and sped up by 20%.
llvm-svn: 109279
|
|
|
|
| |
llvm-svn: 109064
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
void t(int *cp0, int *cp1, int *dp, int fmd) {
int c0, c1, d0, d1, d2, d3;
c0 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000);
c1 = (*cp0++ & 0xffff) | ((*cp1++ << 16) & 0xffff0000);
/* ... */
}
It code gens into something pretty bad. But with this change (analogous to the
X86 back-end), it will use ldm and generate few instructions.
llvm-svn: 106693
|
|
|
|
|
|
| |
matches what llvm-gcc and clang now produce.
llvm-svn: 106221
|
|
|
|
|
|
| |
just return zero.
llvm-svn: 105061
|
|
|
|
|
|
|
|
|
|
|
|
| |
operand on the left, the interesting operand is on the right. This
fixes a bug where LSR was failing to recognize ICmpZero uses,
which led it to be unable to reverse the induction variable in the
attached testcase.
Delete test/CodeGen/X86/stack-color-with-reg-2.ll, because its test
is extremely fragile and hard to meaningfully update.
llvm-svn: 104262
|
|
the addressing modes don't make this trivially easy. This allows
it to avoid falling into the less precise heuristics in more
cases.
llvm-svn: 104186
|