ncg(aarch64): Implement MO_BSwap using REV
Implements MO_BSwap by producing assembly to do the byte swapping instead of producing a foreign call a C function. In `tar`, the hot loop for `deserialise` got almost 4x faster by avoiding the foreign call which caused spilling live variables to the stack -- this means the loop did 4x more memory read/writing than necessary in that particular case!
parent
3dca3b7d
Branches wip/inplace-final
No related tags found
Showing
- compiler/GHC/Cmm/Parser.y 2 additions, 0 deletionscompiler/GHC/Cmm/Parser.y
- compiler/GHC/CmmToAsm/AArch64/CodeGen.hs 10 additions, 2 deletionscompiler/GHC/CmmToAsm/AArch64/CodeGen.hs
- compiler/GHC/CmmToAsm/AArch64/Instr.hs 5 additions, 1 deletioncompiler/GHC/CmmToAsm/AArch64/Instr.hs
- compiler/GHC/CmmToAsm/AArch64/Ppr.hs 6 additions, 1 deletioncompiler/GHC/CmmToAsm/AArch64/Ppr.hs
Please register or sign in to comment