================
@@ -183,11 +183,12 @@ class LLVM_LIBRARY_VISIBILITY WebAssembly32TargetInfo
                                    const TargetOptions &Opts)
       : WebAssemblyTargetInfo(T, Opts) {
     if (T.isOSEmscripten())
-      resetDataLayout("e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-f128:64-n32:64-"
-                      "S128-ni:1:10:20");
-    else
       resetDataLayout(
-          "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-n32:64-S128-ni:1:10:20");
+          "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-f128:64-n32:64-"
+          "S128-ni:1:10:20");
+    else
+      resetDataLayout("e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-n32:64-"
+                      "S128-ni:1:10:20");
----------------
workingjubilee wrote:

while a preexisting concern and thus not something that should be held against 
this PR, it seems slightly unfortunate that so many LLVM targets use 
`resetDataLayout`. It's not that I think that overriding the string is a good 
idea. Rather, ignoring it makes the ability to set a data-layout string in an 
LLVM module merely an attractive nuisance rather than something with actual 
utility.

I was going to try to use Compiler Explorer's pass-level diffing view of the 
LLVM pipeline to see where the fold that @dschuff noticed was introduced, but 
that uses a precompiled LLVM, so it won't have this change. The easiest way to 
introduce the modified data-layout to a precompiled LLVM would be a 
module-level string, but that seems to do nothing.

I could bother to rebuild LLVM and do things in a much more manual way, of 
course, but then what is the ability to pass the string in the module even for?

https://github.com/llvm/llvm-project/pull/119204
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to