| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 111665
|
| |
|
|
| |
llvm-svn: 111571
|
| |
|
|
|
|
|
|
| |
only modifies the low bytes of a value,
we can narrow the store to only over-write the affected bytes.
llvm-svn: 111568
|
| |
|
|
| |
llvm-svn: 111551
|
| |
|
|
| |
llvm-svn: 111543
|
| |
|
|
|
|
| |
of the two.
llvm-svn: 111495
|
| |
|
|
|
|
| |
issues.
llvm-svn: 111382
|
| |
|
|
|
|
|
|
|
| |
from the LHS should disable reconsidering that pred on the
RHS. However, knowing something about the pred on the RHS
shouldn't disable subsequent additions on the RHS from
happening.
llvm-svn: 111349
|
| |
|
|
| |
llvm-svn: 111348
|
| |
|
|
| |
llvm-svn: 111344
|
| |
|
|
| |
llvm-svn: 111342
|
| |
|
|
|
|
| |
vector heavy code. I'll re-enable when we've tracked down the problem.
llvm-svn: 111318
|
| |
|
|
|
|
|
| |
loop, making the resulting loop significantly less ugly. Also, zap
its trivial PHI nodes, since it's easy.
llvm-svn: 111255
|
| |
|
|
|
|
| |
what it does manually.
llvm-svn: 111248
|
| |
|
|
|
|
| |
PHI elimination is already doing all (most?) of the splitting needed. But machine-licm and machine-sink seem to miss some important optimizations when splitting is disabled.
llvm-svn: 111224
|
| |
|
|
|
|
|
|
| |
uninteresting, just put all the operands on one list and make
GenerateReassociations make the decision about what's interesting.
This is simpler, and it avoids an extra ScalarEvolution::getAddExpr call.
llvm-svn: 111133
|
| |
|
|
|
|
|
| |
This isn't necessary, because ScalarEvolution sorts them anyway,
but it's tidier this way.
llvm-svn: 111132
|
| |
|
|
|
|
| |
actually use ScalarEvolution.
llvm-svn: 111124
|
| |
|
|
|
|
| |
indirectbr destination lists.
llvm-svn: 111122
|
| |
|
|
| |
llvm-svn: 111061
|
| |
|
|
|
|
|
|
|
|
|
| |
- Eliminate redundant successors.
- Convert an indirectbr with one successor into a direct branch.
Also, generalize SimplifyCFG to be able to be run on a function entry block.
It knows quite a few simplifications which are applicable to the entry
block, and it only needs a few checks to avoid trouble with the entry block.
llvm-svn: 111060
|
| |
|
|
|
|
|
| |
ScalarEvolution::getAddExpr, which can be pretty expensive, when nothing
has changed, which is pretty common.
llvm-svn: 111042
|
| |
|
|
|
|
| |
it previously failed.
llvm-svn: 110987
|
| |
|
|
|
|
| |
before it rewrites the code, we need to use that in the post-rewrite pass.
llvm-svn: 110962
|
| |
|
|
|
|
| |
in an external testsuite.
llvm-svn: 110905
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
to recognize
patterns generated by clang for transpose of a matrix in generic vectors. This is made
of two parts:
1) Propagating vector extracts of hi/lo half into their users
2) Recognizing an insertion of even elements followed by the odd elements as an unpack.
Testcase to come, but this shrinks the # of shuffle instructions generated on x86 from ~40 to the minimal 8.
llvm-svn: 110734
|
| |
|
|
| |
llvm-svn: 110601
|
| |
|
|
|
|
| |
it doesn't regress again.
llvm-svn: 110597
|
| |
|
|
| |
llvm-svn: 110538
|
| |
|
|
|
|
| |
yet. Fixes PR7835.
llvm-svn: 110489
|
| |
|
|
|
|
| |
instead, as an example of what this looks like.
llvm-svn: 110478
|
| |
|
|
| |
llvm-svn: 110460
|
| |
|
|
|
|
|
|
| |
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: 110410
|
| |
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
| |
|
|
|
|
| |
default.
llvm-svn: 110384
|
| |
|
|
|
|
|
|
| |
unduly impacting code size, particularly
since unrolling is not enabled at -Os.
llvm-svn: 110233
|
| |
|
|
| |
llvm-svn: 110223
|
| |
|
|
| |
llvm-svn: 110181
|
| |
|
|
|
|
|
|
|
|
|
|
| |
eliminate several const_casts.
Make CallSite implicitly convertible to ImmutableCallSite.
Rename the getModRefBehavior for intrinsic IDs to
getIntrinsicModRefBehavior to avoid overload ambiguity with CallSite,
which happens to be implicitly convertible to bool.
llvm-svn: 110155
|
| |
|
|
|
|
|
| |
instructions with alignment 0, so that subsequent passes don't
need to bother checking the TargetData ABI size manually.
llvm-svn: 110128
|
| |
|
|
| |
llvm-svn: 110113
|
| |
|
|
|
|
| |
around std::min vs static const friction.
llvm-svn: 110112
|
| |
|
|
| |
llvm-svn: 110036
|
| |
|
|
|
|
|
|
| |
Fixes potential ambiguity problems on VS 2010.
Patch by nobled!
llvm-svn: 110029
|
| |
|
|
| |
llvm-svn: 110022
|
| |
|
|
|
|
|
|
| |
Start cleaning up MergeFunctions to look more like the rest of LLVM. The
primary change here is to move the methods responsible for comparison into the
new FunctionComparator object. Some comments added. There's more to do.
llvm-svn: 110021
|
| |
|
|
|
|
|
| |
like my instcombine patch.", in an attempt to fix Clang i386 bootstrap.
- Also PR7719.
llvm-svn: 109953
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
exactly what bugpoint expected it to do.
There was also only one user of
BlockExtractorPass(const std::vector<BasicBlock*> &B), so just remove it and
make BlockExtractorPass read BlockFile.
This fixes bugpoint's block extraction.
Nick, please review.
llvm-svn: 109936
|