1.1 KiB
1.1 KiB
Diamond Recursion Scan (pytorch) — CLEAN (deeper scan)
Scan date: 2026-03-29 Pattern: Recursive cycle/dependency check without visited set (CWE-407 diamond recursion, O(2^D))
Files examined
torch/_inductor/scheduler.py:topological_sort_schedule— usesseen = OrderedSet()— CLEANtorch/_inductor/memory.py:topological_sort_lpmf— usesseenOrderedSet — CLEANtorch/_inductor/memory.py:dfs_visit— usescolordict (WHITE/GRAY/BLACK) — CLEANtorch/_inductor/augmented_graph_helper.py:_get_all_ancestors— iterative withancestorsset — CLEANtorch/_inductor/fx_passes/overlap_scheduling.py:_collect_node_ancestors— iterative DP — CLEANtorch/_dynamo/graph_deduplication.py:_has_cycle— delegates to topological sort — CLEANtorch/package/_digraph.py— uses networkx DiGraph — CLEANtorch/utils/data/graph.py:traverse_dps— no DAG traversal without visited — CLEANtorch/autograd/— engine is C++, Python wrappers don't do DAG traversal — CLEAN