[llvm-commits] [llvm] r118412 - in /llvm/trunk: include/llvm/Analysis/AliasAnalysis.h lib/Analysis/AliasAnalysis.cpp lib/Analysis/AliasAnalysisCounter.cpp lib/Analysis/AliasDebugger.cpp lib/Analysis/BasicAliasAnalysis.cpp lib/Analysis/NoAliasAnalysis.cpp lib/Analysis/TypeBasedAliasAnalysis.cpp lib/Transforms/IPO/FunctionAttrs.cpp test/Transforms/FunctionAttrs/2008-12-29-Constant.ll

Duncan Sands baldrick at free.fr
Mon Nov 8 09:43:02 PST 2010


Hi Dan,

> +/// pointsToConstantMemory - Returns whether the given pointer value
> +/// points to memory that is local to the function, with global constants being
> +/// considered local to all functions.
> +bool
> +BasicAliasAnalysis::pointsToConstantMemory(const Location&Loc, bool OrLocal) {
> +  assert(Visited.empty()&&  "Visited must be cleared after use!");
> +
> +  SmallVector<const Value *, 16>  Worklist;
> +  Worklist.push_back(Loc.Ptr);

you should really put a limit on how deep you want to allow the "recursion" to
go.  IIRC, the reason that PointsToLocalOrConstantMemory had a limit is that it
was seen to take a long time on some crazy testcase.

Ciao,

Duncan.



More information about the llvm-commits mailing list