Thomas Preud'homme [Tue, 28 Jul 2015 06:54:50 +0000 (06:54 +0000)]
re PR tree-optimization/66828 (gcc/tree-ssa-math-opts.c:2182:38: runtime error: left shift of
72057594037927936 by 8 places cannot be represented in type 'long int')
2015-07-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR tree-optimization/66828
* tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
from int64_t to uint64_t.
From-SVN: r226298
Dominik Vogt [Tue, 28 Jul 2015 05:51:01 +0000 (05:51 +0000)]
Honour DriverOnly for enum values in error messages
/gcc/ChangeLog
* opts-common.c (read_cmdline_option): List DriverOnly enum values as
valid only in the error message of the driver, not in the messages of
the language compilers.
From-SVN: r226297
Ben Elliston [Tue, 28 Jul 2015 00:57:40 +0000 (10:57 +1000)]
* config.sub, config.guess: Import from upstream.
From-SVN: r226296
GCC Administrator [Tue, 28 Jul 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r226294
Luis Felipe Strano Moraes [Mon, 27 Jul 2015 22:26:34 +0000 (22:26 +0000)]
c-decl.c (get_parm_info): Remove static var.
gcc/c/ChangeLog
2015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
* c-decl.c (get_parm_info): Remove static var. Update warning
message.
gcc/testsuite/ChangeLog
2015-07-28 Luis Felipe Strano Moraes <luis.strano@gmail.com>
Manuel López-Ibáñez <manu@gcc.gnu.org>
* gcc.dg/parm-incomplete-1.c: Update.
* gcc.dg/pr18809-1.c: Update.
* gcc.dg/pr27953.c: Update.
* gcc.dg/vla-11.c: Update.
Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r226274
Marek Polacek [Mon, 27 Jul 2015 20:51:48 +0000 (20:51 +0000)]
* c-c++-common/Wtautological-compare-2.c: Remove unused line.
From-SVN: r226271
Tom de Vries [Mon, 27 Jul 2015 20:05:19 +0000 (20:05 +0000)]
Simplify gather_scalar_reductions
2015-07-27 Tom de Vries <tom@codesourcery.com>
* tree-parloops.c (gather_scalar_reductions): Simplify function
structure.
From-SVN: r226270
Tom de Vries [Mon, 27 Jul 2015 20:05:09 +0000 (20:05 +0000)]
Update outer-4.c and uns-outer-4.c
2015-07-27 Tom de Vries <tom@codesourcery.com>
* gcc.dg/autopar/outer-4.c (parloop): Remove superfluous noinline
attribute. Update comment.
(main): Remove.
Add scan for not parallelizing inner loop.
* gcc.dg/autopar/uns-outer-4.c (parloop): Remove superfluous noinline
attribute.
(main): Remove.
From-SVN: r226269
Marek Polacek [Mon, 27 Jul 2015 19:36:40 +0000 (19:36 +0000)]
* ipa-devirt.c (types_same_for_odr): Fix typo.
From-SVN: r226266
Marek Polacek [Mon, 27 Jul 2015 19:09:27 +0000 (19:09 +0000)]
re PR bootstrap/67030 (ARM bootstrap failure due to [-Werror=tautological-compare])
PR bootstrap/67030
* c-common.c (warn_tautological_cmp): Don't warn for macro expansion.
* c-c++-common/Wtautological-compare-2.c: New test.
From-SVN: r226264
Jason Merrill [Mon, 27 Jul 2015 16:57:21 +0000 (12:57 -0400)]
constexpr.c (cxx_eval_call_expression): Don't add this call to the hash table if !depth_ok.
* constexpr.c (cxx_eval_call_expression): Don't add this call to
the hash table if !depth_ok.
From-SVN: r226256
Jason Merrill [Mon, 27 Jul 2015 16:57:15 +0000 (12:57 -0400)]
re PR lto/66468 (ICE in in check_die, at dwarf2out.c:5719)
PR debug/66468
* dwarf2out.c (gen_inlined_subroutine_die): Check
cgraph_function_possibly_inlined_p.
From-SVN: r226255
H.J. Lu [Mon, 27 Jul 2015 16:24:35 +0000 (16:24 +0000)]
Add more tests for PR target/66232
PR target/66232
* gcc.target/i386/pr66232-6.c: New tests.
* gcc.target/i386/pr66232-7.c: Likewise.
* gcc.target/i386/pr66232-8.c: Likewise.
* gcc.target/i386/pr66232-9.c: Likewise.
From-SVN: r226254
Wilco Dijkstra [Mon, 27 Jul 2015 16:18:36 +0000 (16:18 +0000)]
[PATCH][AArch64] Improve spill code - swap order in shr patterns
gcc/
* gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
Place integer variant first.
(aarch64_ashr_sisd_or_int_<mode>3): Likewise.
From-SVN: r226253
Alan Lawrence [Mon, 27 Jul 2015 15:55:23 +0000 (15:55 +0000)]
[ARM] PR/63870 Add a __builtin_lane_check
* config/arm/arm-builtins.c (enum arm_builtins):
Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
(ARM_BUILTIN_NEON_BASE): Rename macro to....
(ARM_BUILTIN_NEON_PATTERN_START): ...this.
(arm_init_neon_builtins): Register __builtin_arm_lane_check.
(arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
From-SVN: r226252
Alan Lawrence [Mon, 27 Jul 2015 15:44:26 +0000 (15:44 +0000)]
[ARM] PR/63870 Add qualifier to check lane bounds in expand
* config/arm/arm-builtins.c (enum arm_type_qualifiers):
Add qualifier_lane_index.
(arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
(arm_getlane_qualifiers): Use qualifier_lane_index.
(arm_lanemac_qualifiers): Rename to...
(arm_mac_n_qualifiers): ...this.
(LANEMAC_QUALIFIERS): Rename to...
(MAC_N_QUALIFIERS): ...this.
(arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
(arm_setlane_qualifiers): Use qualifier_lane_index.
(arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
(enum builtin_arg): Add NEON_ARG_LANE_INDEX.
(arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
(arm_expand_neon_builtin): Handle qualifier_lane_index.
* config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
* config/arm/arm.c (bounds_check): Likewise, improve error message.
(neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
* config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
(vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
qualifiers to TERNOP_IMM.
(vdup_lane): Change qualifiers to GETLANE.
(vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
(vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
vqdmlsl_n): Change qualifiers to MAC_N.
* config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
Remove call to neon_lane_bounds.
From-SVN: r226251
Wilco Dijkstra [Mon, 27 Jul 2015 15:02:55 +0000 (15:02 +0000)]
[PATCH][AArch64] Improve spill code - swap order in shl pattern
gcc/
* config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
Place integer variant first.
From-SVN: r226247
Thomas Schwinge [Mon, 27 Jul 2015 14:26:41 +0000 (16:26 +0200)]
Fix logic error in Fortran OpenACC parsing
gcc/fortran/
* parse.c (parse_oacc_structured_block): Fix logic error.
Reported by Mikael Morin <mikael.morin@sfr.fr>.
From-SVN: r226246
Matthew Wahab [Mon, 27 Jul 2015 13:07:09 +0000 (13:07 +0000)]
arm-arches.def: Add "armv6kz".
2015-07-27 Matthew Wahab <matthew.wahab@arm.com>
* config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
* config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
for armv6kz targets.
* config/arm/arm-cores.def: Replace 6ZK with 6KZ.
* config/arm/arm-protos.h (FL_ARCH6KZ): New.
(FL_FOR_ARCH6ZK): Remove.
(FL_FOR_ARCH6KZ): New.
(arm_arch6zk): New declaration.
* config/arm/arm-tables.opt: Regenerate.
* config/arm/arm.c (arm_arch6kz): New.
(arm_option_override): Set arm_arch6kz.
* config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
* config/arm/driver-arm.c: Add comment to "armv6zk" entry.
* doc/invoke.texi: Replace "armv6zk" with "armv6kz".
From-SVN: r226243
Marek Polacek [Mon, 27 Jul 2015 12:40:45 +0000 (12:40 +0000)]
re PR c++/66555 (Fails to warn for if (j == 0 && i == i))
PR c++/66555
PR c/54979
* c-common.c (find_array_ref_with_const_idx_r): New function.
(warn_tautological_cmp): New function.
* c-common.h (warn_tautological_cmp): Declare.
* c.opt (Wtautological-compare): New option.
* c-typeck.c (parser_build_binary_op): Call warn_tautological_cmp.
* call.c (build_new_op_1): Call warn_tautological_cmp.
* pt.c (tsubst_copy_and_build): Use sentinel to suppress tautological
compare warnings.
* doc/invoke.texi: Document -Wtautological-compare.
* c-c++-common/Wtautological-compare-1.c: New test.
From-SVN: r226242
Richard Biener [Mon, 27 Jul 2015 10:59:18 +0000 (10:59 +0000)]
genmatch.c (decision_tree::gen_gimple): Split out large subtrees into separate functions.
2015-07-27 Richard Biener <rguenther@suse.de>
* genmatch.c (decision_tree::gen_gimple): Split out large
subtrees into separate functions.
(decision_tree::gen_generic): Likewise.
From-SVN: r226241
GCC Administrator [Mon, 27 Jul 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r226240
Patrick Palka [Sun, 26 Jul 2015 17:04:31 +0000 (17:04 +0000)]
Fix PR c++/18969 (invalid return statement diagnosed too late)
gcc/cp/ChangeLog:
PR c++/18969
* typeck.c (check_return_expr): Also do the basic return-value
validity checking if processing_template_decl and yet types are
not dependent. Remove obsolete code.
gcc/testsuite/ChangeLog:
PR c++/18969
* g++.dg/template/pr18969.C: New test.
* g++.dg/template/pr18969-2.C: New test.
* g++.old-deja/g++.jason/overload.C: Remove return value in
template function returning void.
From-SVN: r226236
Paolo Carlini [Sun, 26 Jul 2015 09:17:03 +0000 (09:17 +0000)]
decl.c (poplevel): Use Use DECL_SOURCE_LOCATION and "%qD" in warning_at instead of "%q+D" in warning.
2015-07-26 Paolo Carlini <paolo.carlini@oracle.com>
* decl.c (poplevel): Use Use DECL_SOURCE_LOCATION and "%qD"
in warning_at instead of "%q+D" in warning.
(warn_extern_redeclared_static): Likewise for inform.
(check_redeclaration_no_default_args): Likewise for permerror.
(duplicate_decls): Likewise.
(check_previous_goto_1): Likewise for inform.
(check_goto, start_decl, check_for_uninitialized_const_var,
start_preparsed_function, finish_function§): Likewise.
* decl2.c (build_anon_union_vars, c_parse_final_cleanups): Likewise.
* init.c (sort_mem_initializers): Likewise.
* typeck.c (convert_for_initialization): Likewise for inform.
(maybe_warn_about_returning_address_of_local): Likewise.
* typeck2.c (abstract_virtuals_error_sfinae): Likewise for inform.
(cxx_incomplete_type_diagnostic): Likewise for emit_diagnostic.
From-SVN: r226234
Uros Bizjak [Sun, 26 Jul 2015 09:08:04 +0000 (11:08 +0200)]
pr66140.c (lpfc_bg_setup_bpl): Use unsigned immediates to avoid shift-overflow warnings.
* gcc.target/alpha/pr66140.c (lpfc_bg_setup_bpl): Use unsigned
immediates to avoid shift-overflow warnings.
From-SVN: r226233
Uros Bizjak [Sun, 26 Jul 2015 08:51:14 +0000 (10:51 +0200)]
alpha.c: Use SUBREG_P predicate.
* config/alpha/alpha.c: Use SUBREG_P predicate.
* config/alpha/predicates.md: Ditto.
From-SVN: r226232
GCC Administrator [Sun, 26 Jul 2015 00:16:17 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r226231
Patrick Palka [Sat, 25 Jul 2015 23:15:44 +0000 (23:15 +0000)]
re PR c++/66857 (Reference not bound to lvalue)
Fix PR c++/66857
gcc/cp/ChangeLog:
PR c++/66857
* cvt.c (ocp_convert): Don't call scalar_constant_value when
converting to a class type.
gcc/testsuite/ChangeLog:
PR c++/66857
* g++.dg/init/pr66857.C: New test.
From-SVN: r226228
Dominik Vogt [Sat, 25 Jul 2015 18:34:15 +0000 (18:34 +0000)]
S390: Clean up cross-compile for S390.
gcc/ChangeLog
* config.host (s390*-*-*): Include driver-native.c only when
building with s390* as host *and* target.
From-SVN: r226223
Oleg Endo [Sat, 25 Jul 2015 14:07:17 +0000 (14:07 +0000)]
re PR target/66930 (gengtype.c is miscompiled during stage2)
gcc/
PR target/66930
* config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
T bit register modified_between_p check.
From-SVN: r226218
Uros Bizjak [Sat, 25 Jul 2015 12:57:23 +0000 (14:57 +0200)]
ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.
From-SVN: r226217
Uros Bizjak [Sat, 25 Jul 2015 12:47:35 +0000 (14:47 +0200)]
i386.c: Use SUBREG_P predicate.
* config/i386/i386.c: Use SUBREG_P predicate.
* config/i386/i386.md: Ditto.
* config/i386/sse.md: Ditto.
* config/i386/predicates.md: Ditto.
From-SVN: r226216
Uros Bizjak [Sat, 25 Jul 2015 11:34:59 +0000 (13:34 +0200)]
re PR target/67004 (valgrind error in recog_memoized & shorten_branches)
PR target/67004
* config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
From-SVN: r226215
Sebastian Pop [Sat, 25 Jul 2015 09:29:11 +0000 (09:29 +0000)]
remove tree-browser
* Makefile.in: Remove use of TREEBROWSER.
* config.in: Regenerated.
* configure: Regenerated.
* configure.ac: Remove definition of TREEBROWSER.
* tree-browser.c: Removed.
* tree-browser.def: Removed.
From-SVN: r226214
Sebastian Pop [Sat, 25 Jul 2015 09:22:29 +0000 (09:22 +0000)]
dump reasons why graphite failed to detect a scop
When trying to analyze why Graphite does not handle a loop nest, it is easy to
look in the dumps of -fdump-tree-graphite-all to guess what has to be changed to
catch the loop. This patch makes the dumps a bit more verbose and useful.
* graphite-scop-detection.c: Include gimple-pretty-print.h.
(stmt_simple_for_scop_p): Print when a stmt is not handled in Graphite.
(scopdet_basic_block_info): Print when a loop or bb cannot be
represented in Graphite.
From-SVN: r226213
Uros Bizjak [Sat, 25 Jul 2015 09:19:24 +0000 (11:19 +0200)]
re PR target/66648 (incorrect memcpy expansion with unrolled_loop strategy at -O2)
PR target/66648
* config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
execution guard when min_size is less than size_needed.
testsuite/ChangeLog:
PR target/66648
* gcc.target/i386/pr66648.c: New test.
From-SVN: r226212
Sebastian Pop [Sat, 25 Jul 2015 09:14:55 +0000 (09:14 +0000)]
update doc for supported isl versions
* doc/install.texi: Document supported versions of ISL.
From-SVN: r226211
Tom de Vries [Sat, 25 Jul 2015 07:52:59 +0000 (07:52 +0000)]
Fixup graphite/uns-*.c testcases
2015-07-25 Tom de Vries <tom@codesourcery.com>
* gcc.dg/graphite/graphite.exp: Include uns-*.c files in
interchange_files and block_files variables.
* gcc.dg/graphite/uns-block-1.c (main): Change signed into unsigned
arithmetic.
* gcc.dg/graphite/uns-interchange-12.c: Same.
* gcc.dg/graphite/uns-interchange-14.c: Same.
* gcc.dg/graphite/uns-interchange-15.c: Same.
* gcc.dg/graphite/uns-interchange-9.c (foo): Same.
* gcc.dg/graphite/uns-interchange-mvt.c: Same.
From-SVN: r226209
Jason Merrill [Sat, 25 Jul 2015 07:12:31 +0000 (03:12 -0400)]
re PR c++/64969 (generic functions do not work with placeholder return types)
PR c++/64969
* pt.c (splice_late_return_type): Correct deduced return type for
abbreviated function template.
From-SVN: r226208
Jason Merrill [Sat, 25 Jul 2015 06:54:57 +0000 (02:54 -0400)]
re PR c++/64989 (constant-initialization of self-referencing array)
PR c++/64989
* pt.c (splice_late_return_type): Correct deduced return type for
abbreviated function template.
From-SVN: r226207
Jeff Law [Sat, 25 Jul 2015 05:45:42 +0000 (23:45 -0600)]
revert: re PR lto/66752 (spec2000 255.vortex performance compiled with GCC is ~20% lower than with CLANG)
Revert:
PR lto/66752
* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
unable to find X NE 0 in the tables, return X as the simplified
condition.
(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
to VISISTED_BBS. */
* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
after removing the control flow statement and unnecessary edges.
testsuite/
PR lto/66752
* gcc.dg/tree-ssa/pr66752-2.c: New test.
* gcc.dg/torture/pr66752-1.c: New test
* g++.dg/torture/pr66752-2.C: New test.
From-SVN: r226206
David Edelsohn [Sat, 25 Jul 2015 01:28:21 +0000 (01:28 +0000)]
Revert:
2015-07-23 Alexandre Oliva <aoliva@redhat.com>
From-SVN: r226202
GCC Administrator [Sat, 25 Jul 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r226199
Ian Lance Taylor [Sat, 25 Jul 2015 00:01:04 +0000 (00:01 +0000)]
syscall: Add ioctl consts from if_tun.h
During the gccgo build define constants from
some header files are processed by mksysinfo.sh and
added to syscall.go. In some cases the constants
are based on macros which are not processed
correctly by mksysinfo.sh. This adds the support
to generate the correct values for the TUN* constants
from linux/if_tun.h.
Fixes golang/go#11707
Reviewed-on: https://go-review.googlesource.com/12491
From-SVN: r226196
Uros Bizjak [Fri, 24 Jul 2015 22:21:54 +0000 (00:21 +0200)]
i386.c (ix86_va_start): Remove unneeded !TARGET_64BIT check.
* config/i386/i386.c (ix86_va_start): Remove
unneeded !TARGET_64BIT check.
(ix86_gimplify_va_arg): Ditto.
From-SVN: r226195
Tom de Vries [Fri, 24 Jul 2015 20:55:31 +0000 (20:55 +0000)]
Enable reductions without fassociative-math in graphite
2015-07-24 Tom de Vries <tom@codesourcery.com>
* graphite-sese-to-poly.c (build_poly_scop): Always call
rewrite_commutative_reductions_out_of_ssa.
From-SVN: r226194
Tom de Vries [Fri, 24 Jul 2015 20:55:22 +0000 (20:55 +0000)]
Don't allow unsafe reductions in graphite
2015-07-24 Tom de Vries <tom@codesourcery.com>
* graphite-sese-to-poly.c (is_reduction_operation_p): Limit
flag_associative_math to FLOAT_TYPE_P. Honour
TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
* gcc.dg/graphite/block-1.c: Xfail scan.
* gcc.dg/graphite/interchange-12.c: Same.
* gcc.dg/graphite/interchange-14.c: Same.
* gcc.dg/graphite/interchange-15.c: Same.
* gcc.dg/graphite/interchange-9.c: Same.
* gcc.dg/graphite/interchange-mvt.c: Same.
* gcc.dg/graphite/uns-block-1.c: New test.
* gcc.dg/graphite/uns-interchange-12.c: New test.
* gcc.dg/graphite/uns-interchange-14.c: New test.
* gcc.dg/graphite/uns-interchange-15.c: New test.
* gcc.dg/graphite/uns-interchange-9.c: New test.
* gcc.dg/graphite/uns-interchange-mvt.c: New test.
From-SVN: r226193
Manuel López-Ibáñez [Fri, 24 Jul 2015 20:20:13 +0000 (20:20 +0000)]
re PR c++/64079 (%+D in diagnostics breaks pragma GCC diagnostic)
2015-07-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/64079
* toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
and "%qD" in warning_at instead of "%q+D" in warning.
/testsuite
2015-07-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c++/64079
* c-c++-common/Wunused-function-1.c: New.
From-SVN: r226191
Uros Bizjak [Fri, 24 Jul 2015 19:03:45 +0000 (21:03 +0200)]
i386.c (ix86_call_abi_override): Call ix86_function_abi.
* config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
(ix86_function_abi): Cleanup.
From-SVN: r226187
Ian Lance Taylor [Fri, 24 Jul 2015 18:51:13 +0000 (18:51 +0000)]
compiler: Don't parse malformed receiver/parameters.
Fixes golang/go#11576.
Reviewed-on: https://go-review.googlesource.com/12157
From-SVN: r226185
Ian Lance Taylor [Fri, 24 Jul 2015 18:28:40 +0000 (18:28 +0000)]
compiler: Disallow rune literals with '\X'.
http://golang.org/ref/spec#Rune_literals states that rune literals
encoded as hex bytes must begin with lowercase '\x'.
Fixes golang/go#11575.
Reviewed-on: https://go-review.googlesource.com/12158
From-SVN: r226184
Jeff Law [Fri, 24 Jul 2015 18:20:44 +0000 (12:20 -0600)]
re PR other/66259 (Combined gcc and binutils build from git-master fails, with gas/as-new not existing)
PR other/66259
* config-ml.in: Reflects renaming of configure.in to configure.ac
* configure: Likewise
* configure.ac: Likewise
boehm-gc/
PR other/66259
* Makefile.direct: Reflects renaming of configure.in to configure.ac
* Makefile.dist: Likewise
* version.h: Likewise
* doc/README: Likewise
config/
PR other/66259
* gettext.m4: Reflects renaming of configure.in to configure.ac
* po.m4: Likewise
* stdint.m4: Likewise
* tcl.m4: Likewise
gcc/
PR other/66259
* acinclude.m4: Reflects renaming of configure.in to configure.ac
* configure: Likewise
* configure.ac: Likewise
* doc/install.texi: Likewise
* doc/tm.texi: Likewise
* doc/tm.texi.in: Likewise
gcc/ada/
PR other/66259
* prj-nmsc.adb: Reflects renaming of configure.in to configure.ac
* gcc-interface/Makefile.in: Likewise
intl/
PR other/66259
* configure: Reflects renaming of configure.in to configure.ac
libjava/
PR other/66259
* configure: Reflects renaming of configure.in to configure.ac
libjava/classpath
PR other/66259
* INSTALL: Reflects renaming of configure.in to configure.ac
* ltconfig: Likewise
* missing: Likewise
* m4/ac_prog_javac.m4: Likewise
* m4/ac_prog/javac_works.m4: Likewise
* resource/META-INF/mimetypes.default: Likewise
libjava/libltdl
PR other/66259
* THREADS: Reflects renaming of configure.in to configure.ac
liboffloadmic/
PR other/66259
* configure: Reflects renaming of configure.in to configure.ac
From-SVN: r226183
Ian Lance Taylor [Fri, 24 Jul 2015 17:22:03 +0000 (17:22 +0000)]
compiler: Don't make temporaries for constant expressions.
Fixes golang/go#11039.
Reviewed-on: https://go-review.googlesource.com/10645
From-SVN: r226180
Kyrylo Tkachov [Fri, 24 Jul 2015 16:46:04 +0000 (16:46 +0000)]
[obvious] Use std::swap instead of manually swapping in a few more places
* alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
manually swapping values.
* cse.c (fold_rtx): Likewise.
* lra-eliminations.c (form_sum): Likewise.
From-SVN: r226179
Joseph Myers [Fri, 24 Jul 2015 16:44:23 +0000 (17:44 +0100)]
* nl.po: Update.
From-SVN: r226177
Joseph Myers [Fri, 24 Jul 2015 16:41:44 +0000 (17:41 +0100)]
be.po, [...]: Update.
* be.po, da.po, de.po, el.po, es.po, fi.po, fr.po, hr.po, id.po,
ja.po, nl.po, ru.po, sr.po, sv.po, tr.po, vi.po, zh_CN.po,
zh_TW.po: Update.
* uk.po: New file.
From-SVN: r226175
Jonathan Wakely [Fri, 24 Jul 2015 16:30:04 +0000 (17:30 +0100)]
* include/bits/atomic_futex.h [_GLIBCXX_HAVE_LINUX_FUTEX]
(_M_load_and_test_until): Whitespace.
(_M_load_and_test): Value-initialize the unused durations.
(_M_load_when_equal): Add missing return value.
From-SVN: r226174
Uros Bizjak [Fri, 24 Jul 2015 16:25:56 +0000 (18:25 +0200)]
re PR target/64003 (valgrind complains about get_attr_length_nobnd in insn-attrtab.c from i386.md)
PR target/64003
* config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
* config/i386/i386.md (maybe_prefix_bnd): New attribute.
(*jcc_1, *jcc_2, jump, simple_return_internal)
(simple_return_pop_internal): Set attribute maybe_prefix_bnd.
Set length_nobnd attribute instead of length attribute.
(indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
(length_nobnd): Remove attribute.
(length): Remove length_nobnd processing.
From-SVN: r226173
Nathan Sidwell [Fri, 24 Jul 2015 16:13:04 +0000 (16:13 +0000)]
gimplify.c (omp_default_clause): New function.
* gimplify.c (omp_default_clause): New function. Reorganize flow
for clarity. Broken out of ...
(omp_notice_variable): ... here.
From-SVN: r226170
Gary Funck [Fri, 24 Jul 2015 16:10:39 +0000 (16:10 +0000)]
re PR middle-end/66984 (ICE: fold_binary changes type of operand, causing failure in verify_gimple_assign_binary)
2015-07-24 Gary Funck <gary@intrepid.com>
PR middle-end/66984
* fold-const.c (fold_binary_loc): Call fold_convert on arguments to
fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
From-SVN: r226168
Tom de Vries [Fri, 24 Jul 2015 15:00:59 +0000 (15:00 +0000)]
Add transform_to_exit_first_loop_alt dump success message
2015-07-24 Tom de Vries <tom@codesourcery.com>
* tree-parloops.c (gen_parallel_loop): Add debug print for alternative
exit-first loop transform.
* gcc.dg/parloops-exit-first-loop-alt-2.c: Use debug print for
alternative exit-first loop transform.
* gcc.dg/parloops-exit-first-loop-alt-3.c: Same.
* gcc.dg/parloops-exit-first-loop-alt-4.c: Same.
* gcc.dg/parloops-exit-first-loop-alt-5.c: Same.
* gcc.dg/parloops-exit-first-loop-alt-6.c: Same.
* gcc.dg/parloops-exit-first-loop-alt-7.c: Same.
* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: Same.
* gcc.dg/parloops-exit-first-loop-alt.c: Same.
* gfortran.dg/parloops-exit-first-loop-alt-2.f95: Same.
* gfortran.dg/parloops-exit-first-loop-alt.f95: Same.
From-SVN: r226164
Mikael Morin [Fri, 24 Jul 2015 14:44:59 +0000 (14:44 +0000)]
Fix gfortran.dg/class_to_type_4.f90 deallocation code misordering failure
PR fortran/64986
gcc/fortran/
* trans-expr.c (gfc_trans_assignment_1): Put component deallocation
code at the beginning of the block.
From-SVN: r226162
Cesar Philippidis [Fri, 24 Jul 2015 14:38:43 +0000 (07:38 -0700)]
re PR libgomp/66714 (ICE in loc_list_from_tree with -g)
PR 66714
gcc/
* tree-cfg.c (struct replace_decls_d): New struct.
(replace_block_vars_by_duplicates_1): New function.
(replace_block_vars_by_duplicates): Use it to replace the decls
in the value exprs by duplicates.
libgomp/
* testsuite/libgomp.c/pr66714.c: New test.
From-SVN: r226160
Szabolcs Nagy [Fri, 24 Jul 2015 14:30:41 +0000 (14:30 +0000)]
[AArch64] elf toolchain does not pass -shared linker option
2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
* config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
-shared, -symbolic, -rdynamic.
From-SVN: r226159
Szabolcs Nagy [Fri, 24 Jul 2015 14:27:55 +0000 (14:27 +0000)]
[AArch64] Fix LINUX_TARGET_LINK_SPEC to be consistent with ARM
2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
PR target/65711
* config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
-dynamic-linker within %{!static %{!shared, and -rdynamic within
%{!static.
From-SVN: r226158
Ilya Enkovich [Fri, 24 Jul 2015 13:15:49 +0000 (13:15 +0000)]
re PR ipa/66566 ([CHKP] ICE in early_inliner: internal compiler error: in operator[], at vec.h:714)
gcc/
PR ipa/66566
* ipa-inline-analysis.c (estimate_calls_size_and_time): Check
edge summary is available.
gcc/testsuite/
PR ipa/66566
* gcc.target/i386/mpx/pr66566.c: New test.
From-SVN: r226155
Richard Biener [Fri, 24 Jul 2015 12:39:08 +0000 (12:39 +0000)]
genmatch.c (struct dt_node): Add statistic fields.
2015-07-24 Richard Biener <rguenther@suse.de>
* genmatch.c (struct dt_node): Add statistic fields.
(dt_node::analyze): New method.
(decision_tree::gen_gimple): Call analyze on the root node
and print statistics to stderr.
(decision_tree::gen_generic): Likewise.
From-SVN: r226154
Richard Biener [Fri, 24 Jul 2015 12:36:00 +0000 (12:36 +0000)]
fold-const.c (fold_binary_loc): Move simplifying of comparisons against the highest or lowest possible integer ...
2015-07-24 Richard Biener <rguenther@suse.de>
* fold-const.c (fold_binary_loc): Move simplifying of comparisons
against the highest or lowest possible integer ...
* match.pd: ... as patterns here.
From-SVN: r226153
Richard Biener [Fri, 24 Jul 2015 12:35:22 +0000 (12:35 +0000)]
genmatch.c (struct capture_info): Add same_as field.
2015-07-24 Richard Biener <rguenther@suse.de>
* genmatch.c (struct capture_info): Add same_as field.
(capture_info::capture_info): Initialize same_as.
(capture_info::walk_match): Compute same_as.
(capture_info::walk_result): Compute stuff for the leader.
(capture_info::walk_c_expr): Likewise.
(dt_simplify::gen_1): Only look at leaders when deciding
to force no side-effects or emit side-effects of omitted operands.
From-SVN: r226152
H.J. Lu [Fri, 24 Jul 2015 12:08:00 +0000 (12:08 +0000)]
Add a testcase for PR bootstrap/66978
PR bootstrap/66978
* gcc.target/i386/pr66978.c: New test.
From-SVN: r226150
Andreas Krebbel [Fri, 24 Jul 2015 11:29:50 +0000 (11:29 +0000)]
S/390: Fix cfi for GPR 2 FPR saves
gcc/ChangeLog:
2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
reg note to the GPR -> FPR save instructions.
gcc/testsuite/ChangeLog:
2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/gpr2fprsavecfi.c: New test.
From-SVN: r226149
Andreas Krebbel [Fri, 24 Jul 2015 11:28:06 +0000 (11:28 +0000)]
[PATCH] S/390: Improve risbg usage
gcc/ChangeLog:
2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.c (s390_rtx_costs): Make risbg patterns
cheaper.
(s390_expand_insv): Don't generate risbg pattern for constant zero
sources.
* config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
("*insv<mode>_z10_appendbitsleft"): New pattern definitions. New
splitters.
gcc/testsuite/ChangeLog:
2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.target/s390/insv-1.c: New test.
* gcc.target/s390/insv-2.c: New test.
* gcc.target/s390/insv-3.c: New test.
From-SVN: r226148
Dominik Vogt [Fri, 24 Jul 2015 11:25:01 +0000 (11:25 +0000)]
[PATCH 4/4] S390 -march=native related fixes
gcc/ChangeLog
* config/s390/s390.c (s390_reorg): Clean up handling of processors with
-mtune=
(s390_issue_rate): Likewise.
(s390_sched_reorder): Likewise.
(s390_sched_variable_issue): Likewise.
(s390_loop_unroll_adjust): Likewise.
(s390_option_override): Likewise.
From-SVN: r226147
Dominik Vogt [Fri, 24 Jul 2015 11:23:53 +0000 (11:23 +0000)]
[PATCH 3/4] S390 -march=native related fixes
gcc/ChangeLog
* config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
processor capabilities with -march=native.
* config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
(DRIVER_SELF_SPECS): Likewise. Join specs for 31 and 64 bit.
(S390_TARGET_BITS_STRING): Macro to simplify specs.
From-SVN: r226146
Dominik Vogt [Fri, 24 Jul 2015 11:22:32 +0000 (11:22 +0000)]
[PATCH 2/4] S390 -march=native related fixes
gcc/ChangeLog
* config/s390/s390.c (s390_issue_rate): Handle PROCESSOR_2094_Z9_EC.
(s390_option_override): Likewise.
(s390_adjust_priority): Likewise.
From-SVN: r226145
Dominik Vogt [Fri, 24 Jul 2015 11:19:59 +0000 (11:19 +0000)]
S390 -march=native related fixes
gcc/ChangeLog:
* config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS when
cross compiling.
From-SVN: r226144
Richard Biener [Fri, 24 Jul 2015 10:31:21 +0000 (10:31 +0000)]
fold-const.c (maybe_canonicalize_comparison_1): Move A code CST canonicalization ...
2015-07-24 Richard Biener <rguenther@suse.de>
* fold-const.c (maybe_canonicalize_comparison_1): Move
A code CST canonicalization ...
* match.pd: ... to a pattern here.
cp/
* init.c (build_vec_init): Build iterator bound in the same
type as the iterator.
From-SVN: r226143
Tom de Vries [Fri, 24 Jul 2015 10:14:34 +0000 (10:14 +0000)]
Remove xfail in autopar/uns-outer-4.c
2015-07-24 Tom de Vries <tom@codesourcery.com>
* gcc.dg/autopar/uns-outer-4.c: Remove loopfn xfail.
From-SVN: r226142
Jiong Wang [Fri, 24 Jul 2015 09:06:53 +0000 (09:06 +0000)]
[AArch64] Revert REG_ALLOC_ORDER/HONOR_REG_ALLOC_ORDER
2015-07-24 Jiong Wang <jiong.wang@arm.com>
Revert:
2015-07-22 Jiong Wang <jiong.wang@arm.com>
PR target/63521
* config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
(HONOR_REG_ALLOC_ORDER): Define.
From-SVN: r226141
Richard Biener [Fri, 24 Jul 2015 08:31:07 +0000 (08:31 +0000)]
genmatch.c (add_operator): Allow SSA_NAME as predicate.
2015-07-24 Richard Biener <rguenther@suse.de>
* genmatch.c (add_operator): Allow SSA_NAME as predicate.
* fold-const.c (fold_comparison): Move parameter does not
alias &local simplification ...
* match.pd: ... as a pattern here.
From-SVN: r226140
Richard Biener [Fri, 24 Jul 2015 08:25:41 +0000 (08:25 +0000)]
gimple-fold.c (replace_stmt_with_simplification): Special-case valueizing call operands.
2015-07-24 Richard Biener <rguenther@suse.de>
* gimple-fold.c (replace_stmt_with_simplification): Special-case
valueizing call operands.
* gimple-match-head.c (maybe_push_res_to_seq): Take
number of call arguments from ops array.
(do_valueize): New function.
(gimple_simplify): Return true if valueization changed
any operand even if the result didn't simplify further.
From-SVN: r226139
Michael Haubenwallner [Fri, 24 Jul 2015 07:05:19 +0000 (07:05 +0000)]
libstdc++-v3/fragment.am (AM_CPPFLAGS): Add CPPFLAGS
2015-07-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
* fragment.am (AM_CPPFLAGS): Add CPPFLAGS.
* Makefile.in: Regenerate.
* doc/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* libsupc++/Makefile.in: Regenerate.
* po/Makefile.in: Regenerate.
* python/Makefile.in: Regenerate.
* src/Makefile.in: Regenerate.
* src/c++11/Makefile.in: Regenerate.
* src/c++98/Makefile.in: Regenerate.
* src/filesystem/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
From-SVN: r226138
Naveen H.S [Fri, 24 Jul 2015 04:50:41 +0000 (04:50 +0000)]
re PR middle-end/25530 ((unsigned / 2)*2 is not changed into unsigned &~1)
PR middle-end/25530
2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
gcc/testsuite/ChangeLog:
* gcc.dg/pr25530.c: New test.
gcc/ChangeLog:
* match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
From-SVN: r226137
Naveen H.S [Fri, 24 Jul 2015 04:47:48 +0000 (04:47 +0000)]
re PR middle-end/25529 ((unsigned * 2)/2 is not changed into unsigned &0x7FFFFFFF)
PR middle-end/25529
2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
gcc/testsuite/ChangeLog:
* gcc.dg/pr25529.c: New test.
gcc/ChangeLog:
* match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
From-SVN: r226136
Kugan Vivekanandarajah [Fri, 24 Jul 2015 01:43:22 +0000 (01:43 +0000)]
reg_equal_test.c: New test.
gcc/testsuite/ChangeLog:
2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
* gcc.target/arm/reg_equal_test.c: New test.
gcc/ChangeLog:
2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
* config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
instruction.
From-SVN: r226135
Kugan Vivekanandarajah [Fri, 24 Jul 2015 01:38:19 +0000 (01:38 +0000)]
cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor clean up.
gcc/ChangeLog:
2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
* cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
clean up.
From-SVN: r226134
GCC Administrator [Fri, 24 Jul 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r226132
Uros Bizjak [Thu, 23 Jul 2015 21:49:34 +0000 (23:49 +0200)]
i386.c (ix86_build_builtin_va_list_64): Rename from ix86_build_builtin_va_list_abi.
* config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
from ix86_build_builtin_va_list_abi. Handle only 64bit non-MS_ABI
targets here.
(ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
ms_va_list_type_node initialization.
From-SVN: r226127
David Malcolm [Thu, 23 Jul 2015 21:19:07 +0000 (21:19 +0000)]
jit: supply MULTILIB_DEFAULTS as arguments when invoking driver
gcc/jit/ChangeLog:
* jit-playback.c (invoke_driver): Convert local "argvec"
to an auto_argvec, so that it owns copies of the strings,
rather than borrows them, updating ADD_ARG to use xstrdup
and special-casing the NULL terminator to avoid
xstrdup (NULL). Call add_multilib_driver_arguments at the front
of the arguments.
(MULTILIB_DEFAULTS): Provide a default definition.
(multilib_defaults_raw): New constant array.
(gcc::jit::playback::context::add_multilib_driver_arguments): New
method.
* jit-playback.h
(gcc::jit::playback::context::add_multilib_driver_arguments): New
method.
* docs/internals/test-hello-world.exe.log.txt: Update.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
From-SVN: r226126
Jeff Law [Thu, 23 Jul 2015 20:42:15 +0000 (14:42 -0600)]
re PR lto/66752 (spec2000 255.vortex performance compiled with GCC is ~20% lower than with CLANG)
PR lto/66752
* tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
unable to find X NE 0 in the tables, return X as the simplified
condition.
(fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
to VISISTED_BBS. */
* tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
after removing the control flow statement and unnecessary edges.
testsuite/
PR lto/66752
* gcc.dg/tree-ssa/pr66752-2.c: New test.
* gcc.dg/torture/pr66752-1.c: New test
* g++.dg/torture/pr66752-2.C: New test.
From-SVN: r226125
Ian Lance Taylor [Thu, 23 Jul 2015 19:57:22 +0000 (19:57 +0000)]
compiler: Make empty interface types for vars during parse time.
When making the type for a variable with an empty interface type,
the parser makes an interface type with a NULL method set and relies
on later passes to correct this.
For sink variables, which are ignored in later passes, the interface
method table is never finalized and a compile time assertion is issued.
Instead, the initial type generated by the parser should be the empty
interface type.
Fixes golang/go#11579.
Reviewed-on: https://go-review.googlesource.com/12049
From-SVN: r226123
Ian Lance Taylor [Thu, 23 Jul 2015 19:33:26 +0000 (19:33 +0000)]
compiler: Check for errors in the underlying types of unary expressions.
Fixes golang/go#11592.
Reviewed-on: https://go-review.googlesource.com/12044
From-SVN: r226122
Bernd Edlinger [Thu, 23 Jul 2015 19:01:03 +0000 (19:01 +0000)]
tree-pass.h (get_current_pass_name): Removed.
2015-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
* tree-pass.h (get_current_pass_name): Removed.
From-SVN: r226121
Marek Polacek [Thu, 23 Jul 2015 18:57:25 +0000 (18:57 +0000)]
re PR c++/66572 (Bogus Wlogical-op warning for operands coming from template instantiations)
PR c++/66572
* pt.c (tsubst_copy_and_build): Add warn_logical_op sentinel.
* g++.dg/warn/Wlogical-op-2.C: New test.
From-SVN: r226120
Bernd Schmidt [Thu, 23 Jul 2015 18:05:51 +0000 (18:05 +0000)]
* MAINTAINERS: Update my email address.
From-SVN: r226118
DJ Delorie [Thu, 23 Jul 2015 17:57:34 +0000 (13:57 -0400)]
functional_hash.h: Add specializations for __intN types.
* include/bits/functional_hash.h: Add specializations for __intN
types.
* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp (__gnu_pbds):
Guard against values that might exceed size_t's precision.
From-SVN: r226117
Marek Polacek [Thu, 23 Jul 2015 17:14:31 +0000 (17:14 +0000)]
c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
* c-ubsan.c (ubsan_instrument_division): Use unshare_expr throughout.
(ubsan_instrument_shift): Likewise.
From-SVN: r226116
Alexandre Oliva [Thu, 23 Jul 2015 15:34:49 +0000 (15:34 +0000)]
[PR64164] Drop copyrename, use coalescible partition as base when optimizing.
for gcc/ChangeLog
PR rtl-optimization/64164
* Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
* tree-ssa-copyrename.c: Removed.
* opts.c (default_options_table): Drop -ftree-copyrename. Add
-ftree-coalesce-vars.
* passes.def: Drop all occurrences of pass_rename_ssa_copies.
* common.opt (ftree-copyrename): Ignore.
(ftree-coalesce-inlined-vars): Likewise.
* doc/invoke.texi: Remove the ignored options above.
* gimple-expr.h (gimple_can_coalesce_p): Move declaration
* tree-ssa-coalesce.h: ... here.
* tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
headers required by it.
* gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
across variables when flag_tree_coalesce_vars. Check register
use and promoted modes to allow coalescing. Moved to
tree-ssa-coalesce.c.
* tree-ssa-live.c (struct tree_int_map_hasher): Move along
with its member functions to tree-ssa-coalesce.c.
(var_map_base_init): Likewise. Renamed to
compute_samebase_partition_bases.
(partition_view_normal): Drop want_bases parameter.
(partition_view_bitmap): Likewise.
* tree-ssa-live.h: Adjust declarations.
* tree-ssa-coalesce.c: Include explow.h.
(build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
default defs at the entry point.
(dump_part_var_map): New.
(compute_optimized_partition_bases): New, called by...
(coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
of compute_samebase_partition_bases. Adjust.
* alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
* cfgexpand.c (leader_merge): New.
(get_rtl_for_parm_ssa_default_def): New.
(set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
(expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
redundant MEM attr setting.
(expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
from...
(expand_one_stack_var): ... this. New wrapper to check and
skip already expanded SSA partitions.
(record_alignment_for_reg_var): New, factored out of...
(expand_one_var): ... this.
(expand_one_ssa_partition): New.
(adjust_one_expanded_partition_var): New.
(expand_one_register_var): Check and skip already expanded SSA
partitions.
(expand_used_vars): Don't create DECLs for anonymous SSA
names. Expand all SSA partitions, then adjust all SSA names.
(pass::execute): Replace the loops that set
SA.partition_to_pseudo from partition leaders and cleared
DECL_RTL for multi-location variables, and that which used to
rename vars and set attrs, with one that clears DECL_RTL and
checks that PARMs and RESULTs default_defs match DECL_RTL.
* cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
* emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
* explow.c (promote_ssa_mode): New.
* explow.h (promote_ssa_mode): Declare.
* expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
* function.c: Include cfgexpand.h.
(use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
(use_register_for_parm_decl): Wrapper for the above to
special-case the result_ptr.
(rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
(split_complex_args): Take assign_parm_data_all argument.
Pass it to rtl_for_parm. Set up rtl and context for split
args.
(assign_parms_augmented_arg_list): Adjust.
(maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
multiple locations. Recognize split complex args.
(assign_parm_adjust_stack_rtl): Add all and parm arguments,
for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
(assign_parm_setup_block): Prefer SSA-assigned location.
(assign_parm_setup_reg): Likewise. Use entry_parm for equiv
if stack_parm is NULL.
(assign_parm_setup_stack): Prefer SSA-assigned location.
(assign_parms): Maybe reset DECL_RTL of params. Adjust stack
rtl before testing for pointer bounds. Special-case result_ptr.
(expand_function_start): Maybe reset DECL_RTL of result.
Prefer SSA-assigned location for result and static chain.
Factor out DECL_RESULT and SET_DECL_RTL.
* tree-outof-ssa.c (insert_value_copy_on_edge): Handle
anonymous SSA names. Use promote_ssa_mode.
(get_temp_reg): Likewise.
(remove_ssa_form): Adjust.
* stor-layout.c (layout_decl): Don't set mem attributes of
non-MEMs.
* var-tracking.c (dataflow_set_clear_at_call): Take call_insn
and get its reg_usage for reg invalidation.
(compute_bb_dataflow): Pass it insn.
(emit_notes_in_bb): Likewise.
for gcc/testsuite/ChangeLog
* gcc.dg/guality/pr54200.c: Add -fno-tree-coalesce-vars.
* gcc.dg/ssp-1.c: Make counter a register.
* gcc.dg/ssp-2.c: Likewise.
* gcc.dg/torture/parm-coalesce.c: New.
From-SVN: r226113
Segher Boessenkool [Thu, 23 Jul 2015 14:37:57 +0000 (16:37 +0200)]
re PR target/66217 (PowerPC rotate/shift/mask instructions not optimal)
PR target/66217
* config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
prototype.
* config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
(rs6000_emit_2insn_and): Handle dot forms.
* config/rs6000/rs6000.md (and<mode>3): Adjust.
(*and<mode>3_2insn): Remove TODO. Adjust. Add "type" attr.
(*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
From-SVN: r226112
Richard Biener [Thu, 23 Jul 2015 14:31:44 +0000 (14:31 +0000)]
generic-match-head.c: Include cgraph.h.
2015-07-23 Richard Biener <rguenther@suse.de>
* generic-match-head.c: Include cgraph.h.
* gimple-match-head.c: Likewise.
* tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
SSA names.
* fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
* match.pd: ...to a pattern here. Add &A ==/!= 0 simplification
pattern.
From-SVN: r226111