[PATCH] Propagate DAG node ordering during legalization and instruction selection

Evan Cheng evan.cheng at apple.com
Mon Mar 18 23:26:02 PDT 2013



Sent from my iPad

On Mar 18, 2013, at 2:02 PM, Justin Holewinski <justin.holewinski at gmail.com> wrote:

> Compile-time impact is negligible for a release build on the unit tests.  There is about an 8% impact with assertions enabled.

Unit tests are much too small for measuring compile time. 8% for assertion build is massive. Why are there such large discrepancy?

Evan

> 
> I'm not sure how CSE factors in here.  This propagation happens during legalization.  I agree that it should be addressed, but I see it as a separate issue.  Unless I'm missing some instance of CSE being performed during legalization?
> 
> 
> On Mon, Mar 18, 2013 at 4:04 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>> 
>> On Mar 15, 2013, at 10:51 AM, Justin Holewinski <justin.holewinski at gmail.com> wrote:
>> 
>>> Thanks Jakob!
>>> 
>>> Modified patch attached.  Anyone adverse to this change?
>> 
>> +
>> +  // Propagate ordering
>> +  unsigned Order = DAG.GetOrdering(Op.getNode());
>> +  DAG.AssignOrdering(Lo.getNode(), Order);
>> +  DAG.AssignOrdering(Hi.getNode(), Order);
>>  
>> Did you consider what happens when CSE kicks in? The new nodes may not be new, they could have been CSE'ed with an existing expression.
>> 
>> When that happens, the ordering should be the earlier of the two.
>> 
>> I think it would make sense to teach the SDNodeOrdering class about this.
>> 
>> /jakob
> 
> 
> 
> -- 
> 
> Thanks,
> 
> Justin Holewinski
> _______________________________________________
> 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/20130318/e7d78b73/attachment.html>


More information about the llvm-commits mailing list