gcc.git
8 years ago* genmddump.c (main): Convert argv from char ** to const char **.
Jakub Jelinek [Fri, 6 May 2016 20:42:10 +0000 (22:42 +0200)]
* genmddump.c (main): Convert argv from char ** to const char **.

From-SVN: r235985

8 years agoi386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_a...
Uros Bizjak [Fri, 6 May 2016 18:24:40 +0000 (20:24 +0200)]
i386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_any_fp_reg_operand as...

* config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
* config/i386/predicates.md (register_and_not_any_fp_reg_operand):
Remove unused predicate.
(register_and_not_fp_reg_operand): Ditto.

From-SVN: r235983

8 years agoescape: Add skeleton for gc analysis.
Chris Manghane [Fri, 6 May 2016 17:37:55 +0000 (17:37 +0000)]
escape: Add skeleton for gc analysis.

    Introduces a skeleton replacement escape analysis
    which contains four different phases extracted from the escape
    analysis implementation in gc/esc.go.  Also introduces the
    Escape_context each phase uses to make decisions.

    Reviewed-on: https://go-review.googlesource.com/18220

From-SVN: r235982

8 years agoAdd OVERRIDE and FINAL macros to coretypes.h
David Malcolm [Fri, 6 May 2016 17:02:01 +0000 (17:02 +0000)]
Add OVERRIDE and FINAL macros to coretypes.h

gcc/ChangeLog:
* coretypes.h (OVERRIDE): New macro.
(FINAL): New macro.

From-SVN: r235981

8 years agotree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case, allow coalescing...
Eric Botcazou [Fri, 6 May 2016 15:54:15 +0000 (15:54 +0000)]
tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case, allow coalescing if the types are compatible.

* tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
allow coalescing if the types are compatible.

From-SVN: r235980

8 years agore PR target/70941 (Test miscompiled with -O2.)
Jakub Jelinek [Fri, 6 May 2016 15:23:56 +0000 (17:23 +0200)]
re PR target/70941 (Test miscompiled with -O2.)

PR middle-end/70941
* gcc.dg/torture/pr70941.c (abort): Remove prototype.
(a, b, c, d): Change type from char to signed char.
(main): Compare against (signed char) -1634678893 instead of
hardcoded -109.  Use __builtin_abort instead of abort.

From-SVN: r235978

8 years agoMove name_to_pass_map into class pass_manager
David Malcolm [Fri, 6 May 2016 15:18:59 +0000 (15:18 +0000)]
Move name_to_pass_map into class pass_manager

gcc/ChangeLog:
* pass_manager.h (pass_manager::register_pass_name): New method.
(pass_manager::get_pass_by_name): New method.
(pass_manager::create_pass_tab): New method.
(pass_manager::m_name_to_pass_map): New field.
* passes.c (name_to_pass_map): Delete global in favor of field
"m_name_to_pass_map" of pass_manager.
(register_pass_name): Rename from a function to...
(pass_manager::register_pass_name): ...this method, updating
for renaming of global "name_to_pass_map" to field
"m_name_to_pass_map".
(create_pass_tab): Rename from a function to...
(pass_manager::create_pass_tab): ...this method, updating
for renaming of global "name_to_pass_map" to field.
(get_pass_by_name): Rename from a function to...
(pass_manager::get_pass_by_name): ...this method.
(enable_disable_pass): Convert use of get_pass_by_name to
a method call, locating the pass_manager singleton.

From-SVN: r235977

8 years agoMake argv const char ** in read_md_files etc
David Malcolm [Fri, 6 May 2016 15:14:05 +0000 (15:14 +0000)]
Make argv const char ** in read_md_files etc

gcc/ChangeLog:
* genattr-common.c (main): Convert argv from
char ** to const char **.
* genattr.c (main): Likewise.
* genattrtab.c (main): Likewise.
* genautomata.c (initiate_automaton_gen): Likewise.
(main): Likewise.
* gencodes.c (main): Likewise.
* genconditions.c (main): Likewise.
* genconfig.c (main): Likewise.
* genconstants.c (main): Likewise.
* genemit.c (main): Likewise.
* genenums.c (main): Likewise.
* genextract.c (main): Likewise.
* genflags.c (main): Likewise.
* genmddeps.c (main): Likewise.
* genopinit.c (main): Likewise.
* genoutput.c (main): Likewise.
* genpeep.c (main): Likewise.
* genpreds.c (main): Likewise.
* genrecog.c (main): Likewise.
* gensupport.c (init_rtx_reader_args_cb): Likewise.
(init_rtx_reader_args): Likewise.
* gensupport.h (init_rtx_reader_args_cb): Likewise.
(init_rtx_reader_args): Likewise.
* gentarget-def.c (main): Likewise.
* read-md.c (read_md_files): Likewise.
* read-md.h (read_md_files): Likewise.

From-SVN: r235976

8 years agoi386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_a...
Uros Bizjak [Fri, 6 May 2016 14:34:58 +0000 (16:34 +0200)]
i386.md (int cmove peephole2s): Use general_reg_operand instead of register_and_not_any_fp_reg_operand as...

* config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
* config/i386/predicates.md (register_and_not_any_fp_reg_operand):
Remove unused predicate.
(register_and_not_fp_reg_operand): Ditto.

From-SVN: r235975

8 years agoFix memory leak in tree-if-conv.c
Martin Liska [Fri, 6 May 2016 14:26:23 +0000 (16:26 +0200)]
Fix memory leak in tree-if-conv.c

* tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
instead of vec as the vector is local to the function.

From-SVN: r235974

8 years agosse.md (*<code>v8hi3, [...]): Add avx512bw alternative.
Jakub Jelinek [Fri, 6 May 2016 13:16:00 +0000 (15:16 +0200)]
sse.md (*<code>v8hi3, [...]): Add avx512bw alternative.

* config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
avx512bw alternative.

From-SVN: r235973

8 years agosse.md (<mask_codefor>ashr<mode>3<mask_name>): Move before the ashr<mode>3 pattern.
Jakub Jelinek [Fri, 6 May 2016 13:15:24 +0000 (15:15 +0200)]
sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move before the ashr<mode>3 pattern.

* config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
before the ashr<mode>3 pattern.

* gcc.target/i386/avx512bw-vpsraw-3.c: New test.
* gcc.target/i386/avx512vl-vpsrad-3.c: New test.

From-SVN: r235972

8 years agosse.md (*avx2_pmaddwd, [...]): Use v instead of x in vex or maybe_vex alternatives...
Jakub Jelinek [Fri, 6 May 2016 13:14:34 +0000 (15:14 +0200)]
sse.md (*avx2_pmaddwd, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

* gcc.target/i386/avx512bw-vpmaddwd-3.c: New test.

From-SVN: r235971

8 years agosse.md (*vec_extractv4sf_0, [...]): Use v instead of x in vex or maybe_vex alternativ...
Jakub Jelinek [Fri, 6 May 2016 13:13:09 +0000 (15:13 +0200)]
sse.md (*vec_extractv4sf_0, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
*vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
in vex or maybe_vex alternatives, use maybe_evex instead of vex
in prefix.

From-SVN: r235970

8 years agosse.md (*vec_concatv2sf_sse4_1, [...]): Use v instead of x in vex or maybe_vex altern...
Jakub Jelinek [Fri, 6 May 2016 13:12:32 +0000 (15:12 +0200)]
sse.md (*vec_concatv2sf_sse4_1, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

From-SVN: r235969

8 years agosse.md (sse_shufps_<mode>, [...]): Use v instead of x in vex or maybe_vex alternatives...
Jakub Jelinek [Fri, 6 May 2016 13:11:56 +0000 (15:11 +0200)]
sse.md (sse_shufps_<mode>, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
alternatives, use maybe_evex instead of vex in prefix.

From-SVN: r235968

8 years ago* config/i386/sse.md (vec_interleave_lowv4sf,
Jakub Jelinek [Fri, 6 May 2016 13:11:17 +0000 (15:11 +0200)]
* config/i386/sse.md (vec_interleave_lowv4sf,

*vec_interleave_highv2df, *vec_interleave_lowv2df): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

From-SVN: r235967

8 years agosse.md (sse_movhlps, [...]): Use v instead of x in vex or maybe_vex alternatives...
Jakub Jelinek [Fri, 6 May 2016 13:10:39 +0000 (15:10 +0200)]
sse.md (sse_movhlps, [...]): Use v instead of x in vex or maybe_vex alternatives...

* config/i386/sse.md (sse_movhlps, sse_movlhps): Use
v instead of x in vex or maybe_vex alternatives, use
maybe_evex instead of vex in prefix.

From-SVN: r235966

8 years agosse.md (*avx_cvtpd2dq256_2, [...]): Use v constraint instead of x.
Jakub Jelinek [Fri, 6 May 2016 13:09:53 +0000 (15:09 +0200)]
sse.md (*avx_cvtpd2dq256_2, [...]): Use v constraint instead of x.

* config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
v constraint instead of x.

From-SVN: r235965

8 years agogimple.c (gimple_call_same_target_p): Unique functions are eq.
Nathan Sidwell [Fri, 6 May 2016 13:02:42 +0000 (13:02 +0000)]
gimple.c (gimple_call_same_target_p): Unique functions are eq.

* gimple.c (gimple_call_same_target_p): Unique functions are eq.
* tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
equality first.

From-SVN: r235964

8 years agore PR tree-optimization/70948 (r235622 caused gcc.c-torture/execute/va-arg-pack-1...
Richard Biener [Fri, 6 May 2016 12:53:26 +0000 (12:53 +0000)]
re PR tree-optimization/70948 (r235622 caused gcc.c-torture/execute/va-arg-pack-1.c execution failure AArch64)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70948
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
Properly clobber all fields of va_list for __builtin_va_start.

From-SVN: r235963

8 years agore PR debug/70935 (ICE: verify_ssa failed (error: definition in block 9 does not...
Yuri Rumyantsev [Fri, 6 May 2016 12:07:25 +0000 (12:07 +0000)]
re PR debug/70935 (ICE: verify_ssa failed (error: definition in block 9 does not dominate use in block 12) w/ -O3 -g)

gcc/

2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR debug/70935
* tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
loop latch destination.

gcc/testsuite/

2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR debug/70935
* gcc.dg/torture/pr70935.c: New test.

From-SVN: r235962

8 years agoManual changes to GCC coding style in tree-ssa-uninit.c
Martin Liska [Fri, 6 May 2016 11:27:28 +0000 (13:27 +0200)]
Manual changes to GCC coding style in tree-ssa-uninit.c

* tree-ssa-uninit.c: Apply manual changes
to the GNU coding style.
(prune_uninit_phi_opnds): Rename from
prune_uninit_phi_opnds_in_unrealizable_paths.

From-SVN: r235961

8 years agosh.opt (madjust-unroll, [...]): Remove deprecated options.
Oleg Endo [Fri, 6 May 2016 11:05:49 +0000 (11:05 +0000)]
sh.opt (madjust-unroll, [...]): Remove deprecated options.

gcc/
* config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
mspace): Remove deprecated options.
* doc/invoke.texi (SH options): Remove -mspace.

From-SVN: r235960

8 years agosh.md (ic_invalidate_line_sh4a): Fix insn length.
Oleg Endo [Fri, 6 May 2016 10:35:42 +0000 (10:35 +0000)]
sh.md (ic_invalidate_line_sh4a): Fix insn length.

gcc/
* config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.

From-SVN: r235957

8 years agosh.md (*cmpeqsi_t): Remove combine insn pattern and similar corresponding combine...
Oleg Endo [Fri, 6 May 2016 10:29:33 +0000 (10:29 +0000)]
sh.md (*cmpeqsi_t): Remove combine insn pattern and similar corresponding combine split pattern.

gcc/
* config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
corresponding combine split pattern.

From-SVN: r235956

8 years agoFix ChangeLog formatting.
Oleg Endo [Fri, 6 May 2016 10:23:48 +0000 (10:23 +0000)]
Fix ChangeLog formatting.

From-SVN: r235955

8 years agore PR target/58219 ([SH] mov.l insn length is wrong on SH2A)
Oleg Endo [Fri, 6 May 2016 10:20:13 +0000 (10:20 +0000)]
re PR target/58219 ([SH] mov.l insn length is wrong on SH2A)

gcc/
PR target/58219
* config/sh/predicates.md (long_displacement_mem_operand): New.
* config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
Add movi20, movi20s alternatives.  Adjust length attribute for
alternatives.
(movsi_ie): Allow for any FPU.  Adjust length attribute for
alternatives.
(movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
attribute for alternatives.
(*mov<mode>): Use long_displacement_mem_operand for length attribute.
(*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
length attribute for alternatives.

gcc/testsuite/
PR target/58219
*gcc.target/sh/pr58219.c: New tests.

From-SVN: r235954

8 years agore PR tree-optimization/70960 (ICE: tree check: expected ssa_name, have integer_cst...
Richard Biener [Fri, 6 May 2016 10:18:59 +0000 (10:18 +0000)]
re PR tree-optimization/70960 (ICE: tree check: expected ssa_name, have integer_cst in ifcvt_walk_pattern_tree, at tree-if-conv.c:2465)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR tree-optimization/70960
* tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.

* gfortran.fortran-torture/compile/pr70960.f90: New testcase.

From-SVN: r235953

8 years agore PR target/52933 (SH Target: Use div0s for integer sign comparisons)
Oleg Endo [Fri, 6 May 2016 09:52:35 +0000 (09:52 +0000)]
re PR target/52933 (SH Target: Use div0s for integer sign comparisons)

gcc/
PR target/52933
* config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
* config/sh/sh.c (sh_rtx_costs): Add another div0s case.

gcc/testsuite/
PR target/52933
* gcc.target/sh/pr52933-1.c (test_31, test_32, test_33, test_34,
test_35, test_36, test_37, test_38, test_39, test_40): New sub-tests.
Adjust expected instruction counts.
* gcc.target/sh/pr52933-2.c: Adjust expected instruction counts.

From-SVN: r235952

8 years agore PR sanitizer/70875 (ICE in get_ubsan_type_info_for_type with -fsanitize=undefined)
Marek Polacek [Fri, 6 May 2016 09:47:25 +0000 (09:47 +0000)]
re PR sanitizer/70875 (ICE in get_ubsan_type_info_for_type with -fsanitize=undefined)

PR sanitizer/70875
* ubsan.c (get_ubsan_type_info_for_type): Remove assert.

* gcc.dg/ubsan/bounds-3.c: New test.

From-SVN: r235951

8 years agore PR target/54089 ([SH] Refactor shift patterns)
Oleg Endo [Fri, 6 May 2016 09:41:57 +0000 (09:41 +0000)]
re PR target/54089 ([SH] Refactor shift patterns)

gcc/
PR target/54089
* config/sh/sh.md (*rotcr): Add another variant.

gcc/testsuite/
PR target/54089
* gcc.target/sh/pr54089-1.c (test_24): Add new sub-test.

From-SVN: r235950

8 years agore PR ada/70969 (bootstrap failure: s-unstyp.ads:40:15: violation of No_Elaboration_C...
Eric Botcazou [Fri, 6 May 2016 09:11:38 +0000 (09:11 +0000)]
re PR ada/70969 (bootstrap failure: s-unstyp.ads:40:15: violation of No_Elaboration_Code_All at line 42)

PR ada/70969
* system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All.
* system-linux-armeb.ads: Likewise.
* system-linux-mips64el.ads: Likewise.
* system-linux-mips.ads: Likewise.
* system-linux-mipsel.ads: Likewise.
* system-linux-ppc64.ads: Likewise.
* system-linux-sparcv9.ads: Likewise.
* system-rtems.ads: Likewise.

From-SVN: r235946

8 years agore PR fortran/70931 (ICE with -g in native_encode_initializer, bei dwarf2out.c:17768)
Richard Biener [Fri, 6 May 2016 07:44:22 +0000 (07:44 +0000)]
re PR fortran/70931 (ICE with -g in native_encode_initializer, bei dwarf2out.c:17768)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR middle-end/70931
* dwarf2out.c (native_encode_initializer): Skip zero-sized fields.

* gfortran.dg/pr70931.f90: New testcase.

From-SVN: r235944

8 years agore PR target/70941 (Test miscompiled with -O2.)
Richard Biener [Fri, 6 May 2016 07:38:27 +0000 (07:38 +0000)]
re PR target/70941 (Test miscompiled with -O2.)

2016-05-06  Richard Biener  <rguenther@suse.de>

PR middle-end/70941
* fold-const.c (split_tree): Always convert to the original type
before negating.

* gcc.dg/torture/pr70941.c: New testcase.

From-SVN: r235943

8 years agofwprop.c (fwprop): Remove duplicate cleanup_cfg call.
Richard Biener [Fri, 6 May 2016 07:27:33 +0000 (07:27 +0000)]
fwprop.c (fwprop): Remove duplicate cleanup_cfg call.

2016-05-06  Richard Biener  <rguenther@suse.de>

* fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
(fwprop_addr): Likewise.

From-SVN: r235942

8 years agoDaily bump.
GCC Administrator [Fri, 6 May 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235940

8 years agore PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after...
Uros Bizjak [Thu, 5 May 2016 22:48:29 +0000 (00:48 +0200)]
re PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after r235442 with -O2 -m32 on Haswell.)

PR target/70873
* config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
New prototype.
* config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
* config/i386/i386.md (push mem splitter): Use find_constant_src in
the splitter condition.
(FP load splitter): Use ix86_standard_x87sse_constant_load_p in
the splitter condition.
(FP float_extend load splitter): Ditto.

From-SVN: r235936

8 years agoi386.md (peehole2 patterns): Change true_regnum to REGNUM in all peephole2 patterns.
Uros Bizjak [Thu, 5 May 2016 20:33:42 +0000 (22:33 +0200)]
i386.md (peehole2 patterns): Change true_regnum to REGNUM in all peephole2 patterns.

* config/i386/i386.md (peehole2 patterns): Change true_regnum
to REGNUM in all peephole2 patterns.
(post-reload splitters): Change true_regnum to REGNUM in
post-reload splitters.
(zero_extend splitters): Use general_reg_operand and
nonimmediate_gr_operand predicates.

From-SVN: r235933

8 years agoEnable dg-reqire-sharedlib on Solaris
Rainer Orth [Thu, 5 May 2016 19:54:42 +0000 (19:54 +0000)]
Enable dg-reqire-sharedlib on Solaris

* testsuite/lib/libstdc++.exp (libstdc++_init): Enable on *-*-solaris*.

From-SVN: r235931

8 years agore PR tree-optimization/57206 (Auto-vectorization fails when array index is an unsign...
Bin Cheng [Thu, 5 May 2016 16:20:54 +0000 (16:20 +0000)]
re PR tree-optimization/57206 (Auto-vectorization fails when array index is an unsigned int expression)

gcc/testsuite
PR tree-optimization/57206
* gcc.dg/vect/pr57206.c: New test.

From-SVN: r235926

8 years agoDeclare isnanf in gcc.dg/ipa/inline-8.c
Rainer Orth [Thu, 5 May 2016 14:29:47 +0000 (14:29 +0000)]
Declare isnanf in gcc.dg/ipa/inline-8.c

* gcc.dg/ipa/inline-8.c (isnanf): Declare.

From-SVN: r235925

8 years ago* decl.c: Update comment.
Jason Merrill [Thu, 5 May 2016 13:33:35 +0000 (09:33 -0400)]
* decl.c: Update comment.

From-SVN: r235923

8 years agoopenmp.c (gfc_match_omp_clauses): Restructuralize...
Jakub Jelinek [Thu, 5 May 2016 13:31:02 +0000 (15:31 +0200)]
openmp.c (gfc_match_omp_clauses): Restructuralize...

* openmp.c (gfc_match_omp_clauses): Restructuralize, so that clause
parsing is done in a big switch based on gfc_peek_ascii_char and
individual clauses under their first letters are sorted too.

From-SVN: r235922

8 years agosse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use v constraint instead of x.
Jakub Jelinek [Thu, 5 May 2016 13:29:54 +0000 (15:29 +0200)]
sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use v constraint instead of x.

* config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
v constraint instead of x.

* gcc.target/i386/avx512f-vfmadd-1.c: New test.

From-SVN: r235921

8 years agoc-parser.c (c_parser_switch_statement): Add IF_P argument, parse it through to c_pars...
Jakub Jelinek [Thu, 5 May 2016 13:26:59 +0000 (15:26 +0200)]
c-parser.c (c_parser_switch_statement): Add IF_P argument, parse it through to c_parser_c99_block_statement.

* c-parser.c (c_parser_switch_statement): Add IF_P argument,
parse it through to c_parser_c99_block_statement.
(c_parser_statement_after_labels): Adjust c_parser_switch_statement
caller.

* parser.c (cp_parser_selection_statement): For RID_SWITCH,
pass if_p instead of NULL to cp_parser_implicitly_scoped_statement.

* c-c++-common/Wdangling-else-4.c: New test.

From-SVN: r235920

8 years agoAdd dg-require-filesystem-ts directive to test
Jonathan Wakely [Thu, 5 May 2016 10:03:56 +0000 (11:03 +0100)]
Add dg-require-filesystem-ts directive to test

* testsuite/experimental/filesystem/path/native/string.cc: Add
dg-require-filesystem-ts directive.

From-SVN: r235919

8 years agoDaily bump.
GCC Administrator [Thu, 5 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235918

8 years ago[RS6000] TARGET_RELOCATABLE
Alan Modra [Thu, 5 May 2016 00:07:27 +0000 (09:37 +0930)]
[RS6000] TARGET_RELOCATABLE

For ABI_V4, -mrelocatable and -fPIC both generate position independent
code, with some extra "fixup" output for -mrelocatable.  The
similarity of these two options has led to the situation where the
sysv4.h SUBTARGET_OVERRIDE_OPTIONS sets flag_pic on seeing
-mrelocatable, and sets TARGET_RELOCATABLE on seeing -fPIC.  That
prevents LTO from properly optimizing position dependent executables,
because the mutual dependence of the flags and the fact that LTO
streaming records the state of rs6000_isa_flags, result in flag_pic
being set when it shouldn't be.

So, don't set TARGET_RELOCATABLE when -fPIC.  Places that currently
test TARGET_RELOCATABLE can instead test
TARGET_RELOCATABLE || (DEFAULT_ABI == ABI_V4 && flag_pic > 1)
or since TARGET_RELOCATABLE can only be enabled when ABI_V4,
DEFAULT_ABI == ABI_V4 && (TARGET_RELOCATABLE || flag_pic > 1).

Also, since flag_pic is set by -mrelocatable, a number of places that
currently test TARGET_RELOCATABLE can be simplified.  I also made
-mrelocatable set TARGET_NO_FP_IN_TOC, allowing TARGET_RELOCATABLE to
be removed from ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.  Reducing occurrences
of TARGET_RELOCATABLE is a good thing.

PR target/68662
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
TARGET_NO_FP_IN_TOC for -mrelocatable.
(MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
TARGET_RELOCATABLE test.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
* config/rs6000/predicates.md (easy_fp_constant): Likewise.
* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Likewise.
(rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
(rs6000_stack_info): Likewise.
(rs6000_elf_asm_out_constructor): Likewise.
(rs6000_elf_asm_out_destructor): Likewise.
(rs6000_elf_declare_function_name): Likewise.
* config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
* config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
Don't define.

From-SVN: r235914

8 years ago[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx
Alan Modra [Thu, 5 May 2016 00:01:26 +0000 (09:31 +0930)]
[RS6000] Rewrite rs6000_frame_related to use simplify_replace_rtx

Modify SETs rather than using replace_rtx on the whole insn.
Removes fragile hacks preventing USE and CLOBBER being modified.

* config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.

From-SVN: r235913

8 years ago[RS6000] out-of-line exit register restore funcs
Alan Modra [Wed, 4 May 2016 21:32:27 +0000 (07:02 +0930)]
[RS6000] out-of-line exit register restore funcs

* config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
out-of-line gpr restore for one or two regs if that would add
a save of lr.

From-SVN: r235907

8 years agore PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after...
Uros Bizjak [Wed, 4 May 2016 21:13:13 +0000 (23:13 +0200)]
re PR target/70873 ([7 Regressio] 20% performance regression at 482.sphinx3 after r235442 with -O2 -m32 on Haswell.)

PR target/70873
* config/i386/i386.md
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
Change to post-epilogue_completed late splitter.  Use sse_reg_operand
as operand 0 predicate.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
Ditto.
(TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
Ditto.  Emit the pattern using RTX.

(TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
(TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
Ditto.
(TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
sse_reg_operand as operand 0 predicate.

(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
instead of gen_rtx_REG.
(TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
Ditto.

From-SVN: r235906

8 years agoshrink-wrap: Remove complicated simple_return manipulations
Segher Boessenkool [Wed, 4 May 2016 20:57:08 +0000 (22:57 +0200)]
shrink-wrap: Remove complicated simple_return manipulations

Now that cfgcleanup knows how to optimize with return statements, the
epilogue insertion code doesn't have to deal with it itself anymore.

* function.c (emit_use_return_register_into_block): Delete.
(gen_return_pattern): Delete.
(emit_return_into_block): Delete.
(active_insn_between): Delete.
(convert_jumps_to_returns): Delete.
(emit_return_for_exit): Delete.
(thread_prologue_and_epilogue_insns): Delete all code dealing with
simple_return for shrink-wrapped blocks.
* shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
end of blocks that need one.
(get_unconverted_simple_return): Delete.
(convert_to_simple_return): Delete.
* shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
(convert_to_simple_return): Ditto.

From-SVN: r235905

8 years agocfgcleanup: Fold jumps and conditional branches with returns
Segher Boessenkool [Wed, 4 May 2016 20:54:47 +0000 (22:54 +0200)]
cfgcleanup: Fold jumps and conditional branches with returns

This patch makes cfgcleanup optimize jumps to returns.  There are three
cases this handles:

-- A jump to a return; this is simplified to just that return.
-- A conditional branch to a return; simplified to a conditional return.
-- A conditional branch that falls through to a return.  This is simplified
   to a conditional return (with the condition inverted), falling through
   to a jump to the original destination.  That jump can then be optimized
   further, as usual.

This handles all cases the current function.c does, and a few it misses.

* cfgcleanup.c (bb_is_just_return): New function.
(try_optimize_cfg): Simplify jumps to return, branches to return,
and branches around return.

From-SVN: r235904

8 years agocfgcleanup: Bugfix in try_simplify_condjump
Segher Boessenkool [Wed, 4 May 2016 20:50:12 +0000 (22:50 +0200)]
cfgcleanup: Bugfix in try_simplify_condjump

If the jump_block here contains just a return, we will crash later
in invert_jump.  Don't allow that case.

* cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
branch to a return.

From-SVN: r235903

8 years agore PR c++/70906 (ice in add_expr, at tree.c:7925)
Jakub Jelinek [Wed, 4 May 2016 20:44:40 +0000 (22:44 +0200)]
re PR c++/70906 (ice in add_expr, at tree.c:7925)

PR c++/70906
PR c++/70933
* tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
* tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
assert flags & OEP_HASH_CHECK, instead of asserting it
never happens.  Handle TARGET_EXPR.
* fold-const.c (operand_equal_p): For hash verification,
or in OEP_HASH_CHECK into flags.

* g++.dg/opt/pr70906.C: New test.
* g++.dg/opt/pr70933.C: New test.

From-SVN: r235902

8 years agotree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head comment.
Eric Botcazou [Wed, 4 May 2016 20:22:42 +0000 (20:22 +0000)]
tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head comment.

* tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
comment.
(compute_samebase_partition_bases): Fix typo.

From-SVN: r235900

8 years agosse.md (vec_interleave_highv8sf, [...]): Remove constraints from expanders.
Jakub Jelinek [Wed, 4 May 2016 19:56:20 +0000 (21:56 +0200)]
sse.md (vec_interleave_highv8sf, [...]): Remove constraints from expanders.

* config/i386/sse.md (vec_interleave_highv8sf,
vec_interleave_lowv8sf, vec_interleave_highv4df,
vec_interleave_lowv4df): Remove constraints from expanders.

From-SVN: r235898

8 years agos-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize instead of __getpage...
Samuel Thibault [Wed, 4 May 2016 19:14:05 +0000 (19:14 +0000)]
s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize instead of __getpagesize.

* s-osinte-gnu.ads (Get_Page_Size): Return int and use getpagesize
instead of __getpagesize.

From-SVN: r235896

8 years agosse.md (sse2_movq128): Use v constraint instead of x.
Jakub Jelinek [Wed, 4 May 2016 17:02:57 +0000 (19:02 +0200)]
sse.md (sse2_movq128): Use v constraint instead of x.

* config/i386/sse.md (sse2_movq128): Use v constraint instead of x.

* gcc.target/i386/avx512vl-vmovq-1.c: New test.

From-SVN: r235893

8 years agotree-inline.c (expand_call_inline): Fix path dealing with making lhs of call statemen...
Jan Hubicka [Wed, 4 May 2016 16:42:12 +0000 (18:42 +0200)]
tree-inline.c (expand_call_inline): Fix path dealing with making lhs of call statement undefined.

* tree-inline.c (expand_call_inline): Fix path dealing with
making lhs of call statement undefined.

From-SVN: r235889

8 years agocgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Check availability on...
Jan Hubicka [Wed, 4 May 2016 16:36:51 +0000 (18:36 +0200)]
cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Check availability on NODE, too.

* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
Check availability on NODE, too.
* cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
(cgraph_node::call_for_symbol_and_aliases): Likewise.
(varpool_node::call_for_symbol_and_aliase): Likewise.
* ipa-pure-const.c (add_new_function): Analyze all bodies.
(propagate_pure_const): Propagate across interposable functions, too.
(skip_function_for_local_pure_const): Do not skip interposable bodies
with aliases.
(pass_local_pure_const::execute): Update.

* gcc.dg/ipa/pure-const-3.c: New testcase.

From-SVN: r235887

8 years agoc.opt (Wdangling-else): New option.
Marek Polacek [Wed, 4 May 2016 16:00:33 +0000 (16:00 +0000)]
c.opt (Wdangling-else): New option.

* c.opt (Wdangling-else): New option.

* c-parser.c (c_parser_if_statement): Replace OPT_Wparentheses with
OPT_Wdangling_else.

* parser.c (cp_parser_selection_statement): Replace OPT_Wparentheses
with OPT_Wdangling_else.

* doc/invoke.texi: Document -Wdangling-else.

* c-c++-common/Wdangling-else-1.c: New test.
* c-c++-common/Wdangling-else-2.c: New test.
* c-c++-common/Wdangling-else-3.c: New test.

From-SVN: r235885

8 years agomips16-attributes.c: Skip if -mmicromips flag is present.
Kwok Cheung Yeung [Wed, 4 May 2016 14:56:19 +0000 (14:56 +0000)]
mips16-attributes.c: Skip if -mmicromips flag is present.

2016-05-04  Kwok Cheung Yeung  <kcy@codesourcery.com>

* gcc.target/mips/mips16-attributes.c: Skip if -mmicromips
flag is present.

From-SVN: r235881

8 years agore PR c/48778 (gcc 4.6 -Waddress adds unhelpful new warning case when using from...
Marek Polacek [Wed, 4 May 2016 13:46:15 +0000 (13:46 +0000)]
re PR c/48778 (gcc 4.6 -Waddress adds unhelpful new warning case when using from a macro)

PR c/48778
* c-typeck.c (build_binary_op): Don't issue -Waddress warnings
for macro expansions.

* gcc.dg/Waddress-2.c: New test.

From-SVN: r235878

8 years agoconfig.gcc: Error out when conflicting multilib is detected.
Thomas Preud'homme [Wed, 4 May 2016 13:33:58 +0000 (13:33 +0000)]
config.gcc: Error out when conflicting multilib is detected.

2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config.gcc: Error out when conflicting multilib is detected.  Do not
    loop over multilibs since no combination is legal.

From-SVN: r235877

8 years ago[RS6000] Correct PIC_OFFSET_TABLE_REGNUM
Alan Modra [Wed, 4 May 2016 13:23:58 +0000 (22:53 +0930)]
[RS6000] Correct PIC_OFFSET_TABLE_REGNUM

Leaving this as r30 results in pic_offset_table_rtx of (reg 30)
for -m64, which is completely bogus.  Various rtl analysis predicate
functions treat pic_offset_table_rtx specially..

* config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.

From-SVN: r235876

8 years ago[RS6000] Simplify sysv4.h TARGET_TOC
Alan Modra [Wed, 4 May 2016 13:21:01 +0000 (22:51 +0930)]
[RS6000] Simplify sysv4.h TARGET_TOC

We can use the TARGET_* defines here.  There isn't any reason to use
the underlying variable and masks.  Also, TARGET_RELOCATABLE implies
TARGET_MINIMAL_TOC, so there is no need to test TARGET_RELOCATABLE.

* config/rs6000/sysv4.h (TARGET_TOC): Simplify.

From-SVN: r235875

8 years ago[RS6000] Align .toc section
Alan Modra [Wed, 4 May 2016 13:17:51 +0000 (22:47 +0930)]
[RS6000] Align .toc section

Lack of any .toc section alignment causes kexec and kdump failure
when linking without the usual linker script.  This of course is
really a kexec-tools error, but it is also true that .toc ought to
always be word aligned.

* config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
Align .toc.

From-SVN: r235874

8 years agoUpdate MIPS P5600 processor definition to avoid IMADD
Matthew Fortune [Wed, 4 May 2016 12:59:28 +0000 (12:59 +0000)]
Update MIPS P5600 processor definition to avoid IMADD

gcc/

* config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
Clean up p5600 comments.

From-SVN: r235873

8 years agomatch.pd: Add BIT_FIELD_REF canonicalizations and vector constructor simplifications.
Richard Biener [Wed, 4 May 2016 12:37:56 +0000 (12:37 +0000)]
match.pd: Add BIT_FIELD_REF canonicalizations and vector constructor simplifications.

2016-05-04  Richard Biener  <rguenther@suse.de>

* match.pd: Add BIT_FIELD_REF canonicalizations and vector
constructor simplifications.
* fold-const.c (fold_ternary_loc): Remove duplicate functionality
here.

From-SVN: r235871

8 years agobackport: Makefile.am: Merge from upstream...
Ilya Verbin [Wed, 4 May 2016 12:29:14 +0000 (12:29 +0000)]
backport: Makefile.am: Merge from upstream...

Merge libcilkrts from upstream.

libcilkrts/
* Makefile.am: Merge from upstream, version 2.0.4420.0
<https://bitbucket.org/intelcilkruntime/intel-cilk-runtime.git>.
* README: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* include/cilk/cilk.h: Likewise.
* include/cilk/cilk_api.h: Likewise.
* include/cilk/cilk_api_linux.h: Likewise.
* include/cilk/cilk_stub.h: Likewise.
* include/cilk/cilk_undocumented.h: Likewise.
* include/cilk/common.h: Likewise.
* include/cilk/holder.h: Likewise.
* include/cilk/hyperobject_base.h: Likewise.
* include/cilk/metaprogramming.h: Likewise.
* include/cilk/reducer.h: Likewise.
* include/cilk/reducer_file.h: Likewise.
* include/cilk/reducer_list.h: Likewise.
* include/cilk/reducer_max.h: Likewise.
* include/cilk/reducer_min.h: Likewise.
* include/cilk/reducer_min_max.h: Likewise.
* include/cilk/reducer_opadd.h: Likewise.
* include/cilk/reducer_opand.h: Likewise.
* include/cilk/reducer_opmul.h: Likewise.
* include/cilk/reducer_opor.h: Likewise.
* include/cilk/reducer_opxor.h: Likewise.
* include/cilk/reducer_ostream.h: Likewise.
* include/cilk/reducer_string.h: Likewise.
* include/cilktools/cilkscreen.h: Likewise.
* include/cilktools/cilkview.h: Likewise.
* include/cilktools/fake_mutex.h: Likewise.
* include/cilktools/lock_guard.h: Likewise.
* include/internal/abi.h: Likewise.
* include/internal/cilk_fake.h: Likewise.
* include/internal/cilk_version.h: Likewise.
* include/internal/metacall.h: Likewise.
* include/internal/rev.mk: Likewise.
* mk/cilk-version.mk: Likewise.
* runtime/acknowledgements.dox: Likewise.
* runtime/bug.cpp: Likewise.
* runtime/bug.h: Likewise.
* runtime/c_reducers.c: Likewise.
* runtime/cilk-abi-cilk-for.cpp: Likewise.
* runtime/cilk-abi-vla-internal.c: Likewise.
* runtime/cilk-abi-vla-internal.h: Likewise.
* runtime/cilk-abi.c: Likewise.
* runtime/cilk-ittnotify.h: Likewise.
* runtime/cilk-tbb-interop.h: Likewise.
* runtime/cilk_api.c: Likewise.
* runtime/cilk_fiber-unix.cpp: Likewise.
* runtime/cilk_fiber-unix.h: Likewise.
* runtime/cilk_fiber.cpp: Likewise.
* runtime/cilk_fiber.h: Likewise.
* runtime/cilk_malloc.c: Likewise.
* runtime/cilk_malloc.h: Likewise.
* runtime/component.h: Likewise.
* runtime/config/generic/cilk-abi-vla.c: Likewise.
* runtime/config/generic/os-fence.h: Likewise.
* runtime/config/generic/os-unix-sysdep.c: Likewise.
* runtime/config/x86/cilk-abi-vla.c: Likewise.
* runtime/config/x86/os-fence.h: Likewise.
* runtime/config/x86/os-unix-sysdep.c: Likewise.
* runtime/doxygen-layout.xml: Likewise.
* runtime/doxygen.cfg: Likewise.
* runtime/except-gcc.cpp: Likewise.
* runtime/except-gcc.h: Likewise.
* runtime/except.h: Likewise.
* runtime/frame_malloc.c: Likewise.
* runtime/frame_malloc.h: Likewise.
* runtime/full_frame.c: Likewise.
* runtime/full_frame.h: Likewise.
* runtime/global_state.cpp: Likewise.
* runtime/global_state.h: Likewise.
* runtime/jmpbuf.c: Likewise.
* runtime/jmpbuf.h: Likewise.
* runtime/linux-symbols.ver: Likewise.
* runtime/local_state.c: Likewise.
* runtime/local_state.h: Likewise.
* runtime/mac-symbols.txt: Likewise.
* runtime/metacall_impl.c: Likewise.
* runtime/metacall_impl.h: Likewise.
* runtime/os-unix.c: Likewise.
* runtime/os.h: Likewise.
* runtime/os_mutex-unix.c: Likewise.
* runtime/os_mutex.h: Likewise.
* runtime/pedigrees.c: Likewise.
* runtime/pedigrees.h: Likewise.
* runtime/record-replay.cpp: Likewise.
* runtime/record-replay.h: Likewise.
* runtime/reducer_impl.cpp: Likewise.
* runtime/reducer_impl.h: Likewise.
* runtime/rts-common.h: Likewise.
* runtime/scheduler.c: Likewise.
* runtime/scheduler.h: Likewise.
* runtime/signal_node.c: Likewise.
* runtime/signal_node.h: Likewise.
* runtime/spin_mutex.c: Likewise.
* runtime/spin_mutex.h: Likewise.
* runtime/stats.c: Likewise.
* runtime/stats.h: Likewise.
* runtime/sysdep-unix.c: Likewise.
* runtime/sysdep.h: Likewise.
* runtime/worker_mutex.c: Likewise.
* runtime/worker_mutex.h: Likewise.
* include/cilk/reducer_vector.h: New.
* runtime/cilk_str_mem.h: New.
* runtime/config/arm/cilk-abi-vla.c: New.
* runtime/config/arm/os-fence.h: New.
* runtime/config/arm/os-unix-sysdep.c: New.
* runtime/declare-alloca.h: New.
* runtime/sslib/ignore_handler_s.c: New.
* runtime/sslib/safe_lib.h: New.
* runtime/sslib/safe_lib_errno.h: New.
* runtime/sslib/safe_str_constraint.c: New.
* runtime/sslib/safe_str_constraint.h: New.
* runtime/sslib/safe_str_lib.h: New.
* runtime/sslib/safe_types.h: New.
* runtime/sslib/safeclib_private.h: New.
* runtime/sslib/snprintf_s.h: New.
* runtime/sslib/snprintf_support.c: New.
* runtime/sslib/strcpy_s.c: New.
* runtime/sslib/strncpy_s.c: New.
* runtime/sslib/strnlen_s.c: New.
* runtime/symbol_test.c: Remove.
* Makefile.in: Regenerate.
* configure: Regenerate.

From-SVN: r235870

8 years agolibstdc++/70940 Start fixing polymorphic memory resources
Jonathan Wakely [Wed, 4 May 2016 12:08:45 +0000 (13:08 +0100)]
libstdc++/70940 Start fixing polymorphic memory resources

PR libstdc++/70940
* include/experimental/memory_resource
(__resource_adaptor_imp::do_allocate): Do not default-construct
rebound allocator.
(__resource_adaptor_imp::do_deallocate): Likewise. Use
allocator_traits to get pointer type.
(__null_memory_resource::do_allocate): Remove unused parameters.
(__null_memory_resource::do_deallocate): Likewise.
(__null_memory_resource::do_is_equal): Likewise. Add return statement.
* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
move to ...
* testsuite/experimental/memory_resource/1.cc: Here.
* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
* testsuite/experimental/memory_resource/resource_adaptor.cc: New.

From-SVN: r235868

8 years agopredicates (post_inc_mem, [...]): New predicates.
Oleg Endo [Wed, 4 May 2016 07:14:11 +0000 (07:14 +0000)]
predicates (post_inc_mem, [...]): New predicates.

gcc/
* config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
* config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
result.set_rtx is null instead of aborting.
* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
Always enable.
(USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
* config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
*mov<mode>_store_postinc): New patterns.

From-SVN: r235859

8 years agoRemove duplicate (A & B) OP (C & B) in match.pd.
Marc Glisse [Wed, 4 May 2016 05:38:18 +0000 (07:38 +0200)]
Remove duplicate (A & B) OP (C & B) in match.pd.

2016-05-04  Marc Glisse  <marc.glisse@inria.fr>

* match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
as commutative.  Check both conversions are NOP.
((A & B) OP (C & B)): Remove.

From-SVN: r235858

8 years agoDaily bump.
GCC Administrator [Wed, 4 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r235856

8 years agoCombine simplify_set WORD_REGISTER_OPERATIONS
Alan Modra [Wed, 4 May 2016 00:11:32 +0000 (09:41 +0930)]
Combine simplify_set WORD_REGISTER_OPERATIONS

The comment says this test is supposed to prevent "a narrower
operation than requested", but it actually only allows a larger
subreg not one the same size.  Fix that.

* combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.

From-SVN: r235852

8 years ago[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE
Alan Modra [Tue, 3 May 2016 23:51:34 +0000 (09:21 +0930)]
[RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE

gcc/
PR target/70866
* config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
when cr2,3,4 are all fixed regs.
gcc/testsuite/
* gcc.target/powerpc/pr70866.c: New.

From-SVN: r235851

8 years agore PR rtl-optimization/57193 (suboptimal register allocation for SSE registers)
Bernd Schmidt [Tue, 3 May 2016 22:48:03 +0000 (22:48 +0000)]
re PR rtl-optimization/57193 (suboptimal register allocation for SSE registers)

PR rtl-optimization/57193
* opts.c (default_options_table): Revert OPT_frename_registers change.
* doc/invoke.texi (-frename-registers, -O2): Likewise.

From-SVN: r235848

8 years agoPR c++/66561 - __builtin_LINE at al. should yield constant expressions
Martin Sebor [Tue, 3 May 2016 21:15:28 +0000 (21:15 +0000)]
PR c++/66561 - __builtin_LINE at al. should yield constant expressions

PR c++/66561 - __builtin_LINE at al. should yield constant expressions
PR c++/66639 - declare __func__, __FUNCTION__ & __PRETTY_FUNCTION__ constexpr

gcc/testsuite/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* c-c++-common/builtin_location.c: New test.
* g++.dg/cpp1y/builtin_location.C: New test.

gcc/cp/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.

gcc/ChangeLog:
2016-05-03  Martin Sebor  <msebor@redhat.com>

PR c++/66561
* builtins.c (fold_builtin_FILE): New function.
(fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
(fold_builtin_0): Call them.
* gimplify.c (gimplify_call_expr): Remove the handling of
BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.

PR c++/66561
* doc/extend.texi (Other Builtins): Update __builtin_FILE,
__builtin_FUNCTION, and __builtin_LINE to reflect they yield
constants.

PR c++/66639
* doc/extend.texi (Function Names as Strings): Update __func__,
__FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
constants.

From-SVN: r235845

8 years agore PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in...
Jakub Jelinek [Tue, 3 May 2016 19:30:22 +0000 (21:30 +0200)]
re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")

PR tree-optimization/70916
* tree-if-conv.c: Include cfganal.h.
(pass_if_conversion::execute): Call connect_infinite_loops_to_exit
and remove_fake_exit_edges around the optimization pass.

Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r235842

8 years agocgraph.c (symbol_table::create_edge): Set inline_failed.
Jan Hubicka [Tue, 3 May 2016 19:05:31 +0000 (21:05 +0200)]
cgraph.c (symbol_table::create_edge): Set inline_failed.

* cgraph.c (symbol_table::create_edge): Set inline_failed.
(cgraph_edge::make_direct): Likewise.
(cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
* cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
* cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
(CIF_THUNK): New code.
* ipa-inline-analysis.c (initialize_inline_failed): Preserve
CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
(compute_inline_parameters): Set inline_failed for thunks.
(inline_analyze_function): Cleanup.
* ipa-inline.c (can_inline_edge_p): Do not deal with
call_stmt_cannot_inline_p.
(can_early_inline_edge_p): Likewise.
(early_inliner): Initialize inline_failed.
* lto-cgraph.c (lto_output_edge): Sanity check inline_failed.

* lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.

From-SVN: r235839

8 years agopredicates.md (x87nonimm_ssenomem_operand): Rename from nonimm_ssenomem_operand.
Uros Bizjak [Tue, 3 May 2016 18:48:18 +0000 (20:48 +0200)]
predicates.md (x87nonimm_ssenomem_operand): Rename from nonimm_ssenomem_operand.

* config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
from nonimm_ssenomem_operand.
(nonimm_ssenomem_operand): New predicate.
* config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
as operand 0 predicate.
(*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
Disable unsupported alternatives using "enabled" attribute.
Use register_ssemem_operand as operand 0 predicate.
(*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.

From-SVN: r235837

8 years agore PR c/70859 (Bad column number in type-generic function errors)
Marek Polacek [Tue, 3 May 2016 18:03:42 +0000 (18:03 +0000)]
re PR c/70859 (Bad column number in type-generic function errors)

PR c/70859
* input.c (expansion_point_location): New function.
* input.h (expansion_point_location): Declare.

* c-common.c (builtin_function_validate_nargs): Add location
parameter.  Use it.
(check_builtin_function_arguments): Add location and arguments
parameters.  Use them.
* c-common.h (check_builtin_function_arguments): Update declaration.

* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
check_builtin_function_arguments.

* call.c (build_cxx_call): Pass location and vNULL down to
check_builtin_function_arguments.

* gcc.dg/pr70859.c: New test.
* gcc.dg/pr70859-2.c: New test.

From-SVN: r235832

8 years agoFix a typo in dwarf2out.c:resolve_args_picking_1
Pierre-Marie de Rodat [Tue, 3 May 2016 16:21:14 +0000 (16:21 +0000)]
Fix a typo in dwarf2out.c:resolve_args_picking_1

Under specific circumstances for Ada programs, such as in the testcase
this change adds, the DWARF back-end currently crashes because of
inconsistent internal state. This is due to a typo: a local variable is
called frame_offset_ but resolve_args_picking_1 wrongly modifies
emit-rtl.h's frame_offset instead.

This change fixes this typo.

gcc/
* dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
occurence with frame_offset_ ones.

gcc/testsuite/
* gnat.dg/debug5.adb: New testcase.

From-SVN: r235830

8 years ago* nl.po: Update.
Joseph Myers [Tue, 3 May 2016 15:07:25 +0000 (16:07 +0100)]
* nl.po: Update.

From-SVN: r235827

8 years agoPR70890, stage2 miscompilation
Alan Modra [Tue, 3 May 2016 14:43:35 +0000 (00:13 +0930)]
PR70890, stage2 miscompilation

PR rtl-optimization/70890
* ira.c (combine_and_move_insns): When moving def_insn, remove
equivs on use_insn.

From-SVN: r235825

8 years agoS/390: Add patterns for r<nox>sbg instructions.
Dominik Vogt [Tue, 3 May 2016 13:30:33 +0000 (13:30 +0000)]
S/390: Add patterns for r<nox>sbg instructions.

gcc/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
("*r<noxa>sbg_<mode>_srl"): New define_insns.
("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.

gcc/testsuite/ChangeLog:

2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* gcc.target/s390/md/rXsbg_mode_sXl.c: New test.
* gcc.target/s390/s390.exp (check_effective_target_z10_instructions):
Procedure to check for z10 instruction set.

From-SVN: r235822

8 years agoinline-8.c: Require c99_runtime.
Christophe Lyon [Tue, 3 May 2016 13:06:40 +0000 (13:06 +0000)]
inline-8.c: Require c99_runtime.

* gcc.dg/ipa/inline-8.c: Require c99_runtime.

From-SVN: r235821

8 years ago[RS6000] Fix ICE caused by rs6000_savres_strategy thinko
Alan Modra [Tue, 3 May 2016 12:38:32 +0000 (22:08 +0930)]
[RS6000] Fix ICE caused by rs6000_savres_strategy thinko

rev 235672 (git cffc0b35) changed the condition for SAVE_MULTIPLE/
STORE_MULTIPLE, wrongly allowing a single reg.

gcc/
* config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
for SAVE_MULTIPLE/STORE_MULTIPLE.
gcc/testsuite/
* gcc.target/powerpc/savres.c: Add func using a single gpr.

From-SVN: r235820

8 years ago* config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
Jakub Jelinek [Tue, 3 May 2016 12:18:57 +0000 (14:18 +0200)]
* config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,

*truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead
of x.

* gcc.target/i386/avx512f-cvt-1.c: New test.

From-SVN: r235819

8 years agoCompile ssa-thread-14.c with -fdump-tree-vrp-details
H.J. Lu [Tue, 3 May 2016 12:14:37 +0000 (12:14 +0000)]
Compile ssa-thread-14.c with -fdump-tree-vrp-details

* gcc.dg/tree-ssa/ssa-thread-14.c: Replace -fdump-tree-vrp with
-fdump-tree-vrp-details.

From-SVN: r235818

8 years agogimplify.h (get_initialized_tmp_var): Add allow_ssa parameter default true.
Richard Biener [Tue, 3 May 2016 12:06:19 +0000 (12:06 +0000)]
gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter default true.

2016-05-03  Richard Biener  <rguenther@suse.de>

* gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
default true.
(gimplify_arg): Likewise.
* gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
re-writing the result to a decl if required.
(internal_get_tmp_var): Add allow_ssa parameter
and override into_ssa with it.
(get_formal_tmp_var): Adjust.
(get_initialized_tmp_var): Add allow_ssa parameter.
(gimplify_arg): Add allow_ssa parameter and avoid generating
SSA names for the result false.
(gimplify_call_expr): If the call may return twice do not
gimplify parameters into SSA.
(prepare_gimple_addressable): Do not allow an SSA name as
temporary.
(gimplify_modify_expr): Adjust assert.  For noreturn calls
with a SSA name LHS adjust its def.
(gimplify_save_expr): Do not allow an SSA name as save-expr
result.
(gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
(gimplify_body): Init GIMPLE SSA data structures and gimplify
into-SSA.
(gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
(gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
(optimize_target_teams): Do not allow SSA names for clause operands.
(gimplify_expr): Likewise for where we mark the result addressable.
* passes.def (pass_init_datastructures): Remove.
* tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
(rewrite_stmt): Likewise.
* tree-inline.c (initialize_cfun): Properly transfer SSA state.
(replace_locals_op): Replace SSA names.
(copy_gimple_seq_and_replace_locals): Init src_cfun.
* gimple-low.c (lower_builtin_setjmp): Deal with SSA.
* cgraph.c (release_function_body): Free CFG annotations only
when we have a CFG.  Simplify.
* gimple-fold.c (gimplify_and_update_call_from_tree): Use
force_gimple_operand instead of get_initialized_tmp_var.
* tree-pass.h (make_pass_init_datastructures): Remove.
* tree-ssa.c (execute_init_datastructures): Remove.
(pass_data_init_datastructures): Likewise.
(class pass_init_datastructures): Likewise.
(make_pass_init_datastructures): Likewise.
* omp-low.c (create_omp_child_function): Init SSA data structures.
(grid_expand_target_grid_body): Likewise.
* tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
name before adding it to names_to_release.
(remove_bb): Always release SSA defs.
* tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
before dereferencing it.
* cgraphunit.c (init_lowered_empty_function): Always
int SSA data structures.
* tree-ssanames.c (release_defs): Remove assert that we are in
SSA form.
* trans-mem.c (diagnose_tm_1): Handle SSA name function.

c-family/
* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
allow call args to gimplify to SSA names.

* gcc.dg/pr30172-1.c: Adjust.
* gcc.dg/pr63743.c: Likewise.
* gcc.dg/tm/pr51696.c: Likewise.
* c-c++-common/tm/safe-1.c: Likewise.
* gcc.dg/tree-prof/val-prof-3.c: Likewise.
* gcc.dg/plugin/self-assign-test-1.c: XFAIL case that needs CSE.
* g++.dg/plugin/self-assign-test-1.C: Likewise.
* g++.dg/plugin/self-assign-test-2.C: Likewise.

From-SVN: r235817

8 years agore PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t...
Jakub Jelinek [Tue, 3 May 2016 11:45:04 +0000 (13:45 +0200)]
re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable)

PR rtl-optimization/70467
* config/i386/predicates.md (x86_64_hilo_int_operand,
x86_64_hilo_general_operand): New predicates.
* config/i386/constraints.md (Wd): New constraint.
* config/i386/i386.md (mode attr di): Use Wd instead of e.
(general_hilo_operand): New mode attr.
(add<mode>3, sub<mode>3): Use <general_hilo_operand>
instead of <general_operand>.
(*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
x86_64_hilo_general_operand instead of <general_operand>.

* gcc.target/i386/pr70467-3.c: New test.
* gcc.target/i386/pr70467-4.c: New test.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r235816

8 years agore PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in...
Jakub Jelinek [Tue, 3 May 2016 11:43:06 +0000 (13:43 +0200)]
re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")

PR tree-optimization/70916
* tree-if-conv.c (constant_or_ssa_name): Removed.
(fold_build_cond_expr): Use is_gimple_val instead of
constant_or_ssa_name.

From-SVN: r235815

8 years agore PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in...
Jakub Jelinek [Tue, 3 May 2016 11:38:38 +0000 (13:38 +0200)]
re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")

PR tree-optimization/70916
* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.

* gcc.c-torture/compile/pr70916.c: New test.

From-SVN: r235814

8 years agore PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')
Jakub Jelinek [Tue, 3 May 2016 11:37:25 +0000 (13:37 +0200)]
re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc')

PR target/49244
* tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
(optimize_atomic_bit_test_and): New function.
(pass_fold_builtins::execute): Use it.
* optabs.def (atomic_bit_test_and_set_optab,
atomic_bit_test_and_complement_optab,
atomic_bit_test_and_reset_optab): New optabs.
* internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
* builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
* builtins.c (expand_ifn_atomic_bit_test_and): New function.
* internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
* doc/md.texi (atomic_bit_test_and_set@var{mode},
atomic_bit_test_and_complement@var{mode},
atomic_bit_test_and_reset@var{mode}): Document.
* config/i386/sync.md (atomic_bit_test_and_set<mode>,
atomic_bit_test_and_complement<mode>,
atomic_bit_test_and_reset<mode>): New expanders.
(atomic_bit_test_and_set<mode>_1,
atomic_bit_test_and_complement<mode>_1,
atomic_bit_test_and_reset<mode>_1): New insns.

* gcc.target/i386/pr49244-1.c: New test.
* gcc.target/i386/pr49244-2.c: New test.

From-SVN: r235813

8 years agoPR 70687: Use wide_int in combine.c:change_zero_ext
Richard Sandiford [Tue, 3 May 2016 10:29:55 +0000 (10:29 +0000)]
PR 70687: Use wide_int in combine.c:change_zero_ext

PR 70687 reports a case where combine.c mishandles integer modes
wider than unsigned HOST_WIDE_INT.  I don't have a testcase since
the PR is just pointing out the hole.

Also, I think a ZERO_EXTEND of a vector mode could in principle satisfy
the subreg condition but wouldn't be equivalent to an AND.  E.g.:

      (zero_extend:V4DI (subreg:V4SI (reg:V4DI R) 0))

Tested on x86_64-linux-gnu.

gcc/
PR rtl-optimization/70687
* combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
instead of unsigned HOST_WIDE_INT.

From-SVN: r235811

8 years agoFix PR44281, bad RA with global regs.
Bernd Schmidt [Tue, 3 May 2016 09:35:42 +0000 (09:35 +0000)]
Fix PR44281, bad RA with global regs.

PR rtl-optimization/44281
* hard-reg-set.h (struct target_hard_regs): New field
x_fixed_nonglobal_reg_set.
(fixed_nonglobal_reg_set): New macro.
* reginfo.c (init_reg_sets_1): Initialize it.
* ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
of fixed_reg_set.
* df-scan.c (df_insn_refs_collect): Asms may reference global regs.

testsuite/
PR rtl-optimization/44281
* gcc.target/i386/pr44281.c: New test.

From-SVN: r235809

8 years agore PR tree-optimization/56541 (vectorizaton fails in conditional assignment of a...
Bin Cheng [Tue, 3 May 2016 09:04:46 +0000 (09:04 +0000)]
re PR tree-optimization/56541 (vectorizaton fails in conditional assignment of a constant)

PR tree-optimization/56541
* doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
* params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
* tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
(any_complicated_phi): new static variable.
(aggressive_if_conv): delete.
(if_convertible_phi_p): support phis with more than two arguments.
(if_convertible_bb_p): remvoe check on aggressive_if_conv and
critical pred edges.
(ifcvt_split_critical_edges): support phis with more than two
arguments by checking new parameter.  only split critical edges
if needed.
(tree_if_conversion): handle simd pragma marked loop using new
local variable aggressive_if_conv.  check any_complicated_phi.

gcc/testsuite
PR tree-optimization/56541
* gcc.dg/tree-ssa/ifc-pr56541.c: new test.
* gcc.dg/vect/pr56541.c: new test.

From-SVN: r235808