On Tue, Nov 30 2021, Richard Biener wrote:
> On Tue, Nov 30, 2021 at 3:24 PM Martin Jambor <mjam...@suse.cz> wrote:
>>
>> Hi,
>>
>> in PR 103267 Honza found out that IPA-SRA does not look at
>> ECF_LOOPING_CONST_OR_PURE when evaluating if a call can have side
>> effects.  Fixed with this patch.  The testcase infinitely loops in a
>> const function, so it would not make a good addition to the testsuite.
>>
>> Bootstrapped and tested on x86_64-linux.  OK for trunk?
>
> OK.
>

Thank you.  For reference, I am also about to commit (after having
bootstrapped and tested it on x86_64-linx) the following backport to the
old IPA-SRA we have in GCC 9.

Thanks,

Martin



gcc/ChangeLog:

2021-12-01  Martin Jambor  <mjam...@suse.cz>

        PR ipa/103267
        * tree-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE
        flag.
---
 gcc/tree-sra.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 909b4fef9a8..252953b7512 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -1530,7 +1530,8 @@ scan_function (void)
                    }
 
                  if (final_bbs
-                     && (flags & (ECF_CONST | ECF_PURE)) == 0)
+                     && ((flags & (ECF_CONST | ECF_PURE)) == 0
+                         || (flags & ECF_LOOPING_CONST_OR_PURE)))
                    bitmap_set_bit (final_bbs, bb->index);
                }
 
-- 
2.33.1

Reply via email to