Path: blob/main/contrib/llvm-project/llvm/lib/Target/X86/GISel/X86LegalizerInfo.h
35294 views
//===- X86LegalizerInfo.h ------------------------------------------*- C++1//-*-==//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-exception6//7//===----------------------------------------------------------------------===//8/// \file9/// This file declares the targeting of the Machinelegalizer class for X86.10/// \todo This should be generated by TableGen.11//===----------------------------------------------------------------------===//1213#ifndef LLVM_LIB_TARGET_X86_X86MACHINELEGALIZER_H14#define LLVM_LIB_TARGET_X86_X86MACHINELEGALIZER_H1516#include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"1718namespace llvm {1920class X86Subtarget;21class X86TargetMachine;2223class X86LegalizerInfo : public LegalizerInfo {24private:25/// Keep a reference to the X86Subtarget around so that we can26/// make the right decision when generating code for different targets.27const X86Subtarget &Subtarget;2829public:30X86LegalizerInfo(const X86Subtarget &STI, const X86TargetMachine &TM);3132bool legalizeCustom(LegalizerHelper &Helper, MachineInstr &MI,33LostDebugLocObserver &LocObserver) const override;3435bool legalizeIntrinsic(LegalizerHelper &Helper,36MachineInstr &MI) const override;3738private:39bool legalizeBuildVector(MachineInstr &MI, MachineRegisterInfo &MRI,40LegalizerHelper &Helper) const;41};42} // namespace llvm43#endif444546