#ifndef V8_COMPILER_BACKEND_INSTRUCTION_SELECTOR_H_
#define V8_COMPILER_BACKEND_INSTRUCTION_SELECTOR_H_
#include <map>
#include <optional>
#include "src/codegen/cpu-features.h"
#include "src/codegen/machine-type.h"
#include "src/compiler/backend/instruction-scheduler.h"
#include "src/compiler/backend/instruction-selector-adapter.h"
#include "src/compiler/backend/instruction.h"
#include "src/compiler/common-operator.h"
#include "src/compiler/feedback-source.h"
#include "src/compiler/linkage.h"
#include "src/compiler/machine-operator.h"
#include "src/compiler/node-matchers.h"
#include "src/compiler/node.h"
#include "src/compiler/turboshaft/operations.h"
#include "src/compiler/turboshaft/representations.h"
#include "src/compiler/turboshaft/utils.h"
#include "src/utils/bit-vector.h"
#include "src/zone/zone-containers.h"
#if V8_ENABLE_WEBASSEMBLY
#include "src/wasm/simd-shuffle.h"
#endif
namespace v8 {
namespace internal {
class TickCounter;
namespace compiler {
class BasicBlock;
template <typename Adapter>
struct CallBufferT;
template <typename Adapter>
class InstructionSelectorT;
class Linkage;
template <typename Adapter>
class OperandGeneratorT;
template <typename Adapter>
class SwitchInfoT;
template <typename Adapter>
struct CaseInfoT;
class TurbofanStateObjectDeduplicator;
class TurboshaftStateObjectDeduplicator;
class V8_EXPORT_PRIVATE InstructionSelector final { … };
template <typename Adapter>
class FlagsContinuationT final { … };
template <typename Adapter>
struct PushParameterT { … };
enum class FrameStateInputKind { … };
template <typename Adapter>
class InstructionSelectorT final : public Adapter { … };
}
}
}
#endif