Changes between Version 13 and Version 14 of DataParallel/ClosureConversion


Ignore:
Timestamp:
May 5, 2007 9:14:04 AM (8 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataParallel/ClosureConversion

    v13 v14  
    1212 3. CC data types (see below)
    1313
    14 === Closure-converted types as indexed-types ===
    15 
    16 One option for implementing closure-conversion is to represent closure-converted types as an indexed type whose type index is the original type and to combine that indexed type in a type class with methods for converting between closure-converted and vanilla terms.  The details are under [wiki:DataParallel/ClosureConversion/Indexed indexed closure conversion].  There are two potential benefits for this approach: (1) we will probably have to do something similar for vectorisation anyway - see the [wiki:DataParallel/VectorisationSpec requirements of vectorisation] - and (2) it seems that we need less bookkeeping (e.g., the name of a closure converted data type is just the indexed type with the original data type as its index).  However, there are problems, too; in particular, as we currently don't have class contexts and polytypes as type indexes.
    1714
    1815=== Closure conversion without classes ===
    1916
    20 Here is an [wiki:DataParallel/ClosureConversion/ClassLess alternative scheme] that does no rely on conversion classes.
     17We currently implement a [wiki:DataParallel/ClosureConversion/ClassLess simple scheme] that operates entirely on the Core representation and doesn't use comversion classes.
     18
     19
     20=== Alternative: Closure-converted types as indexed types ===
     21
     22We don't use indexed types in the current implementation of closure conversion.  However, we may have to get back to some of the ideas from this approach when we implement vectorisation.
     23
     24One option for implementing closure-conversion is to represent closure-converted types as an indexed type whose type index is the original type and to combine that indexed type in a type class with methods for converting between closure-converted and vanilla terms.  The details are under [wiki:DataParallel/ClosureConversion/Indexed indexed closure conversion].  There are two potential benefits for this approach: (1) we will probably have to do something similar for vectorisation anyway - see the [wiki:DataParallel/VectorisationSpec requirements of vectorisation] - and (2) it seems that we need less bookkeeping (e.g., the name of a closure converted data type is just the indexed type with the original data type as its index).  However, there are problems, too; in particular, as we currently don't have class contexts and polytypes as type indexes.
    2125
    2226=== Requirements of closure conversion ===