Makefile.in (OBJS): Add multiple_target.o.
authorEvgeny Stupachenko <evstupac@gmail.com>
Fri, 30 Oct 2015 18:17:43 +0000 (18:17 +0000)
committerIlya Verbin <iverbin@gcc.gnu.org>
Fri, 30 Oct 2015 18:17:43 +0000 (18:17 +0000)
commit3b1661a9b93fe8000faa6ab4b721a96ffb48d525
treeddea4c378db574f26e36e6c93fd1c8beeb9c4864
parent834e9dbb3999af9b49ba168c7e870f484504d35f
Makefile.in (OBJS): Add multiple_target.o.

2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>

gcc/
* Makefile.in (OBJS): Add multiple_target.o.
* attrib.c (make_attribute): Moved from config/i386/i386.c
* config/i386/i386.c (make_attribute): Deleted.
* multiple_target.c (create_dispatcher_calls): New.
(get_attr_len): Ditto.
(get_attr_str): Ditto.
(separate_attrs): Ditto.
(is_valid_asm_symbol): Ditto.
(create_new_asm_name): Ditto.
(create_target_clone): Ditto.
(expand_target_clones): Ditto.
(ipa_target_clone): Ditto.
(ipa_dispatcher_calls): Ditto.
* passes.def (pass_target_clone): Two new ipa passes.
* tree-pass.h (make_pass_target_clone): Ditto.
* doc/extend.texi (target_clones): New attribute description.
gcc/c-family/
* c-common.c (handle_target_clones_attribute): New.
(c_common_attribute_table): Add handle_target_clones_attribute.
(handle_always_inline_attribute): Add check on target_clones attribute.
(handle_target_attribute): Ditto.
gcc/testsuite/
* gcc.dg/mvc1.c: New test for multiple targets cloning.
* gcc.dg/mvc2.c: Ditto.
* gcc.dg/mvc3.c: Ditto.
* gcc.dg/mvc4.c: Ditto.
* gcc.dg/mvc5.c: Ditto.
* gcc.dg/mvc6.c: Ditto.
* gcc.dg/mvc7.c: Ditto.
* g++.dg/ext/mvc1.C: Ditto.
* g++.dg/ext/mvc2.C: Ditto.
* g++.dg/ext/mvc3.C: Ditto.
* g++.dg/ext/mvc4.C: Ditto.

From-SVN: r229595
23 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/attribs.c
gcc/attribs.h
gcc/c-family/ChangeLog
gcc/c-family/c-common.c
gcc/config/i386/i386.c
gcc/doc/extend.texi
gcc/multiple_target.c [new file with mode: 0644]
gcc/passes.def
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/mvc1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/mvc2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/mvc3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/mvc4.C [new file with mode: 0644]
gcc/testsuite/gcc.dg/mvc1.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/mvc2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/mvc3.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/mvc4.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/mvc5.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/mvc6.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/mvc7.c [new file with mode: 0644]
gcc/tree-pass.h