| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 103347
|
|
|
|
|
|
| |
This fixes the compile-time regressions seen in last night's tests.
llvm-svn: 103118
|
|
|
|
|
|
|
|
| |
indirect branches in all the predecessors. This avoids unnecessarily
splitting edges in cases where load PRE is not possible anyway.
Thanks to Jakub Staszak for pointing this out.
llvm-svn: 103034
|
|
|
|
|
|
|
| |
Probably the best way to know that all getOperand() calls have been handled
is to replace that API instead of updating.
llvm-svn: 101579
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix for self-hosting
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101465
|
|
|
|
| |
llvm-svn: 101434
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with a fix
rotate CallInst operands, i.e. move callee to the back
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101397
|
|
|
|
| |
llvm-svn: 101376
|
|
|
|
| |
llvm-svn: 101368
|
|
|
|
|
|
|
|
|
|
| |
of the operand array
the motivation for this patch are laid out in my mail to llvm-commits:
more efficient access to operands and callee, faster callgraph-construction,
smaller compiler binary
llvm-svn: 101364
|
|
|
|
| |
llvm-svn: 100856
|
|
|
|
| |
llvm-svn: 99488
|
|
|
|
|
|
| |
a loop and is itself the only dependency).
llvm-svn: 97526
|
|
|
|
|
|
|
|
| |
predecessors before returning. Otherwise, if multiple predecessor edges need
splitting, we only get one of them per iteration. This makes a small but
measurable compile time improvement with -enable-full-load-pre.
llvm-svn: 97521
|
|
|
|
| |
llvm-svn: 97512
|
|
|
|
| |
llvm-svn: 97366
|
|
|
|
|
|
| |
argument of createGVNPass and set it automatically for -O3.
llvm-svn: 97245
|
|
|
|
| |
llvm-svn: 97235
|
|
|
|
| |
llvm-svn: 97036
|
|
|
|
|
|
| |
the DominatorTree. ...", in hopes of restoring poor old PPC bootstrap.
llvm-svn: 97027
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument is non-null, pass it along to PHITranslateSubExpr so that it can
prefer using existing values that dominate the PredBB, instead of just
blindly picking the first equivalent value that it finds on a uselist.
Also when the DominatorTree is specified, have PHITranslateValue filter
out any result that does not dominate the PredBB. This is basically just
refactoring the check that used to be in GetAvailablePHITranslatedSubExpr
and also in GVN.
Despite my initial expectations, this change does not affect the results
of GVN for any testcases that I could find, but it should help compile time.
Before this change, if PHITranslateSubExpr picked a value that does not
dominate, PHITranslateWithInsertion would then insert a new value, which GVN
would later determine to be redundant and would replace. By picking a good
value to begin with, we save GVN the extra work of inserting and then
replacing a new value.
llvm-svn: 97010
|
|
|
|
|
|
| |
I don't have a small testcase for this.
llvm-svn: 96890
|
|
|
|
|
|
| |
failures from ValueTable::verifyRemoved() when using -debug.
llvm-svn: 96805
|
|
|
|
| |
llvm-svn: 96387
|
|
|
|
| |
llvm-svn: 96378
|
|
|
|
|
|
| |
terminator's list of successors.
llvm-svn: 96377
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
| |
llvm-svn: 95828
|
|
|
|
| |
llvm-svn: 95170
|
|
|
|
|
|
|
|
|
| |
disabled by default. This divides the existing load PRE code into 2 phases:
first it checks that it is safe to move the load to each of the predecessors
where it is unavailable, and then if it is safe, the code is changed to move
the load. Radar 7571861.
llvm-svn: 95007
|
|
|
|
|
|
|
| |
unconditionally. Besides checking the offset, also check that the underlying
object is aligned as much as the load itself.
llvm-svn: 94875
|
|
|
|
|
|
|
| |
indices are safe if the result is known to be within the bounds of the
underlying object.
llvm-svn: 94829
|
|
|
|
|
|
| |
already checked that TmpBB->getSinglePredecessor() is non-null.
llvm-svn: 94451
|
|
|
|
| |
llvm-svn: 93693
|
|
|
|
|
|
| |
non-zero trip count. Use SmallVector's pop_back_val().
llvm-svn: 92734
|
|
|
|
| |
llvm-svn: 92613
|
|
|
|
|
|
|
| |
non-templated IRBuilderBase class. Move that large CreateGlobalString
out of line, eliminating the need to #include GlobalVariable.h in IRBuilder.h
llvm-svn: 92227
|
|
|
|
|
|
|
|
|
|
| |
result
instead of stored. This reduces memdep memory usage, and also eliminates a bunch of
weakvh's. This speeds up gvn on gcc.c-torture/20001226-1.c from 23.9s to 8.45s (2.8x)
on a different machine than earlier.
llvm-svn: 91885
|
|
|
|
|
|
|
|
|
|
|
| |
load to avoid even messing around with SSAUpdate at all. In this case (which
is very common, we can just use the input value directly).
This speeds up GVN time on gcc.c-torture/20001226-1.c from 36.4s to 16.3s,
which still isn't great, but substantially better and this is a simple speedup
that applies to lots of different cases.
llvm-svn: 91851
|
|
|
|
| |
llvm-svn: 91849
|
|
|
|
| |
llvm-svn: 91666
|
|
|
|
|
|
|
|
| |
isPodLike type trait. This is a generally useful type trait for
more than just DenseMap, and we really care about whether something
acts like a pod, not whether it really is a pod.
llvm-svn: 91421
|
|
|
|
|
|
|
|
| |
value size. This only manifested when memdep inprecisely returns clobber,
which is do to a caching issue in the PR5744 testcase. We can 'efficiently
emulate' this by using '-no-aa'
llvm-svn: 91004
|
|
|
|
| |
llvm-svn: 90999
|
|
|
|
|
|
|
| |
clobbers to forward pieces of large stores to small loads, we need to consider
the properly phi translated pointer in the store block.
llvm-svn: 90978
|
|
|
|
|
|
| |
implicitly constant folds.
llvm-svn: 90977
|
|
|
|
|
|
| |
to require the load ty/ptr to be passed in, no functionality change.
llvm-svn: 90960
|
|
|
|
|
|
| |
and pointer instead of the load. No functionality change.
llvm-svn: 90959
|
|
|
|
|
|
| |
own small class. No functionality change.
llvm-svn: 90956
|
|
|
|
| |
llvm-svn: 90929
|