comparison src/mono_opt.sml @ 320:132416711463

Expand scope of base type conversion coalesce optimizations
author Adam Chlipala <adamc@hcoop.net>
date Thu, 11 Sep 2008 11:53:33 -0400
parents ffe5b01908ae
children 41458a694575
comparison
equal deleted inserted replaced
319:1fd2a29a7c85 320:132416711463
153 153
154 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "intToString", [(EPrim (Prim.Int n), _)]), _)]) => 154 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "intToString", [(EPrim (Prim.Int n), _)]), _)]) =>
155 EPrim (Prim.String (htmlifyInt n)) 155 EPrim (Prim.String (htmlifyInt n))
156 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "intToString", es), _)]) => 156 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "intToString", es), _)]) =>
157 EFfiApp ("Basis", "htmlifyInt", es) 157 EFfiApp ("Basis", "htmlifyInt", es)
158 | EFfiApp ("Basis", "htmlifyString", [(EApp ((EFfi ("Basis", "intToString"), _),
159 (EPrim (Prim.Int n), _)), _)]) =>
160 EPrim (Prim.String (htmlifyInt n))
161 | EFfiApp ("Basis", "htmlifyString", [(EApp ((EFfi ("Basis", "intToString"), _),
162 e), _)]) =>
163 EFfiApp ("Basis", "htmlifyInt", [e])
158 | EWrite (EFfiApp ("Basis", "htmlifyInt", [e]), _) => 164 | EWrite (EFfiApp ("Basis", "htmlifyInt", [e]), _) =>
159 EFfiApp ("Basis", "htmlifyInt_w", [e]) 165 EFfiApp ("Basis", "htmlifyInt_w", [e])
160 166
161 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "floatToString", [(EPrim (Prim.Float n), _)]), _)]) => 167 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "floatToString", [(EPrim (Prim.Float n), _)]), _)]) =>
162 EPrim (Prim.String (htmlifyFloat n)) 168 EPrim (Prim.String (htmlifyFloat n))
163 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "floatToString", es), _)]) => 169 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "floatToString", es), _)]) =>
164 EFfiApp ("Basis", "htmlifyFloat", es) 170 EFfiApp ("Basis", "htmlifyFloat", es)
171 | EFfiApp ("Basis", "htmlifyString", [(EApp ((EFfi ("Basis", "floatToString"), _),
172 (EPrim (Prim.Float n), _)), _)]) =>
173 EPrim (Prim.String (htmlifyFloat n))
174 | EFfiApp ("Basis", "htmlifyString", [(EApp ((EFfi ("Basis", "floatToString"), _),
175 e), _)]) =>
176 EFfiApp ("Basis", "htmlifyFloat", [e])
165 | EWrite (EFfiApp ("Basis", "htmlifyFloat", [e]), _) => 177 | EWrite (EFfiApp ("Basis", "htmlifyFloat", [e]), _) =>
166 EFfiApp ("Basis", "htmlifyFloat_w", [e]) 178 EFfiApp ("Basis", "htmlifyFloat_w", [e])
167 179
168 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "boolToString", 180 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "boolToString",
169 [(ECon (Enum, PConFfi {con = "True", ...}, NONE), _)]), _)]) => 181 [(ECon (Enum, PConFfi {con = "True", ...}, NONE), _)]), _)]) =>
171 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "boolToString", 183 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "boolToString",
172 [(ECon (Enum, PConFfi {con = "False", ...}, NONE), _)]), _)]) => 184 [(ECon (Enum, PConFfi {con = "False", ...}, NONE), _)]), _)]) =>
173 EPrim (Prim.String "False") 185 EPrim (Prim.String "False")
174 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "boolToString", es), _)]) => 186 | EFfiApp ("Basis", "htmlifyString", [(EFfiApp ("Basis", "boolToString", es), _)]) =>
175 EFfiApp ("Basis", "htmlifyBool", es) 187 EFfiApp ("Basis", "htmlifyBool", es)
188 | EFfiApp ("Basis", "htmlifyString", [(EApp ((EFfi ("Basis", "boolToString"), _),
189 (ECon (Enum, PConFfi {con = "True", ...}, NONE), _)), _)]) =>
190 EPrim (Prim.String "True")
191 | EFfiApp ("Basis", "htmlifyString", [(EApp ((EFfi ("Basis", "boolToString"), _),
192 (ECon (Enum, PConFfi {con = "False", ...}, NONE), _)), _)]) =>
193 EPrim (Prim.String "False")
194 | EFfiApp ("Basis", "htmlifyString", [(EApp ((EFfi ("Basis", "boolToString"), _),
195 e), _)]) =>
196 EFfiApp ("Basis", "htmlifyBool", [e])
176 | EWrite (EFfiApp ("Basis", "htmlifyBool", [e]), _) => 197 | EWrite (EFfiApp ("Basis", "htmlifyBool", [e]), _) =>
177 EFfiApp ("Basis", "htmlifyBool_w", [e]) 198 EFfiApp ("Basis", "htmlifyBool_w", [e])
178 199
179 | EFfiApp ("Basis", "htmlifyString", [(EPrim (Prim.String s), _)]) => 200 | EFfiApp ("Basis", "htmlifyString", [(EPrim (Prim.String s), _)]) =>
180 EPrim (Prim.String (htmlifyString s)) 201 EPrim (Prim.String (htmlifyString s))