mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-12-28 02:37:37 +00:00
57769382b1
Summary: After introducing the limit for clobber walking, `walkToPhiOrClobber` would assert that the limit is at least 1 on entry. The test included triggered that assert. The callsite in `tryOptimizePhi` making the calls to `walkToPhiOrClobber` is structured like this: ``` while (true) { if (getBlockingAccess()) { // calls walkToPhiOrClobber } for (...) { walkToPhiOrClobber(); } } ``` The cleanest fix is to check if the limit was reached inside `walkToPhiOrClobber`, and give an allowence of 1. This approach not make any alias() calls (no calls to instructionClobbersQuery), so the performance condition is enforced. The limit is set back to 0 if not used, as this provides info on the fact that we stopped before reaching a true clobber. Reviewers: george.burgess.iv Subscribers: jlebar, Prazek, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60479 llvm-svn: 358303 |
||
---|---|---|
.. | ||
assume.ll | ||
atomic-clobber.ll | ||
basicaa-memcpy.ll | ||
constant-memory.ll | ||
cyclicphi.ll | ||
forward-unreachable.ll | ||
function-clobber.ll | ||
function-mem-attrs.ll | ||
invariant-groups.ll | ||
lifetime-simple.ll | ||
load-invariant.ll | ||
many-dom-backedge.ll | ||
many-doms.ll | ||
multi-edges.ll | ||
multiple-backedges-hal.ll | ||
multiple-locations.ll | ||
no-disconnected.ll | ||
optimize-use.ll | ||
phi-translation.ll | ||
pr28880.ll | ||
pr36883.ll | ||
pr39197.ll | ||
pr40037.ll | ||
pr40038.ll | ||
pr40509.ll | ||
pr40749.ll | ||
pr40754.ll | ||
pr41254.ll | ||
ptr-const-mem.ll | ||
reduce_clobber_limit.ll | ||
volatile-clobber.ll |