[LLVMdev] Ordering not assigned to DAG Nodes create after DAG builder

Justin Holewinski justin.holewinski at gmail.com
Wed Mar 27 08:53:05 PDT 2013


Hi Xiaoyi,

Do you still see this behavior after r177525?  I recently fixed several
places where ordering was not propagated, including during legalization.
There are probably still cases that are missed, but I'd be interested in
seeing a missed case.  I'm guessing it's a legalization that expands to
multiple new nodes.  The AssignOrdering calls in the legalizer may need to
be expanded to do the traversal you mention from SelectionDAGBuilder.


On Tue, Mar 26, 2013 at 11:00 PM, Guo, Xiaoyi <Xiaoyi.Guo at amd.com> wrote:

>  Hi,****
>
> ** **
>
> It seems orderings are not assigned to DAG nodes created after the DAG
> builder, e.g., DAG nodes created during legalization. This causes
> instructions being scheduled in different order than source order for O0.*
> ***
>
> ** **
>
> This is my plan to fix it:****
>
> Make a utility routine that recursively assign ordering to a chain of
> nodes, just like what SelectionDAGBuilder::AssignOrderingToNode() does.***
> *
>
> Then add call to this utility routine at each routine that creates new DAG
> nodes after DAG builder to transfer the original node’s order to newly
> created node. If that routine creates a chain of nodes, then I only need to
> call  the utility routine for the last of the chain. There will be a lot of
> places to change. So I want to get agreement on the fix before I go ahead
> and make the changes.****
>
> ** **
>
> Thanks,****
>
> Xiaoyi****
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>


-- 

Thanks,

Justin Holewinski
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130327/a2ce3cdc/attachment.html>


More information about the llvm-dev mailing list