[all-commits] [llvm/llvm-project] dabd6a: [MemCpyOpt] Add additional tests for memset+memcpy...

Nikita Popov via All-commits all-commits at lists.llvm.org
Sat Mar 13 02:43:47 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: dabd6abbcd8ead8a16c2d6e0b2571f86c8e033a3
      https://github.com/llvm/llvm-project/commit/dabd6abbcd8ead8a16c2d6e0b2571f86c8e033a3
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-03-13 (Sat, 13 Mar 2021)

  Changed paths:
    M llvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll

  Log Message:
  -----------
  [MemCpyOpt] Add additional tests for memset+memcpy overwrite (NFC)


  Commit: 9080444f3311d62a98c28ce5a72b39da9e54e3cc
      https://github.com/llvm/llvm-project/commit/9080444f3311d62a98c28ce5a72b39da9e54e3cc
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-03-13 (Sat, 13 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
    M llvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll
    M llvm/test/Transforms/MemCpyOpt/preserve-memssa.ll

  Log Message:
  -----------
  [MemCpyOpt] Don't generate zero-size memset

If a memset destination is overwritten by a memcpy and the sizes
are exactly the same, then the memset is simply dead. We can
directly drop it, instead of replacing it with a memset of zero
size, which is particularly ugly for the case of a dynamic size.


  Commit: 2902bdeea1a58f9d14c92da966b027cee516dfd8
      https://github.com/llvm/llvm-project/commit/2902bdeea1a58f9d14c92da966b027cee516dfd8
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2021-03-13 (Sat, 13 Mar 2021)

  Changed paths:
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
    M llvm/test/Transforms/MemCpyOpt/memset-memcpy-redundant-memset.ll

  Log Message:
  -----------
  [MemCpyOpt] Use AA to check for MustAlias between memset and memcpy

Rather than checking for simple equality, check for MustAlias, as
we do in other transforms. This catches equivalent GEPs.


Compare: https://github.com/llvm/llvm-project/compare/b2f933a6ce83...2902bdeea1a5


More information about the All-commits mailing list