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: [trans-mem] ipa tm pass and dominator walks


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~



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