LLVM
8.0.1
|
#include "Target/AArch64/AArch64SelectionDAGInfo.h"
Public Member Functions | |
SDValue | EmitTargetCodeForMemset (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, unsigned Align, bool isVolatile, MachinePointerInfo DstPtrInfo) const override |
Emit target-specific code that performs a memset. More... | |
bool | generateFMAsInMachineCombiner (CodeGenOpt::Level OptLevel) const override |
Public Member Functions inherited from llvm::SelectionDAGTargetInfo | |
SelectionDAGTargetInfo ()=default | |
SelectionDAGTargetInfo (const SelectionDAGTargetInfo &)=delete | |
SelectionDAGTargetInfo & | operator= (const SelectionDAGTargetInfo &)=delete |
virtual | ~SelectionDAGTargetInfo () |
virtual SDValue | EmitTargetCodeForMemcpy (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, unsigned Align, bool isVolatile, bool AlwaysInline, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const |
Emit target-specific code that performs a memcpy. More... | |
virtual SDValue | EmitTargetCodeForMemmove (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, unsigned Align, bool isVolatile, MachinePointerInfo DstPtrInfo, MachinePointerInfo SrcPtrInfo) const |
Emit target-specific code that performs a memmove. More... | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForMemcmp (SelectionDAG &DAG, const SDLoc &dl, SDValue Chain, SDValue Op1, SDValue Op2, SDValue Op3, MachinePointerInfo Op1PtrInfo, MachinePointerInfo Op2PtrInfo) const |
Emit target-specific code that performs a memcmp, in cases where that is faster than a libcall. More... | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForMemchr (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. More... | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrcpy (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. More... | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrcmp (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. More... | |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrlen (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, MachinePointerInfo SrcPtrInfo) const |
virtual std::pair< SDValue, SDValue > | EmitTargetCodeForStrnlen (SelectionDAG &DAG, const SDLoc &DL, SDValue Chain, SDValue Src, SDValue MaxLength, MachinePointerInfo SrcPtrInfo) const |
Definition at line 21 of file AArch64SelectionDAGInfo.h.
|
overridevirtual |
Emit target-specific code that performs a memset.
This can be used by targets to provide code sequences for cases that don't fit the target's parameters for simple stores and can be more efficient than using a library call. This function can return a null SDValue if the target declines to use custom code and a different lowering strategy should be used.
Reimplemented from llvm::SelectionDAGTargetInfo.
Definition at line 19 of file AArch64SelectionDAGInfo.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Key::Args, llvm::CallingConv::C, llvm::dyn_cast(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getExternalSymbol(), llvm::DataLayout::getIntPtrType(), llvm::TargetLoweringBase::getLibcallName(), llvm::SelectionDAG::getMachineFunction(), llvm::TargetLoweringBase::getPointerTy(), llvm::MachineFunction::getSubtarget(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::Type::getVoidTy(), llvm::ConstantSDNode::isNullValue(), llvm::TargetLowering::LowerCallTo(), llvm::TargetLoweringBase::ArgListEntry::Node, llvm::TargetLowering::CallLoweringInfo::setChain(), llvm::TargetLowering::CallLoweringInfo::setDebugLoc(), llvm::TargetLowering::CallLoweringInfo::setLibCallee(), Size, and llvm::TargetLoweringBase::ArgListEntry::Ty.
|
overridevirtual |
Reimplemented from llvm::SelectionDAGTargetInfo.
Definition at line 56 of file AArch64SelectionDAGInfo.cpp.
References llvm::CodeGenOpt::Aggressive.