File tree Expand file tree Collapse file tree 7 files changed +22
-17
lines changed Expand file tree Collapse file tree 7 files changed +22
-17
lines changed Original file line number Diff line number Diff line change @@ -474,7 +474,13 @@ bool RISCVPassConfig::addPreISel() {
474474 addPass (createBarrierNoopPass ());
475475 }
476476
477- if (EnableGlobalMerge == cl::BOU_TRUE) {
477+ if ((TM->getOptLevel () != CodeGenOptLevel::None &&
478+ EnableGlobalMerge == cl::BOU_UNSET) ||
479+ EnableGlobalMerge == cl::BOU_TRUE) {
480+ // FIXME: Like AArch64, we disable extern global merging by default due to
481+ // concerns it might regress some workloads. Unlike AArch64, we don't
482+ // currently support enabling the pass in an "OnlyOptimizeForSize" mode.
483+ // Investigating and addressing both items are TODO.
478484 addPass (createGlobalMergePass (TM, /* MaxOffset */ 2047 ,
479485 /* OnlyOptimizeForSize */ false ,
480486 /* MergeExternalByDefault */
Original file line number Diff line number Diff line change 7474; CHECK-NEXT: Exception handling preparation
7575; CHECK-NEXT: A No-Op Barrier Pass
7676; CHECK-NEXT: FunctionPass Manager
77+ ; CHECK-NEXT: Merge internal globals
7778; CHECK-NEXT: Dominator Tree Construction
7879; CHECK-NEXT: Basic Alias Analysis (stateless AA impl)
7980; CHECK-NEXT: Function Alias Analysis Results
Original file line number Diff line number Diff line change 11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2- ; RUN: llc -mtriple=riscv64 -riscv-enable-global-merge -riscv- force-enable-global-merge-external-globals \
2+ ; RUN: llc -mtriple=riscv64 -riscv-force-enable-global-merge-external-globals \
33; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefix=SMALL-DATA
4- ; RUN: llc -mtriple=riscv64 -riscv-enable-global-merge - global-merge-min-data-size=0 \
4+ ; RUN: llc -mtriple=riscv64 -global-merge-min-data-size=0 \
55; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs < %s \
66; RUN: | FileCheck %s -check-prefix=MINSIZE
77
Original file line number Diff line number Diff line change 11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2- ; RUN: llc -mtriple=riscv32 -riscv-enable-global-merge -riscv- force-enable-global-merge-external-globals \
2+ ; RUN: llc -mtriple=riscv32 -riscv-force-enable-global-merge-external-globals \
33; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefix=SMALL-DATA
4- ; RUN: llc -mtriple=riscv64 -riscv-enable-global-merge - global-merge-min-data-size=5 \
4+ ; RUN: llc -mtriple=riscv64 -global-merge-min-data-size=5 \
55; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs < %s \
66; RUN: | FileCheck %s -check-prefix=MINSIZE
77
Original file line number Diff line number Diff line change 11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2- ; RUN: llc -mtriple=riscv32 -riscv-enable-global-merge -riscv- force-enable-global-merge-external-globals \
2+ ; RUN: llc -mtriple=riscv32 -riscv-force-enable-global-merge-external-globals \
33; RUN: -verify-machineinstrs < %s | FileCheck %s -check-prefix=RV32
4- ; RUN: llc -mtriple=riscv32 -riscv-enable-global-merge - global-merge-min-data-size=5 \
4+ ; RUN: llc -mtriple=riscv32 -global-merge-min-data-size=5 \
55; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs < %s | FileCheck %s -check-prefix=RV32-MINSIZE
66
77@ig1 = internal global i32 0 , align 4
Original file line number Diff line number Diff line change 11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2- ; RUN: sed 's/ArrSize/100/g' %s | llc -mtriple=riscv32 -riscv-enable-global-merge \
2+ ; RUN: sed 's/ArrSize/100/g' %s | llc -mtriple=riscv32 \
33; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs | FileCheck %s
4- ; RUN: sed 's/ArrSize/100/g' %s | llc -mtriple=riscv64 -riscv-enable-global-merge \
4+ ; RUN: sed 's/ArrSize/100/g' %s | llc -mtriple=riscv64 \
55; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs | FileCheck %s
6- ; RUN: sed 's/ArrSize/101/g' %s | llc -mtriple=riscv32 -riscv-enable-global-merge \
6+ ; RUN: sed 's/ArrSize/101/g' %s | llc -mtriple=riscv32 \
77; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs | FileCheck %s -check-prefix=CHECK-TOOBIG
8- ; RUN: sed 's/ArrSize/101/g' %s | llc -mtriple=riscv64 -riscv-enable-global-merge \
8+ ; RUN: sed 's/ArrSize/101/g' %s | llc -mtriple=riscv64 \
99; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs | FileCheck %s -check-prefix=CHECK-TOOBIG
1010
1111; This test demonstrates that the MaxOffset is set correctly for RISC-V by
Original file line number Diff line number Diff line change 11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2- ; RUN: llc -mtriple=riscv32 -riscv-enable-global-merge -verify-machineinstrs < %s \
3- ; RUN: | FileCheck %s
4- ; RUN: llc -mtriple=riscv64 -riscv-enable-global-merge -verify-machineinstrs < %s \
5- ; RUN: | FileCheck %s
6- ; RUN: llc -mtriple=riscv32 -riscv-enable-global-merge \
2+ ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s | FileCheck %s
3+ ; RUN: llc -mtriple=riscv64 -verify-machineinstrs < %s | FileCheck %s
4+ ; RUN: llc -mtriple=riscv32 \
75; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs < %s \
86; RUN: | FileCheck -check-prefix=CHECK-WEXTERN %s
9- ; RUN: llc -mtriple=riscv64 -riscv-enable-global-merge \
7+ ; RUN: llc -mtriple=riscv64 \
108; RUN: -riscv-force-enable-global-merge-external-globals -verify-machineinstrs < %s \
119; RUN: | FileCheck -check-prefix=CHECK-WEXTERN %s
1210
You can’t perform that action at this time.
0 commit comments