// Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package com.android.tools.r8.ir.code;

public interface InstructionVisitor<T> {

  T visit(Add instruction);

  T visit(AlwaysMaterializingDefinition instruction);

  T visit(AlwaysMaterializingNop instruction);

  T visit(AlwaysMaterializingUser instruction);

  T visit(And instruction);

  T visit(Argument instruction);

  T visit(ArrayGet instruction);

  T visit(ArrayLength instruction);

  T visit(ArrayPut instruction);

  T visit(CheckCast instruction);

  T visit(Cmp instruction);

  T visit(ConstClass instruction);

  T visit(ConstMethodHandle instruction);

  T visit(ConstMethodType instruction);

  T visit(ConstNumber instruction);

  T visit(ConstString instruction);

  T visit(DebugLocalRead instruction);

  T visit(DebugLocalsChange instruction);

  T visit(DebugLocalUninitialized instruction);

  T visit(DebugLocalWrite instruction);

  T visit(DebugPosition instruction);

  T visit(DexItemBasedConstString instruction);

  T visit(Div instruction);

  T visit(Dup instruction);

  T visit(Dup2 instruction);

  T visit(Goto instruction);

  T visit(If instruction);

  T visit(Inc instruction);

  T visit(InstanceGet instruction);

  T visit(InstanceOf instruction);

  T visit(InstancePut instruction);

  T visit(InvokeCustom instruction);

  T visit(InvokeDirect instruction);

  T visit(InvokeInterface instruction);

  T visit(InvokeMultiNewArray instruction);

  T visit(InvokeNewArray instruction);

  T visit(InvokePolymorphic instruction);

  T visit(InvokeStatic instruction);

  T visit(InvokeSuper instruction);

  T visit(InvokeVirtual instruction);

  T visit(Load instruction);

  T visit(Monitor instruction);

  T visit(Move instruction);

  T visit(MoveException instruction);

  T visit(Mul instruction);

  T visit(Neg instruction);

  T visit(NewArrayEmpty instruction);

  T visit(NewArrayFilledData instruction);

  T visit(NewInstance instruction);

  T visit(Assume instruction);

  T visit(Not instruction);

  T visit(NumberConversion instruction);

  T visit(Or instruction);

  T visit(Pop instruction);

  T visit(Rem instruction);

  T visit(Return instruction);

  T visit(Shl instruction);

  T visit(Shr instruction);

  T visit(StaticGet instruction);

  T visit(StaticPut instruction);

  T visit(Store instruction);

  T visit(Sub instruction);

  T visit(Swap instruction);

  T visit(Switch instruction);

  T visit(Throw instruction);

  T visit(Ushr instruction);

  T visit(Xor instruction);
}
