| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 139139
|
| |
|
|
| |
llvm-svn: 139138
|
| |
|
|
| |
llvm-svn: 139137
|
| |
|
|
|
|
| |
add more showing of my work.
llvm-svn: 139136
|
| |
|
|
| |
llvm-svn: 139135
|
| |
|
|
| |
llvm-svn: 139134
|
| |
|
|
|
|
|
| |
visible given a=b=c=d=1, on iteration #1 (the second iteration). Replace it with
correct math. Fixes PR10383!
llvm-svn: 139133
|
| |
|
|
| |
llvm-svn: 139130
|
| |
|
|
|
|
| |
HowFarToZero; the case for a canonical loop.
llvm-svn: 139126
|
| |
|
|
|
|
|
|
| |
original value if types don't match.
Fixes clang selfhost.
llvm-svn: 139120
|
| |
|
|
|
|
| |
up do-nothing exception handling code produced by dragonegg.
llvm-svn: 139113
|
| |
|
|
|
|
|
|
| |
- Drop support for X >u 0, it's equivalent to X != 0 and should be canonicalized into the latter.
- Add X < 1 -> unlikely, which is what instcombine canonicalizes X <= 0 into.
- Add X > -1 -> likely, which is what instcombine canonicalizes X >= 0 into.
llvm-svn: 139110
|
| |
|
|
| |
llvm-svn: 139036
|
| |
|
|
|
|
|
|
| |
verifier accordingly.
This fixes ptype.exp gdb testsuite regressions.
llvm-svn: 138869
|
| |
|
|
|
|
|
| |
Optimize chained bitcasts of the form A->B->A.
Undo r138722 and change isEliminableCastPair to allow this case.
llvm-svn: 138756
|
| |
|
|
|
|
| |
Patch by Xiaoyi Guo!
llvm-svn: 138737
|
| |
|
|
| |
llvm-svn: 138722
|
| |
|
|
| |
llvm-svn: 138701
|
| |
|
|
|
|
| |
Patch by Xiaoyi Guo!
llvm-svn: 138695
|
| |
|
|
| |
llvm-svn: 138654
|
| |
|
|
|
|
| |
Fixes an oversight, and adds verification to catch it in the unloop.ll tests.
llvm-svn: 138622
|
| |
|
|
| |
llvm-svn: 138481
|
| |
|
|
| |
llvm-svn: 138469
|
| |
|
|
|
|
|
|
|
|
| |
This reverts commit 20a05be15ea5271ab6185b83200fa88263362400. (svn rev 138340)
Conflicts:
test/Transforms/InstCombine/bitcast.ll
llvm-svn: 138366
|
| |
|
|
|
|
|
| |
1. Cleanup the tests in ConstantFolding.cpp
2. Implement isAllOnes for Constant, ConstantFP, ConstantVector
llvm-svn: 138340
|
| |
|
|
| |
llvm-svn: 138206
|
| |
|
|
|
|
| |
This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly.
llvm-svn: 138145
|
| |
|
|
| |
llvm-svn: 138025
|
| |
|
|
|
|
| |
be impossible to call them from C.
llvm-svn: 138022
|
| |
|
|
|
|
| |
type does not need any context.
llvm-svn: 138010
|
| |
|
|
|
|
| |
instruction should be marked as potentially reading and/or writing memory.
llvm-svn: 137863
|
| |
|
|
|
|
| |
is clearly impossible given the current structure of the code.
llvm-svn: 137853
|
| |
|
|
|
|
| |
how to actually trigger the codepath in question at the moment, but it might get exposed in the future.
llvm-svn: 137781
|
| |
|
|
|
|
|
|
| |
This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL.
MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up.
llvm-svn: 137778
|
| |
|
|
|
|
| |
check for a LandingPadInst.
llvm-svn: 137745
|
| |
|
|
| |
llvm-svn: 137712
|
| |
|
|
| |
llvm-svn: 137673
|
| |
|
|
|
|
| |
is a bit unusual.
llvm-svn: 137662
|
| |
|
|
|
|
| |
write to memory.) Marking it as such makes some checks for immobility go away.
llvm-svn: 137655
|
| |
|
|
| |
llvm-svn: 137650
|
| |
|
|
| |
llvm-svn: 137648
|
| |
|
|
| |
llvm-svn: 137628
|
| |
|
|
|
|
| |
create new global variable.
llvm-svn: 137621
|
| |
|
|
|
|
| |
when building with assertions disabled.
llvm-svn: 137460
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
SCEV unrolling can unroll loops with arbitrary induction variables. It
is a prerequisite for -disable-iv-rewrite performance. It is also
easily handles loops of arbitrary structure including multiple exits
and is generally more robust.
This is under a temporary option to avoid affecting default
behavior for the next couple of weeks. It is needed so that I can
checkin unit tests for updateUnloop.
llvm-svn: 137384
|
| |
|
|
|
|
|
|
|
| |
ancestor loops.
I have a unit test that depends on scev-unroll, which unfortunately
isn't checked in. But I will check it in when I can.
llvm-svn: 137341
|
| |
|
|
| |
llvm-svn: 137317
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
An algorithm for incrementally updating LoopInfo within a
LoopPassManager. The incremental update should be extremely cheap in
most cases and can be used in places where it's not feasible to
regenerate the entire loop forest.
- "Unloop" is a node in the loop tree whose last backedge has been removed.
- Perform reverse dataflow on the block inside Unloop to propagate the
nearest loop from the block's successors.
- For reducible CFG, each block in unloop is visited exactly
once. This is because unloop no longer has a backedge and blocks
within subloops don't change parents.
- Immediate subloops are summarized by the nearest loop reachable from
their exits or exits within nested subloops.
- At completion the unloop blocks each have a new parent loop, and
each immediate subloop has a new parent.
llvm-svn: 137276
|
| |
|
|
| |
llvm-svn: 137253
|
| |
|
|
| |
llvm-svn: 137195
|