[trans-mem] ipa tm pass and dominator walks
Richard Henderson
rth@redhat.com
Wed Feb 3 18:48:00 GMT 2010
On 02/03/2010 10:26 AM, Aldy Hernandez wrote:
>> I don't think that's true at all. You showed that the walking was
>> incorrect; I don't see you you can now argue that it is correct,
>> regardless of inlining and jump threading.
>>
>> All one needs to create the cfg that exhibits the problem is
>> multiple exits from the transaction. It's not terribly hard to
>> create such a cfg directly in the source...
>
> Can't believe I forgot about explicit gotos and the like.
>
> Below is a patch fixing the transformation of calls during the TM ipa
> pass. It walks the CFG instead of the dominator tree.
>
> OK for branch?
>
> * trans-mem.c (ipa_tm_scan_irr_block): Iterate CFG.
This part is ok.
> (ipa_tm_transform_calls_1): Rename from ipa_tm_transform_calls.
> Only process one block.
> (ipa_tm_transform_calls): Iterate through CFG and call helper
> function.
This part isn't. As we discussed on IRC, you're missing a check
for irr_blocks and stopping the iteration then.
r~
More information about the Gcc
mailing list