[all-commits] [llvm/llvm-project] fe799c: [MustExecute] Forward iterate over conditional bra...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Wed Oct 30 22:07:19 PDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: fe799c97fae0729e5952c6a8edf41e67bf60048f
      https://github.com/llvm/llvm-project/commit/fe799c97fae0729e5952c6a8edf41e67bf60048f
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2019-10-31 (Thu, 31 Oct 2019)

  Changed paths:
    M llvm/include/llvm/Analysis/MustExecute.h
    M llvm/lib/Analysis/MustExecute.cpp
    M llvm/test/Analysis/MustExecute/must_be_executed_context.ll
    M llvm/test/Transforms/FunctionAttrs/nonnull.ll

  Log Message:
  -----------
  [MustExecute] Forward iterate over conditional branches

Summary:
If a conditional branch is encountered we can try to find a join block
where the execution is known to continue. This means finding a suitable
block, e.g., the immediate post dominator of the conditional branch, and
proofing control will always reach that block.

This patch implements different techniques that work with and without
provided analysis.

Reviewers: uenoku, sstefan1, hfinkel

Subscribers: hiraditya, bollu, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68933




More information about the All-commits mailing list