/*========================== begin_copyright_notice ============================

Copyright (C) 2017-2021 Intel Corporation

SPDX-License-Identifier: MIT

============================= end_copyright_notice ===========================*/

// Definition of integer Registry-key Values
// (may merge this into igc_flags.h's macro)
enum {
    // EnableVISAStructurizer
    FLAG_SCF_Disable = 0,      // UCF (goto/join)
    FLAG_SCF_Default = 1,      // SCF as much as possible
    FLAG_SCF_Aggressive = 2,   // May do more transformations to favor SCF, not
                               // necesssarily better perf than FLAG_SCF_Default
    FLAG_SCF_UCFOnly = 3,      // [debugging] Using the structurizer, but only generate
                               // UCF (unstructured control flow, that is, goto/join/jmpi).
                               // Note that turnning off (0) the structurizer will end up
                               // with UCF as well, but going through different code path

    // Generic debug level
    FLAG_LEVEL_0 = 0,          // Debugging is off
    FLAG_LEVEL_1 = 1,          // Level 1
    FLAG_LEVEL_2 = 2,          // Level 2 : level 1 + more

    // Function-call-handling control
    FLAG_FCALL_DEFAULT = 0,    // default, compiler best-effort
    FLAG_FCALL_FORCE_INLINE = 1,
    FLAG_FCALL_FORCE_SUBROUTINE = 2,
    FLAG_FCALL_FORCE_STACKCALL = 3,
    FLAG_FCALL_FORCE_INDIRECTCALL = 4,

    // General flags with compiler-defined default value
    DEFAULTABLE_FLAG_DEFAULT = 0,
    DEFAULTABLE_FLAG_ENABLE = 1,
    DEFAULTABLE_FLAG_DISABLE = 2,

    // Debug information strip control
    FLAG_DEBUG_INFO_DONTSTRIP = 0, // default, do not strip debug information
    FLAG_DEBUG_INFO_STRIP_ALL = 1, // discard all debug information
    FLAG_DEBUG_INFO_STRIP_NONLINE = 2, // downgrade to line info only

    FLAG_LAST_Entry
};

