diff options
author | Richard Biener <rguenther@suse.de> | 2021-04-15 13:03:21 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-04-26 11:04:00 +0200 |
commit | b972e036f40c12b106f9070c3e8adea0eb8a45fa (patch) | |
tree | c7ea13fc150948db248df196e567eac1c4ddd729 /gcc/tree-cfg.h | |
parent | 152334cfb7a17bb3f1356f31a2e808d3ee459605 (diff) | |
download | gcc-b972e036f40c12b106f9070c3e8adea0eb8a45fa.zip gcc-b972e036f40c12b106f9070c3e8adea0eb8a45fa.tar.gz gcc-b972e036f40c12b106f9070c3e8adea0eb8a45fa.tar.bz2 |
Move gimplify_buildN API local to only remaining user
This moves the legacy gimplify_buildN API to tree-vect-generic.c,
its only user and elides the gimplification step, making it a wrapper
around gimple_build, adjusting tree_vec_extract for this.
I've noticed that vector CTOR expansion doesn't deal with unfolded
{} and thus this makes it more resilent. I've also adjusted the
match.pd vector CTOR extraction code to make sure it doesn't
produce a CTOR when folding would make it a vector constant.
2021-04-15 Richard Biener <rguenther@suse.de>
* tree-cfg.h (gimplify_build1): Remove.
(gimplify_build2): Likewise.
(gimplify_build3): Likewise.
* tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
(gimplify_build2): Likewise.
(gimplify_build3): Likewise.
* tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
Modernize.
(gimplify_build2): Likewise.
(gimplify_build3): Likewise.
(tree_vec_extract): Use resimplify with following SSA edges.
(expand_vector_parallel): Avoid passing NULL size/bitpos
to tree_vec_extract.
* expr.c (store_constructor): Deal with zero-element CTORs.
* match.pd (bit_field_ref <vector CTOR>): Make sure to
produce vector constants when possible.
Diffstat (limited to 'gcc/tree-cfg.h')
-rw-r--r-- | gcc/tree-cfg.h | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/gcc/tree-cfg.h b/gcc/tree-cfg.h index 6ed63ec..5d16aac 100644 --- a/gcc/tree-cfg.h +++ b/gcc/tree-cfg.h @@ -95,12 +95,6 @@ extern bool gimple_purge_dead_eh_edges (basic_block); extern bool gimple_purge_all_dead_eh_edges (const_bitmap); extern bool gimple_purge_dead_abnormal_call_edges (basic_block); extern bool gimple_purge_all_dead_abnormal_call_edges (const_bitmap); -extern tree gimplify_build3 (gimple_stmt_iterator *, enum tree_code, - tree, tree, tree, tree); -extern tree gimplify_build2 (gimple_stmt_iterator *, enum tree_code, - tree, tree, tree); -extern tree gimplify_build1 (gimple_stmt_iterator *, enum tree_code, - tree, tree); extern void extract_true_false_edges_from_block (basic_block, edge *, edge *); extern tree find_case_label_for_value (const gswitch *switch_stmt, tree val); extern edge find_taken_edge_switch_expr (const gswitch *switch_stmt, tree val); |