From 674798f7cda3e7c16081a7ce7a65b057d84ef34c Mon Sep 17 00:00:00 2001 From: Debian Haskell Group Date: Mon, 16 Sep 2024 00:17:25 +0300 Subject: [PATCH] llvm-new-pass-manager commit 77db84aba1ba00f6d146e9107b24c6203798e796 Author: Ben Gamari Date: Wed Jan 31 08:58:58 2024 -0500 llvmGen: Adapt to allow use of new pass manager. We now must use `-passes` in place of `-O` due to #21936. Closes #21936. Gbp-Pq: Name llvm-new-pass-manager --- compiler/GHC/Driver/Flags.hs | 2 -- compiler/GHC/Driver/Pipeline/Execute.hs | 3 +-- compiler/GHC/Driver/Session.hs | 2 -- llvm-passes | 6 +++--- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/compiler/GHC/Driver/Flags.hs b/compiler/GHC/Driver/Flags.hs index 3f5be732..b9f4131d 100644 --- a/compiler/GHC/Driver/Flags.hs +++ b/compiler/GHC/Driver/Flags.hs @@ -273,7 +273,6 @@ data GeneralFlag | Opt_RegsGraph -- do graph coloring register allocation | Opt_RegsIterative -- do iterative coalescing graph coloring register allocation | Opt_PedanticBottoms -- Be picky about how we treat bottom - | Opt_LlvmTBAA -- Use LLVM TBAA infrastructure for improving AA (hidden flag) | Opt_LlvmFillUndefWithGarbage -- Testing for undef bugs (hidden flag) | Opt_IrrefutableTuples | Opt_CmmSink @@ -508,7 +507,6 @@ optimisationFlags = EnumSet.fromList , Opt_EnableRewriteRules , Opt_RegsGraph , Opt_RegsIterative - , Opt_LlvmTBAA , Opt_IrrefutableTuples , Opt_CmmSink , Opt_CmmElimCommonBlocks diff --git a/compiler/GHC/Driver/Pipeline/Execute.hs b/compiler/GHC/Driver/Pipeline/Execute.hs index fac2a595..d9b5f181 100644 --- a/compiler/GHC/Driver/Pipeline/Execute.hs +++ b/compiler/GHC/Driver/Pipeline/Execute.hs @@ -989,8 +989,7 @@ llvmOptions :: LlvmConfig -> DynFlags -> [(String, String)] -- ^ pairs of (opt, llc) arguments llvmOptions llvm_config dflags = - [("-enable-tbaa -tbaa", "-enable-tbaa") | gopt Opt_LlvmTBAA dflags ] - ++ [("-relocation-model=" ++ rmodel + [("-relocation-model=" ++ rmodel ,"-relocation-model=" ++ rmodel) | not (null rmodel)] ++ [("-stack-alignment=" ++ (show align) ,"-stack-alignment=" ++ (show align)) | align > 0 ] diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs index 3eb13076..00404863 100644 --- a/compiler/GHC/Driver/Session.hs +++ b/compiler/GHC/Driver/Session.hs @@ -3430,7 +3430,6 @@ fFlagsDeps = [ flagSpec "late-dmd-anal" Opt_LateDmdAnal, flagSpec "late-specialise" Opt_LateSpecialise, flagSpec "liberate-case" Opt_LiberateCase, - flagHiddenSpec "llvm-tbaa" Opt_LlvmTBAA, flagHiddenSpec "llvm-fill-undef-with-garbage" Opt_LlvmFillUndefWithGarbage, flagSpec "loopification" Opt_Loopification, flagSpec "block-layout-cfg" Opt_CfgBlocklayout, @@ -3989,7 +3988,6 @@ optLevelFlags :: [([Int], GeneralFlag)] optLevelFlags -- see Note [Documenting optimisation flags] = [ ([0,1,2], Opt_DoLambdaEtaExpansion) , ([0,1,2], Opt_DoEtaReduction) -- See Note [Eta-reduction in -O0] - , ([0,1,2], Opt_LlvmTBAA) , ([0,1,2], Opt_ProfManualCcs ) , ([2], Opt_DictsStrict) diff --git a/llvm-passes b/llvm-passes index 52d203e7..0ee2889d 100644 --- a/llvm-passes +++ b/llvm-passes @@ -1,5 +1,5 @@ [ -(0, "-enable-new-pm=0 -mem2reg -globalopt -lower-expect"), -(1, "-enable-new-pm=0 -O1 -globalopt"), -(2, "-enable-new-pm=0 -O2") +(0, "-passes=function(require),function(mem2reg),globalopt,function(lower-expect)"), +(1, "-passes=default"), +(2, "-passes=default") ] -- 2.30.2