| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
after it has finished all of its reassociations, because its
habit of unlinking operands and holding them in a datastructure
while working means that it's not easy to determine when an
instruction is really dead until after all its regular work is
done. rdar://9096268.
llvm-svn: 127424
|
| |
|
|
|
|
|
|
|
|
| |
cannot overflow.
This happens a lot in clang-compiled C++ code because it adds overflow checks to operator new[]:
unsigned *foo(unsigned n) { return new unsigned[n]; }
We can optimize away the overflow check on 64 bit targets because (uint64_t)n*4 cannot overflow.
llvm-svn: 127418
|
| |
|
|
| |
llvm-svn: 127410
|
| |
|
|
| |
llvm-svn: 127397
|
| |
|
|
| |
llvm-svn: 127382
|
| |
|
|
| |
llvm-svn: 127369
|
| |
|
|
| |
llvm-svn: 127366
|
| |
|
|
| |
llvm-svn: 127364
|
| |
|
|
| |
llvm-svn: 127363
|
| |
|
|
| |
llvm-svn: 127362
|
| |
|
|
| |
llvm-svn: 127359
|
| |
|
|
|
|
| |
by Akira Hatanaka
llvm-svn: 127358
|
| |
|
|
| |
llvm-svn: 127357
|
| |
|
|
|
|
| |
isn't enabled yet, this is will be done in a subsequent commit. Patch by Akira Hatanaka.
llvm-svn: 127356
|
| |
|
|
|
|
|
|
|
| |
The insufficient encoding information of the combined instruction confuses the decoder wrt
UQADD16. Add extra logic to recover from that.
Fixed an assert reported by Sean Callanan
llvm-svn: 127354
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
register.
The damage done by physreg coalescing only depends on the number of instructions
the extended physreg live range covers. This fixes PR9438.
The heuristic is still luck-based, and physreg coalescing really should be
disabled completely. We need a register allocator with better hinting support
before that is possible.
Convert a test to FileCheck and force spilling by inserting an extra call. The
previous spilling behavior was dependent on misguided physreg coalescing
decisions.
llvm-svn: 127351
|
| |
|
|
|
|
|
|
| |
The test is derived from an old miscompilation of
MultiSource/Benchmarks/VersaBench/8b10b which is run regularly, so we are not
losing coverage.
llvm-svn: 127350
|
| |
|
|
| |
llvm-svn: 127349
|
| |
|
|
| |
llvm-svn: 127348
|
| |
|
|
|
|
|
|
| |
When ExactBECount is a constant, use it for MaxBECount.
When MaxBECount cannot be computed, replace it with ExactBECount.
Fixes PR9424.
llvm-svn: 127342
|
| |
|
|
|
|
| |
of fixed args > 4.
llvm-svn: 127328
|
| |
|
|
| |
llvm-svn: 127321
|
| |
|
|
|
|
|
|
|
| |
gave up when I realized I couldn't come up with a good name for what the
refactored function would be, to describe what it does.
This is PR9343 test12, which is test3 with arguments reordered. Whoops!
llvm-svn: 127318
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a union of a float, <2 x float>, and <4 x float>. This mostly comes up with the
use of vector intrinsics, especially in NEON when programmers know the layout of
the register file. This enables codegen to eliminate a lot of the subregister
traffic it would otherwise generate.
This commit only enables this for a small number of floating-point cases, but a
lot more integer cases. I assume this is okay for all ports, but I did not do
extensive testing of the quality of code involving i512 vectors and the like. If
there is a use case where this generates worse code than before, let me know and
we can scale it back.
This fixes <rdar://problem/9036264>.
llvm-svn: 127317
|
| |
|
|
| |
llvm-svn: 127312
|
| |
|
|
| |
llvm-svn: 127310
|
| |
|
|
| |
llvm-svn: 127307
|
| |
|
|
|
|
| |
INT_MIN % -1.
llvm-svn: 127306
|
| |
|
|
| |
llvm-svn: 127304
|
| |
|
|
|
|
|
|
| |
reachable uses, but there still might be uses in dead blocks. Use the
standard solution of replacing all the uses with undef. This is
a rare case because it's very sensitive to phase ordering in SimplifyCFG.
llvm-svn: 127299
|
| |
|
|
| |
llvm-svn: 127298
|
| |
|
|
|
|
| |
* Add tests for VSRI and VSLI.
llvm-svn: 127297
|
| |
|
|
| |
llvm-svn: 127294
|
| |
|
|
|
|
| |
* Update the NEON shift instruction test to expect what 'as' produces.
llvm-svn: 127293
|
| |
|
|
|
|
| |
<rdar://problem/9055247>
llvm-svn: 127278
|
| |
|
|
| |
llvm-svn: 127272
|
| |
|
|
| |
llvm-svn: 127269
|
| |
|
|
| |
llvm-svn: 127266
|
| |
|
|
| |
llvm-svn: 127265
|
| |
|
|
|
|
|
|
| |
operand for 1.
Found by inspection.
llvm-svn: 127247
|
| |
|
|
| |
llvm-svn: 127246
|
| |
|
|
| |
llvm-svn: 127243
|
| |
|
|
|
|
|
|
| |
string on MSYS bash for alternative of $(ECHO).
On mingw and python/w32, lit would not be expected to understand MSYS-style path.
llvm-svn: 127239
|
| |
|
|
| |
llvm-svn: 127236
|
| |
|
|
| |
llvm-svn: 127214
|
| |
|
|
| |
llvm-svn: 127209
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
testcases accordingly. Some are currently xfailed and will be filed
as bugs to be fixed or understood.
Performance results:
roughly neutral on SPEC
some micro benchmarks in the llvm suite are up between 100 and 150%, only
a pair of regressions that are due to be investigated
john-the-ripper saw:
10% improvement in traditional DES
8% improvement in BSDI DES
59% improvement in FreeBSD MD5
67% improvement in OpenBSD Blowfish
14% improvement in LM DES
Small compile time impact.
llvm-svn: 127208
|
| |
|
|
| |
llvm-svn: 127198
|
| |
|
|
|
|
|
|
| |
expand the testing of the narrowing shift right instructions.
No functionality change.
llvm-svn: 127193
|
| |
|
|
|
|
| |
Radar 9097659
llvm-svn: 127182
|