LLVM: include/llvm/ADT/SlowDynamicAPInt.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18#ifndef LLVM_ADT_SLOWDYNAMICAPINT_H

19#define LLVM_ADT_SLOWDYNAMICAPINT_H

20

23

24namespace llvm {

27}

28

30

31

32

33

34

37

38public:

43 LLVM_ABI explicit operator int64_t() const;

61

64

70

73

74

76

77

79

80 unsigned getBitWidth() const { return Val.getBitWidth(); }

81

83

84#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)

86#endif

87};

88

90 X.print(OS);

91 return OS;

92}

93

94

95

96

97

98LLVM_ABI SlowDynamicAPInt mod(const SlowDynamicAPInt &LHS,

99 const SlowDynamicAPInt &RHS);

100

101

102LLVM_ABI SlowDynamicAPInt lcm(const SlowDynamicAPInt &A,

103 const SlowDynamicAPInt &B);

104

105

106

107LLVM_ABI SlowDynamicAPInt abs(const SlowDynamicAPInt &X);

109 const SlowDynamicAPInt &RHS);

111 const SlowDynamicAPInt &RHS);

112LLVM_ABI SlowDynamicAPInt gcd(const SlowDynamicAPInt &A,

113 const SlowDynamicAPInt &B);

115

116

117

118

124

131LLVM_ABI SlowDynamicAPInt operator+(const SlowDynamicAPInt &A, int64_t B);

132LLVM_ABI SlowDynamicAPInt operator-(const SlowDynamicAPInt &A, int64_t B);

133LLVM_ABI SlowDynamicAPInt operator*(const SlowDynamicAPInt &A, int64_t B);

134LLVM_ABI SlowDynamicAPInt operator/(const SlowDynamicAPInt &A, int64_t B);

135LLVM_ABI SlowDynamicAPInt operator%(const SlowDynamicAPInt &A, int64_t B);

136

143LLVM_ABI SlowDynamicAPInt operator+(int64_t A, const SlowDynamicAPInt &B);

144LLVM_ABI SlowDynamicAPInt operator-(int64_t A, const SlowDynamicAPInt &B);

145LLVM_ABI SlowDynamicAPInt operator*(int64_t A, const SlowDynamicAPInt &B);

146LLVM_ABI SlowDynamicAPInt operator/(int64_t A, const SlowDynamicAPInt &B);

147LLVM_ABI SlowDynamicAPInt operator%(int64_t A, const SlowDynamicAPInt &B);

148}

149

150#endif

This file implements a class to represent arbitrary precision integral constant values and operations...

static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")

static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")

#define LLVM_DUMP_METHOD

Mark debug helper function definitions like dump() that should not be stripped from debug builds.

static TableGen::Emitter::OptClass< SkeletonEmitter > X("gen-skeleton-class", "Generate example skeleton class")

Class for arbitrary precision integers.

This class provides support for dynamic arbitrary-precision arithmetic.

A simple class providing dynamic arbitrary-precision arithmetic.

Definition SlowDynamicAPInt.h:35

LLVM_ABI friend SlowDynamicAPInt gcd(const SlowDynamicAPInt &A, const SlowDynamicAPInt &B)

The operands must be non-negative for gcd.

LLVM_ABI void print(raw_ostream &OS) const

LLVM_ABI SlowDynamicAPInt()

LLVM_ABI SlowDynamicAPInt operator%(const SlowDynamicAPInt &O) const

This operation cannot overflow.

LLVM_ABI friend SlowDynamicAPInt ceilDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)

LLVM_ABI SlowDynamicAPInt operator*(const SlowDynamicAPInt &O) const

LLVM_ABI SlowDynamicAPInt & operator+=(const SlowDynamicAPInt &O)

LLVM_ABI SlowDynamicAPInt & operator--()

LLVM_ABI bool operator<=(const SlowDynamicAPInt &O) const

LLVM_ABI SlowDynamicAPInt & operator-=(const SlowDynamicAPInt &O)

LLVM_ABI SlowDynamicAPInt & operator*=(const SlowDynamicAPInt &O)

friend DynamicAPInt

Definition SlowDynamicAPInt.h:78

LLVM_ABI SlowDynamicAPInt & operator=(int64_t Val)

LLVM_ABI SlowDynamicAPInt & operator++()

LLVM_ABI SlowDynamicAPInt operator-() const

LLVM_ABI bool operator!=(const SlowDynamicAPInt &O) const

LLVM_ABI bool operator>(const SlowDynamicAPInt &O) const

LLVM_ABI SlowDynamicAPInt(int64_t Val)

LLVM_ABI bool operator==(const SlowDynamicAPInt &O) const

LLVM_ABI SlowDynamicAPInt operator/(const SlowDynamicAPInt &O) const

unsigned getBitWidth() const

Definition SlowDynamicAPInt.h:80

LLVM_DUMP_METHOD void dump() const

LLVM_ABI SlowDynamicAPInt & operator/=(const SlowDynamicAPInt &O)

LLVM_ABI SlowDynamicAPInt & operator%=(const SlowDynamicAPInt &O)

LLVM_ABI friend hash_code hash_value(const SlowDynamicAPInt &X)

Overload to compute a hash_code for a SlowDynamicAPInt value.

LLVM_ABI bool operator<(const SlowDynamicAPInt &O) const

LLVM_ABI friend SlowDynamicAPInt abs(const SlowDynamicAPInt &X)

Redeclarations of friend declarations above to make it discoverable by lookups.

LLVM_ABI friend SlowDynamicAPInt floorDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)

LLVM_ABI bool operator>=(const SlowDynamicAPInt &O) const

LLVM_ABI 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.

A self-contained host- and target-independent arbitrary-precision floating-point software implementat...

LLVM_ABI SlowDynamicAPInt abs(const SlowDynamicAPInt &X)

Redeclarations of friend declarations above to make it discoverable by lookups.

LLVM_ABI bool operator>=(const SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt ceilDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)

LLVM_ABI SlowDynamicAPInt operator/(const SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt operator+(const SlowDynamicAPInt &A, int64_t B)

LLVM_ABI hash_code hash_value(const IEEEFloat &Arg)

LLVM_ABI 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.

LLVM_ABI SlowDynamicAPInt gcd(const SlowDynamicAPInt &A, const SlowDynamicAPInt &B)

LLVM_ABI SlowDynamicAPInt floorDiv(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)

LLVM_ABI bool operator>(const SlowDynamicAPInt &A, int64_t B)

raw_ostream & operator<<(raw_ostream &OS, const SlowDynamicAPInt &X)

Definition SlowDynamicAPInt.h:89

LLVM_ABI SlowDynamicAPInt & operator+=(SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt operator%(const SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt operator*(const SlowDynamicAPInt &A, int64_t B)

LLVM_ABI bool operator<=(const SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt & operator/=(SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt lcm(const SlowDynamicAPInt &A, const SlowDynamicAPInt &B)

Returns the least common multiple of A and B.

bool operator==(const DenseSetImpl< ValueT, MapTy, ValueInfoT > &LHS, const DenseSetImpl< ValueT, MapTy, ValueInfoT > &RHS)

Equality comparison for DenseSet.

LLVM_ABI SlowDynamicAPInt mod(const SlowDynamicAPInt &LHS, const SlowDynamicAPInt &RHS)

Returns the remainder of dividing LHS by RHS.

LLVM_ABI SlowDynamicAPInt & operator*=(SlowDynamicAPInt &A, int64_t B)

LLVM_ABI bool operator<(const SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt & operator-=(SlowDynamicAPInt &A, int64_t B)

LLVM_ABI SlowDynamicAPInt & operator%=(SlowDynamicAPInt &A, int64_t B)

This is an optimization pass for GlobalISel generic memory operations.