Steve Naroff
d1a36798b7
Remove rewriter dependency on 'nil' macro (used when rewriting for(...))
...
llvm-svn: 61135
2008-12-17 14:24:39 +00:00
Steve Naroff
596e137c84
Fix <rdar://problem/6450964> clang on xcode: Assertion failed: (RecordForDecl && "lookupFieldDeclForIvar no storage for class").
...
This was a recent regression caused by r61043 (related to code gen. for ivar references).
Fariborz, please review. I have some other concerns related to code generation for ivars that we can discuss later.
llvm-svn: 61134
2008-12-17 14:13:49 +00:00
Mon P Wang
015a7f57b2
Fix expansion of vsetcc to set the high bit for true instead of 1.
...
llvm-svn: 61129
2008-12-17 08:49:47 +00:00
Chris Lattner
3d72297909
diagnose C99 6.9.1p5, C arguments in definitions that are lacking
...
a name. This implements PR3208.
llvm-svn: 61127
2008-12-17 07:32:46 +00:00
Chris Lattner
438e501b2e
Move the other Sema::ActOnLinkageSpec to SemaDeclCXX.
...
Move Sema::ActOnDefs to SemaDeclObjC
llvm-svn: 61126
2008-12-17 07:13:27 +00:00
Chris Lattner
3b024a3c9e
Move Sema::ActOnLinkageSpec to SemaDeclCXX.
...
llvm-svn: 61125
2008-12-17 07:09:26 +00:00
Chris Lattner
0cdf52310a
insert some sequence points and preincrement an iterator to avoid
...
iterator invalidation problems.
llvm-svn: 61124
2008-12-17 05:42:08 +00:00
Chris Lattner
222ef4c489
Enhance heap sra to be substantially more aggressive w.r.t PHI
...
nodes. This allows it to do fairly general phi insertion if a
load from a pointer global wants to be SRAd but the load is used
by (recursive) phi nodes. This fixes a pessimization on ppc
introduced by Load PRE.
llvm-svn: 61123
2008-12-17 05:28:49 +00:00
Dan Gohman
ce70fe2e25
Double the amount of memory reserved for SUnits. This is a
...
temporary workaround for an obscure bug. When node cloning is
used, it is possible that more SUnits will be created, and
if the SUnits std::vector has to reallocate, it will
invalidate all the graph edges.
llvm-svn: 61122
2008-12-17 04:30:46 +00:00
Dan Gohman
2a16bbe394
Use getDepth() and getHeight() instead of accessing the
...
Depth and Height members directly, as they may not be
current.
llvm-svn: 61121
2008-12-17 04:25:52 +00:00
Dan Gohman
c50143a539
Fix the comments for getDepth and getHeight.
...
llvm-svn: 61120
2008-12-17 04:24:23 +00:00
Eli Friedman
6cf404f2d1
Fix for PR3225: disable a broken optimization in
...
DAGTypeLegalizer::ExpandShiftWithKnownAmountBit.
In terms of restoring the optimization, the best fix here isn't
obvious... any ideas?
llvm-svn: 61119
2008-12-17 03:35:17 +00:00
Mikhail Glushenkov
0b9d8f8c21
Update also the generated docs.
...
llvm-svn: 61118
2008-12-17 02:47:30 +00:00
Mikhail Glushenkov
5932d8c986
Some enhancements for the 'case' expression.
...
Add (error) and (empty).
llvm-svn: 61117
2008-12-17 02:47:01 +00:00
Douglas Gregor
2f52119843
Make sure that enumerators show up within the enumeration declaration. Fixes. PR clang/3220
...
llvm-svn: 61116
2008-12-17 02:04:30 +00:00
Douglas Gregor
89da43922b
Fix PrintParserCallbacks for the new ActOnLinkageSpec actions
...
llvm-svn: 61115
2008-12-17 01:46:43 +00:00
Fariborz Jahanian
1470e9322e
Semantics of @protocol attributes.
...
llvm-svn: 61114
2008-12-17 01:07:27 +00:00
Steve Naroff
b13688804c
Tweaks to allow us to rewrite with -x=objective-c++ enabled.
...
llvm-svn: 61113
2008-12-17 00:20:22 +00:00
Nuno Lopes
17f345f2f2
remove debug stmt, sorry..
...
llvm-svn: 61112
2008-12-16 22:59:47 +00:00
Nuno Lopes
5773a1be41
fix PR 3222: allow one to get the address of a global function in C++
...
llvm-svn: 61111
2008-12-16 22:58:26 +00:00
Douglas Gregor
29ff7d0634
Make linkage-specifications hold on to all of their declarations
...
llvm-svn: 61110
2008-12-16 22:23:02 +00:00
Dale Johannesen
904ce8120d
Clarify that the scale factor from CheckForIVReuse
...
can be negative. Keep track of whether all uses of
an IV are outside the loop. Some cosmetics; no
functional change.
llvm-svn: 61109
2008-12-16 22:16:28 +00:00
Eli Friedman
be649698b6
Fix crash with -ast-dump in C++.
...
llvm-svn: 61108
2008-12-16 22:14:15 +00:00
Dale Johannesen
f51dcef803
A new dag combine; several permutations of this
...
are there under ADD, this one was missing.
llvm-svn: 61107
2008-12-16 22:13:49 +00:00
Ted Kremenek
d9de9f148e
Add new GRWorkList class that uses two queues:
...
- one queue (FIFO) to queue up nodes at block entrances
- another queue (LIFO) to queue up other nodes
- The idea is to explore basic blocks to completion, but to do a BFS exploration of blocks.
llvm-svn: 61106
2008-12-16 22:13:33 +00:00
Ted Kremenek
9e08ff40da
ProgramPoint:
...
- Added four new ProgramPoint types that subclass PostStmt for use in
GRExprEngine::EvalLocation:
- PostOutOfBoundsCheckFailed
- PostUndefLocationCheckFailed
- PostNullCheckFailed
- PostLocationChecksSucceed
These were created because of a horribly subtle caching bug in EvalLocation
where a node representing an "bug condition" in EvalLocation (e.g. a null
dereference) could be re-used as the "non-bug condition" because the Store did
not contain any information to differentiate between the two. The extra
program points just disables any accidental caching between EvalLocation and
its callers.
GRExprEngine:
- EvalLocation now returns a NodeTy* instead of GRState*. This should be used as the "vetted" predecessor for EvalLoad/EvalStore.
llvm-svn: 61105
2008-12-16 22:02:27 +00:00
Owen Anderson
5121ec3821
Add code to renumber split intervals into new vregs. This is disabled for now until I finish working out some iterator invalidation issues.
...
llvm-svn: 61104
2008-12-16 21:35:08 +00:00
Douglas Gregor
4d87df5853
Delay parsing of default arguments of member functions until the class
...
is completely defined (C++ [class.mem]p2).
Reverse the order in which we process the definitions of member
functions specified inline. This way, we'll get diagnostics in the
order in which the member functions were declared in the class.
llvm-svn: 61103
2008-12-16 21:30:33 +00:00
Chris Lattner
56b55387fc
Fix another crash found by inspection. If we have a PHI node merging
...
the load multiple times, make sure the check the uses of the PHI to
ensure they are transformable.
llvm-svn: 61102
2008-12-16 21:24:51 +00:00
Chris Lattner
06a456b3f4
fix a crash found by inspection.
...
llvm-svn: 61101
2008-12-16 21:04:51 +00:00
Eli Friedman
cb61afb546
Add a helper to remove a branch and DCE the condition, and use it
...
consistently for deleting branches. In addition to being slightly
more readable, this makes SimplifyCFG a bit better
about cleaning up after itself when it makes conditions unused.
llvm-svn: 61100
2008-12-16 20:54:32 +00:00
Eli Friedman
42b1e9e252
Silence a couple more operator precedence warnings; this shouldn't
...
change the semantics. Please correct this if the precedence was
actually supposed to be something different.
llvm-svn: 61099
2008-12-16 20:15:50 +00:00
Eli Friedman
c8a590dda3
Warning fixes to operator precedence warnings.
...
Someone should double-check that I didn't somehow break ObjC
serialization; I think the change there actually changes the semantics.
llvm-svn: 61098
2008-12-16 20:06:41 +00:00
Nate Begeman
f2a6e5f0c0
Remove tabs.
...
llvm-svn: 61097
2008-12-16 19:57:09 +00:00
Dan Gohman
b4d41e802f
Eliminate the loop that walks the critical path. Instead, just track the
...
position in the critical path during the main instruction walk. This
eliminates the need for the CritialAntiDep DenseMap.
llvm-svn: 61096
2008-12-16 19:27:52 +00:00
Bill Wendling
e38c7400c9
Remove empty test.
...
llvm-svn: 61095
2008-12-16 19:07:17 +00:00
Bill Wendling
a397baea88
Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release
...
builds.
llvm-svn: 61094
2008-12-16 19:06:48 +00:00
Dan Gohman
4476ef810b
Preserve SourceValue information when lowering produces multiple loads from
...
different offsets within the same stack slot.
llvm-svn: 61093
2008-12-16 18:25:36 +00:00
Evan Cheng
c35fc49477
We have decided not to support inline asm where an output operand with a matching input operand with incompatible type (i.e. either one is a floating point and the other is an integer or the sizes of the types differ). SelectionDAGBuild will catch these and exit with an error.
...
llvm-svn: 61092
2008-12-16 18:21:39 +00:00
Fariborz Jahanian
3a1bb22178
Patch to check for ObjC's property type.
...
llvm-svn: 61090
2008-12-16 17:51:01 +00:00
Steve Naroff
61d879e424
Fix <rdar://problem/6445502> clang ObjC rewriter: _Block_release has wrong parameter type in preamble
...
llvm-svn: 61088
2008-12-16 15:50:30 +00:00
Oscar Fuentes
4f9b3efd1e
CMake: Added DbgInfoPrinter.cpp to lib/Analysis/CMakeFiles.txt.
...
llvm-svn: 61087
2008-12-16 12:25:04 +00:00
Torok Edwin
01a1e37154
add testcase for -print-dbginfo
...
llvm-svn: 61086
2008-12-16 10:10:23 +00:00
Torok Edwin
8fa6e63cf9
Add -print-dbginfo pass that prints LLVM IR with comments inserted to show
...
which source/line a certain BB/instruction comes from, original variable names,
and original (unmangled) C++ name of functions.
llvm-svn: 61085
2008-12-16 09:09:19 +00:00
Torok Edwin
8926139252
Add utility functions to search for DbgStopPointInst corresponding to an
...
instruction or BasicBlock, and to search for DbgDeclareInst corresponding to a
variable.
llvm-svn: 61084
2008-12-16 09:07:36 +00:00
Torok Edwin
f49b028780
use different name for parameter to make it clear that we set DIDescriptor::GV
...
llvm-svn: 61083
2008-12-16 09:06:01 +00:00
Nick Lewycky
69c9aa4ce5
Generalize support for analyzing loops to include SLE/SGE loop exit conditions
...
and support for non-unit strides with signed exit conditions.
llvm-svn: 61082
2008-12-16 08:30:01 +00:00
Chris Lattner
6ddde53783
switch some std::set/std::map to SmallPtrSet/DenseMap.
...
llvm-svn: 61081
2008-12-16 07:34:30 +00:00
Chris Lattner
8b4be37275
fix PR3217: fully cached queries need to be verified against the
...
visited set before they are used. If used, their blocks need to be
added to the visited set so that subsequent queries don't use conflicting
pointer values in the cache result blocks.
llvm-svn: 61080
2008-12-16 07:10:09 +00:00
Douglas Gregor
195002917e
Partial fix for qualified name lookup, such that the lookup of N in
...
N::X only skips those entities specified in C++ [basic.lookup.qual]p1.
Note that both EDG and GCC currently get this wrong. EDG has confirmed
that the bug will be fixed in a future version.
llvm-svn: 61079
2008-12-16 06:37:47 +00:00