Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/HISTORY
ViewVC logotype

Diff of /sml/trunk/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1171, Fri Mar 22 20:41:43 2002 UTC revision 1174, Sat Mar 23 21:14:40 2002 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Allen Leung
17    Date: 2002/03/23 15:50:00 EST
18    Tag: leunga-20020323-flint-cps-rcc-primops
19    Description:
20    
21      1. Changes to FLINT primops:
22    
23        (* make a call to a C-function;
24         * The primop carries C function prototype information and specifies
25         * which of its (ML-) arguments are floating point. C prototype
26         * information is for use by the backend, ML information is for
27         * use by the CPS converter. *)
28      | RAW_CCALL of { c_proto: CTypes.c_proto,
29                       ml_args: ccall_type list,
30                       ml_res_opt: ccall_type option,
31                       reentrant : bool
32                     } option
33       (* Allocate uninitialized storage on the heap.
34        * The record is meant to hold short-lived C objects, i.e., they
35        * are not ML pointers.  With the tag, the representation is
36        * the same as RECORD with tag tag_raw32 (sz=4), or tag_fblock (sz=8)
37        *)
38      | RAW_RECORD of {tag:bool,sz:int}
39      and ccall_type = CCALL_INT32 | CCALL_REAL64 | CCALL_ML_PTR
40    
41      2.  These CPS primops are now overloaded:
42    
43           rawload of {kind:numkind}
44           rawstore of {kind:numkind}
45    
46          The one argument form is:
47    
48             rawload {kind} address
49    
50          The two argument form is:
51    
52             rawload {kind} [ml object, byte-offset]
53    
54      3. RAW_CCALL/RCC now takes two extra arguments:
55    
56         a. The first is whether the C call is reentrant, i.e., whether
57            ML state should be saved and restored.
58         b. The second argument is a string argument specifying the name of
59            library and the C function.
60    
61         These things are currently not handled in the code generator, yet.
62    
63      4. In CProto,
64    
65         An encoding type of "bool" means "ml object" and is mapped into
66         C prototype of PTR.  Note that "bool" is different than "string",
67         even though "string" is also mapped into PTR, because "bool"
68         is assigned an CPS type of BOGt, while "string" is assigned INT32t.
69    
70      5. Pickler/unpicker
71    
72         Changed to handle RAW_RECORD and newest RAW_CCALL
73    
74      6. MLRiscGen,
75    
76         1. Changed to handle the new rawload/rawstore/rawrecord operators.
77         2. Code for handling C Calls has been moved to a new module CPSCCalls,
78            in the file CodeGen/cpscompile/cps-c-calls.sml
79    
80      7. Added the conditional move operator
81    
82             condmove of branch
83    
84         to cps.  Generation of this is still buggy so it is currently
85         disabled.
86    
87    ----------------------------------------------------------------------
88  Name: Lal George  Name: Lal George
89  Date: 2002/03/22 14:18:25 EST  Date: 2002/03/22 14:18:25 EST
90  Tag: george-20020322-cps-branch-prob  Tag: george-20020322-cps-branch-prob

Legend:
Removed from v.1171  
changed lines
  Added in v.1174

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