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

llvm-svn: 236113
This commit is contained in:
Tom Stellard 2015-04-29 15:37:06 +00:00
parent 5f34d44354
commit ba742f58af
3 changed files with 24 additions and 1 deletions

View File

@ -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)

View File

@ -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 }

View File

@ -0,0 +1 @@
subnormal_helper_func.ll