mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-18 10:32:48 +02:00
Cleanup some problems with LLVM_ENABLE_DUMP in release builds, and
always set LLVM_ENABLE_DUMP=ON for +Asserts builds. Differential Revision: https://reviews.llvm.org/D38306 llvm-svn: 314346
This commit is contained in:
parent
950342cfe3
commit
0e8c8d4830
@ -388,15 +388,19 @@ option(LLVM_ENABLE_LLD "Use lld as C and C++ linker." OFF)
|
|||||||
option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
|
option(LLVM_ENABLE_PEDANTIC "Compile with pedantic enabled." ON)
|
||||||
option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)
|
option(LLVM_ENABLE_WERROR "Fail and stop if a warning is triggered." OFF)
|
||||||
|
|
||||||
|
option(LLVM_ENABLE_DUMP "Enable dump functions in release builds" OFF)
|
||||||
|
|
||||||
if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" )
|
if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "DEBUG" )
|
||||||
option(LLVM_ENABLE_ASSERTIONS "Enable assertions" OFF)
|
option(LLVM_ENABLE_ASSERTIONS "Enable assertions" OFF)
|
||||||
else()
|
else()
|
||||||
option(LLVM_ENABLE_ASSERTIONS "Enable assertions" ON)
|
option(LLVM_ENABLE_ASSERTIONS "Enable assertions" ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(LLVM_ENABLE_EXPENSIVE_CHECKS "Enable expensive checks" OFF)
|
if( LLVM_ENABLE_ASSERTIONS )
|
||||||
|
set(LLVM_ENABLE_DUMP ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
option(LLVM_ENABLE_DUMP "Enable dump functions in release builds" OFF)
|
option(LLVM_ENABLE_EXPENSIVE_CHECKS "Enable expensive checks" OFF)
|
||||||
|
|
||||||
set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING
|
set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING
|
||||||
"Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.")
|
"Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.")
|
||||||
|
@ -84,10 +84,6 @@ if(LLVM_ENABLE_EXPENSIVE_CHECKS)
|
|||||||
add_definitions(-D_GLIBCXX_DEBUG)
|
add_definitions(-D_GLIBCXX_DEBUG)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(LLVM_ENABLE_DUMP)
|
|
||||||
add_definitions(-DLLVM_ENABLE_DUMP)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
string(TOUPPER "${LLVM_ABI_BREAKING_CHECKS}" uppercase_LLVM_ABI_BREAKING_CHECKS)
|
string(TOUPPER "${LLVM_ABI_BREAKING_CHECKS}" uppercase_LLVM_ABI_BREAKING_CHECKS)
|
||||||
|
|
||||||
if( uppercase_LLVM_ABI_BREAKING_CHECKS STREQUAL "WITH_ASSERTS" )
|
if( uppercase_LLVM_ABI_BREAKING_CHECKS STREQUAL "WITH_ASSERTS" )
|
||||||
|
@ -575,9 +575,7 @@ public:
|
|||||||
/// preserve conservative kill flag information.
|
/// preserve conservative kill flag information.
|
||||||
void clearKillFlags(unsigned Reg) const;
|
void clearKillFlags(unsigned Reg) const;
|
||||||
|
|
||||||
#ifndef NDEBUG
|
|
||||||
void dumpUses(unsigned RegNo) const;
|
void dumpUses(unsigned RegNo) const;
|
||||||
#endif
|
|
||||||
|
|
||||||
/// Returns true if PhysReg is unallocatable and constant throughout the
|
/// Returns true if PhysReg is unallocatable and constant throughout the
|
||||||
/// function. Writing to a constant register has no effect.
|
/// function. Writing to a constant register has no effect.
|
||||||
|
@ -776,9 +776,7 @@ public:
|
|||||||
/// available instruction, or NULL if there are multiple candidates.
|
/// available instruction, or NULL if there are multiple candidates.
|
||||||
SUnit *pickOnlyChoice();
|
SUnit *pickOnlyChoice();
|
||||||
|
|
||||||
#ifndef NDEBUG
|
|
||||||
void dumpScheduledState() const;
|
void dumpScheduledState() const;
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Base class for GenericScheduler. This class maintains information about
|
/// Base class for GenericScheduler. This class maintains information about
|
||||||
|
@ -116,7 +116,7 @@ public:
|
|||||||
return SchedModel.getProcResource(PIdx);
|
return SchedModel.getProcResource(PIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
const char *getResourceName(unsigned PIdx) const {
|
const char *getResourceName(unsigned PIdx) const {
|
||||||
if (!PIdx)
|
if (!PIdx)
|
||||||
return "MOps";
|
return "MOps";
|
||||||
|
@ -347,6 +347,9 @@
|
|||||||
/* Has gcc/MSVC atomic intrinsics */
|
/* Has gcc/MSVC atomic intrinsics */
|
||||||
#cmakedefine01 LLVM_HAS_ATOMICS
|
#cmakedefine01 LLVM_HAS_ATOMICS
|
||||||
|
|
||||||
|
/* Define if LLVM_ENABLE_DUMP is enabled */
|
||||||
|
#cmakedefine LLVM_ENABLE_DUMP
|
||||||
|
|
||||||
/* Host triple LLVM will be executed on */
|
/* Host triple LLVM will be executed on */
|
||||||
#cmakedefine LLVM_HOST_TRIPLE "${LLVM_HOST_TRIPLE}"
|
#cmakedefine LLVM_HOST_TRIPLE "${LLVM_HOST_TRIPLE}"
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ struct InstrItinerary;
|
|||||||
|
|
||||||
/// Define a kind of processor resource that will be modeled by the scheduler.
|
/// Define a kind of processor resource that will be modeled by the scheduler.
|
||||||
struct MCProcResourceDesc {
|
struct MCProcResourceDesc {
|
||||||
#ifndef NDEBUG
|
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
const char *Name;
|
const char *Name;
|
||||||
#endif
|
#endif
|
||||||
unsigned NumUnits; // Number of resource of this kind
|
unsigned NumUnits; // Number of resource of this kind
|
||||||
@ -102,7 +102,7 @@ struct MCSchedClassDesc {
|
|||||||
static const unsigned short InvalidNumMicroOps = UINT16_MAX;
|
static const unsigned short InvalidNumMicroOps = UINT16_MAX;
|
||||||
static const unsigned short VariantNumMicroOps = UINT16_MAX - 1;
|
static const unsigned short VariantNumMicroOps = UINT16_MAX - 1;
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
const char* Name;
|
const char* Name;
|
||||||
#endif
|
#endif
|
||||||
unsigned short NumMicroOps;
|
unsigned short NumMicroOps;
|
||||||
|
@ -355,7 +355,7 @@ public:
|
|||||||
|
|
||||||
} // end anonymous namespace
|
} // end anonymous namespace
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||||
static void printDebugLoc(const DebugLoc &DL, raw_ostream &CommentOS,
|
static void printDebugLoc(const DebugLoc &DL, raw_ostream &CommentOS,
|
||||||
const LLVMContext &Ctx) {
|
const LLVMContext &Ctx) {
|
||||||
if (!DL)
|
if (!DL)
|
||||||
|
@ -32,6 +32,7 @@ ScoreboardHazardRecognizer::ScoreboardHazardRecognizer(
|
|||||||
const char *ParentDebugType)
|
const char *ParentDebugType)
|
||||||
: ScheduleHazardRecognizer(), DebugType(ParentDebugType), ItinData(II),
|
: ScheduleHazardRecognizer(), DebugType(ParentDebugType), ItinData(II),
|
||||||
DAG(SchedDAG) {
|
DAG(SchedDAG) {
|
||||||
|
(void)DebugType;
|
||||||
// Determine the maximum depth of any itinerary. This determines the depth of
|
// Determine the maximum depth of any itinerary. This determines the depth of
|
||||||
// the scoreboard. We always make the scoreboard at least 1 cycle deep to
|
// the scoreboard. We always make the scoreboard at least 1 cycle deep to
|
||||||
// avoid dealing with the boundary condition.
|
// avoid dealing with the boundary condition.
|
||||||
|
@ -1237,7 +1237,7 @@ void SubtargetEmitter::EmitSchedModel(raw_ostream &OS) {
|
|||||||
OS << "#ifdef DBGFIELD\n"
|
OS << "#ifdef DBGFIELD\n"
|
||||||
<< "#error \"<target>GenSubtargetInfo.inc requires a DBGFIELD macro\"\n"
|
<< "#error \"<target>GenSubtargetInfo.inc requires a DBGFIELD macro\"\n"
|
||||||
<< "#endif\n"
|
<< "#endif\n"
|
||||||
<< "#ifndef NDEBUG\n"
|
<< "#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)\n"
|
||||||
<< "#define DBGFIELD(x) x,\n"
|
<< "#define DBGFIELD(x) x,\n"
|
||||||
<< "#else\n"
|
<< "#else\n"
|
||||||
<< "#define DBGFIELD(x)\n"
|
<< "#define DBGFIELD(x)\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user