[all-commits] [llvm/llvm-project] 16b238: [llvm-exegesis] Fix snippet value scaling (#77226)

Aiden Grossman via All-commits all-commits at lists.llvm.org
Tue Jan 16 11:49:29 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 16b238798250cb16ac78c710958b353cb45b11a0
      https://github.com/llvm/llvm-project/commit/16b238798250cb16ac78c710958b353cb45b11a0
  Author: Aiden Grossman <agrossman154 at yahoo.com>
  Date:   2024-01-16 (Tue, 16 Jan 2024)

  Changed paths:
    M llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp

  Log Message:
  -----------
  [llvm-exegesis] Fix snippet value scaling (#77226)

Currently, BenchmarkRunner scales the per snippet counters by
multiplying the raw counter values by the number of instructions (casted
to a double) divided by the minimum number of instructions. This is
incorrect for the loop repetition mode for snippets that don't fit a
whole number of times into the minimum instruction count. For example,
with 3 instructions in the snippet and the minimum number of
instructions set to 4, the loop repetitor will execute a total of six
instructions, but BenchmarkRunner will scale the raw count by 3/4
instead of 3/6=1/2. This will also be incorrect for the duplicate
snippet repetitor after #77224.

This patch fixes this behavior by dividing the raw count by the ceiling
of the number of repetitions divided by the instruction count.




More information about the All-commits mailing list