class XorOpnd

Declaration

class XorOpnd { /* full declaration omitted */ };

Description

Utility class representing a non-constant Xor-operand. We classify non-constant Xor-Operands into two categories: C1) The operand is in the form "X & C", where C is a constant and C != ~0 C2) C2.1) The operand is in the form of "X | C", where C is a non-zero constant. C2.2) Any operand E which doesn't fall into C1 and C2.1, we view this operand as "E | 0"

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:95

Member Variables

private llvm::Value* OrigVal
private llvm::Value* SymbolicPart
private llvm::APInt ConstPart
private unsigned int SymbolicRank
private bool isOr

Method Overview

Methods

void Invalidate()

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:106

XorOpnd(llvm::Value* V)

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:97

Parameters

llvm::Value* V

const llvm::APInt& getConstPart() const

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:104

llvm::Value* getSymbolicPart() const

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:102

unsigned int getSymbolicRank() const

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:103

llvm::Value* getValue() const

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:101

bool isInvalid() const

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:99

bool isOrExpr() const

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:100

void setSymbolicRank(unsigned int R)

Declared at: llvm/lib/Transforms/Scalar/Reassociate.cpp:107

Parameters

unsigned int R