Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Unified Diff: src/compiler.cc

Issue 2057403003: Hooking up asm-wasm conversion. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/compiler.cc
diff --git a/src/compiler.cc b/src/compiler.cc
index 2a0eda0a551229eface54be75d02400b6c0be6ff..8eb37453c4ad31352fa7eb37a58236003aa526a2 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -31,6 +31,7 @@
#include "src/snapshot/code-serializer.h"
#include "src/typing-asm.h"
#include "src/vm-state-inl.h"
+#include "src/wasm/wasm-js.h"
namespace v8 {
namespace internal {
@@ -470,17 +471,17 @@ int CodeAndMetadataSize(CompilationInfo* info) {
bool GenerateUnoptimizedCode(CompilationInfo* info) {
bool success;
EnsureFeedbackMetadata(info);
+#if defined(V8_TARGET_ARCH_X64)
+ // TODO(bradnelson): Implement builtin and enable for other arches.
if (FLAG_validate_asm && info->scope()->asm_module()) {
- AsmTyper typer(info->isolate(), info->zone(), *(info->script()),
- info->literal());
- if (FLAG_enable_simd_asmjs) {
- typer.set_allow_simd(true);
- }
- if (!typer.Validate()) {
- DCHECK(!info->isolate()->has_pending_exception());
- PrintF("Validation of asm.js module failed: %s", typer.error_message());
+ Handle<FixedArray> wasm_data;
+ if (WasmJs::ConvertAsmToWasm(info->parse_info(), true, &wasm_data)) {
+ info->shared_info()->set_asm_wasm_data(*wasm_data);
+ info->SetCode(info->isolate()->builtins()->InstantiateAsmJs());
+ return true;
}
}
+#endif
if (FLAG_ignition && UseIgnition(info)) {
success = interpreter::Interpreter::MakeBytecode(info);
} else {
@@ -731,6 +732,10 @@ MaybeHandle<Code> GetOptimizedCode(Handle<JSFunction> function,
Isolate* isolate = function->GetIsolate();
Handle<SharedFunctionInfo> shared(function->shared(), isolate);
+ if (shared->HasAsmWasmData()) {
Michael Starzinger 2016/06/29 08:29:23 Can you elaborate on this guard. Is this needed fo
bradn 2016/06/30 07:59:36 Not needed. Leftover from prior ignorance on my pa
+ return MaybeHandle<Code>();
+ }
+
Handle<Code> cached_code;
if (GetCodeFromOptimizedCodeMap(function, osr_ast_id)
.ToHandle(&cached_code)) {

Powered by Google App Engine
This is Rietveld 408576698