Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.65 -> 1.66
---
Log message:
Add support for value numbering (but not actually optimizing) cast instructions.
---
Diffs of the changes: (+65 -1)
GVNPRE.cpp | 66 +
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.64 -> 1.65
---
Log message:
Add a type field to expressions in preparation for performing GVNPRE on casts.
---
Diffs of the changes: (+12 -0)
GVNPRE.cpp | 12
1 files changed, 12 insertions(+)
Index: ll
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.63 -> 1.64
---
Log message:
Add support for performing GVNPRE on select instructions. This fixes
test/Transforms/GVNPRE/select.ll.
---
Diffs of the changes: (+57 -13)
GVNPRE.cpp | 70
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.62 -> 1.63
---
Log message:
Make many sets a much more reasonable size. This decreases the time to optimize
Anton's testcase from 35.5s to 34.7s.
---
Diffs of the changes: (+65 -65)
GVNPRE.cpp | 130 ++
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.61 -> 1.62
---
Log message:
Use cached information that has already been computed to make clean() simpler
and faster. This is a small speedup on most cases.
---
Diffs of the changes: (+31 -52)
GVNPRE.cpp | 83 ++
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.60 -> 1.61
---
Log message:
Fold a lot of code into two cases: binary instructions and ternary instructions.
This saves many lines of code duplication. No functionality change.
---
Diffs of the changes: (+62 -269)
GVNP
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.59 -> 1.60
---
Log message:
Add support for performing GVNPRE on the three vector-specific operations.
---
Diffs of the changes: (+436 -20)
GVNPRE.cpp | 456 ++---
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.58 -> 1.59
---
Log message:
1. Correct some comments and clean up some dead code.
2. When calculating ANTIC_IN, only iterate the changed blocks. For most average
inputs this is a small speedup, but for cases with unusual C
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.57 -> 1.58
---
Log message:
Use the built-in postorder iterators rather than computing a postorder walk by
hand.
---
Diffs of the changes: (+3 -35)
GVNPRE.cpp | 38 +++---
1 files chan
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.56 -> 1.57
---
Log message:
1) Fix an issue with non-deterministic iteration order in phi_translate
2) Remove some maximal-set computing code that is no longer used.
3) Use a post-order CFG traversal to compute ANTIC_IN inst
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.55 -> 1.56
---
Log message:
Fix a silly mistake that was causing failures.
---
Diffs of the changes: (+2 -2)
GVNPRE.cpp |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: llvm/lib/Transforms/Scalar/G
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.54 -> 1.55
---
Log message:
Rework topo_sort so eliminate some behavior that scaled terribly. This reduces
the time to optimize 403.gcc from 18.2s to 17.5s,
and has an even larger effect on larger testcases.
---
Diffs o
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.53 -> 1.54
---
Log message:
Perform fewer set insertions while calculating ANTIC_IN. This reduces the
amount of time to optimize 403.gcc from 21.9s to 18.2s.
---
Diffs of the changes: (+31 -40)
GVNPRE.cpp | 71 +
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.52 -> 1.53
---
Log message:
Remove some code that I was using for collecting performance information that
should not have been committed.
---
Diffs of the changes: (+18 -18)
GVNPRE.cpp | 36 ++
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.51 -> 1.52
---
Log message:
Avoid excessive calls to find_leader when calculating AVAIL_OUT. This reduces
the time to optimize 403.gcc from 23.5s to 21.9s.
---
Diffs of the changes: (+76 -30)
GVNPRE.cpp | 106 +++
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.50 -> 1.51
---
Log message:
Reserve space in vectors before topologically sorting into them. This improves
the time to optimize 403.gcc from 28s to 23.5s.
---
Diffs of the changes: (+2 -0)
GVNPRE.cpp |2 ++
1 file
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.49 -> 1.50
---
Log message:
Make a bunch of optimizations for compile time to GVNPRE, including smarter set
unions, deferring blocks rather than computing maximal sets, and smarter use of
sets. With these enhancements, th
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.48 -> 1.49
---
Log message:
Change lots of sets from std::set to SmallPtrSet. This reduces the time
required to optimize 253.perlbmk from 10.9s to 5.3s.
---
Diffs of the changes: (+99 -92)
GVNPRE.cpp | 191 ++
Owen Anderson wrote:
>Changes in directory llvm/lib/Transforms/Scalar:
>
>GVNPRE.cpp updated: 1.47 -> 1.48
>---
>Log message:
>
>Eliminate a redundant check. This speeds up optimization of 253.perlbmk from
>13.5 seconds to 10.9 seconds.
>
>
This is speeding up run time of GVNPRE not run time o
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.47 -> 1.48
---
Log message:
Eliminate a redundant check. This speeds up optimization of 253.perlbmk from
13.5 seconds to 10.9 seconds.
---
Diffs of the changes: (+3 -7)
GVNPRE.cpp | 10 +++---
1 files changed, 3
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.46 -> 1.47
---
Log message:
Comment-ize the functions in GVNPRE.
---
Diffs of the changes: (+108 -76)
GVNPRE.cpp | 184 +++--
1 files changed, 108 insertions(+),
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.45 -> 1.46
---
Log message:
Split runOnFunction into many smaller functions. This make it easier to get
accurate performance analysis of GVNPRE.
---
Diffs of the changes: (+329 -279)
GVNPRE.cpp | 608
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.44 -> 1.45
---
Log message:
Make GVNPRE accurate report whether it modified the function or not.
---
Diffs of the changes: (+12 -5)
GVNPRE.cpp | 17 -
1 files changed, 12 insertions(+), 5 deletions(-)
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.43 -> 1.44
---
Log message:
Get rid of an unneeded helper function.
---
Diffs of the changes: (+9 -19)
GVNPRE.cpp | 28 +---
1 files changed, 9 insertions(+), 19 deletions(-)
Index: llvm/lib/
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.42 -> 1.43
---
Log message:
Use a DenseMap instead of an std::map for the value numbering. This reduces
the time to optimize lencod on a PPC Debug build from ~300s to ~140s.
---
Diffs of the changes: (+5 -4)
GVNPRE.cp
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.41 -> 1.42
---
Log message:
Make dependsOnInvoke much more specific in what it tests, which in turn make it
much faster to run. This reduces the time to optimize lencondwith a debug
build on PPC from ~450s to ~300s.
---
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.40 -> 1.41
---
Log message:
Handle constants in phi nodes properly. This fixes
test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll
---
Diffs of the changes: (+10 -1)
GVNPRE.cpp | 11 ++-
1 files changed, 10 i
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.39 -> 1.40
---
Log message:
Be careful to erase values from all of the appropriate sets when they're not
needed anymore. This fixes a few more memory-related issues.
---
Diffs of the changes: (+14 -2)
GVNPRE.cpp | 1
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.38 -> 1.39
---
Log message:
Remember to clear the maximal sets between functions.
Thanks to Nicholas for valgrinding this.
---
Diffs of the changes: (+3 -2)
GVNPRE.cpp |5 +++--
1 files changed, 3 insertions(+), 2
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.37 -> 1.38
---
Log message:
Refactor GVNPRE to use a much smart method of uniquing value sets, and
centralize a lot of the value numbering information. No functionality change.
---
Diffs of the changes: (+451 -273)
GV
On Jun 17, 2007, at 9:31 PM, Owen Anderson wrote:
> --- llvm/lib/Transforms/Scalar/GVNPRE.cpp:1.34Fri Jun 15 19:26:54
> 2007
> +++ llvm/lib/Transforms/Scalar/GVNPRE.cpp Sun Jun 17 23:30:44 2007
> @@ -329,7 +329,12 @@
> lhsValid = true;
> break;
>
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.36 -> 1.37
---
Log message:
Cache the results of dependsOnInvoke()
---
Diffs of the changes: (+18 -4)
GVNPRE.cpp | 22 ++
1 files changed, 18 insertions(+), 4 deletions(-)
Index: llvm/lib/Transfo
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.35 -> 1.36
---
Log message:
Fix indentation.
---
Diffs of the changes: (+6 -6)
GVNPRE.cpp | 12 ++--
1 files changed, 6 insertions(+), 6 deletions(-)
Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff -u llvm
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.34 -> 1.35
---
Log message:
Don't perform an expensive check if it's not necessary.
---
Diffs of the changes: (+12 -2)
GVNPRE.cpp | 14 --
1 files changed, 12 insertions(+), 2 deletions(-)
Index: llvm/li
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.33 -> 1.34
---
Log message:
Fix test/Transforms/GVNPRE/2007-06-15-InvokeInst.ll by ignoring all
instructions that depend on invokes.
---
Diffs of the changes: (+36 -3)
GVNPRE.cpp | 39
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.32 -> 1.33
---
Log message:
Fix test/Transforms/GVNPRE/2007-06-15-Looping.ll
---
Diffs of the changes: (+2 -4)
GVNPRE.cpp |6 ++
1 files changed, 2 insertions(+), 4 deletions(-)
Index: llvm/lib/Transforms/Scal
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.31 -> 1.32
---
Log message:
Fix test/Transforms/GVNPRE/2007-06-12-PhiTranslate.ll
---
Diffs of the changes: (+39 -38)
GVNPRE.cpp | 77 ++---
1 files changed, 39
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.30 -> 1.31
---
Log message:
Refactor some code, and fix test/Transforms/GVNPRE/2007-06-12-NoExit.ll by
being more careful when using
post-dominator information.
---
Diffs of the changes: (+69 -47)
GVNPRE.cpp | 116 +++
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.29 -> 1.30
---
Log message:
Fix a few more bugs, including an instance of walking in reverse topological
rather than topological order. This
fixes a testcase extracted from llvm-test.
---
Diffs of the changes: (+49 -31)
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.28 -> 1.29
---
Log message:
Handle functions with multiple exit blocks properly.
---
Diffs of the changes: (+6 -0)
GVNPRE.cpp |6 ++
1 files changed, 6 insertions(+)
Index: llvm/lib/Transforms/Scalar/GVNPRE.cp
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.27 -> 1.28
---
Log message:
Perform PRE of comparison operators.
---
Diffs of the changes: (+155 -24)
GVNPRE.cpp | 179 -
1 files changed, 155 insertions(+),
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.26 -> 1.27
---
Log message:
Collect statistics from GVN-PRE.
---
Diffs of the changes: (+9 -0)
GVNPRE.cpp |9 +
1 files changed, 9 insertions(+)
Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff -u llvm/li
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.25 -> 1.26
---
Log message:
Fix typo in a comment.
---
Diffs of the changes: (+1 -1)
GVNPRE.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff -u llvm/lib/T
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.24 -> 1.25
---
Log message:
Fix a bug that was causing the elimination phase not to replace values when it
should be.
With this patch, GVN-PRE now correctly optimizes the example from the thesis.
Many thanks to Daniel Berl
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.23 -> 1.24
---
Log message:
Small bugfix, and const-ify some methods (Thanks, Bill).
---
Diffs of the changes: (+6 -6)
GVNPRE.cpp | 12 ++--
1 files changed, 6 insertions(+), 6 deletions(-)
Index: llvm/lib/T
Hi Owen,
One suggestion:
> +void dump(std::set& s);
> +void dump_unique(std::set& s);
My guess is that you want to pass these in as "const". Perhaps even
making the method const?
-bw
___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http:
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.22 -> 1.23
---
Log message:
Add partial redundancy elimination.
---
Diffs of the changes: (+249 -84)
GVNPRE.cpp | 333 +
1 files changed, 249 insertions(+), 8
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.21 -> 1.22
---
Log message:
Add simple full redundancy elimination.
---
Diffs of the changes: (+38 -12)
GVNPRE.cpp | 50 ++
1 files changed, 38 insertions(+), 12 deletio
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.20 -> 1.21
---
Log message:
Fix a misunderstanding of the algorithm. Really, we should be tracking values
and expression separately. We can get around this, however, by only keeping
opaque values in TMP_GEN.
---
Diffs of
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.19 -> 1.20
---
Log message:
Don't leak memory.
---
Diffs of the changes: (+6 -3)
GVNPRE.cpp |9 ++---
1 files changed, 6 insertions(+), 3 deletions(-)
Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff -u llvm/
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.18 -> 1.19
---
Log message:
Fix a small bug, some 80 cols violations, and add some more debugging output.
---
Diffs of the changes: (+8 -2)
GVNPRE.cpp | 10 --
1 files changed, 8 insertions(+), 2 deletions(-)
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.17 -> 1.18
---
Log message:
Don't use std::set_difference when the two sets are sorted differently. Compute
the difference manually instead.
This allows GVNPRE to produce correct analysis for the example in the GVNPRE
pape
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.16 -> 1.17
---
Log message:
Fix a bunch of small bugs, and improve the debugging output significantly.
---
Diffs of the changes: (+44 -26)
GVNPRE.cpp | 70 ++---
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.15 -> 1.16
---
Log message:
Make phi_translate correct.
---
Diffs of the changes: (+50 -47)
GVNPRE.cpp | 97 +++--
1 files changed, 50 insertions(+), 47 deletion
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.13 -> 1.14
---
Log message:
Don't use the custom comparator where it's not necessary.
---
Diffs of the changes: (+22 -13)
GVNPRE.cpp | 35 ++-
1 files changed, 22 insertions(+), 13 dele
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.11 -> 1.12
---
Log message:
Remove an unused method.
---
Diffs of the changes: (+0 -5)
GVNPRE.cpp |5 -
1 files changed, 5 deletions(-)
Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff -u llvm/lib/Transforms/
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.10 -> 1.11
---
Log message:
There's no need to have an Expression class... Value works just as well! This
simplifies a lot of code.
---
Diffs of the changes: (+168 -287)
GVNPRE.cpp | 455 ++---
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.9 -> 1.10
---
Log message:
clean() needs to process things in topological order.
---
Diffs of the changes: (+21 -28)
GVNPRE.cpp | 49 +
1 files changed, 21 insertions(+)
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.8 -> 1.9
---
Log message:
Fix Expression comparison, which in turn fixes a value numbering error.
---
Diffs of the changes: (+11 -12)
GVNPRE.cpp | 23 +++
1 files changed, 11 insertions(+), 12 dele
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.7 -> 1.8
---
Log message:
Add a topological sort function.
---
Diffs of the changes: (+56 -2)
GVNPRE.cpp | 58 --
1 files changed, 56 insertions(+), 2 deletions(
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.6 -> 1.7
---
Log message:
Attempt to fix up phi_translate.
---
Diffs of the changes: (+61 -11)
GVNPRE.cpp | 72 +++--
1 files changed, 61 insertions(+), 11 delet
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.5 -> 1.6
---
Log message:
Fix a typo
---
Diffs of the changes: (+1 -1)
GVNPRE.cpp |2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: llvm/lib/Transforms/Scalar/GVNPRE.cpp
diff -u llvm/lib/Transforms/Scal
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.4 -> 1.5
---
Log message:
Re-fix a bug, where I was now being too aggressive.
---
Diffs of the changes: (+5 -1)
GVNPRE.cpp |6 +-
1 files changed, 5 insertions(+), 1 deletion(-)
Index: llvm/lib/Transforms/Scal
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.3 -> 1.4
---
Log message:
Use proper debugging facilities so other people don't have to look at my
commented-out
debugging lines.
---
Diffs of the changes: (+18 -14)
GVNPRE.cpp | 32 ++--
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.2 -> 1.3
---
Log message:
Comment debug code out that I accidentally uncommented last time.
---
Diffs of the changes: (+2 -2)
GVNPRE.cpp |4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
Index: llvm/lib/Tr
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp updated: 1.1 -> 1.2
---
Log message:
Add a place where I missed using the maximal set. Note that using the maximal
set this way is _SLOW_. Somewhere down the line, I'll look at speeding it up.
---
Diffs of the changes: (+3 -3)
G
Changes in directory llvm/lib/Transforms/Scalar:
GVNPRE.cpp added (r1.1)
---
Log message:
Very first part of a GVN-PRE implementation. It currently performs a bunch of
analysis, and nothing more. It is also quite slow for the moment. However,
it should give a sense of what's going on.
---
67 matches
Mail list logo