LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::X86LegalizerInfo Class Reference

This class provides the information for the target register banks. More...

#include "Target/X86/X86LegalizerInfo.h"

Inheritance diagram for llvm::X86LegalizerInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::X86LegalizerInfo:
Collaboration graph
[legend]

Public Member Functions

 X86LegalizerInfo (const X86Subtarget &STI, const X86TargetMachine &TM)
 
- Public Member Functions inherited from llvm::LegalizerInfo
 LegalizerInfo ()
 
virtual ~LegalizerInfo ()=default
 
void computeTables ()
 Compute any ancillary tables needed to quickly decide how an operation should be handled. More...
 
void setAction (const InstrAspect &Aspect, LegalizeAction Action)
 More friendly way to set an action for common types that have an LLT representation. More...
 
void setLegalizeScalarToDifferentSizeStrategy (const unsigned Opcode, const unsigned TypeIdx, SizeChangeStrategy S)
 The setAction calls record the non-size-changing legalization actions to take on specificly-sized types. More...
 
void setLegalizeVectorElementToDifferentSizeStrategy (const unsigned Opcode, const unsigned TypeIdx, SizeChangeStrategy S)
 See also setLegalizeScalarToDifferentSizeStrategy. More...
 
std::pair< LegalizeAction, LLTgetAction (const InstrAspect &Aspect) const
 Determine what action should be taken to legalize the given generic instruction opcode, type-index and type. More...
 
std::tuple< LegalizeAction, unsigned, LLTgetAction (const MachineInstr &MI, const MachineRegisterInfo &MRI) const
 Determine what action should be taken to legalize the given generic instruction. More...
 
bool isLegal (const MachineInstr &MI, const MachineRegisterInfo &MRI) const
 
virtual bool legalizeCustom (MachineInstr &MI, MachineRegisterInfo &MRI, MachineIRBuilder &MIRBuilder) const
 

Additional Inherited Members

- Public Types inherited from llvm::LegalizerInfo
enum  LegalizeAction : std::uint8_t {
  Legal, NarrowScalar, WidenScalar, FewerElements,
  MoreElements, Lower, Libcall, Custom,
  Unsupported, NotFound
}
 
typedef std::pair< uint16_t, LegalizeActionSizeAndAction
 
typedef std::vector< SizeAndActionSizeAndActionsVec
 
using SizeChangeStrategy = std::function< SizeAndActionsVec(const SizeAndActionsVec &v)>
 
- Static Public Member Functions inherited from llvm::LegalizerInfo
static bool needsLegalizingToDifferentSize (const LegalizeAction Action)
 
static SizeAndActionsVec unsupportedForDifferentSizes (const SizeAndActionsVec &v)
 A SizeChangeStrategy for the common case where legalization for a particular operation consists of only supporting a specific set of type sizes. More...
 
static SizeAndActionsVec widenToLargerTypesAndNarrowToLargest (const SizeAndActionsVec &v)
 A SizeChangeStrategy for the common case where legalization for a particular operation consists of widening the type to a large legal type, unless there is no such type and then instead it should be narrowed to the largest legal type. More...
 
static SizeAndActionsVec widenToLargerTypesUnsupportedOtherwise (const SizeAndActionsVec &v)
 
static SizeAndActionsVec narrowToSmallerAndUnsupportedIfTooSmall (const SizeAndActionsVec &v)
 
static SizeAndActionsVec narrowToSmallerAndWidenToSmallest (const SizeAndActionsVec &v)
 
static SizeAndActionsVec moreToWiderTypesAndLessToWidest (const SizeAndActionsVec &v)
 A SizeChangeStrategy for the common case where legalization for a particular vector operation consists of having more elements in the vector, to a type that is legal. More...
 
static SizeAndActionsVec increaseToLargerTypesAndDecreaseToLargest (const SizeAndActionsVec &v, LegalizeAction IncreaseAction, LegalizeAction DecreaseAction)
 Helper function to implement many typical SizeChangeStrategy functions. More...
 
static SizeAndActionsVec decreaseToSmallerTypesAndIncreaseToSmallest (const SizeAndActionsVec &v, LegalizeAction DecreaseAction, LegalizeAction IncreaseAction)
 Helper function to implement many typical SizeChangeStrategy functions. More...
 

Detailed Description

This class provides the information for the target register banks.

Definition at line 26 of file X86LegalizerInfo.h.

Constructor & Destructor Documentation

◆ X86LegalizerInfo()

X86LegalizerInfo::X86LegalizerInfo ( const X86Subtarget STI,
const X86TargetMachine TM 
)

The documentation for this class was generated from the following files: