Mercurial > hg > truffle
diff src/share/vm/opto/macro.cpp @ 3345:bad7ecd0b6ed
5091921: Sign flip issues in loop optimizer
Summary: Fix integer overflow problem in the code generated by loop optimizer.
Reviewed-by: never
author | kvn |
---|---|
date | Wed, 04 May 2011 13:12:42 -0700 |
parents | 149bb459be66 |
children | 293f68bda347 |
line wrap: on
line diff
--- a/src/share/vm/opto/macro.cpp Wed May 04 03:42:58 2011 -0700 +++ b/src/share/vm/opto/macro.cpp Wed May 04 13:12:42 2011 -0700 @@ -2154,6 +2154,11 @@ debug_only(int old_macro_count = C->macro_count();); if (n->is_AbstractLock()) { success = eliminate_locking_node(n->as_AbstractLock()); + } else if (n->Opcode() == Op_LoopLimit) { + // Remove it from macro list and put on IGVN worklist to optimize. + C->remove_macro_node(n); + _igvn._worklist.push(n); + success = true; } else if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) { _igvn.replace_node(n, n->in(1)); success = true;