diff options
author | Moritz Angermann <moritz.angermann@gmail.com> | 2020-08-20 02:11:26 +0000 |
---|---|---|
committer | Moritz Angermann <moritz.angermann@gmail.com> | 2020-09-09 09:58:44 +0800 |
commit | e876348b39006bd225d9b33b1e39db9891121f27 (patch) | |
tree | d20faf3c14d631bae37aa5c4f72d961246794f02 | |
parent | 0eb1046802ad8c10d164c12851de47a174997436 (diff) | |
download | haskell-e876348b39006bd225d9b33b1e39db9891121f27.tar.gz |
Disable trivial deadlock detection
-rw-r--r-- | compiler/GHC/CmmToAsm/AArch64/Ppr.hs | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/compiler/GHC/CmmToAsm/AArch64/Ppr.hs b/compiler/GHC/CmmToAsm/AArch64/Ppr.hs index 85a0272ff0..d773311011 100644 --- a/compiler/GHC/CmmToAsm/AArch64/Ppr.hs +++ b/compiler/GHC/CmmToAsm/AArch64/Ppr.hs @@ -120,7 +120,7 @@ pprBasicBlock :: NCGConfig -> LabelMap RawCmmStatics -> NatBasicBlock Instr pprBasicBlock config info_env (BasicBlock blockid instrs) = maybe_infotable $ pprLabel platform asmLbl $$ - vcat (map (pprInstr platform) (detectTrivialDeadlock optInstrs)) $$ + vcat (map (pprInstr platform) (id {-detectTrivialDeadlock-} optInstrs)) $$ (if ncgDebugLevel config > 0 then ppr (mkAsmTempEndLabel asmLbl) <> char ':' else empty @@ -483,22 +483,23 @@ pprInstr platform instr = case instr of text "\tstrh" <+> pprOp o1 <> comma <+> pprOp o2 STR f o1 o2 -> text "\tstr" <+> pprOp o1 <> comma <+> pprOp o2 + LDR f o1 (OpImm (ImmIndex lbl' off)) | Just (_info, lbl) <- dynamicLinkerLabelInfo lbl' -> + text "\tadrp" <+> pprOp o1 <> comma <+> text ":got:" <> ppr lbl $$ + text "\tldr" <+> pprOp o1 <> comma <+> text "[" <> pprOp o1 <> comma <+> text ":got_lo12:" <> ppr lbl <> text "]" $$ + text "\tadd" <+> pprOp o1 <> comma <+> pprOp o1 <> comma <+> char '#' <> int off -- XXX: check that off is in 12bits. + LDR f o1 (OpImm (ImmIndex lbl off)) -> text "\tadrp" <+> pprOp o1 <> comma <+> ppr lbl $$ text "\tadd" <+> pprOp o1 <> comma <+> pprOp o1 <> comma <+> text ":lo12:" <> ppr lbl $$ text "\tadd" <+> pprOp o1 <> comma <+> pprOp o1 <> comma <+> char '#' <> int off -- XXX: check that off is in 12bits. - -- always GOT loads - -- LDR f o1 (OpImm (ImmIndex lbl off)) -> - -- text "\tadrp" <+> pprOp o1 <> comma <+> text ":got:" <> ppr lbl $$ - -- text "\tldr" <+> pprOp o1 <> comma <+> text "[" <> pprOp o1 <> comma <+> text":got_lo12:" <> ppr lbl <> text "]" $$ - -- text "\tadd" <+> pprOp o1 <> comma <+> pprOp o1 <> comma <+> char '#' <> int off -- XXX: check that off is in 12bits. + + LDR f o1 (OpImm (ImmCLbl lbl')) | Just (_info, lbl) <- dynamicLinkerLabelInfo lbl' -> + text "\tadrp" <+> pprOp o1 <> comma <+> text ":got:" <> ppr lbl $$ + text "\tldr" <+> pprOp o1 <> comma <+> text "[" <> pprOp o1 <> comma <+> text ":got_lo12:" <> ppr lbl <> text "]" LDR f o1 (OpImm (ImmCLbl lbl)) -> text "\tadrp" <+> pprOp o1 <> comma <+> ppr lbl $$ text "\tadd" <+> pprOp o1 <> comma <+> pprOp o1 <> comma <+> text ":lo12:" <> ppr lbl - -- LDR f o1 (OpImm (ImmCLbl lbl)) -> - -- text "\tadrp" <+> pprOp o1 <> comma <+> text ":got:" <> ppr lbl $$ - -- text "\tldr" <+> pprOp o1 <> comma <+> text "[" <> pprOp o1 <> comma <+> text":got_lo12:" <> ppr lbl <> text "]" LDR f o1@(OpReg W8 (RegReal (RealRegSingle i))) o2 | i < 32 -> text "\tldrsb" <+> pprOp o1 <> comma <+> pprOp o2 |