class SCEVUnknown

Declaration

class SCEVUnknown : public SCEV, private CallbackVH { /* full declaration omitted */ };

Description

This means that we are dealing with an entirely unknown SCEV value, and only represent it as its LLVM Value. This is the "bottom" value for the analysis.

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:571

Inherits from: SCEV, CallbackVH

Member Variables

private llvm::ScalarEvolution* SE
The parent ScalarEvolution value. This is used to update the parent's maps when the value associated with a SCEVUnknown is deleted or RAUW'd.
private llvm::SCEVUnknown* Next
The next pointer in the linked list of all SCEVUnknown instances owned by a ScalarEvolution.

Inherited from SCEV:

protected ExpressionSize
protected SubclassData = 0

Method Overview

  • private SCEVUnknown(const llvm::FoldingSetNodeIDRef ID, llvm::Value * V, llvm::ScalarEvolution * se, llvm::SCEVUnknown * next)
  • private void allUsesReplacedWith(llvm::Value * New)
  • public static bool classof(const llvm::SCEV * S)
  • private void deleted()
  • public llvm::Type * getType() const
  • public llvm::Value * getValue() const
  • public bool isAlignOf(llvm::Type *& AllocTy) const
  • public bool isOffsetOf(llvm::Type *& STy, llvm::Constant *& FieldNo) const
  • public bool isSizeOf(llvm::Type *& AllocTy) const

Inherited from SCEV:

Inherited from FoldingSetBase::Node:

Methods

SCEVUnknown(const llvm::FoldingSetNodeIDRef ID,
            llvm::Value* V,
            llvm::ScalarEvolution* se,
            llvm::SCEVUnknown* next)

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:583

Parameters

const llvm::FoldingSetNodeIDRef ID
llvm::Value* V
llvm::ScalarEvolution* se
llvm::SCEVUnknown* next

void allUsesReplacedWith(llvm::Value* New)

Description

Callback for Value RAUW. Called when this->getValPtr()->replaceAllUsesWith(new_value) is called, _before_ any of the uses have actually been replaced. If WeakTrackingVH were implemented as a CallbackVH, it would use this method to call setValPtr(new_value). AssertingVH would do nothing in this method.

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:589

Parameters

llvm::Value* New

static bool classof(const llvm::SCEV* S)

Description

Methods for support type inquiry through isa, cast, and dyn_cast:

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:609

Parameters

const llvm::SCEV* S

void deleted()

Description

Callback for Value destruction. Called when this->getValPtr() is destroyed, inside ~Value(), so you may call any non-virtual Value method on getValPtr(), but no subclass methods. If WeakTrackingVH were implemented as a CallbackVH, it would use this method to call setValPtr(NULL). AssertingVH would use this method to cause an assertion failure. All implementations must remove the reference from this object to the Value that's being destroyed.

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:588

llvm::Type* getType() const

Description

@ }

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:606

llvm::Value* getValue() const

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:592

bool isAlignOf(llvm::Type*& AllocTy) const

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:602

Parameters

llvm::Type*& AllocTy

bool isOffsetOf(llvm::Type*& STy,
                llvm::Constant*& FieldNo) const

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:603

Parameters

llvm::Type*& STy
llvm::Constant*& FieldNo

bool isSizeOf(llvm::Type*& AllocTy) const

Description

@ { Test whether this is a special constant representing a type size, alignment, or field offset in a target-independent manner, and hasn't happened to have been folded with other operations into something unrecognizable. This is mainly only useful for pretty-printing and other situations where it isn't absolutely required for these to succeed.

Declared at: llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h:601

Parameters

llvm::Type*& AllocTy