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.