- Nov 26, 2009
-
-
Ted Kremenek authored
Improve diagnostics in ReturnStackAddressChecker for returning a stack-allocated block. Implements the rest of <rdar://problem/7387385>. llvm-svn: 89940
-
Ted Kremenek authored
llvm-svn: 89939
-
Eli Friedman authored
llvm-svn: 89938
-
Daniel Dunbar authored
llvm-svn: 89937
-
Daniel Dunbar authored
llvm-svn: 89936
-
Anders Carlsson authored
llvm-svn: 89935
-
Eli Friedman authored
instead of checking explicitly for an EnumConstantDecl. This folds references to constant integer VarDecls, which has two benefits: 1. Slightly smaller emitted code from emitting a constant instead of a load, and skipping emitting some constant globals. 2. Some code forgets to define static constant member variables; emitting a load instead of the value in that case leads to a link error. (Such programs are technically not well-formed, but in practice build with g++.) llvm-svn: 89934
-
Anders Carlsson authored
llvm-svn: 89933
-
Eli Friedman authored
llvm-svn: 89932
-
Eli Friedman authored
internal linkage. Fixes PR5433. llvm-svn: 89931
-
Anders Carlsson authored
llvm-svn: 89930
-
Ted Kremenek authored
the set of variables "captured" by a block. Until the analysis gets more sophisticated, for now we stop the retain count tracking of any objects (transitively) referenced by these variables. llvm-svn: 89929
-
Ted Kremenek authored
Teach RegionStoreManager::RemoveDeadBindings() about BlockDataRegions. Any VarRegion for a "captured" variable should also be considered live. llvm-svn: 89928
-
Ted Kremenek authored
Add iterators to BlockDataRegion that allow clients to iterate over the VarRegions for "captured" variables for a block. llvm-svn: 89927
-
Ted Kremenek authored
Added batch versions of GRState::scanReachableSymbols() so that clients can scan a collection of SVals or MemRegions all at once. llvm-svn: 89926
-
Anders Carlsson authored
Add a ThunkAdjustment struct which holds a non-virtual and a virtual adjustment offset. Start using it. General cleanup in Mangle.cpp. llvm-svn: 89925
-
Ted Kremenek authored
Enhance LiveVariables to understand that blocks can extend the liveness of a variable by "capturing" them in a BlockExpr. This required two changes: 1) Added 'getReferencedgetReferencedBlockVars()' to AnalysisContext so that clients can iterate over the "captured" variables in a block. 2) Modified LiveVariables to take an AnalysisContext& in its constructor and to call getReferencedgetReferencedBlockVars() when it processes a BlockExpr*. llvm-svn: 89924
-
Douglas Gregor authored
llvm-svn: 89923
-
Chris Lattner authored
Change the other half of aliasGEP (which handles GEP differencing) to use DecomposeGEPExpression. This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive. In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor. Missing this caused us to emit a variable length memset instead of a fixed size one. llvm-svn: 89922
-
Chris Lattner authored
llvm-svn: 89921
-
Chris Lattner authored
Generalize DecomposeGEPExpression to exactly handle what Value::getUnderlyingObject does (when TD is around). This allows us to avoid calling DecomposeGEPExpression unless the ultimate alias check we care about passes, speedup up BasicAA a bit. llvm-svn: 89920
-
Daniel Dunbar authored
Factor out a LangStandard class and coalesce the information about the standards into LangStandards.def - I'd appreciate another pair of eyeballs to double check this. llvm-svn: 89919
-
Daniel Dunbar authored
llvm-svn: 89918
-
Daniel Dunbar authored
llvm-svn: 89917
-
Daniel Dunbar authored
llvm-svn: 89916
-
Chris Lattner authored
Implement a new DecomposeGEPExpression method, which decomposes a GEP into a list of scaled offsets. Use this to eliminate some previous ad-hoc code which was subtly broken (it assumed all Constant*'s were non-zero, but strange constant express could be zero). llvm-svn: 89915
-
Chris Lattner authored
llvm-svn: 89914
-
Chris Lattner authored
llvm-svn: 89913
-
Chris Lattner authored
llvm-svn: 89912
-
Douglas Gregor authored
maintains a stack of evaluation contexts rather than having the parser do it. This change made it simpler to track in which contexts temporaries were created, so that we could... "Forget" about temporaries created within unevaluated contexts, so that we don't build a CXXExprWithTemporaries and, therefore, destroy the integral-constness of our expressions. Fixes PR5609. llvm-svn: 89908
-
Evan Cheng authored
llvm-svn: 89906
-
Evan Cheng authored
llvm-svn: 89905
-
Bob Wilson authored
running tail duplication when doing branch folding for if-conversion, and we also want to be able to run tail duplication earlier to fix some reg alloc problems. Move the CanFallThrough function from BranchFolding to MachineBasicBlock so that it can be shared by TailDuplication. llvm-svn: 89904
-
Ted Kremenek authored
llvm-svn: 89903
-
Ted Kremenek authored
'BlockDataRegion' to distinguish between the code associated with a block (which is represented by 'BlockTextRegion') and an instance of a block, which includes both code and data. 'BlockDataRegion' has an associated LocationContext, which can be used to eventually model the lifetime of a block object once LocationContexts can represent scopes (and iterations around a loop, etc.). llvm-svn: 89900
-
Dale Johannesen authored
llvm-svn: 89899
-
Ted Kremenek authored
llvm-svn: 89897
-
Devang Patel authored
llvm-svn: 89896
-
Fariborz Jahanian authored
This fixes pr5611. llvm-svn: 89895
-
- Nov 25, 2009
-
-
John Thompson authored
llvm-svn: 89894
-