[PATCH] D52002: Switch optimization for known maximum switch values
Hans Wennborg via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 18 02:53:22 PST 2018
hans added a comment.
In D52002#1332378 <https://reviews.llvm.org/D52002#1332378>, @ayonam wrote:
> @hans
>
> The earlier code had a problem in that if we converted every switch that had an unreachable default, to omit the check for the default values beyond the maximum switch case value given in the code, then there were some corner cases where the code generated was semantically incorrect and resulted in runtime failures. These failures are happening while compiling LLVM code itself.
We need to figure out what those failures were. If the unreachable default was indeed reachable, that's a big problem.
> So I have added a boolean in the SwitchInst class to mark switches that have been widened, so that we omit the branch only for those switches.
LLVM doesn't put this kind of optimization metadata in the IR. The right thing to do is to figure out why removing the branch for unreachable default didn't work, and fix it.
If you can provide more details about what didn't work, maybe I can help investigate. (Though I'm about to go on holiday soon, so probably not until January.)
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D52002/new/
https://reviews.llvm.org/D52002
More information about the llvm-commits
mailing list