[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