| //===- subzero/src/IceBuildDefs.h - Translator build defines ----*- C++ -*-===// |
| // |
| // The Subzero Code Generator |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| /// |
| /// \file |
| /// This file defines constexpr functions to query various #define values. |
| /// |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SUBZERO_SRC_ICEBUILDDEFS_H |
| #define SUBZERO_SRC_ICEBUILDDEFS_H |
| |
| namespace Ice { |
| namespace BuildDefs { |
| |
| // The ALLOW_* etc. symbols must be #defined to zero or non-zero. |
| constexpr bool disableIrGen() { return ALLOW_DISABLE_IR_GEN; } |
| constexpr bool dump() { return ALLOW_DUMP; } |
| constexpr bool llvmCl() { return ALLOW_LLVM_CL; } |
| constexpr bool llvmIr() { return ALLOW_LLVM_IR; } |
| constexpr bool llvmIrAsInput() { return ALLOW_LLVM_IR_AS_INPUT; } |
| constexpr bool minimal() { return ALLOW_MINIMAL_BUILD; } |
| |
| // NDEBUG can be undefined, or defined to something arbitrary. |
| constexpr bool asserts() { |
| #ifdef NDEBUG |
| return false; |
| #else // !NDEBUG |
| return true; |
| #endif // !NDEBUG |
| } |
| |
| // ALLOW_EXTRA_VALIDATION can be undefined, or defined to something non-zero. |
| constexpr bool extraValidation() { |
| #if ALLOW_EXTRA_VALIDATION |
| return true; |
| #else // !ALLOW_EXTRA_VALIDATION |
| return false; |
| #endif // !ALLOW_EXTRA_VALIDATION |
| } |
| |
| } // end of namespace BuildDefs |
| } // end of namespace Ice |
| |
| #endif // SUBZERO_SRC_ICEBUILDDEFS_H |