diff -r 8e7adf982378 -r 7c57aead6d3e src/share/vm/opto/phaseX.hpp --- a/src/share/vm/opto/phaseX.hpp Fri Nov 27 07:56:58 2009 -0800 +++ b/src/share/vm/opto/phaseX.hpp Thu Nov 12 09:24:21 2009 -0800 @@ -345,7 +345,11 @@ Node *hash_find(const Node *n) { return _table.hash_find(n); } // Used after parsing to eliminate values that are no longer in program - void remove_useless_nodes(VectorSet &useful) { _table.remove_useless_nodes(useful); } + void remove_useless_nodes(VectorSet &useful) { + _table.remove_useless_nodes(useful); + // this may invalidate cached cons so reset the cache + init_con_caches(); + } virtual ConNode* uncached_makecon(const Type* t); // override from PhaseTransform