Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] View of /branches/vis15/src/compiler/mid-to-low/ein-to-vector.sml
ViewVC logotype

View of /branches/vis15/src/compiler/mid-to-low/ein-to-vector.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3666 - (download) (annotate)
Sat Feb 6 16:45:48 2016 UTC (3 years, 6 months ago) by jhr
File size: 1342 byte(s)
working on merge
(* ein-to-vector.sml
 *
 * This code is part of the Diderot Project (http://diderot-language.cs.uchicago.edu)
 *
 * COPYRIGHT (c) 2016 The University of Chicago
 * All rights reserved.
 *)

(*
 * helper functions used for vector operations.
 * At this point every index is bound to an int
 * and we are ready to return low-IL code.
 * using LowIL vectors ops like subVec, addVec, prodVec..
 *
 * EIN->scan->iter->here.
 *)

structure EinToVector : sig

  (* an environment that maps De Bruijn indices to their iteration-index value *)
    type index_env = int IntRedBlackMap.map

    datatype param_kind = Indx | Proj of Ein.index_id

    datatype param = Param of {
	id : int,		(* the parameter's DeBruijn index *)
	arg : LowIR.var,	(* the corresponding argument *)
	ix : Ein.alpha,		(* ?? *)
	kind : param_kind
     }

  end = struct

    structure Ty = LowTypes
    structure Op = LowOps
    structure E = Ein
    structure Mk = MkLowIR
    structure IMap = IntRedBlackMap

  (* an environment that maps De Bruijn indices to their iteration-index value *)
    type index_env = int IMap.map

    datatype param_kind = Indx | Proj of Ein.index_id

    datatype param = Param of {
	id : int,		(* the parameter's DeBruijn index *)
	arg : LowIR.var,	(* the corresponding argument *)
	ix : E.alpha,		(* ?? *)
	kind : param_kind
      }

    end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0