1. 04 Feb, 2016 8 commits
    • [ARM] PR target/65932: stop changing signedness in PROMOTE_MODE · 8644f49f
      2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
      
      	PR target/65932
      	PR target/67714
      	* config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
      	HImode.
      
      From-SVN: r233130
      Jim Wilson committed
    • arm-c.c (arm_reset_previous_fndecl): Style fix and typo. · e8449dec
      2016-02-04  Christian Bruel  <christian.bruel@st.com>
      
      	* config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
      	* config/arm/arm.c (arm_set_current_function): Likewise.
      
      From-SVN: r233129
      Christian Bruel committed
    • re PR target/69454 (ix86_expand_prologue internal compiler error: Segmentation fault) · 61f727fe
      	PR target/69454
      	* config/i386/i386.c (convert_scalars_to_vector): Remove
      	stack alignment fixes.
      	(ix86_option_override_internal): Disable TARGET_STV if stack
      	might not be aligned enough.
      	(ix86_minimum_alignment): Assert that TARGET_STV is false.
      
      	* gcc.target/i386/pr69454-1.c: New test.
      	* gcc.target/i386/pr69454-2.c: New test.
      
      From-SVN: r233128
      Jakub Jelinek committed
    • Disable auto prefetcher for -march=znver1. · 07d88205
      2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
      
              * gcc/config/i386/x86-tune.def: Disable default prefetching
              for -march=znver1.
      
      From-SVN: r233127
      Victoria Stepanyan committed
    • PR c++/69251 - [6 Regression] ICE in unify_array_domain on a flexible array · 05dd97db
      PR c++/69251 - [6 Regression] ICE in unify_array_domain on a flexible array
                     member
      PR c++/69253 - [6 Regression] ICE in cxx_incomplete_type_diagnostic initializing
                     a flexible array member with empty string
      PR c++/69290 - [6 Regression] ICE on invalid initialization of a flexible array
                     member
      PR c++/69277 - [6 Regression] ICE mangling a flexible array member
      PR c++/69349 - template substitution error for flexible array members
      
      gcc/testsuite/ChangeLog:
      2016-02-03  Martin Sebor  <msebor@redhat.com>
      
      	PR c++/69251
      	PR c++/69253
      	PR c++/69290
      	PR c++/69277
      	PR c++/69349
      	* g++.dg/ext/flexarray-mangle-2.C: New test.
      	* g++.dg/ext/flexarray-mangle.C: New test.
      	* g++.dg/ext/flexarray-subst.C: New test.
      	* g++.dg/ext/flexary11.C: New test.
      	* g++.dg/ext/flexary12.C: New test.
      	* g++.dg/ext/flexary13.C: New test.
      	* g++.dg/ext/flexary14.C: New test.
      	* g++.dg/other/dump-ada-spec-2.C: Adjust.
      
      gcc/cp/ChangeLog:
      2016-02-03  Martain Sebor  <msebor@redhat.com>
      
      	PR c++/69251
      	PR c++/69253
      	PR c++/69290
      	PR c++/69277
      	PR c++/69349
      	* class.c (walk_subobject_offsets): Avoid testing the upper bound
      	of a flexible array member for equality to null.
      	(find_flexarrays): Remove spurious whitespace introduced in r231665.
      	(diagnose_flexarrays): Avoid checking the upper bound of arrays.
      	(check_flexarrays): Same.
      	* decl.c (compute_array_index_type): Avoid special case for flexible
      	array members.
      	(grokdeclarator): Avoid calling compute_array_index_type for flexible
      	array members.
      	* error.c (dump_type_suffix): Revert changes introduced in r231665
      	and rendered unnecessary by the changes above.
      	* pt.c (tsubst):  Same.
      	* tree.c (build_ctor_subob_ref): Handle flexible array members.
      	* typeck2.c (digest_init_r): Revert changes introduced in r231665.
      	(process_init_constructor_array): Same.
      	(process_init_constructor_record): Same.
      
      From-SVN: r233126
      Martin Sebor committed
    • Define check_union_passing6 only for CHECK_FLOAT128 · dac2fc29
      	* gcc.target/i386/iamcu/test_passing_unions.c (check_union_passing6):
      	Define only if CHECK_FLOAT128 is defined.
      	(main): Properly initialize u5.
      
      From-SVN: r233124
      H.J. Lu committed
    • re PR target/69461 (ICE in lra_set_insn_recog_data, at lra.c:964) · 5a01e0c7
      2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR target/69461
      	* config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
      	in validating fused toc addresses.
      
      
      Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com>
      
      From-SVN: r233120
      Michael Meissner committed
    • Daily bump. · 20279ed0
      From-SVN: r233119
      GCC Administrator committed
  2. 03 Feb, 2016 16 commits
  3. 02 Feb, 2016 16 commits
    • This testcase fails on 32-bit powerpc-linux with · a8394fa0
      vector-compare-4.c
      
      This testcase fails on 32-bit powerpc-linux with
      
      Excess errors:
      /home/segher/src/gcc/gcc/testsuite/c-c++-common/vector-compare-4.c:31:1: warning: GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee
      
      Fix this as in vector-compare-2.c .
      
      
      testsuite/
      	* c-c++-common/vector-compare-4.c: Prune "non-standard ABI extension"
      	warning.
      
      From-SVN: r233093
      Segher Boessenkool committed
    • wide-int.cc (canonize_uhwi): New function. · 321a2b65
      	* wide-int.cc (canonize_uhwi): New function.
      	(wi::divmod_internal): Use it.
      
      From-SVN: r233092
      Jakub Jelinek committed
    • Add IA MCU tests for passing/returning of empty structures/unions · f3baa1d3
      	* gcc.target/i386/iamcu/test_empty_structs_and_unions.c: New test.
      
      From-SVN: r233090
      H.J. Lu committed
    • gimplify.c (omp_notice_variable): Add usage check. · eb077516
      	gcc/
      	* gimplify.c (omp_notice_variable): Add usage check.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/routine-5.c: Add tests.
      
      From-SVN: r233089
      James Norris committed
    • nvptx: do not use alternative spelling of unsigned comparisons · 578fb225
      gcc/ChangeLog:
      	* config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
              like LE, GE, LT, GT when emitting relational operator.
      
      gcc/testsuite/ChangeLog:
      	* gcc.target/nvptx/unsigned-cmp.c: New test.
      
      From-SVN: r233088
      Alexander Monakov committed
    • libgomp: fix target-31.c testcase · 5854ee30
      	* testsuite/libgomp.c/target-31.c: Fix testcase.
      
      From-SVN: r233087
      Alexander Monakov committed
    • libgomp: fix teams-3/4 testcases · e70b6ad7
      	* testsuite/libgomp.c/examples-4/teams-3.c: Add missing reduction
      	clause.
      	* testsuite/libgomp.c/examples-4/teams-4.c: Likewise.
      	* testsuite/libgomp.fortran/examples-4/teams-3.f90: Add missing
      	reduction and map clauses.
      	* testsuite/libgomp.fortran/examples-4/teams-4.f90: Likewise.
      
      From-SVN: r233086
      Alexander Monakov committed
    • Improve TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS target hook. · 31e2b5a3
      Improve TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS target hook.  It turns out there
      is another case where the register allocator uses the union of register classes
      without checking that the cost of the resulting register class is lower than
      both (see https://gcc.gnu.org/ml/gcc-patches/2015-12/msg01765.html ).  This
      happens when the cost of the best and alternative class are both lower than the
      memory cost.  In this case we typically end up with ALL_REGS as the allocno
      class, which almost invariably results in bad allocations with many redundant
      int<->FP moves (which are expensive on various cores).  AArch64 is affected by
      this significantly due to supporting many scalar integer operations in SIMD.
      
      Currently the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook forces the class to
      GENERAL_REGS if the allocno class is ALL_REGS and the register has an integer
      mode.  This is bad if the best class happens to be FP_REGS.  To handle this
      case as well, an extra argument is needed in the hook to pass the best class.
      If the allocno class is ALL_REGS, but the best class isn't, we use the best
      class instead (rather than using the mode to force to GENERAL_REGS or FP_REGS).
      
      Previously this might happen:
      
      r79: preferred FP_REGS, alternative GENERAL_REGS, allocno GENERAL_REGS
           a1 (r79,l0) best GENERAL_REGS, allocno GENERAL_REGS
      
      a1(r79,l0) costs: CALLER_SAVE_REGS:5000,5000 GENERAL_REGS:5000,5000
                        FP_LO_REGS:0,0 FP_REGS:0,0 ALL_REGS:10000,10000 MEM:9000,9000
      
      The proposed allocno is ALL_REGS (despite having the highest cost!) and is then
      forced by the hook to GENERAL_REGS because r79 has integer mode.  However
      FP_REGS has the lowest cost.  After this patch the choice is as follows:
      
      r79: preferred FP_REGS, alternative GENERAL_REGS, allocno FP_REGS
           a1 (r79,l0) best FP_REGS, allocno FP_REGS
      
      As a result it is now no longer a requirement to use register move costs that 
      are larger than the memory move cost.  So it will be feasible to use realistic
      costs for both without a huge penalty.
      
      
      2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
      
          gcc/
              * ira-costs.c (find_costs_and_classes): Add extra argument.
              * target.def (ira_change_pseudo_allocno_class): Add parameter.
              * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
              * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
              * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
              Add best_class parameter, and return it if not ALL_REGS.
              * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
              Add parameter.
              * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
              Update target hook.
      
      From-SVN: r233084
      Wilco Dijkstra committed
    • This patch adds support for the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook. · c64f7d37
      When the cost of GENERAL_REGS and FP_REGS is identical, the register allocator
      always uses ALL_REGS even when it has a much higher cost. The hook changes the
      class to either FP_REGS or GENERAL_REGS depending on the mode of the register.
      This results in better register allocation overall, fewer spills and reduced
      codesize - particularly in SPEC2006 gamess.
      
      2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
      
          gcc/
      	* config/aarch64/aarch64.c
      	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
      	(aarch64_ira_change_pseudo_allocno_class): New function.
      
          gcc/testsuite/
      	* gcc.target/aarch64/scalar_shift_1.c
      	(test_corners_sisd_di): Improve force to SIMD register.
      	(test_corners_sisd_si): Likewise.
      	* gcc.target/aarch64/vect-ld1r-compile-fp.c:
      	Remove scan-assembler check for ldr.
      
      From-SVN: r233083
      Wilco Dijkstra committed
    • re PR target/67032 (Geode optimizations incorrectly return -NaN) · 0de7e22c
      	PR target/67032
      	* config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
      
      From-SVN: r233079
      Uros Bizjak committed
    • avr.c (avr_option_override): Set PARAM_ALLOW_STORE_DATA_RACES to 1. · c7088aea
      	* config/avr/avr.c (avr_option_override): Set
      	PARAM_ALLOW_STORE_DATA_RACES to 1.
      
      From-SVN: r233078
      Senthil Kumar Selvaraj committed
    • MAINTAINERS (Write After Approval): Add myself · 80cfaff8
      2016-02-02  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r233077
      Claudiu Zissulescu committed
    • re PR tree-optimization/69595 (Bogus -Warray-bound warning due to missed optimization) · 90c6f26c
      2016-02-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/69595
      	* match.pd: Add range test simplifications to true/false.
      
      	* gcc.dg/Warray-bounds-17.c: New testcase.
      
      From-SVN: r233076
      Richard Biener committed
    • Merge BUILT_IN_GOACC_HOST_DATA into BUILT_IN_GOACC_DATA_START · 18f60146
      	gcc/
      	* omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
      	* omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
      	instead.
      	libgomp/
      	* libgomp.map (GOACC_2.0): Remove GOACC_host_data.
      	* oacc-parallel.c (GOACC_host_data): Remove function definition.
      
      From-SVN: r233074
      Thomas Schwinge committed
    • libgomp: Skip hsa offloading for OpenACC test cases · 1a06f5e6
      	libgomp/
      	* testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
      	cases.
      
      From-SVN: r233073
      Thomas Schwinge committed