[Ad-dev] [openAD] #268: OA: missing active variables
OpenAD
trac at mcs.anl.gov
Fri Feb 11 07:17:10 CST 2011
#268: OA: missing active variables
--------------------------------------+-------------------------------------
Reporter: utke | Owner: utke
Type: defect | Status: new
Priority: major | Milestone:
Component: OpenAnalyis (old branch) | Keywords:
--------------------------------------+-------------------------------------
Attached are two pieces of code whose traversal order through the
data dependencies triggers a different outcome based on
how deep in the recursion the condition:
---
// Actual or formal parameters without any outgoing edges shouldn't be
// activated.
if (nonParentSuccessors == 0
&& !isVariedBefore && !isSelfDependent() &&
( parenEType == CALL_EDGE || parenEType == RETURN_EDGE) &&
!mDUG->isDependent(getProc(), getSym()) ) {
unsetVaried();
---
is tested and subsequently "unsetVaried" is called.
The trace for the good case has the traversal for fooout along the
return edge deeper in the
recursion, see :
markVaried 8 entering for FOO::FOOOUT
-v->"p_(43)\nPOUT"->"FOO(45)\nFOOOUT"[label="C(47915221307392)\np_\n->
FOO", style=dashed];
and later
unsetVaried:FOO::FOOOUT
unsetVaried("FOO(45)\nFOOOUT")
<-
markVaried 8 leaving for FOO::FOOOUT
in the attached trace_ok.txt
so that the :"unsetVaried" happens there but is undone later in the
traversal, see:
markVaried 5 entering for FOO::FOOOUT
-v->"FOO(44)\nFOOIN"->"FOO(45)\nFOOOUT"[label="F\nFOO"];
<-
markVaried 5 leaving for FOO::FOOOUT
===========================
For the "fail" case all I changed was the assignment order before the call
to trigger the recursion to FIRST go down the path from POUT to FOOUT
instead of PIN->FOOIN->FOOUT.... (see trace_fail.txt)
markVaried 4 entering for FOO::FOOOUT
-v->"p_(42)\nPOUT"->"FOO(45)\nFOOOUT"[label="C(47437752258560)\np_\n->
FOO", style=dashed];
and the upon unwinding the recursion:
unsetVaried:FOO::FOOOUT
unsetVaried("FOO(45)\nFOOOUT")
<-
markVaried 4 leaving for FOO::FOOOUT
and after that nothing else comes about to fix it and FOOUT remains
"not varied".
--
Ticket URL: <https://trac.mcs.anl.gov/projects/openAD/ticket/268>
OpenAD <http://www.mcs.anl.gov/openad>
Bug tracking for OpenAD components
More information about the Ad-dev
mailing list