Allow targets to override generic implementations
authorTom Stellard <thomas.stellard@amd.com>
Wed, 26 Jun 2013 18:20:05 +0000 (18:20 +0000)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 26 Jun 2013 18:20:05 +0000 (18:20 +0000)
Targets can override generic implementations by adding a file called
OVERRIDES in $(TARGET_DIR)/lib and listing the generic implementations
that it wants to override.  For example, to override get_group_id() and
get_global_size() you would add these lines to the OVERRIDES file:

workitem/get_group_id.cl
workitem/get_global_size.cl

llvm-svn: 184982

libclc/configure.py

index a35537a..ec443ad 100755 (executable)
@@ -142,6 +142,14 @@ for target in targets:
   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: