1. 15 Sep, 2015 22 commits
  2. 14 Sep, 2015 18 commits
    • [PATCH] Minor DOM cleanup · 55133eae
              PR tree-optimization/47679
      	* tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
      	type rather than void *.
      
      From-SVN: r227762
      Jeff Law committed
    • re PR c++/44282 (fastcall is not mangled at all) · 65440c48
      	PR c++/44282
      
      	* mangle.c (write_CV_qualifiers_for_type): Also warn about regparm
      	mangling with lower -fabi-version.
      
      From-SVN: r227761
      Jason Merrill committed
    • The flag diagnostic_context::some_warnings_are_errors controls whether to give... · 0d179691
      The flag diagnostic_context::some_warnings_are_errors controls whether
      to give the message "all warnings being treated as errors". However, when
      warnings are buffered and then discarded, this flag is not reset. It turns
      out we do not need this flag at all, since we already count explicitly how
      many warnings were converted into errors, and this number is kept up to
      date for the buffered diagnostics used by Fortran.
      
      gcc/ChangeLog:
      
      2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR fortran/67460
      	* diagnostic.c (diagnostic_initialize): Do not set
      	some_warnings_are_errors.
      	(diagnostic_finish): Use DK_WERROR count instead.
      	(diagnostic_report_diagnostic): Do not set
      	some_warnings_are_errors.
      	* diagnostic.h (struct diagnostic_context): Remove
      	some_warnings_are_errors.
      
      gcc/testsuite/ChangeLog:
      
      2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	PR fortran/67460
      	* gfortran.dg/pr67460.f90: New test.
      
      From-SVN: r227760
      Manuel López-Ibáñez committed
    • compiler: Ignore result context in constant expressions. · 34e98513
          
          When evaluating a constant expression, the gofrontend would incorrectly
          force each operand to be represented as the resulting type before
          checking if the operation was valid with the untyped constants.
          According to the language specification on constant
          expressions(http://golang.org/ref/spec#Constant_expressions): "Untyped
          boolean, numeric, and string constants may be used as operands wherever
          it is legal to use an operand of boolean, numeric, or string type,
          respectively."
          
          Fixes golang/go#11566.
          
          Reviewed-on: https://go-review.googlesource.com/12716
      
      From-SVN: r227758
      Ian Lance Taylor committed
    • [SPARC] Simplify const_all_ones_operand · 5c270a92
      gen_rtx_CONST_VECTOR ensures that there is a single instance of:
      
             (const_vector:M [(const_int -1) ... (const_int -1)])
      
      for each M, so pointer equality with CONSTM1_RTX is enough.  Also,
      HOST_BITS_PER_WIDE_INT == 32 is doubly dead: HOST_WIDE_INT is always
      64 bits now, and we always use const_int rather than const_double
      or const_wide_int for all-ones values (or any other value that
      fits in a signed HOST_WIDE_INT).
      
      gcc/
      	* config/sparc/predicates.md (const_all_ones_operand): Use
      	CONSTM1_RTX to simplify definition.
      
      From-SVN: r227757
      Richard Sandiford committed
    • ChangeLog: Fix shitespace. · 81fc3217
      	* ChangeLog: Fix shitespace.
      	* testsuite/ChangeLog: Ditto.
      
      From-SVN: r227756
      Uros Bizjak committed
    • dump-new-function-3.c (dg-final): Also scan for $loopfn. · b4e240a1
      	* gcc.dg/gomp/dump-new-function-3.c (dg-final): Also scan for $loopfn.
      	* gcc.dg/gomp/notify-new-function-3.c (dg-final): Ditto.
      
      From-SVN: r227755
      Uros Bizjak committed
    • re PR c++/51911 ([C++11] G++ accepts new auto { list }) · 5a0f3af4
      /cp
      2015-09-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51911
      	* parser.c (cp_parser_new_expression): Enforce 5.3.4/2 (as amended
      	per the spirit of DR 1467).
      
      /testsuite
      2015-09-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51911
      	* g++.dg/cpp0x/new-auto1.C: New.
      
      From-SVN: r227753
      Paolo Carlini committed
    • re PR target/67061 (sh64-elf: internal compiler error: in sh_find_set_of_reg, at… · f6ba5bb2
      re PR target/67061 (sh64-elf: internal compiler error: in sh_find_set_of_reg, at config/sh/sh-protos.h:235)
      
      gcc/
      	PR target/67061
      	* config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
      	Handle call insns.
      
      From-SVN: r227750
      Oleg Endo committed
    • lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret... · eb472171
      2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
      
      	* lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
      	OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
      	OPT_fshow_column to handled saved option cases.
      	(append_compiler_options): Do not skip the above added options.
      
      From-SVN: r227749
      Chung-Lin Tang committed
    • [AArch64] Handle literal pools for functions > 1 MiB in size. · b4f50fd4
          
      
      This patch fixes the issue in PR63304 where we have
      functions that are > 1MiB. The idea is to use adrp / ldr or adrp / add
      instructions to address the literal pools under the use of a command line
      option. I would like to turn this on by default on trunk but keep this
      disabled by default for the release branches in order to get some
      serious testing for this feature while it bakes on trunk.
      
      As a follow-up I would like to try and see if estimate_num_insns or
      something else can give us a heuristic to turn this on for "large" functions.
      After all the number of incidences of this are quite low in real life,
      so may be we should look to restrict this use as much as possible on the
      grounds that this code generation implies an extra integer register for
      addressing for every floating point and vector constant and I don't think
      that's great in code that already may have high register pressure.
      
      Tested on aarch64-none-elf with no regressions. A previous
      version was bootstrapped and regression tested.
      
      Applied to trunk.
      
      regards
      Ramana
      
      2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
          	PR target/63304
          	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
          	nopcrelative_literal_loads.
          	(aarch64_classify_address): Likewise.
          	(aarch64_constant_pool_reload_icode): Define.
          	(aarch64_secondary_reload): Handle secondary reloads for
          	literal pools.
          	(aarch64_override_options): Handle nopcrelative_literal_loads.
          	(aarch64_classify_symbol): Handle nopcrelative_literal_loads.
          	* config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
          	Define.
          	(aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
          	* config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
          	* config/aarch64/predicates.md (aarch64_constant_pool_symref): New
          	predicate.
          	* doc/invoke.texi (mpc-relative-literal-loads): Document.
      
      From-SVN: r227748
      Ramana Radhakrishnan committed
    • re PR middle-end/67401 (Incorrect expand of __atomic_compare_exchange_8 using… · 641f1ab4
      re PR middle-end/67401 (Incorrect expand of __atomic_compare_exchange_8 using __sync_val_compare_and_swap_8)
      
      	PR middle-end/67401
      	* optabs.c (expand_atomic_compare_and_swap): Move result of emitting
      	sync_compare_and_swap_optab libcall to target_oval.
      
      From-SVN: r227746
      John David Anglin committed
    • c-opts.c (c_common_post_options): Set C++ standard earlier, before setting various warnings. · aa9f4b4c
      	* c-opts.c (c_common_post_options): Set C++ standard earlier, before
      	setting various warnings.
      
      From-SVN: r227744
      Marek Polacek committed
    • c-common.c (warn_for_sign_compare): Cast to unsigned when shifting a negative value. · aa256c4a
      	* c-common.c (warn_for_sign_compare): Cast to unsigned when shifting
      	a negative value.
      
      	* c-typeck.c (set_nonincremental_init_from_string): Use
      	HOST_WIDE_INT_M1U when shifting a negative value.
      
      	* rtlanal.c (split_double): Cast to unsigned when shifting a negative
      	value.
      	* sched-int.h (UNKNOWN_DEP_COST): Likewise.
      
      From-SVN: r227743
      Marek Polacek committed
    • PR28901 -Wunused-variable ignores unused const initialised variables in C · 0f876f22
      12 years ago it was decided that -Wunused-variable shouldn't warn about
      static const variables because some code used const static char rcsid[]
      strings which were never used but wanted in the code anyway. But as the
      bug points out this hides some real bugs. These days the usage of rcsids
      is not very popular anymore. So this patch changes the default to warn
      about unused static const variables in C with -Wunused-variable. And it
      adds a new option -Wno-unused-const-variable to turn this warning off.
      For C++ this new warning is off by default, since const variables can be
      used as #defines in C++. New testcases for the new defaults in C and C++
      are included testing the new warning and suppressing it with an unused
      attribute or using -Wno-unused-const-variable.
      
      gcc/ChangeLog
      
             PR c/28901
             * toplev.c (check_global_declaration): Check and use
             warn_unused_const_variable.
             * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
             (-Wunused-variable): Remove non-constant. For C implies
             -Wunused-const-variable.
             (-Wunused-const-variable): New.
      
      gcc/c-family/ChangeLog
      
             PR c/28901
             * c.opt (Wunused-variable): Option from common.opt.
             (Wunused-const-variable): New option.
      
      gcc/cp/ChangeLog
      
             PR c/28901
             * cp-objcp-common.c (cxx_warn_unused_global_decl): Remove hard-coded
             VAR_P TREE_READONLY override.
      
      gcc/testsuite/ChangeLog
      
             PR c/28901
             * g++.dg/warn/unused-variable-1.C: New test.
             * g++.dg/warn/unused-variable-2.C: Likewise.
             * gcc.dg/unused-4.c: Adjust warning for static const.
             * gcc.dg/unused-variable-1.c: New test.
             * gcc.dg/unused-variable-2.c: Likewise.
      
      From-SVN: r227742
      Mark Wielaard committed
    • match-and-simplify.texi: Update for changed syntax of inner ifs and the new switch expression. · cc099b03
      2015-09-14  Richard Biener  <rguenther@suse.de>
      
      	* doc/match-and-simplify.texi: Update for changed syntax
      	of inner ifs and the new switch expression.
      
      From-SVN: r227741
      Richard Biener committed
    • haswell.md: New file describing Haswell pipeline. · 64106a1a
      	* config/i386/haswell.md: New file describing Haswell pipeline.
      	* config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
      	haswell-like processors.
      	(ix86_reassociation_width): Increase reassociation width for 64-bit
      	Haswell processor family.
      	* config/i386/i386.md: Introduce haswell cpu and include new md file.
      
      From-SVN: r227740
      Yuri Rumyantsev committed
    • match-and-simplify.texi: Fixup some formatting issues and document the 's' flag. · 43f77706
      2015-09-14  Richard Biener  <rguenther@suse.de>
      
      	* doc/match-and-simplify.texi: Fixup some formatting issues
      	and document the 's' flag.
      
      From-SVN: r227739
      Richard Biener committed