aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2015-10-05Add a build_real_truncate helper functionRichard Sandiford5-34/+37
...which simplifies the match.pd patterns I'm about to add. Bootstrapped & regression-tested on x86_64-linux-gnu. gcc/ * real.h (build_real_truncate): Declare. * tree.c (build_real_truncate): New function. (strip_float_extensions): Use it. * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt) (fold_builtin_hypot, fold_builtin_pow): Likewise. * match.pd: Likewise. From-SVN: r228483
2015-10-05[AArch64] Fix output assembly bug under TLSIE ILP32James Greenhalgh2-1/+6
2015-10-05 James Greenhalgh <james.greenhalgh@arm.com> Jiong Wang <jiong.wang@arm.com> * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w". Co-Authored-By: Jiong Wang <jiong.wang@arm.com> From-SVN: r228482
2015-10-05cpuinfo.c (get_intel_cpu): Detect "skylake-avx512".Kirill Yukhin2-0/+9
libgcc/ * config/i386/cpuinfo.c (get_intel_cpu): Detect "skylake-avx512". gcc/testsuite/ * gcc.target/i386/builtin_target.c: Add check for "skylake-avx512". From-SVN: r228481
2015-10-05Cleanup directives.Christian Bruel2-4/+7
From-SVN: r228479
2015-10-05Remove REAL_VALUE_FROM_CONST_DOUBLERichard Sandiford55-443/+294
To maintain symmetry after the previous removal of CONST_DOUBLE_FROM_REAL_VALUE, this patch also gets rid of REAL_VALUE_FROM_CONST_DOUBLE. All the macro did was copy the contents of CONST_DOUBLE_REAL_VALUE into a temporary real_value structure. In many cases there was no need for this temporary and we could simply use the CONST_DOUBLE_REAL_VALUE directly. For that reason this patch is less automatic than the others. Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by building one target per CPU directory and checking that there were no new warnings and no changes in testsuite output at -O2. gcc/ * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete. * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p) (aarch64_print_operand, aarch64_float_const_representable_p) (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE instead of REAL_VALUE_FROM_CONST_DOUBLE. * config/arc/arc.c (arc_print_operand): Likewise. * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index) (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const) (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits): Likewise. * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8) (consttable_16): Likewise. * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise. * config/avr/avr.c (avr_print_operand): Likewise. * config/bfin/bfin.md: Likewise (in a define_split). * config/c6x/c6x.md: Likewise (in a define_split). * config/cr16/cr16.c (cr16_const_double_ok): Likewise. (cr16_print_operand): Likewise. * config/cris/cris.c (cris_print_operand): Likewise. * config/epiphany/epiphany.c (epiphany_print_operand): Likewise. * config/fr30/fr30.c (fr30_print_operand): Likewise. (fr30_const_double_is_zero): Likewise. * config/frv/frv.c (frv_print_operand, output_move_single): Likewise. * config/frv/frv.md: Likewise (in a define_split). * config/frv/predicates.md (int_2word_operand): Likewise. * config/h8300/h8300.c (h8300_print_operand): Likewise. * config/i386/i386.c (standard_80387_constant_p): Likewise. (ix86_print_operand, ix86_split_to_parts): Likewise. * config/i386/i386.md: Likewise (in a define_split). * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise. * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise. * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise. * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p) (print_operand): Likewise. * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise. * config/mep/mep.md: Likewise (in define_split). * config/microblaze/microblaze.c (microblaze_const_double_ok) (print_operand): Likewise. * config/mips/mips.md (consttable_float): Likewise. * config/mmix/mmix.c (mmix_intval): Likewise. * config/mn10300/mn10300.c (mn10300_print_operand): Likewise. * config/nvptx/nvptx.c (nvptx_print_operand): Likewise. * config/pa/pa.c (pa_singlemove_string): Likewise. * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise. (pdp11_asm_print_operand, legitimate_const_double_p): Likewise. * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove) (output_toc): Likewise. * config/rs6000/rs6000.md: Likewise (in define_splits). * config/rx/rx.c (rx_print_operand): Likewise. * config/s390/s390.c (s390_output_pool_entry): Likewise. * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise. * config/sh/sh.md (consttable_sf, consttable_df): Likewise (and also in define_splits). * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise. (fp_high_losum_p): Likewise. * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise. (*movsf_high): Likewise. * config/spu/spu.c (const_double_to_hwint): Likewise. * config/v850/v850.c (const_double_split): Likewise. * config/vax/vax.c (vax_float_literal): Likewise. * config/visium/visium.c (visium_expand_copysign): Likewise. * config/visium/visium.md: Likewise (in define_split). * config/xtensa/predicates.md (const_float_1_operand): Likewise. * config/xtensa/xtensa.c (print_operand): Likewise. (xtensa_output_literal): Likewise. * cprop.c (implicit_set_cond_p): Likewise. * dwarf2out.c (insert_float): Likewise. * expmed.c (expand_mult, make_tree): Likewise. * expr.c (compress_float_constant): Likewise. * rtlanal.c (split_double): Likewise. * simplify-rtx.c (avoid_constant_pool_reference): Likewise. (simplify_const_unary_operation, simplify_binary_operation_1) (simplify_const_binary_operation): Likewise. (simplify_const_relational_operation): Likewise. * varasm.c (output_constant_pool_2): Likewise. From-SVN: r228478
2015-10-05Remove remaining uses of CONST_DOUBLE_FROM_REAL_VALUERichard Sandiford21-58/+93
This patch replaces all uses of CONST_DOUBLE_FROM_REAL_VALUE with the already-existing const_double_from_real_value. Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by building one target per CPU directory and checking that there were no new warnings and no changes in testsuite output at -O2. gcc/ * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value instead of CONST_DOUBLE_FROM_REAL_VALUE. (CONST_DOUBLE_FROM_REAL_VALUE): Delete. * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value instead of CONST_DOUBLE_FROM_REAL_VALUE. * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise. * config/i386/i386.c (standard_80387_constant_rtx): Likewise. (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round) (ix86_emit_swsqrtsf): Likewise. * config/ia64/ia64.c (ia64_expand_builtin): Likewise. * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2) (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise. * config/pa/pa.c (pa_expand_builtin): Likewise. * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise. (rs6000_scale_v2df): Likewise. * config/rs6000/rs6000.md (*cmptf_internal2): Likewise. * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2) (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise. * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl) (vec_ctul): Likewise. * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise. * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise. * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise. * cse.c (fold_rtx): Likewise. * emit-rtl.c (immed_double_const): Likewise (in comments). (init_emit_once): Likewise. * expr.c (compress_float_constant, expand_expr_real_1) (const_vector_from_tree): Likewise. * optabs.c (expand_float, expand_fix): Likewise. * reg-stack.c (reg_to_stack): Likewise. * simplify-rtx.c (avoid_constant_pool_reference): Likewise. (simplify_const_unary_operation, simplify_binary_operation_1) (simplify_const_binary_operation, simplify_relational_operation) (simplify_immed_subreg): Likewise. From-SVN: r228477
2015-10-05Remove remaining uses of REAL_ARITHMETICRichard Sandiford14-60/+40
This patch replaces all remaining uses of the old target macro REAL_ARITHMETIC with calls to the (now generic) real_arithmetic function. Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by building one target per CPU directory and checking that there were no new warnings and no changes in testsuite output at -O2. gcc/ada/ * gcc-interface/trans.c (convert_with_check): Use real_arithmetic instead of REAL_ARITHMETIC. gcc/ * doc/tm.texi.in (REAL_ARITHMETIC): Delete. * doc/tm.texi: Regenerate. * real.h (REAL_ARITHMETIC): Delete. * config/i386/i386.c (ix86_expand_lround, ix86_expand_round) (ix86_expand_round_sse4): Use real_arithmetic instead of REAL_ARITHMETIC. * config/i386/sse.md (round<mode>2): Likewise. * rtl.h (rtx_to_tree_code): Likewise (in comment). * explow.c (rtx_to_tree_code): Likewise (in comment). * match.pd: Likewise. * simplify-rtx.c (simplify_binary_operation_1): Likewise. * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise. (expand_pow_as_sqrts): Likewise. * tree-pretty-print.c (dump_generic_node): Remove code that was conditional on REAL_ARITHMETIC being undefined. From-SVN: r228476
2015-10-05Replace REAL_VALUES_LESS with real_lessRichard Sandiford12-28/+50
This patch continues the removal of real-related macros by replacing REAL_VALUES_LESS with real_less. Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by building one target per CPU directory and checking that there were no new warnings and no changes in testsuite output at -O2. gcc/ada/ * gcc-interface/trans.c (convert_with_check): Use real_less instead of REAL_VALUES_LESS. gcc/ * doc/tm.texi.in (REAL_VALUES_LESS): Delete. * doc/tm.texi: Regenerate. * real.h (real_less): Declare. (REAL_VALUES_LESS): Delete. * real.c (real_less): New function. (real_compare): Use it. * config/m68k/m68k.c (floating_exact_log2): Use real_less instead of REAL_VALUES_LESS. * config/microblaze/microblaze.c (microblaze_const_double_ok): Likewise. * fold-const.c (fold_convert_const_int_from_real): Likewise. * simplify-rtx.c (simplify_const_unary_operation): Likewise. (simplify_const_relational_operation): Likewise. * tree-call-cdce.c (check_pow): Likewise. (gen_conditions_for_pow_cst_base): Likewise. From-SVN: r228475
2015-10-05Remove remaining uses of REAL_VALUES_IDENTICALRichard Sandiford8-12/+30
This patch continues the removal of real-related macros. We already had both the old-style REAL_VALUES_IDENTICAL and the new-style real_identical, so this patch replaces all remaining uses of the former with the latter. Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by building one target per CPU directory and checking that there were no new warnings and no changes in testsuite output at -O2. gcc/ * real.h (REAL_VALUES_IDENTICAL): Delete. * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical instead of REAL_VALUES_IDENTICAL. * fold-const.c (operand_equal_p): Likewise. * ipa-icf.c (sem_variable::equals): Likewise. * tree-complex.c (some_nonzerop): Likewise. (expand_complex_multiplication): Likewise. * tree.c (simple_cst_equal): Likewise. * varasm.c (compare_constant): Likewise. --- gcc/config/m68k/m68k.c | 5 ++--- gcc/fold-const.c | 3 +-- gcc/ipa-icf.c | 4 ++-- gcc/real.h | 1 - gcc/tree-complex.c | 4 ++-- gcc/tree.c | 2 +- gcc/varasm.c | 2 +- 7 files changed, 9 insertions(+), 12 deletions(-) From-SVN: r228474
2015-10-05Replace REAL_VALUES_EQUAL with real_equalRichard Sandiford30-72/+146
Richard B suggested we should replace dconsthalf etc. with dconst<1, 2> (). When I tried that, the extra comma caused problems with some lingering uses of the old target macros for handling reals (e.g. REAL_ARITHMETIC instead of real_arithmetic), since the constant was then treated as two macro parameters. It would have been possible to add an extra level of brackets to avoid this, but I thought I might as well take the opportunity to remove the macros instead. (Note that I'm only removing macros that caused a problem directly, or are closely related to ones that did.) This first patch replaces REAL_VALUES_EQUAL with a real_equal function. The prototype is the same as for real_identical, which has already undergone a half-transition in this direction. Bootstrapped & regression-tested on x86_64-linux-gnu. Also tested by building one target per CPU directory and checking that there were no new warnings and no changes in testsuite output at -O2. gcc/c-family/ * c-lex.c (interpret_float): Use real_equal instead of REAL_VALUES_EQUAL. gcc/c/ * c-typeck.c (c_tree_equal): Use real_equal instead of REAL_VALUES_EQUAL. gcc/cp/ * tree.c (cp_tree_equal): Use real_equal instead of REAL_VALUES_EQUAL. gcc/ * real.h (real_equal): Declare. (REAL_VALUES_EQUAL): Delete. * real.c (real_equal): New function. (real_compare): Use it. * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete. * doc/tm.texi: Regenerate. * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use real_equal instead of REAL_VALUES_EQUAL. * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise. * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate) (fp_const_from_val): Likewise. * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise. * config/m68k/m68k.c (standard_68881_constant_p): Likewise. (floating_exact_log2): Likewise. * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise. * config/vax/vax.c (vax_float_literal): Likewise. * config/xtensa/predicates.md (const_float_1_operand): Likewise. * cprop.c (implicit_set_cond_p): Likewise. * expmed.c (expand_mult): Likewise. * fold-const.c (const_binop): Likewise. * simplify-rtx.c (simplify_binary_operation_1): Likewise. (simplify_const_binary_operation): Likewise. (simplify_const_relational_operation): Likewise. * tree-call-cdce.c (check_pow): Likewise. (gen_conditions_for_pow_cst_base): Likewise. * tree-inline.c (estimate_num_insns): Likewise. * tree-ssa-dom.c (record_equality): Likewise. * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise. (gimple_expand_builtin_pow): Likewise. (pass_optimize_widening_mul::execute): Likewise. * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise. * tree.c (real_zerop, real_onep, real_minus_onep): Likewise. --- gcc/builtins.c | 14 +++++++------- gcc/c-family/c-lex.c | 6 +++--- gcc/c/c-typeck.c | 2 +- gcc/config/aarch64/aarch64.c | 2 +- gcc/config/arm/arm.c | 6 +++--- gcc/config/fr30/fr30.c | 2 +- gcc/config/m68k/m68k.c | 6 +++--- gcc/config/sh/sh.c | 4 ++-- gcc/config/vax/vax.c | 4 ++-- gcc/config/xtensa/predicates.md | 2 +- gcc/cp/tree.c | 2 +- gcc/cprop.c | 2 +- gcc/doc/tm.texi | 7 ------- gcc/doc/tm.texi.in | 7 ------- gcc/expmed.c | 2 +- gcc/fold-const.c | 2 +- gcc/real.c | 10 +++++++++- gcc/real.h | 4 ++-- gcc/simplify-rtx.c | 16 ++++++++-------- gcc/tree-call-cdce.c | 4 ++-- gcc/tree-inline.c | 5 +++-- gcc/tree-ssa-dom.c | 2 +- gcc/tree-ssa-math-opts.c | 16 ++++++++-------- gcc/tree-ssa-uncprop.c | 2 +- gcc/tree-vect-patterns.c | 4 ++-- gcc/tree.c | 6 +++--- 26 files changed, 67 insertions(+), 72 deletions(-) From-SVN: r228473
2015-10-05re PR ipa/67783 (quadratic time consumption in IPA inlining with -O1 and higher)Richard Biener2-40/+31
2015-10-05 Richard Biener <rguenther@suse.de> PR ipa/67783 * ipa-inline-analysis.c (estimate_function_body_sizes): Only consider loop header PHI defs as IVs. From-SVN: r228472
2015-10-05tree-ssa-pre.c (create_component_ref_by_pieces_1): Move call handling ...Richard Biener2-169/+111
2015-10-05 Richard Biener <rguenther@suse.de> * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move call handling ... (create_expression_by_pieces): ... here and build GIMPLE calls directly. Use gimple_build API and avoid force_gimple_operand. (insert_into_preds_of_block): Simplify. (do_regular_insertion): Add comment. From-SVN: r228471
2015-10-05[Patch ARM/ AArch64] Fix typo in vcvt_f16.c testcase .Ramana Radhakrishnan2-2/+9
This test worked by accident. While looking at why this was failing randomly in my builds, I discovered a bug in the way in which the testcases were written up in this case. 2015-10-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * gcc.target/aarch64/advsimd-intrinsics/vcvt_f16.c (TEST_MSG): Fix typo. (exec_vcvt): Add comments. From-SVN: r228470
2015-10-05Daily bump.GCC Administrator1-1/+1
From-SVN: r228465
2015-10-04Implement N4514, C++ Extensions for Transactional Memory.Jason Merrill56-49/+774
gcc/ * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute. gcc/c-family/ * c-common.c (c_common_reswords): Add C++ TM TS keywords. (c_common_attribute_table): Add transaction_safe_dynamic. transaction_safe now affects type identity. (handle_tm_attribute): Handle transaction_safe_dynamic. * c-common.h (enum rid): Add RID_ATOMIC_NOEXCEPT, RID_ATOMIC_CANCEL, RID_SYNCHRONIZED. (OBJC_IS_CXX_KEYWORD): Add RID_SYNCHRONIZED. (D_TRANSMEM): New. * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_transactional_memory. * c-pretty-print.c (pp_c_attributes_display): Don't print transaction_safe in C++. gcc/c/ * c-parser.c (c_lex_one_token): Handle @synchronized. * c-decl.c (match_builtin_function_types): A declaration of a built-in can change whether the function is transaction_safe. gcc/cp/ * cp-tree.h (struct cp_declarator): Add tx_qualifier field. (BCS_NORMAL, BCS_TRANSACTION): New enumerators. * lex.c (init_reswords): Limit TM kewords to -fgnu-tm. * parser.c (cp_lexer_get_preprocessor_token): Fix @synchronized. (make_call_declarator): Take tx_qualifier. (cp_parser_tx_qualifier_opt): New. (cp_parser_lambda_declarator_opt): Use it. (cp_parser_direct_declarator): Likewise. (cp_parser_statement): Handle atomic_noexcept, atomic_cancel. (cp_parser_compound_statement): Change in_try parameter to bcs_flags. (cp_parser_std_attribute): Map optimize_for_synchronized to transaction_callable. (cp_parser_transaction): Take the token. Handle atomic_noexcept. * lambda.c (maybe_add_lambda_conv_op): Handle transaction-safety. * call.c (enum conversion_kind): Add ck_tsafe. (standard_conversion): Handle transaction-safety conversion. (convert_like_real, resolve_address_of_overloaded_function): Likewise. (check_methods): Diagnose transaction_safe_dynamic on non-virtual function. (look_for_tm_attr_overrides): Don't inherit transaction_safe_dynamic. * cvt.c (tx_safe_fn_type_p, tx_unsafe_fn_variant) (can_convert_tx_safety): New. * typeck.c (composite_pointer_type): Handle transaction-safety. * name-lookup.h (enum scope_kind): Add sk_transaction. * name-lookup.c (begin_scope): Handle it. * semantics.c (begin_compound_stmt): Pass it. * decl.c (check_previous_goto_1): Check it. (struct named_label_entry): Add in_transaction_scope. (poplevel_named_label_1): Set it. (check_goto): Check it. (duplicate_decls): A specialization can be transaction_safe independently of its template. (grokdeclarator): Handle tx-qualifier. * rtti.c (ptr_initializer): Handle transaction-safe. * search.c (check_final_overrider): Check transaction_safe_dynamic. Don't check transaction_safe. * mangle.c (write_function_type): Mangle transaction_safe here. (write_CV_qualifiers_for_type): Not here. (write_type): Preserve transaction_safe when stripping attributes. * error.c (dump_type_suffix): Print transaction_safe. libiberty/ * cp-demangle.c (d_cv_qualifiers): Dx means transaction_safe. (cplus_demangle_type): Let d_cv_qualifiers handle it. (d_dump, d_make_comp, has_return_type, d_encoding) (d_count_templates_scopes, d_print_comp_inner) (d_print_mod_list, d_print_mod, d_print_function_type) (is_ctor_or_dtor): Handle DEMANGLE_COMPONENT_TRANSACTION_SAFE. From-SVN: r228462
2015-10-04re PR rtl-optimization/67447 (ICE in extract_constrain_insn ↵Uros Bizjak2-0/+30
(reload_cse_simplify_operands): insn does not satisfy its constraints) PR rtl-optimization/67447 * gcc.target/i386/pr67447.c: New test. From-SVN: r228461
2015-10-04i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to check for general register.Uros Bizjak2-7/+16
* config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to check for general register. (ix86_emit_save_regs): Ditto. (ix86_emit_save_regs_using_mov): Ditto. (ix86_emit_restore_regs_using_pop): Ditto. (ix86_emit_restore_regs_using_mov): Ditto. From-SVN: r228460
2015-10-04vect-pack-trunc-1.c: Require avx512bw effective target.Uros Bizjak7-0/+16
* gcc.target/i386/vect-pack-trunc-1.c: Require avx512bw effective target. * gcc.target/i386/vect-pack-trunc-2.c: Ditto. * gcc.target/i386/vect-perm-even-1.c: Ditto. * gcc.target/i386/vect-perm-odd-1.c: Ditto. * gcc.target/i386/vect-unpack-1.c: Ditto. * gcc.target/i386/vect-unpack-2.c: Ditto. From-SVN: r228459
2015-10-04Remove dead codeMikael Morin2-8/+5
gcc/fortran/ * match.c (gfc_match_common): Remove dead variable old_blank_common. From-SVN: r228458
2015-10-04Fix fortran common-related error recovery ICE.Mikael Morin5-7/+37
Upon reverting a symbol in a common block (after throwing an error), the compiler was ICEing because the symbol's common_block field was set, but the symbol was not in the common block's list of symbols. Fixed by both adding the symbol to the common block list and setting the symbol's common_block field at the same time. Furthermore, the gfc_add_in_common call is delayed and its result is ignored, so that its error messages are ignored and the compiler has the opportunity to give a better error message. Another gfc_add_in_common call is added later during resolution to emit again the missing errors. PR fortran/67758 gcc/fortran/ * match.c (gfc_match_common): Delay the common_block pointer assignment after error checking. Delay the call to gfc_add_in_common attribute after the handling of array specs. * resolve.c (resolve_common_vars): Call gfc_add_in_common again. gcc/testsuite/ * gfortran.dg/common_24.f: New. From-SVN: r228457
2015-10-04Factor access to the common block head symbolMikael Morin2-4/+10
* resolve.c (resolve_common_vars): Move access to the common block's head symbol inside the function. (resolve_common_blocks, resolve_types): Update callers. From-SVN: r228456
2015-10-04Daily bump.GCC Administrator1-1/+1
From-SVN: r228454
2015-10-03Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.Marek Polacek2-2/+5
* Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond. (insn-dfatab.o): Likewise. From-SVN: r228451
2015-10-03xtensa: add uclinux supportMax Filippov4-0/+112
2015-10-03 Max Filippov <jcmvbkbc@gmail.com> gcc/ * config.gcc (xtensa*-*-uclinux*): New configuration. * config/xtensa/uclinux.h: New file. * config/xtensa/uclinux.opt: New file. libgcc/ * config.host (xtensa*-*-uclinux*): New configuration. From-SVN: r228450
2015-10-03Document value of __cplusplus for C++14Jonathan Wakely2-4/+12
* doc/cpp.texi (Standard Predefined Macros): Document value of __cplusplus for C++14. From-SVN: r228448
2015-10-03pr67756.c: Fixed warnings.Bernd Edlinger2-0/+6
2015-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de> * gcc.target/arm/pr67756.c: Fixed warnings. From-SVN: r228445
2015-10-03Daily bump.GCC Administrator1-1/+1
From-SVN: r228442
2015-10-02Help the offload gcc driver find the right assemblerBernd Schmidt2-1/+6
gcc/ * gcc.c (process_command): Use spec_machine rather than spec_host_machine to build tooldir_prefix2. From-SVN: r228429
2015-10-02nvptx offloading linkingThomas Schwinge2-632/+60
gcc/ * config/nvptx/mkoffload.c (Kind, Vis): Remove enums. (Token, Stmt): Remove structs. (decls, vars, fns): Remove variables. (alloc_comment, append_stmt, is_keyword): Remove macros. (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts) (write_stmt, write_stmts, parse_insn, parse_list_nosemi) (parse_init, parse_file): Remove functions. (read_file): Accept a pointer to a length and store into it. (process): Don't try to parse the input file, just write it out as a string, but looking for maps. Also write out the length. (main): Don't use "-S" to compile PTX code. libgomp/ * oacc-ptx.h: Remove file, moving its content into... * config/nvptx/fortran.c: ... here... * config/nvptx/oacc-init.c: ..., here... * config/nvptx/oacc-parallel.c: ..., and here. * config/nvptx/openacc.f90: New file. * plugin/plugin-nvptx.c: Don't include "oacc-ptx.h". (link_ptx): Don't link in predefined bits of PTX code. Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com> From-SVN: r228418
2015-10-02Re: [PATCH] Improve DOM's optimization of control statementsJeff Law2-0/+11
* tree-ssa-dom.c (optimize_stmt): Note when loop structures need fixups. From-SVN: r228415
2015-10-02[PR target/67822] OpenMP offloading to nvptx failsThomas Schwinge2-2/+11
gcc/ PR target/67822 * config/nvptx/mkoffload.c (main): Scan the argument vector for -fopenmp, and skip generating an offloading image if specified. From-SVN: r228414
2015-10-02system.h (ROUND_UP): New macro definition.Uros Bizjak5-32/+47
* system.h (ROUND_UP): New macro definition. (ROUND_DOWN): Ditto. * ggc-page.c (ROUND_UP): Remove local macro definition. (PAGE_ALIGN): Implement using ROUND_UP macro. * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro. * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro to align values. (ix86_compute_frame_layout): Ditto. (ix86_expand_prologue): Ditto. (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro to round down values. (expand_set_or_movmem_via_rep): Ditto. From-SVN: r228410
2015-10-02re PR c/67730 (No warning when returning NULL in void function)Marek Polacek6-0/+87
PR c/67730 * c-typeck.c (convert_for_assignment): Use the expansion point location throughout. * gcc.dg/pr67730-1.c: New test. * gcc.dg/pr67730-2.c: New test. * gcc.dg/pr67730.h: New test. From-SVN: r228408
2015-10-02re PR c/67819 (-Wduplicated-cond should take macros into account)Marek Polacek6-2/+15
* genemit.c (gen_exp): Remove -Wduplicated-cond hack. * c.opt (Wduplicated-cond): Don't enable by -Wall anymore. * c-c++-common/Wduplicated-cond-2.c: Skip until PR67819 is resolved. From-SVN: r228405
2015-10-02reject loops early where ivs cannot be representedAditya Kumar3-59/+58
From-SVN: r228403
2015-10-02fix PR67754Sebastian Pop3-2/+10
From-SVN: r228402
2015-10-02add testcaseSebastian Pop2-0/+44
From-SVN: r228401
2015-10-02outline functions from stmt_simple_for_scop_pAditya Kumar2-30/+53
Outlined functions from stmt_simple_for_scop_p. No functional changes intended. Passes regtest and bootstrap. gcc/ChangeLog: 2015-10-01 Aditya Kumar <hiraditya@msn.com> * graphite-scop-detection.c (stmt_has_side_effects): New function outlined from stmt_simple_for_scop_p. (graphite_can_represent_stmt): Same. (stmt_simple_for_scop_p): Moved code out of this function for better readability. From-SVN: r228400
2015-10-02AVX-512.Kirill Yukhin4-0/+18
AVX-512. Add missing features to cpuinfo.c gcc/ * config/i386/i386.c (processor_features): Add F_AVX512VBMI, F_AVX512IFMA. (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA. libgcc/ * config/i386/cpuinfo.c (processor_features): Add FEATURE_AVX512VBMI and FEATURE_AVX512VBMI. testsuite/ * gcc.target/i386/builtin_target.c: Handle "avx512ifma" and "avx512vbmi". From-SVN: r228399
2015-10-02[AArch64] Use default_elf_asm_named_section instead of special cased hookRamana Radhakrishnan2-3/+4
* config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete. From-SVN: r228397
2015-10-02re PR rtl-optimization/67756 (ICE compiling Linux Kernel fs/namei.c on ARM)Vladimir Makarov4-12/+94
2015-10-02 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/67756 * lra-constraints.c (match_reload): Add a new parameter. Use it for creating a pseudo with the same value. (curr_insn_transform): Pass a new argument to match_reload. 2015-10-02 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/67756 * gcc.target/arm/pr67756.c: New. From-SVN: r228396
2015-10-02[AArch64] Add more TLS local executable testcasesJiong Wang5-0/+45
2015-10-02 Jiong Wang <jiong.wang@arm.com> * gcc.target/aarch64/tlsle12_tiny_1.c: New testcase for tiny model. * gcc.target/aarch64/tlsle24_tiny_1.c: Likewise. * gcc.target/aarch64/tlsle_sizeadj_tiny_1.c: TLS size truncation test for tiny model. * gcc.target/aarch64/tlsle_sizeadj_small_1.c: TLS size truncation test for small model. From-SVN: r228395
2015-10-02Update extract_even_odd w/ AVX-512BW insns.Kirill Yukhin10-12/+288
gcc/ * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New. (expand_vec_perm_even_odd_1): Handle V64QImode. (ix86_expand_vec_perm_const_1): Try expansion with expand_vec_perm_even_odd_trunc as well. * config/i386/sse.md (VI124_AVX512F): Rename to ... (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend to V54QI. (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ... (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend to V32HI and V16SI. (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name. (define_expand "vec_pack_trunc_<mode>"): Update iterator name. (define_expand "vec_unpacks_lo_<mode>"): Ditto. (define_expand "vec_unpacks_hi_<mode>"): Ditto. (define_expand "vec_unpacku_lo_<mode>"): Ditto. (define_expand "vec_unpacku_hi_<mode>"): Ditto. gcc/testsuite/ * gcc.target/i386/vect-pack-trunc-1.c: New test. * gcc.target/i386/vect-pack-trunc-2.c: Ditto. * gcc.target/i386/vect-perm-even-1.c: Ditto. * gcc.target/i386/vect-perm-odd-1.c: Ditto. * gcc.target/i386/vect-unpack-1.c: Ditto. * gcc.target/i386/vect-unpack-2.c: Ditto. From-SVN: r228394
2015-10-02invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq, -mavx521vbmi, ↵Kirill Yukhin2-4/+40
-mavx512ifma. gcc/ * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq, -mavx521vbmi, -mavx512ifma. Add missing opindex-es. From-SVN: r228393
2015-10-02re PR c/59218 (atomic transactions: accesses to volatiles not disallowed in ↵Jason Merrill4-15/+36
transaction_safe code) PR c/59218 * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p. (diagnose_tm_1_op): Also diagnose volatile accesses in transaction_safe function. From-SVN: r228392
2015-10-02* system.h (malloc.h): Don't include obsolete header.Jonathan Wakely2-12/+4
From-SVN: r228391
2015-10-02[AArch64] Use default_elf_asm_named_section instead of special cased hookRamana Radhakrishnan2-74/+5
Hi, The hook for TARGET_ASM_NAMED_SECTION was defined separately in the backend around the time frame for GCC 4.7 under the assumption that '@' would be used as a comment character in the binutils port. This was indeed true in versions of the AArch64 port that never made it into the FSF tree. However this practice was killed before the binutils port made it upstream. Doing archaeology into various revisions including the first commit of upstream binutils, talking to Marcus about the history of this and actually testing the first commit of binutils, I can confidently say that the upstream binutils port never had any use of '@' as a comment character for AArch64 However we never got rid of the special cased handling in GCC and the duplication of code in the AArch64 backend. This was found when I was playing with Virtual Table verification on ARM and AArch64 and discovered ICEs which were similar but manifested in different places begging the obvious question. Tested on aarch64-none-elf with no regressions. Ok to apply ? Ramana 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete. (TLS_SECTION_ASM_FLAG): Delete. From-SVN: r228390
2015-10-02re PR c/64249 (Missing warning for if (A) else if (A))Marek Polacek18-29/+858
PR c/64249 * c-common.c (warn_duplicated_cond_add_or_warn): New function. * c-common.h (warn_duplicated_cond_add_or_warn): Declare. * c.opt (Wduplicated-cond): New option. * c-parser.c (c_parser_statement_after_labels): Add CHAIN parameter and pass it down to c_parser_if_statement. (c_parser_else_body): Add CHAIN parameter and pass it down to c_parser_statement_after_labels. (c_parser_if_statement): Add CHAIN parameter. Add code to warn about duplicated if-else-if conditions. * parser.c (cp_parser_statement): Add CHAIN parameter and pass it down to cp_parser_selection_statement. (cp_parser_selection_statement): Add CHAIN parameter. Add code to warn about duplicated if-else-if conditions. (cp_parser_implicitly_scoped_statement): Add CHAIN parameter and pass it down to cp_parser_statement. * doc/invoke.texi: Document -Wduplicated-cond. * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond. (insn-dfatab.o): Likewise. * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond warning. * c-c++-common/Wduplicated-cond-1.c: New test. * c-c++-common/Wduplicated-cond-2.c: New test. * c-c++-common/Wduplicated-cond-3.c: New test. * c-c++-common/Wduplicated-cond-4.c: New test. * c-c++-common/Wmisleading-indentation.c (fn_37): Avoid -Wduplicated-cond warning. From-SVN: r228388
2015-10-02[PATCH][AARCH64]Add csneg3_uxtw_insn patternRenlin Li4-0/+32
gcc/ 2015-10-02 Renlin Li <renlin.li@arm.com> * config/aarch64/aarch64.md (csneg3_uxtw_insn): New pattern. gcc/testsuite/ 2015-10-02 Renlin Li <renlin.li@arm.com> * gcc.target/aarch64/csneg-1.c: Update test. From-SVN: r228387
2015-10-02sh.md: Add new unnamed split pattern to handle movt-movt sequences.Oleg Endo2-0/+45
gcc/ * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt sequences. From-SVN: r228386