LLVM 22.0.0git
ARCSubtarget.cpp
Go to the documentation of this file.
1//===- ARCSubtarget.cpp - ARC Subtarget Information -------------*- C++ -*-===//
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 ARC specific subclass of TargetSubtargetInfo.
10//
11//===----------------------------------------------------------------------===//
12
13#include "ARCSubtarget.h"
14#include "ARC.h"
15#include "ARCSelectionDAGInfo.h"
17
18using namespace llvm;
19
20#define DEBUG_TYPE "arc-subtarget"
21
22#define GET_SUBTARGETINFO_TARGET_DESC
23#define GET_SUBTARGETINFO_CTOR
24#include "ARCGenSubtargetInfo.inc"
25
26void ARCSubtarget::anchor() {}
27
28ARCSubtarget::ARCSubtarget(const Triple &TT, const std::string &CPU,
29 const std::string &FS, const TargetMachine &TM)
30 : ARCGenSubtargetInfo(TT, CPU, /*TuneCPU=*/CPU, FS), InstrInfo(*this),
31 FrameLowering(*this), TLInfo(TM, *this) {
32 TSInfo = std::make_unique<ARCSelectionDAGInfo>();
33}
34
36
38 return TSInfo.get();
39}
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
~ARCSubtarget() override
ARCSubtarget(const Triple &TT, const std::string &CPU, const std::string &FS, const TargetMachine &TM)
This constructor initializes the data members to match that of the specified triple.
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
Primary interface to the complete machine description for the target machine.
Definition: TargetMachine.h:83
Triple - Helper class for working with autoconf configuration names.
Definition: Triple.h:47
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18