- Oct 15, 2009
-
-
Chris Lattner authored
don't bother every time going around the main worklist. This speeds up a release-asserts opt -std-compile-opts on 403.gcc by about 4% (1.5s). It seems to speed up the most expensive instances of instcombine by ~10%. llvm-svn: 84171
-
Chris Lattner authored
instruction (which disqualifies stores, unreachable, etc) and at least the first operand is a constant. This filters out a lot of obvious cases that can't be folded. Also, switch the IRBuilder to a TargetFolder, which tries harder. llvm-svn: 84170
-
John McCall authored
llvm-svn: 84169
-
John McCall authored
most of the unsafe boilerplate out of TypeLoc. Create a QualifiedLoc class to represent the idea that we *might* start representing source locations of qualifiers. Dealing with qualifiers explicitly like this also lets us efficiently ignore them in all the concrete cases. This should make it obvious and easy to add new TypeLoc subclasses. llvm-svn: 84168
-
Mike Stump authored
llvm-svn: 84167
-
Mike Stump authored
Track path information completely to ensure we get all the overrides. WIP. llvm-svn: 84166
-
Ted Kremenek authored
RegionStoreManager::Retrieve() that was intended to handle conflated uses of pointers as integers. It turns out this isn't needed, and resulted in inconsistent behavior when creating symbolic values on the following test case in 'tests/Analysis/misc-ps.m': typedef struct _BStruct { void *grue; } BStruct; void testB_aux(void *ptr); void testB(BStruct *b) { { int *__gruep__ = ((int *)&((b)->grue)); int __gruev__ = *__gruep__; testB_aux(__gruep__); } { int *__gruep__ = ((int *)&((b)->grue)); int __gruev__ = *__gruep__; if (~0 != __gruev__) {} } } When the code was analyzed with '-arch x86_64', the value assigned to '__gruev__' be would be a symbolic integer, but for '-arch i386' the value assigned to '__gruev__' would be a symbolic region (a blob of memory). With this change the value created is always a symbolic integer. Since the code being removed was added to support analysis of code calling OSAtomicCompareAndSwapXXX(), I also modified 'test/Analysis/NSString.m' to analyze the code in both '-arch i386' and '-arch x86_64', and also added some complementary test cases to test the presence of leaks when using OSAtomicCompareAndSwap32Barrier()/OSAtomicCompareAndSwap64Barrier() instead of just their absence. This code change reveals that previously both RegionStore and BasicStore were handling these cases wrong, and would never cause the analyzer to emit a leak in these cases (false negatives). Now RegionStore gets it right, but BasicStore still gets it wrong (and hence it has been disabled temporarily for this test case). llvm-svn: 84163
-
Anders Carlsson authored
struct A { }; struct B : A { }; void f() { const A& a = B(); } correctly. (This now does the offset conversion if necessary and calls the destructor when a goes out of scope). llvm-svn: 84162
-
Anders Carlsson authored
llvm-svn: 84161
-
John Thompson authored
llvm-svn: 84160
-
Nick Lewycky authored
only dereference the element they point to directly with no pointer arithmetic. llvm-svn: 84159
-
Dan Gohman authored
header is just the entry block to the loop, and it needn't be at the top of the loop in the code layout. Remove the code that suppressed loop alignment for outer loops, so that outer loops are aligned. llvm-svn: 84158
-
Ted Kremenek authored
llvm-svn: 84157
-
Douglas Gregor authored
instantiations, since the requirements are too different from those for template specializations. Simplify it slightly. llvm-svn: 84156
-
Douglas Gregor authored
focusing on the scope- and qualifier-related semantic requirements in C++ [temp.explicit]p2. llvm-svn: 84154
-
Evan Cheng authored
When LiveVariables is adding implicit-def to model "partial dead", add the earlyclobber marker if the superreg def has it. llvm-svn: 84153
-
Evan Cheng authored
llvm-svn: 84152
-
Eric Christopher authored
llvm-svn: 84150
-
- Oct 14, 2009
-
-
Douglas Gregor authored
llvm-svn: 84149
-
Douglas Gregor authored
llvm-svn: 84148
-
Eric Christopher authored
llvm-svn: 84147
-
Bob Wilson authored
Patch by Johnny Chen. llvm-svn: 84146
-
Bob Wilson authored
llvm-svn: 84144
-
Douglas Gregor authored
llvm-svn: 84142
-
Douglas Gregor authored
template that has no out-of-line definition. llvm-svn: 84141
-
Douglas Gregor authored
class templates the proper linkage. Daniel, please look over the CodeGenModule bits. llvm-svn: 84140
-
Jim Grosbach authored
llvm-svn: 84138
-
Devang Patel authored
llvm-svn: 84134
-
Jim Grosbach authored
llvm-svn: 84133
-
Dan Gohman authored
llvm-svn: 84132
-
Jim Grosbach authored
Refs: A7-17 & A8-750. Patch by Johnny Chen. llvm-svn: 84131
-
Eric Christopher authored
warning. llvm-svn: 84130
-
Douglas Gregor authored
llvm-svn: 84129
-
Nick Lewycky authored
llvm-svn: 84128
-
Duncan Sands authored
Make it visible. llvm-svn: 84127
-
Nick Lewycky authored
llvm-svn: 84125
-
Bob Wilson authored
register-shifted-register instructions. Patch by Johnny Chen. llvm-svn: 84124
-
Mike Stump authored
llvm-svn: 84123
-
Bob Wilson authored
llvm-svn: 84122
-
Mike Stump authored
the virtual base so they can be reused properly. Don't reuse vcall slots across a virtual boundary. WIP. I have a testcase, but there are still things that need to be fixed before the testcase can go in. llvm-svn: 84120
-