LLVM 24.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"
16#include "ARCTargetMachine.h"
19
20using namespace llvm;
21
22#define DEBUG_TYPE "arc-subtarget"
23
24#define GET_SUBTARGETINFO_TARGET_DESC
25#define GET_SUBTARGETINFO_CTOR
26#include "ARCGenSubtargetInfo.inc"
27
28#define OPTIONS_STRUCT_DEFS
29#include "ARCOptions.inc"
30
31void ARCSubtarget::anchor() {}
32
33ARCSubtarget::ARCSubtarget(const Triple &TT, const std::string &CPU,
34 const std::string &FS, const ARCTargetMachine &TM)
35 : ARCGenSubtargetInfo(TT, CPU, /*TuneCPU=*/CPU, FS), CLOpts(TM.getCLOpts()),
36 InstrInfo(*this), FrameLowering(*this), TLInfo(TM, *this) {
37 TSInfo = std::make_unique<ARCSelectionDAGInfo>();
38}
39
41
43 return TSInfo.get();
44}
ARCSubtarget(const Triple &TT, const std::string &CPU, const std::string &FS, const ARCTargetMachine &TM)
This constructor initializes the data members to match that of the specified triple.
const ARCOptions & getCLOpts() const
const SelectionDAGTargetInfo * getSelectionDAGInfo() const override
~ARCSubtarget() override
Targets can subclass this to parameterize the SelectionDAG lowering and instruction selection process...
Triple - Helper class for working with autoconf configuration names.
Definition Triple.h:48
This is an optimization pass for GlobalISel generic memory operations.