Mesa (staging/20.1): Revert "ac: reassociate FP expressions for inexact instructions for radeonsi"

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 5 16:57:07 UTC 2020


Module: Mesa
Branch: staging/20.1
Commit: 12d23b4a08769c7875553a839b4e9cd4d9727d80
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=12d23b4a08769c7875553a839b4e9cd4d9727d80

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Apr 30 03:57:50 2020 -0400

Revert "ac: reassociate FP expressions for inexact instructions for radeonsi"

This reverts commit cf2f3c27533d8721abed4cdd4dfb00d4d53e8a0f.

It breaks shadows in Unigine Superposition.

Fixes: cf2f3c27533d8721abed4cdd4dfb00d4d53e8a0f

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4837>
(cherry picked from commit b97cc41aa203fd9fb9f5cf5f5aa7fd40f567917d)

---

 .pick_status.json               | 2 +-
 src/amd/llvm/ac_llvm_helper.cpp | 9 ---------
 2 files changed, 1 insertion(+), 10 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 7ca87624dda..8ade84022ec 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -157,7 +157,7 @@
         "description": "Revert \"ac: reassociate FP expressions for inexact instructions for radeonsi\"",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "cf2f3c27533d8721abed4cdd4dfb00d4d53e8a0f"
     },
diff --git a/src/amd/llvm/ac_llvm_helper.cpp b/src/amd/llvm/ac_llvm_helper.cpp
index 97b9a1a035a..f5383344dd4 100644
--- a/src/amd/llvm/ac_llvm_helper.cpp
+++ b/src/amd/llvm/ac_llvm_helper.cpp
@@ -101,11 +101,6 @@ LLVMBuilderRef ac_create_builder(LLVMContextRef ctx,
 		 */
 		flags.setAllowContract(); /* contract */
 
-		/* Allow reassociation transformations for floating-point
-		 * instructions. This may dramatically change results.
-		 */
-		flags.setAllowReassoc(); /* reassoc */
-
 		llvm::unwrap(builder)->setFastMathFlags(flags);
 		break;
 	}
@@ -118,13 +113,11 @@ bool ac_disable_inexact_math(LLVMBuilderRef builder)
 {
 	auto *b = llvm::unwrap(builder);
 	llvm::FastMathFlags flags = b->getFastMathFlags();
-	assert(flags.allowContract() == flags.allowReassoc());
 
 	if (!flags.allowContract())
 		return false;
 
 	flags.setAllowContract(false);
-	flags.setAllowReassoc(false);
 	b->setFastMathFlags(flags);
 	return true;
 }
@@ -133,13 +126,11 @@ void ac_restore_inexact_math(LLVMBuilderRef builder, bool value)
 {
 	auto *b = llvm::unwrap(builder);
 	llvm::FastMathFlags flags = b->getFastMathFlags();
-	assert(flags.allowContract() == flags.allowReassoc());
 
 	if (flags.allowContract() == value)
 		return;
 
 	flags.setAllowContract(value);
-	flags.setAllowReassoc(value);
 	b->setFastMathFlags(flags);
 }
 



More information about the mesa-commit mailing list