[all-commits] [llvm/llvm-project] 8f592e: [StackSafety] Ignore unreachable instructions

Vitaly Buka via All-commits all-commits at lists.llvm.org
Mon Jun 22 03:45:53 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 8f592ed33360516e9531fc12424ad050d17195b4
      https://github.com/llvm/llvm-project/commit/8f592ed33360516e9531fc12424ad050d17195b4
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2020-06-22 (Mon, 22 Jun 2020)

  Changed paths:
    M llvm/lib/Analysis/StackSafetyAnalysis.cpp
    M llvm/test/Analysis/StackSafetyAnalysis/local.ll

  Log Message:
  -----------
  [StackSafety] Ignore unreachable instructions

Usually DominatorTree provides this info, but here we use
StackLifetime. The reason is that in the next patch StackLifetime
will be used for actual lifetime checks and we can avoid
forwarding the DominatorTree into this code.


  Commit: 5d964e262f0c446dd1e25179d342a953a3611d76
      https://github.com/llvm/llvm-project/commit/5d964e262f0c446dd1e25179d342a953a3611d76
  Author: Vitaly Buka <vitalybuka at google.com>
  Date:   2020-06-22 (Mon, 22 Jun 2020)

  Changed paths:
    M llvm/lib/Analysis/StackSafetyAnalysis.cpp
    M llvm/test/Analysis/StackSafetyAnalysis/local.ll

  Log Message:
  -----------
  [StackSafety] Check variable lifetime

We can't consider variable safe if out-of-lifetime access is possible.
So if StackLifetime can't prove that the instruction always uses
the variable when it's still alive, we consider it unsafe.


Compare: https://github.com/llvm/llvm-project/compare/01f9388d95ac...5d964e262f0c


More information about the All-commits mailing list