brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 09c727c Raw
66 lines · c
1//===- X86LegalizerInfo.h ------------------------------------------*- C++2//-*-==//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9/// \file10/// This file declares the targeting of the Machinelegalizer class for X86.11/// \todo This should be generated by TableGen.12//===----------------------------------------------------------------------===//13 14#ifndef LLVM_LIB_TARGET_X86_X86MACHINELEGALIZER_H15#define LLVM_LIB_TARGET_X86_X86MACHINELEGALIZER_H16 17#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"18 19namespace llvm {20 21class X86Subtarget;22class X86TargetMachine;23 24class X86LegalizerInfo : public LegalizerInfo {25private:26  /// Keep a reference to the X86Subtarget around so that we can27  /// make the right decision when generating code for different targets.28  const X86Subtarget &Subtarget;29 30public:31  X86LegalizerInfo(const X86Subtarget &STI, const X86TargetMachine &TM);32 33  bool legalizeCustom(LegalizerHelper &Helper, MachineInstr &MI,34                      LostDebugLocObserver &LocObserver) const override;35 36  bool legalizeIntrinsic(LegalizerHelper &Helper,37                         MachineInstr &MI) const override;38 39private:40  bool legalizeBuildVector(MachineInstr &MI, MachineRegisterInfo &MRI,41                           LegalizerHelper &Helper) const;42 43  bool legalizeFPTOUI(MachineInstr &MI, MachineRegisterInfo &MRI,44                      LegalizerHelper &Helper) const;45 46  bool legalizeUITOFP(MachineInstr &MI, MachineRegisterInfo &MRI,47                      LegalizerHelper &Helper) const;48 49  bool legalizeNarrowingStore(MachineInstr &MI, MachineRegisterInfo &MRI,50                              LegalizerHelper &Helper) const;51 52  bool legalizeSITOFP(MachineInstr &MI, MachineRegisterInfo &MRI,53                      LegalizerHelper &Helper) const;54 55  bool legalizeFPTOSI(MachineInstr &MI, MachineRegisterInfo &MRI,56                      LegalizerHelper &Helper) const;57 58  bool legalizeGETROUNDING(MachineInstr &MI, MachineRegisterInfo &MRI,59                           LegalizerHelper &Helper) const;60 61  bool legalizeSETROUNDING(MachineInstr &MI, MachineRegisterInfo &MRI,62                           LegalizerHelper &Helper) const;63};64} // namespace llvm65#endif66