gcc.git
10 years agovsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.
Bill Schmidt [Fri, 18 Apr 2014 13:31:57 +0000 (13:31 +0000)]
vsx.md (vsx_xxmrghw_<mode>): Adjust for little-endian.

[gcc]

2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust for
little-endian.
(vsx_xxmrglw_<mode>): Likewise.

[gcc/testsuite]

2014-04-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.dg/vmx/merge-vsx.c: Add V4SI and V4SF tests.
* gcc.dg/vmx/merge-vsx-be-order.c: Likewise.

From-SVN: r209516

10 years agoDaily bump.
GCC Administrator [Fri, 18 Apr 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r209513

10 years agogofrontend: deduplicate C syscall function declarations
Ian Lance Taylor [Thu, 17 Apr 2014 23:39:23 +0000 (23:39 +0000)]
gofrontend: deduplicate C syscall function declarations

A gccgo language extension allows a function to be declared multiple
times. Avoid the use of this extension by dedeplicating declarations
in mksyscall.awk.

From-SVN: r209508

10 years agoruntime: remove use of obsolete map deletion syntax
Ian Lance Taylor [Thu, 17 Apr 2014 23:27:31 +0000 (23:27 +0000)]
runtime: remove use of obsolete map deletion syntax

The use of this syntax was eliminated upstream in Go 992248b2adc2,
but this particular use slipped through somehow.

From-SVN: r209506

10 years agogofrontend: avoid use of unsafe.Sizeof extension
Ian Lance Taylor [Thu, 17 Apr 2014 23:13:39 +0000 (23:13 +0000)]
gofrontend: avoid use of unsafe.Sizeof extension

Avoid the use of a gccgo language extension which allows unsafe.Sizeof
to accept a type by passing an expression of the relevant type.

From-SVN: r209503

10 years agore PR c++/59200 (ICE with invalid alias template use)
Paolo Carlini [Thu, 17 Apr 2014 21:56:46 +0000 (21:56 +0000)]
re PR c++/59200 (ICE with invalid alias template use)

2014-04-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/59200
* g++.dg/cpp0x/alias-decl-42.C: New.

From-SVN: r209499

10 years agore PR target/60876 (2014-04-17 change to machmode.h breaks PowerPC)
Michael Meissner [Thu, 17 Apr 2014 21:50:58 +0000 (21:50 +0000)]
re PR target/60876 (2014-04-17 change to machmode.h breaks PowerPC)

2014-04-17  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60876
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Make sure
GET_MODE_SIZE gets passed an enum machine_mode type and not
integer.
(rs6000_init_hard_regno_mode_ok): Likewise.

From-SVN: r209498

10 years agocompiler: Use backend interface for constant expressions.
Chris Manghane [Thu, 17 Apr 2014 20:42:31 +0000 (20:42 +0000)]
compiler: Use backend interface for constant expressions.

* go-gcc.cc (Gcc_backend::named_constant_expression): New
function.

From-SVN: r209495

10 years agore PR go/60870 (go interface methods broken on ppc64le (bug296.go))
Ian Lance Taylor [Thu, 17 Apr 2014 19:27:22 +0000 (19:27 +0000)]
re PR go/60870 (go interface methods broken on ppc64le (bug296.go))

PR go/60870

compiler: Don't convert function type for an interface method.

For an interface method the function type is the type without
the receiver, which is wrong since we are passing a receiver.
The interface method will always have the correct type in this
case, so no type conversion is necessary.

Also don't do the type conversion when calling a named
function, since in that case the type is also always correct.

The type can be wrong, and the conversion required, when the
function type refers to itself recursively.

From-SVN: r209494

10 years agocompiler: Define immutability for numeric, constant, type info, type conversion,...
Ian Lance Taylor [Thu, 17 Apr 2014 19:10:27 +0000 (19:10 +0000)]
compiler: Define immutability for numeric, constant, type info, type conversion, and addressof expressions.

From-SVN: r209493

10 years agoipa-inline.c (inline_small_functions): Account only non-cold functions.
Jan Hubicka [Thu, 17 Apr 2014 18:35:54 +0000 (20:35 +0200)]
ipa-inline.c (inline_small_functions): Account only non-cold functions.

* ipa-inline.c (inline_small_functions): Account only non-cold
functions.
* doc/invoke.texi (inline-unit-growth): Update documentation.

From-SVN: r209490

10 years agors6000.md (addti3, subti3): New.
Pat Haugen [Thu, 17 Apr 2014 18:26:47 +0000 (18:26 +0000)]
rs6000.md (addti3, subti3): New.

* config/rs6000/rs6000.md (addti3, subti3): New.

* gcc.target/powerpc/ti_math1.c: New.
* gcc.target/powerpc/ti_math2.c: New.

From-SVN: r209489

10 years agoGenerate "xor reg, reg" if optimizing for size
H.J. Lu [Thu, 17 Apr 2014 15:19:34 +0000 (15:19 +0000)]
Generate "xor reg, reg" if optimizing for size

PR target/60863
* config/i386/i386.c (ix86_expand_clear): Remove outdated
comment.  Check optimize_insn_for_size_p instead of
optimize_insn_for_speed_p.

From-SVN: r209488

10 years agogimple-iterator.c (gsi_start_edge): New function.
Martin Jambor [Thu, 17 Apr 2014 13:53:59 +0000 (15:53 +0200)]
gimple-iterator.c (gsi_start_edge): New function.

2014-04-17  Martin Jambor  <mjambor@suse.cz>

* gimple-iterator.c (gsi_start_edge): New function.
* gimple-iterator.h (gsi_start_edge): Declare.
* tree-sra.c (single_non_eh_succ): New function.
(disqualify_ops_if_throwing_stmt): Renamed to
disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
having one non-EH successor BB.
(sra_modify_expr): If stmt ends bb, use single non-EH successor to
generate loads into replacements.
(sra_modify_assign): Likewise and and also use the simple path for
such statements.
(sra_modify_function_body): Commit statements on edges.

testsuite/
* gnat.dg/opt34.adb: New.
* gnat.dg/opt34_pkg.ads: Likewise.

From-SVN: r209487

10 years agore PR tree-optimization/60849 (bogus comparison result type)
Richard Biener [Thu, 17 Apr 2014 13:50:55 +0000 (13:50 +0000)]
re PR tree-optimization/60849 (bogus comparison result type)

2014-04-17  Richard Biener  <rguenther@suse.de>

PR middle-end/60849
* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow vector
comparison results and add clarifying comment.

From-SVN: r209486

10 years agogenmodes.c (struct mode_data): Add need_bytesize_adj field.
Jakub Jelinek [Thu, 17 Apr 2014 12:49:49 +0000 (14:49 +0200)]
genmodes.c (struct mode_data): Add need_bytesize_adj field.

* genmodes.c (struct mode_data): Add need_bytesize_adj field.
(blank_mode): Initialize it.
(emit_mode_size_inline, emit_mode_nunits_inline,
emit_mode_inner_inline): New functions.
(emit_insn_modes_h): Call them and surround their output with
#if GCC_VERSION >= 4001 ... #endif.
* machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
For GCC_VERSION >= 4001 use mode_*_inline routines instead of
mode_* arrays if the argument is __builtin_constant_p.
* lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
is enum machine_mode.
fortran/
* trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
argument is enum machine_mode.

From-SVN: r209484

10 years agopass cfun to pass::execute
Trevor Saunders [Thu, 17 Apr 2014 12:37:34 +0000 (12:37 +0000)]
pass cfun to pass::execute

gcc/
* passes.c (opt_pass::execute): Adjust.
(pass_manager::execute_pass_mode_switching): Likewise.
(early_local_passes::execute): Likewise.
(execute_one_pass): Pass cfun to the pass's execute method.
* tree-pass.h (opt_pass::execute): Add function * argument.
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
config/sparc/sparc.c, cprop.c, dce.c, df-core.c, dse.c, dwarf2cfi.c,
except.c, final.c, function.c, fwprop.c, gcse.c, gimple-low.c,
gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
ipa-inline-analysis.c, ipa-inline.c, ipa-profile.c, ipa-pure-const.c,
ipa-reference.c, ipa-split.c, ipa.c, ira.c, jump.c, loop-init.c,
lower-subreg.c, mode-switching.c, omp-low.c, postreload-gcse.c,
postreload.c, predict.c, recog.c, ree.c, reg-stack.c, regcprop.c,
reginfo.c, regrename.c, reorg.c, sched-rgn.c, stack-ptr-mod.c,
store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-ssa-ccp.c,
tree-ssa-copy.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
Adjust.

From-SVN: r209482

10 years agopass current function to opt_pass::gate ()
Trevor Saunders [Thu, 17 Apr 2014 12:37:16 +0000 (12:37 +0000)]
pass current function to opt_pass::gate ()

gcc/
* passes.c (opt_pass::gate): Take function * argument.
(gate_all_early_local_passes): Merge into
(early_local_passes::gate): this.
(gate_all_early_optimizations): Merge into
(all_early_optimizations::gate): this.
(gate_all_optimizations): Mege into
(all_optimizations::gate): this.
(gate_all_optimizations_g): Merge into
(all_optimizations_g::gate): this.
(gate_rest_of_compilation): Mege into
(rest_of_compilation::gate): this.
(gate_postreload): Merge into
(postreload::gate): this.
(dump_one_pass): Pass cfun to the pass's gate method.
(execute_ipa_summary_passes): Likewise.
(execute_one_pass): Likewise.
(ipa_write_summaries_2): Likewise.
(ipa_write_optimization_summaries_1): Likewise.
(ipa_read_summaries_1): Likewise.
(ipa_read_optimization_summaries_1): Likewise.
(execute_ipa_stmt_fixups): Likewise.
* tree-pass.h (opt_pass::gate): Add function * argument.
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
combine-stack-adj.c, combine.c, compare-elim.c,
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
config/rl78/rl78.c, config/sh/sh_optimize_sett_clrt.cc,
config/sh/sh_treg_combine.cc, config/sparc/sparc.c, cprop.c, cse.c,
dce.c, df-core.c, dse.c, dwarf2cfi.c, except.c,  fwprop.c, gcse.c,
gimple-ssa-isolate-paths.c, gimple-ssa-strength-reduction.c,
graphite.c, ifcvt.c, init-regs.c, ipa-cp.c, ipa-devirt.c,
ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
loop-init.c, lower-subreg.c, mode-switching.c, modulo-sched.c,
omp-low.c, postreload-gcse.c, postreload.c, predict.c, recog.c, ree.c,
reg-stack.c, regcprop.c, regrename.c, reorg.c, sched-rgn.c,
store-motion.c, tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c,
tree-cfgcleanup.c, tree-complex.c, tree-eh.c, tree-emutls.c,
tree-if-conv.c, tree-into-ssa.c, tree-loop-distribution.c,
tree-nrv.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
tree-ssa.c, tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c, tsan.c, ubsan.c,
var-tracking.c, vtable-verify.c, web.c: Adjust.

gcc/testsuite/
* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfasign.c,
gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfasign.c: Adjust.

From-SVN: r209481

10 years agoenable -Woverloaded-virtual when available
Trevor Saunders [Thu, 17 Apr 2014 12:37:05 +0000 (12:37 +0000)]
enable -Woverloaded-virtual when available

gcc/
* configure.ac: Check for -Woverloaded-virtual and enable it if found.
* configure: Regenerate.

From-SVN: r209480

10 years agoremove has_gate
Trevor Saunders [Thu, 17 Apr 2014 12:36:56 +0000 (12:36 +0000)]
remove has_gate

gcc/
* passes.c (dump_one_pass): don't check pass->has_gate.
(execute_ipa_summary_passes): Likewise.
(execute_one_pass): Likewise.
(ipa_write_summaries_2): Likewise.
(ipa_write_optimization_summaries_1): Likewise.
(ipa_read_optimization_summaries_1): Likewise.
(execute_ipa_stmt_fixups): Likewise.
* tree-pass.h (pass_data::has_gate): Remove.
* asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c, cfgcleanup.c,
cfgexpand.c, cfgrtl.c, cgraphbuild.c, combine-stack-adj.c, combine.c,
compare-elim.c, config/arc/arc.c, config/epiphany/mode-switch-use.c,
config/epiphany/resolve-sw-modes.c, config/i386/i386.c,
config/mips/mips.c, config/rl78/rl78.c, config/s390/s390.c,
config/sh/sh_optimize_sett_clrt.cc, config/sh/sh_treg_combine.cc,
config/sparc/sparc.c, cprop.c, cse.c, dce.c, df-core.c, dse.c,
dwarf2cfi.c, except.c, final.c, function.c, fwprop.c, gcse.c,
gimple-low.c, gimple-ssa-isolate-paths.c,
gimple-ssa-strength-reduction.c, graphite.c, ifcvt.c, init-regs.c,
ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c, ipa.c,
ira.c, jump.c, loop-init.c, lower-subreg.c, mode-switching.c,
modulo-sched.c, omp-low.c, postreload-gcse.c, postreload.c, predict.c,
recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
reorg.c, sched-rgn.c, stack-ptr-mod.c, store-motion.c, tracer.c,
trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
tree-complex.c, tree-eh.c, tree-emutls.c, tree-if-conv.c,
tree-into-ssa.c, tree-loop-distribution.c, tree-nrv.c,
tree-object-size.c, tree-parloops.c, tree-predcom.c, tree-profile.c,
tree-sra.c, tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
tree-ssa-ifcombine.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
tree-ssa-loop-ivcanon.c, tree-ssa-loop-prefetch.c,
tree-ssa-loop-unswitch.c, tree-ssa-loop.c, tree-ssa-math-opts.c,
tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
tree-ssa-structalias.c, tree-ssa-uncprop.c, tree-ssa-uninit.c,
tree-ssa.c, tree-ssanames.c, tree-stdarg.c, tree-switch-conversion.c,
tree-tailcall.c, tree-vect-generic.c, tree-vectorizer.c, tree-vrp.c,
tree.c, tsan.c, ubsan.c, var-tracking.c, vtable-verify.c, web.c:
Adjust.

gcc/testsuite/
* g++.dg/plugin/dumb_plugin.c, g++.dg/plugin/selfassign.c,
gcc.dg/plugin/one_time_plugin.c, gcc.dg/plugin/selfassign.c: Adjust.

From-SVN: r209479

10 years agomerge register_dump_files_1 into register_dump_files and remove more fiddling with...
Trevor Saunders [Thu, 17 Apr 2014 12:36:41 +0000 (12:36 +0000)]
merge register_dump_files_1 into register_dump_files and remove more fiddling with properties

gcc/
* pass_manager.h (pass_manager::register_dump_files_1): Remove declaration.
* passes.c (pass_manager::register_dump_files_1): Merge into
(pass_manager::register_dump_files): this, and remove its handling of
properties since the pass always has the properties anyway.
(pass_manager::pass_manager): Adjust.

From-SVN: r209478

10 years agoremove properties stuff from register_dump_files_1
Trevor Saunders [Thu, 17 Apr 2014 12:36:35 +0000 (12:36 +0000)]
remove properties stuff from register_dump_files_1

gcc/
* pass_manager.h (pass_manager::register_dump_files_1): Adjust.
* passes.c (pass_manager::register_dump_files_1): Remove dead code
dealing with properties.
(pass_manager::register_dump_files): Adjust.

From-SVN: r209477

10 years agore PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))
Jakub Jelinek [Thu, 17 Apr 2014 12:25:25 +0000 (14:25 +0200)]
re PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))

PR sanitizer/56781
lto-plugin/
* Makefile.am (CFLAGS, LDFLAGS): Filter out -fsanitize=address.
(liblto_plugin_la_LIBADD, liblto_plugin_la_LDFLAGS,
liblto_plugin_la_DEPENDENCIES): Prefer ../libiberty/noasan/libiberty.a
over ../libiberty/pic/libiberty.a if the former exists.
* Makefile.in: Regenerated.
libiberty/
* maint-tool: Also emit rule for noasan/ subdirectory.
* configure.ac (NOASANFLAG): Set and substitute.
* Makefile.in: Regenerated.
(NOASANFLAG): Set.
(all, $(TARGETLIB), mostlyclean): Handle noasan subdir like pic
subdir.
(stamp-noasandir): New goal.
* configure: Regenerated.

From-SVN: r209476

10 years agore PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))
Jakub Jelinek [Thu, 17 Apr 2014 12:23:28 +0000 (14:23 +0200)]
re PR sanitizer/56781 (boostrap-asan failure: fixincl fails to link (missing -lasan))

PR sanitizer/56781
* libtool-ldflags: Also prefix -static-lib*, -shared-lib*
and -B* options with -Xcompiler.
lto-plugin/
* Makefile.am (LTLDFLAGS, liblto_plugin_la_LINK): New variables.
* Makefile.in: Regenerated.

From-SVN: r209475

10 years agodwarf2out: Use normal constant values in bound_info if possible.
Mark Wielaard [Thu, 17 Apr 2014 10:36:21 +0000 (10:36 +0000)]
dwarf2out: Use normal constant values in bound_info if possible.

* dwarf2out.c (add_bound_info): If HOST_WIDE_INT is big enough,
then represent the bound as normal constant value.

From-SVN: r209473

10 years agore PR target/60847 (x86 BMI intrinsics not recognized)
Jakub Jelinek [Thu, 17 Apr 2014 10:02:36 +0000 (12:02 +0200)]
re PR target/60847 (x86 BMI intrinsics not recognized)

PR target/60847
Forward port from 4.8 branch
2013-07-19  Kirill Yukhin  <kirill.yukhin@intel.com>

* config/i386/bmiintrin.h (_blsi_u32): New.
(_blsi_u64): Ditto.
(_blsr_u32): Ditto.
(_blsr_u64): Ditto.
(_blsmsk_u32): Ditto.
(_blsmsk_u64): Ditto.
(_tzcnt_u32): Ditto.
(_tzcnt_u64): Ditto.

* gcc.target/i386/bmi-1.c: Extend with new instrinsics.
Fix scan patterns.
* gcc.target/i386/bmi-2.c: Ditto.

From-SVN: r209471

10 years ago* gcc.c (used_arg): Prevent out of bound access for multilib_options.
Kito Cheng [Thu, 17 Apr 2014 09:01:22 +0000 (09:01 +0000)]
* gcc.c (used_arg): Prevent out of bound access for multilib_options.

From-SVN: r209470

10 years agore PR tree-optimization/60849 (bogus comparison result type)
Richard Biener [Thu, 17 Apr 2014 08:13:53 +0000 (08:13 +0000)]
re PR tree-optimization/60849 (bogus comparison result type)

2014-04-17  Richard Biener  <rguenther@suse.de>

PR middle-end/60849
* tree-ssa-propagate.c (valid_gimple_rhs_p): Only allow effective
boolean results for comparisons.

* g++.dg/opt/pr60849.C: New testcase.

From-SVN: r209469

10 years agore PR c++/60836 (invalid PHI argument and ICE in verify_gimple)
Richard Biener [Thu, 17 Apr 2014 08:12:58 +0000 (08:12 +0000)]
re PR c++/60836 (invalid PHI argument and ICE in verify_gimple)

2014-04-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/60836
* tree-vect-loop.c (vect_create_epilog_for_reduction): Force
initial PHI args to be gimple values.

* g++.dg/vect/pr60836.cc: New testcase.

From-SVN: r209468

10 years agore PR tree-optimization/60841 (gcc: internal compiler error: Killed (program cc1...
Richard Biener [Thu, 17 Apr 2014 08:09:02 +0000 (08:09 +0000)]
re PR tree-optimization/60841 (gcc: internal compiler error: Killed (program cc1) out of memory)

2014-04-17   Richard Biener  <rguenther@suse.de>

PR tree-optimization/60841
* tree-vect-data-refs.c (vect_analyze_data_refs): Count stmts.
* tree-vect-loop.c (vect_analyze_loop_2): Pass down number
of stmts to SLP build.
* tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
(vect_analyze_slp): Likewise.
(vect_analyze_slp_instance): Likewise.
(vect_build_slp_tree): Limit overall SLP tree growth.
* tree-vectorizer.h (vect_analyze_data_refs,
vect_analyze_slp): Adjust prototypes.

* gcc.dg/vect/pr60841.c: New testcase.

From-SVN: r209467

10 years agoi386.c (x86_add_stmt_cost): Fix vector cost model for Silvermont.
Evgeny Stupachenko [Thu, 17 Apr 2014 07:47:37 +0000 (07:47 +0000)]
i386.c (x86_add_stmt_cost): Fix vector cost model for Silvermont.

gcc/
        * config/i386/i386.c (x86_add_stmt_cost): Fix vector cost model for
        Silvermont.

From-SVN: r209466

10 years agox86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
Evgeny Stupachenko [Thu, 17 Apr 2014 07:46:45 +0000 (07:46 +0000)]
x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.

gcc/
        * config/i386/x86-tune.def (TARGET_SLOW_PSHUFB): New tune definition.
        * config/i386/i386.h (TARGET_SLOW_PSHUFB): New tune flag.
        * config/i386/i386.c (expand_vec_perm_even_odd_1): Avoid byte shuffles
        for TARGET_SLOW_PSHUFB

From-SVN: r209465

10 years agoi386.c (slm_cost): Adjust vec_to_scalar_cost.
Evgeny Stupachenko [Thu, 17 Apr 2014 07:45:42 +0000 (07:45 +0000)]
i386.c (slm_cost): Adjust vec_to_scalar_cost.

gcc/
        * config/i386/i386.c (slm_cost): Adjust vec_to_scalar_cost.
        * config/i386/i386.c (intel_cost): Ditto.

From-SVN: r209464

10 years agoopts.c (OPT_fif_conversion, [...]): Disable for Og.
Joey Ye [Thu, 17 Apr 2014 07:09:56 +0000 (07:09 +0000)]
opts.c (OPT_fif_conversion, [...]): Disable for Og.

2014-04-17  Joey Ye  <joey.ye@arm.com>

        * opts.c (OPT_fif_conversion, OPT_fif_conversion2): Disable for Og.

From-SVN: r209463

10 years agoopts.c (common_handle_option): Disable -fipa-reference coorectly with -fuse-profile.
Jan Hubicka [Thu, 17 Apr 2014 05:59:03 +0000 (07:59 +0200)]
opts.c (common_handle_option): Disable -fipa-reference coorectly with -fuse-profile.

* opts.c (common_handle_option): Disable -fipa-reference coorectly
with -fuse-profile.

From-SVN: r209462

10 years agoipa-devirt.c (odr_type_d): Add field all_derivations_known.
Jan Hubicka [Thu, 17 Apr 2014 02:43:53 +0000 (04:43 +0200)]
ipa-devirt.c (odr_type_d): Add field all_derivations_known.

* ipa-devirt.c (odr_type_d): Add field all_derivations_known.
(type_all_derivations_known_p): New predicate.
(type_all_ctors_visible_p): New predicate.
(type_possibly_instantiated_p): New predicate.
(get_odr_type): Compute all_derivations_known.
(dump_odr_type): Dump the flag.
(maybe_record_type): Cleanup.
(record_target_from_binfo): Add bases_to_consider array;
record bases for types w/o instances and skip CXX destructor.
(possible_polymorphic_call_targets_1): Add bases_to_consider
and consider_construction parameters; check if type may
have instance.
(get_polymorphic_call_info): Set maybe_in_construction to true
when we know nothing.
(record_targets_from_bases): Skip CXX destructors; they are
never called for types in construction.
(possible_polymorphic_call_targets): Do not record target when
type may not have instance.

* g++.dg/ipa/devirt-31.C: New testcase.

From-SVN: r209461

10 years agore PR lto/60820 (ice in ctor_for_folding, at varpool.c:291)
Jan Hubicka [Thu, 17 Apr 2014 02:32:26 +0000 (04:32 +0200)]
re PR lto/60820 (ice in ctor_for_folding, at varpool.c:291)

PR lto/60820
* gcc.dg/lto/pr60820_0.c: New testcase.
* gcc.dg/lto/pr60820_1.c: New testcase.

From-SVN: r209460

10 years agore PR ipa/60854 (inline constructor of extern template)
Jan Hubicka [Thu, 17 Apr 2014 02:22:57 +0000 (04:22 +0200)]
re PR ipa/60854 (inline constructor of extern template)

PR ipa/60854
* ipa.c (symtab_remove_unreachable_nodes): Mark targets of
external aliases alive, too.
* g++.dg/torture/pr60854.C: New testcase.

From-SVN: r209459

10 years agohost-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32 definition.
Andrew Pinski [Thu, 17 Apr 2014 00:18:29 +0000 (00:18 +0000)]
host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32 definition.

2014-04-16  Andrew  Pinski  <apinski@cavium.com>

* config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
        definition.

From-SVN: r209457

10 years agoDaily bump.
GCC Administrator [Thu, 17 Apr 2014 00:17:05 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r209456

10 years agofinal.c (compute_alignments): Do not apply loop alignment to a block falling through...
Eric Botcazou [Wed, 16 Apr 2014 23:31:30 +0000 (23:31 +0000)]
final.c (compute_alignments): Do not apply loop alignment to a block falling through to the exit.

* final.c (compute_alignments): Do not apply loop alignment to a block
falling through to the exit.

From-SVN: r209451

10 years agomips.md (*mov<mode>_internal, [...]): Adjust constraints for microMIPS store patterns.
Catherine Moore [Wed, 16 Apr 2014 21:09:30 +0000 (17:09 -0400)]
mips.md (*mov<mode>_internal, [...]): Adjust constraints for microMIPS store patterns.

2014-04-16  Catherine Moore  <clm@codesourcery.com>

gcc/
* mips.md (*mov<mode>_internal, *movhi_internal, *movqi_internal):
Adjust constraints for microMIPS store patterns.

testsuite/
* gcc.target/mips/umips-store16-2.c: New test.

From-SVN: r209450

10 years agodecl.c (reshape_init_r): Handle a single element of vector type.
Marc Glisse [Wed, 16 Apr 2014 20:46:47 +0000 (22:46 +0200)]
decl.c (reshape_init_r): Handle a single element of vector type.

2014-04-16  Marc Glisse  <marc.glisse@inria.fr>

gcc/cp/
* decl.c (reshape_init_r): Handle a single element of vector type.
gcc/testsuite/
* g++.dg/cpp0x/initlist-vect.C: New file.

From-SVN: r209449

10 years agolibgo: Remove Solaris 8 & 9 support.
Ian Lance Taylor [Wed, 16 Apr 2014 20:33:57 +0000 (20:33 +0000)]
libgo: Remove Solaris 8 & 9 support.

From Rainer Orth.

From-SVN: r209448

10 years agore PR c++/60765 (Function attributes ignored for pointer-to-member-function parameters)
Patrick Palka [Wed, 16 Apr 2014 20:17:46 +0000 (03:17 +0700)]
re PR c++/60765 (Function attributes ignored for pointer-to-member-function parameters)

2014-04-16  Patrick Palka  <patrick@parcs.ath.cx>

PR c++/60765
* decl2.c (cplus_decl_attributes): Handle
pointer-to-member-function declarations.

2014-04-16  Patrick Palka  <patrick@parcs.ath.cx>

PR c++/60764
* call.c (build_user_type_coversion): Use build_dummy_object
to create the placeholder object for a constructor method call.
(build_special_member_call): Likewise.
(build_over_call): Check for the placeholder object with
is_dummy_object.
(build_new_method_call_1): Likewise.  Don't attempt to resolve
a dummy object for a constructor method call.

From-SVN: r209447

10 years agoavr-mcus.def: Correct typo for atxmega256a3bu macro.
Pitchumani Sivanupandi [Wed, 16 Apr 2014 18:26:30 +0000 (22:26 +0400)]
avr-mcus.def: Correct typo for atxmega256a3bu macro.

* config/avr/avr-mcus.def: Correct typo for atxmega256a3bu macro.

From-SVN: r209446

10 years ago* include/std/functional (__is_location_invariant): Use __or_ helper.
Jonathan Wakely [Wed, 16 Apr 2014 17:46:13 +0000 (18:46 +0100)]
* include/std/functional (__is_location_invariant): Use __or_ helper.

From-SVN: r209445

10 years agore PR c++/59295 (useless warning: 'Bar' is already a friend of 'Foo' [enabled by...
Paul Pluzhnikov [Wed, 16 Apr 2014 17:39:45 +0000 (10:39 -0700)]
re PR c++/59295 (useless warning: 'Bar' is already a friend of 'Foo' [enabled by default])

2014-04-16  Paul Pluzhnikov  <ppluzhnikov@google.com>

PR c++/59295
* friend.c (add_friend, make_friend_class): Move repeated friend
warning under Wredundant_decls.

From-SVN: r209444

10 years agotree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
Eric Botcazou [Wed, 16 Apr 2014 10:50:58 +0000 (10:50 +0000)]
tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.

* tree-ssa-operands.c (create_vop_var): Set DECL_IGNORED_P.
(append_use): Run at -O0.
(append_vdef): Likewise.
* tree-ssa-ter.c (ter_is_replaceable_p): Do not special-case -O0.
* tree-ssa-uninit.c (warn_uninitialized_vars): Remove obsolete comment.

From-SVN: r209443

10 years agore PR tree-optimization/60844 (ICE in reassoc_stmt_dominates_stmt_p)
Jakub Jelinek [Wed, 16 Apr 2014 09:25:52 +0000 (11:25 +0200)]
re PR tree-optimization/60844 (ICE in reassoc_stmt_dominates_stmt_p)

PR tree-optimization/60844
* tree-ssa-reassoc.c (reassoc_remove_stmt): New function.
(propagate_op_to_single_use, remove_visited_stmt_chain,
linearize_expr, repropagate_negates, reassociate_bb): Use it
instead of gsi_remove.

* gcc.dg/pr60844.c: New test.

From-SVN: r209442

10 years agocgraphclones.c (cgraph_create_virtual_clone): Duplicate ipa_transforms_to_apply.
Martin Jambor [Wed, 16 Apr 2014 09:20:43 +0000 (11:20 +0200)]
cgraphclones.c (cgraph_create_virtual_clone): Duplicate ipa_transforms_to_apply.

2014-04-16  Martin Jambor  <mjambor@suse.cz>

* cgraphclones.c (cgraph_create_virtual_clone): Duplicate
ipa_transforms_to_apply.
(cgraph_function_versioning): Assert that old_node has empty
ipa_transforms_to_apply.
* trans-mem.c (ipa_tm_create_version): Likewise.
* tree-inline.c (tree_function_versioning): Do not duplicate
ipa_transforms_to_apply.

From-SVN: r209441

10 years agoCorrectly detect native TLS support with 64-bit gas on Solaris/x86 (PR target/60817)
Rainer Orth [Wed, 16 Apr 2014 09:09:42 +0000 (09:09 +0000)]
Correctly detect native TLS support with 64-bit gas on Solaris/x86 (PR target/60817)

PR target/60817
* configure.ac (set_have_as_tls): Merge i[34567]86-*-* and
x86_64-*-* cases.
Pass necessary as flags on 64-bit Solaris/x86.
Use lowercase relocs for x86_64-*-*.
* configure: Regenerate.

From-SVN: r209440

10 years agoDaily bump.
GCC Administrator [Wed, 16 Apr 2014 00:17:04 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r209439

10 years agoipa-devirt.c (referenced_from_vtable_p): New predicate.
Jan Hubicka [Tue, 15 Apr 2014 21:01:04 +0000 (23:01 +0200)]
ipa-devirt.c (referenced_from_vtable_p): New predicate.

* ipa-devirt.c (referenced_from_vtable_p): New predicate.
(maybe_record_node, likely_target_p): Use it.

From-SVN: r209435

10 years agoshared_ptr.h (shared_ptr::shared_ptr(nullptr_t)): Remove name of unused parameter.
Jonathan Wakely [Tue, 15 Apr 2014 20:15:38 +0000 (21:15 +0100)]
shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)): Remove name of unused parameter.

* include/bits/shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)):
Remove name of unused parameter.

From-SVN: r209434

10 years ago* include/experimental/string_view: Fix inconsistent exception specs.
Jonathan Wakely [Tue, 15 Apr 2014 19:05:57 +0000 (20:05 +0100)]
* include/experimental/string_view: Fix inconsistent exception specs.

From-SVN: r209433

10 years agocontainer.cc: Do not use uninitialized members in mem-initializers.
Jonathan Wakely [Tue, 15 Apr 2014 19:05:52 +0000 (20:05 +0100)]
container.cc: Do not use uninitialized members in mem-initializers.

* testsuite/24_iterators/insert_iterator/requirements/container.cc: Do
not use uninitialized members in mem-initializers.
* testsuite/ext/throw_value/cons.cc: Fix most vexing parse.
* testsuite/util/testsuite_common_types.h: Update comment.

From-SVN: r209432

10 years agore PR c++/60786 (In C++11 an explicit instantiation with an unqualified name must...
Jonathan Wakely [Tue, 15 Apr 2014 19:05:45 +0000 (20:05 +0100)]
re PR c++/60786 (In C++11 an explicit instantiation with an unqualified name must be in the right namespace)

PR c++/60786
* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
1.cc: Fix invalid explicit instantiations with unqualified names.
* testsuite/20_util/shared_ptr/requirements/explicit_instantiation/
2.cc: Likweise.
* testsuite/20_util/tuple/53648.cc: Likweise.
* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
Likewise.
* testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
Likewise.
* testsuite/23_containers/unordered_map/requirements/
debug_container.cc: Likewise.
* testsuite/23_containers/unordered_map/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_multimap/requirements/debug.cc:
Likewise.
* testsuite/23_containers/unordered_multimap/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_multiset/requirements/debug.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/requirements/
explicit_instantiation/3.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
debug_container.cc: Likewise.
* testsuite/23_containers/unordered_set/requirements/
explicit_instantiation/3.cc: Likewise.

From-SVN: r209431

10 years ago* include/std/atomic: Uglify parameter names.
Jonathan Wakely [Tue, 15 Apr 2014 18:28:57 +0000 (19:28 +0100)]
* include/std/atomic: Uglify parameter names.

From-SVN: r209429

10 years agoshared_ptr.h (shared_ptr::shared_ptr(nullptr_t)): Use delegating constructor.
Jonathan Wakely [Tue, 15 Apr 2014 18:28:50 +0000 (19:28 +0100)]
shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)): Use delegating constructor.

* include/bits/shared_ptr.h (shared_ptr::shared_ptr(nullptr_t)): Use
delegating constructor.
* include/bits/shared_ptr_base.h
(__shared_ptr::__shared_ptr(nullptr_t)): Likewise

From-SVN: r209428

10 years agoatomic_base.h (__atomic_base<_PTp*>::_M_type_size): Add const to constexpr member...
Jonathan Wakely [Tue, 15 Apr 2014 18:28:41 +0000 (19:28 +0100)]
atomic_base.h (__atomic_base<_PTp*>::_M_type_size): Add const to constexpr member functions.

* include/bits/atomic_base.h (__atomic_base<_PTp*>::_M_type_size): Add
const to constexpr member functions.

From-SVN: r209427

10 years agore PR target/60839 (PowerPC: internal compiler error: in extract_insn, at recog.c...
Bill Schmidt [Tue, 15 Apr 2014 18:20:01 +0000 (18:20 +0000)]
re PR target/60839 (PowerPC: internal compiler error: in extract_insn, at recog.c:2154)

2014-04-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/60839
Revert following patch

2014-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/60735
* config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): If we have
software floating point or no floating point registers, do not
allow any type in the FPRs.  Eliminate a test for SPE SIMD types
in GPRs that occurs after we tested for GPRs that would never be
true.

* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
Rewrite tests to use TARGET_DOUBLE_FLOAT and TARGET_E500_DOUBLE,
since the FMOVE64 type is DFmode/DDmode.  If TARGET_E500_DOUBLE,
specifically allow DDmode, since that does not use the SPE SIMD
instructions.

From-SVN: r209425

10 years agoAdd DW_AT_const_value as unsigned or int depending on type and value used.
Mark Wielaard [Tue, 15 Apr 2014 17:18:20 +0000 (17:18 +0000)]
Add DW_AT_const_value as unsigned or int depending on type and value used.

As the comment in the code already indicated DWARF2 does provide
DW_FORM_sdata/DW_FORM_udata to represent signed/unsigned data.
Enumeration constants wider than HOST_WIDE_INT are already handled
separately. Those constant values that do fit a HOST_WIDE_INT can
be encoded as signed or unsigned depending on type and value for
more efficient encoding.

* dwarf2out.c (gen_enumeration_type_die): Add DW_AT_const_value
as unsigned or int depending on type and value used.

From-SVN: r209424

10 years agore PR rtl-optimization/56965 (nonoverlapping_component_refs_p is bogus and slow)
Richard Biener [Tue, 15 Apr 2014 16:04:11 +0000 (16:04 +0000)]
re PR rtl-optimization/56965 (nonoverlapping_component_refs_p is bogus and slow)

2014-04-15  Richard Biener  <rguenther@suse.de>

PR rtl-optimization/56965
* alias.c (ncr_compar, nonoverlapping_component_refs_p): Move ...
* tree-ssa-alias.c (ncr_compar, nonoverlapping_component_refs_p):
... here.
* alias.c (true_dependence_1): Do not call
nonoverlapping_component_refs_p.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Call
nonoverlapping_component_refs_p.
(indirect_refs_may_alias_p): Likewise.

* gcc.dg/torture/pr56965-1.c: New testcase.
* gcc.dg/torture/pr56965-2.c: Likewise.

From-SVN: r209423

10 years agore PR libstdc++/60594 (std::function of a type with a declared (but not defined)...
Jonathan Wakely [Tue, 15 Apr 2014 15:25:52 +0000 (16:25 +0100)]
re PR libstdc++/60594 (std::function of a type with a declared (but not defined) return type fails to compile)

PR libstdc++/60594
* include/std/functional (function::_Callable): Exclude own type
from the callable checks.
* testsuite/20_util/function/60594.cc: New.

From-SVN: r209422

10 years agocfg.c (dump_bb_info): Fix flags check.
Teresa Johnson [Tue, 15 Apr 2014 15:12:00 +0000 (15:12 +0000)]
cfg.c (dump_bb_info): Fix flags check.

2014-04-15  Teresa Johnson  <tejohnson@google.com>

* cfg.c (dump_bb_info): Fix flags check.
* tree-cfg.c (remove_bb): Only dump TDF_BLOCKS when removing.

2014-04-15  Teresa Johnson  <tejohnson@google.com>

* gcc.dg/tree-prof/update-loopch.c: Update expected output.

From-SVN: r209421

10 years agodecl.c (duplicate_decls): Remove redundant TYPE_NAME use.
Paolo Carlini [Tue, 15 Apr 2014 14:31:40 +0000 (14:31 +0000)]
decl.c (duplicate_decls): Remove redundant TYPE_NAME use.

2014-04-15  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (duplicate_decls): Remove redundant TYPE_NAME use.
* name-lookup.c (pushdecl_maybe_friend_1): Likewise.
(do_class_using_decl): Likewise.
* mangle.c (dump_substitution_candidates): Use TYPE_NAME_STRING.

From-SVN: r209420

10 years agore PR rtl-optimization/60663 (Errors out on valid inline asm)
Kyrylo Tkachov [Tue, 15 Apr 2014 14:04:06 +0000 (14:04 +0000)]
re PR rtl-optimization/60663 (Errors out on valid inline asm)

PR rtl-optimization/60663
* config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
avoid 0 cost.

From-SVN: r209419

10 years agore PR libstdc++/60695 (std::atomic<X> doesn't work when X is of zero size)
Jonathan Wakely [Tue, 15 Apr 2014 13:48:07 +0000 (14:48 +0100)]
re PR libstdc++/60695 (std::atomic<X> doesn't work when X is of zero size)

PR libstdc++/60695
* include/std/atomic (atomic<_Tp>): Add static assertion.
* testsuite/29_atomics/atomic/60695.cc: New.

From-SVN: r209418

10 years agolto-streamer.h (LTO_major_version): Bump to 4.
Richard Biener [Tue, 15 Apr 2014 13:25:44 +0000 (13:25 +0000)]
lto-streamer.h (LTO_major_version): Bump to 4.

2014-04-15  Richard Biener  <rguenther@suse.de>

* lto-streamer.h (LTO_major_version): Bump to 4.

From-SVN: r209417

10 years agocommon.opt (lto_partition_model): New enum.
Richard Biener [Tue, 15 Apr 2014 12:56:16 +0000 (12:56 +0000)]
common.opt (lto_partition_model): New enum.

2014-04-15  Richard Biener  <rguenther@suse.de>

* common.opt (lto_partition_model): New enum.
(flto-partition=): Merge separate options with a single with argument,
add -flto-partition=one support.
* flag-types.h (enum lto_partition_model): Declare.
* opts.c (finish_options): Remove duplicate -flto-partition=
option check.
* lto-wrapper.c (run_gcc): Adjust.

lto/
* lto.c: Include params.h.
(do_whole_program_analysis): Switch on flag_lto_partition value,
add support for LTO_PARTITION_ONE.
* lto-partition.h (lto_balanced_map): Adjust.
* lto-partition.c (lto_balanced_map): Get number of desired
partitions as argument to support -flto-partition=one.

From-SVN: r209416

10 years ago* gcc-interface/trans.c (Case_Statement_to_gnu): Revert latest change.
Eric Botcazou [Tue, 15 Apr 2014 11:09:33 +0000 (11:09 +0000)]
* gcc-interface/trans.c (Case_Statement_to_gnu): Revert latest change.

From-SVN: r209415

10 years agore PR libstdc++/60734 (Undefined behavior in g++-v4/bits/stl_tree.h)
Jonathan Wakely [Tue, 15 Apr 2014 10:52:06 +0000 (11:52 +0100)]
re PR libstdc++/60734 (Undefined behavior in g++-v4/bits/stl_tree.h)

PR libstdc++/60734
* include/bits/stl_tree.h (_Rb_tree::_M_end): Fix invalid cast.

From-SVN: r209414

10 years agoalias.c (ncr_compar): New function.
Richard Biener [Tue, 15 Apr 2014 10:18:28 +0000 (10:18 +0000)]
alias.c (ncr_compar): New function.

2014-04-15  Richard Biener  <rguenther@suse.de>

* alias.c (ncr_compar): New function.
(nonoverlapping_component_refs_p): Re-implement in O (n log n).

From-SVN: r209413

10 years agoalias.c (record_component_aliases): Do not walk BINFOs.
Richard Biener [Tue, 15 Apr 2014 10:09:40 +0000 (10:09 +0000)]
alias.c (record_component_aliases): Do not walk BINFOs.

2014-04-15  Richard Biener  <rguenther@suse.de>

* alias.c (record_component_aliases): Do not walk BINFOs.

From-SVN: r209412

10 years agodecl.c (gnat_to_gnu_entity): Create a mere scalar constant instead of a reference...
Eric Botcazou [Tue, 15 Apr 2014 09:23:21 +0000 (09:23 +0000)]
decl.c (gnat_to_gnu_entity): Create a mere scalar constant instead of a reference for renaming of scalar literal.

* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create a mere
scalar constant instead of a reference for renaming of scalar literal.
Do not create a new object for constant renaming except for a function
call.  Make sure a VAR_DECL is created for the renaming pointer.
* gcc-interface/trans.c (constant_decl_with_initializer_p): New.
(fold_constant_decl_in_expr): New function.
(Identifier_to_gnu): Use constant_decl_with_initializer_p.
For a constant renaming, try to fold a constant DECL in the result.
(lvalue_required_p) <N_Object_Renaming_Declaration>: Always return 1.
(Identifier_to_gnu): Reference the renamed object of constant renaming
pointers directly.
(Case_Statement_to_gnu): Do not re-fold the bounds of integer types.
Assert that the case values are constant.
* gcc-interface/utils.c (invalidate_global_renaming_pointers): Do not
invalidate constant renaming pointers.

Co-Authored-By: Pierre-Marie de Rodat <derodat@adacore.com>
From-SVN: r209411

10 years agoutils.c (type_for_vector_element_p): New predicate.
Eric Botcazou [Tue, 15 Apr 2014 08:59:12 +0000 (08:59 +0000)]
utils.c (type_for_vector_element_p): New predicate.

* gcc-interface/utils.c (type_for_vector_element_p): New predicate.
(build_vector_type_for_size): New function.
(build_vector_type_for_array): Likewise.
(unchecked_convert): Build an intermediate vector type to convert
from a generic array type to a vector type.
(handle_vector_size_attribute): Reimplement.
(handle_vector_type_attribute): Likewise.

From-SVN: r209410

10 years agodecl.c (prepend_one_attribute_pragma): Call Is_OK_Static_Expression in lieu of Is_Sta...
Eric Botcazou [Tue, 15 Apr 2014 08:47:29 +0000 (08:47 +0000)]
decl.c (prepend_one_attribute_pragma): Call Is_OK_Static_Expression in lieu of Is_Static_Expression to detect valid...

* gcc-interface/decl.c (prepend_one_attribute_pragma): Call
Is_OK_Static_Expression in lieu of Is_Static_Expression to
detect valid arguments.

From-SVN: r209409

10 years agotree-ssa-structalias.c (find_func_aliases_for_builtin_call): Add struct function...
Richard Biener [Tue, 15 Apr 2014 08:21:56 +0000 (08:21 +0000)]
tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Add struct function argument and adjust.

2014-04-15  Richard Biener  <rguenther@suse.de>

* tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
Add struct function argument and adjust.
(find_func_aliases_for_call): Likewise.
(find_func_aliases): Likewise.
(find_func_clobbers): Likewise.
(intra_create_variable_infos): Likewise.
(compute_points_to_sets): Likewise.
(ipa_pta_execute): Adjust.  Do not push/pop cfun.

From-SVN: r209408

10 years agoMinor tweaks
Eric Botcazou [Tue, 15 Apr 2014 08:16:10 +0000 (08:16 +0000)]
Minor tweaks

From-SVN: r209407

10 years agotree.c (iterative_hash_expr): Use enum tree_code_class to store TREE_CODE_CLASS.
Richard Biener [Tue, 15 Apr 2014 08:08:06 +0000 (08:08 +0000)]
tree.c (iterative_hash_expr): Use enum tree_code_class to store TREE_CODE_CLASS.

2014-04-15  Richard Biener  <rguenther@suse.de>

* tree.c (iterative_hash_expr): Use enum tree_code_class
to store TREE_CODE_CLASS.
(tree_block): Likewise.
(tree_set_block): Likewise.
* tree.h (fold_build_pointer_plus_loc): Use
convert_to_ptrofftype_loc.

From-SVN: r209406

10 years agore PR plugins/59335 (Plugin doesn't build on trunk)
Jakub Jelinek [Tue, 15 Apr 2014 08:02:46 +0000 (10:02 +0200)]
re PR plugins/59335 (Plugin doesn't build on trunk)

PR plugins/59335
* Makefile.in (PLUGIN_HEADERS): Add various headers that have been
added in 4.9.

* Make-lang.h (CP_PLUGIN_HEADERS): Add type-utils.h.

From-SVN: r209404

10 years agocfgloop.h (struct loop): Move force_vectorize down.
Eric Botcazou [Tue, 15 Apr 2014 08:01:01 +0000 (08:01 +0000)]
cfgloop.h (struct loop): Move force_vectorize down.

* cfgloop.h (struct loop): Move force_vectorize down.
* gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Handle new kinds.
(gimplify_expr) <ANNOTATE_EXPR>: Minor tweak.
* lto-streamer-in.c (input_cfg): Read dont_vectorize field.
* lto-streamer-out.c (output_cfg): Write dont_vectorize field.
* tree-cfg.c (replace_loop_annotate): Revamp and handle new kinds.
* tree-core.h (enum annot_expr_kind): Add new kind values.
* tree-inline.c (copy_loops): Copy dont_vectorize field and reorder.
* tree-pretty-print.c (dump_generic_node) <ANNOTATE_EXPR>: Handle new
kinds.
* tree.def (ANNOTATE_EXPR): Tweak comment.
ada/
* gcc-interface/trans.c (gnat_gimplify_stmt): Propagate loop hints.

From-SVN: r209403

10 years agonull-deref-1.c: Change regexp to pass test under qemu-arm.
Max Ostapenko [Tue, 15 Apr 2014 07:31:51 +0000 (10:31 +0300)]
null-deref-1.c: Change regexp to pass test under qemu-arm.

2014-04-15  Max Ostapenko  <m.ostapenko@partner.samsung.com>

* c-c++-common/asan/null-deref-1.c: Change regexp to pass test
under qemu-arm.
* c-c++-common/ubsan/div-by-zero-1.c: Likewise.
* c-c++-common/ubsan/div-by-zero-2.c: Likewise.
* c-c++-common/ubsan/div-by-zero-3.c: Likewise.
* c-c++-common/ubsan/load-bool-enum.c (foo): Likewise.
* c-c++-common/ubsan/null-1.c: Likewise.
* c-c++-common/ubsan/null-10.c: Likewise.
* c-c++-common/ubsan/null-11.c: Likewise.
* c-c++-common/ubsan/null-2.c: Likewise.
* c-c++-common/ubsan/null-3.c: Likewise.
* c-c++-common/ubsan/null-4.c: Likewise.
* c-c++-common/ubsan/null-5.c: Likewise.
* c-c++-common/ubsan/null-6.c: Likewise.
* c-c++-common/ubsan/null-7.c: Likewise.
* c-c++-common/ubsan/null-8.c: Likewise.
* c-c++-common/ubsan/null-9.c: Likewise.
* c-c++-common/ubsan/overflow-add-2.c: Likewise.
* c-c++-common/ubsan/overflow-int128.c: Likewise.
* c-c++-common/ubsan/overflow-mul-2.c: Likewise.
* c-c++-common/ubsan/overflow-mul-4.c: Likewise.
* c-c++-common/ubsan/overflow-negate-1.c: Likewise.
* c-c++-common/ubsan/overflow-sub-2.c: Likewise.
* c-c++-common/ubsan/pr59333.c: Likewise.
* c-c++-common/ubsan/pr59667.c: Likewise.
* c-c++-common/ubsan/pr60613-2.c: Likewise.
* c-c++-common/ubsan/pr60636.c: Likewise.
* c-c++-common/ubsan/shift-1.c: Likewise.
* c-c++-common/ubsan/shift-2.c: Likewise.
* c-c++-common/ubsan/vla-1.c: Likewise.

From-SVN: r209402

10 years agoDaily bump.
GCC Administrator [Tue, 15 Apr 2014 00:16:39 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r209399

10 years agoN3887 Consistent Metafunction Aliases
Jonathan Wakely [Mon, 14 Apr 2014 23:17:52 +0000 (00:17 +0100)]
N3887 Consistent Metafunction Aliases

* include/std/tuple (tuple_element_t): Define.
* testsuite/20_util/tuple/tuple_element.cc: Change to compile-only
test.
* testsuite/20_util/tuple/tuple_element_t.cc: New.

From-SVN: r209395

10 years agoSync to current external repository.
Chris Manghane [Mon, 14 Apr 2014 22:43:47 +0000 (22:43 +0000)]
Sync to current external repository.

user:        Ian Lance Taylor <iant@golang.org>
date:        Thu Apr 10 09:25:24 2014 -0700
files:       go/expressions.cc
description:
compiler: add checks for constant overflow

Prevent extremely large constants from eating all of memory.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Apr 07 16:57:09 2014 -0700
files:       go/gogo-tree.cc go/gogo.cc go/gogo.h go/statements.cc
description:
compiler: Use backend interface for variable initialization.

user:        Chris Manghane <cmang@golang.org>
date:        Thu Apr 03 19:56:05 2014 -0700
files:       go/backend.h go/gogo-tree.cc go/gogo.cc go/gogo.h
description:
compiler: Use backend interface to build function code.

changeset:   1269:6e30875d539e
user:        Chris Manghane <cmang@golang.org>
date:        Wed Apr 02 13:16:00 2014 -0700
files:       go/backend.h go/gogo-tree.cc go/gogo.cc go/gogo.h
description:
compiler: Use backend interface for building function defer wrappers.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 31 12:42:49 2014 -0700
files:       go/expressions.cc go/gogo-tree.cc go/gogo.cc go/gogo.h
description:
compiler: Use backend interface for memory allocation.

user:        Chris Manghane <cmang@golang.org>
date:        Thu Mar 27 14:22:49 2014 -0700
files:       go/backend.h go/expressions.cc go/expressions.h
description:
compiler: Use backend interface for fixed array construction.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 17 21:25:04 2014 -0700
files:       go/expressions.cc
description:
compiler: Check for loops in self-referential array types. Fixes issue 7525.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 17 14:31:59 2014 -0700
files:       go/gogo.cc go/parse.cc
description:
compiler: Don't declare blank labels. Fixes issue 7539.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 17 13:12:32 2014 -0700
files:       go/backend.h go/expressions.cc go/expressions.h go/runtime.def
description:
compiler: Use backend interface for call expressions.

user:        Chris Manghane <cmang@golang.org>
date:        Wed Mar 12 13:34:27 2014 -0700
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/statements.cc
description:
compiler: Use backend interface map construction.

user:        Chris Manghane <cmang@golang.org>
date:        Tue Mar 11 12:53:06 2014 -0700
files:       go/backend.h go/expressions.cc go/gogo-tree.cc go/gogo.h
description:
compiler: Use backend interface for string expressions.

user:        Chris Manghane <cmang@golang.org>
date:        Sat Mar 08 15:56:59 2014 -0800
files:       go/backend.h go/expressions.cc go/expressions.h
description:
compiler: Use backend interface for array and string indexing.

user:        Chris Manghane <cmang@golang.org>
date:        Fri Mar 07 16:02:18 2014 -0800
files:       go/expressions.cc
description:
compiler: Use backend interface for constant expressions.

user:        Chris Manghane <cmang@golang.org>
date:        Thu Mar 06 16:00:18 2014 -0800
files:       go/expressions.cc
description:
compiler: Use backend interface for struct construction.

user:        Chris Manghane <cmang@golang.org>
date:        Wed Mar 05 13:09:37 2014 -0800
files:       go/expressions.cc
description:
compiler: Use backend interface for type conversions.

user:        Chris Manghane <cmang@golang.org>
date:        Tue Mar 04 07:03:47 2014 -0800
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/gogo.h go/runtime.def libgo/runtime/chan.c
description:
compiler: Use backend interface for channel receive.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 03 15:18:57 2014 -0800
files:       go/backend.h go/expressions.cc go/runtime.def
description:
compiler: Use backend interface for builtin calls.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Mar 03 07:44:35 2014 -0800
files:       go/expressions.cc go/expressions.h go/types.cc go/types.h
description:
compiler: Use backend interface for string info.

user:        Chris Manghane <cmang@golang.org>
date:        Fri Feb 28 10:45:55 2014 -0800
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/statements.cc
description:
compiler: Use backend interface for map indexing.

user:        Chris Manghane <cmang@golang.org>
date:        Wed Feb 26 14:13:10 2014 -0800
files:       go/expressions.cc go/expressions.h
description:
compiler: Use backend interface for slice value expressions.

user:        Chris Manghane <cmang@golang.org>
date:        Wed Feb 26 13:12:19 2014 -0800
files:       go/backend.h go/expressions.cc go/expressions.h go/gogo-tree.cc go/runtime.def go/statements.cc
description:
compiler: Use backend interface for interface values.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Feb 24 12:30:13 2014 -0800
files:       go/expressions.cc go/expressions.h go/parse.cc go/statements.cc
description:
compiler: Change Heap_composite_expression to Heap_expression.

user:        Chris Manghane <cmang@golang.org>
date:        Thu Feb 20 19:47:06 2014 -0800
files:       go/expressions.cc go/expressions.h go/gogo-tree.cc go/gogo.cc go/gogo.h go/types.cc go/types.h
description:
compiler: Use backend interface for interface method table expressions.

user:        Chris Manghane <cmang@golang.org>
date:        Mon Feb 03 14:36:20 2014 -0800
files:       go/expressions.cc go/expressions.h
description:
compiler: Add compound expressions to the frontend.

* go-gcc.cc: Include "convert.h".
(Gcc_backend::string_constant_expression): New function.
(Gcc_backend::real_part_expression): Likewise.
(Gcc_backend::imag_part_expression): Likewise.
(Gcc_backend::complex_expression): Likewise.
(Gcc_backend::constructor_expression): Likewise.
(Gcc_backend::array_constructor_expression): Likewise.
(Gcc_backend::pointer_offset_expression): Likewise.
(Gcc_backend::array_index_expression): Likewise.
(Gcc_backend::call_expression): Likewise.
(Gcc_backend::exception_handler_statement): Likewise.
(Gcc_backend::function_defer_statement): Likewise.
(Gcc_backend::function_set_parameters): Likewise.
(Gcc_backend::function_set_body): Likewise.
(Gcc_backend::convert_expression): Handle various type
conversions.

From-SVN: r209393

10 years agoipa-devirt.c (maybe_record_node): Ignore all non-methods (including cxa_pure_virtual).
Jan Hubicka [Mon, 14 Apr 2014 19:59:00 +0000 (21:59 +0200)]
ipa-devirt.c (maybe_record_node): Ignore all non-methods (including cxa_pure_virtual).

* ipa-devirt.c (maybe_record_node): Ignore all non-methods (including
cxa_pure_virtual).

From-SVN: r209391

10 years agotree.h (TYPE_IDENTIFIER): Declare.
Paolo Carlini [Mon, 14 Apr 2014 18:10:27 +0000 (18:10 +0000)]
tree.h (TYPE_IDENTIFIER): Declare.

2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

* tree.h (TYPE_IDENTIFIER): Declare.
* tree.c (subrange_type_for_debug_p): Use it.
* godump.c (go_format_type): Likewise.
* dwarf2out.c (is_cxx_auto, modified_type_die,
gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
* dbxout.c (dbxout_type, dbxout_symbol): Likewise.

/cp
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

* cp-tree.h (TYPE_IDENTIFIER): Remove declaration.

/objcp
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

* objcp-decl.h (OBJC_TYPE_NAME, OBJC_SET_TYPE_NAME): Use
TYPE_IDENTIFIER.

/ada
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

* gcc-interface/decl.c (gnat_to_gnu_entity, components_to_record):
Use TYPE_IDENTIFIER.
* gcc-interface/utils.c (make_aligning_type, maybe_pad_type,
finish_record_type, rest_of_record_type_compilation): Likewise.

From-SVN: r209390

10 years agore PR lto/60820 (ice in ctor_for_folding, at varpool.c:291)
Jan Hubicka [Mon, 14 Apr 2014 17:53:34 +0000 (19:53 +0200)]
re PR lto/60820 (ice in ctor_for_folding, at varpool.c:291)

PR lto/60820
* varpool.c (varpool_remove_node): Do not alter decls when streaming.

From-SVN: r209389

10 years agoi386.c (examine_argument): Return bool.
Uros Bizjak [Mon, 14 Apr 2014 17:49:36 +0000 (19:49 +0200)]
i386.c (examine_argument): Return bool.

* config/i386/i386.c (examine_argument): Return bool.  Return true if
parameter should be passed in memory.
<case X86_64_COMPLEX_X87_CLASS>: Adjust.
(construct_container): Update calls to examine_argument.
(function_arg_advance_64): Ditto.
(return_in_memory_32): Merge with ix86_return_in_memory.
(return_in_memory_64): Ditto.
(return_in_memory_ms_64): Ditto.

From-SVN: r209388

10 years agoipa-utils.c (ipa_merge_profiles): Merge profile_id.
Jan Hubicka [Mon, 14 Apr 2014 17:18:54 +0000 (19:18 +0200)]
ipa-utils.c (ipa_merge_profiles): Merge profile_id.

* ipa-utils.c (ipa_merge_profiles): Merge profile_id.
* coverage.c (coverage_compute_profile_id): Handle externally visible
symbols.

* lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
tp_first_run.

From-SVN: r209387

10 years agotree-sra.c (ipa_sra_preliminary_function_checks): Skip DECL_DISREGARD_INLINE_LIMITS...
Martin Jambor [Mon, 14 Apr 2014 17:17:27 +0000 (19:17 +0200)]
tree-sra.c (ipa_sra_preliminary_function_checks): Skip DECL_DISREGARD_INLINE_LIMITS functions.

2014-04-14  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (ipa_sra_preliminary_function_checks): Skip
DECL_DISREGARD_INLINE_LIMITS functions.

From-SVN: r209386

10 years agoRevert the last change on *fixuns_trunc<mode>_1
H.J. Lu [Mon, 14 Apr 2014 17:01:03 +0000 (17:01 +0000)]
Revert the last change on *fixuns_trunc<mode>_1

PR target/60827
* config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last
change.

From-SVN: r209385

10 years agoCheck optimize_insn_for_speed_p in *fixuns_trunc<mode>_1
H.J. Lu [Mon, 14 Apr 2014 16:49:24 +0000 (16:49 +0000)]
Check optimize_insn_for_speed_p in *fixuns_trunc<mode>_1

Since fixuns_trunc<mode>si2 expander checks optimize_insn_for_size_p
before generating *fixuns_trunc<mode>_1,  we should use
optimize_insn_for_speed_p in *fixuns_trunc<mode>_1 for consistency.

PR target/60827
* config/i386/i386.md (*fixuns_trunc<mode>_1): Check
optimize_insn_for_speed_p instead of
optimize_function_for_speed_p.

From-SVN: r209383

10 years agore PR libstdc++/60497 (unique_ptr<T> tries to complete its type T even though it...
Jonathan Wakely [Mon, 14 Apr 2014 15:32:58 +0000 (16:32 +0100)]
re PR libstdc++/60497 (unique_ptr<T> tries to complete its type T even though it's not required to be a complete type)

PR libstdc++/60497
* include/std/tuple (get): Qualify calls to prevent ADL.
* testsuite/20_util/tuple/60497.cc: New.

From-SVN: r209381

10 years agoallocator.h (operator==, operator!=): Add exception specifications.
Jonathan Wakely [Mon, 14 Apr 2014 15:13:02 +0000 (16:13 +0100)]
allocator.h (operator==, operator!=): Add exception specifications.

* include/bits/allocator.h (operator==, operator!=): Add exception
specifications.

From-SVN: r209379

10 years agoLimit operations on vector::pointer to NullablePointer requirements.
Jonathan Wakely [Mon, 14 Apr 2014 14:51:35 +0000 (15:51 +0100)]
Limit operations on vector::pointer to NullablePointer requirements.

* include/bits/stl_vector.h (_Vector_base::_Vector_impl,
_Vector_base::_M_allocate): NullablePointer requirements do not
include initialization from literal zero, use value-initialization.
* include/bits/vector.tcc (vector::_M_insert_aux,
vector::_M_explace_back_aux): Likewise for assignment.

From-SVN: r209377

10 years agoinvoke.texi (free): Document AArch64.
Yufeng Zhang [Mon, 14 Apr 2014 14:40:02 +0000 (14:40 +0000)]
invoke.texi (free): Document AArch64.

gcc/

* doc/invoke.texi (free): Document AArch64.

From-SVN: r209376

10 years agosnames.ads-tmpl (Name_Ivdep): New pragma-related name.
Eric Botcazou [Mon, 14 Apr 2014 14:18:26 +0000 (14:18 +0000)]
snames.ads-tmpl (Name_Ivdep): New pragma-related name.

* snames.ads-tmpl (Name_Ivdep): New pragma-related name.
* sem_prag.adb (Analyze_Pragma) <Pragma_Loop_Optimize>: Add support
for Ivdep hint.
* gnat_rm.texi (Implementation Defined Pragmas): Document new Ivdep
hint for Loop_Optimize.
* gnat_ugn.texi (Vectorization of loops): Mention new Ivdep hint.
* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal
with new Ivdep hint.
* gcc-interface/ada-tree.h (LOOP_STMT_IVDEP): New macro.
* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal
with new Ivdep hint.
(gnat_gimplify_stmt) <LOOP_STMT>: Propagate the loop hints.

From-SVN: r209375