[PATCH][ARM64] Fix cycle in DAG after performPostLD1Combine

Adam Nemet anemet at apple.com
Tue May 20 14:59:52 PDT 2014


Thanks, James!  This is r209242.

On May 20, 2014, at 2:06 PM, James Molloy <james at jamesmolloy.co.uk> wrote:

> Hi Adam,
> 
> Thanks for debugging this! Hao is away for the remainder of this week, but the patch looks obviously correct to me.
> 
> Cheers,
> 
> James
> 
> 
> On 20 May 2014 21:55, Adam Nemet <anemet at apple.com> wrote:
> I think this is pretty obvious but want to make sure the original author is fine with this.
> 
> Povray and dealII currently assert with "Overran sorted position" in
> AssignTopologicalOrder.  The problem is that performPostLD1Combine can
> introduce cycles.
> 
> Consider:
> 
> (insert_vector_elt (INSERT_SUBREG undef,
>                                   (load (add %vreg0, Constant<8>), undef),  <= A
>                                   TargetConstant<2>),
>                    (load %vreg0, undef),                                    <= B
>                    Constant<1>)
> 
> This is turned into a LD1LANEpost node.  However the address in A is not a
> valid user of the post-incremented address of B in LD1LANEpost.
> 
> It’s also strange that the cycle detection in AssignTopologicalOrder didn’t catch this.  I will see why.
> 
> Fixes povray and dealII.
> 
> OK to commit?
> 
> Adam
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140520/542a5f29/attachment.html>


More information about the llvm-commits mailing list