[lld] [InstrProf][lld] Extend test to confirm order_file takes precedense over BP (PR #118889)

Ellis Hoag via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 5 14:19:22 PST 2024


https://github.com/ellishg created https://github.com/llvm/llvm-project/pull/118889

When both `-order_file` and `--irpgo-profile-sort=` (soon to be `-bp-startup-sort=function` in https://github.com/llvm/llvm-project/pull/118594) are used, we want to confirm that symbols in the orderfile take precedence.

>From d39315d4bd6fdb688ce40f964f0d4b9bd5c35c1f Mon Sep 17 00:00:00 2001
From: Ellis Hoag <ellis.sparky.hoag at gmail.com>
Date: Thu, 5 Dec 2024 14:17:00 -0800
Subject: [PATCH] [InstrProf][lld] Extend test to confirm order_file takes
 precedense over BP

---
 lld/test/MachO/bp-section-orderer.s | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/lld/test/MachO/bp-section-orderer.s b/lld/test/MachO/bp-section-orderer.s
index 407787025150d2..f220a08aff0f80 100644
--- a/lld/test/MachO/bp-section-orderer.s
+++ b/lld/test/MachO/bp-section-orderer.s
@@ -9,8 +9,11 @@
 
 # STARTUP: Ordered 3 sections using balanced partitioning
 
-# RUN: %lld -arch arm64 -lSystem -e _main -o - %t/a.o --irpgo-profile-sort=%t/a.profdata -order_file %t/a.orderfile | llvm-nm --numeric-sort --format=just-symbols - | FileCheck %s --check-prefix=ORDERFILE
+# Check that orderfiles take precedence over BP
+# RUN: %lld -arch arm64 -lSystem -e _main -o - %t/a.o -order_file %t/a.orderfile --irpgo-profile-sort=%t/a.profdata  | llvm-nm --numeric-sort --format=just-symbols - | FileCheck %s --check-prefix=ORDERFILE
+# RUN: %lld -arch arm64 -lSystem -e _main -o - %t/a.o -order_file %t/a.orderfile --compression-sort=both | llvm-nm --numeric-sort --format=just-symbols - | FileCheck %s --check-prefix=ORDERFILE
 
+# Functions
 # ORDERFILE: A
 # ORDERFILE: F
 # ORDERFILE: E
@@ -18,10 +21,15 @@
 # ORDERFILE-DAG: _main
 # ORDERFILE-DAG: _B
 # ORDERFILE-DAG: l_C
+
+# Data
+# ORDERFILE: s3
+# ORDERFILE: r3
+# ORDERFILE: r2
 # ORDERFILE-DAG: s1
 # ORDERFILE-DAG: s2
 # ORDERFILE-DAG: r1
-# ORDERFILE-DAG: r2
+# ORDERFILE-DAG: r4
 
 # RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --compression-sort=function 2>&1 | FileCheck %s --check-prefix=COMPRESSION-FUNC
 # RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --compression-sort=data 2>&1 | FileCheck %s --check-prefix=COMPRESSION-DATA
@@ -29,8 +37,8 @@
 # RUN: %lld -arch arm64 -lSystem -e _main -o %t/a.out %t/a.o --verbose-bp-section-orderer --compression-sort=both --irpgo-profile-sort=%t/a.profdata 2>&1 | FileCheck %s --check-prefix=COMPRESSION-BOTH
 
 # COMPRESSION-FUNC: Ordered 7 sections using balanced partitioning
-# COMPRESSION-DATA: Ordered 4 sections using balanced partitioning
-# COMPRESSION-BOTH: Ordered 11 sections using balanced partitioning
+# COMPRESSION-DATA: Ordered 7 sections using balanced partitioning
+# COMPRESSION-BOTH: Ordered 14 sections using balanced partitioning
 
 #--- a.s
 .text
@@ -66,10 +74,16 @@ s1:
   .ascii "hello world"
 s2:
   .ascii "i am a string"
+s3:
+  .ascii "this is s3"
 r1:
   .quad s1
 r2:
   .quad r1
+r3:
+  .quad r2
+r4:
+  .quad s2
 
 .subsections_via_symbols
 
@@ -121,3 +135,6 @@ A
 F
 E
 D
+s3
+r3
+r2



More information about the llvm-commits mailing list