Matcher for memcpy‐like instructions. For non‐zero lengths, MemOps contains the load/store types to emit.
Synopsis
Declared in <llvm/CodeGen/GlobalISel/Utils.h>
bool
canLowerMemCpyFamily(
MachineInstr const& MI,
MachineRegisterInfo const& MRI,
unsigned int MaxLen,
Register& Dst,
Register& Src,
uint64_t& KnownLen,
Align& Alignment,
bool& DstAlignCanChange,
std::vector<LLT>& MemOps);
Parameters
Name |
Description |
MI |
Representation of each machine instruction. |
MRI |
MachineRegisterInfo ‐ Keep track of information for virtual and physical registers, including vreg register classes, use/def chains for registers, etc. |
Dst |
Wrapper class representing virtual and physical registers. Should be passed by value. |
Src |
Wrapper class representing virtual and physical registers. Should be passed by value. |
Alignment |
This struct is a compact representation of a valid (non‐zero power of two) alignment. It is suitable for use as static global constants. |
MemOps |
A standard container which offers fixed time access to individual elements in any order. |
Created with MrDocs