1. 05 Oct, 2015 8 commits
    • Replace REAL_VALUES_LESS with real_less · 8cb41028
      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
      Richard Sandiford committed
    • Remove remaining uses of REAL_VALUES_IDENTICAL · 1a25c6b1
      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
      Richard Sandiford committed
    • Replace REAL_VALUES_EQUAL with real_equal · 624d31fe
      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
      Richard Sandiford committed
    • re PR ipa/67783 (quadratic time consumption in IPA inlining with -O1 and higher) · 7d475a54
      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
      Richard Biener committed
    • tree-ssa-pre.c (create_component_ref_by_pieces_1): Move call handling ... · 9c709f64
      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
      Richard Biener committed
    • [Patch ARM/ AArch64] Fix typo in vcvt_f16.c testcase . · 562eadf8
      
      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
      Ramana Radhakrishnan committed
    • re PR c++/67844 (Cannot make tuple of class with template constructor) · 057ce497
      2015-10-05  Ville Voutilainen  <ville.voutilainen@gmail.com>
      
      	PR 67844.
      	* include/std/tuple (_TC::_NonNestedTuple): Eagerly reject
      	conversions from tuple types same as the target tuple.
      	* testsuite/20_util/tuple/67844.cc: New.
      	* testsuite/20_util/tuple/cons/nested_tuple_construct.cc: Add
      	a missing copyright header.
      
      From-SVN: r228468
      Ville Voutilainen committed
    • Daily bump. · aa385812
      From-SVN: r228465
      GCC Administrator committed
  2. 04 Oct, 2015 8 commits
    • Implement N4514, C++ Extensions for Transactional Memory. · b8fd7909
      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
      Jason Merrill committed
    • re PR rtl-optimization/67447 (ICE in extract_constrain_insn… · bd841941
      re PR rtl-optimization/67447 (ICE in extract_constrain_insn (reload_cse_simplify_operands): insn does not satisfy its constraints)
      
      	PR rtl-optimization/67447
      	* gcc.target/i386/pr67447.c: New test.
      
      From-SVN: r228461
      Uros Bizjak committed
    • i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to check for general register. · beabed99
      	* 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
      Uros Bizjak committed
    • vect-pack-trunc-1.c: Require avx512bw effective target. · 51daf358
      	* 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
      Uros Bizjak committed
    • Remove dead code · 2018f53e
      gcc/fortran/
      	* match.c (gfc_match_common): Remove dead variable old_blank_common.
      
      From-SVN: r228458
      Mikael Morin committed
    • Fix fortran common-related error recovery ICE. · 2b3f52a2
      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
      Mikael Morin committed
    • Factor access to the common block head symbol · 6dcab507
      	* 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
      Mikael Morin committed
    • Daily bump. · 18696c74
      From-SVN: r228454
      GCC Administrator committed
  3. 03 Oct, 2015 7 commits
  4. 02 Oct, 2015 17 commits