llvm/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp

//===- R600ControlFlowFinalizer.cpp - Finalize Control Flow Inst ----------===//
//
// 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 pass compute turns all control flow pseudo instructions into native one
/// computing their address on the fly; it also sets STACK_SIZE info.
//
//===----------------------------------------------------------------------===//

#include "MCTargetDesc/R600MCTargetDesc.h"
#include "R600.h"
#include "R600MachineFunctionInfo.h"
#include "R600Subtarget.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include <set>

usingnamespacellvm;

#define DEBUG_TYPE

namespace {

struct CFStack {};

unsigned CFStack::getLoopDepth() {}

bool CFStack::branchStackContains(CFStack::StackItem Item) {}

bool CFStack::requiresWorkAroundForInst(unsigned Opcode) {}

unsigned CFStack::getSubEntrySize(CFStack::StackItem Item) {}

void CFStack::updateMaxStackSize() {}

void CFStack::pushBranch(unsigned Opcode, bool isWQM) {}

void CFStack::pushLoop() {}

void CFStack::popBranch() {}

void CFStack::popLoop() {}

class R600ControlFlowFinalizer : public MachineFunctionPass {};

} // end anonymous namespace

INITIALIZE_PASS_BEGIN(R600ControlFlowFinalizer, DEBUG_TYPE,
                     "R600 Control Flow Finalizer", false, false)
INITIALIZE_PASS_END(R600ControlFlowFinalizer, DEBUG_TYPE,
                    "R600 Control Flow Finalizer", false, false)

char R600ControlFlowFinalizer::ID =;

char &llvm::R600ControlFlowFinalizerID =;

FunctionPass *llvm::createR600ControlFlowFinalizer() {}