summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/builder.h
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2014-03-19 10:34:11 +0000
committerNicolas Geoffray <ngeoffray@google.com>2014-03-31 09:44:40 +0100
commit8ccc3f5d06fd217cdaabd37e743adab2031d3720 (patch)
treeec8c904baafb4d9b9bfd582245e2d780bcdfaade /compiler/optimizing/builder.h
parentad174d1b54bf2fa477bec71a0ca93595f54b8fe9 (diff)
downloadart-8ccc3f5d06fd217cdaabd37e743adab2031d3720.zip
art-8ccc3f5d06fd217cdaabd37e743adab2031d3720.tar.gz
art-8ccc3f5d06fd217cdaabd37e743adab2031d3720.tar.bz2
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
Diffstat (limited to 'compiler/optimizing/builder.h')
-rw-r--r--compiler/optimizing/builder.h12
1 files changed, 10 insertions, 2 deletions
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 HLocal;
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 @@ class HGraphBuilder : public ValueObject {
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 @@ class HGraphBuilder : public ValueObject {
HIntConstant* constant0_;
HIntConstant* constant1_;
+ const DexFile* const dex_file_;
+ const DexCompilationUnit* const dex_compilation_unit_;
+
DISALLOW_COPY_AND_ASSIGN(HGraphBuilder);
};