diff options
author | Tom Stellard <thomas.stellard@amd.com> | 2015-04-29 15:37:06 +0000 |
---|---|---|
committer | Tom Stellard <thomas.stellard@amd.com> | 2015-04-29 15:37:06 +0000 |
commit | 5a4891db3b68582ecec97e2437cbe2e25577c058 (patch) | |
tree | 9e5ad89541a2b1b1a7cff2ae6a98a4bd60bb95b6 | |
parent | fb4cee5174bb39553dc3bbc9ee3748c2d641ba91 (diff) |
Allow compilation depending to the LLVM version
It allows to keep temporary compatibilty with older version.
For exemple, this can be use when change are not to large.
Patch by: EdB
git-svn-id: https://llvm.org/svn/llvm-project/libclc/trunk@236113 91177308-0d34-0410-b5e6-96231b3b80d8
-rwxr-xr-x | configure.py | 16 | ||||
-rw-r--r-- | generic/lib/LLVM3.6/subnormal_helper_func.ll | 8 | ||||
-rw-r--r-- | generic/lib/SOURCES_LLVM3.6 | 1 |
3 files changed, 24 insertions, 1 deletions
diff --git a/configure.py b/configure.py index 7d4b537..1072ca8 100755 --- a/configure.py +++ b/configure.py @@ -70,6 +70,8 @@ if (int(llvm_version[0]) != 3 and int(llvm_version[1]) != 6): print "libclc requires LLVM 3.6" sys.exit(1) +llvm_string_version = 'LLVM' + llvm_version[0] + '.' + llvm_version[1] + llvm_system_libs = llvm_config(['--system-libs']) llvm_bindir = llvm_config(['--bindir']) llvm_core_libs = llvm_config(['--libs', 'core', 'bitreader', 'bitwriter']) + ' ' + \ @@ -189,6 +191,7 @@ for target in targets: objects = [] sources_seen = set() + compats_seen = set() if device['gpu'] == '': full_target_name = target @@ -201,6 +204,14 @@ for target in targets: subdir_list_file = os.path.join(libdir, 'SOURCES') manifest_deps.add(subdir_list_file) override_list_file = os.path.join(libdir, 'OVERRIDES') + compat_list_file = os.path.join(libdir, + 'SOURCES_' + llvm_string_version) + + # Build compat list + if os.path.exists(compat_list_file): + for compat in open(compat_list_file).readlines(): + compat = compat.rstrip() + compats_seen.add(compat) # Add target overrides if os.path.exists(override_list_file): @@ -214,7 +225,10 @@ for target in targets: sources_seen.add(src) obj = os.path.join(target, 'lib', src + obj_suffix + '.bc') objects.append(obj) - src_file = os.path.join(libdir, src) + src_path = libdir + if src in compats_seen: + src_path = os.path.join(libdir, llvm_string_version) + src_file = os.path.join(src_path, src) ext = os.path.splitext(src)[1] if ext == '.ll': b.build(obj, 'LLVM_AS', src_file) diff --git a/generic/lib/LLVM3.6/subnormal_helper_func.ll b/generic/lib/LLVM3.6/subnormal_helper_func.ll new file mode 100644 index 0000000..0e9764b --- /dev/null +++ b/generic/lib/LLVM3.6/subnormal_helper_func.ll @@ -0,0 +1,8 @@ +@__CLC_SUBNORMAL_DISABLE = external global i1 + +define i1 @__clc_subnormals_disabled() #0 { + %disable = load i1* @__CLC_SUBNORMAL_DISABLE + ret i1 %disable +} + +attributes #0 = { alwaysinline } diff --git a/generic/lib/SOURCES_LLVM3.6 b/generic/lib/SOURCES_LLVM3.6 new file mode 100644 index 0000000..ee09f01 --- /dev/null +++ b/generic/lib/SOURCES_LLVM3.6 @@ -0,0 +1 @@ +subnormal_helper_func.ll |