diff options
| author | 2017-01-17 10:25:57 +0000 | |
|---|---|---|
| committer | 2017-01-17 10:25:57 +0000 | |
| commit | dcc7ab628c9d59bfab203ab752ff7e11bfd60181 (patch) | |
| tree | b37f3f978c06d4205145eab948d51f86560f64b0 /compiler/optimizing/instruction_builder.h | |
| parent | 9748d3d2094c1d3c443a350cf12b9d77b4c4d1e3 (diff) | |
| parent | 5247c08fb186a5a2ac02226827cf6b994f41a681 (diff) | |
Merge "Put the resolved class in HLoadClass."
Diffstat (limited to 'compiler/optimizing/instruction_builder.h')
| -rw-r--r-- | compiler/optimizing/instruction_builder.h | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/compiler/optimizing/instruction_builder.h b/compiler/optimizing/instruction_builder.h index aef0b94c1f..5efe95094c 100644 --- a/compiler/optimizing/instruction_builder.h +++ b/compiler/optimizing/instruction_builder.h @@ -46,9 +46,11 @@ class HInstructionBuilder : public ValueObject {                        CompilerDriver* driver,                        const uint8_t* interpreter_metadata,                        OptimizingCompilerStats* compiler_stats, -                      Handle<mirror::DexCache> dex_cache) +                      Handle<mirror::DexCache> dex_cache, +                      VariableSizedHandleScope* handles)        : arena_(graph->GetArena()),          graph_(graph), +        handles_(handles),          dex_file_(dex_file),          code_item_(code_item),          return_type_(return_type), @@ -223,6 +225,14 @@ class HInstructionBuilder : public ValueObject {    // Builds an instruction sequence for a switch statement.    void BuildSwitch(const Instruction& instruction, uint32_t dex_pc); +  // Builds a `HLoadClass` loading the given `type_index`. If `outer` is true, +  // this method will use the outer class's dex file to lookup the type at +  // `type_index`. +  HLoadClass* BuildLoadClass(dex::TypeIndex type_index, +                             uint32_t dex_pc, +                             bool check_access, +                             bool outer = false); +    // Returns the outer-most compiling method's class.    mirror::Class* GetOutermostCompilingClass() const; @@ -282,6 +292,7 @@ class HInstructionBuilder : public ValueObject {    ArenaAllocator* const arena_;    HGraph* const graph_; +  VariableSizedHandleScope* handles_;    // The dex file where the method being compiled is, and the bytecode data.    const DexFile* const dex_file_; |