[all-commits] [llvm/llvm-project] 476ced: [MTE] [HWASan] Support diamond lifetimes.

Florian Mayer via All-commits all-commits at lists.llvm.org
Wed Jun 22 11:16:48 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 476ced4b89594d329dd0aa8798a46153672ded3c
      https://github.com/llvm/llvm-project/commit/476ced4b89594d329dd0aa8798a46153672ded3c
  Author: Florian Mayer <fmayer at google.com>
  Date:   2022-06-22 (Wed, 22 Jun 2022)

  Changed paths:
    M llvm/lib/Transforms/Utils/MemoryTaggingSupport.cpp
    M llvm/test/CodeGen/AArch64/stack-tagging-split-lifetime.ll
    M llvm/test/Instrumentation/HWAddressSanitizer/use-after-scope.ll

  Log Message:
  -----------
  [MTE] [HWASan] Support diamond lifetimes.

We were overly conservative and required a ret statement to be dominated
completely be a single lifetime.end marker. This is quite restrictive
and leads to two problems:

* limits coverage of use-after-scope, as we degenerate to
  use-after-return;
* increases stack usage in programs, as we have to remove all lifetime
  markers if we degenerate to use-after-return, which prevents
  reuse of stack slots by the stack coloring algorithm.

Reviewed By: eugenis

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




More information about the All-commits mailing list