Jakub Jelinek [Tue, 2 Feb 2016 19:44:16 +0000 (20:44 +0100)]
wide-int.cc (canonize_uhwi): New function.
* wide-int.cc (canonize_uhwi): New function.
(wi::divmod_internal): Use it.
From-SVN: r233092
H.J. Lu [Tue, 2 Feb 2016 19:22:04 +0000 (11:22 -0800)]
Add IA MCU tests for passing/returning of empty structures/unions
* gcc.target/i386/iamcu/test_empty_structs_and_unions.c: New test.
From-SVN: r233090
James Norris [Tue, 2 Feb 2016 19:17:37 +0000 (19:17 +0000)]
gimplify.c (omp_notice_variable): Add usage check.
gcc/
* gimplify.c (omp_notice_variable): Add usage check.
gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Add tests.
From-SVN: r233089
Alexander Monakov [Tue, 2 Feb 2016 18:24:25 +0000 (21:24 +0300)]
nvptx: do not use alternative spelling of unsigned comparisons
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 [Tue, 2 Feb 2016 18:18:43 +0000 (21:18 +0300)]
libgomp: fix target-31.c testcase
* testsuite/libgomp.c/target-31.c: Fix testcase.
From-SVN: r233087
Alexander Monakov [Tue, 2 Feb 2016 18:15:58 +0000 (21:15 +0300)]
libgomp: fix teams-3/4 testcases
* 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
Wilco Dijkstra [Tue, 2 Feb 2016 17:12:56 +0000 (17:12 +0000)]
Improve TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS target hook.
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 [Tue, 2 Feb 2016 17:03:05 +0000 (17:03 +0000)]
This patch adds support for the TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS hook.
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
James Norris [Tue, 2 Feb 2016 16:22:26 +0000 (16:22 +0000)]
* testsuite/libgomp.oacc-c-c++-common/declare-4.c: Fix clause.
From-SVN: r233082
Uros Bizjak [Tue, 2 Feb 2016 16:07:24 +0000 (17:07 +0100)]
re PR target/67032 (Geode optimizations incorrectly return -NaN)
PR target/67032
* config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
From-SVN: r233079
Senthil Kumar Selvaraj [Tue, 2 Feb 2016 16:01:45 +0000 (16:01 +0000)]
avr.c (avr_option_override): Set PARAM_ALLOW_STORE_DATA_RACES to 1.
* config/avr/avr.c (avr_option_override): Set
PARAM_ALLOW_STORE_DATA_RACES to 1.
From-SVN: r233078
Claudiu Zissulescu [Tue, 2 Feb 2016 15:24:22 +0000 (16:24 +0100)]
MAINTAINERS (Write After Approval): Add myself
2016-02-02 Claudiu Zissulescu <claziss@synopsys.com>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r233077
Richard Biener [Tue, 2 Feb 2016 15:19:32 +0000 (15:19 +0000)]
re PR tree-optimization/69595 (Bogus -Warray-bound warning due to missed optimization)
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
Thomas Schwinge [Tue, 2 Feb 2016 13:53:55 +0000 (14:53 +0100)]
Merge BUILT_IN_GOACC_HOST_DATA into BUILT_IN_GOACC_DATA_START
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 [Tue, 2 Feb 2016 12:48:41 +0000 (13:48 +0100)]
libgomp: Skip hsa offloading for OpenACC test cases
libgomp/
* testsuite/lib/libgomp.exp: Skip hsa offloading for OpenACC test
cases.
From-SVN: r233073
Thomas Schwinge [Tue, 2 Feb 2016 12:48:31 +0000 (13:48 +0100)]
libgomp: Use HSA_RUNTIME_LIB, HSA_KMT_LIB in the testsuite
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 [Tue, 2 Feb 2016 12:48:21 +0000 (13:48 +0100)]
libgomp: For hsa offloading, compilation is all handled by the target compiler
libgomp/
* plugin/configfrag.ac (offload_additional_options)
(offload_additional_lib_paths): Don't amend for hsa offloading.
* configure: Regenerate.
From-SVN: r233071
Thomas Schwinge [Tue, 2 Feb 2016 12:48:04 +0000 (13:48 +0100)]
libgomp: Don't configure for offloading target if we don't build the corresponding plugin
libgomp/
* plugin/configfrag.ac: Don't configure for offloading target if
we don't build the corresponding plugin.
* configure: Regenerate.
From-SVN: r233070
Richard Biener [Tue, 2 Feb 2016 12:39:36 +0000 (12:39 +0000)]
re PR tree-optimization/69606 (wrong code at -Os and above on x86_64-linux-gnu)
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
Yuri Rumyantsev [Tue, 2 Feb 2016 09:46:26 +0000 (09:46 +0000)]
re PR middle-end/68542 (10% 481.wrf performance regression)
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
Alan Modra [Tue, 2 Feb 2016 01:29:17 +0000 (11:59 +1030)]
[RS6000] lqarx and stqcx. registers
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
GCC Administrator [Tue, 2 Feb 2016 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233064
Alan Modra [Tue, 2 Feb 2016 00:01:16 +0000 (10:31 +1030)]
[RS6000] ABI_V4 init of toc section
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
Jakub Jelinek [Mon, 1 Feb 2016 22:39:31 +0000 (23:39 +0100)]
re PR rtl-optimization/69592 (Compile-time and memory-use hog in combine)
PR rtl-optimization/69592
* rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
(cached_nonzero_bits): Use it instead of ARITHMETIC_P.
(num_sign_bit_copies_binary_arith_p): New inline function.
(cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
* gcc.dg/pr69592.c: New test.
From-SVN: r233059
Jakub Jelinek [Mon, 1 Feb 2016 22:36:07 +0000 (23:36 +0100)]
re PR preprocessor/69543 (_Pragma does not apply within macro)
PR preprocessor/69543
PR c/69558
* c-pragma.c (handle_pragma_diagnostic): Pass input_location
instead of loc to control_warning_option.
* gcc.dg/pr69543.c: New test.
* gcc.dg/pr69558.c: New test.
From-SVN: r233058
Uros Bizjak [Mon, 1 Feb 2016 22:25:31 +0000 (23:25 +0100)]
* Add PR number.
From-SVN: r233057
Uros Bizjak [Mon, 1 Feb 2016 22:20:47 +0000 (23:20 +0100)]
anon5.C (dg-opetions): Use -gdwarf-2 instead of -g.
* g++.dg/other/anon5.C (dg-opetions): Use -gdwarf-2 instead of -g.
From-SVN: r233056
Jeff Law [Mon, 1 Feb 2016 22:05:58 +0000 (15:05 -0700)]
Fix PR # in last change
From-SVN: r233054
Jeff Law [Mon, 1 Feb 2016 22:03:57 +0000 (15:03 -0700)]
re PR testsuite/68580 (FAIL: c-c++-common/tsan/pr65400-1.c -O0 execution test)
PR tree-optimization/68580
* params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
* tree-ssa-threadbackward.c
(fsm_find_control_statement_thread_paths): Do not try to walk
through large PHI nodes.
From-SVN: r233053
Jakub Jelinek [Mon, 1 Feb 2016 20:37:49 +0000 (21:37 +0100)]
ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false when count is incremented above limit...
* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
when count is incremented above limit, don't analyze further
insns afterwards.
From-SVN: r233050
Martin Sebor [Mon, 1 Feb 2016 19:38:53 +0000 (19:38 +0000)]
Remove duplicate copy of the test body inadvertently inserted by patch.
From-SVN: r233045
Jakub Jelinek [Mon, 1 Feb 2016 19:14:59 +0000 (20:14 +0100)]
omp-low.c (oacc_parse_default_dims): Avoid -Wsign-compare warning...
* omp-low.c (oacc_parse_default_dims): Avoid
-Wsign-compare warning, make sure value fits into int
rather than just unsigned int.
From-SVN: r233044
Bin Cheng [Mon, 1 Feb 2016 17:17:47 +0000 (17:17 +0000)]
re PR tree-optimization/67921 ("internal compiler error: in build_polynomial_chrec, at tree-chrec.h:147" when using -fsanitize=undefined)
PR tree-optimization/67921
* fold-const.c (split_tree): New parameters. Convert pointer
type variable part to proper type before negating.
(fold_binary_loc): Pass new arguments to split_tree.
gcc/testsuite/ChangeLog
PR tree-optimization/67921
* c-c++-common/ubsan/pr67921.c: New test.
From-SVN: r233042
Nathan Sidwell [Mon, 1 Feb 2016 16:20:13 +0000 (16:20 +0000)]
nvptx.c (PTX_GANG_DEFAULT): New.
gcc/
* config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
(nvptx_goacc_validate_dims): Extend to handle global defaults.
* target.def (OACC_VALIDATE_DIMS): Extend documentation.
* doc/tm.texti: Rebuilt.
* doc/invoke.texi (fopenacc-dim): Document.
* lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
(append_compiler_options): Likewise.
* omp-low.c (oacc_default_dims, oacc_min_dims): New.
(oacc_parse_default_dims): New.
(oacc_validate_dims): Add USED arg. Select non-unity default when
possible.
(oacc_loop_fixed_partitions): Return mask of used partitions.
(oacc_loop_auto_partitions): Emit dump info.
(oacc_loop_partition): Return mask of used partitions.
(execute_oacc_device_lower): Parse default dimension arg. Adjust
loop partitioning and validation calls.
gcc/c-family/
* c.opt (fopenacc-dim=): New option.
gcc/fortran/
* lang.opt (fopenacc-dim=): New option.
libgomp/
* testsuite/libgomp.oacc-c-c++-common/loop-dim-default.c: New.
* testsuite/libgomp.oacc-fortran/routine-7.f90: Serialize loop.
From-SVN: r233041
Richard Biener [Mon, 1 Feb 2016 15:40:23 +0000 (15:40 +0000)]
re PR tree-optimization/69556 (forwprop4/match.pd undoing work from recip)
2016-02-01 Richard Biener <rguenther@suse.de>
PR middle-end/69556
* match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
* gcc.dg/tree-ssa/recip-8.c: New testcase.
From-SVN: r233040
Richard Biener [Mon, 1 Feb 2016 15:38:08 +0000 (15:38 +0000)]
re PR tree-optimization/69574 (gcc ICE at -O2 and -O3 on x86_64-linux-gnu in hide_evolution_in_other_loops_than_loop)
2016-02-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/69574
* tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
of asserting return chrec_dont_know.
* gcc.dg/torture/pr69574.c: New testcase.
From-SVN: r233039
Martin Liska [Mon, 1 Feb 2016 13:57:09 +0000 (14:57 +0100)]
Missing copyright for mem-stats header files.
* mem-stats-traits.h: Add copyright header.
* mem-stats.h: Likewise.
From-SVN: r233037
Richard Biener [Mon, 1 Feb 2016 12:39:04 +0000 (12:39 +0000)]
re PR tree-optimization/69579 (gcc ICE at -O3 and __sigsetjmp with “tree check: expected ssa_name, have integer_cst in compute_optimized_partition_bases”)
2016-02-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/69579
* tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
Do not propagate through abnormal PHI results.
* gcc.dg/setjmp-6.c: New testcase.
From-SVN: r233036
Bernd Edlinger [Mon, 1 Feb 2016 11:13:40 +0000 (11:13 +0000)]
Don't define guard macros when doing #include_next in math.h and stdlib.h
2016-02-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR libstdc++/69581
* include/c_compatibility/math.h: Move header guards.
* include/c_compatibility/stdlib.h: Likewise.
From-SVN: r233035
Eric Botcazou [Mon, 1 Feb 2016 11:04:22 +0000 (11:04 +0000)]
* postreload.c (reload_cse_simplify): Remove dead code.
From-SVN: r233034
Jakub Jelinek [Mon, 1 Feb 2016 08:47:27 +0000 (09:47 +0100)]
re PR rtl-optimization/69570 (if-conversion bug on i?86)
PR rtl-optimization/69570
* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
if there is more than one set, not if there is a single set.
* g++.dg/opt/pr69570.C: New test.
From-SVN: r233033
Richard Henderson [Mon, 1 Feb 2016 07:32:01 +0000 (23:32 -0800)]
re PR rtl-optimization/69535 (wrong code with -O -fno-tree-bit-ccp -fno-tree-reassoc due to use of uninitialised value)
PR rtl-opt/69535
* combine.c (make_compound_operation): When looking through a
subreg, make sure to re-extend to the width of the outer mode.
From-SVN: r233032
John David Anglin [Mon, 1 Feb 2016 01:12:23 +0000 (01:12 +0000)]
re PR testsuite/69584 (FAIL: gcc.dg/pr67964.c (test for excess errors))
PR testsuite/69584
* gcc.dg/tree-ssa/sra-17.c: Fix regexps to work on hpux.
* gcc.dg/tree-ssa/sra-18.c: Likewise.
From-SVN: r233030
John David Anglin [Mon, 1 Feb 2016 00:54:22 +0000 (00:54 +0000)]
re PR target/68741 (FAIL: tr1/8_c_compatibility/cstdio/functions.cc (test for excess errors))
PR target/68741
* inclhack.def (hpux_vsscanf): New fix.
* fixincl.x: Regenerated.
* tests/base/stdio.h [HPUX_VSSCANF_CHECK]: New test.
From-SVN: r233029
John David Anglin [Mon, 1 Feb 2016 00:38:17 +0000 (00:38 +0000)]
re PR debug/68244 (FAIL: g++.dg/parse/parens3.C -std=gnu++98 (internal compiler error))
PR debug/68244
* g++.dg/parse/parens3.C: Use register "4" on hppa.
From-SVN: r233028
John David Anglin [Mon, 1 Feb 2016 00:27:44 +0000 (00:27 +0000)]
vector-5.c: Add -fno-common option on hppa*-*-hpux*.
* gcc.dg/tree-ssa/vector-5.c: Add -fno-common option on hppa*-*-hpux*.
From-SVN: r233027
GCC Administrator [Mon, 1 Feb 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233026
Joseph Myers [Sun, 31 Jan 2016 15:54:00 +0000 (15:54 +0000)]
Regenerate .pot files.
gcc/po:
* gcc.pot: Regenerate.
libcpp/po:
* cpplib.pot: Regenerate.
From-SVN: r233023
Joseph Myers [Sun, 31 Jan 2016 15:48:42 +0000 (15:48 +0000)]
* fi.po: Update.
From-SVN: r233021
Jakub Jelinek [Sun, 31 Jan 2016 14:53:26 +0000 (15:53 +0100)]
re PR c++/68763 (ICE: in verify_unstripped_args, at cp/pt.c:1132)
PR c++/68763
* tree.c (strip_typedefs) [FUNCTION_TYPE]: Avoid building a new
function type if nothing is changing.
Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r233020
Jason Merrill [Sun, 31 Jan 2016 11:53:04 +0000 (06:53 -0500)]
re PR c++/69009 (ICE in instantiate_decl, at cp/pt.c:21511)
PR c++/69009
* pt.c (partial_specialization_p, impartial_args): New.
(instantiate_decl): Call impartial_args.
From-SVN: r233019
Jason Merrill [Sun, 31 Jan 2016 11:52:56 +0000 (06:52 -0500)]
Fix abi-tag16.C.
* mangle.c (maybe_check_abi_tags): New.
(write_guarded_var_name): Call it.
(mangle_ref_init_variable): Call check_abi_tags.
From-SVN: r233018
Jason Merrill [Sun, 31 Jan 2016 11:52:48 +0000 (06:52 -0500)]
Fix abi-tag17.C.
* pt.c (lookup_template_class_1): Don't share TYPE_ATTRIBUTES
between template and instantiation.
From-SVN: r233017
Paul Thomas [Sun, 31 Jan 2016 10:22:05 +0000 (10:22 +0000)]
re PR fortran/67564 (Segfault on sourced allocattion statement with class(*) arrays)
2016-01-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/67564
* trans-expr.c (gfc_conv_procedure_call): For the vtable copy
subroutines, add a string length argument, when the actual
argument is an unlimited polymorphic class object.
2016-01-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/67564
* gfortran.dg/allocate_with_source_17.f03: New test.
From-SVN: r233016
GCC Administrator [Sun, 31 Jan 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233015
Jakub Jelinek [Sat, 30 Jan 2016 18:04:13 +0000 (19:04 +0100)]
re PR middle-end/69546 (wrong code with -O and simple int128 arithmetics)
PR tree-optimization/69546
* wide-int.cc (wi::divmod_internal): For unsigned division
where both operands fit into uhwi, if o1 is 1 and o0 has
msb set, if divident_prec is larger than bits per hwi,
clear another quotient word and return 2 instead of 1.
Similarly for remainder with msb in HWI set, if dividend_prec
is larger than bits per hwi.
* gcc.dg/torture/pr69546.c: New test.
From-SVN: r233012
Paul Thomas [Sat, 30 Jan 2016 17:44:56 +0000 (17:44 +0000)]
re PR fortran/69566 ([OOP] Failure of SELECT TYPE with unlimited polymorphic function result)
2016-01-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/69566
* trans-expr.c (gfc_conv_procedure_call): Correct expression
for 'ulim_copy', which was missing a test for 'comp'.
2016-01-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/69566
* gfortran.dg/unlimited_polymorphic_25.f03: New test.
From-SVN: r233011
Martin Sebor [Sat, 30 Jan 2016 17:30:32 +0000 (17:30 +0000)]
PR r++/68490 - error initializing a structure with a flexible array membe
gcc/testsuite/ChangeLog:
2016-01-30 Martin Sebor <msebor@redhat.com>
PR c++/68490
* g++.dg/ext/flexary10.C: New test.
From-SVN: r233010
Dominique d'Humieres [Sat, 30 Jan 2016 14:07:19 +0000 (15:07 +0100)]
re PR fortran/66707 (Endless compilation on wrong usage of common)
2016-01-30 Dominique d'Humieres <dominiq@lps.ens.fr>
PR fortran/66707
gfortran.dg/common_23.f90: New test.
From-SVN: r233008
Bill Schmidt [Sat, 30 Jan 2016 01:18:43 +0000 (01:18 +0000)]
re PR target/65546 (FAIL: gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c)
2016-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/65546
* gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Correct
condition being checked, and disable it when the target supports
misaligned loads and stores.
From-SVN: r233006
GCC Administrator [Sat, 30 Jan 2016 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r233005
Martin Jambor [Fri, 29 Jan 2016 22:53:28 +0000 (23:53 +0100)]
[hsa] Atomic assess memory model fixes
2016-01-29 Martin Jambor <mjambor@suse.cz>
* hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
Use short lowercase names.
(get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
acq_rel one. Protect warning agains segfaults if
get_memory_order_name returns NULL.
(gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
with release semantics. Do not warn if get_memory_order already did.
(gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
semantics. Fix check for relaxed or acquire semantics. Do not warn
if get_memory_order already did.
From-SVN: r233000
Jakub Jelinek [Fri, 29 Jan 2016 20:37:25 +0000 (21:37 +0100)]
re PR debug/69518 (Flag -g causes "error: type variant has different TYPE_VFIELD")
PR debug/69518
* c-decl.c (finish_struct): Clear C_TYPE_INCOMPLETE_VARS in
all type variants, not just TYPE_MAIN_VARIANT.
* gcc.dg/torture/pr69518.c: New test.
From-SVN: r232998
Sebastian Pop [Fri, 29 Jan 2016 20:26:04 +0000 (20:26 +0000)]
document that isl-0.16 is supported
* config/isl.m4: Add comments about isl-0.16.
* configure: Regenerate.
gcc/
* doc/install.texi: Document that isl-0.16 is supported.
From-SVN: r232997
Vladimir Makarov [Fri, 29 Jan 2016 18:47:17 +0000 (18:47 +0000)]
re PR target/69299 (-mavx performance degradation with r232088)
2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
PR target/69299
* config/i386/constraints.md (Bm): Describe as special memory
constraint.
* doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
* genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
* genpreds.c (struct constraint_data): Add is_special_memory.
(have_special_memory_constraints, special_memory_start): New
static vars.
(special_memory_end): Ditto.
(add_constraint): Add new arg is_special_memory. Add code to
process its true value. Update have_special_memory_constraints.
(process_define_constraint): Pass the new arg.
(process_define_register_constraint): Ditto.
(choose_enum_order): Process special memory.
(write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
function insn_extra_special_memory_constraint.
(main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
* gensupport.c (process_rtx): Process
DEFINE_SPECIAL_MEMORY_CONSTRAINT.
* ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
* ira-lives.c (single_reg_class): Use
insn_extra_special_memory_constraint.
* ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
* lra-constraints.c (process_alt_operands): Ditto.
(curr_insn_transform): Use insn_extra_special_memory_constraint.
* recog.c (asm_operand_ok, preprocess_constraints): Process
CT_SPECIAL_MEMORY.
* reload.c (find_reloads): Ditto.
* rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
* stmt.c (parse_input_constraint): Use
insn_extra_special_memory_constraint.
From-SVN: r232993
H.J. Lu [Fri, 29 Jan 2016 18:03:42 +0000 (18:03 +0000)]
Revert revsion 229087 changes in lra-spills.c
r229087, which caused PR 69530, was supposed to fix PR 67609. r229458
has made r229087 unnecessary.
gcc/
PR target/69530
* lra-splill.c (lra_final_code_change): Revert r229087 by
removing all sub-registers.
gcc/testsuite/
PR target/69530
* gcc.target/i386/pr69530.c: New test.
From-SVN: r232991
Steve Ellcey [Fri, 29 Jan 2016 16:31:18 +0000 (16:31 +0000)]
re PR target/65604 (MIPS -fno-delayed-branch generates incorrect code with -mcheck-zero-division)
PR target/65604
* gcc.target/mips/div-delay.c: New test.
From-SVN: r232986
Steve Ellcey [Fri, 29 Jan 2016 16:29:58 +0000 (16:29 +0000)]
re PR target/65604 (MIPS -fno-delayed-branch generates incorrect code with -mcheck-zero-division)
PR target/65604
* config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
From-SVN: r232985
Jakub Jelinek [Fri, 29 Jan 2016 14:14:56 +0000 (15:14 +0100)]
re PR target/69551 (Wrong code with single element vector insert)
PR target/69551
* config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
SSE1, copy target into the temporary reg first before recursing
on it.
* gcc.target/i386/pr69551.c: New test.
From-SVN: r232982
Jakub Jelinek [Fri, 29 Jan 2016 14:07:40 +0000 (15:07 +0100)]
re PR target/66137 (ICE with -ffixed-ebp)
PR target/66137
* gcc.target/i386/pr66137.c: New test.
From-SVN: r232981
Andrew Bennett [Fri, 29 Jan 2016 13:54:53 +0000 (13:54 +0000)]
p5600-bonding.c (dg-options): Force the test to be always built for p5600.
testsuite/
2016-01-29 Andrew Bennett <andrew.bennett@imgtec.com>
* gcc.target/mips/p5600-bonding.c (dg-options): Force the test to be
always built for p5600.
* gcc.target/mips/mips.exp (mips-dg-options): Add support for the
isa=p5600 dg-option.
From-SVN: r232980
H.J. Lu [Fri, 29 Jan 2016 13:03:51 +0000 (13:03 +0000)]
Use vm in sse2_cvtps2pd<mask_name>
sse2_cvtps2pd<mask_name> has
(define_insn "sse2_cvtps2pd<mask_name>"
[(set (match_operand:V2DF 0 "register_operand" "=v")
(float_extend:V2DF
(vec_select:V2SF
(match_operand:V4SF 1 "vector_operand" "vBm")
(parallel [(const_int 0) (const_int 1)]))))]
The memory operand size is 8 bytes (2 floats). We should use vm instead
of vBm.
* config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
with vm.
From-SVN: r232979
Martin Jambor [Fri, 29 Jan 2016 12:47:56 +0000 (13:47 +0100)]
Add myself as a hsa maintainer
2016-01-29 Martin Jambor <mjambor@suse.cz>
* MAINTAINERS (hsa maintainers): Add myself.
From-SVN: r232978
Jonathan Wakely [Fri, 29 Jan 2016 12:29:42 +0000 (12:29 +0000)]
Test __cplusplus instead of __GXX_EXPERIMENTAL_CXX0X__
* ginclude/stdarg.h: Test __cplusplus instead of
__GXX_EXPERIMENTAL_CXX0X__.
From-SVN: r232977
Richard Biener [Fri, 29 Jan 2016 11:21:19 +0000 (11:21 +0000)]
re PR middle-end/69547 (no-op array initializer emits an empty loop)
2016-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/69547
* tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
Do not mark clobbers necessary.
(mark_all_reaching_defs_necessary_1): Likewise.
* g++.dg/tree-ssa/pr69547.C: New testcase.
From-SVN: r232976
Jakub Jelinek [Fri, 29 Jan 2016 11:14:42 +0000 (12:14 +0100)]
re PR debug/66869 (-Wunused-function no longer warns for static declarations without definition)
PR debug/66869
* decl.c (wrapup_globals_for_namespace): Warn about unused static
function declarations.
* g++.dg/warn/Wunused-function2.C: New test.
From-SVN: r232975
Jonathan Wakely [Fri, 29 Jan 2016 10:52:08 +0000 (10:52 +0000)]
Fix Cygwin bootstrap error due to TM symbols
PR libstdc++/69506
* config/os/newlib/os_defines.h (_GLIBCXX_USE_WEAK_REF): Define.
From-SVN: r232974
Dominik Vogt [Fri, 29 Jan 2016 10:17:03 +0000 (10:17 +0000)]
S/390: Use %qs in error messages.
gcc/ChangeLog
* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
declaration name with %qs and print it in both error messages. Also
fix indentation.
From-SVN: r232973
Dominik Vogt [Fri, 29 Jan 2016 10:12:11 +0000 (10:12 +0000)]
PR other/69006: S/390: Fix extra newlines after diagnostics.
gcc/ChangeLog
PR other/69006
* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
trailing blank line from error message.
From-SVN: r232972
Dominik Vogt [Fri, 29 Jan 2016 10:09:13 +0000 (10:09 +0000)]
S/390: Require a hardware vector support for test to succeed.
The test case works on S/390 too, but only with -march=z13 or later
(i.e. if Gcc can make use of hardware vector support). Otherwise the
optimization gets too complex. The attached patch forces Gcc to use
-march=z13 instead of xfail'ing the test on S/390.
gcc/testsuite/ChangeLog
* gcc.dg/tree-ssa/ssa-dom-cse-2.c: Require a hardware vector support for
test to succeed.
From-SVN: r232971
Jonathan Wakely [Fri, 29 Jan 2016 10:03:26 +0000 (10:03 +0000)]
PR c++/69462: Provide FLT_EVAL_METHOD and DECIMAL_DIG in float.h.
gcc/ChangeLog
PR c++/69462
* ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
for C++-11.
From-SVN: r232970
Marek Polacek [Fri, 29 Jan 2016 09:25:14 +0000 (09:25 +0000)]
re PR c++/69509 (infinite loop compiling a VLA in a recursive constexpr function)
PR c++/69509
PR c++/69516
* constexpr.c (cxx_eval_array_reference): Give the "array subscript
out of bound" error earlier.
* init.c (build_vec_init): Change NE_EXPR into GT_EXPR. Update the
commentary.
* g++.dg/ext/constexpr-vla2.C: New test.
* g++.dg/ext/constexpr-vla3.C: New test.
* g++.dg/ubsan/vla-1.C: Remove dg-shouldfail.
From-SVN: r232969
Richard Biener [Fri, 29 Jan 2016 08:36:04 +0000 (08:36 +0000)]
re PR middle-end/69537 (Incorrect -Wmaybe-uninitialized warning with enum variable)
2016-01-29 Richard Biener <rguenther@suse.de>
PR middle-end/69537
* match.pd: Allow all integral types when simplifying a
widening or sign-changing conversion.
* gcc.dg/uninit-21.c: New testcase.
From-SVN: r232968
Sebastian Pop [Fri, 29 Jan 2016 04:31:40 +0000 (04:31 +0000)]
PR69545: revert patch
Revert 'assert instead of silently failing code gen' that produces an ICE with isl-0.14.
From-SVN: r232966
Patrick Palka [Fri, 29 Jan 2016 01:51:03 +0000 (01:51 +0000)]
Fix cp_binding_level reuse logic
gcc/cp/ChangeLog:
* name-lookup.c (begin_scope): After reusing a cp_binding_level
structure, update free_binding_level before the structure's
level_chain field gets cleared, not after.
From-SVN: r232965
GCC Administrator [Fri, 29 Jan 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r232963
Jakub Jelinek [Thu, 28 Jan 2016 22:35:20 +0000 (23:35 +0100)]
re PR pch/68176 (all pch tests fail on eglibc systems (with bits/predefs.h))
PR pch/68176
* files.c (_cpp_find_file): Set file->implicit_preinclude even if
included from file->implicit_preinclude header.
From-SVN: r232956
Uros Bizjak [Thu, 28 Jan 2016 22:32:47 +0000 (23:32 +0100)]
re PR target/69459 (wrong code with -O2 and vector arithmetics @ x86_64)
PR target/69459
* config/i386/constraints.md (C): Only accept constant zero operand.
(BC): New constraint.
* config/i386/sse.md (*mov<mode>_internal): Use BC constraint
instead of C constraint.
* doc/md.texi (Machine Constraints): Update description
of C constraint.
testsuite/ChangeLog:
PR target/69459
* gcc.target/i386/pr69459.c: New test.
From-SVN: r232955
Steve Ellcey [Thu, 28 Jan 2016 22:28:04 +0000 (22:28 +0000)]
re PR target/68400 (ICE in change_address_1, at emit-rtl.c:2125)
PR target/68400
* gcc.target/mips/mips.exp (mips_option_groups): Add stack-protector.
* gcc.target/mips/pr68400.c: New test.
From-SVN: r232954
Steve Ellcey [Thu, 28 Jan 2016 22:25:55 +0000 (22:25 +0000)]
re PR target/68400 (ICE in change_address_1, at emit-rtl.c:2125)
2016-01-28 Steve Ellcey <sellcey@imgtec.com>
PR target/68400
* config/mips/mips.c (and_operands_ok): Add MIPS16 check.
From-SVN: r232952
Martin Sebor [Thu, 28 Jan 2016 21:05:39 +0000 (21:05 +0000)]
PR target/17381 - Unnecessary register move for float extend
2016-01-28 Martin Sebor <msebor@redhat.com>
PR target/17381
* gcc.target/powerpc/pr17381.c: New test.
From-SVN: r232947
Jakub Jelinek [Thu, 28 Jan 2016 21:01:51 +0000 (22:01 +0100)]
re PR middle-end/69542 (-fcompare-debug failure in simplify-rtx.c on i?86 since r232905)
PR middle-end/69542
* lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
non-debug insns.
* gcc.dg/torture/pr69542.c: New test.
From-SVN: r232946
Pat Haugen [Thu, 28 Jan 2016 20:34:49 +0000 (20:34 +0000)]
rs6000.c (output_cbranch): Don't statically predict branches if using guessed profile.
* config/rs6000/rs6000.c (output_cbranch): Don't statically predict
branches if using guessed profile.
From-SVN: r232945
H.J. Lu [Thu, 28 Jan 2016 18:23:24 +0000 (18:23 +0000)]
Fix optimize_isl dump
* graphite-optimize-isl.c (optimize_isl): Fix dump.
From-SVN: r232939
Richard Henderson [Thu, 28 Jan 2016 17:48:22 +0000 (09:48 -0800)]
re PR target/69305 (wrong code with -O and int128 @ aarch64)
PR target/69305
* config/aarch64/aarch64-modes.def (CC_Cmode): New
* config/aarch64/aarch64-protos.h: Update.
* config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
(aarch64_select_cc_mode): Add check for use of CC_Cmode.
(aarch64_get_condition_code_1): Handle CC_Cmode.
* config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
(*add<mode>3_compareC_cconly_imm): New.
(*add<mode>3_compareC_cconly): New.
(*add<mode>3_compareC_imm): New.
(add<mode>3_compareC): New.
(add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
to be first. Use aarch64_carry_operation.
(*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
(*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
(*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
(subti3): Use subdi3_compare1.
(*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
(sub<mode>3_compare1): New.
(*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
(*sub<mode>3_carryin): Use aarch64_borrow_operation.
(*subsi3_carryin_uxtw): Likewise.
(*ngc<mode>, *ngcsi_uxtw): Likewise.
(*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
* config/aarch64/iterators.md (DWI): New.
* config/aarch64/predicates.md (aarch64_carry_operation): New.
(aarch64_borrow_operation): New.
From-SVN: r232936
Abderrazek Zaafrani [Thu, 28 Jan 2016 16:39:18 +0000 (16:39 +0000)]
make debug comment more explicit
2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
* graphite-optimize-isl.c (optimize_isl): Print a different debug
message when isl does not return a valid schedule.
From-SVN: r232935
Sebastian Pop [Thu, 28 Jan 2016 16:39:10 +0000 (16:39 +0000)]
remove out of sync comments
* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
Remove comments from class declarations: they are already in the code
close by the defs.
From-SVN: r232934
Sebastian Pop [Thu, 28 Jan 2016 16:39:01 +0000 (16:39 +0000)]
use codegen_error_p
* graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call codegen_error_p.
(ternary_op_to_tree): Same.
(unary_op_to_tree): Same.
(nary_op_to_tree): Same.
(gcc_expression_from_isl_expr_op): Same.
(gcc_expression_from_isl_expression): Same.
(graphite_create_new_loop): Same.
(graphite_create_new_loop_guard): Same.
(build_iv_mapping): Same.
(graphite_create_new_guard): Same.
(translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
(translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
From-SVN: r232933
Sebastian Pop [Thu, 28 Jan 2016 16:38:52 +0000 (16:38 +0000)]
assert instead of silently failing code gen
* graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert instead of
setting codegen_error to fail codegen.
From-SVN: r232932
Jason Merrill [Thu, 28 Jan 2016 15:45:44 +0000 (10:45 -0500)]
* tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
From-SVN: r232931