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
Chris Lattner
ece16f2335
rename a file, remove a poorly reduced testcase.
...
llvm-svn: 83757
2009-10-11 07:10:28 +00:00
Chris Lattner
6ce85e85f5
restructure some code, no functionality change.
...
llvm-svn: 83756
2009-10-11 04:40:21 +00:00
Chris Lattner
f466bc84c9
factor some code better and move a function, no functionality change.
...
llvm-svn: 83755
2009-10-11 04:33:43 +00:00
Chris Lattner
f99a74e24b
make jump threading on a phi with undef inputs happen.
...
llvm-svn: 83754
2009-10-11 04:18:15 +00:00
Chris Lattner
09677258e5
there is no need to run mem2reg after jump threading at LTO time now.
...
llvm-svn: 83753
2009-10-11 04:17:33 +00:00
Chris Lattner
bb094e12f2
fix a bunch of bad formatting, delete the dead
...
ConstantInt::TheTrueVal/TheFalseVal members.
llvm-svn: 83752
2009-10-11 04:03:22 +00:00
Chris Lattner
8d186bfafb
merge two tests.
...
llvm-svn: 83751
2009-10-11 03:55:30 +00:00
Chris Lattner
041c1dca8b
simplify some run lines, convert a test to filecheck.
...
llvm-svn: 83750
2009-10-11 03:54:21 +00:00
Ted Kremenek
e959a1cd0e
Update release notes blurb on the static analyzer.
...
llvm-svn: 83749
2009-10-11 03:10:25 +00:00
Chris Lattner
71d353dd48
rewrite LCSSA to use SSAUpdate, to only return true if it modifies
...
the IR, and to implement the FIXME'd optimization.
llvm-svn: 83748
2009-10-11 02:53:37 +00:00
Chris Lattner
101dde30ed
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.
llvm-svn: 83747
2009-10-11 01:07:15 +00:00
Chris Lattner
b6c65faa64
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).
llvm-svn: 83746
2009-10-10 23:50:30 +00:00
Chris Lattner
9c382cebc5
add a simple helper method.
...
llvm-svn: 83745
2009-10-10 23:41:48 +00:00
Chris Lattner
249265de06
add ability for clients of SSAUpdater to find out about the
...
PHI nodes inserted.
llvm-svn: 83744
2009-10-10 23:15:24 +00:00
Chris Lattner
472330d5d2
clarify
...
llvm-svn: 83743
2009-10-10 23:05:42 +00:00
Chris Lattner
89d2a5c4f3
remove dead code
...
llvm-svn: 83742
2009-10-10 23:04:12 +00:00
Chris Lattner
67cdd8b567
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).
llvm-svn: 83741
2009-10-10 23:00:11 +00:00
Chris Lattner
e474a8d3a7
rename GetValueInBlock -> GetValueAtEndOfBlock to better reflect
...
what it does.
llvm-svn: 83740
2009-10-10 22:41:58 +00:00
Anton Korobeynikov
5b8826b4da
It seems that OR operation does not affect status reg at all.
...
Remove impdef of SRW. This fixes PR4779
llvm-svn: 83739
2009-10-10 22:17:47 +00:00
Chris Lattner
d4f70053ae
fix broken link
...
llvm-svn: 83738
2009-10-10 22:15:25 +00:00
Chris Lattner
ab58091692
final changes.
...
llvm-svn: 83737
2009-10-10 22:13:38 +00:00
Chris Lattner
4d74593b6e
down to 'major changes'
...
llvm-svn: 83736
2009-10-10 22:02:58 +00:00
Chris Lattner
e0948e96d7
more updates
...
llvm-svn: 83735
2009-10-10 21:40:13 +00:00
Chris Lattner
5e2f255c09
add a link to the GSG for info on how to check out svn trunk
...
llvm-svn: 83734
2009-10-10 21:37:16 +00:00
Chris Lattner
10a5a6f057
x86 uses 5 operands for most memory refs now.
...
llvm-svn: 83733
2009-10-10 21:30:55 +00:00
Anders Carlsson
6ce51fdf43
Move our (non-existing) RTTI emission code into CGRtti.cpp. No functionality change.
...
llvm-svn: 83732
2009-10-10 20:49:04 +00:00
Fariborz Jahanian
07ca72725a
Generate weak read barriers when reading a weak __block
...
variable inside the block.
llvm-svn: 83729
2009-10-10 20:07:56 +00:00
Duncan Sands
b93f40fd72
More spelling and grammar tweaks.
...
llvm-svn: 83728
2009-10-10 20:06:04 +00:00
Benjamin Kramer
9256f3d704
More spelling fixes.
...
llvm-svn: 83724
2009-10-10 19:45:13 +00:00
Duncan Sands
652eb5f51c
Spelling fixes.
...
llvm-svn: 83722
2009-10-10 19:30:16 +00:00
Chris Lattner
d959509cb5
more tweaks
...
llvm-svn: 83721
2009-10-10 19:26:21 +00:00
Duncan Sands
a2411198fe
Remove an inappropriate line in the description of the
...
clang static analyser. Decrease duplication in the text.
llvm-svn: 83720
2009-10-10 19:16:25 +00:00
Chris Lattner
713e8f062f
continue decoding chris scribble.
...
llvm-svn: 83719
2009-10-10 19:00:55 +00:00
Chris Lattner
a084627472
remove some dead passes
...
llvm-svn: 83717
2009-10-10 18:40:48 +00:00
Chris Lattner
23860ba207
checkpoint.
...
llvm-svn: 83716
2009-10-10 18:33:13 +00:00
Chris Lattner
80d73c7ee7
fix broken anchors.
...
llvm-svn: 83715
2009-10-10 18:26:06 +00:00
Sebastian Redl
5d43164bc2
Implement the core checking for compatible exception specifications in assignment and initialization.
...
The exception specification of the assignee must be the same or a subset of the target. In addition, exception specifications on arguments and return types must be equivalent, but this is not implemented yet.
This currently produces two diagnostics for every invalid assignment/initialization, due to the diagnostic produced outside PerformImplicitConversion, e.g. in CheckSingleInitializer. I don't know how to suppress this; in any case I think it is the wrong place for a diagnostic, since there are other diagnostics produced inside the function. So I'm leaving it as it is for the moment.
llvm-svn: 83710
2009-10-10 12:04:10 +00:00
Chris Lattner
65e69a77e1
use a typedef instead of spelling out an insane type. Yay for auto someday.
...
llvm-svn: 83707
2009-10-10 09:09:20 +00:00
Chris Lattner
84095071ea
Change jump threading to use the new SSAUpdater class instead of
...
DemoteRegToStack. This makes it more efficient (because it isn't
creating a ton of load/stores that are eventually removed by a later
mem2reg), and more slightly more effective (because those load/stores
don't get in the way of threading).
llvm-svn: 83706
2009-10-10 09:05:58 +00:00
Chris Lattner
60d4e69c81
Implement an efficient and fully general SSA update mechanism that
...
works on unstructured CFGs. This implements PR217, our oldest open PR.
llvm-svn: 83705
2009-10-10 09:04:27 +00:00
Chris Lattner
71db463fcf
add some WeakVH::operator='s. Without these, assigning
...
a Value* to a WeakVH was constructing a temporary WeakVH
(due to the implicit assignment operator). This avoids
that cost.
llvm-svn: 83704
2009-10-10 08:27:29 +00:00
Chris Lattner
a0424f5372
change some static_cast into cast, pointed out by Gabor.
...
llvm-svn: 83703
2009-10-10 08:01:27 +00:00
Chris Lattner
99e02edef8
add a version of PHINode::getIncomingBlock that takes a raw
...
Use, to complement the version that takes a use_iterator.
llvm-svn: 83702
2009-10-10 07:42:42 +00:00