<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <br>
    <p>On Tue, 10 Feb 2026 10:34:34 +0800 fanpeng <fanpeng@loongson.cn>
        wrote:</fanpeng@loongson.cn></p>
    <p>Re-generate the 0004-* patch based on the latest code.<br>
    </p>
    <p><br>
      <fanpeng@loongson.cn></fanpeng@loongson.cn></p>
    <fanpeng@loongson.cn>> Yes, It‘s also possible to use only the
      parameters in EXTRA_HADRIAN_FLAGS.<br>
      > <br>
      > In addition, I notice that the content of this patch 0004-*
      patch will <br>
      > conflict, but this modification for Loong64 is necessary if
      the LLvm <br>
      > backend is used.<br>
      > <br>
      > <br>
      > diff --git a/compiler/GHC/CmmToLlvm.hs
      b/compiler/GHC/CmmToLlvm.hs<br>
      > index de5d84c..ac52827 100644<br>
      > --- a/compiler/GHC/CmmToLlvm.hs<br>
      > +++ b/compiler/GHC/CmmToLlvm.hs<br>
      > @@ -219,7 +219,13 @@ cmmMetaLlvmPrelude = do<br>
      >              ArchX86_64 | llvmCgAvxEnabled cfg ->
      [mkStackAlignmentMeta 32]<br>
      >              _                                 -> []<br>
      >    module_flags_metas <- mkModuleFlagsMeta
      stack_alignment_metas<br>
      > -  let metas = tbaa_metas ++ module_flags_metas<br>
      > +  let code_model_metas =<br>
      > +          case platformArch platform of<br>
      > +            -- FIXME: We should not rely on LLVM<br>
      > +            ArchLoongArch64 -> [mkCodeModelMeta CMMedium]<br>
      > +            _                                 -> []<br>
      > +  mcmodel_flags_metas <- mkModuleFlagsMeta
      code_model_metas<br>
      > +  let metas = tbaa_metas ++ module_flags_metas ++
      mcmodel_flags_metas<br>
      >    cfg <- getConfig<br>
      >    renderLlvm (ppLlvmMetas cfg metas)<br>
      >               (ppLlvmMetas cfg metas)<br>
      > @@ -241,6 +247,15 @@ mkStackAlignmentMeta :: Integer ->
      ModuleFlag<br>
      >  mkStackAlignmentMeta alignment =<br>
      >      ModuleFlag MFBError "override-stack-alignment" (MetaLit
      $ LMIntLit <br>
      > alignment i32)<br>
      > <br>
      > +-- LLVM's @LLVM::CodeModel::Model@ enumeration<br>
      > +data CodeModel = CMMedium<br>
      > +<br>
      > +-- Pass -mcmodel=medium option to LLVM on LoongArch64<br>
      > +mkCodeModelMeta :: CodeModel -> ModuleFlag<br>
      > +mkCodeModelMeta codemodel =<br>
      > +    ModuleFlag MFBError "Code Model" (MetaLit $ LMIntLit n
      i32)<br>
      > +  where<br>
      > +    n = case codemodel of CMMedium -> 3 -- as of LLVM 8<br>
      > <br>
      >  -- <br>
      >
-----------------------------------------------------------------------------<br>
      >  -- | Marks variables as used where necessary<br>
      > <br>
      > <br>
      > On Sun, 25 Jan 2026 09:53:36 +0100 John Paul Adrian Glaubitz
      wrote:<br>
      > <br>
      > > Hi fanpeng,<br>
      > ><br>
      > > On Wed, 2026-01-14 at 06:32 +0000, fanpeng wrote:<br>
      > > > And the 0005-* patch is also required for C files.<br>
      > ><br>
      > > Did you forget this particular patch? I'm not seeing it
      here.<br>
      > ><br>
      > > Why not just keep the parameters in EXTRA_HADRIAN_FLAGS?<br>
      > ><br>
      > > Adrian<br>
      > ><br>
      > ><br>
    </fanpeng@loongson.cn><br>
  </body>
</html>