|
LLVM 24.0.0git
|
Represents a particular available value that we know how to materialize. More...
Public Types | |
| enum class | ValType |
Public Member Functions | |
| bool | isSimpleValue () const |
| bool | isCoercedLoadValue () const |
| bool | isMemIntrinValue () const |
| bool | isUndefValue () const |
| bool | isSelectValue () const |
| Value * | getSimpleValue () const |
| LoadInst * | getCoercedLoadValue () const |
| MemIntrinsic * | getMemIntrinValue () const |
| SelectInst * | getSelectInstr () const |
| Value * | MaterializeAdjustedValue (LoadInst *Load, Instruction *InsertPt) const |
| Emit code at the specified insertion point to adjust the value defined here to the specified type. | |
Static Public Member Functions | |
| static AvailableValue | get (Value *V, unsigned Offset=0) |
| static AvailableValue | getMI (MemIntrinsic *MI, unsigned Offset=0) |
| static AvailableValue | getLoad (LoadInst *Load, unsigned Offset=0) |
| static AvailableValue | getUndef () |
| static AvailableValue | getSelect (SelectInst *Sel, Value *V1, Value *V2) |
Public Attributes | |
| Value * | Val |
| Val - The value that is live out of the block. | |
| ValType | Kind |
| Kind of the live-out value. | |
| unsigned | Offset = 0 |
| Offset - The byte offset in Val that is interesting for the load query. | |
| Value * | V1 = nullptr |
| V1, V2 - The dominating non-clobbered values of SelectVal. | |
| Value * | V2 = nullptr |
Represents a particular available value that we know how to materialize.
Materialization of an AvailableValue never fails. An AvailableValue is implicitly associated with a rematerialization point which is the location of the instruction from which it was formed.
|
strong |
|
inlinestatic |
|
inline |
Definition at line 540 of file GVN.cpp.
References assert(), llvm::cast(), isCoercedLoadValue(), and Val.
Referenced by MaterializeAdjustedValue().
|
inlinestatic |
|
inline |
Definition at line 545 of file GVN.cpp.
References assert(), llvm::cast(), isMemIntrinValue(), and Val.
Referenced by MaterializeAdjustedValue().
|
inlinestatic |
|
inlinestatic |
|
inline |
Definition at line 550 of file GVN.cpp.
References assert(), llvm::cast(), isSelectValue(), and Val.
Referenced by MaterializeAdjustedValue().
|
inline |
Definition at line 535 of file GVN.cpp.
References assert(), isSimpleValue(), and Val.
Referenced by MaterializeAdjustedValue().
|
inlinestatic |
|
inline |
Definition at line 530 of file GVN.cpp.
References Kind.
Referenced by getCoercedLoadValue(), and MaterializeAdjustedValue().
|
inline |
Definition at line 531 of file GVN.cpp.
References Kind.
Referenced by getMemIntrinValue(), and MaterializeAdjustedValue().
|
inline |
Definition at line 533 of file GVN.cpp.
References Kind.
Referenced by getSelectInstr(), and MaterializeAdjustedValue().
|
inline |
Definition at line 529 of file GVN.cpp.
References Kind.
Referenced by getSimpleValue(), and MaterializeAdjustedValue().
|
inline |
| Value * AvailableValue::MaterializeAdjustedValue | ( | LoadInst * | Load, |
| Instruction * | InsertPt ) const |
Emit code at the specified insertion point to adjust the value defined here to the specified type.
This handles various coercion cases.
Definition at line 1429 of file GVN.cpp.
References assert(), llvm::cast(), llvm::combineMetadataForCSE(), llvm::SelectInst::Create(), llvm::dbgs(), DL, llvm::Instruction::dropUnknownNonDebugMetadata(), getCoercedLoadValue(), llvm::SelectInst::getCondition(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::VNCoercion::getMemInstValueForLoad(), getMemIntrinValue(), getSelectInstr(), getSimpleValue(), llvm::Value::getType(), llvm::VNCoercion::getValueForLoad(), llvm::Instruction::hasMetadata(), isCoercedLoadValue(), isMemIntrinValue(), isSelectValue(), isSimpleValue(), LLVM_DEBUG, llvm_unreachable, llvm::Load, Offset, llvm::ProfcheckDisableMetadataFixes, V1, and V2.
| ValType llvm::GVNPassImpl::AvailableValue::Kind |
Kind of the live-out value.
Definition at line 480 of file GVN.cpp.
Referenced by get(), getLoad(), getMI(), getSelect(), getUndef(), isCoercedLoadValue(), isMemIntrinValue(), isSelectValue(), isSimpleValue(), and isUndefValue().
| unsigned llvm::GVNPassImpl::AvailableValue::Offset = 0 |
Offset - The byte offset in Val that is interesting for the load query.
Definition at line 483 of file GVN.cpp.
Referenced by get(), getLoad(), getMI(), getSelect(), getUndef(), and MaterializeAdjustedValue().
| Value* llvm::GVNPassImpl::AvailableValue::V1 = nullptr |
V1, V2 - The dominating non-clobbered values of SelectVal.
Definition at line 485 of file GVN.cpp.
Referenced by getSelect(), and MaterializeAdjustedValue().
| Value * llvm::GVNPassImpl::AvailableValue::V2 = nullptr |
Definition at line 485 of file GVN.cpp.
Referenced by getSelect(), and MaterializeAdjustedValue().
| Value* llvm::GVNPassImpl::AvailableValue::Val |
Val - The value that is live out of the block.
Definition at line 478 of file GVN.cpp.
Referenced by get(), getCoercedLoadValue(), getLoad(), getMemIntrinValue(), getMI(), getSelect(), getSelectInstr(), getSimpleValue(), and getUndef().