summaryrefslogtreecommitdiff
path: root/gcc/multiple_target.c
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright years.Jakub Jelinek2018-01-031-1/+1
| | | | From-SVN: r256169
* Fix removal of ifunc (PR ipa/81214).Martin Liska2017-06-301-32/+32
| | | | | | | | | | | | | | 2017-06-30 Martin Liska <mliska@suse.cz> PR ipa/81214 * gcc.target/i386/pr81214.c: New test. 2017-06-30 Martin Liska <mliska@suse.cz> PR ipa/81214 * multiple_target.c (create_dispatcher_calls): Make ifunc also for function that don't have calls or are not referenced. From-SVN: r249840
* re PR ipa/81238 (Target clone support does not make default clone static.)Michael Meissner2017-06-281-0/+1
| | | | | | | | | | | | | | | | | | | [gcc] 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> PR ipa/81238 * multiple_target.c (create_dispatcher_calls): Set the default clone to be static, not public. [gcc/testsuite] 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/81193 * lib/target-supports.exp (check_ppc_cpu_supports_hw_available): New test to make sure __builtin_cpu_supports works on power7 and newer. From-SVN: r249737
* re PR ipa/81185 (Target clones support generates awkward names)Michael Meissner2017-06-231-1/+2
| | | | | | | | | | | 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> PR ipa/81185 * multiple_target.c (create_dispatcher_calls): Only create the dispatcher call if the function is the default clone of a versioned function. From-SVN: r249605
* Fix multi-versioning issues (PR ipa/80732).Martin Liska2017-06-191-32/+83
| | | | | | | | | | | | | | | | | | 2017-06-19 Martin Liska <mliska@suse.cz> PR ipa/80732 * attribs.c (make_dispatcher_decl): Do not append '.ifunc' to dispatcher function name. * multiple_target.c (replace_function_decl): New function. (create_dispatcher_calls): Redirect both edges and references. 2017-06-19 Martin Liska <mliska@suse.cz> PR ipa/80732 * gcc.target/i386/mvc5.c: Scan indirect_function. * gcc.target/i386/mvc7.c: Likewise. * gcc.target/i386/pr80732.c: New test. From-SVN: r249365
* Do not ICE on an invalid input for MV.Martin Liska2017-03-141-4/+1
| | | | | | | | | 2017-03-14 Martin Liska <mliska@suse.cz> * multiple_target.c (expand_target_clones): Bail out for an invalid attribute. From-SVN: r246124
* Verify that target can create a dispatcher call (PR target/79892).Martin Liska2017-03-141-0/+7
| | | | | | | | | | 2017-03-14 Martin Liska <mliska@suse.cz> PR target/79892 * multiple_target.c (create_dispatcher_calls): Check that a target can create a function dispatcher. From-SVN: r246120
* Fix multiple target clones nodes (PR lto/66295).Martin Liska2017-03-141-0/+1
| | | | | | | | | | | | | | 2017-03-14 Martin Liska <mliska@suse.cz> PR lto/66295 * multiple_target.c (expand_target_clones): Drop local.local flag for default implementation. 2017-03-14 Martin Liska <mliska@suse.cz> PR lto/66295 * gcc.dg/tree-prof/pr66295.c: New test. From-SVN: r246119
* Simplify creation of target_clones (PR lto/66295)Martin Liska2017-02-031-61/+10
| | | | | | | | | | | | | | | | | | | | | 2017-02-03 Martin Liska <mliska@suse.cz> PR lto/66295 * multiple_target.c (create_dispatcher_calls): Redirect edge from a caller of a dispatcher. (expand_target_clones): Make the clones local. (ipa_target_clone): Do both target clones and resolvers. (ipa_dispatcher_calls): Remove the pass. (pass_dispatcher_calls::gate): Likewise. (make_pass_dispatcher_calls): Likewise. * passes.def (pass_target_clone): Put as very first IPA early pass. 2017-02-03 Martin Liska <mliska@suse.cz> PR lto/66295 * gcc.target/i386/mvc9.c: New test. From-SVN: r245155
* [bootstrap-O1] add initializers to avoid warnings at -O1Alexandre Oliva2017-01-051-1/+1
| | | | | | | | | | | | | | | | | Building with the bootstrap-O1 configuration option fails to compile a number of files due to AFAICT false-positive warnings about uses of uninitialized variables. This patch adds dummy initializers to silence them all. for gcc/ChangeLog * multiple_target.c (create_dispatcher_calls): Init e_next. * tree-ssa-loop-split.c (split_loop): Init border. * tree-vect-loop.c (vect_determine_vectorization_factor): Init scalar_type. From-SVN: r244086
* Update copyright years.Jakub Jelinek2017-01-011-1/+1
| | | | From-SVN: r243994
* re PR middle-end/78419 (ICE with target_clone on invalid target)Jakub Jelinek2016-11-181-36/+32
| | | | | | | | | | | | | | | | | PR middle-end/78419 * multiple_target.c (get_attr_len): Start with argnum and increment argnum on every arg. Use strchr in a loop instead of counting commas manually. (get_attr_str): Increment argnum for every comma in the string. (separate_attrs): Use for instead of while loop, simplify. (expand_target_clones): Rename defenition argument to definition. Free attrs and attr_str even when diagnosing errors. Temporarily change input_location around targetm.target_option.valid_attribute_p calls. Don't emit warning or errors if that function fails. * gcc.target/i386/pr78419.c: New test. From-SVN: r242608
* * multiple_target.c (pass_data_dispatcher_calls): Fix typo.David Edelsohn2016-08-251-1/+1
| | | | From-SVN: r239755
* Update copyright years.Jakub Jelinek2016-01-041-1/+1
| | | | From-SVN: r232055
* multiple_target.c (create_dispatcher_calls): Add target check on ifunc.Evgeny Stupachenko2015-11-031-0/+12
| | | | | | | | | | | | | | | | 2015-11-03 Evgeny Stupachenko <evstupac@gmail.com> gcc/ * multiple_target.c (create_dispatcher_calls): Add target check on ifunc. (create_target_clone): Change assembler name for versioned declarations. gcc/testsuite/ * g++.dg/ext/mvc4.C: Add dg-require-ifunc condition. * gcc.target/i386/mvc5.c: Ditto. * gcc.target/i386/mvc7.c: Add dg-require-ifunc condition and checks on resolver. From-SVN: r229706
* Makefile.in (OBJS): Add multiple_target.o.Evgeny Stupachenko2015-10-301-0/+437
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