This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCSE botch with EH case



On Aug 15, 2004, at 4:50 PM, Richard Kenner wrote:


This causes trapping expressions to be not transparent/antic in blocks
whose predecessors are abnormal. For store motion, you need to do the
same, except they can't be transparent/antic in blocks whose successor
edges are abnormal edges. This will prevent it from pushing stores
down across abnormal edges.


I don't follow. The stores in question aren't trapping expressions. The
issue isn't that the store could trap (it can't), but that it is being moved
from a block which is the normal case into the block corresponding to a
handler.

You've missed the basic point:
You want to prevent stores from being pushed down across abnormal edges, out of a normal block, into a handler.
To do this, you do the same type of thing that is being done for trapping expressions in PRE, except you do it for all stores.


So I don't see how that code you mention is related to this problem
from what you and the comments in that code says.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]