| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 132193
|
| |
|
|
| |
llvm-svn: 132181
|
| |
|
|
| |
llvm-svn: 132149
|
| |
|
|
| |
llvm-svn: 132148
|
| |
|
|
|
|
| |
assert that prevented setting alignment on section creation.
llvm-svn: 132113
|
| |
|
|
| |
llvm-svn: 132111
|
| |
|
|
| |
llvm-svn: 132108
|
| |
|
|
|
|
| |
rdar://problem/6920088
llvm-svn: 132105
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This doesn't change functionality (much), but it allows for a more fine-grained
eviction policy. The current policy only compares spill weights, and that is not
always the best thing to do. Spill weights are designed to serve linear scan,
and they don't consider live range splitting.
Add a mechanism so canEvict() can request that a live range be evicted and
split/spilled. This is to avoid infinite eviction loops.
llvm-svn: 132101
|
| |
|
|
|
|
|
|
|
|
| |
simpler and more consistent.
The practical effects here are that x86-64 fast-isel can now handle trunc from i8 to i1, and ARM fast-isel can handle many more constructs involving integers narrower than 32 bits (including loads, stores, and many integer casts).
rdar://9437928 .
llvm-svn: 132099
|
| |
|
|
| |
llvm-svn: 132087
|
| |
|
|
|
|
|
| |
LTO friendly as we can now correctly merge files compiled with or without
-fasynchronous-unwind-tables.
llvm-svn: 132033
|
| |
|
|
| |
llvm-svn: 131974
|
| |
|
|
| |
llvm-svn: 131952
|
| |
|
|
| |
llvm-svn: 131951
|
| |
|
|
|
|
|
|
|
|
| |
non-zero.
- Teach X86 cmov optimization to eliminate the cmov from ctlz, cttz extension
when the source of X86ISD::BSR / X86ISD::BSF is proven to be non-zero.
rdar://9490949
llvm-svn: 131948
|
| |
|
|
| |
llvm-svn: 131940
|
| |
|
|
| |
llvm-svn: 131936
|
| |
|
|
| |
llvm-svn: 131926
|
| |
|
|
|
|
|
|
| |
end of function.
Patch by Micah Villmow
llvm-svn: 131908
|
| |
|
|
|
|
| |
transfer SDDbgValue.
llvm-svn: 131907
|
| |
|
|
|
|
| |
when we're just going to throw the result away. No functionality change.
llvm-svn: 131880
|
| |
|
|
|
|
| |
should eventually convert to PMBuilder, but I don't plan to do this.
llvm-svn: 131819
|
| |
|
|
| |
llvm-svn: 131800
|
| |
|
|
|
|
|
|
| |
RemoveCopyByCommutingDef(). This
actually fixes most of the VerifyCoalescing failures in test-suite.
llvm-svn: 131768
|
| |
|
|
| |
llvm-svn: 131765
|
| |
|
|
| |
llvm-svn: 131763
|
| |
|
|
| |
llvm-svn: 131760
|
| |
|
|
| |
llvm-svn: 131757
|
| |
|
|
| |
llvm-svn: 131756
|
| |
|
|
|
|
|
|
| |
preserve
the phikill flag.
llvm-svn: 131717
|
| |
|
|
|
|
|
| |
similarly for stores. Now "make check" passes with the MachineVerifier forced
on with the VerifyCoalescing option!
llvm-svn: 131705
|
| |
|
|
| |
llvm-svn: 131663
|
| |
|
|
|
|
|
|
| |
on CodeGen/X86/2007-05-07-InvokeSRet.ll. There is probably a bug here that was
fixed by r128961, but since there is no test or reference to a source file I have
to revert it.
llvm-svn: 131618
|
| |
|
|
|
|
|
|
| |
Original log entry:
Refactor getActionType and getTypeToTransformTo ; place all of the 'decision'
code in one place.
llvm-svn: 131536
|
| |
|
|
|
|
| |
code in one place.
llvm-svn: 131534
|
| |
|
|
| |
llvm-svn: 131524
|
| |
|
|
|
|
|
| |
The 'last use' may not be in the same basic block, and we still want a correct
live range.
llvm-svn: 131523
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
joined copies.
LiveInterval::shrinkToUses recomputes the live range from scratch instead of
removing snippets. This should avoid the problem with dangling live ranges.
Leave physreg identity copies alone. They can be created when joining a virtreg
with a physreg. They don't affect register allocation, and they will be removed
by the rewriter.
llvm-svn: 131521
|
| |
|
|
|
|
| |
terminators into account; since there are many fewer isel misses with recent changes, misses caused by terminators are more significant.
llvm-svn: 131502
|
| |
|
|
| |
llvm-svn: 131497
|
| |
|
|
| |
llvm-svn: 131495
|
| |
|
|
| |
llvm-svn: 131469
|
| |
|
|
|
|
|
| |
passed as the fifth parameter, insure it's passed correctly (in R9).
rdar://problem/6920088
llvm-svn: 131467
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
small.
The greedy register allocator has live range splitting and register class
inflation, so it can actually fully undo this join, including restoring the
original register classes.
We still don't want to do this for long live ranges, mostly because of the high
register pressure of there are many constrained live ranges overlapping.
llvm-svn: 131466
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When instructions are deleted, they leave tombstone SlotIndex entries.
The isZeroLength method should ignore these null indexes.
This causes RABasic to sometimes spill a callee-saved register in the
abi-isel.ll test, so don't run that test with -regalloc=basic. Prioritizing
register allocation according to spill weight can cause more registers to be
used.
llvm-svn: 131436
|
| |
|
|
| |
llvm-svn: 131430
|
| |
|
|
| |
llvm-svn: 131429
|
| |
|
|
| |
llvm-svn: 131428
|
| |
|
|
|
|
| |
misses.
llvm-svn: 131426
|