| Auto-Submit | +1 |
PTAL, followup to the other one to avoid redundant checks.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Code-Review | +1 |
LGTM + suggestion.
TNode<Object> value, bool skip_smi_and_static_root_check, Label* if_true,This is a personal opinion, but I think booleans that split the control flow like that makes it hard to follow.
I'd rather see a `BranchIfToBooleanIsTrue(T<Object>, if_true, if_false)` and
`BranchIfToBooleanIsTrueNonOddballs(T<HeapObject>, ....)`
and then called in the BaselineCompiler.
Not a strong opinion, though.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
TNode<Object> value, bool skip_smi_and_static_root_check, Label* if_true,This is a personal opinion, but I think booleans that split the control flow like that makes it hard to follow.
I'd rather see a `BranchIfToBooleanIsTrue(T<Object>, if_true, if_false)` and
`BranchIfToBooleanIsTrueNonOddballs(T<HeapObject>, ....)`and then called in the BaselineCompiler.
Not a strong opinion, though.
I see your point, but it's a bit tricky with the additional `!V8_STATIC_ROOTS_BOOL` path split where we actually don't check for `Null` or `Undefined`, relying instead on the undetectable map check for them (meaning that `BranchIfToBooleanIsTrueNonOddballs` would have to carve out an exception for `Null`/`Undefined`). I also kind of like the duality here that we either branch or DCHECK on the checks that we can skip, maybe I can make that clearer by sharing more code between the branching vs DCHECKing paths?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
TNode<Object> value, bool skip_smi_and_static_root_check, Label* if_true,Leszek SwirskiThis is a personal opinion, but I think booleans that split the control flow like that makes it hard to follow.
I'd rather see a `BranchIfToBooleanIsTrue(T<Object>, if_true, if_false)` and
`BranchIfToBooleanIsTrueNonOddballs(T<HeapObject>, ....)`and then called in the BaselineCompiler.
Not a strong opinion, though.
I see your point, but it's a bit tricky with the additional `!V8_STATIC_ROOTS_BOOL` path split where we actually don't check for `Null` or `Undefined`, relying instead on the undetectable map check for them (meaning that `BranchIfToBooleanIsTrueNonOddballs` would have to carve out an exception for `Null`/`Undefined`). I also kind of like the duality here that we either branch or DCHECK on the checks that we can skip, maybe I can make that clearer by sharing more code between the branching vs DCHECKing paths?
Fair enough. As I said, not very strong opinion here, since this is still a relatively simple CSA function.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
TNode<Object> value, bool skip_smi_and_static_root_check, Label* if_true,Leszek SwirskiThis is a personal opinion, but I think booleans that split the control flow like that makes it hard to follow.
I'd rather see a `BranchIfToBooleanIsTrue(T<Object>, if_true, if_false)` and
`BranchIfToBooleanIsTrueNonOddballs(T<HeapObject>, ....)`and then called in the BaselineCompiler.
Not a strong opinion, though.
Victor GomesI see your point, but it's a bit tricky with the additional `!V8_STATIC_ROOTS_BOOL` path split where we actually don't check for `Null` or `Undefined`, relying instead on the undetectable map check for them (meaning that `BranchIfToBooleanIsTrueNonOddballs` would have to carve out an exception for `Null`/`Undefined`). I also kind of like the duality here that we either branch or DCHECK on the checks that we can skip, maybe I can make that clearer by sharing more code between the branching vs DCHECKing paths?
Fair enough. As I said, not very strong opinion here, since this is still a relatively simple CSA function.
Then I'll leave as-is because I like the DCHECKs (in case I screw up when the skipping is possible and when it isn't) 😊
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[baseline] Optimize ToBooleanForBaselineJump for static roots
Update BranchIfToBooleanIsTrue to optionally skip Smi and static root
checks. Configure ToBooleanForBaselineJump to skip these checks when
V8_STATIC_ROOTS is enabled, as they are already handled inline by
the baseline compiler.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |