llvm/llvm/lib/Target/AMDGPU/AMDGPUExportClustering.cpp

//===--- AMDGPUExportClusting.cpp - AMDGPU Export Clustering  -------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
/// \file This file contains a DAG scheduling mutation to cluster shader
///       exports.
//
//===----------------------------------------------------------------------===//

#include "AMDGPUExportClustering.h"
#include "MCTargetDesc/AMDGPUMCTargetDesc.h"
#include "SIInstrInfo.h"
#include "llvm/CodeGen/ScheduleDAGInstrs.h"

usingnamespacellvm;

namespace {

class ExportClustering : public ScheduleDAGMutation {};

static bool isExport(const SUnit &SU) {}

static bool isPositionExport(const SIInstrInfo *TII, SUnit *SU) {}

static void sortChain(const SIInstrInfo *TII, SmallVector<SUnit *, 8> &Chain,
                      unsigned PosCount) {}

static void buildCluster(ArrayRef<SUnit *> Exports, ScheduleDAGInstrs *DAG) {}

static void removeExportDependencies(ScheduleDAGInstrs *DAG, SUnit &SU) {}

void ExportClustering::apply(ScheduleDAGInstrs *DAG) {}

} // end namespace

namespace llvm {

std::unique_ptr<ScheduleDAGMutation> createAMDGPUExportClusteringDAGMutation() {}

} // end namespace llvm