--- a/hotspot/src/share/vm/opto/memnode.cpp Wed Feb 04 15:42:52 2009 -0800
+++ b/hotspot/src/share/vm/opto/memnode.cpp Thu Feb 05 11:42:10 2009 -0800
@@ -1303,6 +1303,7 @@
Node* base = AddPNode::Ideal_base_and_offset(address, phase, ignore);
if (base != NULL
&& phase->type(base)->higher_equal(TypePtr::NOTNULL)
+ && phase->C->get_alias_index(phase->type(address)->is_ptr()) != Compile::AliasIdxRaw
&& all_controls_dominate(base, phase->C->start())) {
// A method-invariant, non-null address (constant or 'this' argument).
set_req(MemNode::Control, NULL);