[Mesa-dev] [PATCH 02/11] ac: set +auto-waitcnt-before-barrier when needed

Marek Olšák maraeo at gmail.com
Mon Jun 18 23:33:03 UTC 2018


From: Marek Olšák <marek.olsak at amd.com>

This removes useless s_waitcnt before barriers.
Only radeonsi uses this function.
---
 src/amd/common/ac_llvm_util.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c
index be2d92b4c08..99cc677edce 100644
--- a/src/amd/common/ac_llvm_util.c
+++ b/src/amd/common/ac_llvm_util.c
@@ -126,27 +126,29 @@ const char *ac_get_llvm_processor_name(enum radeon_family family)
 }
 
 LLVMTargetMachineRef ac_create_target_machine(enum radeon_family family,
 					      enum ac_target_machine_options tm_options,
 					      const char **out_triple)
 {
 	assert(family >= CHIP_TAHITI);
 	char features[256];
 	const char *triple = (tm_options & AC_TM_SUPPORTS_SPILL) ? "amdgcn-mesa-mesa3d" : "amdgcn--";
 	LLVMTargetRef target = ac_get_llvm_target(triple);
+	bool barrier_does_waitcnt = true; /* TODO: not for Vega20 */
 
 	snprintf(features, sizeof(features),
-		 "+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals%s%s%s%s",
+		 "+DumpCode,+vgpr-spilling,-fp32-denormals,+fp64-denormals%s%s%s%s%s",
 		 tm_options & AC_TM_SISCHED ? ",+si-scheduler" : "",
 		 tm_options & AC_TM_FORCE_ENABLE_XNACK ? ",+xnack" : "",
 		 tm_options & AC_TM_FORCE_DISABLE_XNACK ? ",-xnack" : "",
-		 tm_options & AC_TM_PROMOTE_ALLOCA_TO_SCRATCH ? ",-promote-alloca" : "");
+		 tm_options & AC_TM_PROMOTE_ALLOCA_TO_SCRATCH ? ",-promote-alloca" : "",
+		 barrier_does_waitcnt ? ",+auto-waitcnt-before-barrier" : "");
 	
 	LLVMTargetMachineRef tm = LLVMCreateTargetMachine(
 	                             target,
 	                             triple,
 	                             ac_get_llvm_processor_name(family),
 				     features,
 	                             LLVMCodeGenLevelDefault,
 	                             LLVMRelocDefault,
 	                             LLVMCodeModelDefault);
 
-- 
2.17.1



More information about the mesa-dev mailing list