class VPLiveOut
Declaration
class VPLiveOut : public VPUser { /* full declaration omitted */ };
Description
A value that is used outside the VPlan. The operand of the user needs to be added to the associated LCSSA phi node.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:630
Inherits from: VPUser
Member Variables
- private llvm::PHINode* Phi
Method Overview
- public VPLiveOut(llvm::PHINode * Phi, llvm::VPValue * Op)
- public void fixPhi(llvm::VPlan & Plan, llvm::VPTransformState & State)
- public llvm::PHINode * getPhi() const
- public bool usesScalars(const llvm::VPValue * Op) const
Inherited from VPUser:
- public addOperand
- public classof
- public getNumOperands
- public getOperand
- public getVPUserID
- public onlyFirstLaneUsed
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operands
- public operands
- protected printOperands
- public removeLastOperand
- public setOperand
- public usesScalars
Methods
¶VPLiveOut(llvm::PHINode* Phi, llvm::VPValue* Op)
VPLiveOut(llvm::PHINode* Phi, llvm::VPValue* Op)
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:634
Parameters
- llvm::PHINode* Phi
- llvm::VPValue* Op
¶void fixPhi(llvm::VPlan& Plan,
llvm::VPTransformState& State)
void fixPhi(llvm::VPlan& Plan,
llvm::VPTransformState& State)
Description
Fixup the wrapped LCSSA phi node in the unique exit block. This simply means we need to add the appropriate incoming value from the middle block as exiting edges from the scalar epilogue loop (if present) are already in place, and we exit the vector loop exclusively to the middle block.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:642
Parameters
- llvm::VPlan& Plan
- llvm::VPTransformState& State
¶llvm::PHINode* getPhi() const
llvm::PHINode* getPhi() const
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:651
¶bool usesScalars(const llvm::VPValue* Op) const
bool usesScalars(const llvm::VPValue* Op) const
Description
Returns true if the VPLiveOut uses scalars of operand \p Op.
Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:645
Parameters
- const llvm::VPValue* Op