提交 37f8b1d7 编写于 作者: K kvn

7048030: is_scavengable changes causing compiler to embed more constants

Summary: ciObject::can_be_constant() and should_be_constant() should use is_perm() instead of !is_scavengable()
Reviewed-by: never, jrose
上级 382e5108
...@@ -187,7 +187,7 @@ jobject ciObject::constant_encoding() { ...@@ -187,7 +187,7 @@ jobject ciObject::constant_encoding() {
// ciObject::can_be_constant // ciObject::can_be_constant
bool ciObject::can_be_constant() { bool ciObject::can_be_constant() {
if (ScavengeRootsInCode >= 1) return true; // now everybody can encode as a constant if (ScavengeRootsInCode >= 1) return true; // now everybody can encode as a constant
return handle() == NULL || !is_scavengable(); return handle() == NULL || is_perm();
} }
// ------------------------------------------------------------------ // ------------------------------------------------------------------
...@@ -204,7 +204,7 @@ bool ciObject::should_be_constant() { ...@@ -204,7 +204,7 @@ bool ciObject::should_be_constant() {
return true; return true;
} }
} }
return handle() == NULL || !is_scavengable(); return handle() == NULL || is_perm();
} }
......
...@@ -108,7 +108,7 @@ public: ...@@ -108,7 +108,7 @@ public:
int hash(); int hash();
// Tells if this oop has an encoding as a constant. // Tells if this oop has an encoding as a constant.
// True if is_scavengable is false. // True if is_perm is true.
// Also true if ScavengeRootsInCode is non-zero. // Also true if ScavengeRootsInCode is non-zero.
// If it does not have an encoding, the compiler is responsible for // If it does not have an encoding, the compiler is responsible for
// making other arrangements for dealing with the oop. // making other arrangements for dealing with the oop.
...@@ -116,7 +116,7 @@ public: ...@@ -116,7 +116,7 @@ public:
bool can_be_constant(); bool can_be_constant();
// Tells if this oop should be made a constant. // Tells if this oop should be made a constant.
// True if is_scavengable is false or ScavengeRootsInCode > 1. // True if is_perm is true or ScavengeRootsInCode > 1.
bool should_be_constant(); bool should_be_constant();
// Is this object guaranteed to be in the permanent part of the heap? // Is this object guaranteed to be in the permanent part of the heap?
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册