struct VLOperands::OperandsOrderData

Declaration

struct VLOperands::OperandsOrderData { /* full declaration omitted */ };

Description

Data structure that helps to reorder operands.

Declared at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1663

Member Variables

public unsigned int NumOfAPOs = (2147483647 * 2U + 1U)
The best number of operands with the same APOs, which can be reordered.
public unsigned int NumOpsWithSameOpcodeParent = 0
Number of operands with the same/alternate instruction opcode and parent.
public unsigned int Hash = 0
Hash for the actual operands ordering. Used to count operands, actually their position id and opcode value. It is used in the voting mechanism to find the lane with the least number of operands that can freely move about or less profitable because it already has the most optimal set of operands. Can be replaced with SmallVector <unsigned > instead but hash code is faster and requires less memory.