This patch looks fine to me.

2011/5/6 Hui Shi <kalin....@gmail.com>

> Hi Jianxin,
>
> Thanks for your review.
> I did some complement for previous patch.
> Also modify StInfo::applyModulus, avoid collpase parent into its kid cg
> node.
>
> would you help review this?
>
>
> On Fri, May 6, 2011 at 1:25 PM, Jian-Xin Lai <laij...@gmail.com> wrote:
>
>> This patch looks fine to me. Please check it in.
>>
>> 2011/4/29 Hui Shi <kalin....@gmail.com>
>>
>>> Would gatekeeper help review this patch?
>>>
>>> https://bugs.open64.net/show_bug.cgi?id=767
>>> Nystrom alias issue: 456.gobmk base output difference on train data
>>>
>>> The wrong alias is caused in
>>> ConstraintGraphNode::collapseTypeIncompatibleNodes.
>>> It try to collpase a kid node's parent node into kid.
>>>
>>> In ConstraintGraphNode::collapse(cur), collpase node cur into this.
>>>
>>>   // Merge cur with 'this' node
>>>   ConstraintGraphNode *curParent = cur->parent();
>>>
>>>   // When merging, merge with 'this's parent
>>>   ConstraintGraphNode *thisParent = this->parent();
>>>
>>>   if (curParent != thisParent) {   // skip merging here because parent
>>> are same
>>>     thisParent->merge(curParent);
>>>     curParent->repParent(thisParent);
>>>   }
>>>
>>>   // When cur's parent is merged with this, we might have transfered
>>>   // a parent copy edge from cur's parent to cur, which needs to be
>>> removed
>>>   cur->deleteInOutEdges();  // delete all edges here
>>>
>>>
>>> Problem is no merge happen in this case, but node cur's all edge is
>>> deleted.
>>>
>>> Fix is
>>> 1. In ConstraintGraphNode::collapseTypeIncompatibleNodes, if collpased
>>> node is parent of collapsed target, switch the collapse node and target
>>> node.
>>> 2. add assertion ConstraintGraphNode::collapse, node cur is not parent of
>>> node this.
>>>
>>> Index: osprey/be/com/constraint_graph.cxx
>>> ===================================================================
>>> --- osprey/be/com/constraint_graph.cxx  (revision 3575)
>>> +++ osprey/be/com/constraint_graph.cxx  (working copy)
>>> @@ -3194,6 +3194,8 @@
>>>              ("Not expecting this node: %d to be collasped", id()));
>>>    FmtAssert(!cur->checkFlags(CG_NODE_FLAGS_COLLAPSED),
>>>              ("Not expecting cur node: %d to be collasped", cur->id()));
>>> +  FmtAssert(parent() != cur,
>>> +            ("Not expecting cur node be parent of this "));
>>>
>>>    // Merge cur with 'this' node
>>>    ConstraintGraphNode *curParent = cur->parent();
>>> @@ -4333,6 +4335,12 @@
>>>          FmtAssert(ptdNode->stInfo()->firstOffset()->nextOffset() ==
>>> NULL,
>>>                    ("Only single offset expected"));
>>>          ptdNode = ptdNode->stInfo()->firstOffset();
>>> +        // can't collapse node's parent to its self.
>>> +        if (ptdNode == repNode->parent()) {
>>> +          ConstraintGraphNode *tmp = ptdNode;
>>> +          ptdNode = repNode;
>>> +          repNode = tmp;
>>> +        }
>>>          // SparseBitSetIterator caches ids when iterating. So of the
>>> 'effect'
>>>          // of collapsing is not immediately visible, in which case we
>>> might
>>>          // encounter collapsed nodes when iterating the pts
>>>
>>>
>>> Regards
>>> Shi ,Hui
>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> WhatsUp Gold - Download Free Network Management Software
>>> The most intuitive, comprehensive, and cost-effective network
>>> management toolset available today.  Delivers lowest initial
>>> acquisition cost and overall TCO of any competing solution.
>>> http://p.sf.net/sfu/whatsupgold-sd
>>> _______________________________________________
>>> Open64-devel mailing list
>>> Open64-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>>>
>>>
>>
>>
>> --
>> Regards,
>> Lai Jian-Xin
>>
>
>


-- 
Regards,
Lai Jian-Xin
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel

Reply via email to