[PATCH] D69295: Optimize SHA1 implementation

Nick Terrell via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 23 11:18:27 PDT 2019


terrelln added a comment.

> I also agree with this. I think llvm/benchmarks would be fine for now either way, but with more benchmarks (which hopefully would be there at some point, I had plans of adding some for a while now but I'm not sure when I'll get to that) subdirectories make sense.

I agree it would be better in `llvm/benchmarks`, and that is what I tried that first, but had problems with getting the CMakeFile.txt right. I set up the file like this:

  set(LLVM_LINK_COMPONENTS
    Support)
  
  add_benchmark(DummyYAML DummyYAML.cpp)
  add_benchmark(hash-benchmark hash-benchmark.cpp)

But the first benchmark complained that `hash-benchmark.cpp` is unused, and the second complained that `DummyYAML.cpp` is unused in LLVMProcessSources.cmake:112 <https://github.com/llvm/llvm-project/blob/c0da957bb05b7044bec83f8159c57b1d9ab9eb59/llvm/cmake/modules/LLVMProcessSources.cmake#L112>. If someone can help me with the CMake, I'd be glad to switch it back.

> Is it a -DCMAKE_BUILD_TYPE=Release build? I will be pretty surprised if gcc/clang -O3 does not inline these functions.

Yeah, clang -O3 inlines all of them, but gcc -O3 inlines most, but not all of them before this patch. gcc-6 doesn't inline at least some calls of `r1`, `blk`, and `r3`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69295/new/

https://reviews.llvm.org/D69295





More information about the llvm-commits mailing list