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

Methods

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)

Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:826

Parameters

const ScalarizationResult& Other

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)

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

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

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

Description

Returns true if the index cannot be scalarized.

Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:840

static ScalarizationResult safe()

Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:832

static ScalarizationResult safeWithFreeze(
    llvm::Value* ToFreeze)

Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:833

Parameters

llvm::Value* ToFreeze

static ScalarizationResult unsafe()

Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:831

~ScalarizationResult()

Declared at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:827