xref: /aosp_15_r20/external/pytorch/aten/src/ATen/core/dispatch/OperatorOptions.h (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
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
toString(AliasAnalysisKind aliasAnalysisKind)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