Changes between Version 28 and Version 29 of SIMDPlan


Ignore:
Timestamp:
Oct 25, 2011 4:34:13 PM (2 years ago)
Author:
pmonday
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SIMDPlan

    v28 v29  
    3333 
    3434Addition of Types for use by Haskell 
    35 ./compiler/types/TyCon.lhs 
    36  - TyCons represent type constructors.  There are @data declarations, @type synonyms, @newtypes and class declarations (@class).  We will need to modify this to add a proper type constructor. 
    37  - Prelude uses this type constructor in ./compiler/prelude/TysPrim.lhs 
    38  
    39 Modifications to add primtype / primop to Prelude 
    40 ./compiler/prelude/PrelNames.lhs 
    41 ./compiler/prelude/TysPrim.lhs 
    42 ./compiler/prelude/primops.txt.pp 
    43  - Defines the primops that are associated with the types that are previously defined 
    44  
    45  
    46 ./compiler/codeGen/CgCallConv.hs 
    47 ./compiler/codeGen/CgPrimOp.hs 
    48 ./compiler/codeGen/CgUtils.hs 
    49 ./compiler/codeGen/SMRep.lhs 
    50 ./compiler/codeGen/StgCmmLayout.hs 
    51 ./compiler/codeGen/StgCmmPrim.hs 
     35 - ./compiler/types/TyCon.lhs 
     36  - TyCons represent type constructors.  There are @data declarations, @type synonyms, @newtypes and class declarations (@class).  We will need to modify this to add a proper type constructor. 
     37  - Prelude uses this type constructor in ./compiler/prelude/TysPrim.lhs 
     38 
     39Modifications to the compiler to add primtype / primop to Prelude 
     40 - ./compiler/prelude/PrelNames.lhs 
     41 - ./compiler/prelude/TysPrim.lhs 
     42 - ./compiler/prelude/primops.txt.pp 
     43   - Addition of a type here (primtype) to operate on 
     44   - Defines the primops that are associated with the types that are defined 
     45   - For primops defined here that are inline, modify compiler/codeGen/CgPrimOp.hs 
     46 
     47Modifications to add support to the compiler for the new types.  Look to individual files for the portion of the compiler that is being modified.  The binaries generated out of this branch are called from the ghc/ binaries. 
     48 - ./compiler/codeGen/CgCallConv.hs 
     49 - ./compiler/codeGen/CgPrimOp.hs 
     50 - ./compiler/codeGen/CgUtils.hs 
     51 - ./compiler/codeGen/SMRep.lhs 
     52 - ./compiler/codeGen/StgCmmLayout.hs 
     53 - ./compiler/codeGen/StgCmmPrim.hs 
     54 
     55More modifications to the Cmm portion of the compiler chain. 
     56 - ./compiler/cmm contains the code that inputs STG and outputs Cmm 
     57 - ./compiler/cmm/CmmExpr.hs 
     58 - ./compiler/cmm/CmmType.hs 
     59 - ./compiler/cmm/CmmUtils.hs 
     60 - ./compiler/cmm/OldCmm.hs 
     61 - ./compiler/cmm/StackColor.hs 
     62 
     63Modifications to the LLVM code generator 
     64 - Generating the human readable LLVM code (.ll) occurs in the compiler/llvmGen code.  It receives Cmm and turns it around to LLVM bytecodes through human readable LLVM code.  A "simple" use of LLVM vector instructions using floats is shown at the [wiki:SIMDVectorExampleInLLVM SIMD Vector Example In LLVM] page 
     65 - ./compiler/llvmGen, contains the code generation that takes Cmm as input and outputs LLVM targeted code 
    5266 
    5367Modifications to the STG Code Generation 
    54 ./includes/stg/MachRegs.h 
    55 ./includes/stg/Regs.h 
    56 ./includes/stg/Types.h 
    57  
    58 Modifications to the Cmm stage 
    59  
    60 Modifications to the LLVM code generator 
    61  
    62 ./compiler/cmm/CmmExpr.hs 
    63 ./compiler/cmm/CmmType.hs 
    64 ./compiler/cmm/CmmUtils.hs 
    65 ./compiler/cmm/OldCmm.hs 
    66 ./compiler/cmm/StackColor.hs 
    67  
    68 ./compiler/nativeGen/Size.hs 
    69 ./compiler/nativeGen/X86/CodeGen.hs 
    70 ./compiler/nativeGen/X86/Ppr.hs 
     68 - ./includes/stg/MachRegs.h 
     69 - ./includes/stg/Regs.h 
     70 - ./includes/stg/Types.h 
    7171 
    7272