class SCEVUnionPredicate

Declaration

class SCEVUnionPredicate : public SCEVPredicate { /* full declaration omitted */ };

Description

This class represents a composition of other SCEV predicates, and is the class that most clients will interact with. This is equivalent to a logical "AND" of all the predicates in the union. NB! Unlike other SCEVPredicate sub-classes this class does not live in the ScalarEvolution::Preds folding set. This is why the \c add function is sound.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:397

Inherits from: SCEVPredicate

Member Variables

Inherited from SCEVPredicate:

protected Kind

Method Overview

  • public SCEVUnionPredicate()
  • public void add(const llvm::SCEVPredicate * N)
  • public static bool classof(const llvm::SCEVPredicate * P)
  • public unsigned int getComplexity() const
  • public const llvm::SCEV * getExpr() const
  • public const SmallVectorImpl<const llvm::SCEVPredicate *> & getPredicates() const
  • public ArrayRef<const llvm::SCEVPredicate *> getPredicatesForExpr(const llvm::SCEV * Expr)
  • public bool implies(const llvm::SCEVPredicate * N) const
  • public bool isAlwaysTrue() const
  • public void print(llvm::raw_ostream & OS, unsigned int Depth) const

Inherited from SCEVPredicate:

Inherited from FoldingSetBase::Node:

Methods

SCEVUnionPredicate()

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:409

void add(const llvm::SCEVPredicate* N)

Description

Adds a predicate to this union.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:416

Parameters

const llvm::SCEVPredicate* N

static bool classof(const llvm::SCEVPredicate* P)

Description

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

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:433

Parameters

const llvm::SCEVPredicate* P

unsigned int getComplexity() const

Description

We estimate the complexity of a union predicate as the size number of predicates in the union.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:430

const llvm::SCEV* getExpr() const

Description

Returns the SCEV to which this predicate applies, or nullptr if this is a SCEVUnionPredicate.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:426

const SmallVectorImpl<const llvm::SCEVPredicate*>&
getPredicates() const

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:411

ArrayRef<const llvm::SCEVPredicate*>
getPredicatesForExpr(const llvm::SCEV* Expr)

Description

Returns a reference to a vector containing all predicates which apply to\p Expr.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:420

Parameters

const llvm::SCEV* Expr

bool implies(const llvm::SCEVPredicate* N) const

Description

Returns true if this predicate implies \p N.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:424

Parameters

const llvm::SCEVPredicate* N

bool isAlwaysTrue() const

Description

Implementation of the SCEVPredicate interface

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:423

void print(llvm::raw_ostream& OS,
           unsigned int Depth) const

Description

Prints a textual representation of this predicate with an indentation of\p Depth.

Declared at: llvm/include/llvm/Analysis/ScalarEvolution.h:425

Parameters

llvm::raw_ostream& OS
unsigned int Depth