Add support for invoke-static in optimizing compiler.
Support is limited to calls without parameters and returning
void. For simplicity, we currently follow the Quick ABI.
Change-Id: I54805161141b7eac5959f1cae0dc138dd0b2e8a5
diff --git a/compiler/optimizing/builder.h b/compiler/optimizing/builder.h
index fff83a1..46ca9aa 100644
--- a/compiler/optimizing/builder.h
+++ b/compiler/optimizing/builder.h
@@ -18,6 +18,7 @@
#define ART_COMPILER_OPTIMIZING_BUILDER_H_
#include "dex_file.h"
+#include "driver/dex_compilation_unit.h"
#include "utils/allocation.h"
#include "utils/growable_array.h"
@@ -33,7 +34,9 @@
class HGraphBuilder : public ValueObject {
public:
- explicit HGraphBuilder(ArenaAllocator* arena)
+ HGraphBuilder(ArenaAllocator* arena,
+ const DexCompilationUnit* dex_compilation_unit = nullptr,
+ const DexFile* dex_file = nullptr)
: arena_(arena),
branch_targets_(arena, 0),
locals_(arena, 0),
@@ -42,7 +45,9 @@
current_block_(nullptr),
graph_(nullptr),
constant0_(nullptr),
- constant1_(nullptr) { }
+ constant1_(nullptr),
+ dex_file_(dex_file),
+ dex_compilation_unit_(dex_compilation_unit) { }
HGraph* BuildGraph(const DexFile::CodeItem& code);
@@ -83,6 +88,9 @@
HIntConstant* constant0_;
HIntConstant* constant1_;
+ const DexFile* const dex_file_;
+ const DexCompilationUnit* const dex_compilation_unit_;
+
DISALLOW_COPY_AND_ASSIGN(HGraphBuilder);
};