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