llvm/llvm/lib/Target/AVR/AVRTargetMachine.cpp

//===-- AVRTargetMachine.cpp - Define TargetMachine for AVR ---------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
//
// This file defines the AVR specific subclass of TargetMachine.
//
//===----------------------------------------------------------------------===//

#include "AVRTargetMachine.h"

#include "llvm/CodeGen/Passes.h"
#include "llvm/CodeGen/TargetPassConfig.h"
#include "llvm/IR/Module.h"
#include "llvm/MC/TargetRegistry.h"

#include "AVR.h"
#include "AVRMachineFunctionInfo.h"
#include "AVRTargetObjectFile.h"
#include "MCTargetDesc/AVRMCTargetDesc.h"
#include "TargetInfo/AVRTargetInfo.h"

#include <optional>

namespace llvm {

static const char *AVRDataLayout =;

/// Processes a CPU name.
static StringRef getCPU(StringRef CPU) {}

static Reloc::Model getEffectiveRelocModel(std::optional<Reloc::Model> RM) {}

AVRTargetMachine::AVRTargetMachine(const Target &T, const Triple &TT,
                                   StringRef CPU, StringRef FS,
                                   const TargetOptions &Options,
                                   std::optional<Reloc::Model> RM,
                                   std::optional<CodeModel::Model> CM,
                                   CodeGenOptLevel OL, bool JIT)
    :{}

namespace {
/// AVR Code Generator Pass Configuration Options.
class AVRPassConfig : public TargetPassConfig {};
} // namespace

TargetPassConfig *AVRTargetMachine::createPassConfig(PassManagerBase &PM) {}

void AVRPassConfig::addIRPasses() {}

extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAVRTarget() {}

const AVRSubtarget *AVRTargetMachine::getSubtargetImpl() const {}

const AVRSubtarget *AVRTargetMachine::getSubtargetImpl(const Function &) const {}

MachineFunctionInfo *AVRTargetMachine::createMachineFunctionInfo(
    BumpPtrAllocator &Allocator, const Function &F,
    const TargetSubtargetInfo *STI) const {}

//===----------------------------------------------------------------------===//
// Pass Pipeline Configuration
//===----------------------------------------------------------------------===//

bool AVRPassConfig::addInstSelector() {}

void AVRPassConfig::addPreSched2() {}

void AVRPassConfig::addPreEmitPass() {}

} // end of namespace llvm