diff options
author | Martin Liska <mliska@suse.cz> | 2019-01-18 08:41:05 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2019-01-18 07:41:05 +0000 |
commit | 5928bc2ec06dd4e7b5bd77a5915eb268f7bd5619 (patch) | |
tree | 955050e3061a8b77e44e226b4d69eb3cde827502 /gcc/cgraph.h | |
parent | 9c83c58712c72024b893aac5fb0edc597fa583f2 (diff) | |
download | gcc-5928bc2ec06dd4e7b5bd77a5915eb268f7bd5619.zip gcc-5928bc2ec06dd4e7b5bd77a5915eb268f7bd5619.tar.gz gcc-5928bc2ec06dd4e7b5bd77a5915eb268f7bd5619.tar.bz2 |
Reset proper type on vector types (PR middle-end/88587).
2019-01-18 Martin Liska <mliska@suse.cz>
Richard Biener <rguenther@suse.de>
PR middle-end/88587
* cgraph.h (create_version_clone_with_body): Add new argument
with attributes.
* cgraphclones.c (cgraph_node::create_version_clone): Add
DECL_ATTRIBUTES to a newly created decl. And call
valid_attribute_p so that proper cl_target_optimization_node
is set for the newly created declaration.
* multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
for declaration.
(expand_target_clones): Do not call valid_attribute_p, it must
be already done.
* tree-inline.c (copy_decl_for_dup_finish): Reset mode for
vector types.
2019-01-18 Martin Liska <mliska@suse.cz>
PR middle-end/88587
* g++.target/i386/pr88587.C: New test.
* gcc.target/i386/mvc13.c: New test.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r268060
Diffstat (limited to 'gcc/cgraph.h')
-rw-r--r-- | gcc/cgraph.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/cgraph.h b/gcc/cgraph.h index c016da3..bb23183 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -1019,12 +1019,17 @@ public: If non-NULL BLOCK_TO_COPY determine what basic blocks to copy. If non_NULL NEW_ENTRY determine new entry BB of the clone. + If TARGET_ATTRIBUTES is non-null, when creating a new declaration, + add the attributes to DECL_ATTRIBUTES. And call valid_attribute_p + that will promote value of the attribute DECL_FUNCTION_SPECIFIC_TARGET + of the declaration. + Return the new version's cgraph node. */ cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers, vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return, bitmap bbs_to_copy, basic_block new_entry_block, - const char *clone_name); + const char *clone_name, tree target_attributes = NULL_TREE); /* Insert a new cgraph_function_version_info node into cgraph_fnver_htab corresponding to cgraph_node. */ |