Title: [166359] trunk/Source/_javascript_Core
Revision
166359
Author
[email protected]
Date
2014-03-27 09:43:19 -0700 (Thu, 27 Mar 2014)

Log Message

Enable LLVM stackmap liveOuts computation
https://bugs.webkit.org/show_bug.cgi?id=130821

Reviewed by Andy Estes and Sam Weinig.

* ftl/FTLStackMaps.cpp:
(JSC::FTL::StackMaps::Record::dump):
* llvm/library/LLVMExports.cpp:
(initializeAndGetJSCLLVMAPI):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (166358 => 166359)


--- trunk/Source/_javascript_Core/ChangeLog	2014-03-27 15:18:38 UTC (rev 166358)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-03-27 16:43:19 UTC (rev 166359)
@@ -1,5 +1,17 @@
 2014-03-26  Filip Pizlo  <[email protected]>
 
+        Enable LLVM stackmap liveOuts computation
+        https://bugs.webkit.org/show_bug.cgi?id=130821
+
+        Reviewed by Andy Estes and Sam Weinig.
+
+        * ftl/FTLStackMaps.cpp:
+        (JSC::FTL::StackMaps::Record::dump):
+        * llvm/library/LLVMExports.cpp:
+        (initializeAndGetJSCLLVMAPI):
+
+2014-03-26  Filip Pizlo  <[email protected]>
+
         Parse stackmaps liveOuts
         https://bugs.webkit.org/show_bug.cgi?id=130801
 

Modified: trunk/Source/_javascript_Core/ftl/FTLStackMaps.cpp (166358 => 166359)


--- trunk/Source/_javascript_Core/ftl/FTLStackMaps.cpp	2014-03-27 15:18:38 UTC (rev 166358)
+++ trunk/Source/_javascript_Core/ftl/FTLStackMaps.cpp	2014-03-27 16:43:19 UTC (rev 166359)
@@ -145,8 +145,8 @@
 {
     out.print(
         "(#", patchpointID, ", offset = ", instructionOffset, ", flags = ", flags,
-        ", locations = [", listDump(locations), "]), liveOuts = [",
-        listDump(liveOuts), "]");
+        ", locations = [", listDump(locations), "], liveOuts = [",
+        listDump(liveOuts), "])");
 }
 
 bool StackMaps::parse(DataView* view)

Modified: trunk/Source/_javascript_Core/llvm/library/LLVMExports.cpp (166358 => 166359)


--- trunk/Source/_javascript_Core/llvm/library/LLVMExports.cpp	2014-03-27 15:18:38 UTC (rev 166358)
+++ trunk/Source/_javascript_Core/llvm/library/LLVMExports.cpp	2014-03-27 16:43:19 UTC (rev 166359)
@@ -30,6 +30,29 @@
 #include "LLVMAPI.h"
 #include "LLVMTrapCallback.h"
 
+// Include some extra LLVM C++ headers. This is the only place where including LLVM C++
+// headers is OK, since this module lives inside of the LLVM dylib we make and so can see
+// otherwise private things. But to include those headers, we need to do some weird things
+// first. Anyway, we should keep LLVM C++ includes to a minimum if possible.
+
+#define __STDC_LIMIT_MACROS
+#define __STDC_CONSTANT_MACROS
+
+#if COMPILER(CLANG)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wmissing-noreturn"
+#pragma clang diagnostic ignored "-Wunused-parameter"
+#endif // COMPILER(CLANG)
+
+#include <llvm/Support/CommandLine.h>
+
+#if COMPILER(CLANG)
+#pragma clang diagnostic pop
+#endif // COMPILER(CLANG)
+
+#undef __STDC_LIMIT_MACROS
+#undef __STDC_CONSTANT_MACROS
+
 extern "C" WTF_EXPORT_PRIVATE JSC::LLVMAPI* initializeAndGetJSCLLVMAPI(void (*)(const char*, ...));
 
 static void llvmCrash(const char* reason)
@@ -67,6 +90,12 @@
     UNREACHABLE_FOR_PLATFORM();
 #endif
     
+    const char* args[] = {
+        "-enable-stackmap-liveness=true",
+        "-enable-patchpoint-liveness=true"
+    };
+    llvm::cl::ParseCommandLineOptions(sizeof(args) / sizeof(const char*), args);
+    
     JSC::LLVMAPI* result = new JSC::LLVMAPI;
     
 #define LLVM_API_FUNCTION_ASSIGNMENT(returnType, name, signature) \
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to