Anton Korobeynikov
644caa0cdb
Add tests for X86-64 code model handling. Small and kernel for now.
...
llvm-svn: 78300
2009-08-06 12:25:20 +00:00
Anton Korobeynikov
d0439d0638
We need to sext global addresses in kernel code model, not zext
...
llvm-svn: 78299
2009-08-06 11:23:24 +00:00
Zhongxing Xu
82003da8d3
Core analysis engine template cleanup step 2:
...
merge GRCoreEngineImpl and GRCoreEngine.
Introduce a new interface class GRSubEngine as the subengine of GRCoreEngine.
GRExprEngine subclasses GRSubEngine now.
llvm-svn: 78298
2009-08-06 10:00:15 +00:00
Dan Gohman
130e2c7aed
Fix a bug in x86's PreprocessForRMW logic that was exposed
...
by aggressive chain operand optimization. UpdateNodeOperands
does not modify the node in place if it would result in
a node identical to an existing node.
llvm-svn: 78297
2009-08-06 09:22:57 +00:00
Zhongxing Xu
c5ce335f81
Fix comment.
...
llvm-svn: 78296
2009-08-06 09:22:08 +00:00
Dan Gohman
5758e1e92a
Fix a few places in DAGCombiner that were creating all-ones-bits
...
and high-bits values in ways that weren't correct for integer
types wider than 64 bits. This fixes a miscompile in
PPMacroExpansion.cpp in clang on x86-64.
llvm-svn: 78295
2009-08-06 09:18:59 +00:00
Anton Korobeynikov
82db9891fa
Missed part of recent kernel codemodel tweaks
...
llvm-svn: 78293
2009-08-06 09:11:19 +00:00
Douglas Gregor
71dc50915a
Implement transformation of template names within the generic tree
...
transform, then use the result for template instantiation. The generic
transformation fixes a few issues:
- It copes better with template template parameters and member
templates (when they're implemented).
- The logic used to replace template template parameters with their
arguments is now centralized in TransformDecl, so that it will apply
for other declaration-instantiation steps.
- The error-recovery strategy is normalized now, so that any error
results in a NULL TemplateName.
llvm-svn: 78292
2009-08-06 06:41:21 +00:00
Zhongxing Xu
c90a0c2e81
Core analysis engine template cleanup step 2:
...
merge ExplodedGraphImpl and ExplodedGraph.
llvm-svn: 78291
2009-08-06 06:28:40 +00:00
Ted Kremenek
f368fa6728
Update test case.
...
llvm-svn: 78290
2009-08-06 06:26:40 +00:00
Chris Lattner
5ccb3af0aa
add a testcase for my llvm-gcc hack.
...
llvm-svn: 78289
2009-08-06 06:18:52 +00:00
Daniel Dunbar
84f399103b
Don't search the entire type table just to delete a type by name.
...
- This also fixes the ENABLE_EXPENSIVE_CHECKS failure on vmcore.ml.
llvm-svn: 78287
2009-08-06 06:04:35 +00:00
Douglas Gregor
1135c35c7c
Implement transformation of nested-name-specifiers within the general
...
tree transformation. Template instantiation uses this general
transformation rather than implementing its own transformation.
llvm-svn: 78286
2009-08-06 05:28:30 +00:00
Ted Kremenek
54bd637f40
Fix typo reported in <rdar://problem/7121409>.
...
llvm-svn: 78285
2009-08-06 05:01:36 +00:00
Ted Kremenek
2c85f17922
Refactor RegionStoreManager::RemoveDeadBindings to also scan the bindings of LazyCompoundSVals.
...
llvm-svn: 78284
2009-08-06 04:50:20 +00:00
Douglas Gregor
3f4d51bb04
Predefine __cplusplus to the right value (199711L), except when in GNU mode.
...
llvm-svn: 78283
2009-08-06 04:09:28 +00:00
Sanjiv Gupta
bdaaacad9a
llvm-ld has a new option called -b to specify the name of bitcode output file, use that.
...
llvm-svn: 78282
2009-08-06 04:09:26 +00:00
Chris Lattner
87754848ab
this passes.
...
llvm-svn: 78281
2009-08-06 03:55:49 +00:00
Ted Kremenek
e587ca6f25
Remove unimplemented methods 'AddRegionView' and 'RemoveRegionView'. They are no longer needed.
...
llvm-svn: 78280
2009-08-06 03:41:56 +00:00
Ted Kremenek
ed31f99efb
When profiling an ExplodedNode, don't re-profile the state: they have
...
already been uniqued.
llvm-svn: 78279
2009-08-06 03:39:20 +00:00
Douglas Gregor
d806156d54
Support nested-name-specifiers for C++ member access expressions, e.g.,
...
this->Base::foo
from James Porter!
llvm-svn: 78278
2009-08-06 03:17:00 +00:00
Andreas Bolka
3c7b95d9aa
Simplify the ZIV tester to the max.
...
As suggested by Nick Lewycky.
llvm-svn: 78277
2009-08-06 03:10:33 +00:00
Ryan Flynn
aa5e5fd2f4
add support for FreeBSD's format(printf0,x,y) attribute; allows null format string.
...
llvm-svn: 78276
2009-08-06 03:00:50 +00:00
Sanjiv Gupta
aee88e46c1
XFAIL it while it is being worked on.
...
llvm-svn: 78275
2009-08-06 02:19:20 +00:00
John McCall
07e91c04ba
First pass at friend semantics.
...
llvm-svn: 78274
2009-08-06 02:15:43 +00:00
Zhongxing Xu
51eeb36c8c
Completely remove the code using region cast.
...
llvm-svn: 78273
2009-08-06 02:14:29 +00:00
Daniel Dunbar
b46b5bbaa8
Add additional library paths for Linux distros on mixed 32/64-bit systems.
...
- Patch by Carl-Daniel Hailfinger.
llvm-svn: 78272
2009-08-06 01:47:11 +00:00
Daniel Dunbar
4728100e8d
Fix locating the 'lit.cfg' file when running on only a single file in the
...
current directory.
llvm-svn: 78271
2009-08-06 01:41:03 +00:00
Zhongxing Xu
20227f71d7
As GRState seems general enough, it is time to merge some template classes
...
and their impl base classes. This can greatly simply some code of the core
analysis engine. This patch merges ExplodedNodeImpl into ExplodedNode.
llvm-svn: 78270
2009-08-06 01:32:16 +00:00
Daniel Dunbar
f1ad6b7064
Fix clang breakage, CGF can be null in this context.
...
llvm-svn: 78269
2009-08-06 01:24:27 +00:00
Ted Kremenek
fa41714d8d
Implement lazy "copying" of structures and arrays in RegionStore. While
...
RegionStore already lazily abstracted the contents of arrays and structs, when
doing an assignment from one array/struct to another we did an explicit
element-wise copy, which resulted in a loss of laziness and huge performance
problem when analyzing many code bases.
Now RegionStoreManager handles such assignments using a new SVal could
'LazyCompoundSVal', which basically means the value of a given struct or array
(a MemRegion*) in a specific state (GRState). When we do a load from a field
whose encompassing struct binds to a LazyCompoundSVal, we essentially do a field
lookup in the original structure. This means we have essentially zero copying of
data for structs/arrays and everything stays lazy.
llvm-svn: 78268
2009-08-06 01:20:57 +00:00
Fariborz Jahanian
eb869768f9
Patch to optimize away copy constructor call when
...
appropriate.
llvm-svn: 78267
2009-08-06 01:02:49 +00:00
John McCall
9de556c8b6
AlisdairM pointed out that this will likely be relaxed in C++0x, so let's
...
make a note of it in the test case.
llvm-svn: 78266
2009-08-06 00:50:46 +00:00
Mike Stump
2509480813
Fixup object layout when we have a primary base (it goes first). Start preping for
...
virtual base layout.
llvm-svn: 78265
2009-08-06 00:38:46 +00:00
Bob Wilson
3389c2f7d0
Add tests for new NEON vld instructions.
...
llvm-svn: 78264
2009-08-06 00:38:31 +00:00
Bob Wilson
488db94e7b
Neon does not actually have VLD{234}.64 instructions.
...
These operations will have to be synthesized from other instructions.
llvm-svn: 78263
2009-08-06 00:24:27 +00:00
John McCall
13c5a27c9a
Add a test for invalid uses of non-static members from nested classes, just
...
because I was thinking about it.
llvm-svn: 78262
2009-08-05 23:56:26 +00:00
Bob Wilson
dd611f44cb
Convert more Neon tests to FileCheck.
...
llvm-svn: 78261
2009-08-05 23:51:20 +00:00
Owen Anderson
ad3f916596
Update unit test.
...
llvm-svn: 78260
2009-08-05 23:28:57 +00:00
Owen Anderson
758428f4e3
Update for LLVM API change.
...
llvm-svn: 78259
2009-08-05 23:18:46 +00:00
Owen Anderson
03cb69fbd1
Privatize the StructType table, which unfortunately involves routing contexts through a number of APIs.
...
llvm-svn: 78258
2009-08-05 23:16:16 +00:00
Bob Wilson
e148ceaf65
Add a new pre-allocation pass to assign adjacent registers for Neon instructions
...
that have that constraint. This is currently just assigning a fixed set of
registers, and it only handles VLDn for n=2,3,4 with DPR registers.
I'm going to expand it to handle more operations next; we can make it smarter
once everything is working correctly.
llvm-svn: 78256
2009-08-05 23:12:45 +00:00
Anton Korobeynikov
741ea0d7fd
Better handle kernel code model. Also, generalize the things and fix one
...
subtle bug with small code model.
llvm-svn: 78255
2009-08-05 23:01:26 +00:00
Mike Stump
a19718af5a
Refactor some bits.
...
llvm-svn: 78254
2009-08-05 22:59:44 +00:00
Mike Stump
6d368129c5
Add another test for a recent checkin.
...
llvm-svn: 78253
2009-08-05 22:48:36 +00:00
Mike Stump
d8fe7b2792
Calculate the primary base class better and use that when laying down
...
the vtable. Still a work in progress.
llvm-svn: 78252
2009-08-05 22:37:18 +00:00
Dale Johannesen
dc3416b7b3
Adjust test for llvm-gcc checkin 78249.
...
llvm-svn: 78251
2009-08-05 22:18:47 +00:00
Dan Gohman
77f33b71c7
Use GR32 for copies between GR32_NOSP and GR32_NOREX, as neither
...
is a subset of the other, but both are subsets of GR32.
llvm-svn: 78250
2009-08-05 22:18:26 +00:00
Fariborz Jahanian
01aabafee0
A blank line to separate the two blocks(per Mike comment).
...
llvm-svn: 78248
2009-08-05 21:52:02 +00:00
Daniel Dunbar
4f6f6d080f
Make block and function count available via ProfileInfo.
...
- Part of optimal static profiling patch sequence by Andreas Neustifter.
llvm-svn: 78247
2009-08-05 21:51:16 +00:00