Index: src/IceIntrinsics.h |
diff --git a/src/IceIntrinsics.h b/src/IceIntrinsics.h |
index 2bd1a68a965f9efb551089753cb1ab38cba8c175..aea0bd202f12eb63e6c8b5193fea6d8ee6a03fbf 100644 |
--- a/src/IceIntrinsics.h |
+++ b/src/IceIntrinsics.h |
@@ -16,6 +16,7 @@ |
#define SUBZERO_SRC_ICEINTRINSICS_H |
#include "IceDefs.h" |
+#include "IceStringPool.h" |
#include "IceTypes.h" |
namespace Ice { |
@@ -29,8 +30,8 @@ class Intrinsics { |
Intrinsics &operator=(const Intrinsics &) = delete; |
public: |
- Intrinsics(); |
- ~Intrinsics(); |
+ explicit Intrinsics(GlobalContext *Ctx); |
+ ~Intrinsics() = default; |
/// Some intrinsics allow overloading by type. This enum collapses all |
/// overloads into a single ID, but the type can still be recovered by the |
@@ -160,11 +161,11 @@ public: |
/// found, sets Error to false and returns the reference. If not found, sets |
/// Error to true and returns nullptr (indicating an unknown "llvm.foo" |
/// intrinsic). |
- const FullIntrinsicInfo *find(const IceString &Name, bool &Error) const; |
+ const FullIntrinsicInfo *find(GlobalString Name, bool &Error) const; |
private: |
// TODO(jvoung): May want to switch to something like LLVM's StringMap. |
- using IntrinsicMap = std::map<IceString, FullIntrinsicInfo>; |
+ using IntrinsicMap = std::unordered_map<GlobalString, FullIntrinsicInfo>; |
IntrinsicMap Map; |
}; |