#include "src/compiler/turboshaft/maglev-graph-building-phase.h"
#include <limits>
#include <memory>
#include <optional>
#include <type_traits>
#include "src/base/logging.h"
#include "src/base/small-vector.h"
#include "src/base/vector.h"
#include "src/codegen/bailout-reason.h"
#include "src/codegen/optimized-compilation-info.h"
#include "src/common/globals.h"
#include "src/compiler/access-builder.h"
#include "src/compiler/bytecode-analysis.h"
#include "src/compiler/bytecode-liveness-map.h"
#include "src/compiler/frame-states.h"
#include "src/compiler/globals.h"
#include "src/compiler/js-heap-broker.h"
#include "src/compiler/turboshaft/assembler.h"
#include "src/compiler/turboshaft/graph.h"
#include "src/compiler/turboshaft/index.h"
#include "src/compiler/turboshaft/machine-optimization-reducer.h"
#include "src/compiler/turboshaft/maglev-early-lowering-reducer-inl.h"
#include "src/compiler/turboshaft/operations.h"
#include "src/compiler/turboshaft/phase.h"
#include "src/compiler/turboshaft/representations.h"
#include "src/compiler/turboshaft/required-optimization-reducer.h"
#include "src/compiler/turboshaft/sidetable.h"
#include "src/compiler/turboshaft/utils.h"
#include "src/compiler/turboshaft/value-numbering-reducer.h"
#include "src/compiler/turboshaft/variable-reducer.h"
#include "src/compiler/write-barrier-kind.h"
#include "src/deoptimizer/deoptimize-reason.h"
#include "src/handles/global-handles-inl.h"
#include "src/handles/handles.h"
#include "src/interpreter/bytecode-register.h"
#include "src/maglev/maglev-basic-block.h"
#include "src/maglev/maglev-compilation-info.h"
#include "src/maglev/maglev-compilation-unit.h"
#include "src/maglev/maglev-graph-builder.h"
#include "src/maglev/maglev-graph-labeller.h"
#include "src/maglev/maglev-graph-processor.h"
#include "src/maglev/maglev-graph-verifier.h"
#include "src/maglev/maglev-ir-inl.h"
#include "src/maglev/maglev-ir.h"
#include "src/maglev/maglev-phi-representation-selector.h"
#include "src/maglev/maglev-post-hoc-optimizations-processors.h"
#include "src/objects/elements-kind.h"
#include "src/objects/heap-object.h"
#include "src/objects/js-array-buffer.h"
#include "src/objects/objects.h"
#include "src/zone/zone-containers.h"
namespace v8::internal::compiler::turboshaft {
#include "src/compiler/turboshaft/define-assembler-macros.inc"
namespace {
MachineType MachineTypeFor(maglev::ValueRepresentation repr) { … }
template <typename K, typename V>
bool MapContains(ZoneUnorderedMap<K, V> map, K key) { … }
int ElementsKindSize(ElementsKind element_kind) { … }
}
template <class Next>
class BlockOriginTrackingReducer : public Next { … };
class GeneratorAnalyzer { … };
#define GET_FRAME_STATE_MAYBE_ABORT(name, deopt_info) …
#define RETURN_IF_UNREACHABLE() …
class GraphBuilder { … };
class NodeProcessorBase : public GraphBuilder { … };
void PrintBytecode(PipelineData& data,
maglev::MaglevCompilationInfo* compilation_info) { … }
void PrintMaglevGraph(PipelineData& data,
maglev::MaglevCompilationInfo* compilation_info,
maglev::Graph* maglev_graph, const char* msg) { … }
void RunMaglevOptimizations(PipelineData* data,
maglev::MaglevCompilationInfo* compilation_info,
maglev::MaglevGraphBuilder& maglev_graph_builder,
maglev::Graph* maglev_graph) { … }
std::optional<BailoutReason> MaglevGraphBuildingPhase::Run(PipelineData* data,
Zone* temp_zone) { … }
#include "src/compiler/turboshaft/undef-assembler-macros.inc"
}