[all-commits] [llvm/llvm-project] 46c59d: scudo: Use DC GZVA instruction in storeTags().

pcc via All-commits all-commits at lists.llvm.org
Wed Apr 21 13:54:27 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 46c59d91dc7a39cc98be7a68d6dc60f3e8a35df0
      https://github.com/llvm/llvm-project/commit/46c59d91dc7a39cc98be7a68d6dc60f3e8a35df0
  Author: Peter Collingbourne <peter at pcc.me.uk>
  Date:   2021-04-21 (Wed, 21 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/memtag.h

  Log Message:
  -----------
  scudo: Use DC GZVA instruction in storeTags().

DC GZVA can operate on multiple granules at a time (corresponding to
the CPU's cache line size) so we can generally expect it to be faster
than STZG in a loop.

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


  Commit: 3d47e003e922d5a7c18575f9c30a3098ccdb3040
      https://github.com/llvm/llvm-project/commit/3d47e003e922d5a7c18575f9c30a3098ccdb3040
  Author: Peter Collingbourne <peter at pcc.me.uk>
  Date:   2021-04-21 (Wed, 21 Apr 2021)

  Changed paths:
    M compiler-rt/lib/scudo/standalone/combined.h
    M compiler-rt/lib/scudo/standalone/memtag.h

  Log Message:
  -----------
  scudo: Make prepareTaggedChunk() and resizeTaggedChunk() generic.

Now that we have a more efficient implementation of storeTags(),
we should start using it from resizeTaggedChunk(). With that, plus
a new storeTag() function, resizeTaggedChunk() can be made generic,
and so can prepareTaggedChunk(). Make it so.

Now that the functions are generic, move them to combined.h so that
memtag.h no longer needs to know about chunks.

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


Compare: https://github.com/llvm/llvm-project/compare/79fbbeb41280...3d47e003e922


More information about the All-commits mailing list