summaryrefslogtreecommitdiffstats
path: root/runtime/quick
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2014-10-31 16:37:32 +0000
committerVladimir Marko <vmarko@google.com>2014-11-21 18:47:37 +0000
commitaf6925b7fe5dc5a3c8d52ee3370e86e75400f873 (patch)
tree1fe667865bb7dbae3a00bb002492bd4ff4ab194a /runtime/quick
parentf585e549682a98eec12f92033e9634dc162b7df8 (diff)
downloadart-af6925b7fe5dc5a3c8d52ee3370e86e75400f873.tar.gz
art-af6925b7fe5dc5a3c8d52ee3370e86e75400f873.tar.bz2
art-af6925b7fe5dc5a3c8d52ee3370e86e75400f873.zip
Rewrite GVN's field id and field type handling.
Create a helper unit for dex insn classification and cache dex field type (as encoded in the insn) in the MirFieldInfo. Use this for cleanup and a few additional DCHECKs. Change the GVN's field id to match the field lowering info index (MIR::meta::{i,s}field_lowering_info), except where multiple indexes refer to the same field and we use the lowest of the applicable indexes. Use the MirMethodInfo from MIRGraph to retrieve field type for GVN using this index. This slightly reduces GVN compilation time and prepares for further compilation time improvements. Change-Id: I1b1247cdb8e8b6897254e2180f3230f10159bed5
Diffstat (limited to 'runtime/quick')
-rw-r--r--runtime/quick/inline_method_analyser.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/runtime/quick/inline_method_analyser.h b/runtime/quick/inline_method_analyser.h
index a8d4308952..72b696b2d5 100644
--- a/runtime/quick/inline_method_analyser.h
+++ b/runtime/quick/inline_method_analyser.h
@@ -106,9 +106,7 @@ enum IntrinsicFlags {
};
struct InlineIGetIPutData {
- // The op_variant below is opcode-Instruction::IGET for IGETs and
- // opcode-Instruction::IPUT for IPUTs. This is because the runtime
- // doesn't know the OpSize enumeration.
+ // The op_variant below is DexMemAccessType but the runtime doesn't know that enumeration.
uint16_t op_variant : 3;
uint16_t method_is_static : 1;
uint16_t object_arg : 4;