mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option to the cmake build to enable them.
Summary: Historically, we had a switch in the Makefiles for turning on "expensive checks". This has never been ported to the cmake build, but the (dead-ish) code is still around. This will also make it easier to turn it on in buildbots. Reviewers: chandlerc Subscribers: jyknight, mzolotukhin, RKSimon, gberry, llvm-commits Differential Revision: http://reviews.llvm.org/D19723 llvm-svn: 268050
This commit is contained in:
parent
631087f651
commit
c8ae081a57
@ -304,6 +304,8 @@ else()
|
||||
option(LLVM_ENABLE_ASSERTIONS "Enable assertions" ON)
|
||||
endif()
|
||||
|
||||
option(LLVM_ENABLE_EXPENSIVE_CHECKS "Enable expensive checks" OFF)
|
||||
|
||||
set(LLVM_ABI_BREAKING_CHECKS "WITH_ASSERTS" CACHE STRING
|
||||
"Enable abi-breaking checks. Can be WITH_ASSERTS, FORCE_ON or FORCE_OFF.")
|
||||
|
||||
|
@ -44,6 +44,11 @@ if( LLVM_ENABLE_ASSERTIONS )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LLVM_ENABLE_EXPENSIVE_CHECKS)
|
||||
add_definitions(-DEXPENSIVE_CHECKS)
|
||||
add_definitions(-D_GLIBCXX_DEBUG)
|
||||
endif()
|
||||
|
||||
string(TOUPPER "${LLVM_ABI_BREAKING_CHECKS}" uppercase_LLVM_ABI_BREAKING_CHECKS)
|
||||
|
||||
if( uppercase_LLVM_ABI_BREAKING_CHECKS STREQUAL "WITH_ASSERTS" )
|
||||
|
@ -665,7 +665,7 @@ typename Tr::RegionT *RegionInfoBase<Tr>::createRegion(BlockT *entry,
|
||||
new RegionT(entry, exit, static_cast<RegionInfoT *>(this), DT);
|
||||
BBtoRegion.insert(std::make_pair(entry, region));
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
region->verifyRegion();
|
||||
#else
|
||||
DEBUG(region->verifyRegion());
|
||||
@ -764,7 +764,7 @@ void RegionInfoBase<Tr>::buildRegionsTree(DomTreeNodeT *N, RegionT *region) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
template <class Tr>
|
||||
bool RegionInfoBase<Tr>::VerifyRegionInfo = true;
|
||||
#else
|
||||
@ -798,7 +798,7 @@ void RegionInfoBase<Tr>::releaseMemory() {
|
||||
|
||||
template <class Tr>
|
||||
void RegionInfoBase<Tr>::verifyAnalysis() const {
|
||||
// Do only verify regions if explicitely activated using XDEBUG or
|
||||
// Do only verify regions if explicitely activated using EXPENSIVE_CHECKS or
|
||||
// -verify-region-info
|
||||
if (!RegionInfoBase<Tr>::VerifyRegionInfo)
|
||||
return;
|
||||
|
@ -453,7 +453,7 @@ public:
|
||||
|
||||
// Compare the result of the tree walk and the dfs numbers, if expensive
|
||||
// checks are enabled.
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
assert((!DFSInfoValid ||
|
||||
(dominatedBySlowTreeWalk(A, B) == B->DominatedBy(A))) &&
|
||||
"Tree walk disagrees with dfs numbers!");
|
||||
|
@ -38,7 +38,7 @@ template class llvm::LoopBase<BasicBlock, Loop>;
|
||||
template class llvm::LoopInfoBase<BasicBlock, Loop>;
|
||||
|
||||
// Always verify loopinfo if expensive checking is enabled.
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
static bool VerifyLoopInfo = true;
|
||||
#else
|
||||
static bool VerifyLoopInfo = false;
|
||||
|
@ -111,7 +111,7 @@ MaxBruteForceIterations("scalar-evolution-max-iterations", cl::ReallyHidden,
|
||||
"derived loop"),
|
||||
cl::init(100));
|
||||
|
||||
// FIXME: Enable this with XDEBUG when the test suite is clean.
|
||||
// FIXME: Enable this with EXPENSIVE_CHECKS when the test suite is clean.
|
||||
static cl::opt<bool>
|
||||
VerifySCEV("verify-scev",
|
||||
cl::desc("Verify ScalarEvolution's backedge taken counts (slow)"));
|
||||
|
@ -204,7 +204,7 @@ bool DAGTypeLegalizer::run() {
|
||||
|
||||
// Now that we have a set of nodes to process, handle them all.
|
||||
while (!Worklist.empty()) {
|
||||
#ifndef XDEBUG
|
||||
#ifndef EXPENSIVE_CHECKS
|
||||
if (EnableExpensiveChecks)
|
||||
#endif
|
||||
PerformExpensiveChecks();
|
||||
@ -394,7 +394,7 @@ NodeDone:
|
||||
}
|
||||
}
|
||||
|
||||
#ifndef XDEBUG
|
||||
#ifndef EXPENSIVE_CHECKS
|
||||
if (EnableExpensiveChecks)
|
||||
#endif
|
||||
PerformExpensiveChecks();
|
||||
|
@ -7294,9 +7294,9 @@ void llvm::checkForCycles(const llvm::SDNode *N,
|
||||
bool force) {
|
||||
#ifndef NDEBUG
|
||||
bool check = force;
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
check = true;
|
||||
#endif // XDEBUG
|
||||
#endif // EXPENSIVE_CHECKS
|
||||
if (check) {
|
||||
assert(N && "Checking nonexistent SDNode");
|
||||
SmallPtrSet<const SDNode*, 32> visited;
|
||||
|
@ -28,7 +28,7 @@
|
||||
using namespace llvm;
|
||||
|
||||
// Always verify dominfo if expensive checking is enabled.
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
static bool VerifyDomInfo = true;
|
||||
#else
|
||||
static bool VerifyDomInfo = false;
|
||||
|
@ -2155,7 +2155,7 @@ void ARMFrameLowering::adjustForSegmentedStacks(
|
||||
|
||||
PrevStackMBB->addSuccessor(McrMBB);
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
MF.verify();
|
||||
#endif
|
||||
}
|
||||
|
@ -1298,7 +1298,7 @@ bool HexagonCommonGEP::runOnFunction(Function &F) {
|
||||
materialize(Loc);
|
||||
removeDeadCode();
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
// Run this only when expensive checks are enabled.
|
||||
verifyFunction(F);
|
||||
#endif
|
||||
|
@ -350,7 +350,7 @@ void SparcFrameLowering::remapRegsForLeafProc(MachineFunction &MF) const {
|
||||
}
|
||||
|
||||
assert(verifyLeafProcRegUse(&MRI));
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
MF.verify(0, "After LeafProc Remapping");
|
||||
#endif
|
||||
}
|
||||
|
@ -2279,7 +2279,7 @@ void X86FrameLowering::adjustForSegmentedStacks(
|
||||
checkMBB->addSuccessor(allocMBB);
|
||||
checkMBB->addSuccessor(&PrologueMBB);
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
MF.verify();
|
||||
#endif
|
||||
}
|
||||
@ -2423,7 +2423,7 @@ void X86FrameLowering::adjustForHiPEPrologue(
|
||||
incStackMBB->addSuccessor(&PrologueMBB, {99, 100});
|
||||
incStackMBB->addSuccessor(incStackMBB, {1, 100});
|
||||
}
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
MF.verify();
|
||||
#endif
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ public:
|
||||
const_iterator begin() const { return Vector.begin(); }
|
||||
const_iterator end() const { return Vector.end(); }
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
~BlotMapVector() {
|
||||
assert(Vector.size() >= Map.size()); // May differ due to blotting.
|
||||
for (typename MapTy::const_iterator I = Map.begin(), E = Map.end(); I != E;
|
||||
|
@ -62,7 +62,7 @@ static cl::opt<unsigned>
|
||||
RematerializationThreshold("spp-rematerialization-threshold", cl::Hidden,
|
||||
cl::init(6));
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
static bool ClobberNonLive = true;
|
||||
#else
|
||||
static bool ClobberNonLive = false;
|
||||
|
@ -805,7 +805,7 @@ void CachingMemorySSAWalker::invalidateInfo(MemoryAccess *MA) {
|
||||
CachedUpwardsClobberingAccess.clear();
|
||||
}
|
||||
|
||||
#ifdef XDEBUG
|
||||
#ifdef EXPENSIVE_CHECKS
|
||||
// Run this only when expensive checks are enabled.
|
||||
verifyRemoved(MA);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user