class ScalarizationResult
Declaration
class ScalarizationResult { /* full declaration omitted */ };
Description
Helper class to indicate whether a vector index can be safely scalarized and if a freeze needs to be inserted.
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:816
Member Variables
- private ScalarizationResult::StatusTy Status
- private llvm::Value* ToFreeze
Method Overview
- private ScalarizationResult(ScalarizationResult::StatusTy Status, llvm::Value * ToFreeze = nullptr)
- public ScalarizationResult(const ScalarizationResult & Other)
- public void discard()
- public void freeze(IRBuilder<> & Builder, llvm::Instruction & UserI)
- public bool isSafe() const
- public bool isSafeWithFreeze() const
- public bool isUnsafe() const
- public static ScalarizationResult safe()
- public static ScalarizationResult safeWithFreeze(llvm::Value * ToFreeze)
- public static ScalarizationResult unsafe()
- public ~ScalarizationResult()
Methods
¶ScalarizationResult(
ScalarizationResult::StatusTy Status,
llvm::Value* ToFreeze = nullptr)
ScalarizationResult(
ScalarizationResult::StatusTy Status,
llvm::Value* ToFreeze = nullptr)
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:822
Parameters
- ScalarizationResult::StatusTy Status
- llvm::Value* ToFreeze = nullptr
¶ScalarizationResult(
const ScalarizationResult& Other)
ScalarizationResult(
const ScalarizationResult& Other)
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:826
Parameters
- const ScalarizationResult& Other
¶void discard()
void discard()
Description
Reset the state of Unsafe and clear ToFreze if set.
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:846
¶void freeze(IRBuilder<>& Builder,
llvm::Instruction& UserI)
void freeze(IRBuilder<>& Builder,
llvm::Instruction& UserI)
Description
Freeze the ToFreeze and update the use in \p User to use it.
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:852
Parameters
- IRBuilder<>& Builder
- llvm::Instruction& UserI
¶bool isSafe() const
bool isSafe() const
Description
Returns true if the index can be scalarize without requiring a freeze.
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:838
¶bool isSafeWithFreeze() const
bool isSafeWithFreeze() const
Description
Returns true if the index can be scalarize, but requires inserting a freeze.
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:843
¶bool isUnsafe() const
bool isUnsafe() const
Description
Returns true if the index cannot be scalarized.
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:840
¶static ScalarizationResult safe()
static ScalarizationResult safe()
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:832
¶static ScalarizationResult safeWithFreeze(
llvm::Value* ToFreeze)
static ScalarizationResult safeWithFreeze(
llvm::Value* ToFreeze)
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:833
Parameters
- llvm::Value* ToFreeze
¶static ScalarizationResult unsafe()
static ScalarizationResult unsafe()
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:831
¶~ScalarizationResult()
~ScalarizationResult()
Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:827