summaryrefslogtreecommitdiff
path: root/lldb/test/API/functionalities/plugins/python_os_plugin
diff options
context:
space:
mode:
authorYingwei Zheng <dtcxzyw2333@gmail.com>2024-07-01 03:35:39 +0800
committerGitHub <noreply@github.com>2024-07-01 03:35:39 +0800
commit4997af98a008e71a3df61707559710d1c2769839 (patch)
tree4a67444eec67ef4dac3a70926ed04279e2212e24 /lldb/test/API/functionalities/plugins/python_os_plugin
parent3efac5c68ac3117e8488a7fa247e45951e52936f (diff)
[SimplifyCFG] Simplify nested branches (#97067)
This patch folds the following pattern (I don't know what to call this): ``` bb0: br i1 %cond1, label %bb1, label %bb2 bb1: br i1 %cond2, label %bb3, label %bb4 bb2: br i1 %cond2, label %bb4, label %bb3 bb3: ... bb4: ... ``` into ``` bb0: %cond = xor i1 %cond1, %cond2 br i1 %cond, label %bb4, label %bb3 bb3: ... bb4: ... ``` Alive2: https://alive2.llvm.org/ce/z/5iOJEL Closes https://github.com/llvm/llvm-project/issues/97022. Closes https://github.com/llvm/llvm-project/issues/83417. I found this pattern in some verilator-generated code, which is widely used in RTL simulation. This fold will reduces branches and improves the performance of CPU frontend. To my surprise, this pattern is also common in C/C++ code base. Affected libraries/applications: cmake/cvc5/freetype/git/gromacs/jq/linux/openblas/openmpi/openssl/php/postgres/ruby/sqlite/wireshark/z3/...
Diffstat (limited to 'lldb/test/API/functionalities/plugins/python_os_plugin')
0 files changed, 0 insertions, 0 deletions