[Mesa-dev] [PATCH] radv/ac: workaround regression in llvm 4.0 release

Dave Airlie airlied at gmail.com
Tue Mar 14 21:21:30 UTC 2017


On 15 March 2017 at 07:17, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> LLVM 4.0 released with a pretty messy regression, that hopefully
> get fixed in the future.
>
> This work around was proposed by Tom, and it fixes the CTS regressions
> here at least, I'm not sure if this will cause any major side effects,
> but correctness over speed and all that.
>
> radeonsi should possibly consider the same workaround until an llvm
> fix can be found.
>

I also deliberately only put this for LLVM 4.0 in the hope llvm will
get fixed before
5 releases.

Dave.

> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/amd/common/ac_llvm_util.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c
> index a2fe631..da12aaa 100644
> --- a/src/amd/common/ac_llvm_util.c
> +++ b/src/amd/common/ac_llvm_util.c
> @@ -26,7 +26,7 @@
>  #include "ac_llvm_util.h"
>  #include "util/bitscan.h"
>  #include <llvm-c/Core.h>
> -
> +#include <llvm-c/Support.h>
>  #include "c11/threads.h"
>
>  #include <assert.h>
> @@ -39,6 +39,17 @@ static void ac_init_llvm_target()
>         LLVMInitializeAMDGPUTarget();
>         LLVMInitializeAMDGPUTargetMC();
>         LLVMInitializeAMDGPUAsmPrinter();
> +
> +       /*
> +        * Workaround for bug in llvm 4.0 that causes image intrinsics
> +        * to disappear.
> +        * https://reviews.llvm.org/D26348
> +        */
> +#if HAVE_LLVM == 0x0400
> +       const char *argv[2] = {"mesa", "-simplifycfg-sink-common=false"};
> +       LLVMParseCommandLineOptions(2, argv, NULL);
> +#endif
> +
>  }
>
>  static once_flag ac_init_llvm_target_once_flag = ONCE_FLAG_INIT;
> --
> 2.9.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list