From: Simon Pilgrim Date: Sat, 17 Dec 2022 14:06:26 +0000 (+0000) Subject: [llvm-exegesis][X86] Use the same AGU counter estimate mapping for znver1 as znver2... X-Git-Tag: upstream/17.0.6~23408 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2ee17d691f4f34769b64fffc6fe704ae13667256;p=platform%2Fupstream%2Fllvm.git [llvm-exegesis][X86] Use the same AGU counter estimate mapping for znver1 as znver2, and count RMW ops as well znver2 can use the ld/st dispatch counters to make a reasonable estimate for the AGU usage (although it misses complex LEA ops which I don't think we can fix), although it wasn't accounting for RMW ld-st uops which are counted separately - the same approach can be used for znver1 (ymm double-pumping ld/st agu is correctly measured as 2uops) This change is mainly academic, but was noticed as the znver1/2 models incorrectly assume scalar RMW ops take 2uops --- diff --git a/llvm/lib/Target/X86/X86PfmCounters.td b/llvm/lib/Target/X86/X86PfmCounters.td index ea165ba..d2460e1 100644 --- a/llvm/lib/Target/X86/X86PfmCounters.td +++ b/llvm/lib/Target/X86/X86PfmCounters.td @@ -262,6 +262,7 @@ def ZnVer1PfmCounters : ProcPfmCounters { PfmIssueCounter<"ZnFPU1", "fpu_pipe_assignment:total1">, PfmIssueCounter<"ZnFPU2", "fpu_pipe_assignment:total2">, PfmIssueCounter<"ZnFPU3", "fpu_pipe_assignment:total3">, + PfmIssueCounter<"ZnAGU", "ls_dispatch:ld_st_dispatch + ls_dispatch:ld_dispatch + ls_dispatch:store_dispatch">, PfmIssueCounter<"ZnDivider", "div_op_count"> ]; } @@ -271,7 +272,7 @@ def ZnVer2PfmCounters : ProcPfmCounters { let CycleCounter = PfmCounter<"cycles_not_in_halt">; let UopsCounter = PfmCounter<"retired_uops">; let IssueCounters = [ - PfmIssueCounter<"Zn2AGU", "ls_dispatch:ld_dispatch + ls_dispatch:store_dispatch">, + PfmIssueCounter<"Zn2AGU", "ls_dispatch:ld_st_dispatch + ls_dispatch:ld_dispatch + ls_dispatch:store_dispatch">, PfmIssueCounter<"Zn2Divider", "div_op_count"> ]; }