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)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