diff options
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c index 4f355e58490..205686a771a 100644 --- a/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c +++ b/src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c @@ -1256,6 +1256,8 @@ void si_llvm_context_init(struct si_shader_context *ctx, const struct tgsi_token *tokens) { struct lp_type type; + LLVMTargetDataRef data_layout = LLVMCreateTargetDataLayout(tm); + char *data_layout_str = LLVMCopyStringRepOfTargetData(data_layout); /* Initialize the gallivm object: * We are only using the module, context, and builder fields of this struct. @@ -1273,6 +1275,10 @@ void si_llvm_context_init(struct si_shader_context *ctx, ctx->gallivm.context); LLVMSetTarget(ctx->gallivm.module, "amdgcn--"); + LLVMSetDataLayout(ctx->gallivm.module, data_layout_str); + LLVMDisposeTargetData(data_layout); + LLVMDisposeMessage(data_layout_str); + bool unsafe_fpmath = (sscreen->b.debug_flags & DBG_UNSAFE_MATH) != 0; ctx->gallivm.builder = lp_create_builder(ctx->gallivm.context, unsafe_fpmath); |