yaxunl added inline comments.

================
Comment at: clang/lib/CodeGen/BackendUtil.cpp:486
+  if (LangOpts.HIP)
+    Options.AllowFPOpFusion = llvm::FPOpFusion::Standard;
+
----------------
tra wrote:
> yaxunl wrote:
> > tra wrote:
> > > I don't think it's a good idea to force this.
> > > 
> > > Perhaps a better way to address this would be to set HIP-specific default 
> > > to Standard where CUDA does it:
> > > https://github.com/llvm/llvm-project/blob/master/clang/lib/Frontend/CompilerInvocation.cpp#L2415
> > > 
> > > Currently HIP inherits this setting from CUDA.
> > We want to keep -ffp-contract=fast for frontend so that we can continue 
> > emitting fmul/fadd insts with contract flag in IR for HIP programs. We only 
> > want to change the backend fp fuse option. Currently there is no separate 
> > clang option to set backend fp fuse option.
> I do not see any references to `AllowFPOpFusion` anywhere under `clang/` 
> other than in this function.
> Perhaps I'm missing something. How/where does it make a difference in the 
> front-end other than setting the option for the back-end?
> 
> 
> 
-ffp-contract not only sets backend fp fuse option, but also setFPContractMode

https://github.com/llvm/llvm-project/blob/2e204e23911b1f8bd1463535da40c6e48747a138/clang/include/clang/Basic/LangOptions.h#L413

which enables allowFPContractAcrossStatement

https://github.com/llvm/llvm-project/blob/2e204e23911b1f8bd1463535da40c6e48747a138/clang/include/clang/Basic/LangOptions.h#L439

which sets llvm::FastMathFlags

https://github.com/llvm/llvm-project/blob/d3205bbca3e0002d76282878986993e7e7994779/clang/lib/CodeGen/CodeGenFunction.cpp#L129

which causes fmul/fadd to have contract flag








CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90174/new/

https://reviews.llvm.org/D90174

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to