From ba60dba2ba85e3aa9b5f274fb67633dba8817ffd Mon Sep 17 00:00:00 2001 From: Joerg Henrichs Date: Thu, 23 Nov 2023 11:23:00 +1100 Subject: [PATCH] #1990 Re-fixed handling of intrinsics ... which had disappeared. --- src/psyclone/psyir/tools/call_tree_utils.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/psyclone/psyir/tools/call_tree_utils.py b/src/psyclone/psyir/tools/call_tree_utils.py index 896608df6f..56ead7a339 100644 --- a/src/psyclone/psyir/tools/call_tree_utils.py +++ b/src/psyclone/psyir/tools/call_tree_utils.py @@ -37,8 +37,8 @@ ''' This module provides tools analyse the sequence of calls across different subroutines and modules.''' -from psyclone.psyir.nodes.call import Call -from psyclone.psyir.nodes import Reference, Routine +from psyclone.psyir.nodes import (Call, Container, IntrinsicCall, Reference, + Routine) from psyclone.psyir.symbols import (ArgumentInterface, ImportInterface) from psyclone.core import Signature, VariablesAccessInfo @@ -73,9 +73,6 @@ def _compute_non_locals_references(reference, sym): :rtype: Union[None, Tuple[str, str, str]] ''' - # Circular import: - # pylint: disable=import-outside-toplevel - from psyclone.psyir.nodes.container import Container node = reference while node: # A routine has its own name as a symbol in its symbol table. @@ -138,6 +135,10 @@ def _compute_all_non_locals(self, routine): Signature(access.name))) continue + if isinstance(access, IntrinsicCall): + # Intrinsic calls can be ignored + continue + if isinstance(access, Call): sym = access.routine if isinstance(sym.interface, ImportInterface):