summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Andreas Gampe <agampe@google.com> 2015-03-24 02:39:46 +0000
committer Andreas Gampe <agampe@google.com> 2015-03-24 02:39:46 +0000
commit0ba627337274ccfb8c9cb9bf23fffb1e1b9d1430 (patch)
tree0e1d0813c1d8d1c7239a900c1653296975713df0 /compiler/optimizing/nodes.h
parente295e6ec5beaea31be5d7d3c996cd8cfa2053129 (diff)
Revert "Deoptimization-based bce."
This breaks compiling the core image: Error after BCE: art::SSAChecker: Instruction 219 in block 1 does not dominate use 221 in block 1. This reverts commit e295e6ec5beaea31be5d7d3c996cd8cfa2053129. Change-Id: Ieeb48797d451836ed506ccb940872f1443942e4e
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h28
1 files changed, 4 insertions, 24 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index b10231e0c6..07ff8ba010 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -616,7 +616,6 @@ class HBasicBlock : public ArenaObject<kArenaAllocMisc> {
M(ClinitCheck, Instruction) \
M(Compare, BinaryOperation) \
M(Condition, BinaryOperation) \
- M(Deoptimize, Instruction) \
M(Div, BinaryOperation) \
M(DivZeroCheck, Instruction) \
M(DoubleConstant, Constant) \
@@ -1479,29 +1478,10 @@ class HIf : public HTemplateInstruction<1> {
DECLARE_INSTRUCTION(If);
- private:
- DISALLOW_COPY_AND_ASSIGN(HIf);
-};
-
-// Deoptimize to interpreter, upon checking a condition.
-class HDeoptimize : public HTemplateInstruction<1> {
- public:
- HDeoptimize(HInstruction* cond, uint32_t dex_pc)
- : HTemplateInstruction(SideEffects::None()),
- dex_pc_(dex_pc) {
- SetRawInputAt(0, cond);
- }
-
- bool NeedsEnvironment() const OVERRIDE { return true; }
- bool CanThrow() const OVERRIDE { return true; }
- uint32_t GetDexPc() const { return dex_pc_; }
-
- DECLARE_INSTRUCTION(Deoptimize);
+ virtual bool IsIfInstruction() const { return true; }
private:
- uint32_t dex_pc_;
-
- DISALLOW_COPY_AND_ASSIGN(HDeoptimize);
+ DISALLOW_COPY_AND_ASSIGN(HIf);
};
class HUnaryOperation : public HExpression<1> {
@@ -1621,8 +1601,8 @@ class HCondition : public HBinaryOperation {
void ClearNeedsMaterialization() { needs_materialization_ = false; }
// For code generation purposes, returns whether this instruction is just before
- // `instruction`, and disregard moves in between.
- bool IsBeforeWhenDisregardMoves(HInstruction* instruction) const;
+ // `if_`, and disregard moves in between.
+ bool IsBeforeWhenDisregardMoves(HIf* if_) const;
DECLARE_INSTRUCTION(Condition);