[all-commits] [llvm/llvm-project] 90e5a8: Remove 'no_sanitize_memtag'. Add 'sanitize_memtag'.

Mitch Phillips via All-commits all-commits at lists.llvm.org
Wed Jul 13 08:55:17 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 90e5a8ac475fa3c2fa7c22a341e798d6f7356b54
      https://github.com/llvm/llvm-project/commit/90e5a8ac475fa3c2fa7c22a341e798d6f7356b54
  Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
  Date:   2022-07-13 (Wed, 13 Jul 2022)

  Changed paths:
    M clang/lib/CodeGen/SanitizerMetadata.cpp
    M clang/test/CodeGen/memtag-globals.cpp
    M clang/test/CodeGen/sanitizer-special-case-list-globals.c
    M llvm/include/llvm/AsmParser/LLToken.h
    M llvm/include/llvm/IR/GlobalValue.h
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/IR/AsmWriter.cpp
    M llvm/test/Assembler/globalvariable-attributes.ll
    M llvm/test/Bitcode/compatibility.ll

  Log Message:
  -----------
  Remove 'no_sanitize_memtag'. Add 'sanitize_memtag'.

For MTE globals, we should have clang emit the attribute for all GV's
that it creates, and then use that in the upcoming AArch64 global
tagging IR pass. We need a positive attribute for this sanitizer (rather
than implicit sanitization of all globals) because it needs to interact
with other parts of LLVM, including:

  1. Suppressing certain global optimisations (like merging),
  2. Emitting extra directives by the ASM writer, and
  3. Putting extra information in the symbol table entries.

While this does technically make the LLVM IR / bitcode format
non-backwards-compatible, nobody should have used this attribute yet,
because it's a no-op.

Reviewed By: eugenis

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


  Commit: 7045519359de7fe717e29b24d2601679c923ca98
      https://github.com/llvm/llvm-project/commit/7045519359de7fe717e29b24d2601679c923ca98
  Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
  Date:   2022-07-13 (Wed, 13 Jul 2022)

  Changed paths:
    M clang/lib/CodeGen/CodeGenModule.cpp
    M clang/test/CodeGen/asan-globals.cpp
    M clang/test/CodeGen/hwasan-globals.cpp
    M clang/test/CodeGen/memtag-globals.cpp

  Log Message:
  -----------
  Add missing sanitizer metadata plumbing from CFE.

clang misses attaching sanitizer metadata for external globals.

Reviewed By: eugenis

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


  Commit: fd6dae9799c49be37749f4fdd04a05269e3bb4e0
      https://github.com/llvm/llvm-project/commit/fd6dae9799c49be37749f4fdd04a05269e3bb4e0
  Author: Mitch Phillips <31459023+hctim at users.noreply.github.com>
  Date:   2022-07-13 (Wed, 13 Jul 2022)

  Changed paths:
    M llvm/docs/LangRef.rst

  Log Message:
  -----------
  Update sanitize_* IR documentation.

sanitize_none was never actually committed, and should be removed.

no_sanitize_memtag is to be removed in D128950.

sanitize_memtag is new in D128950.

Also update the comments on other no_sanitize_* to indicate that they're
impacted by the sanitizer ignorelist and the global-disable attribute.

Reviewed By: eugenis

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


Compare: https://github.com/llvm/llvm-project/compare/4f281fa2a86b...fd6dae9799c4


More information about the All-commits mailing list