diff options
author | 2015-03-24 02:39:46 +0000 | |
---|---|---|
committer | 2015-03-24 02:39:46 +0000 | |
commit | 0ba627337274ccfb8c9cb9bf23fffb1e1b9d1430 (patch) | |
tree | 0e1d0813c1d8d1c7239a900c1653296975713df0 /compiler/optimizing/nodes.h | |
parent | e295e6ec5beaea31be5d7d3c996cd8cfa2053129 (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.h | 28 |
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); |