https://bugs.llvm.org/show_bug.cgi?id=46358
Reid Kleckner <r...@google.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |INVALID
Status|NEW |RESOLVED
--- Comment #1 from Reid Kleckner <r...@google.com> ---
This behavior is working as intended. There is an explanation in this bug,
which is arguably a duplicate: https://llvm.org/pr47459
The PCs in the ip2state table form half-open intervals, but a label beginning a
new region may appear immediately after a CALL instruction belonging to an
earlier region. When an exception is thrown from a CALL instruction, the return
address is used to calculate the current EH state, and the return address may
be in the next EH state interval. To work around this, LLVM biases all the
entries in ip2state forward by one byte. An alternative solution would be to
insert nops before EH state transitions, but that costs code size. The nop
placement could be more sophisticated, but that has its own complexity costs.
I left the other bug open to cover the possibility that we implement the
sophisticated nop insertion in the future, but I don't consider it high
priority.
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs