[opt] Properly handle FuncCallStmt in CFG and simplify passes #8139
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue: #602
Assuming
FuncCallStmt
can load or modify any address. I will write a pass to find out all the addresses loaded and modified in aFuncCallStmt
later.🤖 Generated by Copilot at cf4766c
Summary
📞🔧🧪
This pull request enhances the control flow graph analysis and optimization to support function calls in taichi kernels. It also improves the simplification of basic blocks and tests some experimental features of taichi. The main files affected are
taichi/ir/control_flow_graph.cpp
,taichi/transforms/simplify.cpp
, andtests/python/test_function.py
.Walkthrough
BasicBlockSimplify
(link)test_function.py
(link)