review request (S): 7116050 C2/ARM: memory stomping error with DivideMcTests

Vladimir Kozlov vladimir.kozlov at oracle.com
Wed Jan 18 11:59:15 PST 2012


Sorry, but I don't like such expressions: (!--*ready_cnt.adr_at(m->_idx)). I 
known that it is just conversion to GrowableArray but I would prefer explicit 
separate expressions and integer compare so the code will be much easier to 
understand:

<    --*ready_cnt.adr_at(n->_idx);
<    assert( !ready_cnt.at(n->_idx), "" );
---
 >    int n_cnt = ready_cnt.at(n->_idx)-1;
 >    ready_cnt.at_put(n->_idx, n_cnt);
 >    assert(n_cnt ==0, "");


<    if( !--*ready_cnt.adr_at(m->_idx) )
---
 >    int m_cnt = ready_cnt.at(m->_idx)-1;
 >    ready_cnt.at_put(m->_idx, m_cnt);
 >    if(m_cnt == 0)


Vladimir

Roland Westrelin wrote:
> Here is a new webrev that uses GrowableArray<int> and removes the max_idx parameter:
> 
> http://cr.openjdk.java.net/~roland/7116050/webrev.01/
> 
> Roland.


More information about the hotspot-compiler-dev mailing list