18#ifndef LLVM_ADT_SLOWDYNAMICAPINT_H
19#define LLVM_ADT_SLOWDYNAMICAPINT_H
42 explicit operator int64_t()
const;
94SlowDynamicAPInt
mod(
const SlowDynamicAPInt &
LHS,
const SlowDynamicAPInt &
RHS);
97SlowDynamicAPInt
lcm(
const SlowDynamicAPInt &
A,
const SlowDynamicAPInt &
B);
101SlowDynamicAPInt
abs(
const SlowDynamicAPInt &
X);
102SlowDynamicAPInt
ceilDiv(
const SlowDynamicAPInt &
LHS,
103 const SlowDynamicAPInt &
RHS);
104SlowDynamicAPInt
floorDiv(
const SlowDynamicAPInt &
LHS,
105 const SlowDynamicAPInt &
RHS);
106SlowDynamicAPInt
gcd(
const SlowDynamicAPInt &
A,
const SlowDynamicAPInt &
B);
112SlowDynamicAPInt &
operator+=(SlowDynamicAPInt &
A, int64_t
B);
113SlowDynamicAPInt &
operator-=(SlowDynamicAPInt &
A, int64_t
B);
114SlowDynamicAPInt &
operator*=(SlowDynamicAPInt &
A, int64_t
B);
115SlowDynamicAPInt &
operator/=(SlowDynamicAPInt &
A, int64_t
B);
116SlowDynamicAPInt &
operator%=(SlowDynamicAPInt &
A, int64_t
B);
120bool operator>(
const SlowDynamicAPInt &
A, int64_t
B);
121bool operator<(
const SlowDynamicAPInt &
A, int64_t
B);
124SlowDynamicAPInt
operator+(
const SlowDynamicAPInt &
A, int64_t
B);
125SlowDynamicAPInt
operator-(
const SlowDynamicAPInt &
A, int64_t
B);
126SlowDynamicAPInt
operator*(
const SlowDynamicAPInt &
A, int64_t
B);
127SlowDynamicAPInt
operator/(
const SlowDynamicAPInt &
A, int64_t
B);
128SlowDynamicAPInt
operator%(
const SlowDynamicAPInt &
A, int64_t
B);
132bool operator>(int64_t
A,
const SlowDynamicAPInt &
B);
133bool operator<(int64_t
A,
const SlowDynamicAPInt &
B);
136SlowDynamicAPInt
operator+(int64_t
A,
const SlowDynamicAPInt &
B);
137SlowDynamicAPInt
operator-(int64_t
A,
const SlowDynamicAPInt &
B);
138SlowDynamicAPInt
operator*(int64_t
A,
const SlowDynamicAPInt &
B);
139SlowDynamicAPInt
operator/(int64_t
A,
const SlowDynamicAPInt &
B);
140SlowDynamicAPInt
operator%(int64_t
A,
const SlowDynamicAPInt &
B);
This file implements a class to represent arbitrary precision integral constant values and operations...
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
#define LLVM_DUMP_METHOD
Mark debug helper function definitions like dump() that should not be stripped from debug builds.
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang", "erlang-compatible garbage collector")
Class for arbitrary precision integers.
unsigned getBitWidth() const
Return the number of bits in the APInt.
A simple class providing dynamic arbitrary-precision arithmetic.
void print(raw_ostream &OS) const
SlowDynamicAPInt operator%(const SlowDynamicAPInt &O) const
This operation cannot overflow.
SlowDynamicAPInt operator*(const SlowDynamicAPInt &O) const
SlowDynamicAPInt & operator+=(const SlowDynamicAPInt &O)
SlowDynamicAPInt & operator--()
LLVM_DUMP_METHOD void dump() const
bool operator<=(const SlowDynamicAPInt &O) const
SlowDynamicAPInt & operator-=(const SlowDynamicAPInt &O)
friend SlowDynamicAPInt ceilDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)
SlowDynamicAPInt & operator*=(const SlowDynamicAPInt &O)
SlowDynamicAPInt & operator=(int64_t Val)
SlowDynamicAPInt & operator++()
SlowDynamicAPInt operator-() const
bool operator!=(const SlowDynamicAPInt &O) const
friend SlowDynamicAPInt gcd(const SlowDynamicAPInt &A, const SlowDynamicAPInt &B)
The operands must be non-negative for gcd.
friend hash_code hash_value(const SlowDynamicAPInt &X)
Overload to compute a hash_code for a SlowDynamicAPInt value.
bool operator>(const SlowDynamicAPInt &O) const
bool operator==(const SlowDynamicAPInt &O) const
friend SlowDynamicAPInt abs(const SlowDynamicAPInt &X)
Redeclarations of friend declarations above to make it discoverable by lookups.
friend SlowDynamicAPInt floorDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)
SlowDynamicAPInt operator/(const SlowDynamicAPInt &O) const
unsigned getBitWidth() const
SlowDynamicAPInt & operator/=(const SlowDynamicAPInt &O)
SlowDynamicAPInt & operator%=(const SlowDynamicAPInt &O)
bool operator<(const SlowDynamicAPInt &O) const
bool operator>=(const SlowDynamicAPInt &O) const
SlowDynamicAPInt operator+(const SlowDynamicAPInt &O) const
An opaque object representing a hash code.
This class implements an extremely fast bulk output stream that can only output to a stream.
These are wrappers over isa* function that allow them to be used in generic algorithms such as llvm:a...
SlowDynamicAPInt abs(const SlowDynamicAPInt &X)
Redeclarations of friend declarations above to make it discoverable by lookups.
bool operator>=(const SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt ceilDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)
SlowDynamicAPInt operator/(const SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt operator+(const SlowDynamicAPInt &A, int64_t B)
hash_code hash_value(const IEEEFloat &Arg)
SlowDynamicAPInt operator-(const SlowDynamicAPInt &A, int64_t B)
bool operator!=(const DenseSetImpl< ValueT, MapTy, ValueInfoT > &LHS, const DenseSetImpl< ValueT, MapTy, ValueInfoT > &RHS)
Inequality comparison for DenseSet.
SlowDynamicAPInt gcd(const SlowDynamicAPInt &A, const SlowDynamicAPInt &B)
SlowDynamicAPInt floorDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)
bool operator>(const SlowDynamicAPInt &A, int64_t B)
raw_ostream & operator<<(raw_ostream &OS, const SlowDynamicAPInt &X)
SlowDynamicAPInt & operator+=(SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt operator%(const SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt operator*(const SlowDynamicAPInt &A, int64_t B)
bool operator<=(const SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt & operator/=(SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt lcm(const SlowDynamicAPInt &A, const SlowDynamicAPInt &B)
Returns the least common multiple of A and B.
SlowDynamicAPInt mod(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)
Returns the remainder of dividing LHS by RHS.
SlowDynamicAPInt & operator*=(SlowDynamicAPInt &A, int64_t B)
bool operator<(const SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt & operator-=(SlowDynamicAPInt &A, int64_t B)
SlowDynamicAPInt & operator%=(SlowDynamicAPInt &A, int64_t B)
This is an optimization pass for GlobalISel generic memory operations.
bool operator==(const AddressRangeValuePair &LHS, const AddressRangeValuePair &RHS)