Fix #25169 using Plan A from the ticket
We now compile certain low-level Cmm functions in the RTS multiple times, with different levels of vector support. We then dispatch at runtime in the RTS, based on what instructions are supported. See Note [realArgRegsCover] in GHC.Cmm.CallConv. Fixes #25169 ------------------------- Metric Increase: T10421 T12425 T18730 T1969 T9198 -------------------------
Showing
- compiler/GHC/ByteCode/Asm.hs 5 additions, 2 deletionscompiler/GHC/ByteCode/Asm.hs
- compiler/GHC/Cmm/CallConv.hs 94 additions, 16 deletionscompiler/GHC/Cmm/CallConv.hs
- compiler/GHC/Cmm/Lexer.x 13 additions, 5 deletionscompiler/GHC/Cmm/Lexer.x
- compiler/GHC/Cmm/Parser.y 38 additions, 9 deletionscompiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Reg.hs 23 additions, 0 deletionscompiler/GHC/Cmm/Reg.hs
- compiler/GHC/StgToByteCode.hs 2 additions, 1 deletioncompiler/GHC/StgToByteCode.hs
- compiler/GHC/StgToCmm/ArgRep.hs 1 addition, 1 deletioncompiler/GHC/StgToCmm/ArgRep.hs
- compiler/GHC/StgToCmm/Foreign.hs 13 additions, 12 deletionscompiler/GHC/StgToCmm/Foreign.hs
- compiler/GHC/StgToCmm/Layout.hs 9 additions, 1 deletioncompiler/GHC/StgToCmm/Layout.hs
- docs/users_guide/9.12.1-notes.rst 6 additions, 0 deletionsdocs/users_guide/9.12.1-notes.rst
- hadrian/src/Settings/Packages.hs 7 additions, 0 deletionshadrian/src/Settings/Packages.hs
- libraries/ghc-heap/tests/stack_misc_closures_c.c 1 addition, 1 deletionlibraries/ghc-heap/tests/stack_misc_closures_c.c
- rts/Apply.cmm 0 additions, 1 deletionrts/Apply.cmm
- rts/AutoApply.h 3 additions, 3 deletionsrts/AutoApply.h
- rts/CheckVectorSupport.c 97 additions, 0 deletionsrts/CheckVectorSupport.c
- rts/CheckVectorSupport.h 12 additions, 0 deletionsrts/CheckVectorSupport.h
- rts/CloneStack.c 12 additions, 3 deletionsrts/CloneStack.c
- rts/HeapStackCheck.cmm 22 additions, 1 deletionrts/HeapStackCheck.cmm
- rts/Interpreter.c 10 additions, 7 deletionsrts/Interpreter.c
- rts/Jumps.h 101 additions, 0 deletionsrts/Jumps.h
Loading
Please register or sign in to comment