Skip to content
  • Sylvain Henry's avatar
    Remove target dependent CPP for Word64/Int64 (#11470) · 20956e57
    Sylvain Henry authored and Marge Bot's avatar Marge Bot committed
    Primops types were dependent on the target word-size at *compiler*
    compilation time. It's an issue for multi-target as GHC may not have the
    correct primops types for the target.
    
    This patch fixes some primops types: if they take or return fixed 64-bit
    values they now always use `Int64#/Word64#`, even on 64-bit
    architectures (where they used `Int#/Word#` before). Users of these
    primops may now need to convert from Int64#/Word64# to Int#/Word# (a
    no-op at runtime).
    
    This is a stripped down version of !3658 which goes the all way of
    changing the underlying primitive types of Word64/Int64. This is left
    for future work.
    
    T12545 allocations increase ~4% on some CI platforms and decrease ~3% on
    AArch64.
    
    Metric Increase:
        T12545
    
    Metric Decrease:
        T12545
    20956e57