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