diff -r 7e0e43cf86d6 -r 670a74b863fc src/share/vm/opto/matcher.cpp --- a/src/share/vm/opto/matcher.cpp Wed Nov 09 06:14:32 2011 -0800 +++ b/src/share/vm/opto/matcher.cpp Wed Nov 09 07:25:51 2011 -0800 @@ -1915,7 +1915,7 @@ set_dontcare(n); break; case Op_Jump: - mstack.push(n->in(1), Visit); // Switch Value + mstack.push(n->in(1), Pre_Visit); // Switch Value (could be shared) mstack.push(n->in(0), Pre_Visit); // Visit Control input continue; // while (mstack.is_nonempty()) case Op_StrComp: