xref: /llvm-project/mlir/lib/CAPI/Debug/Debug.cpp (revision 8f21909c2fa15c06107b3dd5999a918e1f5fed0d)
1 //===- Debug.cpp - C Interface for MLIR/LLVM Debugging Functions ----------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "mlir-c/Debug.h"
10 #include "mlir-c/Support.h"
11 
12 #include "mlir/CAPI/Support.h"
13 
14 #include "llvm/Support/Debug.h"
15 
mlirEnableGlobalDebug(bool enable)16 void mlirEnableGlobalDebug(bool enable) { llvm::DebugFlag = enable; }
17 
mlirIsGlobalDebugEnabled()18 bool mlirIsGlobalDebugEnabled() { return llvm::DebugFlag; }
19 
mlirSetGlobalDebugType(const char * type)20 void mlirSetGlobalDebugType(const char *type) {
21   // Depending on the NDEBUG flag, this name can be either a function or a macro
22   // that expands to something that isn't a funciton call, so we cannot
23   // explicitly prefix it with `llvm::` or declare `using` it.
24   using namespace llvm;
25   setCurrentDebugType(type);
26 }
27 
mlirSetGlobalDebugTypes(const char ** types,intptr_t n)28 void mlirSetGlobalDebugTypes(const char **types, intptr_t n) {
29   using namespace llvm;
30   setCurrentDebugTypes(types, n);
31 }
32 
mlirIsCurrentDebugType(const char * type)33 bool mlirIsCurrentDebugType(const char *type) {
34   using namespace llvm;
35   return isCurrentDebugType(type);
36 }
37