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
Dan Gohman
51559185f1
Enable anti-dependence breaking by default when post-RA scheduling is enabled.
...
llvm-svn: 61078
2008-12-16 06:21:45 +00:00
Dan Gohman
4302b4a63c
When breaking an anti-dependency, don't use a register which has seen
...
one of its aliases defined. This is conservative, but tricky subreg
corner cases are outside the primary aim of this pass.
llvm-svn: 61077
2008-12-16 06:20:58 +00:00
Dan Gohman
b9a012156b
Add initial support for back-scheduling address computations,
...
especially in the case of addresses computed from loop induction
variables.
llvm-svn: 61075
2008-12-16 03:35:01 +00:00
Dan Gohman
405f2197a4
Remove some special-case logic in ScheduleDAGSDNodes's
...
latency computation code that is no longer needed with the
new method for handling latencies.
llvm-svn: 61074
2008-12-16 03:31:11 +00:00
Dan Gohman
dddc1ac7ea
Fix some register-alias-related bugs in the post-RA scheduler liveness
...
computation code. Also, avoid adding output-depenency edges when both
defs are dead, which frequently happens with EFLAGS defs.
Compute Depth and Height lazily, and always in terms of edge latency
values. For the schedulers that don't care about latency, edge latencies
are set to 1.
Eliminate Cycle and CycleBound, and LatencyPriorityQueue's Latencies array.
These are all subsumed by the Depth and Height fields.
llvm-svn: 61073
2008-12-16 03:25:46 +00:00
Misha Brukman
7fda6f6b18
* Comply with HTML 4.01 Strict
...
* Added code-region markings to code sections to make them stand out
* Added pre.doc_code class to llvm.css to simplify marking code regions
llvm-svn: 61072
2008-12-16 03:07:49 +00:00
Misha Brukman
39dcddf827
* Comply with HTML 4.01 Strict standard
...
* Converted absolute links to llvm.org/docs to relative links
* Fixed spelling and s/;/:/, as needed
llvm-svn: 61071
2008-12-16 02:54:22 +00:00
Dan Gohman
8f782bbb28
Add a simple target-independent heuristic to allow targets with no
...
instruction itinerary data to back-schedule loads.
llvm-svn: 61070
2008-12-16 02:38:22 +00:00
Zhongxing Xu
c4a4c5f02d
Implement RegionStoreManager::Remove().
...
llvm-svn: 61069
2008-12-16 02:36:30 +00:00
Fariborz Jahanian
a599c1352b
Diagnose that ivars in current and super class may not
...
be duplicates and a test case.
llvm-svn: 61068
2008-12-16 01:08:35 +00:00
Dan Gohman
e3a6351f34
Move addPred and removePred out-of-line.
...
llvm-svn: 61067
2008-12-16 01:05:52 +00:00
Dan Gohman
17214e633d
Make addPred and removePred return void, since the return value is not
...
currently used by anything.
llvm-svn: 61066
2008-12-16 01:00:55 +00:00
Dan Gohman
cb6accfea9
This getEdgeAttributes doesn't need a template argument.
...
llvm-svn: 61065
2008-12-16 00:55:00 +00:00
Dan Gohman
d050b95ada
Add a getSDep() access function to SUnitIterator to return the
...
current SDep.
llvm-svn: 61064
2008-12-16 00:51:33 +00:00