radeon: Add work-around for missing Hainan support in clang < 3.6 v2
authorTom Stellard <thomas.stellard@amd.com>
Tue, 19 Aug 2014 20:18:19 +0000 (13:18 -0700)
committerTom Stellard <thomas.stellard@amd.com>
Thu, 21 Aug 2014 13:12:11 +0000 (06:12 -0700)
v2:
  - Add missing break.

https://bugs.freedesktop.org/show_bug.cgi?id=82709

CC: "10.2" <mesa-stable@lists.freedesktop.org>
src/gallium/drivers/radeon/r600_pipe_common.c

index a6bba8f0a94d47c8a72043aea28aa6759f697fda..dec80639d1d65d2479556b91f492edcff4c682cd 100644 (file)
@@ -499,7 +499,20 @@ static int r600_get_compute_param(struct pipe_screen *screen,
        //TODO: select these params by asic
        switch (param) {
        case PIPE_COMPUTE_CAP_IR_TARGET: {
-               const char *gpu = r600_get_llvm_processor_name(rscreen->family);
+               const char *gpu;
+               switch(rscreen->family) {
+               /* Clang < 3.6 is missing Hainan in its list of
+                * GPUs, so we need to use the name of a similar GPU.
+                */
+#if HAVE_LLVM < 0x0306
+               case CHIP_HAINAN:
+                       gpu = "oland";
+                       break;
+#endif
+               default:
+                       gpu = r600_get_llvm_processor_name(rscreen->family);
+                       break;
+               }
                if (ret) {
                        sprintf(ret, "%s-r600--", gpu);
                }