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:413

Inherits from: SCEVPredicate

Member Variables

private SmallVector<const llvm::SCEVPredicate*, 16> Preds
Vector with references to all predicates in this union.

Inherited from SCEVPredicate:

protected Kind

Method Overview

  • public SCEVUnionPredicate(ArrayRef<const llvm::SCEVPredicate *> Preds)
  • private void add(const llvm::SCEVPredicate * N)
  • public static bool classof(const llvm::SCEVPredicate * P)
  • public unsigned int getComplexity() const
  • public const SmallVectorImpl<const llvm::SCEVPredicate *> & getPredicates() const
  • 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(
    ArrayRef<const llvm::SCEVPredicate*> Preds)

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

Parameters

ArrayRef<const llvm::SCEVPredicate*> Preds

void add(const llvm::SCEVPredicate* N)

Description

Adds a predicate to this union.

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

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:441

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:438

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

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

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

Description

Returns true if this predicate implies \p N.

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

Parameters

const llvm::SCEVPredicate* N

bool isAlwaysTrue() const

Description

Implementation of the SCEVPredicate interface

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

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:434

Parameters

llvm::raw_ostream& OS
unsigned int Depth