8171008: Integrate AOT compiler into JDK

Reviewed-by: erikj, mchung, twisti, simonis
This commit is contained in:
Vladimir Kozlov 2016-12-11 18:50:18 -08:00
parent 1a40cebca3
commit 2c220df590
11 changed files with 792 additions and 151 deletions

View file

@ -229,7 +229,7 @@ public class WhiteBox {
return isMethodCompiled0(method, isOsr);
}
public boolean isMethodCompilable(Executable method) {
return isMethodCompilable(method, -1 /*any*/);
return isMethodCompilable(method, -2 /*any*/);
}
public boolean isMethodCompilable(Executable method, int compLevel) {
return isMethodCompilable(method, compLevel, false /*not osr*/);
@ -277,7 +277,7 @@ public class WhiteBox {
return deoptimizeMethod0(method, isOsr);
}
public void makeMethodNotCompilable(Executable method) {
makeMethodNotCompilable(method, -1 /*any*/);
makeMethodNotCompilable(method, -2 /*any*/);
}
public void makeMethodNotCompilable(Executable method, int compLevel) {
makeMethodNotCompilable(method, compLevel, false /*not osr*/);
@ -301,7 +301,7 @@ public class WhiteBox {
return testSetDontInlineMethod0(method, value);
}
public int getCompileQueuesSize() {
return getCompileQueueSize(-1 /*any*/);
return getCompileQueueSize(-2 /*any*/);
}
public native int getCompileQueueSize(int compLevel);
private native boolean testSetForceInlineMethod0(Executable method, boolean value);

View file

@ -49,8 +49,13 @@ public class CodeBlob {
assert obj.length == 4;
name = (String) obj[0];
size = (Integer) obj[1];
code_blob_type = BlobType.values()[(Integer) obj[2]];
assert code_blob_type.id == (Integer) obj[2];
int blob_type_index = (Integer) obj[2];
if (blob_type_index == -1) { // AOT
code_blob_type = null;
} else {
code_blob_type = BlobType.values()[blob_type_index];
assert code_blob_type.id == (Integer) obj[2];
}
address = (Long) obj[3];
}
public final String name;