P4 to Git Change 1266028 by smekhano@stas-rampitec-hsa on 2016/05/06 13:22:26

SWDEV-93545 - HSA HLC: produce v_fma_f32 instead of v_mad_f32/v_mac_f32 on GFX9 if denorms are supported

	1. Added means to know HW target for HSAIL BE.
	2. Simplified compiler lib logic in handling target capabilities.
	3. Used target info to fuse mul/add into fma_f32 on GFX9.
	Previously it was disabled because mad/mac always flush. v_fma_f32 does not flush,
	but only fast starting with GFX9.

	Testing: smoke, precheckin
	Reviewed by Nikolay Haustov and Evgeny Mankov

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.cpp#69 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#142 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#17 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#26 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAIL.h#42 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILFusion.td#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILISelDAGToDAG.cpp#70 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILISelLowering.cpp#115 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILInstructions.td#21 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILTargetMachine.cpp#56 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/tlst/llc_opt.tlst#95 edit
このコミットが含まれているのは:
foreman committed 2016-05-06 13:39:37 -04:00
1 親 feca1fb254
コミット 4de15fc86f
4ファイル変更
+41 -21

検索条件に一致するファイルはありません

+1 -6
ファイルの表示
@@ -750,12 +750,7 @@ amdcl::OCLLinker::link(llvm::Module* input, std::vector<llvm::Module*> &libs)
|| chip == "Hawaii"
|| chip == "Carrizo"
|| chip == "");
setISAVersion((chip == "Hawaii") ? 701 :
((chip == "Iceland" || chip == "Tonga") ? 800 :
((chip == "Carrizo") ? 801 :
((chip == "Fiji" || chip == "Baffin" || chip == "Ellesmere") ? 804 :
((chip == "Stoney") ? 810 :
((chip == "") ? 900 : 700))))));
setISAVersion(getIsaType(aclutGetTargetInfo(Elf())));
LLVMBinary()->getContext().setAMDLLVMContextHook(&hookup_);
std::string clp_errmsg;