| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
|
|
| |
in addition to the predecessor.
llvm-svn: 101374
|
| |
|
|
| |
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: 101298
|
| |
|
|
| |
llvm-svn: 101265
|
| |
|
|
| |
llvm-svn: 101248
|
| |
|
|
|
|
| |
that one operand is always greater than another.
llvm-svn: 101142
|
| |
|
|
| |
llvm-svn: 101141
|
| |
|
|
| |
llvm-svn: 101086
|
| |
|
|
|
|
|
| |
they're used a lot by getNodeForGEP, which can be called a lot.
This speeds up -iv-users by around 15% on several testcases.
llvm-svn: 101083
|
| |
|
|
|
|
|
|
| |
The information is already available with "opt -analyze". The DominatorTree
does also not have this in its runOnFunction. So they behave now
more consistent.
llvm-svn: 101038
|
| |
|
|
|
|
|
| |
This template is not needed anymore as it was replaced by the
DOTGraphTraitsViewer.
llvm-svn: 101036
|
| |
|
|
|
|
|
| |
have preheaders or dedicated exit blocks, as clients may not otherwise
need to run LoopSimplify.
llvm-svn: 101030
|
| |
|
|
|
|
|
|
|
| |
AddRecs so that it checks for overflow in the computation that it is
performing, rather than just checking hasNo{Signed,Unsigned}Wrap, since
those flags are for a different computation. This fixes a bug that
impacts an upcoming change.
llvm-svn: 101028
|
| |
|
|
| |
llvm-svn: 101009
|
| |
|
|
| |
llvm-svn: 101001
|
| |
|
|
|
|
| |
loop conditions which are invariants.
llvm-svn: 100995
|
| |
|
|
| |
llvm-svn: 100994
|
| |
|
|
|
|
| |
ConstantRange(0, 0) creates an empty range rather than a full one.
llvm-svn: 100993
|
| |
|
|
|
|
| |
intentionally ignored.
llvm-svn: 100984
|
| |
|
|
| |
llvm-svn: 100983
|
| |
|
|
| |
llvm-svn: 100981
|
| |
|
|
|
|
|
| |
that it's only testing for the entry condition, not full loop-invariant
conditions.
llvm-svn: 100979
|
| |
|
|
|
|
|
| |
a hoisted intermediate result if the intermediate result isn't an
Instruction.
llvm-svn: 100884
|
| |
|
|
| |
llvm-svn: 100874
|
| |
|
|
| |
llvm-svn: 100841
|
| |
|
|
|
|
| |
be sent to LSR, which it isn't prepared to handle.
llvm-svn: 100839
|
| |
|
|
| |
llvm-svn: 100825
|
| |
|
|
| |
llvm-svn: 100824
|
| |
|
|
| |
llvm-svn: 100802
|
| |
|
|
|
|
| |
unintended behavior.
llvm-svn: 100798
|
| |
|
|
| |
llvm-svn: 100789
|
| |
|
|
| |
llvm-svn: 100780
|
| |
|
|
|
|
|
| |
undef as 0, since it can't force other analyses to intepret the undef
in the same way.
llvm-svn: 100749
|
| |
|
|
| |
llvm-svn: 100713
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
explicitly split into stride-and-offset pairs. Also, add the
ability to track multiple post-increment loops on the same expression.
This refines the concept of "normalizing" SCEV expressions used for
to post-increment uses, and introduces a dedicated utility routine for
normalizing and denormalizing expressions.
This fixes the expansion of expressions which are post-increment users
of more than one loop at a time. More broadly, this takes LSR another
step closer to being able to reason about more than one loop at a time.
llvm-svn: 100699
|
| |
|
|
| |
llvm-svn: 100515
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
source addition. Apparently the buildbots were wrong about failures.
---
Add some switches helpful for debugging:
-print-before=<Pass Name>
Dump IR before running pass <Pass Name>.
-print-before-all
Dump IR before running each pass.
-print-after-all
Dump IR after running each pass.
These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.
To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.
llvm-svn: 100249
|
| |
|
|
|
|
|
|
|
| |
materializing an MDNode for every debugloc. don't do that! :)
"clang -g -S t.c" really no longer makes mdnodes for location
tuples now.
llvm-svn: 100224
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
representation. This eliminates the 'DILocation' MDNodes for
file/line/col tuples from -O0 -g codegen.
This remove the old DebugLoc class, making it a typedef for DebugLoc,
I'll rename NewDebugLoc next.
I didn't update the JIT to use the new apis, so it will continue to
work, but be as slow as before. Someone should eventually do this
or, better yet, rip out the JIT debug info stuff and build the JIT
on top of MC.
llvm-svn: 100209
|
| |
|
|
|
|
| |
are run during codegen.
llvm-svn: 100207
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<string> include. For some reason the buildbot choked on this while my
builds did not. It's probably due to a difference in system headers.
---
Add some switches helpful for debugging:
-print-before=<Pass Name>
Dump IR before running pass <Pass Name>.
-print-before-all
Dump IR before running each pass.
-print-after-all
Dump IR after running each pass.
These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.
To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.
llvm-svn: 100204
|
| |
|
|
| |
llvm-svn: 100146
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
-print-before=<Pass Name>
Dump IR before running pass <Pass Name>.
-print-before-all
Dump IR before running each pass.
-print-after-all
Dump IR after running each pass.
These are helpful when tracking down a miscompilation. It is easy to
get IR dumps and do diffs on them, etc.
To make this work well, add a new getPrinterPass API to Pass so that
each kind of pass (ModulePass, FunctionPass, etc.) can create a Pass
suitable for dumping out the kind of object the Pass works on.
llvm-svn: 100143
|
| |
|
|
| |
llvm-svn: 100011
|
| |
|
|
|
|
| |
consistent with other similar ones.
llvm-svn: 99997
|
| |
|
|
|
|
| |
timers by pointer instead of by-value.
llvm-svn: 99871
|