1#pragma once
2
3#include <cstdint>
4
5namespace c10 {
6
7enum 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)
16constexpr // Our current MSVC version has a bug that doesn't allow this to be constexpr.
17#endif
18inline 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