mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-18 14:31:27 +00:00
lit support for REQUIRES: asserts.
Take #2. Don't piggyback on the existing config.build_mode. Instead, define a new lit feature for each build feature we need (currently just "asserts"). Teach both autoconf'd and cmake'd Makefiles to define this feature within test/lit.site.cfg. This doesn't require any lit harness changes and should be more robust across build systems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133664 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1a3ab63cb5
commit
f2a58425cd
@ -36,13 +36,8 @@ if( LLVM_ENABLE_ASSERTIONS )
|
|||||||
# explicitly undefine it:
|
# explicitly undefine it:
|
||||||
if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
|
if( uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
|
||||||
add_definitions( -UNDEBUG )
|
add_definitions( -UNDEBUG )
|
||||||
set(LLVM_BUILD_MODE "Release")
|
|
||||||
else()
|
|
||||||
set(LLVM_BUILD_MODE "Debug")
|
|
||||||
endif()
|
endif()
|
||||||
set(LLVM_BUILD_MODE "${LLVM_BUILD_MODE}+Asserts")
|
|
||||||
else()
|
else()
|
||||||
set(LLVM_BUILD_MODE "Release")
|
|
||||||
if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
|
if( NOT uppercase_CMAKE_BUILD_TYPE STREQUAL "RELEASE" )
|
||||||
if( NOT MSVC_IDE AND NOT XCODE )
|
if( NOT MSVC_IDE AND NOT XCODE )
|
||||||
add_definitions( -DNDEBUG )
|
add_definitions( -DNDEBUG )
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
; RUN: llc < %s -march=x86-64 -stress-sched | FileCheck %s
|
; RUN: llc < %s -march=x86-64 -stress-sched | FileCheck %s
|
||||||
; REQUIRES: Asserts
|
; REQUIRES: asserts
|
||||||
; Test interference between physreg aliases during preRAsched.
|
; Test interference between physreg aliases during preRAsched.
|
||||||
; mul wants an operand in AL, but call clobbers it.
|
; mul wants an operand in AL, but call clobbers it.
|
||||||
|
|
||||||
|
@ -171,15 +171,21 @@ site.exp: FORCE
|
|||||||
@test ! -f site.exp || mv site.exp site.bak
|
@test ! -f site.exp || mv site.exp site.bak
|
||||||
@mv site.tmp site.exp
|
@mv site.tmp site.exp
|
||||||
|
|
||||||
|
ifeq ($(DISABLE_ASSERTIONS),1)
|
||||||
|
ENABLE_ASSERTIONS=0
|
||||||
|
else
|
||||||
|
ENABLE_ASSERTIONS=1
|
||||||
|
endif
|
||||||
|
|
||||||
lit.site.cfg: site.exp
|
lit.site.cfg: site.exp
|
||||||
@echo "Making LLVM 'lit.site.cfg' file..."
|
@echo "Making LLVM 'lit.site.cfg' file..."
|
||||||
@$(ECHOPATH) s=@LLVM_SOURCE_DIR@=$(LLVM_SRC_ROOT)=g > lit.tmp
|
@$(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_BINARY_DIR@=$(LLVM_OBJ_ROOT)=g >> lit.tmp
|
||||||
@$(ECHOPATH) s=@LLVM_TOOLS_DIR@=$(ToolDir)=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=@LLVMGCCDIR@=$(LLVMGCCDIR)=g >> lit.tmp
|
||||||
@$(ECHOPATH) s=@PYTHON_EXECUTABLE@=python=g >> lit.tmp
|
@$(ECHOPATH) s=@PYTHON_EXECUTABLE@=python=g >> lit.tmp
|
||||||
@$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=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 > $@
|
@sed -f lit.tmp $(PROJ_SRC_DIR)/lit.site.cfg.in > $@
|
||||||
@-rm -f lit.tmp
|
@-rm -f lit.tmp
|
||||||
|
|
||||||
|
@ -306,3 +306,6 @@ else:
|
|||||||
|
|
||||||
if loadable_module:
|
if loadable_module:
|
||||||
config.available_features.add('loadable_module')
|
config.available_features.add('loadable_module')
|
||||||
|
|
||||||
|
if config.enable_assertions:
|
||||||
|
config.available_features.add('asserts')
|
||||||
|
@ -5,9 +5,9 @@ config.llvm_obj_root = "@LLVM_BINARY_DIR@"
|
|||||||
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
|
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
|
||||||
config.llvmgcc_dir = "@LLVMGCCDIR@"
|
config.llvmgcc_dir = "@LLVMGCCDIR@"
|
||||||
config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@"
|
config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@"
|
||||||
config.llvm_build_modes = "@LLVM_BUILD_MODE@".split('+')
|
|
||||||
config.python_executable = "@PYTHON_EXECUTABLE@"
|
config.python_executable = "@PYTHON_EXECUTABLE@"
|
||||||
config.enable_shared = @ENABLE_SHARED@
|
config.enable_shared = @ENABLE_SHARED@
|
||||||
|
config.enable_assertions = @LLVM_ENABLE_ASSERTIONS@
|
||||||
|
|
||||||
# Support substitution of the tools_dir with user parameters. This is
|
# Support substitution of the tools_dir with user parameters. This is
|
||||||
# used when we can't determine the tool dir at configuration time.
|
# used when we can't determine the tool dir at configuration time.
|
||||||
|
@ -473,11 +473,9 @@ def parseIntegratedTestScript(test, normalize_slashes=False):
|
|||||||
if script[-1][-1] == '\\':
|
if script[-1][-1] == '\\':
|
||||||
return (Test.UNRESOLVED, "Test has unterminated run lines (with '\\')")
|
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
|
missing_required_features = [f for f in requires
|
||||||
if f not in test.config.available_features
|
if f not in test.config.available_features]
|
||||||
and f not in test.config.llvm_build_modes]
|
|
||||||
|
|
||||||
if missing_required_features:
|
if missing_required_features:
|
||||||
msg = ', '.join(missing_required_features)
|
msg = ', '.join(missing_required_features)
|
||||||
return (Test.UNSUPPORTED,
|
return (Test.UNSUPPORTED,
|
||||||
|
@ -74,7 +74,6 @@ class TestingConfig:
|
|||||||
|
|
||||||
def clone(self, path):
|
def clone(self, path):
|
||||||
# FIXME: Chain implementations?
|
# FIXME: Chain implementations?
|
||||||
# See attribute chaining in finish()
|
|
||||||
#
|
#
|
||||||
# FIXME: Allow extra parameters?
|
# FIXME: Allow extra parameters?
|
||||||
cfg = TestingConfig(self, self.name, self.suffixes, self.test_format,
|
cfg = TestingConfig(self, self.name, self.suffixes, self.test_format,
|
||||||
@ -102,9 +101,3 @@ class TestingConfig:
|
|||||||
# files. Should we distinguish them?
|
# files. Should we distinguish them?
|
||||||
self.test_source_root = str(self.test_source_root)
|
self.test_source_root = str(self.test_source_root)
|
||||||
self.excludes = set(self.excludes)
|
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)
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user