| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
| |
Live range splitting can create a number of small live ranges containing only a
single real use. Spill these small live ranges along with the large range they
are connected to with copies. This enables memory operand folding and maximizes
the spill to fill distance.
Work in progress with known bugs.
llvm-svn: 127529
|
| |
|
|
|
|
| |
disassembler's disassembler map.
llvm-svn: 127527
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are too many compatibility problems with using mixed types in
std::upper_bound, and I don't want to spend 110 lines of boilerplate setting up
a call to a 10-line function. Binary search is not /that/ hard to implement
correctly.
I tried terminating the binary search with a linear search, but that actually
made the algorithm slower against my expectation. Most live intervals have less
than 4 segments. The early test against endIndex() does pay, and this version is
25% faster than plain std::upper_bound().
llvm-svn: 127522
|
| |
|
|
|
|
| |
Add a RUN line to this test.
llvm-svn: 127520
|
| |
|
|
|
|
|
|
|
| |
Go ahead and add them on when we might want to use them and let
later passes remove them.
Fixes rdar://9118569
llvm-svn: 127518
|
| |
|
|
| |
llvm-svn: 127517
|
| |
|
|
| |
llvm-svn: 127516
|
| |
|
|
|
|
|
|
| |
actual instruction as the non-Darwin defs, but have different call-clobber
semantics and so need separate patterns. They don't need to duplicate the
encoding information, however.
llvm-svn: 127515
|
| |
|
|
| |
llvm-svn: 127511
|
| |
|
|
| |
llvm-svn: 127510
|
| |
|
|
| |
llvm-svn: 127509
|
| |
|
|
| |
llvm-svn: 127508
|
| |
|
|
| |
llvm-svn: 127506
|
| |
|
|
| |
llvm-svn: 127505
|
| |
|
|
|
|
| |
effect that we get proper instruction printing using the "pop" mnemonic for it.
llvm-svn: 127502
|
| |
|
|
|
|
|
|
|
|
|
| |
Optimize trivial branches in CodeGenPrepare, which often get created from the
lowering of objectsize intrinsics. Unfortunately, a number of tests were relying
on llc not optimizing trivial branches, so I had to add an option to allow them
to continue to test what they originally tested.
This fixes <rdar://problem/8785296> and <rdar://problem/9112893>.
llvm-svn: 127498
|
| |
|
|
|
|
|
| |
protector insertion not working correctly with unreachable code. Since that
revision was rolled out, this test doesn't actual fail before this fix.
llvm-svn: 127497
|
| |
|
|
| |
llvm-svn: 127496
|
| |
|
|
| |
llvm-svn: 127495
|
| |
|
|
| |
llvm-svn: 127493
|
| |
|
|
| |
llvm-svn: 127491
|
| |
|
|
|
|
| |
as for VDUP32d and VDUP32q, respectively.
llvm-svn: 127489
|
| |
|
|
| |
llvm-svn: 127488
|
| |
|
|
|
|
| |
and VDUPLN32d, respectively.
llvm-svn: 127486
|
| |
|
|
|
|
| |
as for VREV64d32 and VREV64q32, respectively.
llvm-svn: 127485
|
| |
|
|
| |
llvm-svn: 127483
|
| |
|
|
| |
llvm-svn: 127482
|
| |
|
|
|
|
| |
the diagnostic.
llvm-svn: 127480
|
| |
|
|
|
|
| |
it can create more relocations. Removed isBaseAddressKnownZero method, because it is no longer used.
llvm-svn: 127478
|
| |
|
|
|
|
| |
created from the", it broke some GCC test suite tests.
llvm-svn: 127477
|
| |
|
|
| |
llvm-svn: 127473
|
| |
|
|
| |
llvm-svn: 127471
|
| |
|
|
|
|
| |
info is present.
llvm-svn: 127470
|
| |
|
|
| |
llvm-svn: 127469
|
| |
|
|
|
|
| |
without being touched, so no longer needs to pollute the hidden-help text.
llvm-svn: 127468
|
| |
|
|
|
|
|
|
| |
other systems pending.
PR9456.
llvm-svn: 127466
|
| |
|
|
|
|
|
|
| |
overflow semantics as add.
Should fix the selfhost failures that started with r127463.
llvm-svn: 127465
|
| |
|
|
|
|
|
|
| |
it's a zero comparison when it's not.
Fixes PR9454.
llvm-svn: 127464
|
| |
|
|
|
|
|
| |
do with nuw here, but sub and mul should be given similar treatment.
Fixes PR9343 #15!
llvm-svn: 127463
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The existing CompEnd predicate does not define a strict weak order as required
by the C++03 standard; therefore, its use as a predicate to std::upper_bound
is invalid. For a discussion of this issue, see
http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#270
This patch replaces the asymmetrical comparison with an iterator adaptor that
achieves the same effect while being strictly standard-conforming by ensuring
an apples-to-apples comparison.
llvm-svn: 127462
|
| |
|
|
|
|
|
|
|
|
| |
lowering of objectsize intrinsics. Unfortunately, a number of tests were relying
on llc not optimizing trivial branches, so I had to add an option to allow them
to continue to test what they originally tested.
This fixes <rdar://problem/8785296> and <rdar://problem/9112893>.
llvm-svn: 127459
|
| |
|
|
|
|
|
|
|
|
|
| |
CodeGenRegister entries. Use this information to more intelligently build
the literal register entires in the DAGISel matcher table. Specifically,
use a single-byte OPC_EmitRegister entry for registers with a value of
less than 256 and OPC_EmitRegister2 entry for registers with a larger value.
rdar://9066491
llvm-svn: 127456
|
| |
|
|
| |
llvm-svn: 127453
|
| |
|
|
| |
llvm-svn: 127448
|
| |
|
|
| |
llvm-svn: 127447
|
| |
|
|
| |
llvm-svn: 127446
|
| |
|
|
| |
llvm-svn: 127445
|
| |
|
|
| |
llvm-svn: 127442
|
| |
|
|
|
|
|
|
| |
corresponding testcases back to the previous versions.
Fixes some performance regressions only seen on 32-bit.
llvm-svn: 127441
|
| |
|
|
|
|
| |
the load is indexed. rdar://9117613.
llvm-svn: 127440
|