Fix PR optimization/12215
Eric Botcazou
ebotcazou@libertysurf.fr
Fri Sep 12 21:54:00 GMT 2003
Hi,
This is again a problem with -fnon-call-exceptions, a regression from 3.2.3
present on the 3.3 branch (and latent on mainline).
The CSE pass can destroy the CFG in presence of trapping loads, because it
may emit insns right after those loads. Now trapping loads can cause a
control flow transfer, so they are the last insns in their basic block. Once
the CFG is destroyed, bogus edges are purged, which leads in turn to the
deletion of basic blocks.
Bootstrapped/regtested on i586-redhat-linux-gnu (3.3 branch except Ada).
Ok for mainline and branch?
2003-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
PR optimization/12215
* cse.c (cse_set_around_loop): Emit the move at the beginning
of the next basic block for trapping sets.
2003-09-12 Eric Botcazou <ebotcazou@libertysurf.fr>
* g++.dg/opt/cfg2.C: New test.
--
Eric Botcazou
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pr12215.diff
Type: text/x-diff
Size: 732 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030912/184572b0/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cfg2.C
Type: text/x-c++src
Size: 671 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030912/184572b0/attachment-0001.bin>
More information about the Gcc-patches
mailing list