aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2014-09-12[Ree] Ensure inserted copy don't change the number of hard registersWilco Dijkstra2-1/+14
2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com> gcc/ * ree.c (combine_reaching_defs): Ensure inserted copy don't change the number of hard registers. From-SVN: r215205
2014-09-12AVX-512. Extend vpternlog, valign, vrotate insns.Alexander Ivchenko2-40/+67
gcc/ * config/i386/sse.md (define_mode_iterator VI48_AVX512VL): New. (define_expand "<avx512>_vternlog<mode>_maskz"): Rename from "avx512f_vternlog<mode>_maskz" and update mode iterator. (define_insn "<avx512>_vternlog<mode><sd_maskz_name>"): Rename from "avx512f_vternlog<mode><sd_maskz_name>" and update mode iterator. (define_insn "<avx512>_vternlog<mode>_mask"): Rename from "avx512f_vternlog<mode>_mask" and update mode iterator. (define_insn "<mask_codefor><avx512>_align<mode><mask_name>"): Rename from "<mask_codefor>avx512f_align<mode><mask_name>" and update mode iterator. (define_insn "<avx512>_<rotate>v<mode><mask_name>"): Rename from "avx512f_<rotate>v<mode><mask_name>" and update mode iterator. (define_insn "<avx512>_<rotate><mode><mask_name>"): Rename from "avx512f_<rotate><mode><mask_name>" and update mode iterator. (define_insn "clz<mode>2<mask_name>"): Use VI48_AVX512VL mode iterator. (define_insn "<mask_codefor>conflict<mode><mask_name>"): Ditto. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215203
2014-09-12AVX-512. Extend max/min insn patterns.Alexander Ivchenko2-50/+103
gcc/ * config/i386/sse.md (VI128_256): Delete. (define_mode_iterator VI124_256): New. (define_mode_iterator VI124_256_AVX512F_AVX512BW): Ditto. (define_expand "<code><mode>3<mask_name><round_name>"): Delete. (define_expand "<code><VI124_256_AVX512F_AVX512BW:mode>3"): New. (define_insn "*avx2_<code><VI124_256:mode>3"): Rename from "*avx2_<code><mode>3<mask_name><round_name>" and update mode iterator. (define_expand "<code><VI48_AVX512VL:mode>3_mask"): New. (define_insn "*avx512bw_<code><VI48_AVX512VL:mode>3<mask_name>"): Ditto. (define_insn "<mask_codefor><code><mode>3<mask_name>"): Update mode iterator. (define_expand "<code><VI8_AVX2:mode>3"): Update pettern generation in presence of AVX-512. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215202
2014-09-12AVX-512. Extend gather insn patterns.Alexander Ivchenko2-31/+62
gcc/ * config/i386/sse.md (define_expand "<avx512>_gathersi<mode>"): Rename from "avx512f_gathersi<mode>". (define_insn "*avx512f_gathersi<mode>"): Use VI48F. (define_insn "*avx512f_gathersi<mode>_2"): Ditto. (define_expand "<avx512>_gatherdi<mode>"): Rename from "avx512f_gatherdi<mode>". (define_insn "*avx512f_gatherdi<mode>"): Use VI48F. (define_insn "*avx512f_gatherdi<mode>_2"): Use VI48F, add 128/256-bit wide versions. (define_expand "<avx512>_scattersi<mode>"): Rename from "avx512f_scattersi<mode>". (define_insn "*avx512f_scattersi<mode>"): Use VI48F. (define_expand "<avx512>_scatterdi<mode>"): Rename from "avx512f_scatterdi<mode>". (define_insn "*avx512f_scatterdi<mode>"): Use VI48F. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215201
2014-09-12ira.h (ira_finish_once): Delete.Richard Sandiford7-41/+59
gcc/ * ira.h (ira_finish_once): Delete. * ira-int.h (target_ira_int::~target_ira_int): Declare. (target_ira_int::free_ira_costs): Likewise. (target_ira_int::free_register_move_costs): Likewise. (ira_finish_costs_once): Delete. * ira.c (free_register_move_costs): Replace with... (target_ira_int::free_register_move_costs): ...this new function. (target_ira_int::~target_ira_int): Define. (ira_init): Call free_register_move_costs as a member function rather than a global function. (ira_finish_once): Delete. * ira-costs.c (free_ira_costs): Replace with... (target_ira_int::free_ira_costs): ...this new function. (ira_init_costs): Call free_ira_costs as a member function rather than a global function. (ira_finish_costs_once): Delete. * target-globals.c (target_globals::~target_globals): Call the target_ira_int destructor. * toplev.c: Include lra.h. (finalize): Call lra_finish_once rather than ira_finish_once. From-SVN: r215200
2014-09-12Daily bump.GCC Administrator1-1/+1
From-SVN: r215199
2014-09-11common.opt (flto-odr-type-merging): New flag.Jan Hubicka10-50/+175
* common.opt (flto-odr-type-merging): New flag. * ipa-deivrt.c (hash_type_name): Use ODR names for hasing if availale. (types_same_for_odr): Likewise. (odr_subtypes_equivalent_p): Likewise. (add_type_duplicate): Do not walk type variants. (register_odr_type): New function. * ipa-utils.h (register_odr_type): Declare. (odr_type_p): New function. * langhooks.c (lhd_set_decl_assembler_name): Do not compute TYPE_DECLs * doc/invoke.texi (-flto-odr-type-merging): Document. * tree.c (need_assembler_name_p): Compute ODR names when asked for it. * tree.h (DECL_ASSEMBLER_NAME): Update comment. * lto.c (lto_read_decls): Register ODR types. From-SVN: r215196
2014-09-11Also turn off OPTION_MASK_ABI_X32 for -m16H.J. Lu2-2/+9
PR target/63228 * config/i386/i386.c (ix86_option_override_internal): Also turn off OPTION_MASK_ABI_X32 for -m16. From-SVN: r215194
2014-09-11rs6000.md (rs6000_mftb_<mode>): Use mode iterator GPR instead of P.Segher Boessenkool2-2/+7
2014-09-11 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/rs6000.md (rs6000_mftb_<mode>): Use mode iterator GPR instead of P. From-SVN: r215193
2014-09-11re PR target/58757 (Advertise the lack of denormal support on alpha without ↵Marc Glisse6-34/+49
-mieee) 2014-09-11 Marc Glisse <marc.glisse@inria.fr> PR target/58757 gcc/c-family/ * c-cppbuiltin.c (builtin_define_float_constants): Correct __*_DENORM_MIN__ without denormals. gcc/ * ginclude/float.h (FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN): Directly forward to __*_DENORM_MIN__. gcc/testsuite/ * gcc.dg/c11-true_min-1.c: New testcase. From-SVN: r215191
2014-09-11Introduce LABEL_REF_LABELDavid Malcolm25-67/+123
gcc/ChangeLog: 2014-09-11 David Malcolm <dmalcolm@redhat.com> * rtl.h (LABEL_REF_LABEL): New macro. * alias.c (rtx_equal_for_memref_p): Use LABEL_REF_LABEL in place of XEXP (, 0), where we know that we have a LABEL_REF. * cfgbuild.c (make_edges): Likewise. (purge_dead_tablejump_edges): Likewise. * cfgexpand.c (convert_debug_memory_address): Likewise. * cfgrtl.c (patch_jump_insn): Likewise. * combine.c (distribute_notes): Likewise. * cse.c (hash_rtx_cb): Likewise. (exp_equiv_p): Likewise. (fold_rtx): Likewise. (check_for_label_ref): Likewise. * cselib.c (rtx_equal_for_cselib_1): Likewise. (cselib_hash_rtx): Likewise. * emit-rtl.c (mark_label_nuses): Likewise. * explow.c (convert_memory_address_addr_space): Likewise. * final.c (output_asm_label): Likewise. (output_addr_const): Likewise. * gcse.c (add_label_notes): Likewise. * genconfig.c (walk_insn_part): Likewise. * genrecog.c (validate_pattern): Likewise. * ifcvt.c (cond_exec_get_condition): Likewise. (noce_emit_store_flag): Likewise. (noce_get_alt_condition): Likewise. (noce_get_condition): Likewise. * jump.c (maybe_propagate_label_ref): Likewise. (mark_jump_label_1): Likewise. (redirect_exp_1): Likewise. (rtx_renumbered_equal_p): Likewise. * lra-constraints.c (operands_match_p): Likewise. * reload.c (operands_match_p): Likewise. (find_reloads): Likewise. * reload1.c (set_label_offsets): Likewise. * reorg.c (get_branch_condition): Likewise. * rtl.c (rtx_equal_p_cb): Likewise. (rtx_equal_p): Likewise. * rtlanal.c (reg_mentioned_p): Likewise. (rtx_referenced_p): Likewise. (get_condition): Likewise. * sched-vis.c (print_value): Likewise. * varasm.c (const_hash_1): Likewise. (compare_constant): Likewise. (const_rtx_hash_1): Likewise. (output_constant_pool_1): Likewise. From-SVN: r215190
2014-09-11htm.md (tabort, [...]): Use xor instead of minus.Segher Boessenkool3-13/+36
2014-09-11 Segher Boessenkool <segher@kernel.crashing.org> * config/rs6000/htm.md (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin, tcheck, tend, trechkpt, treclaim, tsr): Use xor instead of minus. * config/rs6000/vector.md (cr6_test_for_zero_reverse, cr6_test_for_lt_reverse): Ditto. From-SVN: r215187
2014-09-11re PR c++/61489 (Wrong warning with -Wmissing-field-initializers.)Paolo Carlini7-3/+61
2014-09-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/61489 * doc/invoke.texi ([-Wmissing-field-initializers]): Update. /cp 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/61489 * typeck2.c (process_init_constructor_record): Do not warn about missing field initializer if EMPTY_CONSTRUCTOR_P (init). /testsuite 2014-09-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/61489 * g++.dg/warn/Wmissing-field-initializers-1.C: New. * g++.old-deja/g++.other/warn5.C: Adjust. From-SVN: r215186
2014-09-11[AArch64] Simplify vreinterpret for float64x1_t using casts.Alan Lawrence8-203/+55
* config/aarch64/aarch64-builtins.c (aarch64_types_unop_su_qualifiers, TYPES_REINTERP_SU, aarch64_types_unop_sp_qualifiers, TYPE_REINTERP_SP, aarch64_types_unop_us_qualifiers, TYPES_REINTERP_US, aarch64_types_unop_ps_qualifiers, TYPES_REINTERP_PS, BUILTIN_VD): Delete. (aarch64_fold_builtin): Remove all reinterpret cases. * config/aarch64/aarch64-protos.h (aarch64_simd_reinterpret): Delete. * config/aarch64/aarch64-simd-builtins.def (reinterpret*) : Delete. * config/aarch64/aarch64-simd.md (aarch64_reinterpretv8qi<mode>, aarch64_reinterpretv4hi<mode>, aarch64_reinterpretv2si<mode>, aarch64_reinterpretv2sf<mode>, aarch64_reinterpretdi<mode>, aarch64_reinterpretv1df<mode>, aarch64_reinterpretv16qi<mode>, aarch64_reinterpretv8hi<mode>, aarch64_reinterpretv4si<mode>, aarch64_reinterpretv4sf<mode>, aarch64_reinterpretv2di<mode>, aarch64_reinterpretv2df<mode>): Delete. * config/aarch64/aarch64.c (aarch64_simd_reinterpret): Delete. * config/aarch64/arm_neon.h (vreinterpret_p8_f64, vreinterpret_p16_f64, vreinterpret_f32_f64, vreinterpret_f64_f32, vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32, vreinterpret_f64_u8, vreinterpret_f64_u16, vreinterpret_f64_u32, vreinterpret_s64_f64, vreinterpret_u64_f64, vreinterpret_s8_f64, vreinterpret_s16_f64, vreinterpret_s32_f64, vreinterpret_u8_f64, vreinterpret_u16_f64, vreinterpret_u32_f64): Use cast. * config/aarch64/iterators.md (VD_RE): Delete. From-SVN: r215180
2014-09-11[AArch64] Replace temporary inline assembler for vset_laneAlan Lawrence2-312/+179
* config/aarch64/arm_neon.h (aarch64_vset_lane_any): New (*2). (vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16, vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64, vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64, vsetq_lane_f32, vsetq_lane_f64, vsetq_lane_p8, vsetq_lane_p16, vsetq_lane_s8, vsetq_lane_s16, vsetq_lane_s32, vsetq_lane_s64, vsetq_lane_u8, vsetq_lane_u16, vsetq_lane_u32, vsetq_lane_u64): Replace inline assembler with __aarch64_vset_lane_any. From-SVN: r215179
2014-09-11[AArch64 Testsuite] Add execution test of vset(q?)_lane intrinsics.Alan Lawrence2-0/+89
* gcc.target/aarch64/vset_lane_1.c: New test. From-SVN: r215177
2014-09-11[AArch64] Cheap fix for argument types of vmull_high_lane_{us}{16,32}James Greenhalgh2-4/+12
gcc/ * config/aarch64/arm_neon.h (vmull_high_lane_s16): Fix argument types. (vmull_high_lane_s32): Likewise. (vmull_high_lane_u16): Likewise. (vmull_high_lane_u32): Likewise. From-SVN: r215176
2014-09-11re PR c++/63139 (Class-scope typedef overwrites typedef of previously ↵Jason Merrill3-1/+67
defined class) PR c++/63139 * pt.c (tsubst_pack_expansion): Simplify substitution into T.... (tsubst): Don't throw away PACK_EXPANSION_EXTRA_ARGS. From-SVN: r215171
2014-09-11re PR c++/58678 (pykde4-4.11.2 link error (devirtualization too trigger happy))Jason Merrill3-2/+21
PR c++/58678 * ipa-devirt.c (ipa_devirt): Don't check DECL_COMDAT. From-SVN: r215168
2014-09-11Fix declarations in some tests.Bernd Schmidt5-30/+41
* gcc.dg/compat/struct-by-value-13_main.c (struct_by_value_13_x): Fix declaration. * gcc.dg/compat/struct-by-value-16a_main.c (struct_by_value_16a_x): Fix declaration. * gcc.dg/compat/struct-by-value-17a_main.c (struct_by_value_17a_x): Fix declaration. * gcc.dg/compat/struct-by-value-18a_main.c (struct_by_value_18a_x): Fix declaration. From-SVN: r215158
2014-09-11re PR target/63223 ([avr] Make jumptables work with -Wl,--section-start,.text=)Georg-Johann Lay2-6/+43
gcc/ PR target/63223 * config/avr/avr.md (*tablejump.3byte-pc): New insn. (*tablejump): Restrict to !AVR_HAVE_EIJMP_EICALL. Add void clobber. (casesi): Expand to *tablejump.3byte-pc if AVR_HAVE_EIJMP_EICALL. libgcc/ PR target/63223 * config/avr/libgcc.S (__tablejump2__): Rewrite to use RAMPZ, ELPM and R24 as needed. Make work for all devices and .text locations. (__do_global_ctors, __do_global_dtors): Use word addresses. (__tablejump__, __tablejump_elpm__): Remove functions. * t-avr (LIB1ASMFUNCS): Remove _tablejump, _tablejump_elpm. Add _tablejump2. (XICALL, XIJMP): New macros. From-SVN: r215152
2014-09-11AVX-512. Add vperm[it]2 insns support.Alexander Ivchenko2-32/+152
gcc/ * config/i386/sse.md (define_expand "<avx512>_vpermi2var<VI48F:mode>3_maskz"): Rename from "avx512f_vpermi2var<mode>3_maskz" and update mode iterator. (define_expand "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_maskz"): New. (define_insn "<avx512>_vpermi2var<VI48F:mode>3<sd_maskz_name>"): Rename from "avx512f_vpermi2var<mode>3<sd_maskz_name>" and update mode iterator. (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3<sd_maskz_name>"): New. (define_insn "<avx512>_vpermi2var<VI48F:mode>3_mask"): Rename from "avx512f_vpermi2var<mode>3_mask" and update mode iterator. (define_insn "<avx512>_vpermi2var<VI2_AVX512VL:mode>3_mask"): New. (define_expand "<avx512>_vpermt2var<VI48F:mode>3_maskz"): Rename from "avx512f_vpermt2var<mode>3_maskz" and update mode iterator. (define_expand "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_maskz"): New. (define_insn "<avx512>_vpermt2var<VI48F:mode>3<sd_maskz_name>"): Rename from "avx512f_vpermt2var<mode>3<sd_maskz_name>" and update mode iterator. (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3<sd_maskz_name>"): New. (define_insn "<avx512>_vpermt2var<VI48F:mode>3_mask"): Rename from "avx512f_vpermt2var<mode>3_mask" and update mode iterator. (define_insn "<avx512>_vpermt2var<VI2_AVX512VL:mode>3_mask"): New. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215151
2014-09-11varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try to access ↵Jan Hubicka2-0/+10
removed nodes. * varpool.c (varpool_node::ctor_useable_for_folding_p): Do not try to access removed nodes. From-SVN: r215150
2014-09-11re PR middle-end/63186 (Undefined .L* symbols because of fnsplit)Jan Hubicka4-7/+77
PR tree-optimization/63186 * ipa-split.c (test_nonssa_use): Skip nonforced labels. (mark_nonssa_use): Likewise. (verify_non_ssa_vars): Verify all header blocks for label definitions. * gcc.dg/pr63186.c: New testcase. From-SVN: r215149
2014-09-11AVX-512. Extend vpermvar insn patterns.Alexander Ivchenko2-7/+44
gcc/ * config/i386/sse.md (define_mode_attr avx2_avx512): Rename from avx2_avx512bw. (define_mode_iterator VI48F_256_512): Extend to AVX-512VL. (define_insn "<avx2_avx512>_permvar<mode><mask_name>"): Rename from "<avx2_avx512f>_permvar<mode><mask_name>". (define_insn "<avx512>_permvar<mode><mask_name>"): New. (define_insn "<avx2_avx512>_ashrv<VI48_AVX512F_AVX512VL:mode><mask_name>"): Rename from "<avx2_avx512f>_ashrv<mode><mask_name>". (define_insn "<avx2_avx512>_ashrv<VI2_AVX512VL:mode><mask_name>"): Ditto. (define_insn "<avx2_avx512>_<shift_insn>v<VI48_AVX512F:mode><mask_name>"): Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>". (define_insn "<avx2_avx512>_<shift_insn>v<VI2_AVX512VL:mode><mask_name>"): Rename from "<avx2_avx512bw>_<shift_insn>v<mode><mask_name>". Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215148
2014-09-11Daily bump.GCC Administrator1-1/+1
From-SVN: r215147
2014-09-10vsx.md (vsx_fmav4sf4): Use correct constraints for V2DF, V4SF, DF, and DI modes.Michael Meissner2-11/+19
2014-09-10 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/vsx.md (vsx_fmav4sf4): Use correct constraints for V2DF, V4SF, DF, and DI modes. (vsx_fmav2df2): Likewise. (vsx_float_fix_<mode>2): Likewise. (vsx_reduc_<VEC_reduc_name>_v2df_scalar): Likewise. From-SVN: r215138
2014-09-10Fix PR target/63209.Xinliang David Li4-2/+46
From-SVN: r215136
2014-09-10i386.exp: Only run vect-args.c tests if runtest_file_p says they should be run.Jakub Jelinek2-5/+13
* gcc.target/i386/i386.exp: Only run vect-args.c tests if runtest_file_p says they should be run. From-SVN: r215135
2014-09-10re PR ipa/61659 (Extra undefined symbol because of devirtualization)Jason Merrill4-4/+38
PR c++/61659 * decl.c (grokfndecl): Don't set DECL_COMDAT on static inlines. (duplicate_decls, start_decl): Likewise. * pt.c (check_explicit_specialization): Likewise. (push_template_decl_real): Or static templates. From-SVN: r215134
2014-09-10error_for_asm and warning_for_asm take const rtx_insn *David Malcolm5-10/+24
gcc/ChangeLog: 2014-09-10 David Malcolm <dmalcolm@redhat.com> * final.c (this_is_asm_operands): Strengthen this variable from rtx to const rtx_insn *. * output.h (this_is_asm_operands): Likewise. * rtl-error.c (location_for_asm): Strengthen param "insn" from const_rtx to const rtx_insn *. (diagnostic_for_asm): Likewise. * rtl-error.h (error_for_asm): Likewise. (warning_for_asm): Likewise. From-SVN: r215133
2014-09-10insn_extract takes an rtx_insnDavid Malcolm3-2/+9
gcc/ChangeLog: 2014-09-10 David Malcolm <dmalcolm@redhat.com> * genextract.c (print_header): When writing out insn_extract to insn-extract.c, strengthen the param "insn" from rtx to rtx_insn *. * recog.h (insn_extract): Strengthen the param from rtx to rtx_insn *. From-SVN: r215132
2014-09-10[AArch64 Testsuite] Add a test of the vst[234](q?) intrinicsAlan Lawrence2-0/+80
* gcc.target/aarch64/vstN_1.c: New test. From-SVN: r215129
2014-09-10install.texi (Prerequisites): Note Tcl 8.6 bug fixed in 8.6.1.Mike Stump2-1/+6
* doc/install.texi (Prerequisites): Note Tcl 8.6 bug fixed in 8.6.1. From-SVN: r215127
2014-09-10[AArch64 Testsuite] Add a test of the vldN_lane intrinsicAlan Lawrence2-0/+101
* gcc.target/aarch64/vldN_lane_1.c: New test. From-SVN: r215126
2014-09-10cgraphunit.c (expand_thunk): If not expanding, set analyzed flag.Martin Jambor3-8/+13
2014-09-10 Martin Jambor <mjambor@suse.cz> * cgraphunit.c (expand_thunk): If not expanding, set analyzed flag. (analyze): Do not set analyze flag if expand_thunk returns false;. (create_wrapper): Likewise. * cgraphclones.c (duplicate_thunk_for_node): Likewise. From-SVN: r215123
2014-09-10re PR middle-end/61654 (ICE in release_function_body, at cgraph.c:1699)Martin Jambor4-0/+72
2014-09-10 Martin Jambor <mjambor@suse.cz> PR ipa/61654 * cgraphclones.c (duplicate_thunk_for_node): Copy arguments of the new decl properly. Analyze the new thunk if it is expanded. gcc/testsuite/ * g++.dg/ipa/pr61654.C: New test. From-SVN: r215122
2014-09-10coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn): Define.Andreas Schwab2-0/+7
* coretypes.h (struct _dont_use_rtx_insn_here_, rtx_insn) [USED_FOR_TARGET]: Define. From-SVN: r215121
2014-09-10MIPS: Do not reload unallocated FP_REGS pseudos via GR_REGSMatthew Fortune2-2/+8
gcc/ * config/mips/mips.c (mips_secondary_reload_class): Handle regno < 0 case. From-SVN: r215120
2014-09-10Fix ICE in bitmap routines with LRA and inline assembly languageRobert Suchanek2-3/+8
gcc/ * lra-lives.c (process_bb_lives): Replace assignment with bitwise OR assignment. From-SVN: r215119
2014-09-10flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE and ↵Jakub Jelinek13-4/+409
SANITIZE_RETURNS_NONNULL_ATTRIBUTE... gcc/ * flag-types.h (enum sanitize_code): Add SANITIZE_NONNULL_ATTRIBUTE and SANITIZE_RETURNS_NONNULL_ATTRIBUTE, or them into SANITIZE_UNDEFINED. * opts.c (common_handle_option): Handle SANITIZE_NONNULL_ATTRIBUTE and SANITIZE_RETURNS_NONNULL_ATTRIBUTE and disable flag_delete_null_pointer_checks for them. * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG, BUILT_IN_UBSAN_HANDLE_NONNULL_ARG_ABORT, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN, BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): New. * ubsan.c (instrument_bool_enum_load): Set *gsi back to stmt's iterator. (instrument_nonnull_arg, instrument_nonnull_return): New functions. (pass_ubsan::gate): Return true even for SANITIZE_NONNULL_ATTRIBUTE or SANITIZE_RETURNS_NONNULL_ATTRIBUTE. (pass_ubsan::execute): Call instrument_nonnull_{arg,return}. * doc/invoke.texi (-fsanitize=nonnull-attribute, -fsanitize=returns-nonnull-attribute): Document. gcc/testsuite/ * c-c++-common/ubsan/attrib-3.c: New test. * c-c++-common/ubsan/nonnull-1.c: New test. * c-c++-common/ubsan/nonnull-2.c: New test. * c-c++-common/ubsan/nonnull-3.c: New test. * c-c++-common/ubsan/nonnull-4.c: New test. * c-c++-common/ubsan/nonnull-5.c: New test. libsanitizer/ * ubsan/ubsan_handlers.cc, ubsan/ubsan_handlers.h: Cherry pick upstream r215485, r217389, r217391 and r217400. From-SVN: r215118
2014-09-10ubsan.h (struct ubsan_mismatch_data): Removed.Jakub Jelinek6-71/+124
* ubsan.h (struct ubsan_mismatch_data): Removed. (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument. * ubsan.c (ubsan_source_location): For unknown locations, pass { NULL, 0, 0 } instead of { "<unknown>", x, y }. (ubsan_create_data): Remove MISMATCH argument, add LOCCNT argument. Allow more than one location and arbitrary extra arguments passed in ... instead of through MISMATCH pointer. (ubsan_instrument_unreachable, ubsan_expand_bounds_ifn, ubsan_expand_null_ifn, ubsan_build_overflow_builtin, instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust callers. c-family/ * c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift, ubsan_instrument_vla, ubsan_instrument_return): Adjust ubsan_create_data callers. (ubsan_instrument_bounds): Don't emit UBSAN_BOUNDS at all if index is constant or BIT_AND_EXPR with constant mask and is small enough for the bound. * c-gimplify.c (ubsan_walk_array_refs_r): For ADDR_EXPR of ARRAY_REF, make sure the inner ARRAY_REF is not walked again. From-SVN: r215117
2014-09-10AVX-512. Add patterns for compress, expand.Alexander Ivchenko2-19/+45
gcc/ * config/i386/sse.md (define_mode_iterator VI48F): New. (define_insn "<avx512>_compress<mode>_mask"): Rename from "avx512f_compress<mode>_mask" and update mode iterator. (define_insn "<avx512>_compressstore<mode>_mask"): Rename from "avx512f_compressstore<mode>_mask" and update mode iterator. (define_expand "<avx512>_expand<mode>_maskz"): Rename from "avx512f_expand<mode>_maskz" and update mode iterator. (define_insn "<avx512>_expand<mode>_mask"): Rename from "avx512f_expand<mode>_mask" and update mode iterator. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215108
2014-09-10AVX-512. Add reduce, range, fpclass insn patterns.Alexander Ivchenko3-0/+121
gcc/ * config/i386/i386.c (ix86_expand_args_builtin): Handle avx512dq_rangepv8df_mask_round, avx512dq_rangepv16sf_mask_round, avx512dq_rangepv4df_mask, avx512dq_rangepv8sf_mask, avx512dq_rangepv2df_mask, avx512dq_rangepv4sf_mask. * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_REDUCE, UNSPEC_FPCLASS, UNSPEC_RANGE. (define_insn "<mask_codefor>reducep<mode><mask_name>"): New. (define_insn "reduces<mode>"): Ditto. (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"): Ditto. (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Ditto. (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Ditto. (define_insn "avx512dq_vmfpclass<mode>"): Ditto.. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215107
2014-09-10AVX-512. Update float unspecs: storeu, rcp14, rsqrt14, scalef, getexp, ↵Alexander Ivchenko3-50/+106
fixupimm, rndscale, getmant. gcc/ * config/i386/i386.c (avx512f_vgetmantv2df_round): Rename from "avx512f_getmantv2df_round". (avx512f_vgetmantv4sf_round): Rename from "avx512f_vgetmantv4sf_round". (ix86_expand_args_builtin): Handle avx512vl_getmantv8sf_mask, avx512vl_getmantv4df_mask, avx512vl_getmantv4sf_mask, avx512vl_getmantv2df_mask. (ix86_expand_round_builtin): Handle avx512f_vgetmantv2df_round, avx512f_vgetmantv4sf_round. * config/i386/sse.md (define_insn "<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask"): Rename from "avx512f_storeu<ssemodesuffix>512_mask" and update mode iterator. (define_insn "<mask_codefor>rcp14<mode><mask_name>"): Use VF_AVX512VL. (define_insn "<mask_codefor>rsqrt14<mode><mask_name>"): Ditto. (define_insn "<avx512>_scalef<mode><mask_name><round_name>"): Rename from "avx512f_scalef<mode><mask_name><round_name>" and update mode iterator.. (define_insn "<avx512>_getexp<mode><mask_name><round_saeonly_name>"): Rename from "avx512f_getexp<mode><mask_name><round_saeonly_name>" and update mode iterator. (define_expand "<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>"): Rename from "avx512f_fixupimm<mode>_maskz<round_saeonly_expand_name>" and update mode iterator. (define_insn "<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>"): Rename from "avx512f_fixupimm<mode><sd_maskz_name><round_saeonly_name>" and update mode iterator. (define_insn "<avx512>_fixupimm<mode>_mask<round_saeonly_name>"): Rename from "avx512f_fixupimm<mode>_mask<round_saeonly_name>" and update mode iterator.. (define_insn "<avx512>_rndscale<mode><mask_name><round_saeonly_name>"): rename from "avx512f_rndscale<mode><mask_name><round_saeonly_name>" and update mode iterator.. (define_insn "<avx512>_getmant<mode><mask_name><round_saeonly_name>"): Rename from "avx512f_getmant<mode><mask_name><round_saeonly_name>" and update mode iterator. (define_insn "avx512f_vgetmant<mode><round_saeonly_name>"): Rename from "avx512f_getmant<mode><round_saeonly_name>". Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215106
2014-09-10re PR lto/63166 (ICE (LTO): ipa_intraprocedural_devirtualization, at ↵Jan Hubicka5-2/+157
ipa-prop.c:2611) PR ipa/63166 * ipa-prop.c (compute_known_type_jump_func): Fix conditional. * g++.dg/lto/pr63166_0.ii: New testcase. * g++.dg/lto/pr63166_1.ii: New testcase. From-SVN: r215105
2014-09-10AVX-512. Extend FMA patterns.Alexander Ivchenko2-250/+337
gcc/ * config/i386/sse.md (define_mode_iterator VF_AVX512VL): New. (define_mode_iterator FMAMODEM): Allow 128/256bit EVEX version. (define_mode_iterator FMAMODE_AVX512): New. (define_mode_iterator FMAMODE): Remove conditions. (define_expand "fma4i_fmadd_<mode>"): Use FMAMODE_AVX512 mode iterator. (define_expand "<avx512>_fmadd_<mode>_maskz<round_expand_name>"): Rename from "<avx512>_fmadd_<mode>_maskz<round_expand_name>" and use VF_AVX512VL mode iterator. (define_mode_iterator FMAMODE_NOVF512): Remove. (define_insn "*fma_fmadd_<mode>"): Rename from "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>" and use FMAMODE mode iterator. (define_mode_iterator VF_SF_AVX512VL): New. (define_insn "<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>"): Use VF_SF_AVX512VL mode iterator. (define_insn "<avx512>_fmadd_<mode>_mask<round_name>"): Rename from "avx512f_fmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode iterator. (define_insn "<avx512>_fmadd_<mode>_mask3<round_name>"): Rename from "avx512f_fmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode iterator. (define_insn "*fma_fmsub_<mode>"): Rename from "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>" and use FMAMODE mode iterator. (define_insn "<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>"): Use VF_SF_AVX512VL mode iterator. (define_insn "<avx512>_fmsub_<mode>_mask<round_name>"): Rename from "avx512f_fmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode iterator. (define_insn "<avx512>_fmsub_<mode>_mask3<round_name>"): Rename from "avx512f_fmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode iterator. (define_insn "*fma_fnmadd_<mode>"): Rename from "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>" and use FMAMODE mode iterator. (define_insn "<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>"): Use VF_SF_AVX512VL mode iterator. (define_insn "<avx512>_fnmadd_<mode>_mask<round_name>"): Rename from "avx512f_fnmadd_<mode>_mask<round_name>" and use VF_AVX512VL mode iterator. (define_insn "<avx512>_fnmadd_<mode>_mask3<round_name>"): Rename from "avx512f_fnmadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode iterator. (define_insn "*fma_fnmsub_<mode>"): Rename from "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>" and use FMAMODE mode iterator. (define_insn "<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>"): Use VF_SF_AVX512VL mode iterator. (define_insn "<avx512>_fnmsub_<mode>_mask<round_name>"): Rename from "avx512f_fnmsub_<mode>_mask<round_name>" and use VF_AVX512VL mode iterator. (define_insn "<avx512>_fnmsub_<mode>_mask3<round_name>"): Rename from "avx512f_fnmsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode iterator. (define_expand "<avx512>_fmaddsub_<mode>_maskz<round_expand_name>"): Rename from "avx512f_fmaddsub_<mode>_maskz<round_expand_name>" and use VF_AVX512VL mode iterator. (define_insn "*fma_fmaddsub_<mode>"): Rename from "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>" and remove subst usage. (define_insn "<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>"): Use VF_SF_AVX512VL mode iterator. (define_insn "<avx512>_fmaddsub_<mode>_mask<round_name>"): Rename from "avx512f_fmaddsub_<mode>_mask<round_name>" and use VF_AVX512VL mode iterator. (define_insn "<avx512>_fmaddsub_<mode>_mask3<round_name>"): Rename from "avx512f_fmaddsub_<mode>_mask3<round_name>" and use VF_AVX512VL mode iterator. (define_insn "*fma_fmsubadd_<mode>"): Rename from "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>" and remove usage of subst. (define_insn "<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>"): Use VF_SF_AVX512VL mode iterator. (define_insn "<avx512>_fmsubadd_<mode>_mask<round_name>"): Rename from "avx512f_fmsubadd_<mode>_mask<round_name>" and use VF_AVX512VL mode iterator. (define_insn "<avx512>_fmsubadd_<mode>_mask3<round_name>"): Rename from "avx512f_fmsubadd_<mode>_mask3<round_name>" and use VF_AVX512VL mode iterator. Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com> Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com> Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com> Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com> From-SVN: r215104
2014-09-10revert: calls.c (precompute_arguments): Check ↵Kugan Vivekanandarajah5-46/+15
promoted_for_signed_and_unsigned_p and set the promoted mode. gcc/ChangeLog: 2014-09-10 Kugan Vivekanandarajah <kuganv@linaro.org> Revert r213751: * calls.c (precompute_arguments): Check promoted_for_signed_and_unsigned_p and set the promoted mode. (promoted_for_signed_and_unsigned_p): New function. (expand_expr_real_1): Check promoted_for_signed_and_unsigned_p and set the promoted mode. * expr.h (promoted_for_signed_and_unsigned_p): New function definition. * cfgexpand.c (expand_gimple_stmt_1): Call emit_move_insn if SUBREG is promoted with SRP_SIGNED_AND_UNSIGNED. From-SVN: r215100
2014-09-10Daily bump.GCC Administrator1-1/+1
From-SVN: r215099
2014-09-09opth-gen.awk: Generate mapping from cpp message reasons to the options that ↵Manuel López-Ibáñez6-57/+76
enable them. gcc/ChangeLog: 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org> * opth-gen.awk: Generate mapping from cpp message reasons to the options that enable them. * doc/options.texi (CppReason): Document. gcc/c-family/ChangeLog: 2014-09-09 Manuel López-Ibáñez <manu@gcc.gnu.org> * c.opt: Add CppReason to various flags. (Wdate-time): Re-sort. * c-common.c: Include c-common.h earlier. (struct reason_option_codes_t): Delete. (c_option_controlling_cpp_error): Prefix global type and struct with cpp_. From-SVN: r215095