CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
209 lines
5.6 KiB
ArmAsm
209 lines
5.6 KiB
ArmAsm
# REQUIRES: aarch64
|
|
# RUN: rm -rf %t && split-file %s %t && cd %t
|
|
# RUN: llvm-mc -filetype=obj -triple=aarch64 a.s -o a.o
|
|
# RUN: llvm-profdata merge a.proftext -o a.profdata
|
|
|
|
## Simple glob: all .text* sections in one group.
|
|
# RUN: ld.lld a.o -o simple.out \
|
|
# RUN: --bp-compression-sort-section=".text*" \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=SIMPLE
|
|
|
|
## Deprecated --bp-compression-sort=function still works.
|
|
# RUN: ld.lld a.o -o deprecated.out \
|
|
# RUN: --bp-compression-sort=function \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=LEGACY-FUNCTION
|
|
|
|
# SIMPLE: Sections for compression: 7
|
|
# SIMPLE: Compression groups: 1
|
|
# SIMPLE: .text*: 7 sections
|
|
|
|
# LEGACY-FUNCTION: Sections for compression: 7
|
|
# LEGACY-FUNCTION: Compression groups: 1
|
|
# LEGACY-FUNCTION: legacy:function: 7 sections
|
|
|
|
## Layout priority: .text.unlikely*, .text*, .text.split*
|
|
# RUN: ld.lld a.o -o layout.out \
|
|
# RUN: --bp-compression-sort-section=".text*=1" \
|
|
# RUN: --bp-compression-sort-section=".text.unlikely*=0" \
|
|
# RUN: --bp-compression-sort-section=".text.split*=2" \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=LAYOUT
|
|
# RUN: llvm-nm -jn layout.out | FileCheck %s --check-prefix=LAYOUT-ORDER
|
|
|
|
# LAYOUT: Sections for compression: 7
|
|
# LAYOUT: Compression groups: 3
|
|
# LAYOUT: .text.unlikely*: 2 sections
|
|
# LAYOUT: .text*: 4 sections
|
|
# LAYOUT: .text.split*: 1 sections
|
|
|
|
# LAYOUT-ORDER: cold1
|
|
# LAYOUT-ORDER: hot1
|
|
# LAYOUT-ORDER: cold_split1
|
|
|
|
## Match priority: explicit match_priority wins
|
|
# RUN: ld.lld a.o -o match.out \
|
|
# RUN: --bp-compression-sort-section=".text.unlikely*=2=0" \
|
|
# RUN: --bp-compression-sort-section=".text*=0" \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=MATCH
|
|
# RUN: llvm-nm -jn match.out | FileCheck %s --check-prefix=MATCH-ORDER
|
|
|
|
## Match priority: lower match_priority wins
|
|
# RUN: ld.lld a.o -o match-prio.out \
|
|
# RUN: --bp-compression-sort-section=".text*=0=1" \
|
|
# RUN: --bp-compression-sort-section=".text.unlikely*=2=0" \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=MATCH
|
|
# RUN: llvm-nm -jn match-prio.out | FileCheck %s --check-prefix=MATCH-ORDER
|
|
|
|
# MATCH: Sections for compression: 7
|
|
# MATCH: Compression groups: 2
|
|
# MATCH: .text*: 5 sections
|
|
# MATCH: .text.unlikely*: 2 sections
|
|
# MATCH-ORDER: main
|
|
# MATCH-ORDER: cold1
|
|
|
|
## Match priority tie: last match wins
|
|
# RUN: ld.lld a.o -o match-tie.out \
|
|
# RUN: --bp-compression-sort-section=".text.unlikely*=0=0" \
|
|
# RUN: --bp-compression-sort-section=".text*=0=0" \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=MATCH-TIE
|
|
|
|
# MATCH-TIE: Compression groups: 1
|
|
# MATCH-TIE: .text*: 7 sections
|
|
|
|
## Layout priority tie: groups ordered by glob string
|
|
# RUN: ld.lld a.o -o layout-tie.out \
|
|
# RUN: --bp-compression-sort-section=".text.unlikely*=0=1" \
|
|
# RUN: --bp-compression-sort-section=".text.split*=0=2" \
|
|
# RUN: --bp-compression-sort-section=".text*=0" \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=LAYOUT-TIE
|
|
# RUN: llvm-nm -jn layout-tie.out | FileCheck %s --check-prefix=LAYOUT-TIE-ORDER
|
|
|
|
# LAYOUT-TIE: Compression groups: 3
|
|
# LAYOUT-TIE: .text*: 4 sections
|
|
# LAYOUT-TIE: .text.split*: 1 sections
|
|
# LAYOUT-TIE: .text.unlikely*: 2 sections
|
|
# LAYOUT-TIE-ORDER: main
|
|
# LAYOUT-TIE-ORDER: cold_split1
|
|
# LAYOUT-TIE-ORDER: cold1
|
|
|
|
## Startup sort + compression: startup, .text*, .text.unlikely*, .text.split*
|
|
# RUN: ld.lld a.o -o startup-compr.out --irpgo-profile=a.profdata \
|
|
# RUN: --bp-startup-sort=function \
|
|
# RUN: --bp-compression-sort-section=".text*=0" \
|
|
# RUN: --bp-compression-sort-section=".text.unlikely*=1=1" \
|
|
# RUN: --bp-compression-sort-section=".text.split*=2=1" \
|
|
# RUN: --verbose-bp-section-orderer 2>&1 | FileCheck %s --check-prefix=STARTUP
|
|
# RUN: llvm-nm -jn startup-compr.out | FileCheck %s --check-prefix=STARTUP-ORDER
|
|
|
|
# STARTUP: Functions for startup: 2
|
|
# STARTUP: Sections for compression: 5
|
|
# STARTUP: Compression groups: 3
|
|
# STARTUP-ORDER: hot1
|
|
# STARTUP-ORDER: main
|
|
# STARTUP-ORDER: cold2
|
|
# STARTUP-ORDER: cold_split1
|
|
|
|
#--- a.proftext
|
|
:ir
|
|
:temporal_prof_traces
|
|
# Num Traces
|
|
1
|
|
# Trace Stream Size:
|
|
1
|
|
# Weight
|
|
1
|
|
hot1, cold1
|
|
|
|
hot1
|
|
# Func Hash:
|
|
1111
|
|
# Num Counters:
|
|
1
|
|
# Counter Values:
|
|
1
|
|
|
|
cold1
|
|
# Func Hash:
|
|
2222
|
|
# Num Counters:
|
|
1
|
|
# Counter Values:
|
|
1
|
|
|
|
#--- a.s
|
|
.section .text.split.cold_split1,"ax",@progbits
|
|
.globl cold_split1
|
|
.type cold_split1,@function
|
|
cold_split1:
|
|
add w0, w0, #30
|
|
add w1, w1, #31
|
|
bl main
|
|
ret
|
|
.Lfunc_end_cold_split1:
|
|
.size cold_split1, .Lfunc_end_cold_split1-cold_split1
|
|
|
|
.section .text.hot1,"ax",@progbits
|
|
.globl hot1
|
|
.type hot1,@function
|
|
hot1:
|
|
add w0, w0, #1
|
|
add w1, w1, #2
|
|
bl main
|
|
ret
|
|
.Lfunc_end_hot1:
|
|
.size hot1, .Lfunc_end_hot1-hot1
|
|
|
|
.section .text.unlikely.cold1,"ax",@progbits
|
|
.globl cold1
|
|
.type cold1,@function
|
|
cold1:
|
|
add w0, w0, #10
|
|
add w1, w1, #11
|
|
bl main
|
|
ret
|
|
.Lfunc_end_cold1:
|
|
.size cold1, .Lfunc_end_cold1-cold1
|
|
|
|
.section .text.hot2,"ax",@progbits
|
|
.globl hot2
|
|
.type hot2,@function
|
|
hot2:
|
|
add w0, w0, #2
|
|
add w1, w1, #3
|
|
bl hot1
|
|
ret
|
|
.Lfunc_end_hot2:
|
|
.size hot2, .Lfunc_end_hot2-hot2
|
|
|
|
.section .text.unlikely.cold2,"ax",@progbits
|
|
.globl cold2
|
|
.type cold2,@function
|
|
cold2:
|
|
add w0, w0, #20
|
|
add w1, w1, #21
|
|
bl hot1
|
|
ret
|
|
.Lfunc_end_cold2:
|
|
.size cold2, .Lfunc_end_cold2-cold2
|
|
|
|
.section .text.hot3,"ax",@progbits
|
|
.globl hot3
|
|
.type hot3,@function
|
|
hot3:
|
|
add w0, w0, #3
|
|
add w1, w1, #4
|
|
bl cold1
|
|
ret
|
|
.Lfunc_end_hot3:
|
|
.size hot3, .Lfunc_end_hot3-hot3
|
|
|
|
.section .text.main,"ax",@progbits
|
|
.globl main
|
|
.type main,@function
|
|
main:
|
|
mov w0, wzr
|
|
ret
|
|
.Lfunc_end_main:
|
|
.size main, .Lfunc_end_main-main
|
|
|
|
.section ".note.GNU-stack","",@progbits
|