harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Naveen Neelakantam <neela...@uiuc.edu>
Subject Re: [drvm][jit] ABCD does not eliminate upper bound check
Date Fri, 20 Apr 2007 22:28:41 GMT

On Apr 17, 2007, at 12:34 AM, Mikhail Fursov wrote:

> On 4/17/07, Naveen Neelakantam <neelakan@uiuc.edu> wrote:
>> But in general, other optimization passes can perform transformations
>> that break important dataflow relationships between variables.  This
>> sometimes makes it impossible for ABCD to prove that a particular
>> bounds check is redundant (ABCD uses "constraints", which are derived
>> from dataflow).
> Naveen, if any of optimizations we have can break ABCD with Maxim's  
> example,
> it worth to be analyzed. I hope there are no such optimizations in JIT
> today. If you know one we can proceed and check it: it may lead to
> additional improvements in ABCD algorithm.

I could not find a pass order that break's ABCD with Maxim's  
example.  However, I found a pass order using loop peeling that  
prevents bounds checks from being proven redundant with the  
BidirectionalBubbleSort example in HARMONY-1564.  The following pass  
order in opt.emconf will prevent 2 bounds checks from being proven  

Whereas these pass orders both work (and both use loop peeling):

The takeaway is that classic_abcd should either be run before loop  
peeling, or if it runs after loop peeling, memopt should be run  
between it and loop peeling.


> -- 
> Mikhail Fursov

View raw message