[jdk16] RFR: 8259227: C2 crashes with SIGFPE due to a division that floats above its zero check [v2]
Christian Hagedorn
chagedorn at openjdk.java.net
Thu Jan 7 14:56:21 UTC 2021
> This bug is very similar to [JDK-8257822](https://bugs.openjdk.java.net/browse/JDK-8257822). In this testcase, a `Div` node has no longer its zero check as direct control input and is later moved before the zero check by `IfNode::dominated_by()` which updates all data nodes to a dominating `If` (in JDK-8257822 it was done by `PhaseIdealLoop::dominated_by()`) .
>
> I suggest to use the same fix for `IfNode::dominated_by()` as for `PhaseIdealLoop::dominated_by()` in JDK-8257822 to only move data nodes to the dominating `If` if it is not a `Div` or `Mod` node that could have a zero divisor (i.e. a zero check).
>
> Thanks,
> Christian
Christian Hagedorn has updated the pull request incrementally with one additional commit since the last revision:
Add additional runs without fixed seed
-------------
Changes:
- all: https://git.openjdk.java.net/jdk16/pull/89/files
- new: https://git.openjdk.java.net/jdk16/pull/89/files/4273fcfb..461681a6
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk16&pr=89&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk16&pr=89&range=00-01
Stats: 7 lines in 2 files changed: 6 ins; 0 del; 1 mod
Patch: https://git.openjdk.java.net/jdk16/pull/89.diff
Fetch: git fetch https://git.openjdk.java.net/jdk16 pull/89/head:pull/89
PR: https://git.openjdk.java.net/jdk16/pull/89
More information about the hotspot-compiler-dev
mailing list