Changes between Version 28 and Version 29 of SIMDPlan


Ignore:
Timestamp:
Oct 25, 2011 4:34:13 PM (4 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