aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-switch-conversion.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-11-06 15:13:56 +0100
committerRichard Biener <rguenther@suse.de>2020-11-06 15:41:04 +0100
commitd398949230786a4d678677fab0070ad779cc1c84 (patch)
tree4f9140fee42f85962b5b44af1c26357e2472706b /gcc/tree-switch-conversion.h
parent22175d0dc6a89ddd630f19d0f32a2d1ddb046807 (diff)
downloadgcc-d398949230786a4d678677fab0070ad779cc1c84.zip
gcc-d398949230786a4d678677fab0070ad779cc1c84.tar.gz
gcc-d398949230786a4d678677fab0070ad779cc1c84.tar.bz2
make PRE constant value IDs negative
This separates constant and non-constant value-ids to allow for a more efficient constant_value_id_p and for more efficient bit-packing inside the bitmap sets which never contain any constant values. There's further optimization opportunities but at this stage I'll do small refactorings. 2020-11-06 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.h (get_max_constant_value_id): Declare. (get_next_constant_value_id): Likewise. (value_id_constant_p): Inline and simplify. * tree-ssa-sccvn.c (constant_value_ids): Remove. (next_constant_value_id): Add. (get_or_alloc_constant_value_id): Adjust. (value_id_constant_p): Remove definition. (get_max_constant_value_id): Define. (get_next_value_id): Add assert for overflow. (get_next_constant_value_id): Define. (run_rpo_vn): Adjust. (free_rpo_vn): Likewise. (do_rpo_vn): Initialize next_constant_value_id. * tree-ssa-pre.c (constant_value_expressions): New. (add_to_value): Split into constant/non-constant value handling. Avoid exact re-allocation. (vn_valnum_from_value_id): Adjust. (phi_translate_1): Remove spurious exact re-allocation. (bitmap_find_leader): Adjust. Make sure we return a CONSTANT value for a constant value id. (do_pre_regular_insertion): Use 2 auto-elements for avail. (do_pre_partial_partial_insertion): Likewise. (init_pre): Allocate constant_value_expressions. (fini_pre): Release constant_value_expressions.
Diffstat (limited to 'gcc/tree-switch-conversion.h')
0 files changed, 0 insertions, 0 deletions