| Auto-Submit | +1 |
| Commit-Queue | +1 |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
lgtm
case Opcode::kLoadFixedArrayElement:Should kLoadHoleyFixedDoubleArrayElement be here, too?
switch (opcode) {I'm already seeing somebody forgetting to update this list! Is there anything we can do to make this more robust and/or make fuzzers catch problems faster? I guess there's no central bottleneck where we could check that if a ValueNode* is the hole, then its opcode must be one of these? Is there anything else we can do to force people adding new opcodes remember this? (Aside from removing the default branch and adding all opcodes explicitly, which is... maybe overkill?)
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Auto-Submit | +1 |
| Commit-Queue | +2 |
Should kLoadHoleyFixedDoubleArrayElement be here, too?
No, holey doubles are not a proper hole. They are treated as undefined.
I'm already seeing somebody forgetting to update this list! Is there anything we can do to make this more robust and/or make fuzzers catch problems faster? I guess there's no central bottleneck where we could check that if a ValueNode* is the hole, then its opcode must be one of these? Is there anything else we can do to force people adding new opcodes remember this? (Aside from removing the default branch and adding all opcodes explicitly, which is... maybe overkill?)
Yes, I don't actually know. If you have a better idea, I'm all ears.
I think removing the default branch is indeed overkill.
I thought about adding a property OpProperties::CanBeTheHole(), but the problem kind of remains.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
switch (opcode) {Victor GomesI'm already seeing somebody forgetting to update this list! Is there anything we can do to make this more robust and/or make fuzzers catch problems faster? I guess there's no central bottleneck where we could check that if a ValueNode* is the hole, then its opcode must be one of these? Is there anything else we can do to force people adding new opcodes remember this? (Aside from removing the default branch and adding all opcodes explicitly, which is... maybe overkill?)
Yes, I don't actually know. If you have a better idea, I'm all ears.
I think removing the default branch is indeed overkill.
I thought about adding a property OpProperties::CanBeTheHole(), but the problem kind of remains.
(For a follow-up)
Could add the properties CanBeTheHole and CannotBeTheHole and require that exactly one is set?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
switch (opcode) {Victor GomesI'm already seeing somebody forgetting to update this list! Is there anything we can do to make this more robust and/or make fuzzers catch problems faster? I guess there's no central bottleneck where we could check that if a ValueNode* is the hole, then its opcode must be one of these? Is there anything else we can do to force people adding new opcodes remember this? (Aside from removing the default branch and adding all opcodes explicitly, which is... maybe overkill?)
Marja HölttäYes, I don't actually know. If you have a better idea, I'm all ears.
I think removing the default branch is indeed overkill.
I thought about adding a property OpProperties::CanBeTheHole(), but the problem kind of remains.
(For a follow-up)
Could add the properties CanBeTheHole and CannotBeTheHole and require that exactly one is set?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
switch (opcode) {Victor GomesI'm already seeing somebody forgetting to update this list! Is there anything we can do to make this more robust and/or make fuzzers catch problems faster? I guess there's no central bottleneck where we could check that if a ValueNode* is the hole, then its opcode must be one of these? Is there anything else we can do to force people adding new opcodes remember this? (Aside from removing the default branch and adding all opcodes explicitly, which is... maybe overkill?)
Marja HölttäYes, I don't actually know. If you have a better idea, I'm all ears.
I think removing the default branch is indeed overkill.
I thought about adding a property OpProperties::CanBeTheHole(), but the problem kind of remains.
(For a follow-up)
Could add the properties CanBeTheHole and CannotBeTheHole and require that exactly one is set?
Maybe we can also emit some debug-code verification for the node's result in codegen
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[maglev] Better hole static check elimination
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
// Avoid the check if {value} has an alternative whose representation doesn't
// allow the hole.
if (const NodeInfo* info = known_node_aspects().TryGetInfoFor(value)) {
auto& alt = info->alternative();
if (alt.int32() || alt.truncated_int32_to_number() || alt.float64()) {
return ReduceResult::Done();
}
}Removing this seems like a regression, or am I missing something?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |