56 bool any()
const {
return Flags != 0; }
57 bool none()
const {
return Flags == 0; }
79 Flags = (Flags & ~NoNaNs) |
B *
NoNaNs;
82 Flags = (Flags & ~NoInfs) |
B *
NoInfs;
99 Flags &= OtherFlags.Flags;
102 Flags |= OtherFlags.Flags;
105 return Flags != OtherFlags.Flags;
114 const unsigned RewriteMask =
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
Utility class for floating point operations which can have information about relaxed accuracy require...
Convenience struct for specifying and reasoning about fast-math flags.
void setFast(bool B=true)
static FastMathFlags intersectRewrite(FastMathFlags LHS, FastMathFlags RHS)
Intersect rewrite-based flags.
void setAllowContract(bool B=true)
bool noSignedZeros() const
void setAllowReciprocal(bool B=true)
bool allowReciprocal() const
void operator|=(const FastMathFlags &OtherFlags)
LLVM_ABI void print(raw_ostream &O) const
Print fast-math flags to O.
static FastMathFlags unionValue(FastMathFlags LHS, FastMathFlags RHS)
Union value flags.
void setNoSignedZeros(bool B=true)
bool allowReassoc() const
Flag queries.
static constexpr unsigned AllFlagsMask
void setNoNaNs(bool B=true)
void setAllowReassoc(bool B=true)
Flag setters.
void setApproxFunc(bool B=true)
static FastMathFlags getFast()
void setNoInfs(bool B=true)
bool allowContract() const
bool operator!=(const FastMathFlags &OtherFlags) const
bool isFast() const
'Fast' means all bits are set.
void operator&=(const FastMathFlags &OtherFlags)
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
APInt operator&(APInt a, const APInt &b)
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
APInt operator|(APInt a, const APInt &b)