aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authorGiuseppe Rossini <giuseppe.rossini@amd.com>2024-07-02 17:12:33 +0100
committerGitHub <noreply@github.com>2024-07-02 17:12:33 +0100
commit6c3897d90eda4c39789ac9f4efa51db46734a249 (patch)
tree60ae5326a5b02b9d45f12a5e630a7ca0755fdce4 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
parent123beb7926651217024e5db58b93ab9e8f3c77c7 (diff)
downloadllvm-6c3897d90eda4c39789ac9f4efa51db46734a249.zip
llvm-6c3897d90eda4c39789ac9f4efa51db46734a249.tar.gz
llvm-6c3897d90eda4c39789ac9f4efa51db46734a249.tar.bz2
Fix block merging (#96871)
With this PR I am trying to address: https://github.com/llvm/llvm-project/issues/63230. What changed: - While merging identical blocks, don't add a block argument if it is "identical" to another block argument. I.e., if the two block arguments refer to the same `Value`. The operations operands in the block will point to the argument we already inserted - After merged the blocks, get rid of "unnecessary" arguments. I.e., if all the predecessors pass the same block argument, there is no need to pass it as an argument. - This last simplification clashed with `BufferDeallocationSimplification`. The reason, I think, is that the two simplifications are clashing. I.e., `BufferDeallocationSimplification` contains an analysis based on the block structure. If we simplify the block structure (by merging and/or dropping block arguments) the analysis is invalid . The solution I found is to do a more prudent simplification when running that pass. **Note**: many tests are still not passing. But I wanted to submit the code before changing all the tests (and probably adding a couple), so that we can agree in principle on the algorithm/design.
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions