You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
That form is going to be supported after we finish GuardWidening reworking from branch widening to widenable conditions widening. But for now we still need to check that widenable branch is in the form of:
br(widenable_condition & (...))
That's why the one of the changes in the d6e7c16 was introduced too early:
In the d6e7c16 was introduced util to
to extract widenable conditions from branch. That util was applied in
the llvm::isWidenableBranch to check if branch is widenable. So we
consider branch is widenable if it has widenable condition anywhere in
the condition tree. But that will be true when we finish GuardWidening
reworking from branch widening to widenable conditions widening.
For now we still need to check that widenable branch is in the form of:
`br(widenable_condition & (...))`
because that form is assumed by LoopPredication and GuardWidening
algorithms.
Fixes: llvm#66418
In the d6e7c16 was introduced util to
to extract widenable conditions from branch. That util was applied in
the llvm::isWidenableBranch to check if branch is widenable. So we
consider branch is widenable if it has widenable condition anywhere in
the condition tree. But that will be true when we finish GuardWidening
reworking from branch widening to widenable conditions widening.
For now we still need to check that widenable branch is in the form of:
`br(widenable_condition & (...))`,
because that form is assumed by LoopPredication and GuardWidening
algorithms.
Fixes: #66418
Co-authored-by: Aleksander Popov <apopov@azul.com>
We met a testcase with a widenable branch in the form of br(c0 && (c1 && WC)):
That form is going to be supported after we finish GuardWidening reworking from branch widening to widenable conditions widening. But for now we still need to check that widenable branch is in the form of:
br(widenable_condition & (...))
That's why the one of the changes in the d6e7c16 was introduced too early:
We need to revert that change to state that branch above isn't widenable.
The text was updated successfully, but these errors were encountered: