struct SDNodeFlags

Declaration

struct SDNodeFlags { /* full declaration omitted */ };

Description

These are IR-level optimization flags that may be propagated to SDNodes. TODO: This data structure should be shared by the IR optimizer and the the backend.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:371

Member Variables

private bool NoUnsignedWrap
private bool NoSignedWrap
private bool Exact
private bool NoNaNs
private bool NoInfs
private bool NoSignedZeros
private bool AllowReciprocal
private bool AllowContract
private bool ApproximateFuncs
private bool AllowReassociation
private bool NoFPExcept

Method Overview

Methods

SDNodeFlags()

Description

Default constructor turns off all optimization flags.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:393

void copyFMF(const llvm::FPMathOperator& FPMO)

Description

Propagate the fast-math-flags from an IR FPMathOperator.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:400

Parameters

const llvm::FPMathOperator& FPMO

bool hasAllowContract() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:431

bool hasAllowReassociation() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:433

bool hasAllowReciprocal() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:430

bool hasApproximateFuncs() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:432

bool hasExact() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:426

bool hasNoFPExcept() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:434

bool hasNoInfs() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:428

bool hasNoNaNs() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:427

bool hasNoSignedWrap() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:425

bool hasNoSignedZeros() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:429

bool hasNoUnsignedWrap() const

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:424

void intersectWith(const llvm::SDNodeFlags Flags)

Description

Clear any flags in this flag set that aren't also set in Flags. All flags will be cleared if Flags are undefined.

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:438

Parameters

const llvm::SDNodeFlags Flags

void setAllowContract(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:418

Parameters

bool b

void setAllowReassociation(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:420

Parameters

bool b

void setAllowReciprocal(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:417

Parameters

bool b

void setApproximateFuncs(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:419

Parameters

bool b

void setExact(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:413

Parameters

bool b

void setNoFPExcept(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:421

Parameters

bool b

void setNoInfs(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:415

Parameters

bool b

void setNoNaNs(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:414

Parameters

bool b

void setNoSignedWrap(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:412

Parameters

bool b

void setNoSignedZeros(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:416

Parameters

bool b

void setNoUnsignedWrap(bool b)

Declared at: llvm/include/llvm/CodeGen/SelectionDAGNodes.h:411

Parameters

bool b