LLVM 22.0.0git
llvm::PPCSelectionDAGInfo Class Reference

#include "Target/PowerPC/PPCSelectionDAGInfo.h"

Inheritance diagram for llvm::PPCSelectionDAGInfo:
[legend]

Public Member Functions

 ~PPCSelectionDAGInfo () override
bool isTargetMemoryOpcode (unsigned Opcode) const override
 Returns true if a node with the given target-specific opcode has a memory operand.
bool isTargetStrictFPOpcode (unsigned Opcode) const override
 Returns true if a node with the given target-specific opcode has strict floating-point semantics.
std::pair< SDValue, SDValueEmitTargetCodeForMemcmp (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, const CallInst *CI) const override
 Emit target-specific code that performs a memcmp/bcmp, in cases where that is faster than a libcall.
std::pair< SDValue, SDValueEmitTargetCodeForStrlen (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, const CallInst *CI) const override
Public Member Functions inherited from llvm::SelectionDAGTargetInfo
 SelectionDAGTargetInfo ()=default
 SelectionDAGTargetInfo (const SelectionDAGTargetInfo &)=delete
SelectionDAGTargetInfooperator= (const SelectionDAGTargetInfo &)=delete
virtual ~SelectionDAGTargetInfo ()
virtual const chargetTargetNodeName (unsigned Opcode) const
 Returns the name of the given target-specific opcode, suitable for debug printing.
virtual bool mayRaiseFPException (unsigned Opcode) const
 Returns true if a node with the given target-specific opcode may raise a floating-point exception.
virtual void verifyTargetNode (const SelectionDAG &DAG, const SDNode *N) const
 Checks that the given target-specific node is valid. Aborts if it is not.
virtual SDValue EmitTargetCodeForMemcpy (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const
 Emit target-specific code that performs a memcpy.
virtual SDValue EmitTargetCodeForMemmove (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, Align Alignment, bool isVolatile, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const
 Emit target-specific code that performs a memmove.
virtual SDValue EmitTargetCodeForMemset (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, Align Alignment, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo) const
 Emit target-specific code that performs a memset.
virtual std::pair< SDValue, SDValueEmitTargetCodeForMemchr (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Src, SDValue Char, SDValue Length, MachinePointerInfo SrcPtrInfo) const
 Emit target-specific code that performs a memchr, in cases where that is faster than a libcall.
virtual std::pair< SDValue, SDValueEmitTargetCodeForStrcpy (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Dest, SDValue Src, MachinePointerInfo DestPtrInfo, MachinePointerInfo SrcPtrInfo, bool isStpcpy) const
 Emit target-specific code that performs a strcpy or stpcpy, in cases where that is faster than a libcall.
virtual std::pair< SDValue, SDValueEmitTargetCodeForStrcmp (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, MachinePointerInfo Op1PtrInfo, MachinePointerInfo Op2PtrInfo) const
 Emit target-specific code that performs a strcmp, in cases where that is faster than a libcall.
virtual std::pair< SDValue, SDValueEmitTargetCodeForStrnlen (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, SDValue MaxLength, MachinePointerInfo SrcPtrInfo) const
virtual SDValue EmitTargetCodeForSetTag (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Addr, SDValue Size, MachinePointerInfo DstPtrInfo, bool ZeroData) const
virtual bool disableGenericCombines (CodeGenOptLevel OptLevel) const

Detailed Description

Definition at line 16 of file PPCSelectionDAGInfo.h.

Constructor & Destructor Documentation

◆ ~PPCSelectionDAGInfo()

PPCSelectionDAGInfo::~PPCSelectionDAGInfo ( )
overridedefault

References DL.

Member Function Documentation

◆ EmitTargetCodeForMemcmp()

std::pair< SDValue, SDValue > PPCSelectionDAGInfo::EmitTargetCodeForMemcmp ( SelectionDAG & DAG,
const SDLoc & dl,
SDValue Chain,
SDValue Op1,
SDValue Op2,
SDValue Op3,
const CallInst * CI ) const
overridevirtual

Emit target-specific code that performs a memcmp/bcmp, in cases where that is faster than a libcall.

The first returned SDValue is the result of the memcmp and the second is the chain. Both SDValues can be null if a normal libcall should be used.

Reimplemented from llvm::SelectionDAGTargetInfo.

Definition at line 26 of file PPCSelectionDAGInfo.cpp.

References llvm::SelectionDAG::getMemcmp().

◆ EmitTargetCodeForStrlen()

std::pair< SDValue, SDValue > PPCSelectionDAGInfo::EmitTargetCodeForStrlen ( SelectionDAG & DAG,
const SDLoc & DL,
SDValue Chain,
SDValue Src,
const CallInst * CI ) const
overridevirtual

Reimplemented from llvm::SelectionDAGTargetInfo.

Definition at line 33 of file PPCSelectionDAGInfo.cpp.

References DL, and llvm::SelectionDAG::getStrlen().

◆ isTargetMemoryOpcode()

bool PPCSelectionDAGInfo::isTargetMemoryOpcode ( unsigned Opcode) const
overridevirtual

Returns true if a node with the given target-specific opcode has a memory operand.

Nodes with such opcodes can only be created with SelectionDAG::getMemIntrinsicNode.

Reimplemented from llvm::SelectionDAGTargetInfo.

Definition at line 16 of file PPCSelectionDAGInfo.cpp.

References llvm::PPCISD::FIRST_MEMORY_OPCODE, and llvm::PPCISD::LAST_MEMORY_OPCODE.

◆ isTargetStrictFPOpcode()

bool PPCSelectionDAGInfo::isTargetStrictFPOpcode ( unsigned Opcode) const
overridevirtual

Returns true if a node with the given target-specific opcode has strict floating-point semantics.

Reimplemented from llvm::SelectionDAGTargetInfo.

Definition at line 21 of file PPCSelectionDAGInfo.cpp.

References llvm::PPCISD::FIRST_STRICTFP_OPCODE, and llvm::PPCISD::LAST_STRICTFP_OPCODE.


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