On 12/07/12 14:04, Richard Henderson wrote:
On 2012-12-05 15:06, Aldy Hernandez wrote:
        PR rtl-optimization/51771
        Revert:
        * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
        * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
Are we absolutely sure that the rtl edges are fixed?
Fixing only the gimple level edges doesn't really help the regsister allocator.

I'm actually sure that the rtl edges are NOT fixed in the rtl :).

All the back edges are removed prior to generating RTL in gimple_expand_cfg(), seemingly by design:

      /* At the moment not all abnormal edges match the RTL
         representation.  It is safe to remove them here as
         find_many_sub_basic_blocks will rediscover them.
         In the future we should get this fixed properly.  */

What I was assuming was that the returns-twice kludge was papering over some other issue, because we were never sure that the lack of edges was actually causing the problem in the PR. I can't find any tests (internal or external) that need the returns-twice hack.

I am hoping that by removing this hack we can find actual problems.

However, if you believe the RTL edge dropping in gimple_expand_cfg() is problematic, I can look into fixing this, though it would be nice to have a test I can work off of.

Aldy

Reply via email to