https://gcc.gnu.org/g:e47df8123f9dcdabaa2164599438e03d987ef1b8

commit e47df8123f9dcdabaa2164599438e03d987ef1b8
Author: Josef Melcr <melcr...@fit.cvut.cz>
Date:   Tue Oct 22 19:24:01 2024 +0200

    omp-cp: add analysis done check when recursing in ipa_analyze_node
    
    gcc/ChangeLog:
    
            * ipa-prop.cc (ipa_analyze_node): add analysis done check when 
recursing
    
    Signed-off-by: Josef Melcr <melcr...@fit.cvut.cz>

Diff:
---
 gcc/ipa-prop.cc | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/gcc/ipa-prop.cc b/gcc/ipa-prop.cc
index ffd6555d2e56..7834d494eac1 100644
--- a/gcc/ipa-prop.cc
+++ b/gcc/ipa-prop.cc
@@ -3211,10 +3211,16 @@ ipa_analyze_node (struct cgraph_node *node)
              cgraph_node * reffering_node = dyn_cast<cgraph_node 
*>(ref->referring);
              gcc_checking_assert(call_stmt);
              gcc_checking_assert(reffering_node);
-        cgraph_edge * e = reffering_node->get_edge(ref->stmt);
-        e->make_callback(node);
-        ipa_analyze_node(e->caller);
-           }
+             cgraph_edge *e = reffering_node->get_edge (ref->stmt);
+             e->make_callback (node);
+             ipa_node_params *caller_info
+               = ipa_node_params_sum->get_create (e->caller);
+             if (caller_info->analysis_done)
+               {
+                 caller_info->analysis_done = 0;
+                 ipa_analyze_node (e->caller);
+               }
+             }
        }
     }

Reply via email to