[PATCH] D24070: Setting fp trapping mode and denormal type

Sjoerd Meijer via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 1 09:37:52 PDT 2016


SjoerdMeijer added inline comments.

================
Comment at: llvm/trunk/lib/Target/ARM/ARMAsmPrinter.cpp:455-461
@@ -455,1 +454,9 @@
+  if (TT.isOSBinFormatELF()) {
+    if (!M.empty()) {
+      // FIXME: this is a hack, but it is not more broken than
+      // resetTargetOptions already was. The purpose of reading the target
+      // options here is to read function attributes denormal and trapping-math
+      // that we want to map onto build attributes.
+      TM.resetTargetOptions(*M.begin());
+    }
     emitAttributes();
----------------
SjoerdMeijer wrote:
> echristo wrote:
> > No, this isn't the right place or way to do this.
> > 
> > You are going to want to look at iterating over the functions in a module in order to collect and collate options if you want to set a global asm marker.
> Ok, I will fix this.
I have looked at this again and got well confused (this is a messy bit of llvm). But I came to the same conclusion as earlier: it is not more broken than it already was. For example, options NoNaNsFPMath and NoInfsFPMath have the same problem. I think we all agree that the right approach is to "look at iterating over the functions in a module in order to collect and collate options". Do you want to fix this now? I started drafting a patch that fixes this issue for the options I introduced, but I am not happy with it. It does things in a different way than the other options, and I am not sure TargetMachine is the right place (I can upload the patch though if that is helpful).  




Repository:
  rL LLVM

https://reviews.llvm.org/D24070





More information about the llvm-commits mailing list