30 if (
F == 0x7F) Flags = ~0U;
57 bool any()
const {
return Flags != 0; }
58 bool none()
const {
return Flags == 0; }
59 bool all()
const {
return Flags == ~0U; }
62 void set() { Flags = ~0U; }
80 Flags = (Flags & ~NoNaNs) |
B *
NoNaNs;
83 Flags = (Flags & ~NoInfs) |
B *
NoInfs;
100 Flags &= OtherFlags.Flags;
103 Flags |= OtherFlags.Flags;
106 return Flags != OtherFlags.Flags;
115 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)
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.
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)