Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 8435b66

Browse files
committedApr 22, 2021
Revert (most of) "Overhaul Aliases_of_canonical_element; add Alias_set"
This reverts the parts of commit 9816841 that have been split off into PRs #383 and #386, as well as the Bottom stuff (likely to be unnecessary as we're considering making `Coercion.compose` a total function).
1 parent 27f4009 commit 8435b66

File tree

13 files changed

+501
-994
lines changed

13 files changed

+501
-994
lines changed
 

Diff for: ‎.depend

+2-14
Original file line numberDiff line numberDiff line change
@@ -6002,7 +6002,6 @@ middle_end/flambda/simplify/common_subexpression_elimination.cmo : \
60026002
middle_end/flambda/compilenv_deps/flambda_features.cmi \
60036003
middle_end/flambda/basic/continuation_extra_params_and_args.cmi \
60046004
middle_end/flambda/basic/apply_cont_rewrite_id.cmi \
6005-
middle_end/flambda/types/env/aliases.cmi \
60066005
middle_end/flambda/simplify/common_subexpression_elimination.cmi
60076006
middle_end/flambda/simplify/common_subexpression_elimination.cmx : \
60086007
middle_end/flambda/compilenv_deps/variable.cmx \
@@ -6020,7 +6019,6 @@ middle_end/flambda/simplify/common_subexpression_elimination.cmx : \
60206019
middle_end/flambda/compilenv_deps/flambda_features.cmx \
60216020
middle_end/flambda/basic/continuation_extra_params_and_args.cmx \
60226021
middle_end/flambda/basic/apply_cont_rewrite_id.cmx \
6023-
middle_end/flambda/types/env/aliases.cmx \
60246022
middle_end/flambda/simplify/common_subexpression_elimination.cmi
60256023
middle_end/flambda/simplify/common_subexpression_elimination.cmi : \
60266024
middle_end/flambda/basic/simple.cmi \
@@ -8988,8 +8986,7 @@ middle_end/flambda/types/flambda_type.cmi : \
89888986
middle_end/flambda/basic/code_id.cmi \
89898987
middle_end/flambda/types/structures/code_age_relation.cmi \
89908988
middle_end/flambda/basic/closure_id.cmi \
8991-
middle_end/flambda/basic/apply_cont_rewrite_id.cmi \
8992-
middle_end/flambda/types/env/aliases.cmi
8989+
middle_end/flambda/basic/apply_cont_rewrite_id.cmi
89938990
middle_end/flambda/types/resolved_type.rec.cmo : \
89948991
middle_end/flambda/basic/reg_width_const.cmi \
89958992
middle_end/flambda/types/basic/or_unknown_or_bottom.cmi \
@@ -9017,7 +9014,6 @@ middle_end/flambda/types/type_descr.rec.cmo : \
90179014
middle_end/flambda/cmx/ids_for_export.cmi \
90189015
middle_end/flambda/compilenv_deps/flambda_colours.cmi \
90199016
utils/clflags.cmi \
9020-
middle_end/flambda/types/env/aliases.cmi \
90219017
middle_end/flambda/types/type_descr.rec.cmi
90229018
middle_end/flambda/types/type_descr.rec.cmx : \
90239019
middle_end/flambda/naming/with_delayed_permutation.cmx \
@@ -9035,7 +9031,6 @@ middle_end/flambda/types/type_descr.rec.cmx : \
90359031
middle_end/flambda/cmx/ids_for_export.cmx \
90369032
middle_end/flambda/compilenv_deps/flambda_colours.cmx \
90379033
utils/clflags.cmx \
9038-
middle_end/flambda/types/env/aliases.cmx \
90399034
middle_end/flambda/types/type_descr.rec.cmi
90409035
middle_end/flambda/types/type_descr.rec.cmi : \
90419036
middle_end/flambda/types/type_head_intf.cmo \
@@ -9302,8 +9297,6 @@ middle_end/flambda/types/basic/var_within_closure_set.cmi : \
93029297
middle_end/flambda/types/env/aliases.cmo : \
93039298
middle_end/flambda/compilenv_deps/variable.cmi \
93049299
middle_end/flambda/basic/simple.cmi \
9305-
middle_end/flambda/compilenv_deps/reg_width_things.cmi \
9306-
middle_end/flambda/types/basic/or_bottom.cmi \
93079300
middle_end/flambda/naming/name_mode.cmi \
93089301
middle_end/flambda/basic/name.cmi \
93099302
utils/misc.cmi \
@@ -9316,8 +9309,6 @@ middle_end/flambda/types/env/aliases.cmo : \
93169309
middle_end/flambda/types/env/aliases.cmx : \
93179310
middle_end/flambda/compilenv_deps/variable.cmx \
93189311
middle_end/flambda/basic/simple.cmx \
9319-
middle_end/flambda/compilenv_deps/reg_width_things.cmx \
9320-
middle_end/flambda/types/basic/or_bottom.cmx \
93219312
middle_end/flambda/naming/name_mode.cmx \
93229313
middle_end/flambda/basic/name.cmx \
93239314
utils/misc.cmx \
@@ -9329,11 +9320,9 @@ middle_end/flambda/types/env/aliases.cmx : \
93299320
middle_end/flambda/types/env/aliases.cmi
93309321
middle_end/flambda/types/env/aliases.cmi : \
93319322
middle_end/flambda/basic/simple.cmi \
9332-
middle_end/flambda/types/basic/or_bottom.cmi \
93339323
middle_end/flambda/naming/name_mode.cmi \
93349324
middle_end/flambda/basic/name.cmi \
93359325
middle_end/flambda/cmx/contains_ids.cmo \
9336-
middle_end/flambda/compilenv_deps/coercion.cmi \
93379326
middle_end/flambda/types/env/binding_time.cmi
93389327
middle_end/flambda/types/env/binding_time.cmo : \
93399328
utils/numbers.cmi \
@@ -9427,8 +9416,7 @@ middle_end/flambda/types/env/typing_env.rec.cmi : \
94279416
middle_end/flambda/compilenv_deps/compilation_unit.cmi \
94289417
middle_end/flambda/basic/code_id.cmi \
94299418
middle_end/flambda/types/structures/code_age_relation.cmi \
9430-
middle_end/flambda/basic/apply_cont_rewrite_id.cmi \
9431-
middle_end/flambda/types/env/aliases.cmi
9419+
middle_end/flambda/basic/apply_cont_rewrite_id.cmi
94329420
middle_end/flambda/types/env/typing_env_extension.rec.cmo : \
94339421
middle_end/flambda/compilenv_deps/variable.cmi \
94349422
middle_end/flambda/types/basic/or_bottom.cmi \

Diff for: ‎compilerlibs/Makefile.compilerlibs

+1-1
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,6 @@ MIDDLE_END_FLAMBDA_BASIC=\
224224
middle_end/flambda/basic/coeffects.cmo \
225225
middle_end/flambda/basic/effects.cmo \
226226
middle_end/flambda/basic/export_id.cmo \
227-
middle_end/flambda/types/basic/or_bottom.cmo \
228227
middle_end/flambda/types/basic/or_unknown.cmo \
229228
middle_end/flambda/terms/flambda_primitive.cmo \
230229
middle_end/flambda/basic/recursive.cmo \
@@ -261,6 +260,7 @@ MIDDLE_END_FLAMBDA_TYPES=\
261260
middle_end/flambda/types/env/binding_time.cmo \
262261
middle_end/flambda/types/env/aliases.cmo \
263262
middle_end/flambda/types/basic/meet_or_join_op.cmo \
263+
middle_end/flambda/types/basic/or_bottom.cmo \
264264
middle_end/flambda/types/basic/string_info.cmo \
265265
middle_end/flambda/types/basic/or_unknown_or_bottom.cmo \
266266
middle_end/flambda/types/structures/code_age_relation.cmo \

Diff for: ‎middle_end/flambda/basic/kinded_parameter.ml

+2
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ module List = struct
115115

116116
let name_set t = Name.Set.of_list (List.map Name.var (vars t))
117117

118+
let simple_set t = Simple.Set.of_list (simples t)
119+
118120
let rename t = List.map (fun t -> rename t) t
119121

120122
let arity t = List.map (fun t -> Flambda_kind.With_subkind.kind (kind t)) t

Diff for: ‎middle_end/flambda/basic/kinded_parameter.mli

+2
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ module List : sig
6868
(** As for [var_set] but returns a set of [Name]s. *)
6969
val name_set : t -> Name.Set.t
7070

71+
val simple_set : t -> Simple.Set.t
72+
7173
val equal_vars : t -> Variable.t list -> bool
7274

7375
val rename : t -> t

Diff for: ‎middle_end/flambda/simplify/common_subexpression_elimination.ml

+5-12
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,7 @@ end
117117

118118
let cse_with_eligible_lhs ~typing_env_at_fork ~cse_at_each_use ~params prev_cse
119119
(extra_bindings: EPA.t) extra_equations =
120-
let params = KP.List.name_set params in
121-
let is_param simple =
122-
Simple.pattern_match simple
123-
~name:(fun name -> Name.Set.mem name params)
124-
~const:(fun _ -> false)
125-
in
120+
let params = KP.List.simple_set params in
126121
List.fold_left cse_at_each_use ~init:EP.Map.empty
127122
~f:(fun eligible (env_at_use, id, cse) ->
128123
let find_new_name =
@@ -187,17 +182,15 @@ let cse_with_eligible_lhs ~typing_env_at_fork ~cse_at_each_use ~params prev_cse
187182
since they are defined in [env_at_fork]. However these
188183
aren't bound at the use sites, so we must choose another
189184
alias that is. *)
190-
if not (is_param bound_to) then Some bound_to
185+
if not (Simple.Set.mem bound_to params) then Some bound_to
191186
else
192187
let aliases =
193188
TE.aliases_of_simple env_at_use
194189
~min_name_mode:NM.normal bound_to
195-
|> Aliases.Alias_set.filter ~f:(fun simple ->
196-
not (is_param simple))
190+
|> Simple.Set.filter (fun simple ->
191+
not (Simple.Set.mem simple params))
197192
in
198-
(* CR lmaurer: This could be using
199-
[Aliases.Alias_set.find_best], I think? *)
200-
Aliases.Alias_set.get_singleton aliases
193+
Simple.Set.get_singleton aliases
201194
in
202195
match bound_to with
203196
| None -> eligible

0 commit comments

Comments
 (0)
Please sign in to comment.