Mercurial > hg > CbC > CbC_llvm
comparison lib/Target/ARM/ARMLegalizerInfo.h @ 147:c2174574ed3a
LLVM 10
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 14 Aug 2019 16:55:33 +0900 |
parents | 803732b1fca8 |
children |
comparison
equal
deleted
inserted
replaced
134:3a76565eade5 | 147:c2174574ed3a |
---|---|
1 //===- ARMLegalizerInfo ------------------------------------------*- C++ -*-==// | 1 //===- ARMLegalizerInfo ------------------------------------------*- C++ -*-==// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 // | 4 // See https://llvm.org/LICENSE.txt for license information. |
5 // This file is distributed under the University of Illinois Open Source | 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 // License. See LICENSE.TXT for details. | |
7 // | 6 // |
8 //===----------------------------------------------------------------------===// | 7 //===----------------------------------------------------------------------===// |
9 /// \file | 8 /// \file |
10 /// This file declares the targeting of the Machinelegalizer class for ARM. | 9 /// This file declares the targeting of the Machinelegalizer class for ARM. |
11 /// \todo This should be generated by TableGen. | 10 /// \todo This should be generated by TableGen. |
13 | 12 |
14 #ifndef LLVM_LIB_TARGET_ARM_ARMMACHINELEGALIZER_H | 13 #ifndef LLVM_LIB_TARGET_ARM_ARMMACHINELEGALIZER_H |
15 #define LLVM_LIB_TARGET_ARM_ARMMACHINELEGALIZER_H | 14 #define LLVM_LIB_TARGET_ARM_ARMMACHINELEGALIZER_H |
16 | 15 |
17 #include "llvm/ADT/IndexedMap.h" | 16 #include "llvm/ADT/IndexedMap.h" |
17 #include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h" | |
18 #include "llvm/CodeGen/GlobalISel/LegalizerInfo.h" | 18 #include "llvm/CodeGen/GlobalISel/LegalizerInfo.h" |
19 #include "llvm/CodeGen/RuntimeLibcalls.h" | 19 #include "llvm/CodeGen/RuntimeLibcalls.h" |
20 #include "llvm/IR/Instructions.h" | 20 #include "llvm/IR/Instructions.h" |
21 | 21 |
22 namespace llvm { | 22 namespace llvm { |
27 class ARMLegalizerInfo : public LegalizerInfo { | 27 class ARMLegalizerInfo : public LegalizerInfo { |
28 public: | 28 public: |
29 ARMLegalizerInfo(const ARMSubtarget &ST); | 29 ARMLegalizerInfo(const ARMSubtarget &ST); |
30 | 30 |
31 bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI, | 31 bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI, |
32 MachineIRBuilder &MIRBuilder) const override; | 32 MachineIRBuilder &MIRBuilder, |
33 GISelChangeObserver &Observer) const override; | |
33 | 34 |
34 private: | 35 private: |
35 void setFCmpLibcallsGNU(); | 36 void setFCmpLibcallsGNU(); |
36 void setFCmpLibcallsAEABI(); | 37 void setFCmpLibcallsAEABI(); |
37 | 38 |