Enable virtual invokes, use new alloc, misc
Make use of the new alloc routines. Extended the filter to allow
simple virtual invoke test to get through. Fixed a register allocation
problem.
Note that the invoke sequeces are still the verbose & long path.
Will start using the new CodeandDirectMethods mechanism in upcoming CL
Change-Id: I8ff79f6392ff3da14d7679dcf65029ae48f18eba
diff --git a/src/compiler/Frontend.cc b/src/compiler/Frontend.cc
index 0fb6636..954f685 100644
--- a/src/compiler/Frontend.cc
+++ b/src/compiler/Frontend.cc
@@ -187,7 +187,7 @@
void oatDumpCFG(CompilationUnit* cUnit, const char* dirPrefix)
{
FILE* file;
- std::string name = art::PrettyMethod(cUnit->method, true);
+ std::string name = art::PrettyMethod(cUnit->method);
char startOffset[80];
sprintf(startOffset, "_%x", cUnit->entryBlock->fallThrough->startOffset);
char* fileName = (char *) oatNew(
@@ -699,16 +699,25 @@
{
bool compiling = true;
if (!method->IsStatic()) {
- compiling = false;
+ compiling = false; // assume skip
+ if (PrettyMethod(method).find("virtualCall") != std::string::npos) {
+ compiling = true;
+ }
+ if (PrettyMethod(method).find("IntMath.<init>") != std::string::npos) {
+ compiling = true;
+ }
+ if (PrettyMethod(method).find("java.lang.Object.<init>") != std::string::npos) {
+ compiling = true;
+ }
} else if ( (method->GetName()->ToModifiedUtf8().find("foo") != std::string::npos) ||
(method->GetName()->ToModifiedUtf8().find("main") != std::string::npos)) {
compiling = false;
}
if (compiling) {
- LOG(INFO) << "Compiling " << PrettyMethod(method, true);
+ LOG(INFO) << "Compiling " << PrettyMethod(method);
} else {
- LOG(INFO) << "not compiling " << PrettyMethod(method, true);
+ LOG(INFO) << "not compiling " << PrettyMethod(method);
return false;
}