mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-14 19:49:36 +00:00
configure: Introduce per device defines
Make cl_khr_fp64 define per-device. This patch does not change the generated Makefile (for llvm 3.6, 3.7) v2: Make the device defines per LLVM version, 'all' for all versions reviewer: tstellard Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 260302
This commit is contained in:
parent
7fbb96b907
commit
4f38142feb
@ -91,16 +91,25 @@ if not cxx_compiler:
|
||||
|
||||
available_targets = {
|
||||
'r600--' : { 'devices' :
|
||||
[{'gpu' : 'cedar', 'aliases' : ['palm', 'sumo', 'sumo2', 'redwood', 'juniper']},
|
||||
{'gpu' : 'cypress', 'aliases' : ['hemlock']},
|
||||
{'gpu' : 'barts', 'aliases' : ['turks', 'caicos']},
|
||||
{'gpu' : 'cayman', 'aliases' : ['aruba']}]},
|
||||
[{'gpu' : 'cedar', 'aliases' : ['palm', 'sumo', 'sumo2', 'redwood', 'juniper'],
|
||||
'defines' : {'LLVM3.6':['cl_khr_fp64'], 'LLVM3.7':['cl_khr_fp64']}},
|
||||
{'gpu' : 'cypress', 'aliases' : ['hemlock'],
|
||||
'defines' : {'LLVM3.6':['cl_khr_fp64'], 'LLVM3.7':['cl_khr_fp64']}},
|
||||
{'gpu' : 'barts', 'aliases' : ['turks', 'caicos'],
|
||||
'defines' : {'LLVM3.6':['cl_khr_fp64'], 'LLVM3.7':['cl_khr_fp64']}},
|
||||
{'gpu' : 'cayman', 'aliases' : ['aruba'],
|
||||
'defines' : {'LLVM3.6':['cl_khr_fp64'], 'LLVM3.7':['cl_khr_fp64']}} ]},
|
||||
'amdgcn--': { 'devices' :
|
||||
[{'gpu' : 'tahiti', 'aliases' : ['pitcairn', 'verde', 'oland', 'hainan', 'bonaire', 'kabini', 'kaveri', 'hawaii', 'mullins', 'tonga','carrizo','iceland','fiji','stoney']}]},
|
||||
'nvptx--' : { 'devices' : [{'gpu' : '', 'aliases' : []}]},
|
||||
'nvptx64--' : { 'devices' : [{'gpu' : '', 'aliases' : []}] },
|
||||
'nvptx--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : []}] },
|
||||
'nvptx64--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : []}] }
|
||||
[{'gpu' : 'tahiti', 'aliases' : ['pitcairn', 'verde', 'oland', 'hainan', 'bonaire', 'kabini', 'kaveri', 'hawaii','mullins','tonga','carrizo','iceland','fiji','stoney'],
|
||||
'defines' : {'LLVM3.6':['cl_khr_fp64'], 'LLVM3.7':['cl_khr_fp64']}} ]},
|
||||
'nvptx--' : { 'devices' : [{'gpu' : '', 'aliases' : [],
|
||||
'defines' : {'all' : ['cl_khr_fp64']}}]},
|
||||
'nvptx64--' : { 'devices' : [{'gpu' : '', 'aliases' : [],
|
||||
'defines' : {'all' : ['cl_khr_fp64']}}]},
|
||||
'nvptx--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : [],
|
||||
'defines' : {'all' : ['cl_khr_fp64']}}]},
|
||||
'nvptx64--nvidiacl' : { 'devices' : [{'gpu' : '', 'aliases' : [],
|
||||
'defines' : {'all' : ['cl_khr_fp64']}}]},
|
||||
}
|
||||
|
||||
default_targets = ['nvptx--nvidiacl', 'nvptx64--nvidiacl', 'r600--', 'amdgcn--']
|
||||
@ -178,13 +187,17 @@ for target in targets:
|
||||
|
||||
for device in available_targets[target]['devices']:
|
||||
# The rule for building a .bc file for the specified architecture using clang.
|
||||
device_def_list = (device['defines']['all'] if 'all' in device['defines'] else []);
|
||||
if llvm_string_version in device['defines']:
|
||||
device_def_list += (device['defines'][llvm_string_version]);
|
||||
device_defines = ' '.join(["-D%s" % define for define in device_def_list])
|
||||
clang_bc_flags = "-target %s -I`dirname $in` %s " \
|
||||
"-fno-builtin " \
|
||||
"-Dcl_clang_storage_class_specifiers " \
|
||||
"-Dcl_khr_fp64 " \
|
||||
"%s " \
|
||||
"-Dcles_khr_int64 " \
|
||||
"-D__CLC_INTERNAL " \
|
||||
"-emit-llvm" % (target, clang_cl_includes)
|
||||
"-emit-llvm" % (target, clang_cl_includes, device_defines)
|
||||
if device['gpu'] != '':
|
||||
clang_bc_flags += ' -mcpu=' + device['gpu']
|
||||
clang_bc_rule = "CLANG_CL_BC_" + target + "_" + device['gpu']
|
||||
|
Loading…
Reference in New Issue
Block a user