Work around an arm64_32 LLVM miscompile bug
authorsbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 Apr 2019 23:02:11 +0000 (23:02 +0000)
committersbarati@apple.com <sbarati@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 10 Apr 2019 23:02:11 +0000 (23:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=196788

Reviewed by Yusuke Suzuki.

* runtime/CachedTypes.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@244163 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/CachedTypes.cpp

index 88d60bb..31f7324 100644 (file)
@@ -1,3 +1,12 @@
+2019-04-10  Saam Barati  <sbarati@apple.com>
+
+        Work around an arm64_32 LLVM miscompile bug
+        https://bugs.webkit.org/show_bug.cgi?id=196788
+
+        Reviewed by Yusuke Suzuki.
+
+        * runtime/CachedTypes.cpp:
+
 2019-04-10  Devin Rousso  <drousso@apple.com>
 
         Web Inspector: Timelines: can't reliably stop/start a recording
index a7ba2ac..57bc7b3 100644 (file)
@@ -389,6 +389,11 @@ protected:
     }
 
     template<typename T>
+#if CPU(ARM64) && CPU(ADDRESS32)
+    // FIXME: Remove this once it's no longer needed and LLVM doesn't miscompile us:
+    // <rdar://problem/49792205>
+    __attribute__((optnone))
+#endif
     T* allocate(Encoder& encoder, unsigned size = 1)
     {
         uint8_t* result = allocate(encoder, sizeof(T) * size);