summaryrefslogtreecommitdiff
path: root/llvm/lib/Support/DynamicAPInt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Support/DynamicAPInt.cpp')
-rw-r--r--llvm/lib/Support/DynamicAPInt.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/llvm/lib/Support/DynamicAPInt.cpp b/llvm/lib/Support/DynamicAPInt.cpp
new file mode 100644
index 000000000000..cae034cf6da6
--- /dev/null
+++ b/llvm/lib/Support/DynamicAPInt.cpp
@@ -0,0 +1,27 @@
+//===- DynamicAPInt.cpp - DynamicAPInt Implementation -----------*- C++ -*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+#include "llvm/ADT/DynamicAPInt.h"
+#include "llvm/ADT/Hashing.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm;
+
+hash_code llvm::hash_value(const DynamicAPInt &X) {
+ if (X.isSmall())
+ return llvm::hash_value(X.getSmall());
+ return detail::hash_value(X.getLarge());
+}
+
+raw_ostream &DynamicAPInt::print(raw_ostream &OS) const {
+ if (isSmall())
+ return OS << ValSmall;
+ return OS << ValLarge;
+}
+
+void DynamicAPInt::dump() const { print(dbgs()); }