| Index: runtime/vm/intermediate_language.h
|
| diff --git a/runtime/vm/intermediate_language.h b/runtime/vm/intermediate_language.h
|
| index 4b2a4eaff1b7d41b1b1ca8d76c84944535ad468b..7a16660adfc1eacbf06da2cc44f12527c8407383 100644
|
| --- a/runtime/vm/intermediate_language.h
|
| +++ b/runtime/vm/intermediate_language.h
|
| @@ -178,7 +178,6 @@ class CompileType : public ZoneAllocated {
|
| const AbstractType* type_;
|
| };
|
|
|
| -
|
| class EffectSet : public ValueObject {
|
| public:
|
| enum Effects {
|
| @@ -207,7 +206,6 @@ class EffectSet : public ValueObject {
|
| intptr_t effects_;
|
| };
|
|
|
| -
|
| class Value : public ZoneAllocated {
|
| public:
|
| // A forward iterator that allows removing the current value from the
|
| @@ -311,7 +309,6 @@ class Value : public ZoneAllocated {
|
| DISALLOW_COPY_AND_ASSIGN(Value);
|
| };
|
|
|
| -
|
| // An embedded container with N elements of type T. Used (with partial
|
| // specialization for N=0) because embedded arrays cannot have size 0.
|
| template <typename T, intptr_t N>
|
| @@ -339,7 +336,6 @@ class EmbeddedArray {
|
| T elements_[N];
|
| };
|
|
|
| -
|
| template <typename T>
|
| class EmbeddedArray<T, 0> {
|
| public:
|
| @@ -356,7 +352,6 @@ class EmbeddedArray<T, 0> {
|
| }
|
| };
|
|
|
| -
|
| // Instructions.
|
|
|
| // M is a single argument macro. It is applied to each concrete instruction
|
| @@ -569,7 +564,6 @@ FOR_EACH_ABSTRACT_INSTRUCTION(FORWARD_DECLARATION)
|
| #define PRINT_OPERANDS_TO_SUPPORT
|
| #endif // !PRODUCT
|
|
|
| -
|
| // Represents a range of class-ids for use in class checks and polymorphic
|
| // dispatches.
|
| struct CidRange : public ZoneAllocated {
|
| @@ -586,7 +580,6 @@ struct CidRange : public ZoneAllocated {
|
| intptr_t cid_end;
|
| };
|
|
|
| -
|
| // Together with CidRange, this represents a mapping from a range of class-ids
|
| // to a method for a given selector (method name). Also can contain an
|
| // indication of how frequently a given method has been called at a call site.
|
| @@ -605,7 +598,6 @@ struct TargetInfo : public CidRange {
|
| intptr_t count;
|
| };
|
|
|
| -
|
| // A set of class-ids, arranged in ranges. Used for the CheckClass
|
| // and PolymorphicInstanceCall instructions.
|
| class Cids : public ZoneAllocated {
|
| @@ -654,7 +646,6 @@ class Cids : public ZoneAllocated {
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(Cids);
|
| };
|
|
|
| -
|
| class CallTargets : public Cids {
|
| public:
|
| explicit CallTargets(Zone* zone) : Cids(zone) {}
|
| @@ -679,7 +670,6 @@ class CallTargets : public Cids {
|
| void MergeIntoRanges();
|
| };
|
|
|
| -
|
| class Instruction : public ZoneAllocated {
|
| public:
|
| #define DECLARE_TAG(type) k##type,
|
| @@ -985,14 +975,12 @@ class Instruction : public ZoneAllocated {
|
| DISALLOW_COPY_AND_ASSIGN(Instruction);
|
| };
|
|
|
| -
|
| struct BranchLabels {
|
| Label* true_label;
|
| Label* false_label;
|
| Label* fall_through;
|
| };
|
|
|
| -
|
| class PureInstruction : public Instruction {
|
| public:
|
| explicit PureInstruction(intptr_t deopt_id) : Instruction(deopt_id) {}
|
| @@ -1003,18 +991,15 @@ class PureInstruction : public Instruction {
|
| virtual EffectSet Effects() const { return EffectSet::None(); }
|
| };
|
|
|
| -
|
| // Types to be used as ThrowsTrait for TemplateInstruction/TemplateDefinition.
|
| struct Throws {
|
| static const bool kCanThrow = true;
|
| };
|
|
|
| -
|
| struct NoThrow {
|
| static const bool kCanThrow = false;
|
| };
|
|
|
| -
|
| // Types to be used as CSETrait for TemplateInstruction/TemplateDefinition.
|
| // Pure instructions are those that allow CSE and have no effects and
|
| // no dependencies.
|
| @@ -1023,13 +1008,11 @@ struct Pure {
|
| typedef PureBase Base;
|
| };
|
|
|
| -
|
| template <typename DefaultBase, typename PureBase>
|
| struct NoCSE {
|
| typedef DefaultBase Base;
|
| };
|
|
|
| -
|
| template <intptr_t N,
|
| typename ThrowsTrait,
|
| template <typename Default, typename Pure> class CSETrait = NoCSE>
|
| @@ -1051,7 +1034,6 @@ class TemplateInstruction
|
| virtual void RawSetInputAt(intptr_t i, Value* value) { inputs_[i] = value; }
|
| };
|
|
|
| -
|
| class MoveOperands : public ZoneAllocated {
|
| public:
|
| MoveOperands(Location dest, Location src) : dest_(dest), src_(src) {}
|
| @@ -1109,7 +1091,6 @@ class MoveOperands : public ZoneAllocated {
|
| DISALLOW_COPY_AND_ASSIGN(MoveOperands);
|
| };
|
|
|
| -
|
| class ParallelMoveInstr : public TemplateInstruction<0, NoThrow> {
|
| public:
|
| ParallelMoveInstr() : moves_(4) {}
|
| @@ -1154,7 +1135,6 @@ class ParallelMoveInstr : public TemplateInstruction<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(ParallelMoveInstr);
|
| };
|
|
|
| -
|
| // Basic block entries are administrative nodes. There is a distinguished
|
| // graph entry with no predecessor. Joins are the only nodes with multiple
|
| // predecessors. Targets are all other basic block entries. The types
|
| @@ -1338,7 +1318,6 @@ class BlockEntryInstr : public Instruction {
|
| DISALLOW_COPY_AND_ASSIGN(BlockEntryInstr);
|
| };
|
|
|
| -
|
| class ForwardInstructionIterator : public ValueObject {
|
| public:
|
| explicit ForwardInstructionIterator(BlockEntryInstr* block_entry)
|
| @@ -1362,7 +1341,6 @@ class ForwardInstructionIterator : public ValueObject {
|
| Instruction* current_;
|
| };
|
|
|
| -
|
| class BackwardInstructionIterator : public ValueObject {
|
| public:
|
| explicit BackwardInstructionIterator(BlockEntryInstr* block_entry)
|
| @@ -1386,7 +1364,6 @@ class BackwardInstructionIterator : public ValueObject {
|
| Instruction* current_;
|
| };
|
|
|
| -
|
| class GraphEntryInstr : public BlockEntryInstr {
|
| public:
|
| GraphEntryInstr(const ParsedFunction& parsed_function,
|
| @@ -1469,7 +1446,6 @@ class GraphEntryInstr : public BlockEntryInstr {
|
| DISALLOW_COPY_AND_ASSIGN(GraphEntryInstr);
|
| };
|
|
|
| -
|
| class JoinEntryInstr : public BlockEntryInstr {
|
| public:
|
| JoinEntryInstr(intptr_t block_id, intptr_t try_index, intptr_t deopt_id)
|
| @@ -1520,7 +1496,6 @@ class JoinEntryInstr : public BlockEntryInstr {
|
| DISALLOW_COPY_AND_ASSIGN(JoinEntryInstr);
|
| };
|
|
|
| -
|
| class PhiIterator : public ValueObject {
|
| public:
|
| explicit PhiIterator(JoinEntryInstr* join) : phis_(join->phis()), index_(0) {}
|
| @@ -1539,7 +1514,6 @@ class PhiIterator : public ValueObject {
|
| intptr_t index_;
|
| };
|
|
|
| -
|
| class TargetEntryInstr : public BlockEntryInstr {
|
| public:
|
| TargetEntryInstr(intptr_t block_id, intptr_t try_index, intptr_t deopt_id)
|
| @@ -1578,7 +1552,6 @@ class TargetEntryInstr : public BlockEntryInstr {
|
| DISALLOW_COPY_AND_ASSIGN(TargetEntryInstr);
|
| };
|
|
|
| -
|
| class IndirectEntryInstr : public JoinEntryInstr {
|
| public:
|
| IndirectEntryInstr(intptr_t block_id,
|
| @@ -1598,7 +1571,6 @@ class IndirectEntryInstr : public JoinEntryInstr {
|
| const intptr_t indirect_id_;
|
| };
|
|
|
| -
|
| class CatchBlockEntryInstr : public BlockEntryInstr {
|
| public:
|
| CatchBlockEntryInstr(TokenPosition handler_token_pos,
|
| @@ -1684,7 +1656,6 @@ class CatchBlockEntryInstr : public BlockEntryInstr {
|
| DISALLOW_COPY_AND_ASSIGN(CatchBlockEntryInstr);
|
| };
|
|
|
| -
|
| // If the result of the allocation is not stored into any field, passed
|
| // as an argument or used in a phi then it can't alias with any other
|
| // SSA value.
|
| @@ -1737,7 +1708,6 @@ class AliasIdentity : public ValueObject {
|
| intptr_t value_;
|
| };
|
|
|
| -
|
| // Abstract super-class of all instructions that define a value (Bind, Phi).
|
| class Definition : public Instruction {
|
| public:
|
| @@ -1818,7 +1788,6 @@ class Definition : public Instruction {
|
| bool HasOnlyUse(Value* use) const;
|
| bool HasOnlyInputUse(Value* use) const;
|
|
|
| -
|
| Value* input_use_list() const { return input_use_list_; }
|
| void set_input_use_list(Value* head) { input_use_list_ = head; }
|
|
|
| @@ -1897,7 +1866,6 @@ class Definition : public Instruction {
|
| DISALLOW_COPY_AND_ASSIGN(Definition);
|
| };
|
|
|
| -
|
| // Change a value's definition after use lists have been computed.
|
| inline void Value::BindTo(Definition* def) {
|
| RemoveFromUseList();
|
| @@ -1905,14 +1873,12 @@ inline void Value::BindTo(Definition* def) {
|
| def->AddInputUse(this);
|
| }
|
|
|
| -
|
| inline void Value::BindToEnvironment(Definition* def) {
|
| RemoveFromUseList();
|
| set_definition(def);
|
| def->AddEnvUse(this);
|
| }
|
|
|
| -
|
| class PureDefinition : public Definition {
|
| public:
|
| explicit PureDefinition(intptr_t deopt_id) : Definition(deopt_id) {}
|
| @@ -1923,7 +1889,6 @@ class PureDefinition : public Definition {
|
| virtual EffectSet Effects() const { return EffectSet::None(); }
|
| };
|
|
|
| -
|
| template <intptr_t N,
|
| typename ThrowsTrait,
|
| template <typename Impure, typename Pure> class CSETrait = NoCSE>
|
| @@ -1947,10 +1912,8 @@ class TemplateDefinition : public CSETrait<Definition, PureDefinition>::Base {
|
| virtual void RawSetInputAt(intptr_t i, Value* value) { inputs_[i] = value; }
|
| };
|
|
|
| -
|
| class InductionVariableInfo;
|
|
|
| -
|
| class PhiInstr : public Definition {
|
| public:
|
| PhiInstr(JoinEntryInstr* block, intptr_t num_inputs)
|
| @@ -2050,7 +2013,6 @@ class PhiInstr : public Definition {
|
| DISALLOW_COPY_AND_ASSIGN(PhiInstr);
|
| };
|
|
|
| -
|
| class ParameterInstr : public Definition {
|
| public:
|
| ParameterInstr(intptr_t index,
|
| @@ -2098,7 +2060,6 @@ class ParameterInstr : public Definition {
|
| DISALLOW_COPY_AND_ASSIGN(ParameterInstr);
|
| };
|
|
|
| -
|
| class PushArgumentInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| explicit PushArgumentInstr(Value* value) { SetInputAt(0, value); }
|
| @@ -2123,12 +2084,10 @@ class PushArgumentInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(PushArgumentInstr);
|
| };
|
|
|
| -
|
| inline Definition* Instruction::ArgumentAt(intptr_t index) const {
|
| return PushArgumentAt(index)->value()->definition();
|
| }
|
|
|
| -
|
| class ReturnInstr : public TemplateInstruction<1, NoThrow> {
|
| public:
|
| ReturnInstr(TokenPosition token_pos, Value* value, intptr_t deopt_id)
|
| @@ -2157,7 +2116,6 @@ class ReturnInstr : public TemplateInstruction<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(ReturnInstr);
|
| };
|
|
|
| -
|
| class ThrowInstr : public TemplateInstruction<0, Throws> {
|
| public:
|
| explicit ThrowInstr(TokenPosition token_pos, intptr_t deopt_id)
|
| @@ -2179,7 +2137,6 @@ class ThrowInstr : public TemplateInstruction<0, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(ThrowInstr);
|
| };
|
|
|
| -
|
| class ReThrowInstr : public TemplateInstruction<0, Throws> {
|
| public:
|
| // 'catch_try_index' can be CatchClauseNode::kInvalidTryIndex if the
|
| @@ -2209,7 +2166,6 @@ class ReThrowInstr : public TemplateInstruction<0, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(ReThrowInstr);
|
| };
|
|
|
| -
|
| class StopInstr : public TemplateInstruction<0, NoThrow> {
|
| public:
|
| explicit StopInstr(const char* message) : message_(message) {
|
| @@ -2234,7 +2190,6 @@ class StopInstr : public TemplateInstruction<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(StopInstr);
|
| };
|
|
|
| -
|
| class GotoInstr : public TemplateInstruction<0, NoThrow> {
|
| public:
|
| explicit GotoInstr(JoinEntryInstr* entry, intptr_t deopt_id)
|
| @@ -2299,7 +2254,6 @@ class GotoInstr : public TemplateInstruction<0, NoThrow> {
|
| ParallelMoveInstr* parallel_move_;
|
| };
|
|
|
| -
|
| // IndirectGotoInstr represents a dynamically computed jump. Only
|
| // IndirectEntryInstr targets are valid targets of an indirect goto. The
|
| // concrete target to jump to is given as a parameter to the indirect goto.
|
| @@ -2355,7 +2309,6 @@ class IndirectGotoInstr : public TemplateInstruction<1, NoThrow> {
|
| TypedData& offsets_;
|
| };
|
|
|
| -
|
| class ComparisonInstr : public Definition {
|
| public:
|
| Value* left() const { return InputAt(0); }
|
| @@ -2430,7 +2383,6 @@ class ComparisonInstr : public Definition {
|
| DISALLOW_COPY_AND_ASSIGN(ComparisonInstr);
|
| };
|
|
|
| -
|
| class PureComparison : public ComparisonInstr {
|
| public:
|
| virtual bool AllowsCSE() const { return true; }
|
| @@ -2443,7 +2395,6 @@ class PureComparison : public ComparisonInstr {
|
| : ComparisonInstr(token_pos, kind, deopt_id) {}
|
| };
|
|
|
| -
|
| template <intptr_t N,
|
| typename ThrowsTrait,
|
| template <typename Impure, typename Pure> class CSETrait = NoCSE>
|
| @@ -2470,7 +2421,6 @@ class TemplateComparison
|
| virtual void RawSetInputAt(intptr_t i, Value* value) { inputs_[i] = value; }
|
| };
|
|
|
| -
|
| class BranchInstr : public Instruction {
|
| public:
|
| explicit BranchInstr(ComparisonInstr* comparison, intptr_t deopt_id)
|
| @@ -2550,7 +2500,6 @@ class BranchInstr : public Instruction {
|
| DISALLOW_COPY_AND_ASSIGN(BranchInstr);
|
| };
|
|
|
| -
|
| class DeoptimizeInstr : public TemplateInstruction<0, NoThrow, Pure> {
|
| public:
|
| DeoptimizeInstr(ICData::DeoptReasonId deopt_reason, intptr_t deopt_id)
|
| @@ -2568,7 +2517,6 @@ class DeoptimizeInstr : public TemplateInstruction<0, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(DeoptimizeInstr);
|
| };
|
|
|
| -
|
| class RedefinitionInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| explicit RedefinitionInstr(Value* value) : constrained_type_(NULL) {
|
| @@ -2596,7 +2544,6 @@ class RedefinitionInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(RedefinitionInstr);
|
| };
|
|
|
| -
|
| class ConstraintInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| ConstraintInstr(Value* value, Range* constraint)
|
| @@ -2637,7 +2584,6 @@ class ConstraintInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(ConstraintInstr);
|
| };
|
|
|
| -
|
| class ConstantInstr : public TemplateDefinition<0, NoThrow, Pure> {
|
| public:
|
| ConstantInstr(const Object& value,
|
| @@ -2667,7 +2613,6 @@ class ConstantInstr : public TemplateDefinition<0, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(ConstantInstr);
|
| };
|
|
|
| -
|
| // Merged ConstantInstr -> UnboxedXXX into UnboxedConstantInstr.
|
| // TODO(srdjan): Implemented currently for doubles only, should implement
|
| // for other unboxing instructions.
|
| @@ -2690,7 +2635,6 @@ class UnboxedConstantInstr : public ConstantInstr {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxedConstantInstr);
|
| };
|
|
|
| -
|
| class AssertAssignableInstr : public TemplateDefinition<3, Throws, Pure> {
|
| public:
|
| AssertAssignableInstr(TokenPosition token_pos,
|
| @@ -2750,7 +2694,6 @@ class AssertAssignableInstr : public TemplateDefinition<3, Throws, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(AssertAssignableInstr);
|
| };
|
|
|
| -
|
| class AssertBooleanInstr : public TemplateDefinition<1, Throws, Pure> {
|
| public:
|
| AssertBooleanInstr(TokenPosition token_pos, Value* value, intptr_t deopt_id)
|
| @@ -2778,7 +2721,6 @@ class AssertBooleanInstr : public TemplateDefinition<1, Throws, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(AssertBooleanInstr);
|
| };
|
|
|
| -
|
| // Denotes a special parameter, currently either the context of a closure
|
| // or the type arguments of a generic function.
|
| class SpecialParameterInstr : public TemplateDefinition<0, NoThrow> {
|
| @@ -2804,7 +2746,6 @@ class SpecialParameterInstr : public TemplateDefinition<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(SpecialParameterInstr);
|
| };
|
|
|
| -
|
| struct ArgumentsInfo {
|
| ArgumentsInfo(intptr_t type_args_len,
|
| intptr_t pushed_argc,
|
| @@ -2824,7 +2765,6 @@ struct ArgumentsInfo {
|
| const Array& argument_names;
|
| };
|
|
|
| -
|
| template <intptr_t kInputCount>
|
| class TemplateDartCall : public TemplateDefinition<kInputCount, Throws> {
|
| public:
|
| @@ -2867,7 +2807,6 @@ class TemplateDartCall : public TemplateDefinition<kInputCount, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(TemplateDartCall);
|
| };
|
|
|
| -
|
| class ClosureCallInstr : public TemplateDartCall<1> {
|
| public:
|
| ClosureCallInstr(Value* function,
|
| @@ -2913,7 +2852,6 @@ class ClosureCallInstr : public TemplateDartCall<1> {
|
| DISALLOW_COPY_AND_ASSIGN(ClosureCallInstr);
|
| };
|
|
|
| -
|
| class InstanceCallInstr : public TemplateDartCall<0> {
|
| public:
|
| InstanceCallInstr(TokenPosition token_pos,
|
| @@ -2999,7 +2937,6 @@ class InstanceCallInstr : public TemplateDartCall<0> {
|
| DISALLOW_COPY_AND_ASSIGN(InstanceCallInstr);
|
| };
|
|
|
| -
|
| class PolymorphicInstanceCallInstr : public TemplateDefinition<0, Throws> {
|
| public:
|
| PolymorphicInstanceCallInstr(InstanceCallInstr* instance_call,
|
| @@ -3076,7 +3013,6 @@ class PolymorphicInstanceCallInstr : public TemplateDefinition<0, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(PolymorphicInstanceCallInstr);
|
| };
|
|
|
| -
|
| class StrictCompareInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| public:
|
| StrictCompareInstr(TokenPosition token_pos,
|
| @@ -3111,7 +3047,6 @@ class StrictCompareInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(StrictCompareInstr);
|
| };
|
|
|
| -
|
| // Comparison instruction that is equivalent to the (left & right) == 0
|
| // comparison pattern.
|
| class TestSmiInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| @@ -3142,7 +3077,6 @@ class TestSmiInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(TestSmiInstr);
|
| };
|
|
|
| -
|
| // Checks the input value cid against cids stored in a table and returns either
|
| // a result or deoptimizes. If the cid is not in the list and there is a deopt
|
| // id, then the instruction deoptimizes. If there is no deopt id, all the
|
| @@ -3190,7 +3124,6 @@ class TestCidsInstr : public TemplateComparison<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(TestCidsInstr);
|
| };
|
|
|
| -
|
| class EqualityCompareInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| public:
|
| EqualityCompareInstr(TokenPosition token_pos,
|
| @@ -3227,7 +3160,6 @@ class EqualityCompareInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(EqualityCompareInstr);
|
| };
|
|
|
| -
|
| class RelationalOpInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| public:
|
| RelationalOpInstr(TokenPosition token_pos,
|
| @@ -3264,7 +3196,6 @@ class RelationalOpInstr : public TemplateComparison<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(RelationalOpInstr);
|
| };
|
|
|
| -
|
| // TODO(vegorov): ComparisonInstr should be switched to use IfTheElseInstr for
|
| // materialization of true and false constants.
|
| class IfThenElseInstr : public Definition {
|
| @@ -3347,7 +3278,6 @@ class IfThenElseInstr : public Definition {
|
| DISALLOW_COPY_AND_ASSIGN(IfThenElseInstr);
|
| };
|
|
|
| -
|
| class StaticCallInstr : public TemplateDartCall<0> {
|
| public:
|
| StaticCallInstr(TokenPosition token_pos,
|
| @@ -3466,7 +3396,6 @@ class StaticCallInstr : public TemplateDartCall<0> {
|
| DISALLOW_COPY_AND_ASSIGN(StaticCallInstr);
|
| };
|
|
|
| -
|
| class LoadLocalInstr : public TemplateDefinition<0, NoThrow> {
|
| public:
|
| LoadLocalInstr(const LocalVariable& local, TokenPosition token_pos)
|
| @@ -3499,7 +3428,6 @@ class LoadLocalInstr : public TemplateDefinition<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(LoadLocalInstr);
|
| };
|
|
|
| -
|
| class DropTempsInstr : public Definition {
|
| public:
|
| DropTempsInstr(intptr_t num_temps, Value* value)
|
| @@ -3548,7 +3476,6 @@ class DropTempsInstr : public Definition {
|
| DISALLOW_COPY_AND_ASSIGN(DropTempsInstr);
|
| };
|
|
|
| -
|
| class StoreLocalInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| StoreLocalInstr(const LocalVariable& local,
|
| @@ -3590,7 +3517,6 @@ class StoreLocalInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(StoreLocalInstr);
|
| };
|
|
|
| -
|
| class NativeCallInstr : public TemplateDefinition<0, Throws> {
|
| public:
|
| explicit NativeCallInstr(NativeBodyNode* node)
|
| @@ -3650,7 +3576,6 @@ class NativeCallInstr : public TemplateDefinition<0, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(NativeCallInstr);
|
| };
|
|
|
| -
|
| class DebugStepCheckInstr : public TemplateInstruction<0, NoThrow> {
|
| public:
|
| DebugStepCheckInstr(TokenPosition token_pos,
|
| @@ -3674,10 +3599,8 @@ class DebugStepCheckInstr : public TemplateInstruction<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(DebugStepCheckInstr);
|
| };
|
|
|
| -
|
| enum StoreBarrierType { kNoStoreBarrier, kEmitStoreBarrier };
|
|
|
| -
|
| class StoreInstanceFieldInstr : public TemplateDefinition<2, NoThrow> {
|
| public:
|
| StoreInstanceFieldInstr(const Field& field,
|
| @@ -3767,7 +3690,6 @@ class StoreInstanceFieldInstr : public TemplateDefinition<2, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(StoreInstanceFieldInstr);
|
| };
|
|
|
| -
|
| class GuardFieldInstr : public TemplateInstruction<1, NoThrow, Pure> {
|
| public:
|
| GuardFieldInstr(Value* value, const Field& field, intptr_t deopt_id)
|
| @@ -3794,7 +3716,6 @@ class GuardFieldInstr : public TemplateInstruction<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(GuardFieldInstr);
|
| };
|
|
|
| -
|
| class GuardFieldClassInstr : public GuardFieldInstr {
|
| public:
|
| GuardFieldClassInstr(Value* value, const Field& field, intptr_t deopt_id)
|
| @@ -3812,7 +3733,6 @@ class GuardFieldClassInstr : public GuardFieldInstr {
|
| DISALLOW_COPY_AND_ASSIGN(GuardFieldClassInstr);
|
| };
|
|
|
| -
|
| class GuardFieldLengthInstr : public GuardFieldInstr {
|
| public:
|
| GuardFieldLengthInstr(Value* value, const Field& field, intptr_t deopt_id)
|
| @@ -3830,7 +3750,6 @@ class GuardFieldLengthInstr : public GuardFieldInstr {
|
| DISALLOW_COPY_AND_ASSIGN(GuardFieldLengthInstr);
|
| };
|
|
|
| -
|
| class LoadStaticFieldInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| LoadStaticFieldInstr(Value* field_value, TokenPosition token_pos)
|
| @@ -3863,7 +3782,6 @@ class LoadStaticFieldInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(LoadStaticFieldInstr);
|
| };
|
|
|
| -
|
| class StoreStaticFieldInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| StoreStaticFieldInstr(const Field& field,
|
| @@ -3962,7 +3880,6 @@ class LoadIndexedInstr : public TemplateDefinition<2, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(LoadIndexedInstr);
|
| };
|
|
|
| -
|
| // Loads the specified number of code units from the given string, packing
|
| // multiple code units into a single datatype. In essence, this is a specialized
|
| // version of LoadIndexedInstr which accepts only string targets and can load
|
| @@ -4032,7 +3949,6 @@ class LoadCodeUnitsInstr : public TemplateDefinition<2, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(LoadCodeUnitsInstr);
|
| };
|
|
|
| -
|
| class OneByteStringFromCharCodeInstr
|
| : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| @@ -4053,7 +3969,6 @@ class OneByteStringFromCharCodeInstr
|
| DISALLOW_COPY_AND_ASSIGN(OneByteStringFromCharCodeInstr);
|
| };
|
|
|
| -
|
| class StringToCharCodeInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| StringToCharCodeInstr(Value* str, intptr_t cid) : cid_(cid) {
|
| @@ -4078,7 +3993,6 @@ class StringToCharCodeInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(StringToCharCodeInstr);
|
| };
|
|
|
| -
|
| class StringInterpolateInstr : public TemplateDefinition<1, Throws> {
|
| public:
|
| StringInterpolateInstr(Value* value,
|
| @@ -4111,7 +4025,6 @@ class StringInterpolateInstr : public TemplateDefinition<1, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(StringInterpolateInstr);
|
| };
|
|
|
| -
|
| class StoreIndexedInstr : public TemplateDefinition<3, NoThrow> {
|
| public:
|
| StoreIndexedInstr(Value* array,
|
| @@ -4166,7 +4079,6 @@ class StoreIndexedInstr : public TemplateDefinition<3, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(StoreIndexedInstr);
|
| };
|
|
|
| -
|
| // Note overrideable, built-in: value ? false : true.
|
| class BooleanNegateInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| @@ -4187,7 +4099,6 @@ class BooleanNegateInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(BooleanNegateInstr);
|
| };
|
|
|
| -
|
| class InstanceOfInstr : public TemplateDefinition<3, Throws> {
|
| public:
|
| InstanceOfInstr(TokenPosition token_pos,
|
| @@ -4228,7 +4139,6 @@ class InstanceOfInstr : public TemplateDefinition<3, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(InstanceOfInstr);
|
| };
|
|
|
| -
|
| class AllocateObjectInstr : public TemplateDefinition<0, NoThrow> {
|
| public:
|
| AllocateObjectInstr(TokenPosition token_pos,
|
| @@ -4278,7 +4188,6 @@ class AllocateObjectInstr : public TemplateDefinition<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(AllocateObjectInstr);
|
| };
|
|
|
| -
|
| class AllocateUninitializedContextInstr
|
| : public TemplateDefinition<0, NoThrow> {
|
| public:
|
| @@ -4311,7 +4220,6 @@ class AllocateUninitializedContextInstr
|
| DISALLOW_COPY_AND_ASSIGN(AllocateUninitializedContextInstr);
|
| };
|
|
|
| -
|
| // This instruction captures the state of the object which had its allocation
|
| // removed during the AllocationSinking pass.
|
| // It does not produce any real code only deoptimization information.
|
| @@ -4414,7 +4322,6 @@ class MaterializeObjectInstr : public Definition {
|
| DISALLOW_COPY_AND_ASSIGN(MaterializeObjectInstr);
|
| };
|
|
|
| -
|
| class CreateArrayInstr : public TemplateDefinition<2, Throws> {
|
| public:
|
| CreateArrayInstr(TokenPosition token_pos,
|
| @@ -4453,7 +4360,6 @@ class CreateArrayInstr : public TemplateDefinition<2, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(CreateArrayInstr);
|
| };
|
|
|
| -
|
| // Note: this instruction must not be moved without the indexed access that
|
| // depends on it (e.g. out of loops). GC may cause collect
|
| // the array while the external data-array is still accessed.
|
| @@ -4489,7 +4395,6 @@ class LoadUntaggedInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(LoadUntaggedInstr);
|
| };
|
|
|
| -
|
| class LoadClassIdInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| explicit LoadClassIdInstr(Value* object) { SetInputAt(0, object); }
|
| @@ -4513,7 +4418,6 @@ class LoadClassIdInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(LoadClassIdInstr);
|
| };
|
|
|
| -
|
| class LoadFieldInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| LoadFieldInstr(Value* instance,
|
| @@ -4623,7 +4527,6 @@ class LoadFieldInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(LoadFieldInstr);
|
| };
|
|
|
| -
|
| class InstantiateTypeInstr : public TemplateDefinition<2, Throws> {
|
| public:
|
| InstantiateTypeInstr(TokenPosition token_pos,
|
| @@ -4657,7 +4560,6 @@ class InstantiateTypeInstr : public TemplateDefinition<2, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(InstantiateTypeInstr);
|
| };
|
|
|
| -
|
| class InstantiateTypeArgumentsInstr : public TemplateDefinition<2, Throws> {
|
| public:
|
| InstantiateTypeArgumentsInstr(TokenPosition token_pos,
|
| @@ -4699,7 +4601,6 @@ class InstantiateTypeArgumentsInstr : public TemplateDefinition<2, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(InstantiateTypeArgumentsInstr);
|
| };
|
|
|
| -
|
| class AllocateContextInstr : public TemplateDefinition<0, NoThrow> {
|
| public:
|
| AllocateContextInstr(TokenPosition token_pos, intptr_t num_context_variables)
|
| @@ -4724,7 +4625,6 @@ class AllocateContextInstr : public TemplateDefinition<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(AllocateContextInstr);
|
| };
|
|
|
| -
|
| class InitStaticFieldInstr : public TemplateInstruction<1, Throws> {
|
| public:
|
| InitStaticFieldInstr(Value* input, const Field& field, intptr_t deopt_id)
|
| @@ -4748,7 +4648,6 @@ class InitStaticFieldInstr : public TemplateInstruction<1, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(InitStaticFieldInstr);
|
| };
|
|
|
| -
|
| class CloneContextInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| CloneContextInstr(TokenPosition token_pos,
|
| @@ -4774,7 +4673,6 @@ class CloneContextInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(CloneContextInstr);
|
| };
|
|
|
| -
|
| class CheckEitherNonSmiInstr : public TemplateInstruction<2, NoThrow, Pure> {
|
| public:
|
| CheckEitherNonSmiInstr(Value* left, Value* right, intptr_t deopt_id)
|
| @@ -4802,7 +4700,6 @@ class CheckEitherNonSmiInstr : public TemplateInstruction<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckEitherNonSmiInstr);
|
| };
|
|
|
| -
|
| class Boxing : public AllStatic {
|
| public:
|
| static bool Supports(Representation rep) {
|
| @@ -4862,7 +4759,6 @@ class Boxing : public AllStatic {
|
| }
|
| };
|
|
|
| -
|
| class BoxInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| static BoxInstr* Create(Representation from, Value* value);
|
| @@ -4905,7 +4801,6 @@ class BoxInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(BoxInstr);
|
| };
|
|
|
| -
|
| class BoxIntegerInstr : public BoxInstr {
|
| public:
|
| BoxIntegerInstr(Representation representation, Value* value)
|
| @@ -4926,7 +4821,6 @@ class BoxIntegerInstr : public BoxInstr {
|
| DISALLOW_COPY_AND_ASSIGN(BoxIntegerInstr);
|
| };
|
|
|
| -
|
| class BoxInteger32Instr : public BoxIntegerInstr {
|
| public:
|
| BoxInteger32Instr(Representation representation, Value* value)
|
| @@ -4938,7 +4832,6 @@ class BoxInteger32Instr : public BoxIntegerInstr {
|
| DISALLOW_COPY_AND_ASSIGN(BoxInteger32Instr);
|
| };
|
|
|
| -
|
| class BoxInt32Instr : public BoxInteger32Instr {
|
| public:
|
| explicit BoxInt32Instr(Value* value)
|
| @@ -4950,7 +4843,6 @@ class BoxInt32Instr : public BoxInteger32Instr {
|
| DISALLOW_COPY_AND_ASSIGN(BoxInt32Instr);
|
| };
|
|
|
| -
|
| class BoxUint32Instr : public BoxInteger32Instr {
|
| public:
|
| explicit BoxUint32Instr(Value* value)
|
| @@ -4962,7 +4854,6 @@ class BoxUint32Instr : public BoxInteger32Instr {
|
| DISALLOW_COPY_AND_ASSIGN(BoxUint32Instr);
|
| };
|
|
|
| -
|
| class BoxInt64Instr : public BoxIntegerInstr {
|
| public:
|
| explicit BoxInt64Instr(Value* value) : BoxIntegerInstr(kUnboxedMint, value) {}
|
| @@ -4975,7 +4866,6 @@ class BoxInt64Instr : public BoxIntegerInstr {
|
| DISALLOW_COPY_AND_ASSIGN(BoxInt64Instr);
|
| };
|
|
|
| -
|
| class UnboxInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| static UnboxInstr* Create(Representation to, Value* value, intptr_t deopt_id);
|
| @@ -5027,7 +4917,6 @@ class UnboxInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxInstr);
|
| };
|
|
|
| -
|
| class UnboxIntegerInstr : public UnboxInstr {
|
| public:
|
| enum TruncationMode { kTruncate, kNoTruncation };
|
| @@ -5061,7 +4950,6 @@ class UnboxIntegerInstr : public UnboxInstr {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxIntegerInstr);
|
| };
|
|
|
| -
|
| class UnboxInteger32Instr : public UnboxIntegerInstr {
|
| public:
|
| UnboxInteger32Instr(Representation representation,
|
| @@ -5076,7 +4964,6 @@ class UnboxInteger32Instr : public UnboxIntegerInstr {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxInteger32Instr);
|
| };
|
|
|
| -
|
| class UnboxUint32Instr : public UnboxInteger32Instr {
|
| public:
|
| UnboxUint32Instr(Value* value, intptr_t deopt_id)
|
| @@ -5094,7 +4981,6 @@ class UnboxUint32Instr : public UnboxInteger32Instr {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxUint32Instr);
|
| };
|
|
|
| -
|
| class UnboxInt32Instr : public UnboxInteger32Instr {
|
| public:
|
| UnboxInt32Instr(TruncationMode truncation_mode,
|
| @@ -5114,7 +5000,6 @@ class UnboxInt32Instr : public UnboxInteger32Instr {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxInt32Instr);
|
| };
|
|
|
| -
|
| class UnboxInt64Instr : public UnboxIntegerInstr {
|
| public:
|
| UnboxInt64Instr(Value* value, intptr_t deopt_id)
|
| @@ -5128,13 +5013,11 @@ class UnboxInt64Instr : public UnboxIntegerInstr {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxInt64Instr);
|
| };
|
|
|
| -
|
| bool Definition::IsMintDefinition() {
|
| return (Type()->ToCid() == kMintCid) || IsBinaryMintOp() || IsUnaryMintOp() ||
|
| IsShiftMintOp() || IsBoxInt64() || IsUnboxInt64();
|
| }
|
|
|
| -
|
| class MathUnaryInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| enum MathUnaryKind {
|
| @@ -5184,7 +5067,6 @@ class MathUnaryInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(MathUnaryInstr);
|
| };
|
|
|
| -
|
| // Calls into the runtime and performs a case-insensitive comparison of the
|
| // UTF16 strings (i.e. TwoByteString or ExternalTwoByteString) located at
|
| // str[lhs_index:lhs_index + length] and str[rhs_index:rhs_index + length].
|
| @@ -5235,7 +5117,6 @@ class CaseInsensitiveCompareUC16Instr
|
| DISALLOW_COPY_AND_ASSIGN(CaseInsensitiveCompareUC16Instr);
|
| };
|
|
|
| -
|
| // Represents Math's static min and max functions.
|
| class MathMinMaxInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| @@ -5294,7 +5175,6 @@ class MathMinMaxInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(MathMinMaxInstr);
|
| };
|
|
|
| -
|
| class BinaryDoubleOpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| BinaryDoubleOpInstr(Token::Kind op_kind,
|
| @@ -5347,7 +5227,6 @@ class BinaryDoubleOpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(BinaryDoubleOpInstr);
|
| };
|
|
|
| -
|
| class DoubleTestOpInstr : public TemplateComparison<1, NoThrow, Pure> {
|
| public:
|
| DoubleTestOpInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5390,7 +5269,6 @@ class DoubleTestOpInstr : public TemplateComparison<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(DoubleTestOpInstr);
|
| };
|
|
|
| -
|
| class BinaryFloat32x4OpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| BinaryFloat32x4OpInstr(Token::Kind op_kind,
|
| @@ -5437,7 +5315,6 @@ class BinaryFloat32x4OpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(BinaryFloat32x4OpInstr);
|
| };
|
|
|
| -
|
| class Simd32x4ShuffleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Simd32x4ShuffleInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5506,7 +5383,6 @@ class Simd32x4ShuffleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Simd32x4ShuffleInstr);
|
| };
|
|
|
| -
|
| class Simd32x4ShuffleMixInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Simd32x4ShuffleMixInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5568,7 +5444,6 @@ class Simd32x4ShuffleMixInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Simd32x4ShuffleMixInstr);
|
| };
|
|
|
| -
|
| class Float32x4ConstructorInstr : public TemplateDefinition<4, NoThrow, Pure> {
|
| public:
|
| Float32x4ConstructorInstr(Value* value0,
|
| @@ -5614,7 +5489,6 @@ class Float32x4ConstructorInstr : public TemplateDefinition<4, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ConstructorInstr);
|
| };
|
|
|
| -
|
| class Float32x4SplatInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Float32x4SplatInstr(Value* value, intptr_t deopt_id)
|
| @@ -5650,7 +5524,6 @@ class Float32x4SplatInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4SplatInstr);
|
| };
|
|
|
| -
|
| // TODO(vegorov) replace with UnboxedConstantInstr.
|
| class Float32x4ZeroInstr : public TemplateDefinition<0, NoThrow, Pure> {
|
| public:
|
| @@ -5669,7 +5542,6 @@ class Float32x4ZeroInstr : public TemplateDefinition<0, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ZeroInstr);
|
| };
|
|
|
| -
|
| class Float32x4ComparisonInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Float32x4ComparisonInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5716,7 +5588,6 @@ class Float32x4ComparisonInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ComparisonInstr);
|
| };
|
|
|
| -
|
| class Float32x4MinMaxInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Float32x4MinMaxInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5763,7 +5634,6 @@ class Float32x4MinMaxInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4MinMaxInstr);
|
| };
|
|
|
| -
|
| class Float32x4ScaleInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Float32x4ScaleInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5813,7 +5683,6 @@ class Float32x4ScaleInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ScaleInstr);
|
| };
|
|
|
| -
|
| class Float32x4SqrtInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Float32x4SqrtInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5857,7 +5726,6 @@ class Float32x4SqrtInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4SqrtInstr);
|
| };
|
|
|
| -
|
| // TODO(vegorov) rename to Unary to match naming convention for arithmetic.
|
| class Float32x4ZeroArgInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| @@ -5902,7 +5770,6 @@ class Float32x4ZeroArgInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ZeroArgInstr);
|
| };
|
|
|
| -
|
| class Float32x4ClampInstr : public TemplateDefinition<3, NoThrow, Pure> {
|
| public:
|
| Float32x4ClampInstr(Value* left,
|
| @@ -5945,7 +5812,6 @@ class Float32x4ClampInstr : public TemplateDefinition<3, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ClampInstr);
|
| };
|
|
|
| -
|
| class Float32x4WithInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Float32x4WithInstr(MethodRecognizer::Kind op_kind,
|
| @@ -5995,7 +5861,6 @@ class Float32x4WithInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4WithInstr);
|
| };
|
|
|
| -
|
| class Simd64x2ShuffleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Simd64x2ShuffleInstr(MethodRecognizer::Kind op_kind,
|
| @@ -6056,7 +5921,6 @@ class Simd64x2ShuffleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Simd64x2ShuffleInstr);
|
| };
|
|
|
| -
|
| class Float32x4ToInt32x4Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Float32x4ToInt32x4Instr(Value* left, intptr_t deopt_id)
|
| @@ -6092,7 +5956,6 @@ class Float32x4ToInt32x4Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ToInt32x4Instr);
|
| };
|
|
|
| -
|
| class Float32x4ToFloat64x2Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Float32x4ToFloat64x2Instr(Value* left, intptr_t deopt_id)
|
| @@ -6128,7 +5991,6 @@ class Float32x4ToFloat64x2Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float32x4ToFloat64x2Instr);
|
| };
|
|
|
| -
|
| class Float64x2ToFloat32x4Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Float64x2ToFloat32x4Instr(Value* left, intptr_t deopt_id)
|
| @@ -6164,7 +6026,6 @@ class Float64x2ToFloat32x4Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float64x2ToFloat32x4Instr);
|
| };
|
|
|
| -
|
| class Float64x2ConstructorInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Float64x2ConstructorInstr(Value* value0, Value* value1, intptr_t deopt_id)
|
| @@ -6202,7 +6063,6 @@ class Float64x2ConstructorInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float64x2ConstructorInstr);
|
| };
|
|
|
| -
|
| class Float64x2SplatInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Float64x2SplatInstr(Value* value, intptr_t deopt_id)
|
| @@ -6238,7 +6098,6 @@ class Float64x2SplatInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float64x2SplatInstr);
|
| };
|
|
|
| -
|
| class Float64x2ZeroInstr : public TemplateDefinition<0, NoThrow, Pure> {
|
| public:
|
| Float64x2ZeroInstr() {}
|
| @@ -6256,7 +6115,6 @@ class Float64x2ZeroInstr : public TemplateDefinition<0, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float64x2ZeroInstr);
|
| };
|
|
|
| -
|
| // TODO(vegorov) rename to Unary to match arithmetic instructions.
|
| class Float64x2ZeroArgInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| @@ -6307,7 +6165,6 @@ class Float64x2ZeroArgInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float64x2ZeroArgInstr);
|
| };
|
|
|
| -
|
| class Float64x2OneArgInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Float64x2OneArgInstr(MethodRecognizer::Kind op_kind,
|
| @@ -6362,7 +6219,6 @@ class Float64x2OneArgInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Float64x2OneArgInstr);
|
| };
|
|
|
| -
|
| class Int32x4ConstructorInstr : public TemplateDefinition<4, NoThrow, Pure> {
|
| public:
|
| Int32x4ConstructorInstr(Value* value0,
|
| @@ -6408,7 +6264,6 @@ class Int32x4ConstructorInstr : public TemplateDefinition<4, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Int32x4ConstructorInstr);
|
| };
|
|
|
| -
|
| class Int32x4BoolConstructorInstr
|
| : public TemplateDefinition<4, NoThrow, Pure> {
|
| public:
|
| @@ -6455,7 +6310,6 @@ class Int32x4BoolConstructorInstr
|
| DISALLOW_COPY_AND_ASSIGN(Int32x4BoolConstructorInstr);
|
| };
|
|
|
| -
|
| class Int32x4GetFlagInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Int32x4GetFlagInstr(MethodRecognizer::Kind op_kind,
|
| @@ -6499,7 +6353,6 @@ class Int32x4GetFlagInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Int32x4GetFlagInstr);
|
| };
|
|
|
| -
|
| class Simd32x4GetSignMaskInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Simd32x4GetSignMaskInstr(MethodRecognizer::Kind op_kind,
|
| @@ -6547,7 +6400,6 @@ class Simd32x4GetSignMaskInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Simd32x4GetSignMaskInstr);
|
| };
|
|
|
| -
|
| class Int32x4SelectInstr : public TemplateDefinition<3, NoThrow, Pure> {
|
| public:
|
| Int32x4SelectInstr(Value* mask,
|
| @@ -6593,7 +6445,6 @@ class Int32x4SelectInstr : public TemplateDefinition<3, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Int32x4SelectInstr);
|
| };
|
|
|
| -
|
| class Int32x4SetFlagInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| Int32x4SetFlagInstr(MethodRecognizer::Kind op_kind,
|
| @@ -6643,7 +6494,6 @@ class Int32x4SetFlagInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Int32x4SetFlagInstr);
|
| };
|
|
|
| -
|
| class Int32x4ToFloat32x4Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| Int32x4ToFloat32x4Instr(Value* left, intptr_t deopt_id)
|
| @@ -6679,7 +6529,6 @@ class Int32x4ToFloat32x4Instr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Int32x4ToFloat32x4Instr);
|
| };
|
|
|
| -
|
| class BinaryInt32x4OpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| BinaryInt32x4OpInstr(Token::Kind op_kind,
|
| @@ -6726,7 +6575,6 @@ class BinaryInt32x4OpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(BinaryInt32x4OpInstr);
|
| };
|
|
|
| -
|
| class BinaryFloat64x2OpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| BinaryFloat64x2OpInstr(Token::Kind op_kind,
|
| @@ -6773,7 +6621,6 @@ class BinaryFloat64x2OpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(BinaryFloat64x2OpInstr);
|
| };
|
|
|
| -
|
| class UnaryIntegerOpInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| UnaryIntegerOpInstr(Token::Kind op_kind, Value* value, intptr_t deopt_id)
|
| @@ -6811,7 +6658,6 @@ class UnaryIntegerOpInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| const Token::Kind op_kind_;
|
| };
|
|
|
| -
|
| // Handles both Smi operations: BIT_OR and NEGATE.
|
| class UnarySmiOpInstr : public UnaryIntegerOpInstr {
|
| public:
|
| @@ -6830,7 +6676,6 @@ class UnarySmiOpInstr : public UnaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(UnarySmiOpInstr);
|
| };
|
|
|
| -
|
| class UnaryUint32OpInstr : public UnaryIntegerOpInstr {
|
| public:
|
| UnaryUint32OpInstr(Token::Kind op_kind, Value* value, intptr_t deopt_id)
|
| @@ -6855,7 +6700,6 @@ class UnaryUint32OpInstr : public UnaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(UnaryUint32OpInstr);
|
| };
|
|
|
| -
|
| class UnaryMintOpInstr : public UnaryIntegerOpInstr {
|
| public:
|
| UnaryMintOpInstr(Token::Kind op_kind, Value* value, intptr_t deopt_id)
|
| @@ -6880,7 +6724,6 @@ class UnaryMintOpInstr : public UnaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(UnaryMintOpInstr);
|
| };
|
|
|
| -
|
| class CheckedSmiOpInstr : public TemplateDefinition<2, Throws> {
|
| public:
|
| CheckedSmiOpInstr(Token::Kind op_kind,
|
| @@ -6914,7 +6757,6 @@ class CheckedSmiOpInstr : public TemplateDefinition<2, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckedSmiOpInstr);
|
| };
|
|
|
| -
|
| class CheckedSmiComparisonInstr : public TemplateComparison<2, Throws> {
|
| public:
|
| CheckedSmiComparisonInstr(Token::Kind op_kind,
|
| @@ -6969,7 +6811,6 @@ class CheckedSmiComparisonInstr : public TemplateComparison<2, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckedSmiComparisonInstr);
|
| };
|
|
|
| -
|
| class BinaryIntegerOpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| BinaryIntegerOpInstr(Token::Kind op_kind,
|
| @@ -7021,7 +6862,6 @@ class BinaryIntegerOpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
|
|
| virtual intptr_t DeoptimizationTarget() const { return GetDeoptId(); }
|
|
|
| -
|
| PRINT_OPERANDS_TO_SUPPORT
|
|
|
| DEFINE_INSTRUCTION_TYPE_CHECK(BinaryIntegerOp)
|
| @@ -7040,7 +6880,6 @@ class BinaryIntegerOpInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| bool is_truncating_;
|
| };
|
|
|
| -
|
| class BinarySmiOpInstr : public BinaryIntegerOpInstr {
|
| public:
|
| BinarySmiOpInstr(Token::Kind op_kind,
|
| @@ -7065,7 +6904,6 @@ class BinarySmiOpInstr : public BinaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(BinarySmiOpInstr);
|
| };
|
|
|
| -
|
| class BinaryInt32OpInstr : public BinaryIntegerOpInstr {
|
| public:
|
| BinaryInt32OpInstr(Token::Kind op_kind,
|
| @@ -7122,7 +6960,6 @@ class BinaryInt32OpInstr : public BinaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(BinaryInt32OpInstr);
|
| };
|
|
|
| -
|
| class BinaryUint32OpInstr : public BinaryIntegerOpInstr {
|
| public:
|
| BinaryUint32OpInstr(Token::Kind op_kind,
|
| @@ -7150,7 +6987,6 @@ class BinaryUint32OpInstr : public BinaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(BinaryUint32OpInstr);
|
| };
|
|
|
| -
|
| class ShiftUint32OpInstr : public BinaryIntegerOpInstr {
|
| public:
|
| ShiftUint32OpInstr(Token::Kind op_kind,
|
| @@ -7178,7 +7014,6 @@ class ShiftUint32OpInstr : public BinaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(ShiftUint32OpInstr);
|
| };
|
|
|
| -
|
| class BinaryMintOpInstr : public BinaryIntegerOpInstr {
|
| public:
|
| BinaryMintOpInstr(Token::Kind op_kind,
|
| @@ -7226,7 +7061,6 @@ class BinaryMintOpInstr : public BinaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(BinaryMintOpInstr);
|
| };
|
|
|
| -
|
| class ShiftMintOpInstr : public BinaryIntegerOpInstr {
|
| public:
|
| ShiftMintOpInstr(Token::Kind op_kind,
|
| @@ -7272,7 +7106,6 @@ class ShiftMintOpInstr : public BinaryIntegerOpInstr {
|
| DISALLOW_COPY_AND_ASSIGN(ShiftMintOpInstr);
|
| };
|
|
|
| -
|
| // Handles only NEGATE.
|
| class UnaryDoubleOpInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| @@ -7313,7 +7146,6 @@ class UnaryDoubleOpInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(UnaryDoubleOpInstr);
|
| };
|
|
|
| -
|
| class CheckStackOverflowInstr : public TemplateInstruction<0, NoThrow> {
|
| public:
|
| enum Kind {
|
| @@ -7360,7 +7192,6 @@ class CheckStackOverflowInstr : public TemplateInstruction<0, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckStackOverflowInstr);
|
| };
|
|
|
| -
|
| // TODO(vegorov): remove this instruction in favor of Int32ToDouble.
|
| class SmiToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| @@ -7387,7 +7218,6 @@ class SmiToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(SmiToDoubleInstr);
|
| };
|
|
|
| -
|
| class Int32ToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| explicit Int32ToDoubleInstr(Value* value) { SetInputAt(0, value); }
|
| @@ -7412,7 +7242,6 @@ class Int32ToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(Int32ToDoubleInstr);
|
| };
|
|
|
| -
|
| class MintToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| MintToDoubleInstr(Value* value, intptr_t deopt_id)
|
| @@ -7445,7 +7274,6 @@ class MintToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(MintToDoubleInstr);
|
| };
|
|
|
| -
|
| class DoubleToIntegerInstr : public TemplateDefinition<1, Throws> {
|
| public:
|
| DoubleToIntegerInstr(Value* value, InstanceCallInstr* instance_call)
|
| @@ -7472,7 +7300,6 @@ class DoubleToIntegerInstr : public TemplateDefinition<1, Throws> {
|
| DISALLOW_COPY_AND_ASSIGN(DoubleToIntegerInstr);
|
| };
|
|
|
| -
|
| // Similar to 'DoubleToIntegerInstr' but expects unboxed double as input
|
| // and creates a Smi.
|
| class DoubleToSmiInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| @@ -7502,7 +7329,6 @@ class DoubleToSmiInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(DoubleToSmiInstr);
|
| };
|
|
|
| -
|
| class DoubleToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| DoubleToDoubleInstr(Value* value,
|
| @@ -7540,7 +7366,6 @@ class DoubleToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(DoubleToDoubleInstr);
|
| };
|
|
|
| -
|
| class DoubleToFloatInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| DoubleToFloatInstr(Value* value, intptr_t deopt_id)
|
| @@ -7579,7 +7404,6 @@ class DoubleToFloatInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(DoubleToFloatInstr);
|
| };
|
|
|
| -
|
| class FloatToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| FloatToDoubleInstr(Value* value, intptr_t deopt_id)
|
| @@ -7612,7 +7436,6 @@ class FloatToDoubleInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(FloatToDoubleInstr);
|
| };
|
|
|
| -
|
| class InvokeMathCFunctionInstr : public PureDefinition {
|
| public:
|
| InvokeMathCFunctionInstr(ZoneGrowableArray<Value*>* inputs,
|
| @@ -7671,7 +7494,6 @@ class InvokeMathCFunctionInstr : public PureDefinition {
|
| DISALLOW_COPY_AND_ASSIGN(InvokeMathCFunctionInstr);
|
| };
|
|
|
| -
|
| class ExtractNthOutputInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| public:
|
| // Extract the Nth output register from value.
|
| @@ -7720,7 +7542,6 @@ class ExtractNthOutputInstr : public TemplateDefinition<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(ExtractNthOutputInstr);
|
| };
|
|
|
| -
|
| class TruncDivModInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| public:
|
| TruncDivModInstr(Value* lhs, Value* rhs, intptr_t deopt_id);
|
| @@ -7762,7 +7583,6 @@ class TruncDivModInstr : public TemplateDefinition<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(TruncDivModInstr);
|
| };
|
|
|
| -
|
| class CheckClassInstr : public TemplateInstruction<1, NoThrow> {
|
| public:
|
| CheckClassInstr(Value* value,
|
| @@ -7825,7 +7645,6 @@ class CheckClassInstr : public TemplateInstruction<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckClassInstr);
|
| };
|
|
|
| -
|
| class CheckSmiInstr : public TemplateInstruction<1, NoThrow, Pure> {
|
| public:
|
| CheckSmiInstr(Value* value, intptr_t deopt_id, TokenPosition token_pos)
|
| @@ -7856,7 +7675,6 @@ class CheckSmiInstr : public TemplateInstruction<1, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckSmiInstr);
|
| };
|
|
|
| -
|
| class CheckClassIdInstr : public TemplateInstruction<1, NoThrow> {
|
| public:
|
| CheckClassIdInstr(Value* value, CidRange cids, intptr_t deopt_id)
|
| @@ -7888,7 +7706,6 @@ class CheckClassIdInstr : public TemplateInstruction<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckClassIdInstr);
|
| };
|
|
|
| -
|
| class CheckArrayBoundInstr : public TemplateInstruction<2, NoThrow, Pure> {
|
| public:
|
| CheckArrayBoundInstr(Value* length, Value* index, intptr_t deopt_id)
|
| @@ -7931,7 +7748,6 @@ class CheckArrayBoundInstr : public TemplateInstruction<2, NoThrow, Pure> {
|
| DISALLOW_COPY_AND_ASSIGN(CheckArrayBoundInstr);
|
| };
|
|
|
| -
|
| class GenericCheckBoundInstr : public TemplateInstruction<2, Throws, NoCSE> {
|
| public:
|
| GenericCheckBoundInstr(Value* length, Value* index, intptr_t deopt_id)
|
| @@ -7957,7 +7773,6 @@ class GenericCheckBoundInstr : public TemplateInstruction<2, Throws, NoCSE> {
|
| DISALLOW_COPY_AND_ASSIGN(GenericCheckBoundInstr);
|
| };
|
|
|
| -
|
| class UnboxedIntConverterInstr : public TemplateDefinition<1, NoThrow> {
|
| public:
|
| UnboxedIntConverterInstr(Representation from,
|
| @@ -8023,7 +7838,6 @@ class UnboxedIntConverterInstr : public TemplateDefinition<1, NoThrow> {
|
| DISALLOW_COPY_AND_ASSIGN(UnboxedIntConverterInstr);
|
| };
|
|
|
| -
|
| #undef DECLARE_INSTRUCTION
|
|
|
| class Environment : public ZoneAllocated {
|
| @@ -8234,7 +8048,6 @@ class Environment : public ZoneAllocated {
|
| parsed_function_(parsed_function),
|
| outer_(outer) {}
|
|
|
| -
|
| GrowableArray<Value*> values_;
|
| Location* locations_;
|
| const intptr_t fixed_parameter_count_;
|
| @@ -8245,7 +8058,6 @@ class Environment : public ZoneAllocated {
|
| DISALLOW_COPY_AND_ASSIGN(Environment);
|
| };
|
|
|
| -
|
| // Visitor base class to visit each instruction and computation in a flow
|
| // graph as defined by a reversed list of basic blocks.
|
| class FlowGraphVisitor : public ValueObject {
|
| @@ -8279,7 +8091,6 @@ class FlowGraphVisitor : public ValueObject {
|
| DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor);
|
| };
|
|
|
| -
|
| // Helper macros for platform ports.
|
| #define DEFINE_UNIMPLEMENTED_INSTRUCTION(Name) \
|
| LocationSummary* Name::MakeLocationSummary(Zone* zone, bool opt) const { \
|
| @@ -8288,7 +8099,6 @@ class FlowGraphVisitor : public ValueObject {
|
| } \
|
| void Name::EmitNativeCode(FlowGraphCompiler* compiler) { UNIMPLEMENTED(); }
|
|
|
| -
|
| } // namespace dart
|
|
|
| #endif // RUNTIME_VM_INTERMEDIATE_LANGUAGE_H_
|
|
|