AMDGPU: Mark test as XFAIL in expensive_checks builds
[llvm-project.git] / llvm / lib / Target / ARM / ARM.td
blob570aae9b3c7a769b59e988eb11323894db41d920
1 //===-- ARM.td - Describe the ARM Target Machine -----------*- tablegen -*-===//
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 //
10 //===----------------------------------------------------------------------===//
12 //===----------------------------------------------------------------------===//
13 // Target-independent interfaces which we are implementing
14 //===----------------------------------------------------------------------===//
16 include "llvm/Target/Target.td"
18 include "ARMFeatures.td"
19 include "ARMArchitectures.td"
21 //===----------------------------------------------------------------------===//
22 // Register File Description
23 //===----------------------------------------------------------------------===//
25 include "ARMRegisterInfo.td"
26 include "ARMRegisterBanks.td"
27 include "ARMCallingConv.td"
29 //===----------------------------------------------------------------------===//
30 // ARM schedules.
31 //===----------------------------------------------------------------------===//
33 include "ARMPredicates.td"
34 include "ARMSchedule.td"
36 //===----------------------------------------------------------------------===//
37 // Instruction Descriptions
38 //===----------------------------------------------------------------------===//
40 include "ARMInstrInfo.td"
41 def ARMInstrInfo : InstrInfo;
43 //===----------------------------------------------------------------------===//
44 // ARM schedules
46 include "ARMScheduleV6.td"
47 include "ARMScheduleA8.td"
48 include "ARMScheduleA9.td"
49 include "ARMScheduleSwift.td"
50 include "ARMScheduleR52.td"
51 include "ARMScheduleA57.td"
52 include "ARMScheduleM4.td"
53 include "ARMScheduleM55.td"
54 include "ARMScheduleM7.td"
55 include "ARMScheduleM85.td"
57 include "ARMProcessors.td"
59 //===----------------------------------------------------------------------===//
60 // Declare the target which we are implementing
61 //===----------------------------------------------------------------------===//
63 def ARMAsmWriter : AsmWriter {
64   string AsmWriterClassName  = "InstPrinter";
65   int PassSubtarget = 1;
66   int Variant = 0;
67   bit isMCAsmWriter = 1;
70 def ARMAsmParser : AsmParser {
71   bit ReportMultipleNearMisses = 1;
72   let PreferSmallerInstructions = true;
75 def ARMAsmParserVariant : AsmParserVariant {
76   int Variant = 0;
77   string Name = "ARM";
78   string BreakCharacters = ".";
81 def ARM : Target {
82   // Pull in Instruction Info.
83   let InstructionSet = ARMInstrInfo;
84   let AssemblyWriters = [ARMAsmWriter];
85   let AssemblyParsers = [ARMAsmParser];
86   let AssemblyParserVariants = [ARMAsmParserVariant];
87   let AllowRegisterRenaming = 1;