46 lines · cpp
1//===-- AVRSubtarget.cpp - AVR Subtarget Information ----------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file implements the AVR specific subclass of TargetSubtargetInfo.10//11//===----------------------------------------------------------------------===//12 13#include "AVRSubtarget.h"14 15#include "llvm/BinaryFormat/ELF.h"16#include "llvm/MC/TargetRegistry.h"17 18#include "AVR.h"19#include "AVRTargetMachine.h"20 21#define DEBUG_TYPE "avr-subtarget"22 23#define GET_SUBTARGETINFO_TARGET_DESC24#define GET_SUBTARGETINFO_CTOR25#include "AVRGenSubtargetInfo.inc"26 27namespace llvm {28 29AVRSubtarget::AVRSubtarget(const Triple &TT, const std::string &CPU,30 const std::string &FS, const AVRTargetMachine &TM)31 : AVRGenSubtargetInfo(TT, CPU, /*TuneCPU*/ CPU, FS), InstrInfo(*this),32 TLInfo(TM, initializeSubtargetDependencies(CPU, FS, TM)) {33 // Parse features string.34 ParseSubtargetFeatures(CPU, /*TuneCPU*/ CPU, FS);35}36 37AVRSubtarget &38AVRSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS,39 const TargetMachine &TM) {40 // Parse features string.41 ParseSubtargetFeatures(CPU, /*TuneCPU*/ CPU, FS);42 return *this;43}44 45} // end of namespace llvm46