| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Remove the unused reserved_ bit vector, no functional change intended.
This doesn't break 'svn blame', this file really is all my fault.
llvm-svn: 127607
|
| |
|
|
| |
llvm-svn: 127601
|
| |
|
|
| |
llvm-svn: 127600
|
| |
|
|
| |
llvm-svn: 127598
|
| |
|
|
| |
llvm-svn: 127595
|
| |
|
|
| |
llvm-svn: 127593
|
| |
|
|
|
|
| |
no-self-wrap.
llvm-svn: 127591
|
| |
|
|
|
|
|
|
|
| |
properties.
Added the self-wrap flag for SCEV::AddRecExpr.
A slew of temporary FIXMEs indicate the intention of the no-self-wrap flag
without changing behavior in this revision.
llvm-svn: 127590
|
| |
|
|
| |
llvm-svn: 127589
|
| |
|
|
|
|
|
| |
- Emit all arrays as type .b8 and proper sizes in bytes to conform
to the output of nvcc
llvm-svn: 127584
|
| |
|
|
| |
llvm-svn: 127578
|
| |
|
|
| |
llvm-svn: 127577
|
| |
|
|
|
|
| |
Early CSE pass so this patch reverts it to original source code.
llvm-svn: 127574
|
| |
|
|
| |
llvm-svn: 127569
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
load and store reference same memory location, the memory location
is represented by getelementptr with two uses (load and store) and
the getelementptr's base is alloca with single use. At this point,
instructions from alloca to store can be removed.
(this pattern is generated when bitfield is accessed.)
For example,
%u = alloca %struct.test, align 4 ; [#uses=1]
%0 = getelementptr inbounds %struct.test* %u, i32 0, i32 0;[#uses=2]
%1 = load i8* %0, align 4 ; [#uses=1]
%2 = and i8 %1, -16 ; [#uses=1]
%3 = or i8 %2, 5 ; [#uses=1]
store i8 %3, i8* %0, align 4
llvm-svn: 127565
|
| |
|
|
|
|
|
|
| |
may be reused.
Use the virtual register number as a cache tag instead. They are not reused.
llvm-svn: 127561
|
| |
|
|
|
|
|
| |
This allows the allocator to free any resources used by the virtual register,
including physical register assignments.
llvm-svn: 127560
|
| |
|
|
| |
llvm-svn: 127554
|
| |
|
|
| |
llvm-svn: 127548
|
| |
|
|
|
|
|
|
|
|
| |
llvm-gcc-i386-linux-selfhost and llvm-x86_64-linux-checks buildbots.
The original log entry:
Remove optimization emitting a reference insted of label difference, since
it can create more relocations. Removed isBaseAddressKnownZero method,
because it is no longer used.
llvm-svn: 127540
|
| |
|
|
| |
llvm-svn: 127539
|
| |
|
|
| |
llvm-svn: 127530
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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: 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: 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
|
| |
|
|
|
|
| |
as for VDUP32d and VDUP32q, respectively.
llvm-svn: 127489
|
| |
|
|
|
|
| |
and VDUPLN32d, respectively.
llvm-svn: 127486
|
| |
|
|
|
|
| |
as for VREV64d32 and VREV64q32, respectively.
llvm-svn: 127485
|
| |
|
|
| |
llvm-svn: 127483
|
| |
|
|
| |
llvm-svn: 127482
|
| |
|
|
|
|
| |
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: 127469
|
| |
|
|
|
|
| |
without being touched, so no longer needs to pollute the hidden-help text.
llvm-svn: 127468
|
| |
|
|
|
|
|
|
| |
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
|