1. 03 Feb, 2016 7 commits
  2. 02 Feb, 2016 24 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
    • libgomp: Use HSA_RUNTIME_LIB, HSA_KMT_LIB in the testsuite · 033ff3d1
      	libgomp/
      	* plugin/configfrag.ac (HSA_KMT_LIB, HSA_KMT_LDFLAGS): New
      	variables.
      	* testsuite/libgomp-test-support.exp.in (hsa_runtime_lib)
      	(hsa_kmt_lib): Set variables.
      	* testsuite/lib/libgomp.exp (libgomp_init): Use them to amend
      	always_ld_library_path.
      	* Makefile.in: Regenerate.
      	* configure: Likewise.
      	* testsuite/Makefile.in: Likewise.
      
      From-SVN: r233072
      Thomas Schwinge committed
    • libgomp: For hsa offloading, compilation is all handled by the target compiler · 4a88d9b7
      	libgomp/
      	* plugin/configfrag.ac (offload_additional_options)
      	(offload_additional_lib_paths): Don't amend for hsa offloading.
      	* configure: Regenerate.
      
      From-SVN: r233071
      Thomas Schwinge committed
    • libgomp: Don't configure for offloading target if we don't build the corresponding plugin · 41d809d3
      	libgomp/
      	* plugin/configfrag.ac: Don't configure for offloading target if
      	we don't build the corresponding plugin.
      	* configure: Regenerate.
      
      From-SVN: r233070
      Thomas Schwinge committed
    • re PR tree-optimization/69606 (wrong code at -Os and above on x86_64-linux-gnu) · 9dc03c97
      2016-02-02  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/69606
      	* tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
      	info on the result before moving a stmt.
      
      	* gcc.dg/torture/pr69606.c: New testcase.
      
      From-SVN: r233069
      Richard Biener committed
    • re PR middle-end/68542 (10% 481.wrf performance regression) · 2d4dc223
      gcc/
      
      2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
      
      	PR middle-end/68542
      	* config/i386/i386.c (ix86_expand_branch): Add support for conditional
      	branch with vector comparison.
      	* config/i386/sse.md (VI48_AVX): New mode iterator.
      	(define_expand "cbranch<mode>4): Add support for conditional branch
      	with vector comparison.
      	* tree-vect-loop.c (optimize_mask_stores): New function.
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
      	has_mask_store field of vect_info.
      	* tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
      	vectorized loops having masked stores after vec_info destroy.
      	* tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
      	correspondent macros.
      	(optimize_mask_stores): Add prototype.
      
      gcc/testsuite
      
      2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
      
      	PR middle-end/68542
      	* gcc.dg/vect/vect-mask-store-move-1.c: New test.
      	* gcc.target/i386/avx2-vect-mask-store-move1.c: New test.
      
      From-SVN: r233068
      Yuri Rumyantsev committed
    • [RS6000] lqarx and stqcx. registers · 65c98fde
      lqarx RT and stqcx. RS are valid only with even numbered gprs.  The
      predicate to enforce this happens to allow a loophole, closed by this
      patch.
      
      	PR target/69548
      gcc/
      	* config/rs6000/predicates.md (quad_int_reg_operand): Don't
      	allow subregs.
      gcc/testsuite/
      	* gcc.target/powerpc/pr69548.c: New test.
      
      From-SVN: r233065
      Alan Modra committed
    • Daily bump. · 0b256e74
      From-SVN: r233064
      GCC Administrator committed
    • [RS6000] ABI_V4 init of toc section · 90c8d971
      Since 4c4a180d lto has turned off flag_pic when linking a fixed
      position executable.  So flag_pic is zero in rs6000_file_start.
      However, when we get to actually emitting code, flag_pic may be on
      again.  This results in undefined references to ".LCTOC1".
      
      	PR target/68662
      	* config/rs6000/rs6000.c (need_toc_init): New var, set it
      	whenever toc_label_name used.
      	(rs6000_file_start): Don't set up toc section here,
      	(rs6000_output_function_epilogue): do so here instead,
      	(rs6000_xcoff_file_start): and here.
      	* config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
      	(load_toc_aix_di): Likewise.
      
      From-SVN: r233061
      Alan Modra committed
  3. 01 Feb, 2016 9 commits