1 | #pragma once |
---|---|
2 | |
3 | #include <cstdint> |
4 | |
5 | namespace c10 { |
6 | |
7 | enum class AliasAnalysisKind : uint8_t { |
8 | INTERNAL_SPECIAL_CASE, |
9 | CONSERVATIVE, // The most conservative alias analysis type, assumes |
10 | // side-effects. This is the default analysis. |
11 | FROM_SCHEMA, |
12 | PURE_FUNCTION |
13 | }; |
14 | |
15 | #if !defined(_MSC_VER) |
16 | constexpr // Our current MSVC version has a bug that doesn't allow this to be constexpr. |
17 | #endif |
18 | inline const char* toString(AliasAnalysisKind aliasAnalysisKind) { |
19 | return (aliasAnalysisKind == AliasAnalysisKind::CONSERVATIVE) |
20 | ? "CONSERVATIVE" |
21 | : (aliasAnalysisKind == AliasAnalysisKind::FROM_SCHEMA) |
22 | ? "FROM_SCHEMA" |
23 | : (aliasAnalysisKind == AliasAnalysisKind::PURE_FUNCTION) |
24 | ? "PURE_FUNCTION" |
25 | : (aliasAnalysisKind == AliasAnalysisKind::INTERNAL_SPECIAL_CASE) |
26 | ? "INTERNAL_SPECIAL_CASE" |
27 | : "UNKNOWN"; |
28 | } |
29 | |
30 | } // namespace c10 |
31 |