summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2013-12-04 03:40:56 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2013-12-04 03:40:56 +0000
commit67eade63fd205548d76ba84ad5a4034e88ca39e4 (patch)
tree4a7fd4fc044e7b28df6d9aa87afd537ac44ab934 /clang
parent014529f595686dde20e8e3863decf6e7d5826b8c (diff)
downloadbcm5719-llvm-67eade63fd205548d76ba84ad5a4034e88ca39e4.tar.gz
bcm5719-llvm-67eade63fd205548d76ba84ad5a4034e88ca39e4.zip
check-clang: Introduce get_llvm_config_props in clang/test/lit.cfg.
In trunk, we can use features as below: aarch64-registered-target hexagon-registered-target msp430-registered-target r600-registered-target systemz-registered-target xcore-registered-target Each of them, as below, implies corresponding subtargets: arm-registered-target -- arm, thumb mips-registered-target -- mips, mips64, mips64el, mipsel nvptx-registered-target -- nvptx, nvptx64 sparc-registered-target -- sparc, sparcv9 x86-registered-target -- x86, x86-64 They will be renamed: cppbackend-registered-target -- was "cpp". Unused in trunk. powerpc-registered-target -- was "ppc32", "ppc64" and "ppc64le". The feature "asserts" is also taken from llvm-config. llvm-svn: 196347
Diffstat (limited to 'clang')
-rw-r--r--clang/test/CMakeLists.txt1
-rw-r--r--clang/test/lit.cfg27
2 files changed, 26 insertions, 2 deletions
diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt
index a11b83a854c..e7731189a2c 100644
--- a/clang/test/CMakeLists.txt
+++ b/clang/test/CMakeLists.txt
@@ -44,6 +44,7 @@ endif()
if( NOT CLANG_BUILT_STANDALONE )
list(APPEND CLANG_TEST_DEPS
+ llvm-config
llc opt FileCheck count not llvm-symbolizer
)
diff --git a/clang/test/lit.cfg b/clang/test/lit.cfg
index 19daa61a64f..807b231358a 100644
--- a/clang/test/lit.cfg
+++ b/clang/test/lit.cfg
@@ -324,8 +324,31 @@ if len(llc_props['set_of_targets']) > 0:
else:
lit_config.fatal('No Targets Registered with the LLVM Tools!')
-if llc_props['enable_assertions']:
- config.available_features.add('asserts')
+# Returns set of available features, registered-target(s) and asserts.
+def get_llvm_config_props():
+ set_of_features = set()
+
+ cmd = subprocess.Popen(
+ [
+ os.path.join(llvm_tools_dir, 'llvm-config'),
+ '--assertion-mode',
+ '--targets-built',
+ ],
+ stdout=subprocess.PIPE
+ )
+ # 1st line corresponds to --assertion-mode, "ON" or "OFF".
+ line = cmd.stdout.readline().strip().decode('ascii')
+ if line == "ON":
+ set_of_features.add('asserts')
+
+ # 2nd line corresponds to --targets-built, like;
+ # AArch64 ARM CppBackend X86
+ for arch in cmd.stdout.readline().decode('ascii').split():
+ set_of_features.add(arch.lower() + '-registered-target')
+
+ return set_of_features
+
+config.available_features.update(get_llvm_config_props())
if lit.util.which('xmllint'):
config.available_features.add('xmllint')
OpenPOWER on IntegriCloud