6695810: null oop passed to encode_heap_oop_not_null

Fix several problems in C2 related to Escape Analysis and Compressed Oops.

Reviewed-by: never, jrose
This commit is contained in:
Vladimir Kozlov 2008-05-21 10:45:07 -07:00
parent dbf60cec88
commit 757229db71
19 changed files with 1085 additions and 248 deletions

View file

@ -72,7 +72,8 @@ public:
// This one should probably be a phase-specific function:
static bool all_controls_dominate(Node* dom, Node* sub);
// Is this Node a MemNode or some descendent? Default is YES.
// Find any cast-away of null-ness and keep its control.
static Node *Ideal_common_DU_postCCP( PhaseCCP *ccp, Node* n, Node* adr );
virtual Node *Ideal_DU_postCCP( PhaseCCP *ccp );
virtual const class TypePtr *adr_type() const; // returns bottom_type of address
@ -150,6 +151,9 @@ public:
// zero out the control input.
virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
// Split instance field load through Phi.
Node* split_through_phi(PhaseGVN *phase);
// Recover original value from boxed values
Node *eliminate_autobox(PhaseGVN *phase);