More PRE TLC
authorRichard Biener <rguenther@suse.de>
Tue, 10 Nov 2020 10:05:30 +0000 (11:05 +0100)
committerRichard Biener <rguenther@suse.de>
Tue, 10 Nov 2020 11:10:09 +0000 (12:10 +0100)
commit15e5f41a1c88fce773cd9d13fe02052ace1803ce
treee104c348b0375b059b57dc4ac488cba4b3d65602
parent9693749b963030b7e82f94829b8bc4a61802dd85
More PRE TLC

This makes get_expr_value_id cheap and completes the
constant value-id simplification by turning the constant_value_expressions
into a direct map instead of a set of pre_exprs for the value.

2020-11-10  Richard Biener  <rguenther@suse.de>

* tree-ssa-pre.c (pre_expr_d::value_id): Add.
(constant_value_expressions): Turn into an array of pre_expr.
(get_or_alloc_expr_for_nary): New function.
(get_or_alloc_expr_for_reference): Likewise.
(add_to_value): For constant values only ever add a single
CONSTANT.
(get_expr_value_id): Return the new value_id member.
(vn_valnum_from_value_id): Split out and simplify constant
value id handling.
(get_or_alloc_expr_for_constant): Set the value_id member.
(phi_translate_1): Use get_or_alloc_expr_for_*.
(compute_avail): Likewise.
(bitmap_find_leader): Simplify constant value id handling.
gcc/tree-ssa-pre.c