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