On Wed, Mar 13, 2013 at 09:57:22PM -0500, Aaron Watry wrote: > The python changes in this file look good to me. I haven't done a > line-by-line review of the SI changes. > > I tested this patch and v2 of the related mesa series on r600g (radeon > 6850) with a recent LLVM and fresh mesa master as of this evening. No real > change in the piglit CL test success/failure rate. > > Do you have any interest in trying to merge your changes to date back into > the upstream libclc codebase? If you think it's a good idea, but don't > have time to do it yourself, let me know and I'll try to re-base the series > of patches.
I have been submitting patches for upstream libclc, but it's been several months since I've gotten a response. For now, I'll probably just push it to my own libclc repo, and if I start getting responses for my other patches, I'll submit it upstream. > > --Aaron > > > On Tue, Mar 12, 2013 at 3:20 PM, Tom Stellard <t...@stellard.net> wrote: > > > From: Tom Stellard <thomas.stell...@amd.com> > > > > --- > > configure.py | 119 > > ++++++++++++++++++++++++++++++++++++--------------------- > > 1 files changed, 75 insertions(+), 44 deletions(-) > > > > diff --git a/configure.py b/configure.py > > index d861c24..dfd9a8f 100755 > > --- a/configure.py > > +++ b/configure.py > > @@ -68,6 +68,15 @@ llvm_clang = os.path.join(llvm_bindir, 'clang') > > llvm_link = os.path.join(llvm_bindir, 'llvm-link') > > llvm_opt = os.path.join(llvm_bindir, 'opt') > > > > +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' : 'tahiti', 'aliases' : ['pitcairn', 'verde', > > 'oland']}]} > > +} > > + > > default_targets = ['r600--'] > > > > targets = args > > @@ -127,50 +136,72 @@ for target in targets: > > > > clang_cl_includes = ' '.join(["-I%s" % incdir for incdir in incdirs]) > > > > - # The rule for building a .bc file for the specified architecture using > > clang. > > - clang_bc_flags = "-target %s -I`dirname $in` %s " \ > > - "-Dcl_clang_storage_class_specifiers " \ > > - "-Dcl_khr_fp64 " \ > > - "-emit-llvm" % (target, clang_cl_includes) > > - clang_bc_rule = "CLANG_CL_BC_" + target > > - c_compiler_rule(b, clang_bc_rule, "LLVM-CC", llvm_clang, clang_bc_flags) > > - > > - objects = [] > > - sources_seen = set() > > - > > - for libdir in libdirs: > > - subdir_list_file = os.path.join(libdir, 'SOURCES') > > - manifest_deps.add(subdir_list_file) > > - override_list_file = os.path.join(libdir, 'OVERRIDES') > > - > > - # Add target overrides > > - if os.path.exists(override_list_file): > > - for override in open(override_list_file).readlines(): > > - override = override.rstrip() > > - sources_seen.add(override) > > - > > - for src in open(subdir_list_file).readlines(): > > - src = src.rstrip() > > - if src not in sources_seen: > > - sources_seen.add(src) > > - obj = os.path.join(target, 'lib', src + '.bc') > > - objects.append(obj) > > - src_file = os.path.join(libdir, src) > > - ext = os.path.splitext(src)[1] > > - if ext == '.ll': > > - b.build(obj, 'LLVM_AS', src_file) > > - else: > > - b.build(obj, clang_bc_rule, src_file) > > - > > - builtins_link_bc = os.path.join(target, 'lib', 'builtins.link.bc') > > - builtins_opt_bc = os.path.join(target, 'lib', 'builtins.opt.bc') > > - builtins_bc = os.path.join('built_libs', target + '.bc') > > - b.build(builtins_link_bc, "LLVM_LINK", objects) > > - b.build(builtins_opt_bc, "OPT", builtins_link_bc) > > - b.build(builtins_bc, "PREPARE_BUILTINS", builtins_opt_bc, > > prepare_builtins) > > - install_files_bc.append((builtins_bc, builtins_bc)) > > - install_deps.append(builtins_bc) > > - b.default(builtins_bc) > > + for device in available_targets[target]['devices']: > > + # The rule for building a .bc file for the specified architecture > > using clang. > > + clang_bc_flags = "-target %s -I`dirname $in` %s " \ > > + "-Dcl_clang_storage_class_specifiers " \ > > + "-Dcl_khr_fp64 " \ > > + "-emit-llvm" % (target, clang_cl_includes) > > + if device['gpu'] != '': > > + clang_bc_flags += ' -mcpu=' + device['gpu'] > > + clang_bc_rule = "CLANG_CL_BC_" + target > > + c_compiler_rule(b, clang_bc_rule, "LLVM-CC", llvm_clang, > > clang_bc_flags) > > + > > + objects = [] > > + sources_seen = set() > > + > > + if device['gpu'] == '': > > + full_target_name = target > > + obj_suffix = '' > > + else: > > + full_target_name = device['gpu'] + '-' + target > > + obj_suffix = '.' + device['gpu'] > > + > > + for libdir in libdirs: > > + subdir_list_file = os.path.join(libdir, 'SOURCES') > > + manifest_deps.add(subdir_list_file) > > + override_list_file = os.path.join(libdir, 'OVERRIDES') > > + > > + # Add target overrides > > + if os.path.exists(override_list_file): > > + for override in open(override_list_file).readlines(): > > + override = override.rstrip() > > + sources_seen.add(override) > > + > > + for src in open(subdir_list_file).readlines(): > > + src = src.rstrip() > > + # Only add the base filename (e.g. Add get_global_id instead of > > + # get_global_id.cl) to sources_seen. > > + # This allows targets to overide generic .cl sources with .ll > > sources. > > + src_base = os.path.splitext(src)[0] > > + if src_base not in sources_seen: > > + sources_seen.add(src_base) > > + obj = os.path.join(target, 'lib', src + obj_suffix + '.bc') > > + objects.append(obj) > > + src_file = os.path.join(libdir, src) > > + ext = os.path.splitext(src)[1] > > + if ext == '.ll': > > + b.build(obj, 'LLVM_AS', src_file) > > + else: > > + b.build(obj, clang_bc_rule, src_file) > > + > > + builtins_link_bc = os.path.join(target, 'lib', 'builtins.link' + > > obj_suffix + '.bc') > > + builtins_opt_bc = os.path.join(target, 'lib', 'builtins.opt' + > > obj_suffix + '.bc') > > + builtins_bc = os.path.join('built_libs', full_target_name + '.bc') > > + b.build(builtins_link_bc, "LLVM_LINK", objects) > > + b.build(builtins_opt_bc, "OPT", builtins_link_bc) > > + b.build(builtins_bc, "PREPARE_BUILTINS", builtins_opt_bc, > > prepare_builtins) > > + install_files_bc.append((builtins_bc, builtins_bc)) > > + install_deps.append(builtins_bc) > > + for alias in device['aliases']: > > + b.rule("CREATE_ALIAS", "ln -fs %s $out" % > > os.path.basename(builtins_bc) > > + ,"CREATE-ALIAS $out") > > + > > + alias_file = os.path.join('built_libs', alias + '-' + target + > > '.bc') > > + b.build(alias_file, "CREATE_ALIAS", builtins_bc) > > + install_files_bc.append((alias_file, alias_file)) > > + install_deps.append(alias_file) > > + b.default(builtins_bc) > > > > > > install_cmd = ' && '.join(['mkdir -p $(DESTDIR)/%(dst)s && cp -r %(src)s > > $(DESTDIR)/%(dst)s' % > > -- > > 1.7.3.4 > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev