diff --git a/cmake/modules/HandleLLVMOptions.cmake b/cmake/modules/HandleLLVMOptions.cmake index e7256842617..d0427acbd5d 100644 --- a/cmake/modules/HandleLLVMOptions.cmake +++ b/cmake/modules/HandleLLVMOptions.cmake @@ -36,13 +36,8 @@ if( LLVM_ENABLE_ASSERTIONS ) # explicitly undefine it: if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" ) add_definitions( -UNDEBUG ) - set(LLVM_BUILD_MODE "Release") - else() - set(LLVM_BUILD_MODE "Debug") endif() - set(LLVM_BUILD_MODE "${LLVM_BUILD_MODE}+Asserts") else() - set(LLVM_BUILD_MODE "Release") if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" ) if( NOT MSVC_IDE AND NOT XCODE ) add_definitions( -DNDEBUG ) diff --git a/test/CodeGen/X86/2011-06-14-PreschedRegalias.ll b/test/CodeGen/X86/2011-06-14-PreschedRegalias.ll index 053237596c8..114b985f71d 100644 --- a/test/CodeGen/X86/2011-06-14-PreschedRegalias.ll +++ b/test/CodeGen/X86/2011-06-14-PreschedRegalias.ll @@ -1,5 +1,5 @@ ; RUN: llc < %s -march=x86-64 -stress-sched | FileCheck %s -; REQUIRES: Asserts +; REQUIRES: asserts ; Test interference between physreg aliases during preRAsched. ; mul wants an operand in AL, but call clobbers it. diff --git a/test/Makefile b/test/Makefile index e38226a468d..4e34e7222e5 100644 --- a/test/Makefile +++ b/test/Makefile @@ -171,15 +171,21 @@ site.exp: FORCE @test ! -f site.exp || mv site.exp site.bak @mv site.tmp site.exp +ifeq ($(DISABLE_ASSERTIONS),1) +ENABLE_ASSERTIONS=0 +else +ENABLE_ASSERTIONS=1 +endif + lit.site.cfg: site.exp @echo "Making LLVM 'lit.site.cfg' file..." @$(ECHOPATH) s=@LLVM_SOURCE_DIR@=$(LLVM_SRC_ROOT)=g > lit.tmp @$(ECHOPATH) s=@LLVM_BINARY_DIR@=$(LLVM_OBJ_ROOT)=g >> lit.tmp @$(ECHOPATH) s=@LLVM_TOOLS_DIR@=$(ToolDir)=g >> lit.tmp - @$(ECHOPATH) s=@LLVM_BUILD_MODE@=$(BuildMode)=g >> lit.tmp @$(ECHOPATH) s=@LLVMGCCDIR@=$(LLVMGCCDIR)=g >> lit.tmp @$(ECHOPATH) s=@PYTHON_EXECUTABLE@=python=g >> lit.tmp @$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g >> lit.tmp + @$(ECHOPATH) s=@LLVM_ENABLE_ASSERTIONS@=$(ENABLE_ASSERTIONS)=g >> lit.tmp @sed -f lit.tmp $(PROJ_SRC_DIR)/lit.site.cfg.in > $@ @-rm -f lit.tmp diff --git a/test/lit.cfg b/test/lit.cfg index 9a2f74c21c9..ef56473af58 100644 --- a/test/lit.cfg +++ b/test/lit.cfg @@ -306,3 +306,6 @@ else: if loadable_module: config.available_features.add('loadable_module') + +if config.enable_assertions: + config.available_features.add('asserts') diff --git a/test/lit.site.cfg.in b/test/lit.site.cfg.in index a61920f229b..6c33831124a 100644 --- a/test/lit.site.cfg.in +++ b/test/lit.site.cfg.in @@ -5,9 +5,9 @@ config.llvm_obj_root = "@LLVM_BINARY_DIR@" config.llvm_tools_dir = "@LLVM_TOOLS_DIR@" config.llvmgcc_dir = "@LLVMGCCDIR@" config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@" -config.llvm_build_modes = "@LLVM_BUILD_MODE@".split('+') config.python_executable = "@PYTHON_EXECUTABLE@" config.enable_shared = @ENABLE_SHARED@ +config.enable_assertions = @LLVM_ENABLE_ASSERTIONS@ # Support substitution of the tools_dir with user parameters. This is # used when we can't determine the tool dir at configuration time. diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py index 83603cc7989..80d0ba11839 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -473,11 +473,9 @@ def parseIntegratedTestScript(test, normalize_slashes=False): if script[-1][-1] == '\\': return (Test.UNRESOLVED, "Test has unterminated run lines (with '\\')") - # Check that we have the required features or build modes: + # Check that we have the required features: missing_required_features = [f for f in requires - if f not in test.config.available_features - and f not in test.config.llvm_build_modes] - + if f not in test.config.available_features] if missing_required_features: msg = ', '.join(missing_required_features) return (Test.UNSUPPORTED, diff --git a/utils/lit/lit/TestingConfig.py b/utils/lit/lit/TestingConfig.py index 2d8d3d0165f..25bb3417de4 100644 --- a/utils/lit/lit/TestingConfig.py +++ b/utils/lit/lit/TestingConfig.py @@ -74,7 +74,6 @@ class TestingConfig: def clone(self, path): # FIXME: Chain implementations? - # See attribute chaining in finish() # # FIXME: Allow extra parameters? cfg = TestingConfig(self, self.name, self.suffixes, self.test_format, @@ -102,9 +101,3 @@ class TestingConfig: # files. Should we distinguish them? self.test_source_root = str(self.test_source_root) self.excludes = set(self.excludes) - - # chain attributes by copying them - if self.parent: - for k,v in vars(self.parent).items(): - if not hasattr(self, k): - setattr(self, k, v)