From da69acf2309d101685f0e32f519855e57e85dd54235b539e0d85cb2fc4d0f3cd Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Fri, 21 Oct 2022 12:07:45 +0000 Subject: [PATCH] Accepting request 1030363 from home:favogt:boo1204267 - Add patch to fix LLVM optimization to avoid failure on armv7 (https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19217, boo#1204267): * u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patch OBS-URL: https://build.opensuse.org/request/show/1030363 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=1150 --- Mesa.changes | 8 ++ Mesa.spec | 2 + ...-optimization-with-the-new-pass-mana.patch | 92 +++++++++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patch diff --git a/Mesa.changes b/Mesa.changes index ca4b6dd..e611f47 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Fri Oct 21 09:41:37 UTC 2022 - Fabian Vogt + +- Add patch to fix LLVM optimization to avoid failure on armv7 + (https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19217, + boo#1204267): + * u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patch + ------------------------------------------------------------------- Thu Oct 20 08:46:59 UTC 2022 - Stefan Dirsch diff --git a/Mesa.spec b/Mesa.spec index e80818a..5d80122 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -139,6 +139,7 @@ Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch Patch200: u_fix-build-on-ppc64le.patch +Patch201: u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patch Patch300: n_buildfix-21.3.0.patch Patch400: n_no-sse2-on-ix86-except-for-intel-drivers.patch Patch500: n_stop-iris-flicker.patch @@ -760,6 +761,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %patch58 -p1 %patch100 -p1 %patch200 -p1 +%patch201 -p1 %patch300 -p1 %ifarch %{ix86} %patch400 -p1 diff --git a/u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patch b/u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patch new file mode 100644 index 0000000..499e9ea --- /dev/null +++ b/u_0001-gallivm-Fix-LLVM-optimization-with-the-new-pass-mana.patch @@ -0,0 +1,92 @@ +From 7d6df34deeed5a42163f9b548945e4d785ba48cf Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Fri, 21 Oct 2022 11:20:31 +0200 +Subject: [PATCH] gallivm: Fix LLVM optimization with the new pass manager + +The previous list of passes contained several errors: "constprop" does not +exist anymore and a trailing ',' is not allowed. This made LLVMRunPasses +fail, but the error is silently ignored. Thus none of the listed passes +ran at all. + +https://reviews.llvm.org/D85159 suggests "InstSimplify really should be +used anywhere ConstProp is being used" so replace constprop with +instsimplify and remove the trailing comma. + +By enabling pass logging with +LLVMPassBuilderOptionsSetDebugLogging(opts, true), +the difference is visible. Before: + +Running pass: AlwaysInlinerPass on [module] +Running analysis: InnerAnalysisManagerProxy on [module] +Running analysis: ProfileSummaryAnalysis on [module] +Running pass: CoroConditionalWrapper on [module] +Running pass: AnnotationRemarksPass on fs_variant_partial (1162 instructions) +Running analysis: TargetLibraryAnalysis on fs_variant_partial +Running pass: AnnotationRemarksPass on fs_variant_whole (1110 instructions) +Running analysis: TargetLibraryAnalysis on fs_variant_whole + +After: + +Running pass: AlwaysInlinerPass on [module] +Running analysis: InnerAnalysisManagerProxy on [module] +Running analysis: ProfileSummaryAnalysis on [module] +Running pass: CoroConditionalWrapper on [module] +Running pass: AnnotationRemarksPass on fs_variant_partial (1162 instructions) +Running analysis: TargetLibraryAnalysis on fs_variant_partial +Running pass: AnnotationRemarksPass on fs_variant_whole (1110 instructions) +Running analysis: TargetLibraryAnalysis on fs_variant_whole +Running analysis: InnerAnalysisManagerProxy on [module] +Running pass: SROAPass on fs_variant_partial (1162 instructions) +Running analysis: DominatorTreeAnalysis on fs_variant_partial +Running analysis: AssumptionAnalysis on fs_variant_partial +Running analysis: TargetIRAnalysis on fs_variant_partial +Running pass: EarlyCSEPass on fs_variant_partial (1111 instructions) +Running analysis: TargetLibraryAnalysis on fs_variant_partial +Running pass: SimplifyCFGPass on fs_variant_partial (961 instructions) +Running pass: ReassociatePass on fs_variant_partial (961 instructions) +Running pass: PromotePass on fs_variant_partial (897 instructions) +Running pass: InstCombinePass on fs_variant_partial (897 instructions) +Running analysis: OptimizationRemarkEmitterAnalysis on fs_variant_partial +Running analysis: AAManager on fs_variant_partial +Running analysis: BasicAA on fs_variant_partial +Running analysis: ScopedNoAliasAA on fs_variant_partial +Running analysis: TypeBasedAA on fs_variant_partial +Running analysis: OuterAnalysisManagerProxy on fs_variant_partial +Running pass: SROAPass on fs_variant_whole (1110 instructions) +Running analysis: DominatorTreeAnalysis on fs_variant_whole +Running analysis: AssumptionAnalysis on fs_variant_whole +Running analysis: TargetIRAnalysis on fs_variant_whole +Running pass: EarlyCSEPass on fs_variant_whole (1059 instructions) +Running analysis: TargetLibraryAnalysis on fs_variant_whole +Running pass: SimplifyCFGPass on fs_variant_whole (912 instructions) +Running pass: ReassociatePass on fs_variant_whole (912 instructions) +Running pass: PromotePass on fs_variant_whole (844 instructions) +Running pass: InstCombinePass on fs_variant_whole (844 instructions) +Running analysis: OptimizationRemarkEmitterAnalysis on fs_variant_whole +Running analysis: AAManager on fs_variant_whole +Running analysis: BasicAA on fs_variant_whole +Running analysis: ScopedNoAliasAA on fs_variant_whole +Running analysis: TypeBasedAA on fs_variant_whole +Running analysis: OuterAnalysisManagerProxy on fs_variant_whole + +Fixes: 2037c34f245 ("gallivm: move to new pass manager to handle coroutines change.") +--- + src/gallium/auxiliary/gallivm/lp_bld_init.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c +index f77aac75b76..cc410cc1928 100644 +--- a/src/gallium/auxiliary/gallivm/lp_bld_init.c ++++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c +@@ -601,7 +601,7 @@ gallivm_compile_module(struct gallivm_state *gallivm) + LLVMRunPasses(gallivm->module, passes, LLVMGetExecutionEngineTargetMachine(gallivm->engine), opts); + + if (!(gallivm_perf & GALLIVM_PERF_NO_OPT)) +- strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,constprop,instcombine,"); ++ strcpy(passes, "sroa,early-cse,simplifycfg,reassociate,mem2reg,instsimplify,instcombine"); + else + strcpy(passes, "mem2reg"); + +-- +2.38.0 +