Chris Lattner
490ff6310a
convert to filecheck.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 22:36:59 +00:00
Chris Lattner
d088314998
teach instcombine to simplify xor's harder, catching the
...
new testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 22:22:13 +00:00
Chris Lattner
7acdf1de06
cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 22:00:32 +00:00
Chris Lattner
833f0cc57f
convert xor2 to filecheck, merge in a random regtest
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83796 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 21:42:08 +00:00
Chris Lattner
a249847008
cleanup, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83795 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 21:36:10 +00:00
Chris Lattner
d2c58366d8
generalize a transformation even more: we don't care whether the
...
input the the mul is a zext from bool, just that it is all zeros
other than the low bit. This fixes some phase ordering issues
that would cause us to miss some xforms in mul.ll when the worklist
is visited differently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83794 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 21:29:45 +00:00
Chris Lattner
0036e3a469
simplify a transformation by making it more general.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83792 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 21:22:21 +00:00
Chris Lattner
61488a3310
temporarily revert previous patch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83791 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 21:05:34 +00:00
Chris Lattner
9a12a786b0
populate instcombine's initial worklist more carefully, causing
...
it to visit instructions from the start of the function to the
end of the function in the first path. This greatly speeds up
some pathological cases (e.g. PR5150).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83790 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 21:04:37 +00:00
Torok Edwin
849a639e17
Remove CleanupDbgInfo, instcombine does this and its not worth duplicating it
...
here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:58:35 +00:00
Duncan Sands
a1bbb78c36
More DragonEgg verbiage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:40:38 +00:00
Duncan Sands
83f6c929e3
Remove spurious brackets.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83787 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:30:56 +00:00
Torok Edwin
9289ae85b4
LICM shouldn't sink/delete debug information. Fix this and add a testcase.
...
For now the metadata of sinked/hoisted instructions is still wrong, but that'll
be fixed when instructions will have debug metadata directly attached.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:15:54 +00:00
Anton Korobeynikov
95eb470ce1
Implement 'm' memory operand properly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:14:21 +00:00
Anton Korobeynikov
c4be951ddc
Implement proper asmprinting for the globals. This eliminates bogus "call" modifier and also adds support for offsets wrt globals.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83784 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:14:02 +00:00
Anton Korobeynikov
da3d796424
Implement asm printing for inline asm memory operands
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:13:34 +00:00
Chris Lattner
71a61d1fd4
add PR5004 as a known problem.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:07:23 +00:00
Chris Lattner
8cf648b068
duncan points out that llvm-gcc doesn't do the right thing with -fverbose-asm yet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83781 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 19:02:54 +00:00
Nick Lewycky
706945764a
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 18:53:09 +00:00
Nick Lewycky
2bc6b9acd6
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83779 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 18:47:33 +00:00
Chris Lattner
5a06cf644f
when folding duplicate conditions, delete the
...
now-probably-dead instruction tree feeding it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 18:39:58 +00:00
Chris Lattner
f9f3cb1845
some notes from Anton
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83777 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 18:21:32 +00:00
Gabor Greif
3baca51cca
catch some other serial commas that my earlier grep did not spot
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83772 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 11:44:34 +00:00
Gabor Greif
56e164f4e0
eliminate some instances of serial comma. sabre, if you feel strong about this, feel free to revert this rev
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83771 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 11:23:40 +00:00
Duncan Sands
deb3f2ec23
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83770 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 11:20:26 +00:00
Gabor Greif
f553cbc5e9
apply some tweaks
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83769 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 10:44:44 +00:00
Gabor Greif
3883cba793
fix some obvious typos
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83768 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 10:27:57 +00:00
Duncan Sands
b88517c5e3
Add an outline of the DragonEgg gcc plugin.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83765 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 09:07:15 +00:00
Chris Lattner
8af304ab3b
implement rdar://7293527, a trivial instcombine that llvm-gcc
...
gets but clang doesn't, because it is implemented in GCC's
fold routine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83761 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 07:53:15 +00:00
Chris Lattner
f7a60d28a1
add a helper for matching "1".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83760 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 07:51:25 +00:00
Chris Lattner
78c552ef30
implement a transformation in jump threading that is currently
...
done by condprop, but do it in a much more general form. The
basic idea is that we can do a limited form of tail duplication
in the case when we have a branch on a phi. Moving the branch
up in to the predecessor block makes instruction selection
much easier and encourages chained jump threadings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83759 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 07:24:57 +00:00
Chris Lattner
113e4c6070
another testcase jump threading shouldn't crash on.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 07:11:11 +00:00
Chris Lattner
c6c167f3bf
rename a file, remove a poorly reduced testcase.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83757 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 07:10:28 +00:00
Chris Lattner
6b65f47ad5
restructure some code, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 04:40:21 +00:00
Chris Lattner
bdbf1a177d
factor some code better and move a function, no functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 04:33:43 +00:00
Chris Lattner
e33583b7c2
make jump threading on a phi with undef inputs happen.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83754 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 04:18:15 +00:00
Chris Lattner
1bd8d0a00b
there is no need to run mem2reg after jump threading at LTO time now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83753 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 04:17:33 +00:00
Chris Lattner
2c5060dbde
fix a bunch of bad formatting, delete the dead
...
ConstantInt::TheTrueVal/TheFalseVal members.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83752 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 04:03:22 +00:00
Chris Lattner
41fb43bb1e
merge two tests.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83751 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 03:55:30 +00:00
Chris Lattner
d98eb44dde
simplify some run lines, convert a test to filecheck.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 03:54:21 +00:00
Ted Kremenek
2840c18cf5
Update release notes blurb on the static analyzer.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83749 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 03:10:25 +00:00
Chris Lattner
8c1db67a4c
rewrite LCSSA to use SSAUpdate, to only return true if it modifies
...
the IR, and to implement the FIXME'd optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83748 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 02:53:37 +00:00
Chris Lattner
39b0c3d613
clean up and simplify some code. Don't use setvector when things will be
...
inserted only once, just use vector. Don't compute ExitBlocks unless we
need it, change std::sort to array_pod_sort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83747 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-11 01:07:15 +00:00
Chris Lattner
a09fbf0af0
switch GVN to use SSAUpdater. Besides removing a lot of complexity
...
from GVN, this also speeds it up, inserts fewer PHI nodes (see the
testcase) and allows it to remove more loads (due to fewer PHI nodes
standing in the way).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83746 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-10 23:50:30 +00:00
Chris Lattner
0bef562ea2
add a simple helper method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83745 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-10 23:41:48 +00:00
Chris Lattner
f5a1fb6b24
add ability for clients of SSAUpdater to find out about the
...
PHI nodes inserted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83744 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-10 23:15:24 +00:00
Chris Lattner
aa6aeb91b4
clarify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83743 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-10 23:05:42 +00:00
Chris Lattner
813dbd5912
remove dead code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83742 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-10 23:04:12 +00:00
Chris Lattner
1a8d4de397
add the ability to get a rewritten value from the middle of a block,
...
not just at the end. Add a big comment explaining when this could
be useful (which never happens for jump threading).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-10 23:00:11 +00:00
Chris Lattner
5fb107287f
rename GetValueInBlock -> GetValueAtEndOfBlock to better reflect
...
what it does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-10 22:41:58 +00:00