| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 110458
|
|
|
|
| |
llvm-svn: 110456
|
|
|
|
| |
llvm-svn: 110455
|
|
|
|
| |
llvm-svn: 110454
|
|
|
|
| |
llvm-svn: 110453
|
|
|
|
|
|
|
|
|
| |
When a physical register is in use, some alias of that register has a live
interval with a relevant live range. That is the sad state of intervals after
physreg coalescing of subregs, and it is good enough for correct register
allocation.
llvm-svn: 110452
|
|
|
|
|
|
|
|
|
|
|
| |
Without this what was happening was:
* R3 is not marked as "used"
* ARM backend thinks it has to save it to the stack because of vaarg
* Offset computation correctly ignores it
* Offsets are wrong
llvm-svn: 110446
|
|
|
|
|
|
|
|
| |
Also move 'default' case next to a real case to help compiler optimize in
non-Debug builds.
No functionality change.
llvm-svn: 110435
|
|
|
|
|
|
|
|
| |
Further clean up the comparison function by removing overly generalized
"domains".
Remove all understanding of ELF aliases and simplify folding code and comments.
llvm-svn: 110434
|
|
|
|
| |
llvm-svn: 110429
|
|
|
|
| |
llvm-svn: 110427
|
|
|
|
| |
llvm-svn: 110425
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This pass tries to remove comparison instructions when possible. For instance,
if you have this code:
sub r1, 1
cmp r1, 0
bz L1
and "sub" either sets the same flag as the "cmp" instruction or could be
converted to set the same flag, then we can eliminate the "cmp" instruction all
together. This is a important for ARM where the ALU instructions could set the
CPSR flag, but need a special suffix ('s') to do so.
llvm-svn: 110423
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AliasAnalysis base class and into BasicAliasAnalyais. This avoids confusion
about where such logic is happening when there are other AliasAnalysis
implementations present.
Move the logic for translating two-callsite getModRefInfo queries into
other AliasAnalysis queries out of BasicAliasAnalysis and into the
AliasAnalysis base class, as it is useful for other AliasAnalysis
implementations.
llvm-svn: 110421
|
|
|
|
| |
llvm-svn: 110416
|
|
|
|
|
|
| |
use location of MBB->end(). If a block does not have terminator then incoming iterator points to end().
llvm-svn: 110411
|
|
|
|
| |
llvm-svn: 110410
|
|
|
|
| |
llvm-svn: 110404
|
|
|
|
|
|
|
| |
When a joined COPY changes subreg liveness, we keep it around as a KILL,
otherwise it is safe to delete.
llvm-svn: 110403
|
|
|
|
|
|
|
|
| |
LiveVariables becomes horribly wrong while the coalescer is running, but the
analysis is not zapped until after the coalescer pass has run. This causes tons
of false reports when calling verify form the coalescer.
llvm-svn: 110402
|
|
|
|
| |
llvm-svn: 110401
|
|
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
|
|
|
|
|
| |
to IntrReadWriteArgMem, as it's for reading as well as writing.
llvm-svn: 110395
|
|
|
|
|
|
| |
...) 256-bit argument passing and return for AVX
llvm-svn: 110394
|
|
|
|
|
|
|
| |
of BasicAA::getModRefInfo. This allows BasicAA to say that two
memset calls to non-aliasing memory locations don't interfere.
llvm-svn: 110393
|
|
|
|
| |
llvm-svn: 110391
|
|
|
|
| |
llvm-svn: 110388
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We verify that the LiveInterval is live at uses and defs, and that all
instructions have a SlotIndex.
Stuff we don't check yet:
- Is the LiveInterval minimal?
- Do all defs correspond to instructions or phis?
- Do all defs dominate all their live ranges?
- Are all live ranges continually reachable from their def?
llvm-svn: 110386
|
|
|
|
|
|
| |
default.
llvm-svn: 110384
|
|
|
|
|
|
| |
expanding the lattice to something that won't fit in two bits.
llvm-svn: 110383
|
|
|
|
|
|
|
|
|
|
| |
response from getModRefInfo is not useful here. Instead, check for identical
calls only in the NoModRef case.
Reapply r110270, and strengthen it to compensate for the memdep changes.
When both calls are readonly, there is no dependence between them.
llvm-svn: 110382
|
|
|
|
|
|
|
|
|
| |
anyway
as a positive consequence the CallSite::getCallee() methods now can be rewritten to be
a bit more efficient
llvm-svn: 110380
|
|
|
|
| |
llvm-svn: 110371
|
|
|
|
| |
llvm-svn: 110369
|
|
|
|
|
|
|
|
|
|
| |
register for local access when it's closer to the stack slot being refererenced
than the stack pointer. Make sure to take into account any argument frame
SP adjustments that are in affect at the time.
rdar://8256090
llvm-svn: 110366
|
|
|
|
| |
llvm-svn: 110363
|
|
|
|
|
|
|
|
|
|
| |
be killed before being redefined.
These checks are usually disabled, and usually fail when enabled. We de facto
allow live registers to be redefined without a kill, the corresponding
assertions in RegScavenger were removed long ago.
llvm-svn: 110362
|
|
|
|
|
|
| |
Partial fix for PR7792.
llvm-svn: 110361
|
|
|
|
|
|
| |
instructions.
llvm-svn: 110360
|
|
|
|
| |
llvm-svn: 110359
|
|
|
|
|
|
| |
Partial fix for PR7792.
llvm-svn: 110358
|
|
|
|
|
|
|
| |
we sometimes compare singular iterators, reported by ENABLE_EXPENSIVE_CHECKS.
This fixes PR7825.
llvm-svn: 110355
|
|
|
|
|
|
|
| |
preserves the existing behavior, as it seems a concious choice to allow RS to
be null and BigStack marked true.
llvm-svn: 110307
|
|
|
|
| |
llvm-svn: 110293
|
|
|
|
| |
llvm-svn: 110292
|
|
|
|
|
|
|
| |
one is a suffix of the other, and FileCheck accepts superstrings.
Adjust the output to avoid this problem.
llvm-svn: 110280
|
|
|
|
|
|
| |
because it could create such things. This fixes a MingW buildbot test failure.
llvm-svn: 110279
|
|
|
|
|
|
| |
uses.
llvm-svn: 110274
|
|
|
|
|
|
|
|
|
|
| |
to return Ref if the left callsite only reads memory read or written
by the right callsite; fix BasicAliasAnalysis to implement this.
Add AliasAnalysisEvaluator support for testing the two-callsite
form of getModRefInfo.
llvm-svn: 110270
|
|
|
|
| |
llvm-svn: 110269
|