brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · c1a1efc Raw
52 lines · cpp
1//===- XtensaSubtarget.cpp - Xtensa 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 Xtensa specific subclass of TargetSubtargetInfo.10//11//===----------------------------------------------------------------------===//12 13#include "XtensaSubtarget.h"14#include "XtensaSelectionDAGInfo.h"15#include "llvm/IR/GlobalValue.h"16#include "llvm/Support/Debug.h"17 18#define DEBUG_TYPE "xtensa-subtarget"19 20#define GET_SUBTARGETINFO_TARGET_DESC21#define GET_SUBTARGETINFO_CTOR22#include "XtensaGenSubtargetInfo.inc"23 24using namespace llvm;25 26XtensaSubtarget &27XtensaSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS) {28  StringRef CPUName = CPU;29  if (CPUName.empty()) {30    // set default cpu name31    CPUName = "generic";32  }33 34  // Parse features string.35  ParseSubtargetFeatures(CPUName, CPUName, FS);36  return *this;37}38 39XtensaSubtarget::XtensaSubtarget(const Triple &TT, StringRef CPU, StringRef FS,40                                 const TargetMachine &TM)41    : XtensaGenSubtargetInfo(TT, CPU, /*TuneCPU=*/CPU, FS), TargetTriple(TT),42      InstrInfo(initializeSubtargetDependencies(CPU, FS)), TLInfo(TM, *this),43      FrameLowering(*this) {44  TSInfo = std::make_unique<SelectionDAGTargetInfo>();45}46 47XtensaSubtarget::~XtensaSubtarget() = default;48 49const SelectionDAGTargetInfo *XtensaSubtarget::getSelectionDAGInfo() const {50  return TSInfo.get();51}52