Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/Target/Xtensa/XtensaSubtarget.cpp
35271 views
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-exception
6
//
7
//===----------------------------------------------------------------------===//
8
//
9
// This file implements the Xtensa specific subclass of TargetSubtargetInfo.
10
//
11
//===----------------------------------------------------------------------===//
12
13
#include "XtensaSubtarget.h"
14
#include "llvm/IR/GlobalValue.h"
15
#include "llvm/Support/Debug.h"
16
17
#define DEBUG_TYPE "xtensa-subtarget"
18
19
#define GET_SUBTARGETINFO_TARGET_DESC
20
#define GET_SUBTARGETINFO_CTOR
21
#include "XtensaGenSubtargetInfo.inc"
22
23
using namespace llvm;
24
25
XtensaSubtarget &
26
XtensaSubtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS) {
27
StringRef CPUName = CPU;
28
if (CPUName.empty()) {
29
// set default cpu name
30
CPUName = "generic";
31
}
32
33
HasDensity = false;
34
35
// Parse features string.
36
ParseSubtargetFeatures(CPUName, CPUName, FS);
37
return *this;
38
}
39
40
XtensaSubtarget::XtensaSubtarget(const Triple &TT, StringRef CPU, StringRef FS,
41
const TargetMachine &TM)
42
: XtensaGenSubtargetInfo(TT, CPU, /*TuneCPU=*/CPU, FS), TargetTriple(TT),
43
InstrInfo(initializeSubtargetDependencies(CPU, FS)), TLInfo(TM, *this),
44
TSInfo(), FrameLowering(*this) {}
45
46