[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