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

Side by Side Diff: src/compiler/wasm-compiler.cc

Issue 1704033002: [wasm] WasmRunner can run tests with I64 parameters and return value. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@new_wasm_runner
Patch Set: remove DCHECK Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « src/compiler/int64-lowering.cc ('k') | src/compiler/wasm-linkage.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/wasm-compiler.h" 5 #include "src/compiler/wasm-compiler.h"
6 6
7 #include "src/isolate-inl.h" 7 #include "src/isolate-inl.h"
8 8
9 #include "src/base/platform/platform.h" 9 #include "src/base/platform/platform.h"
10 10
(...skipping 1466 matching lines...) Expand 10 before | Expand all | Expand 10 after
1477 const size_t extra = 2; // effect and control inputs. 1477 const size_t extra = 2; // effect and control inputs.
1478 const size_t count = 1 + params + extra; 1478 const size_t count = 1 + params + extra;
1479 1479
1480 // Reallocate the buffer to make space for extra inputs. 1480 // Reallocate the buffer to make space for extra inputs.
1481 args = Realloc(args, count); 1481 args = Realloc(args, count);
1482 1482
1483 // Add effect and control inputs. 1483 // Add effect and control inputs.
1484 args[params + 1] = *effect_; 1484 args[params + 1] = *effect_;
1485 args[params + 2] = *control_; 1485 args[params + 2] = *control_;
1486 1486
1487 const Operator* op = jsgraph()->common()->Call( 1487 CallDescriptor* descriptor =
1488 module_->GetWasmCallDescriptor(jsgraph()->zone(), sig)); 1488 module_->GetWasmCallDescriptor(jsgraph()->zone(), sig);
1489 const Operator* op = jsgraph()->common()->Call(descriptor);
1489 Node* call = graph()->NewNode(op, static_cast<int>(count), args); 1490 Node* call = graph()->NewNode(op, static_cast<int>(count), args);
1490 1491
1491 *effect_ = call; 1492 *effect_ = call;
1492 return call; 1493 return call;
1493 } 1494 }
1494 1495
1495 1496
1496 Node* WasmGraphBuilder::CallDirect(uint32_t index, Node** args) { 1497 Node* WasmGraphBuilder::CallDirect(uint32_t index, Node** args) {
1497 DCHECK_NULL(args[0]); 1498 DCHECK_NULL(args[0]);
1498 1499
(...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1902 1903
1903 Node* WasmGraphBuilder::String(const char* string) { 1904 Node* WasmGraphBuilder::String(const char* string) {
1904 return jsgraph()->Constant( 1905 return jsgraph()->Constant(
1905 jsgraph()->isolate()->factory()->NewStringFromAsciiChecked(string)); 1906 jsgraph()->isolate()->factory()->NewStringFromAsciiChecked(string));
1906 } 1907 }
1907 1908
1908 1909
1909 Graph* WasmGraphBuilder::graph() { return jsgraph()->graph(); } 1910 Graph* WasmGraphBuilder::graph() { return jsgraph()->graph(); }
1910 1911
1911 void WasmGraphBuilder::Int64LoweringForTesting() { 1912 void WasmGraphBuilder::Int64LoweringForTesting() {
1912 #if !WASM_64 1913 if (kPointerSize == 4) {
1913 Int64Lowering r(jsgraph()->graph(), jsgraph()->machine(), jsgraph()->common(), 1914 Int64Lowering r(jsgraph()->graph(), jsgraph()->machine(),
1914 jsgraph()->zone()); 1915 jsgraph()->common(), jsgraph()->zone(),
1915 r.ReduceGraph(); 1916 function_signature_);
1916 #endif 1917 r.LowerGraph();
1918 }
1917 } 1919 }
1918 1920
1919 static void RecordFunctionCompilation(Logger::LogEventsAndTags tag, 1921 static void RecordFunctionCompilation(Logger::LogEventsAndTags tag,
1920 CompilationInfo* info, 1922 CompilationInfo* info,
1921 const char* message, uint32_t index, 1923 const char* message, uint32_t index,
1922 const char* func_name) { 1924 const char* func_name) {
1923 Isolate* isolate = info->isolate(); 1925 Isolate* isolate = info->isolate();
1924 if (isolate->logger()->is_logging_code_events() || 1926 if (isolate->logger()->is_logging_code_events() ||
1925 isolate->cpu_profiler()->is_profiling()) { 1927 isolate->cpu_profiler()->is_profiling()) {
1926 ScopedVector<char> buffer(128); 1928 ScopedVector<char> buffer(128);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
2120 // Add the function as another context for the exception 2122 // Add the function as another context for the exception
2121 ScopedVector<char> buffer(128); 2123 ScopedVector<char> buffer(128);
2122 SNPrintF(buffer, "Compiling WASM function #%d:%s failed:", 2124 SNPrintF(buffer, "Compiling WASM function #%d:%s failed:",
2123 function.func_index, 2125 function.func_index,
2124 module_env->module->GetName(function.name_offset)); 2126 module_env->module->GetName(function.name_offset));
2125 thrower.Failed(buffer.start(), result); 2127 thrower.Failed(buffer.start(), result);
2126 return Handle<Code>::null(); 2128 return Handle<Code>::null();
2127 } 2129 }
2128 2130
2129 // Run the compiler pipeline to generate machine code. 2131 // Run the compiler pipeline to generate machine code.
2130 CallDescriptor* descriptor = const_cast<CallDescriptor*>( 2132 CallDescriptor* descriptor =
2131 module_env->GetWasmCallDescriptor(&zone, function.sig)); 2133 module_env->GetWasmCallDescriptor(&zone, function.sig);
2134 if (kPointerSize == 4) {
2135 descriptor = module_env->GetI32WasmCallDescriptor(&zone, descriptor);
2136 }
2132 Code::Flags flags = Code::ComputeFlags(Code::WASM_FUNCTION); 2137 Code::Flags flags = Code::ComputeFlags(Code::WASM_FUNCTION);
2133 // add flags here if a meaningful name is helpful for debugging. 2138 // add flags here if a meaningful name is helpful for debugging.
2134 bool debugging = 2139 bool debugging =
2135 #if DEBUG 2140 #if DEBUG
2136 true; 2141 true;
2137 #else 2142 #else
2138 FLAG_print_opt_code || FLAG_trace_turbo || FLAG_trace_turbo_graph; 2143 FLAG_print_opt_code || FLAG_trace_turbo || FLAG_trace_turbo_graph;
2139 #endif 2144 #endif
2140 const char* func_name = "wasm"; 2145 const char* func_name = "wasm";
2141 Vector<char> buffer; 2146 Vector<char> buffer;
(...skipping 16 matching lines...) Expand all
2158 module_env->module->GetName(function.name_offset)); 2163 module_env->module->GetName(function.name_offset));
2159 } 2164 }
2160 2165
2161 return code; 2166 return code;
2162 } 2167 }
2163 2168
2164 2169
2165 } // namespace compiler 2170 } // namespace compiler
2166 } // namespace internal 2171 } // namespace internal
2167 } // namespace v8 2172 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/int64-lowering.cc ('k') | src/compiler/wasm-linkage.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698