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:

Methods

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)

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

Declared at: llvm/lib/Transforms/Vectorize/VPlan.h:651

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