On Fri, Oct 9, 2009 at 7:14 AM, Hans Vandierendonck
<hvdieren at elis.ugent.be> wrote:> Hi,
The correctness of ds-aa hasn't been tested in a long time and hasn't
been tested against changes in BottomUp. ModRef info in general
hasn't been tested for several years, mostly dsa has been used for
it's points-to graph, not the flags.
You might try tracing the inlining with --debug and making sure all
callsites are inlined.
Andrew
> I am using DataStructureAA.cpp (poolalloc project) for alias analysis
> purposes and have noticed an error in getModRefInfo(). The situation is
that
> Mod/Ref info is called with a CallSite and GlobalVariable argument, where
> the global is passed as an argument to the call. Furthermore, the callee
> function does *nothing* with this global but to pass it on to another
callee
> function. In the last callee, the BottomUp DSNode is the same as the
> GlobalGraphs' node (very detailed; including a link to another DSNode),
but
> in the top function and the intermediate callee, the global is not accessed
> and its DSNode is simply "I", without a type.
>
> An error manifests itself in DataStructureAA, as the intermediate
function's
> BottomUp DSNode is used to check for Mod/Ref info (using the RangeIt, then
> isModifiedNode() and isReadNode()). But the intermediate function's
DSNode
> is simply "I", so no Mod/Ref is reported. This is erroneous; the
global is
> Mod&Ref at the call site.
>
> I am not sure whether there is an error in either ds-aa or in BottomUpDSA.
>
> I have reduced the program down to a simpler test case. Here the
> intermediate functions have an "IE" node. The error occurs when
trying to
> see if @spec_compress() does Mod/Ref @spec_fd1 (NoModRef reported). In
> contrast, ds-aa correctly reports ModRef on the callsite to @spec_putc() in
> @compressStream().
>
> Kind regards,
> Hans.
>
>
>
>
>
> --
>
-------------------------------------------------------------------------------
> Hans Vandierendonck, PhD, Ghent University, Electronics & Information
> Systems
> E-mail: hans.vandierendonck at UGent.be
> http://www.elis.UGent.be/~hvdieren/
>
-------------------------------------------------------------------------------
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>