| Code-Review | +1 |
sorry for the slow review, this looks really good.
// We need to set a context, since this is unconditioned in the frame state.
// We can set it to undefined, since this will never be executed.
variable_frame_.set(interpreter::Register::current_context(),
reducer_->GetRootConstant(RootIndex::kUndefinedValue));can we make this more robust somehow, enforce that it's never used?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Auto-Submit | +1 |
| Commit-Queue | +1 |
// We need to set a context, since this is unconditioned in the frame state.
// We can set it to undefined, since this will never be executed.
variable_frame_.set(interpreter::Register::current_context(),
reducer_->GetRootConstant(RootIndex::kUndefinedValue));can we make this more robust somehow, enforce that it's never used?
Right. A nullptr didn't work here, because we walk the frame in the visitor and crash there. But we can create a DeadValue. If we try to use/emit this value, we would crash in UNREACHABLE, wdyt?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
// We need to set a context, since this is unconditioned in the frame state.
// We can set it to undefined, since this will never be executed.
variable_frame_.set(interpreter::Register::current_context(),
reducer_->GetRootConstant(RootIndex::kUndefinedValue));Victor Gomescan we make this more robust somehow, enforce that it's never used?
Right. A nullptr didn't work here, because we walk the frame in the visitor and crash there. But we can create a DeadValue. If we try to use/emit this value, we would crash in UNREACHABLE, wdyt?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[turbolev] Share subgraph construction between builder and optimizer
Introduce Subgraph<BaseT> on MaglevReducer with two specializations:
- Subgraph<MaglevGraphBuilder> facades the existing MaglevSubGraphBuilder.
- Subgraph<MaglevGraphOptimizer> synthesises an off-graph CFG and records a pending splice The GraphProcessor stitches the new blocks into the live graph.
MaglevReducer::Select is a single generic impl over Subgraph<BaseT>
primitives. TryReduceMathMin/Max move from MaglevGraphBuilder to
MaglevReducer so both bases share the reduction; the optimizer side now
reduces Math.min/Math.max for the post-inline CallKnownBuiltin path.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |