5091921: Sign flip issues in loop optimizer

Fix integer overflow problem in the code generated by loop optimizer.

Reviewed-by: never
This commit is contained in:
Vladimir Kozlov 2011-05-04 13:12:42 -07:00
parent 1e12174562
commit 1ac79543d0
40 changed files with 4195 additions and 214 deletions

View file

@ -2154,6 +2154,11 @@ bool PhaseMacroExpand::expand_macro_nodes() {
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;