52 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
| //===- AMDGPULegalizerInfo ---------------------------------------*- C++ -*-==//
 | |
| //
 | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | |
| // See https://llvm.org/LICENSE.txt for license information.
 | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | |
| //
 | |
| //===----------------------------------------------------------------------===//
 | |
| /// \file
 | |
| /// This file declares the targeting of the Machinelegalizer class for
 | |
| /// AMDGPU.
 | |
| /// \todo This should be generated by TableGen.
 | |
| //===----------------------------------------------------------------------===//
 | |
| 
 | |
| #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINELEGALIZER_H
 | |
| #define LLVM_LIB_TARGET_AMDGPU_AMDGPUMACHINELEGALIZER_H
 | |
| 
 | |
| #include "llvm/CodeGen/GlobalISel/LegalizerInfo.h"
 | |
| 
 | |
| namespace llvm {
 | |
| 
 | |
| class GCNTargetMachine;
 | |
| class LLVMContext;
 | |
| class GCNSubtarget;
 | |
| 
 | |
| /// This class provides the information for the target register banks.
 | |
| class AMDGPULegalizerInfo : public LegalizerInfo {
 | |
| public:
 | |
|   AMDGPULegalizerInfo(const GCNSubtarget &ST,
 | |
|                       const GCNTargetMachine &TM);
 | |
| 
 | |
|   bool legalizeCustom(MachineInstr &MI, MachineRegisterInfo &MRI,
 | |
|                       MachineIRBuilder &MIRBuilder,
 | |
|                       GISelChangeObserver &Observer) const override;
 | |
| 
 | |
|   unsigned getSegmentAperture(unsigned AddrSpace,
 | |
|                               MachineRegisterInfo &MRI,
 | |
|                               MachineIRBuilder &MIRBuilder) const;
 | |
| 
 | |
|   bool legalizeAddrSpaceCast(MachineInstr &MI, MachineRegisterInfo &MRI,
 | |
|                              MachineIRBuilder &MIRBuilder) const;
 | |
|   bool legalizeFrint(MachineInstr &MI, MachineRegisterInfo &MRI,
 | |
|                      MachineIRBuilder &MIRBuilder) const;
 | |
|   bool legalizeFceil(MachineInstr &MI, MachineRegisterInfo &MRI,
 | |
|                      MachineIRBuilder &MIRBuilder) const;
 | |
|   bool legalizeIntrinsicTrunc(MachineInstr &MI, MachineRegisterInfo &MRI,
 | |
|                               MachineIRBuilder &MIRBuilder) const;
 | |
|   bool legalizeITOFP(MachineInstr &MI, MachineRegisterInfo &MRI,
 | |
|                      MachineIRBuilder &MIRBuilder, bool Signed) const;
 | |
| };
 | |
| } // End llvm namespace.
 | |
| #endif
 |