summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
diff options
context:
space:
mode:
authordarkbuck <michael.hliao@gmail.com>2024-07-26 12:15:49 -0400
committerGitHub <noreply@github.com>2024-07-26 12:15:49 -0400
commitba45453c0a5df3e6c3eddee647e14c97e02243fa (patch)
tree352cf526977ae7e2907102b37f8dc33b9f28b472 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
parentb582b658d60fb23ce39c48b42be265093e5e889d (diff)
[SimplifyCFG] Skip threading if the target may have divergent branches
- This patch skips the threading on known values if the target has divergent branch. - So far, threading on known values is skipped when the basic block has covergent calls. However, even without convergent calls, if that condition is divergent, threading duplicates the execution of that block threaded and hence results in lower performance. E.g., ``` BB1: if (cond) BB3, BB2 BB2: // work2 br BB3 BB3: // work3 if (cond) BB5, BB4 BB4: // work4 br BB5 BB5: ``` after threading, ``` BB1: if (cond) BB3', BB2' BB2': // work3 br BB5 BB3': // work2 // work3 // work4 br BB5 BB5: ``` After threading, work3 is executed twice if 'cond' is a divergent one. Reviewers: yxsamliu, nikic Pull Request: https://github.com/llvm/llvm-project/pull/100185
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp')
0 files changed, 0 insertions, 0 deletions