Anton Korobeynikov
415c3dc501
Add MSP430 mem-mem insts support. Patch by Brian Lucas with some my refinements
...
llvm-svn: 83811
2009-10-11 23:03:28 +00:00
Chris Lattner
2c2deae5ac
remove some harmful code that would turn an insertelement on an undef
...
into a shuffle even if it was used by another insertelement. If the
visitation order of instcombine was wrong, this would turn a chain of
insertelements into a chain of shufflevectors, which was quite painful.
Since CollectShuffleElements handles these cases, the code can just
be nuked.
llvm-svn: 83810
2009-10-11 23:02:46 +00:00
Anton Korobeynikov
da0508fe15
Add bunch of MSP430 'feature' tests. Patch by Brian Lucas with some my refinements
...
llvm-svn: 83809
2009-10-11 23:02:38 +00:00
Benjamin Kramer
bb0a07bf92
Remove dead variable.
...
llvm-svn: 83808
2009-10-11 22:57:54 +00:00
Chris Lattner
06462efb47
reduce vec_shuffle2 and merge into vec_shuffle.
...
llvm-svn: 83807
2009-10-11 22:54:48 +00:00
Chris Lattner
6373045e7d
filecheckize vec_shuffle.ll and merge shuffle.ll into it.
...
llvm-svn: 83806
2009-10-11 22:52:15 +00:00
Chris Lattner
79a2f91f65
filecheckize
...
llvm-svn: 83805
2009-10-11 22:45:17 +00:00
Chris Lattner
8308fd9aab
rename test
...
llvm-svn: 83804
2009-10-11 22:44:16 +00:00
Chris Lattner
e660ee0a3b
remove old testcase
...
llvm-svn: 83803
2009-10-11 22:42:06 +00:00
Chris Lattner
1fe15dbbbb
merge test into shift.ll, this also eliminates awful grepping on -stats output
...
llvm-svn: 83802
2009-10-11 22:39:58 +00:00
Chris Lattner
d7969a2796
convert to filecheck.
...
llvm-svn: 83801
2009-10-11 22:36:59 +00:00
Benjamin Kramer
2e8301dd62
Add CGVtable.cpp to CMakeLists.
...
llvm-svn: 83800
2009-10-11 22:22:38 +00:00
Chris Lattner
c6cdbfbfdd
teach instcombine to simplify xor's harder, catching the
...
new testcase.
llvm-svn: 83799
2009-10-11 22:22:13 +00:00
Anders Carlsson
2bb27f53e0
Move the vtable builder to CGVtable.cpp, general cleanup.
...
llvm-svn: 83798
2009-10-11 22:13:54 +00:00
Chris Lattner
6e6ac47125
cleanups
...
llvm-svn: 83797
2009-10-11 22:00:32 +00:00
Chris Lattner
7db5b7893d
convert xor2 to filecheck, merge in a random regtest
...
llvm-svn: 83796
2009-10-11 21:42:08 +00:00
Chris Lattner
1639234775
cleanup, no functionality change.
...
llvm-svn: 83795
2009-10-11 21:36:10 +00:00
Chris Lattner
fd27f8a5b3
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.
llvm-svn: 83794
2009-10-11 21:29:45 +00:00
Anders Carlsson
2295f31810
Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of QualTypes.
...
llvm-svn: 83793
2009-10-11 21:24:51 +00:00
Chris Lattner
406cb75c6b
simplify a transformation by making it more general.
...
llvm-svn: 83792
2009-10-11 21:22:21 +00:00
Chris Lattner
f39f4f928a
temporarily revert previous patch
...
llvm-svn: 83791
2009-10-11 21:05:34 +00:00
Chris Lattner
bb058d3a23
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).
llvm-svn: 83790
2009-10-11 21:04:37 +00:00
Torok Edwin
8b3081350e
Remove CleanupDbgInfo, instcombine does this and its not worth duplicating it
...
here.
llvm-svn: 83789
2009-10-11 19:58:35 +00:00
Duncan Sands
5f6aa105f5
More DragonEgg verbiage.
...
llvm-svn: 83788
2009-10-11 19:40:38 +00:00
Duncan Sands
dcea7e921b
Remove spurious brackets.
...
llvm-svn: 83787
2009-10-11 19:30:56 +00:00
Torok Edwin
907ec36943
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.
llvm-svn: 83786
2009-10-11 19:15:54 +00:00
Anton Korobeynikov
6bce6bbf40
Implement 'm' memory operand properly
...
llvm-svn: 83785
2009-10-11 19:14:21 +00:00
Anton Korobeynikov
a58a3f930a
Implement proper asmprinting for the globals. This eliminates bogus "call" modifier and also adds support for offsets wrt globals.
...
llvm-svn: 83784
2009-10-11 19:14:02 +00:00
Anton Korobeynikov
3525a4a268
Implement asm printing for inline asm memory operands
...
llvm-svn: 83783
2009-10-11 19:13:34 +00:00
Chris Lattner
c04812c035
add PR5004 as a known problem.
...
llvm-svn: 83782
2009-10-11 19:07:23 +00:00
Chris Lattner
70fdca4b7f
duncan points out that llvm-gcc doesn't do the right thing with -fverbose-asm yet.
...
llvm-svn: 83781
2009-10-11 19:02:54 +00:00
Nick Lewycky
c7cf0b223b
Fix typo.
...
llvm-svn: 83780
2009-10-11 18:53:09 +00:00
Nick Lewycky
5246987a76
Fix typo.
...
llvm-svn: 83779
2009-10-11 18:47:33 +00:00
Chris Lattner
85c85c5e04
when folding duplicate conditions, delete the
...
now-probably-dead instruction tree feeding it.
llvm-svn: 83778
2009-10-11 18:39:58 +00:00
Chris Lattner
94ac58d99a
some notes from Anton
...
llvm-svn: 83777
2009-10-11 18:21:32 +00:00
Benjamin Kramer
3ce29858e9
CMake mingw build fixes.
...
- llvm's libs must be linked after clang's
- libLLVMSystem depends on psapi on win32 (get_system_libs has it)
- CIndex builds successfully on mingw now
llvm-svn: 83773
2009-10-11 12:22:00 +00:00
Gabor Greif
ccdf5fdfc1
catch some other serial commas that my earlier grep did not spot
...
llvm-svn: 83772
2009-10-11 11:44:34 +00:00
Gabor Greif
c51ca75468
eliminate some instances of serial comma. sabre, if you feel strong about this, feel free to revert this rev
...
llvm-svn: 83771
2009-10-11 11:23:40 +00:00
Duncan Sands
bc3f7c9229
Fix typo.
...
llvm-svn: 83770
2009-10-11 11:20:26 +00:00
Gabor Greif
39635acfc1
apply some tweaks
...
llvm-svn: 83769
2009-10-11 10:44:44 +00:00
Gabor Greif
e9fc6c982e
fix some obvious typos
...
llvm-svn: 83768
2009-10-11 10:27:57 +00:00
Sebastian Redl
8046049942
This ought to complete exception spec support. Man, am I glad.
...
llvm-svn: 83767
2009-10-11 09:14:57 +00:00
Sebastian Redl
6e4c871855
Types appearing more than once in a spec shouldn't matter.
...
llvm-svn: 83766
2009-10-11 09:11:23 +00:00
Duncan Sands
2dccb8571e
Add an outline of the DragonEgg gcc plugin.
...
llvm-svn: 83765
2009-10-11 09:07:15 +00:00
Sebastian Redl
4915e63d3b
Test exception spec compatibility on return type and parameters.
...
Along the way, use RequireCompleteType when testing exception spec types.
Separate all the ugly spec stuff into its own file.
llvm-svn: 83764
2009-10-11 09:03:14 +00:00
Zhongxing Xu
b8edf2a4dd
Introduces a new BindingVal which combines direct and
...
default binding for regions. This allows us to simply a lot of code. A
further simplification could be done is that many methods of
regionstore can only work on Store instead of GRState.
llvm-svn: 83762
2009-10-11 08:08:02 +00:00
Chris Lattner
e374382b8f
implement rdar://7293527, a trivial instcombine that llvm-gcc
...
gets but clang doesn't, because it is implemented in GCC's
fold routine.
llvm-svn: 83761
2009-10-11 07:53:15 +00:00
Chris Lattner
d1d23e1949
add a helper for matching "1".
...
llvm-svn: 83760
2009-10-11 07:51:25 +00:00
Chris Lattner
97b1405207
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.
llvm-svn: 83759
2009-10-11 07:24:57 +00:00
Chris Lattner
4140d8bd5c
another testcase jump threading shouldn't crash on.
...
llvm-svn: 83758
2009-10-11 07:11:11 +00:00