summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes_x86.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2018-05-03 17:09:09 +0100
committer Vladimir Marko <vmarko@google.com> 2018-05-08 11:36:11 +0100
commitbd78567cef305e35481734b7fc24f68ded031439 (patch)
treee3873b73e3631c5cd70c1a3f8f38e79dad25d890 /compiler/optimizing/nodes_x86.h
parent9926e4615d75cb6c9371e1766a14b0a80089ae18 (diff)
Store HIR type in HInstruction::packed_field_.
This is similar to https://android-review.googlesource.com/609566 though the performance impact has not been measured. However, avoiding a virtual call reduces pressure on the branch predictor and provides better optimization opportunities for the C++ compiler. As there is now no difference between HTemplateInstruction<> and HExpression<> (the type is stored in HInstruction), we remove the former and use HExpression<> for all instructions that have a fixed number of inputs. Test: Rely on TreeHugger. Change-Id: Ib3fd111048b0ac38ee65386a7e5af70c5ccc98de
Diffstat (limited to 'compiler/optimizing/nodes_x86.h')
-rw-r--r--compiler/optimizing/nodes_x86.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/optimizing/nodes_x86.h b/compiler/optimizing/nodes_x86.h
index 4c32be7d15..d1e7f68edb 100644
--- a/compiler/optimizing/nodes_x86.h
+++ b/compiler/optimizing/nodes_x86.h
@@ -89,14 +89,14 @@ class HX86FPNeg FINAL : public HExpression<2> {
};
// X86 version of HPackedSwitch that holds a pointer to the base method address.
-class HX86PackedSwitch FINAL : public HTemplateInstruction<2> {
+class HX86PackedSwitch FINAL : public HExpression<2> {
public:
HX86PackedSwitch(int32_t start_value,
int32_t num_entries,
HInstruction* input,
HX86ComputeBaseMethodAddress* method_base,
uint32_t dex_pc)
- : HTemplateInstruction(kX86PackedSwitch, SideEffects::None(), dex_pc),
+ : HExpression(kX86PackedSwitch, SideEffects::None(), dex_pc),
start_value_(start_value),
num_entries_(num_entries) {
SetRawInputAt(0, input);