Commit b577c1fe authored by Michael Starzinger's avatar Michael Starzinger Committed by Commit Bot

Remove and update some outdated TODO(mstarzinger).

R=clemensb@chromium.org

Change-Id: Ibd6790a222590fd4dce9f918219a19f01c2e1e0f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1960293Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65439}
parent e99f6ffe
...@@ -285,8 +285,6 @@ def _CheckHeadersHaveIncludeGuards(input_api, output_api): ...@@ -285,8 +285,6 @@ def _CheckHeadersHaveIncludeGuards(input_api, output_api):
return [] return []
# TODO(mstarzinger): Similar checking should be made available as part of
# tools/presubmit.py (note that tools/check-inline-includes.sh exists).
def _CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api): def _CheckNoInlineHeaderIncludesInNormalHeaders(input_api, output_api):
"""Attempts to prevent inclusion of inline headers into normal header """Attempts to prevent inclusion of inline headers into normal header
files. This tries to establish a layering where inline headers can be files. This tries to establish a layering where inline headers can be
......
...@@ -361,7 +361,7 @@ MaybeHandle<Object> AsmJs::InstantiateAsmWasm(Isolate* isolate, ...@@ -361,7 +361,7 @@ MaybeHandle<Object> AsmJs::InstantiateAsmWasm(Isolate* isolate,
Handle<WasmModuleObject> module = Handle<WasmModuleObject> module =
wasm_engine->FinalizeTranslatedAsmJs(isolate, wasm_data, script); wasm_engine->FinalizeTranslatedAsmJs(isolate, wasm_data, script);
// TODO(mstarzinger): The position currently points to the module definition // TODO(asmjs): The position currently points to the module definition
// but should instead point to the instantiation site (more intuitive). // but should instead point to the instantiation site (more intuitive).
int position = shared->StartPosition(); int position = shared->StartPosition();
......
...@@ -240,7 +240,7 @@ void AsmJsParser::AddGlobalImport(Vector<const char> name, AsmType* type, ...@@ -240,7 +240,7 @@ void AsmJsParser::AddGlobalImport(Vector<const char> name, AsmType* type,
ValueType vtype, bool mutable_variable, ValueType vtype, bool mutable_variable,
VarInfo* info) { VarInfo* info) {
// Allocate a separate variable for the import. // Allocate a separate variable for the import.
// TODO(mstarzinger): Consider using the imported global directly instead of // TODO(asmjs): Consider using the imported global directly instead of
// allocating a separate global variable for immutable (i.e. const) imports. // allocating a separate global variable for immutable (i.e. const) imports.
DeclareGlobal(info, mutable_variable, type, vtype); DeclareGlobal(info, mutable_variable, type, vtype);
...@@ -2432,7 +2432,7 @@ void AsmJsParser::ValidateHeapAccess() { ...@@ -2432,7 +2432,7 @@ void AsmJsParser::ValidateHeapAccess() {
uint32_t offset; uint32_t offset;
if (CheckForUnsigned(&offset)) { if (CheckForUnsigned(&offset)) {
// TODO(bradnelson): Check more things. // TODO(bradnelson): Check more things.
// TODO(mstarzinger): Clarify and explain where this limit is coming from, // TODO(asmjs): Clarify and explain where this limit is coming from,
// as it is not mandated by the spec directly. // as it is not mandated by the spec directly.
if (offset > 0x7FFFFFFF || if (offset > 0x7FFFFFFF ||
static_cast<uint64_t>(offset) * static_cast<uint64_t>(size) > static_cast<uint64_t>(offset) * static_cast<uint64_t>(size) >
......
...@@ -69,7 +69,7 @@ class CodeDesc { ...@@ -69,7 +69,7 @@ class CodeDesc {
int reloc_size = 0; int reloc_size = 0;
// Unwinding information. // Unwinding information.
// TODO(jgruber,mstarzinger): Pack this into the inlined metadata section. // TODO(jgruber): Pack this into the inlined metadata section.
byte* unwinding_info = nullptr; byte* unwinding_info = nullptr;
int unwinding_info_size = 0; int unwinding_info_size = 0;
......
...@@ -809,7 +809,7 @@ class V8_EXPORT_PRIVATE Instruction final { ...@@ -809,7 +809,7 @@ class V8_EXPORT_PRIVATE Instruction final {
DCHECK(output_count == 0 || outputs != nullptr); DCHECK(output_count == 0 || outputs != nullptr);
DCHECK(input_count == 0 || inputs != nullptr); DCHECK(input_count == 0 || inputs != nullptr);
DCHECK(temp_count == 0 || temps != nullptr); DCHECK(temp_count == 0 || temps != nullptr);
// TODO(jarin/mstarzinger): Handle this gracefully. See crbug.com/582702. // TODO(turbofan): Handle this gracefully. See crbug.com/582702.
CHECK(InputCountField::is_valid(input_count)); CHECK(InputCountField::is_valid(input_count));
size_t total_extra_ops = output_count + input_count + temp_count; size_t total_extra_ops = output_count + input_count + temp_count;
......
...@@ -2103,8 +2103,6 @@ void BytecodeGraphBuilder::VisitCreateArrayLiteral() { ...@@ -2103,8 +2103,6 @@ void BytecodeGraphBuilder::VisitCreateArrayLiteral() {
// data to converge. So, we disable allocation site mementos in optimized // data to converge. So, we disable allocation site mementos in optimized
// code. We can revisit this when we have data to the contrary. // code. We can revisit this when we have data to the contrary.
literal_flags |= ArrayLiteral::kDisableMementos; literal_flags |= ArrayLiteral::kDisableMementos;
// TODO(mstarzinger): Thread through number of elements. The below number is
// only an estimate and does not match {ArrayLiteral::values::length}.
int number_of_elements = int number_of_elements =
array_boilerplate_description.constants_elements_length(); array_boilerplate_description.constants_elements_length();
Node* literal = NewNode(javascript()->CreateLiteralArray( Node* literal = NewNode(javascript()->CreateLiteralArray(
...@@ -2134,8 +2132,6 @@ void BytecodeGraphBuilder::VisitCreateObjectLiteral() { ...@@ -2134,8 +2132,6 @@ void BytecodeGraphBuilder::VisitCreateObjectLiteral() {
int bytecode_flags = bytecode_iterator().GetFlagOperand(2); int bytecode_flags = bytecode_iterator().GetFlagOperand(2);
int literal_flags = int literal_flags =
interpreter::CreateObjectLiteralFlags::FlagsBits::decode(bytecode_flags); interpreter::CreateObjectLiteralFlags::FlagsBits::decode(bytecode_flags);
// TODO(mstarzinger): Thread through number of properties. The below number is
// only an estimate and does not match {ObjectLiteral::properties_count}.
int number_of_properties = constant_properties.size(); int number_of_properties = constant_properties.size();
Node* literal = NewNode(javascript()->CreateLiteralObject( Node* literal = NewNode(javascript()->CreateLiteralObject(
constant_properties.object(), pair, literal_flags, number_of_properties)); constant_properties.object(), pair, literal_flags, number_of_properties));
...@@ -3640,7 +3636,6 @@ void BytecodeGraphBuilder::MergeIntoSuccessorEnvironment(int target_offset) { ...@@ -3640,7 +3636,6 @@ void BytecodeGraphBuilder::MergeIntoSuccessorEnvironment(int target_offset) {
// Append merge nodes to the environment. We may merge here with another // Append merge nodes to the environment. We may merge here with another
// environment. So add a place holder for merge nodes. We may add redundant // environment. So add a place holder for merge nodes. We may add redundant
// but will be eliminated in a later pass. // but will be eliminated in a later pass.
// TODO(mstarzinger): Be smarter about this!
NewMerge(); NewMerge();
merge_environment = environment(); merge_environment = environment();
} else { } else {
......
...@@ -206,7 +206,7 @@ void ControlEquivalence::DFSPop(DFSStack& stack, Node* node) { ...@@ -206,7 +206,7 @@ void ControlEquivalence::DFSPop(DFSStack& stack, Node* node) {
void ControlEquivalence::BracketListDelete(BracketList& blist, Node* to, void ControlEquivalence::BracketListDelete(BracketList& blist, Node* to,
DFSDirection direction) { DFSDirection direction) {
// TODO(mstarzinger): Optimize this to avoid linear search. // TODO(turbofan): Optimize this to avoid linear search.
for (BracketList::iterator i = blist.begin(); i != blist.end(); /*nop*/) { for (BracketList::iterator i = blist.begin(); i != blist.end(); /*nop*/) {
if (i->to == to && i->direction != direction) { if (i->to == to && i->direction != direction) {
TRACE(" BList erased: {%d->%d}\n", i->from->id(), i->to->id()); TRACE(" BList erased: {%d->%d}\n", i->from->id(), i->to->id());
......
...@@ -161,7 +161,7 @@ Reduction JSCreateLowering::ReduceJSCreateArguments(Node* node) { ...@@ -161,7 +161,7 @@ Reduction JSCreateLowering::ReduceJSCreateArguments(Node* node) {
if (outer_state->opcode() != IrOpcode::kFrameState) { if (outer_state->opcode() != IrOpcode::kFrameState) {
switch (type) { switch (type) {
case CreateArgumentsType::kMappedArguments: { case CreateArgumentsType::kMappedArguments: {
// TODO(mstarzinger): Duplicate parameters are not handled yet. // TODO(turbofan): Duplicate parameters are not handled yet.
if (shared.has_duplicate_parameters()) return NoChange(); if (shared.has_duplicate_parameters()) return NoChange();
Node* const callee = NodeProperties::GetValueInput(node, 0); Node* const callee = NodeProperties::GetValueInput(node, 0);
Node* const context = NodeProperties::GetContextInput(node); Node* const context = NodeProperties::GetContextInput(node);
...@@ -263,7 +263,7 @@ Reduction JSCreateLowering::ReduceJSCreateArguments(Node* node) { ...@@ -263,7 +263,7 @@ Reduction JSCreateLowering::ReduceJSCreateArguments(Node* node) {
Node* const callee = NodeProperties::GetValueInput(node, 0); Node* const callee = NodeProperties::GetValueInput(node, 0);
Node* const context = NodeProperties::GetContextInput(node); Node* const context = NodeProperties::GetContextInput(node);
Node* effect = NodeProperties::GetEffectInput(node); Node* effect = NodeProperties::GetEffectInput(node);
// TODO(mstarzinger): Duplicate parameters are not handled yet. // TODO(turbofan): Duplicate parameters are not handled yet.
if (shared.has_duplicate_parameters()) return NoChange(); if (shared.has_duplicate_parameters()) return NoChange();
// Choose the correct frame state and frame state info depending on // Choose the correct frame state and frame state info depending on
// whether there conceptually is an arguments adaptor frame in the call // whether there conceptually is an arguments adaptor frame in the call
......
...@@ -268,7 +268,6 @@ Node* JSInliner::CreateArtificialFrameState(Node* node, Node* outer_frame_state, ...@@ -268,7 +268,6 @@ Node* JSInliner::CreateArtificialFrameState(Node* node, Node* outer_frame_state,
namespace { namespace {
// TODO(mstarzinger,verwaest): Move this predicate onto SharedFunctionInfo?
bool NeedsImplicitReceiver(SharedFunctionInfoRef shared_info) { bool NeedsImplicitReceiver(SharedFunctionInfoRef shared_info) {
DisallowHeapAllocation no_gc; DisallowHeapAllocation no_gc;
return !shared_info.construct_as_builtin() && return !shared_info.construct_as_builtin() &&
......
...@@ -754,9 +754,8 @@ class SpecialRPONumberer : public ZoneObject { ...@@ -754,9 +754,8 @@ class SpecialRPONumberer : public ZoneObject {
return block->loop_number() >= 0; return block->loop_number() >= 0;
} }
// TODO(mstarzinger): We only need this special sentinel because some tests // We only need this special sentinel because some tests use the schedule's
// use the schedule's end block in actual control flow (e.g. with end having // end block in actual control flow (e.g. with end having successors).
// successors). Once this has been cleaned up we can use the end block here.
BasicBlock* BeyondEndSentinel() { BasicBlock* BeyondEndSentinel() {
if (beyond_end_ == nullptr) { if (beyond_end_ == nullptr) {
BasicBlock::Id id = BasicBlock::Id::FromInt(-1); BasicBlock::Id id = BasicBlock::Id::FromInt(-1);
...@@ -1757,7 +1756,7 @@ void Scheduler::FuseFloatingControl(BasicBlock* block, Node* node) { ...@@ -1757,7 +1756,7 @@ void Scheduler::FuseFloatingControl(BasicBlock* block, Node* node) {
// Iterate on phase 2: Compute special RPO and dominator tree. // Iterate on phase 2: Compute special RPO and dominator tree.
special_rpo_->UpdateSpecialRPO(block, schedule_->block(node)); special_rpo_->UpdateSpecialRPO(block, schedule_->block(node));
// TODO(mstarzinger): Currently "iterate on" means "re-run". Fix that. // TODO(turbofan): Currently "iterate on" means "re-run". Fix that.
for (BasicBlock* b = block->rpo_next(); b != nullptr; b = b->rpo_next()) { for (BasicBlock* b = block->rpo_next(); b != nullptr; b = b->rpo_next()) {
b->set_dominator_depth(-1); b->set_dominator_depth(-1);
b->set_dominator(nullptr); b->set_dominator(nullptr);
...@@ -1765,7 +1764,7 @@ void Scheduler::FuseFloatingControl(BasicBlock* block, Node* node) { ...@@ -1765,7 +1764,7 @@ void Scheduler::FuseFloatingControl(BasicBlock* block, Node* node) {
PropagateImmediateDominators(block->rpo_next()); PropagateImmediateDominators(block->rpo_next());
// Iterate on phase 4: Schedule nodes early. // Iterate on phase 4: Schedule nodes early.
// TODO(mstarzinger): The following loop gathering the propagation roots is a // TODO(turbofan): The following loop gathering the propagation roots is a
// temporary solution and should be merged into the rest of the scheduler as // temporary solution and should be merged into the rest of the scheduler as
// soon as the approach settled for all floating loops. // soon as the approach settled for all floating loops.
NodeVector propagation_roots(control_flow_builder_->control_); NodeVector propagation_roots(control_flow_builder_->control_);
...@@ -1787,7 +1786,7 @@ void Scheduler::FuseFloatingControl(BasicBlock* block, Node* node) { ...@@ -1787,7 +1786,7 @@ void Scheduler::FuseFloatingControl(BasicBlock* block, Node* node) {
schedule_early_visitor.Run(&propagation_roots); schedule_early_visitor.Run(&propagation_roots);
// Move previously planned nodes. // Move previously planned nodes.
// TODO(mstarzinger): Improve that by supporting bulk moves. // TODO(turbofan): Improve that by supporting bulk moves.
scheduled_nodes_.resize(schedule_->BasicBlockCount()); scheduled_nodes_.resize(schedule_->BasicBlockCount());
MovePlannedNodes(block, schedule_->block(node)); MovePlannedNodes(block, schedule_->block(node));
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include "src/base/platform/platform.h" #include "src/base/platform/platform.h"
#include "src/objects/feedback-vector.h" #include "src/objects/feedback-vector.h"
// TODO(mstarzinger): There is one more include to remove in order to no longer // TODO(gc): There is one more include to remove in order to no longer
// leak heap internals to users of this interface! // leak heap internals to users of this interface!
#include "src/execution/isolate-data.h" #include "src/execution/isolate-data.h"
#include "src/execution/isolate.h" #include "src/execution/isolate.h"
......
...@@ -1644,7 +1644,7 @@ void BytecodeGenerator::BuildTryCatch( ...@@ -1644,7 +1644,7 @@ void BytecodeGenerator::BuildTryCatch(
// Preserve the context in a dedicated register, so that it can be restored // Preserve the context in a dedicated register, so that it can be restored
// when the handler is entered by the stack-unwinding machinery. // when the handler is entered by the stack-unwinding machinery.
// TODO(mstarzinger): Be smarter about register allocation. // TODO(ignition): Be smarter about register allocation.
Register context = register_allocator()->NewRegister(); Register context = register_allocator()->NewRegister();
builder()->MoveRegister(Register::current_context(), context); builder()->MoveRegister(Register::current_context(), context);
...@@ -1695,7 +1695,7 @@ void BytecodeGenerator::BuildTryFinally( ...@@ -1695,7 +1695,7 @@ void BytecodeGenerator::BuildTryFinally(
// Preserve the context in a dedicated register, so that it can be restored // Preserve the context in a dedicated register, so that it can be restored
// when the handler is entered by the stack-unwinding machinery. // when the handler is entered by the stack-unwinding machinery.
// TODO(mstarzinger): Be smarter about register allocation. // TODO(ignition): Be smarter about register allocation.
Register context = register_allocator()->NewRegister(); Register context = register_allocator()->NewRegister();
builder()->MoveRegister(Register::current_context(), context); builder()->MoveRegister(Register::current_context(), context);
......
...@@ -600,8 +600,6 @@ inline void DisassembleCodeRange(Isolate* isolate, std::ostream& os, Code code, ...@@ -600,8 +600,6 @@ inline void DisassembleCodeRange(Isolate* isolate, std::ostream& os, Code code,
Address begin, size_t size, Address begin, size_t size,
Address current_pc) { Address current_pc) {
Address end = begin + size; Address end = begin + size;
// TODO(mstarzinger): Refactor CodeReference to avoid the
// unhandlified->handlified transition.
AllowHandleAllocation allow_handles; AllowHandleAllocation allow_handles;
DisallowHeapAllocation no_gc; DisallowHeapAllocation no_gc;
HandleScope handle_scope(isolate); HandleScope handle_scope(isolate);
......
...@@ -474,7 +474,6 @@ class JSObject : public TorqueGeneratedJSObject<JSObject, JSReceiver> { ...@@ -474,7 +474,6 @@ class JSObject : public TorqueGeneratedJSObject<JSObject, JSReceiver> {
GetPropertyAttributesWithFailedAccessCheck(LookupIterator* it); GetPropertyAttributesWithFailedAccessCheck(LookupIterator* it);
// Defines an AccessorPair property on the given object. // Defines an AccessorPair property on the given object.
// TODO(mstarzinger): Rename to SetAccessor().
V8_EXPORT_PRIVATE static MaybeHandle<Object> DefineAccessor( V8_EXPORT_PRIVATE static MaybeHandle<Object> DefineAccessor(
Handle<JSObject> object, Handle<Name> name, Handle<Object> getter, Handle<JSObject> object, Handle<Name> name, Handle<Object> getter,
Handle<Object> setter, PropertyAttributes attributes); Handle<Object> setter, PropertyAttributes attributes);
......
...@@ -123,7 +123,7 @@ RUNTIME_FUNCTION(Runtime_WasmThrowCreate) { ...@@ -123,7 +123,7 @@ RUNTIME_FUNCTION(Runtime_WasmThrowCreate) {
isolate->set_context(GetNativeContextFromWasmInstanceOnStackTop(isolate)); isolate->set_context(GetNativeContextFromWasmInstanceOnStackTop(isolate));
CONVERT_ARG_CHECKED(WasmExceptionTag, tag_raw, 0); CONVERT_ARG_CHECKED(WasmExceptionTag, tag_raw, 0);
CONVERT_SMI_ARG_CHECKED(size, 1); CONVERT_SMI_ARG_CHECKED(size, 1);
// TODO(mstarzinger): Manually box because parameters are not visited yet. // TODO(wasm): Manually box because parameters are not visited yet.
Handle<Object> tag(tag_raw, isolate); Handle<Object> tag(tag_raw, isolate);
Handle<Object> exception = isolate->factory()->NewWasmRuntimeError( Handle<Object> exception = isolate->factory()->NewWasmRuntimeError(
MessageTemplate::kWasmExceptionError); MessageTemplate::kWasmExceptionError);
...@@ -148,7 +148,7 @@ RUNTIME_FUNCTION(Runtime_WasmExceptionGetTag) { ...@@ -148,7 +148,7 @@ RUNTIME_FUNCTION(Runtime_WasmExceptionGetTag) {
DCHECK(isolate->context().is_null()); DCHECK(isolate->context().is_null());
isolate->set_context(GetNativeContextFromWasmInstanceOnStackTop(isolate)); isolate->set_context(GetNativeContextFromWasmInstanceOnStackTop(isolate));
CONVERT_ARG_CHECKED(Object, except_obj_raw, 0); CONVERT_ARG_CHECKED(Object, except_obj_raw, 0);
// TODO(mstarzinger): Manually box because parameters are not visited yet. // TODO(wasm): Manually box because parameters are not visited yet.
Handle<Object> except_obj(except_obj_raw, isolate); Handle<Object> except_obj(except_obj_raw, isolate);
if (!except_obj->IsWasmExceptionPackage(isolate)) { if (!except_obj->IsWasmExceptionPackage(isolate)) {
return ReadOnlyRoots(isolate).undefined_value(); return ReadOnlyRoots(isolate).undefined_value();
...@@ -165,7 +165,7 @@ RUNTIME_FUNCTION(Runtime_WasmExceptionGetValues) { ...@@ -165,7 +165,7 @@ RUNTIME_FUNCTION(Runtime_WasmExceptionGetValues) {
DCHECK(isolate->context().is_null()); DCHECK(isolate->context().is_null());
isolate->set_context(GetNativeContextFromWasmInstanceOnStackTop(isolate)); isolate->set_context(GetNativeContextFromWasmInstanceOnStackTop(isolate));
CONVERT_ARG_CHECKED(Object, except_obj_raw, 0); CONVERT_ARG_CHECKED(Object, except_obj_raw, 0);
// TODO(mstarzinger): Manually box because parameters are not visited yet. // TODO(wasm): Manually box because parameters are not visited yet.
Handle<Object> except_obj(except_obj_raw, isolate); Handle<Object> except_obj(except_obj_raw, isolate);
if (!except_obj->IsWasmExceptionPackage(isolate)) { if (!except_obj->IsWasmExceptionPackage(isolate)) {
return ReadOnlyRoots(isolate).undefined_value(); return ReadOnlyRoots(isolate).undefined_value();
...@@ -477,7 +477,7 @@ RUNTIME_FUNCTION(Runtime_WasmFunctionTableSet) { ...@@ -477,7 +477,7 @@ RUNTIME_FUNCTION(Runtime_WasmFunctionTableSet) {
CONVERT_UINT32_ARG_CHECKED(table_index, 1); CONVERT_UINT32_ARG_CHECKED(table_index, 1);
CONVERT_UINT32_ARG_CHECKED(entry_index, 2); CONVERT_UINT32_ARG_CHECKED(entry_index, 2);
CONVERT_ARG_CHECKED(Object, element_raw, 3); CONVERT_ARG_CHECKED(Object, element_raw, 3);
// TODO(mstarzinger): Manually box because parameters are not visited yet. // TODO(wasm): Manually box because parameters are not visited yet.
Handle<Object> element(element_raw, isolate); Handle<Object> element(element_raw, isolate);
DCHECK_LT(table_index, instance->tables().length()); DCHECK_LT(table_index, instance->tables().length());
auto table = handle( auto table = handle(
...@@ -536,7 +536,7 @@ RUNTIME_FUNCTION(Runtime_WasmTableGrow) { ...@@ -536,7 +536,7 @@ RUNTIME_FUNCTION(Runtime_WasmTableGrow) {
Handle<WasmInstanceObject>(GetWasmInstanceOnStackTop(isolate), isolate); Handle<WasmInstanceObject>(GetWasmInstanceOnStackTop(isolate), isolate);
CONVERT_UINT32_ARG_CHECKED(table_index, 0); CONVERT_UINT32_ARG_CHECKED(table_index, 0);
CONVERT_ARG_CHECKED(Object, value_raw, 1); CONVERT_ARG_CHECKED(Object, value_raw, 1);
// TODO(mstarzinger): Manually box because parameters are not visited yet. // TODO(wasm): Manually box because parameters are not visited yet.
Handle<Object> value(value_raw, isolate); Handle<Object> value(value_raw, isolate);
CONVERT_UINT32_ARG_CHECKED(delta, 2); CONVERT_UINT32_ARG_CHECKED(delta, 2);
...@@ -555,7 +555,7 @@ RUNTIME_FUNCTION(Runtime_WasmTableFill) { ...@@ -555,7 +555,7 @@ RUNTIME_FUNCTION(Runtime_WasmTableFill) {
CONVERT_UINT32_ARG_CHECKED(table_index, 0); CONVERT_UINT32_ARG_CHECKED(table_index, 0);
CONVERT_UINT32_ARG_CHECKED(start, 1); CONVERT_UINT32_ARG_CHECKED(start, 1);
CONVERT_ARG_CHECKED(Object, value_raw, 2); CONVERT_ARG_CHECKED(Object, value_raw, 2);
// TODO(mstarzinger): Manually box because parameters are not visited yet. // TODO(wasm): Manually box because parameters are not visited yet.
Handle<Object> value(value_raw, isolate); Handle<Object> value(value_raw, isolate);
CONVERT_UINT32_ARG_CHECKED(count, 3); CONVERT_UINT32_ARG_CHECKED(count, 3);
......
...@@ -1807,8 +1807,8 @@ class WasmFullDecoder : public WasmDecoder<validate> { ...@@ -1807,8 +1807,8 @@ class WasmFullDecoder : public WasmDecoder<validate> {
auto exception = Pop(0, kWasmExnRef); auto exception = Pop(0, kWasmExnRef);
const WasmExceptionSig* sig = imm.index.exception->sig; const WasmExceptionSig* sig = imm.index.exception->sig;
size_t value_count = sig->parameter_count(); size_t value_count = sig->parameter_count();
// TODO(mstarzinger): This operand stack mutation is an ugly hack to // TODO(wasm): This operand stack mutation is an ugly hack to make
// make both type checking here as well as environment merging in the // both type checking here as well as environment merging in the
// graph builder interface work out of the box. We should introduce // graph builder interface work out of the box. We should introduce
// special handling for both and do minimal/no stack mutation here. // special handling for both and do minimal/no stack mutation here.
for (size_t i = 0; i < value_count; ++i) Push(sig->GetParam(i)); for (size_t i = 0; i < value_count; ++i) Push(sig->GetParam(i));
......
...@@ -1142,8 +1142,8 @@ bool InstanceBuilder::ProcessImportedGlobal(Handle<WasmInstanceObject> instance, ...@@ -1142,8 +1142,8 @@ bool InstanceBuilder::ProcessImportedGlobal(Handle<WasmInstanceObject> instance,
// workaround to support legacy asm.js code with broken binding. Note // workaround to support legacy asm.js code with broken binding. Note
// that using {NaN} (or Smi::zero()) here is what using the observable // that using {NaN} (or Smi::zero()) here is what using the observable
// conversion via {ToPrimitive} would produce as well. // conversion via {ToPrimitive} would produce as well.
// TODO(mstarzinger): Still observable if Function.prototype.valueOf // TODO(wasm): Still observable if Function.prototype.valueOf or friends
// or friends are patched, we might need to check for that as well. // are patched, we might need to check for that as well.
if (value->IsJSFunction()) value = isolate_->factory()->nan_value(); if (value->IsJSFunction()) value = isolate_->factory()->nan_value();
if (value->IsPrimitive() && !value->IsSymbol()) { if (value->IsPrimitive() && !value->IsSymbol()) {
if (global.type == kWasmI32) { if (global.type == kWasmI32) {
......
...@@ -374,8 +374,8 @@ StreamingDecoder::DecodeSectionID::Next(StreamingDecoder* streaming) { ...@@ -374,8 +374,8 @@ StreamingDecoder::DecodeSectionID::Next(StreamingDecoder* streaming) {
// Explicitly check for multiple code sections as module decoder never // Explicitly check for multiple code sections as module decoder never
// sees the code section and hence cannot track this section. // sees the code section and hence cannot track this section.
if (streaming->code_section_processed_) { if (streaming->code_section_processed_) {
// TODO(mstarzinger): This error message (and others in this class) is // TODO(wasm): This error message (and others in this class) is different
// different for non-streaming decoding. Bring them in sync and test. // for non-streaming decoding. Bring them in sync and test.
return streaming->Error("code section can only appear once"); return streaming->Error("code section can only appear once");
} }
streaming->code_section_processed_ = true; streaming->code_section_processed_ = true;
......
...@@ -204,9 +204,6 @@ class V8_EXPORT_PRIVATE ValueTypes { ...@@ -204,9 +204,6 @@ class V8_EXPORT_PRIVATE ValueTypes {
(expected == kWasmAnyRef && actual == kWasmFuncRef) || (expected == kWasmAnyRef && actual == kWasmFuncRef) ||
(expected == kWasmAnyRef && actual == kWasmExnRef) || (expected == kWasmAnyRef && actual == kWasmExnRef) ||
(expected == kWasmFuncRef && actual == kWasmNullRef) || (expected == kWasmFuncRef && actual == kWasmNullRef) ||
// TODO(mstarzinger): For now we treat "nullref" as a sub-type of
// "exnref", which is correct but might change. See here:
// https://github.com/WebAssembly/exception-handling/issues/55
(expected == kWasmExnRef && actual == kWasmNullRef); (expected == kWasmExnRef && actual == kWasmNullRef);
} }
......
...@@ -1342,9 +1342,9 @@ class ThreadImpl { ...@@ -1342,9 +1342,9 @@ class ThreadImpl {
// Safety wrapper for values on the operand stack represented as {WasmValue}. // Safety wrapper for values on the operand stack represented as {WasmValue}.
// Most values are stored directly on the stack, only reference values are // Most values are stored directly on the stack, only reference values are
// kept in a separate on-heap reference stack to make the GC trace them. // kept in a separate on-heap reference stack to make the GC trace them.
// TODO(mstarzinger): Optimize simple stack operations (like "get_local", // TODO(wasm): Optimize simple stack operations (like "get_local",
// "set_local", and "tee_local") so that they don't require a handle scope. // "set_local", and "tee_local") so that they don't require a handle scope.
// TODO(mstarzinger): Consider optimizing activations that use no reference // TODO(wasm): Consider optimizing activations that use no reference
// values to avoid allocating the reference stack entirely. // values to avoid allocating the reference stack entirely.
class StackValue { class StackValue {
public: public:
......
...@@ -1345,7 +1345,7 @@ Handle<WasmInstanceObject> WasmInstanceObject::New( ...@@ -1345,7 +1345,7 @@ Handle<WasmInstanceObject> WasmInstanceObject::New(
// Insert the new instance into the scripts weak list of instances. This list // Insert the new instance into the scripts weak list of instances. This list
// is used for breakpoints affecting all instances belonging to the script. // is used for breakpoints affecting all instances belonging to the script.
// TODO(mstarzinger): Allow to reuse holes in the {WeakArrayList} below. // TODO(wasm): Allow to reuse holes in the {WeakArrayList} below.
if (module_object->script().type() == Script::TYPE_WASM) { if (module_object->script().type() == Script::TYPE_WASM) {
Handle<WeakArrayList> weak_instance_list( Handle<WeakArrayList> weak_instance_list(
module_object->script().wasm_weak_instance_list(), isolate); module_object->script().wasm_weak_instance_list(), isolate);
...@@ -1556,7 +1556,7 @@ void WasmInstanceObject::ImportWasmJSFunctionIntoTable( ...@@ -1556,7 +1556,7 @@ void WasmInstanceObject::ImportWasmJSFunctionIntoTable(
if (sig_id >= 0) { if (sig_id >= 0) {
wasm::NativeModule* native_module = wasm::NativeModule* native_module =
instance->module_object().native_module(); instance->module_object().native_module();
// TODO(mstarzinger): Cache and reuse wrapper code. // TODO(wasm): Cache and reuse wrapper code.
const wasm::WasmFeatures enabled = native_module->enabled_features(); const wasm::WasmFeatures enabled = native_module->enabled_features();
auto resolved = compiler::ResolveWasmImportCall(callable, sig, enabled); auto resolved = compiler::ResolveWasmImportCall(callable, sig, enabled);
compiler::WasmImportCallKind kind = resolved.first; compiler::WasmImportCallKind kind = resolved.first;
...@@ -1938,8 +1938,8 @@ Handle<WasmJSFunction> WasmJSFunction::New(Isolate* isolate, ...@@ -1938,8 +1938,8 @@ Handle<WasmJSFunction> WasmJSFunction::New(Isolate* isolate,
if (sig_size > 0) { if (sig_size > 0) {
serialized_sig->copy_in(0, sig->all().begin(), sig_size); serialized_sig->copy_in(0, sig->all().begin(), sig_size);
} }
// TODO(mstarzinger): Think about caching and sharing the JS-to-JS wrappers // TODO(wasm): Think about caching and sharing the JS-to-JS wrappers per
// per signature instead of compiling a new one for every instantiation. // signature instead of compiling a new one for every instantiation.
Handle<Code> wrapper_code = Handle<Code> wrapper_code =
compiler::CompileJSToJSWrapper(isolate, sig).ToHandleChecked(); compiler::CompileJSToJSWrapper(isolate, sig).ToHandleChecked();
Handle<WasmJSFunctionData> function_data = Handle<WasmJSFunctionData> function_data =
......
...@@ -248,7 +248,7 @@ class V8_EXPORT_PRIVATE WasmTableObject : public JSObject { ...@@ -248,7 +248,7 @@ class V8_EXPORT_PRIVATE WasmTableObject : public JSObject {
static void Fill(Isolate* isolate, Handle<WasmTableObject> table, static void Fill(Isolate* isolate, Handle<WasmTableObject> table,
uint32_t start, Handle<Object> entry, uint32_t count); uint32_t start, Handle<Object> entry, uint32_t count);
// TODO(mstarzinger): Unify these three methods into one. // TODO(wasm): Unify these three methods into one.
static void UpdateDispatchTables(Isolate* isolate, static void UpdateDispatchTables(Isolate* isolate,
Handle<WasmTableObject> table, Handle<WasmTableObject> table,
int entry_index, wasm::FunctionSig* sig, int entry_index, wasm::FunctionSig* sig,
......
...@@ -66,8 +66,8 @@ class ZoneDeque : public std::deque<T, RecyclingZoneAllocator<T>> { ...@@ -66,8 +66,8 @@ class ZoneDeque : public std::deque<T, RecyclingZoneAllocator<T>> {
// A wrapper subclass for std::list to make it easy to construct one // A wrapper subclass for std::list to make it easy to construct one
// that uses a zone allocator. // that uses a zone allocator.
// TODO(mstarzinger): This should be renamed to ZoneList once we got rid of our // TODO(all): This should be renamed to ZoneList once we got rid of our own
// own home-grown ZoneList that actually is a ZoneVector. // home-grown ZoneList that actually is a ZoneVector.
template <typename T> template <typename T>
class ZoneLinkedList : public std::list<T, ZoneAllocator<T>> { class ZoneLinkedList : public std::list<T, ZoneAllocator<T>> {
public: public:
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
############################################################################## ##############################################################################
['variant == stress', { ['variant == stress', {
# TODO(jarin/mstarzinger): Functions with eval or debugger now get optimized # TODO(turbofan): Functions with eval or debugger now get optimized
# with Turbofan, which has issues with the debugger issues. # with Turbofan, which has issues with the debugger issues.
'debug/debug-evaluate-locals': [FAIL], 'debug/debug-evaluate-locals': [FAIL],
......
...@@ -91,7 +91,7 @@ function test(use_new, add_first, set__proto__) { ...@@ -91,7 +91,7 @@ function test(use_new, add_first, set__proto__) {
} }
%EnsureFeedbackVectorForFunction(test); %EnsureFeedbackVectorForFunction(test);
// TODO(mstarzinger): This test fails easily if gc happens at the wrong time. // This test fails easily if gc happens at the wrong time.
gc(); gc();
function test_fast_prototype() { function test_fast_prototype() {
......
...@@ -312,7 +312,7 @@ ...@@ -312,7 +312,7 @@
'code-coverage-ad-hoc': [SKIP], 'code-coverage-ad-hoc': [SKIP],
'code-coverage-precise': [SKIP], 'code-coverage-precise': [SKIP],
# TODO(mstarzinger): Takes too long with TF. # Takes too long with TF.
'array-sort': [PASS, NO_VARIANTS], 'array-sort': [PASS, NO_VARIANTS],
'regress/regress-91008': [PASS, NO_VARIANTS], 'regress/regress-91008': [PASS, NO_VARIANTS],
'regress/regress-transcendental': [PASS, ['arch == arm64', NO_VARIANTS]], 'regress/regress-transcendental': [PASS, ['arch == arm64', NO_VARIANTS]],
...@@ -784,7 +784,7 @@ ...@@ -784,7 +784,7 @@
############################################################################## ##############################################################################
['system == windows', { ['system == windows', {
# TODO(mstarzinger): Too slow with turbo fan. # Too slow with turbo fan.
'math-floor-of-div': [PASS, ['mode == debug', SKIP]], 'math-floor-of-div': [PASS, ['mode == debug', SKIP]],
'math-floor-of-div-nosudiv': [PASS, ['mode == debug', SKIP]], 'math-floor-of-div-nosudiv': [PASS, ['mode == debug', SKIP]],
'unicodelctest': [PASS, ['mode == debug', SKIP]], 'unicodelctest': [PASS, ['mode == debug', SKIP]],
......
...@@ -332,7 +332,6 @@ ...@@ -332,7 +332,6 @@
# Test that depends on timer resolution. Fails every now and then # Test that depends on timer resolution. Fails every now and then
# if we're unlucky enough to get a context switch at a bad time. # if we're unlucky enough to get a context switch at a bad time.
# TODO(mstarzinger): Switch off TF on windows due to timeouts.
'js1_5/extensions/regress-363258': [PASS, FAIL, ['system == windows', NO_VARIANTS]], 'js1_5/extensions/regress-363258': [PASS, FAIL, ['system == windows', NO_VARIANTS]],
......
...@@ -632,8 +632,8 @@ ...@@ -632,8 +632,8 @@
['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips64 or arch == mips64el', { ['arch == arm or arch == mipsel or arch == mips or arch == arm64 or arch == mips64 or arch == mips64el', {
# TODO(mstarzinger): Causes stack overflow on simulators due to eager # Causes stack overflow on simulators due to eager compilation of
# compilation of parenthesized function literals. Needs investigation. # parenthesized function literals. Needs investigation.
'language/statements/function/S13.2.1_A1_T1': [SKIP], 'language/statements/function/S13.2.1_A1_T1': [SKIP],
# BUG(3251225): Tests that timeout with --noopt. # BUG(3251225): Tests that timeout with --noopt.
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
'elem': [FAIL], 'elem': [FAIL],
'data': [FAIL], 'data': [FAIL],
# TODO(mstarzinger): Roll newest tests into "js-types" repository. # TODO(wasm): Roll newest tests into "js-types" repository.
'proposals/js-types/exports': [FAIL], 'proposals/js-types/exports': [FAIL],
'proposals/js-types/globals': [FAIL], 'proposals/js-types/globals': [FAIL],
'proposals/js-types/linking': [FAIL], 'proposals/js-types/linking': [FAIL],
......
...@@ -907,7 +907,7 @@ class FunctionAnalyzer { ...@@ -907,7 +907,7 @@ class FunctionAnalyzer {
} }
DECL_VISIT_EXPR(UnaryOperator) { DECL_VISIT_EXPR(UnaryOperator) {
// TODO(mstarzinger): We are treating all expressions that look like // TODO(gcmole): We are treating all expressions that look like
// {&raw_pointer_var} as definitions of {raw_pointer_var}. This should be // {&raw_pointer_var} as definitions of {raw_pointer_var}. This should be
// changed to recognize less generic pattern: // changed to recognize less generic pattern:
// //
...@@ -1039,7 +1039,7 @@ class FunctionAnalyzer { ...@@ -1039,7 +1039,7 @@ class FunctionAnalyzer {
llvm::dyn_cast_or_null<clang::CXXOperatorCallExpr>(call); llvm::dyn_cast_or_null<clang::CXXOperatorCallExpr>(call);
if (opcall != NULL && opcall->isAssignmentOp() && if (opcall != NULL && opcall->isAssignmentOp() &&
IsRawPointerVar(opcall->getArg(0), &var_name)) { IsRawPointerVar(opcall->getArg(0), &var_name)) {
// TODO(mstarzinger): We are treating all assignment operator calls with // TODO(gcmole): We are treating all assignment operator calls with
// the left hand side looking like {raw_pointer_var} as safe independent // the left hand side looking like {raw_pointer_var} as safe independent
// of the concrete assignment operator implementation. This should be // of the concrete assignment operator implementation. This should be
// changed to be more narrow only if the assignment operator of the base // changed to be more narrow only if the assignment operator of the base
...@@ -1416,7 +1416,7 @@ class FunctionAnalyzer { ...@@ -1416,7 +1416,7 @@ class FunctionAnalyzer {
return out; return out;
} }
// TODO(mstarzinger): handle other declarations? // TODO(gcmole): handle other declarations?
return env; return env;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment