<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Yes, It‘s also possible to use only the parameters in
EXTRA_HADRIAN_FLAGS.<br>
</p>
<p>In addition, I notice that the content of this patch 0004-* patch
will conflict, but this modification for Loong64 is necessary if
the LLvm backend is used.<br>
</p>
<p><br>
</p>
<p>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 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>
-- | Marks variables as used where necessary</p>
<p><br>
</p>
<p>On Sun, 25 Jan 2026 09:53:36 +0100 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
wrote:</glaubitz@physik.fu-berlin.de></p>
<glaubitz@physik.fu-berlin.de>> 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>
> -- <br>
> .''`. John Paul Adrian Glaubitz<br>
> : :' : Debian Developer<br>
> `. `' Physicist<br>
> `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913<br>
> <br>
> <br>
</glaubitz@physik.fu-berlin.de><br>
</body>
</html>