Changes between Version 26 and Version 27 of ReplacingGMPNotes


Ignore:
Timestamp:
Sep 20, 2006 5:59:03 PM (8 years ago)
Author:
guest
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ReplacingGMPNotes

    v26 v27  
    6767Note: references are relative to the main directory of the source distribution; links below are to the darcs repository at [http://darcs.haskell.org/ghc http://darcs.haskell.org/ghc]. 
    6868 
    69  * [http://darcs.haskell.org/ghc/configure.ac configure.ac] (Modify: remove GMP related material; replace with MP library requirements) 
     69 * [http://darcs.haskell.org/ghc/configure.ac configure.ac] (''Modify'': remove GMP related material; replace with MP library requirements) 
    7070 
    71  * [http://darcs.haskell.org/ghc/compiler/prelude/primops.txt.pp compiler/prelude/primops.txt.pp]   (Modify: Integer material) 
    72  * [http://darcs.haskell.org/ghc/compiler/prelude/PrelNames.lhs compiler/prelude/PrelNames.lhs] (Reference: integerTyConName and similar) 
    73  * [http://darcs.haskell.org/ghc/compiler/prelude/TysPrim.lhs compiler/prelude/TysPrim.lhs]   (Reference) 
     71 * [http://darcs.haskell.org/ghc/compiler/prelude/primops.txt.pp compiler/prelude/primops.txt.pp]   (''Modify'': Integer material) 
     72 * [http://darcs.haskell.org/ghc/compiler/prelude/PrelNames.lhs compiler/prelude/PrelNames.lhs] (''Reference'': integerTyConName and similar) 
     73 * [http://darcs.haskell.org/ghc/compiler/prelude/TysPrim.lhs compiler/prelude/TysPrim.lhs]   (''Reference'') 
    7474 
    75  * [http://darcs.haskell.org/ghc/includes/Cmm.h includes/Cmm.h] (Modify: cpp test for {{{#if SIZEOF_mp_limb_t != SIZEOF_VOID_P }}}) 
    76  * [http://darcs.haskell.org/ghc/includes/MachRegs.h includes/MachRegs.h] (Reference: general; unrelated to GMP: may be starting point for vectorized Cmm (currently only -fvia-c allows auto-vectorization)) 
    77  * [http://darcs.haskell.org/ghc/includes/Regs.h includes/Regs.h] (Modify: references to MP_INT; Reference: Stg registers, etc.) 
    78  * [http://darcs.haskell.org/ghc/includes/Rts.h includes/Rts.h] (Modify: reference to {{{#include "gmp.h"}}}, {{{extern}}} declarations to {{{__decodeDouble}}} and {{{__decodeFloat}}}; References to various Stg types and macros) 
    79  * [http://darcs.haskell.org/ghc/includes/StgMiscClosures.h includes/StgMiscClosures.h] (Modify: references to {{{RTS_FUN(...Integer)}}} !PrimOps; Reference: Weak Pointers, other Stg closures) 
     75 * [http://darcs.haskell.org/ghc/includes/Cmm.h includes/Cmm.h] (''Modify'': cpp test for {{{#if SIZEOF_mp_limb_t != SIZEOF_VOID_P }}}) 
     76 * [http://darcs.haskell.org/ghc/includes/MachRegs.h includes/MachRegs.h] (''Reference'': general; unrelated to GMP: may be starting point for vectorized Cmm (currently only -fvia-c allows auto-vectorization)) 
     77 * [http://darcs.haskell.org/ghc/includes/Regs.h includes/Regs.h] (''Modify'': references to MP_INT; Reference: Stg registers, etc.) 
     78 * [http://darcs.haskell.org/ghc/includes/Rts.h includes/Rts.h] (''Modify'': reference to {{{#include "gmp.h"}}}, {{{extern}}} declarations to {{{__decodeDouble}}} and {{{__decodeFloat}}}; References to various Stg types and macros) 
     79 * [http://darcs.haskell.org/ghc/includes/StgMiscClosures.h includes/StgMiscClosures.h] (''Modify'': references to {{{RTS_FUN(...Integer)}}} !PrimOps; ''Reference'': Weak Pointers, other Stg closures) 
    8080 
    81  * [http://darcs.haskell.org/ghc/rts/Linker.c rts/Linker.c] (Modify: {{{SymX(__gmpn...)}}} and related GMP functions) 
    82  * [http://darcs.haskell.org/ghc/rts/Makefile rts/Makefile] (Modify: building GMP library) 
    83  * [http://darcs.haskell.org/ghc/rts/PrimOps.cmm PrimOps.cmm] (Modify: remove GMP references; NOTE: optimisation of {{{/* ToDo: this is shockingly inefficient */}}}, see discussion below) 
    84  * [http://darcs.haskell.org/ghc/rts/StgPrimFloat.c StgPrimFloat.c] (Modify: {{{__encodeDouble}}}, {{{__encodeFloat}}} and {{{decode}}} versions defined here refer to GMP; might optimise with bitwise conversion instead of union; conversion depends on whether replacement MP library uses floating point, etc.) 
    85  * [http://darcs.haskell.org/ghc/rts/Storage.c rts/Storage.c] (Modify: {{{stgAllocForGMP}}}, {{{stgReallocForGMP}}} and {{{stgDeallocForGMP}}}; may use as reference for implementation if replacement MP library uses GHC-garbage collected memory) 
    86  * [http://darcs.haskell.org/ghc/rts/gmp/ rts/gmp (directory)] (Modify: recommended to remove entirely, i.e., do not add conditional compilation for users who want to keep on using GMP) 
     81 * [http://darcs.haskell.org/ghc/rts/Linker.c rts/Linker.c] (''Modify'': {{{SymX(__gmpn...)}}} and related GMP functions) 
     82 * [http://darcs.haskell.org/ghc/rts/Makefile rts/Makefile] (''Modify'': building GMP library) 
     83 * [http://darcs.haskell.org/ghc/rts/PrimOps.cmm PrimOps.cmm] (''Modify'': remove GMP references; NOTE: optimisation of {{{/* ToDo: this is shockingly inefficient */}}}, see discussion below) 
     84 * [http://darcs.haskell.org/ghc/rts/StgPrimFloat.c StgPrimFloat.c] (''Modify'': {{{__encodeDouble}}}, {{{__encodeFloat}}} and {{{decode}}} versions defined here refer to GMP; might optimise with bitwise conversion instead of union; conversion depends on whether replacement MP library uses floating point, etc.) 
     85 * [http://darcs.haskell.org/ghc/rts/Storage.c rts/Storage.c] (''Modify'': {{{stgAllocForGMP}}}, {{{stgReallocForGMP}}} and {{{stgDeallocForGMP}}}; may use as reference for implementation if replacement MP library uses GHC-garbage collected memory) 
     86 * [http://darcs.haskell.org/ghc/rts/gmp/ rts/gmp (directory)] (''Modify'': recommended to remove entirely, i.e., do not add conditional compilation for users who want to keep on using GMP) 
    8787 
    8888==== Optimisation Opportunities ==== 
    8989 
    90 The current GMP integeration... 
     90 
    9191 
    9292=== Benchmarks for Multi-Precision Libraries ===