[all-commits] [llvm/llvm-project] 4e6963: [StructuralHash] Refactor

Kyungwoo Lee via All-commits all-commits at lists.llvm.org
Thu Oct 17 16:53:07 PDT 2024


  Branch: refs/heads/users/kyulee-com/cgdata
  Home:   https://github.com/llvm/llvm-project
  Commit: 4e696344bc28177a9805f656ea4864a5e4e5eb05
      https://github.com/llvm/llvm-project/commit/4e696344bc28177a9805f656ea4864a5e4e5eb05
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-10-17 (Thu, 17 Oct 2024)

  Changed paths:
    M llvm/include/llvm/IR/StructuralHash.h
    M llvm/lib/IR/StructuralHash.cpp
    M llvm/test/Transforms/MergeFunc/call-and-invoke-with-ranges.ll

  Log Message:
  -----------
  [StructuralHash] Refactor

 - Use stable_hash instead of uint64_t
 - Rename update* to hash* functions. They compute stable_hash locally
   and return it.


  Commit: 6f6b623332fc3c71a98307eb1ca643f7ce9d32c3
      https://github.com/llvm/llvm-project/commit/6f6b623332fc3c71a98307eb1ca643f7ce9d32c3
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-10-17 (Thu, 17 Oct 2024)

  Changed paths:
    M llvm/include/llvm/IR/StructuralHash.h
    M llvm/lib/IR/StructuralHash.cpp
    M llvm/unittests/IR/StructuralHashTest.cpp

  Log Message:
  -----------
  [StructuralHash] Support Differences

This comutes a structural hash while allowing for selective ignoring of
certain operands based on a custom function that is provided.
Instead of a single hash value, it now returns FunctionHashInfo which
includes a hash value, an instruction mapping, and a map to track the
operand location and its corresponding hash value that is ignored.


  Commit: 314599870b9136c7b558de1dd996b87101c7372d
      https://github.com/llvm/llvm-project/commit/314599870b9136c7b558de1dd996b87101c7372d
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-10-17 (Thu, 17 Oct 2024)

  Changed paths:
    A llvm/include/llvm/CGData/StableFunctionMap.h
    A llvm/include/llvm/CGData/StableFunctionMapRecord.h
    M llvm/lib/CGData/CMakeLists.txt
    A llvm/lib/CGData/StableFunctionMap.cpp
    A llvm/lib/CGData/StableFunctionMapRecord.cpp
    M llvm/unittests/CGData/CMakeLists.txt
    A llvm/unittests/CGData/StableFunctionMapRecordTest.cpp
    A llvm/unittests/CGData/StableFunctionMapTest.cpp

  Log Message:
  -----------
  [CGData] Stable Function Map

These define the main data structures to represent stable functions and group
similar functions in a function map.
Serialization is supported in a binary or yaml form.


  Commit: b6007c49b12c81f2381690981afffe9e3dec967d
      https://github.com/llvm/llvm-project/commit/b6007c49b12c81f2381690981afffe9e3dec967d
  Author: Kyungwoo Lee <kyulee at meta.com>
  Date:   2024-10-17 (Thu, 17 Oct 2024)

  Changed paths:
    M lld/test/MachO/cgdata-generate.s
    M llvm/docs/CommandGuide/llvm-cgdata.rst
    M llvm/include/llvm/CGData/CodeGenData.h
    M llvm/include/llvm/CGData/CodeGenData.inc
    M llvm/include/llvm/CGData/CodeGenDataReader.h
    M llvm/include/llvm/CGData/CodeGenDataWriter.h
    M llvm/lib/CGData/CodeGenData.cpp
    M llvm/lib/CGData/CodeGenDataReader.cpp
    M llvm/lib/CGData/CodeGenDataWriter.cpp
    M llvm/test/tools/llvm-cgdata/empty.test
    M llvm/test/tools/llvm-cgdata/error.test
    R llvm/test/tools/llvm-cgdata/merge-archive.test
    A llvm/test/tools/llvm-cgdata/merge-combined-funcmap-hashtree.test
    R llvm/test/tools/llvm-cgdata/merge-concat.test
    R llvm/test/tools/llvm-cgdata/merge-double.test
    A llvm/test/tools/llvm-cgdata/merge-funcmap-archive.test
    A llvm/test/tools/llvm-cgdata/merge-funcmap-concat.test
    A llvm/test/tools/llvm-cgdata/merge-funcmap-double.test
    A llvm/test/tools/llvm-cgdata/merge-funcmap-single.test
    A llvm/test/tools/llvm-cgdata/merge-hashtree-archive.test
    A llvm/test/tools/llvm-cgdata/merge-hashtree-concat.test
    A llvm/test/tools/llvm-cgdata/merge-hashtree-double.test
    A llvm/test/tools/llvm-cgdata/merge-hashtree-single.test
    R llvm/test/tools/llvm-cgdata/merge-single.test
    M llvm/tools/llvm-cgdata/llvm-cgdata.cpp

  Log Message:
  -----------
  [CGData][llvm-cgdata] Support for stable function map

This introduces a new cgdata format for stable function maps.
The raw data is embedded in the __llvm_merge section during compile time.
This data can be read and merged using the llvm-cgdata tool, into an indexed cgdata file. Consequently, the tool is now capable of handling either outlined hash trees, stable function maps, or both, as they are orthogonal.


Compare: https://github.com/llvm/llvm-project/compare/09f1ec773086...b6007c49b12c

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list