platform/upstream/linaro-gcc.git
9 years ago[AArch64] Use new reduc_plus_scal optabs, inc. for __builtins
alalaw01 [Mon, 27 Oct 2014 15:20:18 +0000 (15:20 +0000)]
[AArch64] Use new reduc_plus_scal optabs, inc. for __builtins

* config/aarch64/aarch64-simd-builtins.def
(reduc_splus_<mode>/VDQF, reduc_uplus_<mode>/VDQF, reduc_splus_v4sf):
Remove.
(reduc_plus_scal_<mode>, reduc_plus_scal_v4sf): New.

* config/aarch64/aarch64-simd.md (reduc_<sur>plus_mode): Remove.
(reduc_splus_<mode>, reduc_uplus_<mode>, reduc_plus_scal_<mode>): New.

(reduc_<sur>plus_mode): Change SUADDV -> UNSPEC_ADDV, rename to...
(aarch64_reduc_plus_internal<mode>): ...this.

(reduc_<sur>plus_v2si): Change SUADDV -> UNSPEC_ADDV, rename to...
(aarch64_reduc_plus_internalv2si): ...this.

(reduc_splus_<mode>/V2F): Rename to...
(aarch64_reduc_plus_internal<mode>): ...this.

* config/aarch64/iterators.md
(UNSPEC_SADDV, UNSPEC_UADDV, SUADDV): Remove.
(UNSPEC_ADDV): New.
(sur): Remove elements for UNSPEC_SADDV and UNSPEC_UADDV.

* config/aarch64/arm_neon.h (vaddv_s8, vaddv_s16, vaddv_s32, vaddv_u8,
vaddv_u16, vaddv_u32, vaddvq_s8, vaddvq_s16, vaddvq_s32, vaddvq_s64,
vaddvq_u8, vaddvq_u16, vaddvq_u32, vaddvq_u64, vaddv_f32, vaddvq_f32,
vaddvq_f64): Change __builtin_aarch64_reduc_[us]plus_... to
__builtin_aarch64_reduc_plus_scal, remove vget_lane wrapper.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216738 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd new optabs for reducing vectors to scalars
alalaw01 [Mon, 27 Oct 2014 14:20:52 +0000 (14:20 +0000)]
Add new optabs for reducing vectors to scalars

PR tree-optimization/61114
* doc/md.texi (Standard Names): Add reduc_(plus,[us](min|max))|scal
optabs, and note in reduc_[us](plus|min|max) to prefer the former.

* expr.c (expand_expr_real_2): Use reduc_..._scal if available, fall
back to old reduc_... + BIT_FIELD_REF only if not.

* optabs.c (optab_for_tree_code): for REDUC_(MAX,MIN,PLUS)_EXPR,
return the reduce-to-scalar (reduc_..._scal) optab.
(scalar_reduc_to_vector): New.

* optabs.def (reduc_smax_scal_optab, reduc_smin_scal_optab,
reduc_plus_scal_optab, reduc_umax_scal_optab, reduc_umin_scal_optab):
New.

* optabs.h (scalar_reduc_to_vector): Declare.

* tree-vect-loop.c (vectorizable_reduction): Look for optabs reducing
to either scalar or vector.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216737 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[Vectorizer] Make REDUC_xxx_EXPR tree codes produce a scalar result
alalaw01 [Mon, 27 Oct 2014 14:04:43 +0000 (14:04 +0000)]
[Vectorizer] Make REDUC_xxx_EXPR tree codes produce a scalar result

PR tree-optimization/61114
* expr.c (expand_expr_real_2): For REDUC_{MIN,MAX,PLUS}_EXPR, add
extract_bit_field around optab result.

* fold-const.c (fold_unary_loc): For REDUC_{MIN,MAX,PLUS}_EXPR, produce
scalar not vector.

* tree-cfg.c (verify_gimple_assign_unary): Check result vs operand type
for REDUC_{MIN,MAX,PLUS}_EXPR.

* tree-vect-loop.c (vect_analyze_loop): Update comment.
(vect_create_epilog_for_reduction): For direct vector reduction, use
result of tree code directly without extract_bit_field.

* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Update
comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216736 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-27 Andrew MacLeod <amacleod@redhat.com>
amacleod [Mon, 27 Oct 2014 12:41:01 +0000 (12:41 +0000)]
2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* testsuite/gcc.dg/plugin/ggcplug.c: Shuffle includes to include
gcc-plugin.h earlier.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* c/c-typeck.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* c-family/c-gimplify.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* cp/cp-gimplify.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* go/go-gcc.cc: Adjust include files.
* go/go-lang.c: Ditto.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* java/java-gimplify.c: Adjust include files.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* lto/lto-lang.c: Adjust include files.
* lto/lto-object.c: Ditto.
* lto/lto-partition.c: Ditto.
* lto/lto-symtab.c: Ditto.
* lto/lto.c: Ditto.

2014-10-27  Andrew MacLeod  <amacleod@redhat.com>

* basic-block.h: Remove all includes.
(enum profile_status_d, struct control_flow_graph): Move to cfg.h
* cfg.h (profile_status_d, struct control_flow_graph): Relocate here.
* Makefile.in (GTFILES): Add cfg.h to list.
* cgraph.h (symbol_table::create_empty): Move to cgraph.c.
* cgraph.c (symbol_table::create_empty): Relocate from cgraph.h.
* genconditions.c (write_header): Add predict.h and basic-block.h to
lits of includes.
* genemit.c (main): Ditto.
* genpreds.c (write_insn_preds_c): Ditto.
* genrecog.c (write_header): Ditto.
* gengtype.c (open_base_files): Add predict.h, basic-block.h, and cfg.h
to list of includes.
* alias.c: Adjust include files.
* asan.c: Ditto.
* auto-inc-dec.c: Ditto.
* auto-profile.c: Ditto.
* bb-reorder.c: Ditto.
* bt-load.c: Ditto.
* builtins.c: Ditto.
* caller-save.c: Ditto.
* calls.c: Ditto.
* cfg.c: Ditto.
* cfganal.c: Ditto.
* cfgbuild.c: Ditto.
* cfgcleanup.c: Ditto.
* cfgexpand.c: Ditto.
* cfghooks.c: Ditto.
* cfgloop.c: Ditto.
* cfgloopanal.c: Ditto.
* cfgloopmanip.c: Ditto.
* cfgrtl.c: Ditto.
* cgraphbuild.c: Ditto.
* cgraphclones.c: Ditto.
* cgraphunit.c: Ditto.
* combine-stack-adj.c: Ditto.
* combine.c: Ditto.
* compare-elim.c: Ditto.
* coverage.c: Ditto.
* cprop.c: Ditto.
* cse.c: Ditto.
* cselib.c: Ditto.
* data-streamer-in.c: Ditto.
* data-streamer-out.c: Ditto.
* data-streamer.c: Ditto.
* dce.c: Ditto.
* ddg.c: Ditto.
* ddg.h: Ditto.
* df-core.c: Ditto.
* df-problems.c: Ditto.
* df-scan.c: Ditto.
* df.h: Ditto.
* dojump.c: Ditto.
* dominance.c: Ditto.
* domwalk.c: Ditto.
* dse.c: Ditto.
* dwarf2cfi.c: Ditto.
* emit-rtl.c: Ditto.
* et-forest.c: Ditto.
* except.c: Ditto.
* expmed.c: Ditto.
* expr.c: Ditto.
* final.c: Ditto.
* fold-const.c: Ditto.
* function.c: Ditto.
* fwprop.c: Ditto.
* gcc-plugin.h: Ditto.
* gcse.c: Ditto.
* generic-match-head.c: Ditto.
* ggc-page.c: Ditto.
* gimple-builder.c: Ditto.
* gimple-expr.c: Ditto.
* gimple-fold.c: Ditto.
* gimple-iterator.c: Ditto.
* gimple-low.c: Ditto.
* gimple-match-head.c: Ditto.
* gimple-pretty-print.c: Ditto.
* gimple-ssa-isolate-paths.c: Ditto.
* gimple-ssa-strength-reduction.c: Ditto.
* gimple-streamer-in.c: Ditto.
* gimple-streamer-out.c: Ditto.
* gimple-streamer.h: Ditto.
* gimple-walk.c: Ditto.
* gimple.c: Ditto.
* gimplify-me.c: Ditto.
* gimplify.c: Ditto.
* graph.c: Ditto.
* graphite-blocking.c: Ditto.
* graphite-clast-to-gimple.c: Ditto.
* graphite-dependences.c: Ditto.
* graphite-interchange.c: Ditto.
* graphite-isl-ast-to-gimple.c: Ditto.
* graphite-optimize-isl.c: Ditto.
* graphite-poly.c: Ditto.
* graphite-scop-detection.c: Ditto.
* graphite-sese-to-poly.c: Ditto.
* graphite.c: Ditto.
* haifa-sched.c: Ditto.
* hw-doloop.c: Ditto.
* ifcvt.c: Ditto.
* init-regs.c: Ditto.
* internal-fn.c: Ditto.
* ipa-cp.c: Ditto.
* ipa-devirt.c: Ditto.
* ipa-icf-gimple.c: Ditto.
* ipa-icf.c: Ditto.
* ipa-inline-analysis.c: Ditto.
* ipa-inline.c: Ditto.
* ipa-polymorphic-call.c: Ditto.
* ipa-profile.c: Ditto.
* ipa-prop.c: Ditto.
* ipa-pure-const.c: Ditto.
* ipa-reference.c: Ditto.
* ipa-split.c: Ditto.
* ipa-utils.c: Ditto.
* ipa.c: Ditto.
* ira-build.c: Ditto.
* ira-color.c: Ditto.
* ira-conflicts.c: Ditto.
* ira-costs.c: Ditto.
* ira-emit.c: Ditto.
* ira-lives.c: Ditto.
* ira.c: Ditto.
* jump.c: Ditto.
* lcm.c: Ditto.
* loop-doloop.c: Ditto.
* loop-init.c: Ditto.
* loop-invariant.c: Ditto.
* loop-iv.c: Ditto.
* loop-unroll.c: Ditto.
* lower-subreg.c: Ditto.
* lra-assigns.c: Ditto.
* lra-coalesce.c: Ditto.
* lra-constraints.c: Ditto.
* lra-eliminations.c: Ditto.
* lra-lives.c: Ditto.
* lra-spills.c: Ditto.
* lra.c: Ditto.
* lto-cgraph.c: Ditto.
* lto-compress.c: Ditto.
* lto-opts.c: Ditto.
* lto-section-in.c: Ditto.
* lto-section-out.c: Ditto.
* lto-streamer-in.c: Ditto.
* lto-streamer-out.c: Ditto.
* lto-streamer.c: Ditto.
* mcf.c: Ditto.
* mode-switching.c: Ditto.
* modulo-sched.c: Ditto.
* omp-low.c: Ditto.
* optabs.c: Ditto.
* opts-global.c: Ditto.
* passes.c: Ditto.
* postreload-gcse.c: Ditto.
* postreload.c: Ditto.
* predict.c: Ditto.
* print-rtl.c: Ditto.
* profile.c: Ditto.
* recog.c: Ditto.
* ree.c: Ditto.
* reg-stack.c: Ditto.
* regcprop.c: Ditto.
* regcprop.h: Ditto.
* reginfo.c: Ditto.
* regrename.c: Ditto.
* regstat.c: Ditto.
* reload.c: Ditto.
* reload1.c: Ditto.
* reorg.c: Ditto.
* resource.c: Ditto.
* rtlanal.c: Ditto.
* sched-deps.c: Ditto.
* sched-ebb.c: Ditto.
* sched-int.h: Ditto.
* sched-rgn.c: Ditto.
* sched-vis.c: Ditto.
* sel-sched-dump.c: Ditto.
* sel-sched-ir.c: Ditto.
* sel-sched-ir.h: Ditto.
* sel-sched.c: Ditto.
* sese.c: Ditto.
* shrink-wrap.c: Ditto.
* stack-ptr-mod.c: Ditto.
* stmt.c: Ditto.
* store-motion.c: Ditto.
* symtab.c: Ditto.
* toplev.c: Ditto.
* tracer.c: Ditto.
* trans-mem.c: Ditto.
* tree-affine.c: Ditto.
* tree-call-cdce.c: Ditto.
* tree-cfg.c: Ditto.
* tree-cfgcleanup.c: Ditto.
* tree-chrec.c: Ditto.
* tree-complex.c: Ditto.
* tree-data-ref.c: Ditto.
* tree-dfa.c: Ditto.
* tree-eh.c: Ditto.
* tree-emutls.c: Ditto.
* tree-if-conv.c: Ditto.
* tree-inline.c: Ditto.
* tree-into-ssa.c: Ditto.
* tree-loop-distribution.c: Ditto.
* tree-nested.c: Ditto.
* tree-nrv.c: Ditto.
* tree-object-size.c: Ditto.
* tree-outof-ssa.c: Ditto.
* tree-parloops.c: Ditto.
* tree-phinodes.c: Ditto.
* tree-predcom.c: Ditto.
* tree-pretty-print.c: Ditto.
* tree-profile.c: Ditto.
* tree-scalar-evolution.c: Ditto.
* tree-sra.c: Ditto.
* tree-ssa-address.c: Ditto.
* tree-ssa-alias.c: Ditto.
* tree-ssa-ccp.c: Ditto.
* tree-ssa-coalesce.c: Ditto.
* tree-ssa-copy.c: Ditto.
* tree-ssa-copyrename.c: Ditto.
* tree-ssa-dce.c: Ditto.
* tree-ssa-dom.c: Ditto.
* tree-ssa-dse.c: Ditto.
* tree-ssa-forwprop.c: Ditto.
* tree-ssa-ifcombine.c: Ditto.
* tree-ssa-live.c: Ditto.
* tree-ssa-loop-ch.c: Ditto.
* tree-ssa-loop-im.c: Ditto.
* tree-ssa-loop-ivcanon.c: Ditto.
* tree-ssa-loop-ivopts.c: Ditto.
* tree-ssa-loop-manip.c: Ditto.
* tree-ssa-loop-niter.c: Ditto.
* tree-ssa-loop-prefetch.c: Ditto.
* tree-ssa-loop-unswitch.c: Ditto.
* tree-ssa-loop.c: Ditto.
* tree-ssa-math-opts.c: Ditto.
* tree-ssa-operands.c: Ditto.
* tree-ssa-phiopt.c: Ditto.
* tree-ssa-phiprop.c: Ditto.
* tree-ssa-pre.c: Ditto.
* tree-ssa-propagate.c: Ditto.
* tree-ssa-reassoc.c: Ditto.
* tree-ssa-sccvn.c: Ditto.
* tree-ssa-sink.c: Ditto.
* tree-ssa-strlen.c: Ditto.
* tree-ssa-structalias.c: Ditto.
* tree-ssa-tail-merge.c: Ditto.
* tree-ssa-ter.c: Ditto.
* tree-ssa-threadedge.c: Ditto.
* tree-ssa-threadupdate.c: Ditto.
* tree-ssa-uncprop.c: Ditto.
* tree-ssa-uninit.c: Ditto.
* tree-ssa.c: Ditto.
* tree-ssanames.c: Ditto.
* tree-stdarg.c: Ditto.
* tree-streamer-in.c: Ditto.
* tree-streamer-out.c: Ditto.
* tree-streamer.c: Ditto.
* tree-switch-conversion.c: Ditto.
* tree-tailcall.c: Ditto.
* tree-vect-data-refs.c: Ditto.
* tree-vect-generic.c: Ditto.
* tree-vect-loop-manip.c: Ditto.
* tree-vect-loop.c: Ditto.
* tree-vect-patterns.c: Ditto.
* tree-vect-slp.c: Ditto.
* tree-vect-stmts.c: Ditto.
* tree-vectorizer.c: Ditto.
* tree-vrp.c: Ditto.
* tree.c: Ditto.
* tsan.c: Ditto.
* ubsan.c: Ditto.
* valtrack.c: Ditto.
* valtrack.h: Ditto.
* value-prof.c: Ditto.
* var-tracking.c: Ditto.
* varasm.c: Ditto.
* varpool.c: Ditto.
* vtable-verify.c: Ditto.
* web.c: Ditto.
* config/aarch64/aarch64-builtins.c: Ditto.
* config/aarch64/aarch64.c: Ditto.
* config/alpha/alpha.c: Ditto.
* config/arc/arc.c: Ditto.
* config/arm/arm.c: Ditto.
* config/avr/avr.c: Ditto.
* config/bfin/bfin.c: Ditto.
* config/c6x/c6x.c: Ditto.
* config/cr16/cr16.c: Ditto.
* config/cris/cris.c: Ditto.
* config/darwin-c.c: Ditto.
* config/darwin.c: Ditto.
* config/epiphany/epiphany.c: Ditto.
* config/epiphany/mode-switch-use.c: Ditto.
* config/epiphany/resolve-sw-modes.c: Ditto.
* config/fr30/fr30.c: Ditto.
* config/frv/frv.c: Ditto.
* config/h8300/h8300.c: Ditto.
* config/i386/i386.c: Ditto.
* config/i386/winnt.c: Ditto.
* config/ia64/ia64.c: Ditto.
* config/iq2000/iq2000.c: Ditto.
* config/lm32/lm32.c: Ditto.
* config/m32c/m32c.c: Ditto.
* config/m32r/m32r.c: Ditto.
* config/m68k/m68k.c: Ditto.
* config/mcore/mcore.c: Ditto.
* config/mep/mep.c: Ditto.
* config/microblaze/microblaze.c: Ditto.
* config/mips/mips.c: Ditto.
* config/mmix/mmix.c: Ditto.
* config/mn10300/mn10300.c: Ditto.
* config/moxie/moxie.c: Ditto.
* config/msp430/msp430.c: Ditto.
* config/nds32/nds32-cost.c: Ditto.
* config/nds32/nds32-fp-as-gp.c: Ditto.
* config/nds32/nds32-intrinsic.c: Ditto.
* config/nds32/nds32-isr.c: Ditto.
* config/nds32/nds32-md-auxiliary.c: Ditto.
* config/nds32/nds32-memory-manipulation.c: Ditto.
* config/nds32/nds32-pipelines-auxiliary.c: Ditto.
* config/nds32/nds32-predicates.c: Ditto.
* config/nds32/nds32.c: Ditto.
* config/nios2/nios2.c: Ditto.
* config/pa/pa.c: Ditto.
* config/pdp11/pdp11.c: Ditto.
* config/rl78/rl78.c: Ditto.
* config/rs6000/rs6000.c: Ditto.
* config/rx/rx.c: Ditto.
* config/s390/s390.c: Ditto.
* config/sh/sh-mem.cc: Ditto.
* config/sh/sh.c: Ditto.
* config/sh/sh_optimize_sett_clrt.cc: Ditto.
* config/sh/sh_treg_combine.cc: Ditto.
* config/sparc/sparc.c: Ditto.
* config/spu/spu.c: Ditto.
* config/stormy16/stormy16.c: Ditto.
* config/tilegx/tilegx.c: Ditto.
* config/tilepro/tilepro.c: Ditto.
* config/v850/v850.c: Ditto.
* config/vax/vax.c: Ditto.
* config/xtensa/xtensa.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216735 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Temporarily remove aarch64_gimple_fold_builtin code for reduction operations
alalaw01 [Mon, 27 Oct 2014 12:28:30 +0000 (12:28 +0000)]
[AArch64] Temporarily remove aarch64_gimple_fold_builtin code for reduction operations

* config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Comment out.
* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
Remove using preprocessor directives.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216734 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc-interface/utils.c (create_subprog_decl): Adjust condition.
ebotcazou [Mon, 27 Oct 2014 11:42:01 +0000 (11:42 +0000)]
* gcc-interface/utils.c (create_subprog_decl): Adjust condition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216733 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-27 Richard Biener <rguenther@suse.de>
rguenth [Mon, 27 Oct 2014 11:41:14 +0000 (11:41 +0000)]
2014-10-27  Richard Biener  <rguenther@suse.de>

* match.pd (0 % X): Properly use the iterator iterating over
all modulo operators.
(X % 1): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216732 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc-interface/misc.c (gnat_init_options_struct): Parameterize errno
ebotcazou [Mon, 27 Oct 2014 11:40:47 +0000 (11:40 +0000)]
* gcc-interface/misc.c (gnat_init_options_struct): Parameterize errno
support here instead of...
Do not set flag_delete_dead_exceptions to 1 unconditionally.
(gnat_init_gcc_eh): Set flag_delete_dead_exceptions to 1.
(gnat_init_gcc_fp): ...here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216731 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc-interface/trans.c (gnat_to_gnu) <N_Real_Literal>: Minor tweaks.
ebotcazou [Mon, 27 Oct 2014 11:37:19 +0000 (11:37 +0000)]
* gcc-interface/trans.c (gnat_to_gnu) <N_Real_Literal>: Minor tweaks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216730 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc-interface/utils.c (create_var_decl_1): For a variable declared
ebotcazou [Mon, 27 Oct 2014 11:33:21 +0000 (11:33 +0000)]
* gcc-interface/utils.c (create_var_decl_1): For a variable declared
in the unit, set TREE_PUBLIC only if it has static storage duration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216729 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-27 Richard Biener <rguenther@suse.de>
rguenth [Mon, 27 Oct 2014 11:30:23 +0000 (11:30 +0000)]
2014-10-27  Richard Biener  <rguenther@suse.de>

* tree-ssa-forwprop.c: Include tree-cfgcleanup.h and tree-into-ssa.h.
(lattice): New global.
(fwprop_ssa_val): New function.
(fold_all_stmts): Likewise.
(pass_forwprop::execute): Finally fold all stmts.

* gcc.dg/tree-ssa/forwprop-6.c: Scan ccp1 dump instead.
* gcc.dg/strlenopt-8.c: Adjust and XFAIL for non_strict_align
target due to memcpy inline-expansion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216728 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc-interface/decl.c (gnat_to_gnu_entity): Apply special treatment
ebotcazou [Mon, 27 Oct 2014 11:19:41 +0000 (11:19 +0000)]
* gcc-interface/decl.c (gnat_to_gnu_entity): Apply special treatment
of derived packed array types to constrained subtypes only.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216727 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove
ebotcazou [Mon, 27 Oct 2014 10:56:04 +0000 (10:56 +0000)]
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove
superfluous computation for the max size.
<E_Array_Subtype>: Likewise.  Make sure that the max size calculation
does not overflow at compile time.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216725 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Mon, 27 Oct 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216723 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoIn cp/error.c, I separate the initialization of the diagnostic context
manu [Sun, 26 Oct 2014 21:21:58 +0000 (21:21 +0000)]
In cp/error.c, I separate the initialization of the diagnostic context
from the initialization of the scratch pretty-printer (cxx_pp).  This
was suggested by Gabriel in the last review of the patch and now I
realize it was a good idea. Now cxx_initialize_diagnostics is the
equivalent version of c_initialize_diagnostics.  To avoid having to
make extern a bunch of functions, I moved it from cp-objcp-common.c to
error.c.

I moved the setting of diagnostic_format_decoder (global_dc) =
c_tree_printer, from c_objc_common_init to c_initialize_diagnostics,
and right after c_common_diagnostics_set_defaults.  This
mimics what is done in cxx_initialize_diagnostics.

Moreover, in both c_initialize_diagnostics and
cxx_initialize_diagnostics, the FE-specific pretty-printer is
initialized first and then other settings are applied. This does not
make a difference right now, but if in the future one wishes to touch
something in the pretty-printer, it will not get overriden
immediately.

In fact, the code I removed in c_common_initialize_diagnostics, which
sets line_cutoff to 80, is useless because the pretty-printer created
here is actually never used, but overriden by the FE-specific
pretty-printers. This also means that doc/invoke.texi was wrong.

Finally, it is useless to set the maximum line length to 0 in the
constructor of cxx_pretty_printer.  It is the default anyway.

gcc/c/ChangeLog:

2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c++/53061
* c-objc-common.c (c_objc_common_init): Do not do diagnostics
initialization here...
(c_initialize_diagnostics): ... but here. Set defaults after
building pretty-printer.

gcc/ChangeLog:

2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c++/53061
* doc/invoke.texi (fmessage-length): Update text to match reality.

gcc/cp/ChangeLog:

2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c++/53061
* cp-objcp-common.c: Do not include new.
(cxx_initialize_diagnostics): Move from here to ...
* error.c (cxx_initialize_diagnostics): : ... here. Move
diagnostics initialization here from init_error.
(cxx_pp): Use a real pointer not a macro.
(init_error): Just initialize cxx_pp.
* cxx-pretty-print.c (cxx_pretty_printer::cxx_pretty_printer): Do
not set maximum line length.

gcc/c-family/ChangeLog:

2014-10-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c++/53061
* c-opts.c (c_common_diagnostics_set_defaults): Renamed from
c_common_initialize_diagnostics.
* c-common.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216720 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 19:47:22 +0000 (19:47 +0000)]
gcc/
* config/microblaze/microblaze.c: Include rtl-iter.h.
(microblaze_tls_referenced_p_1): Delete.
(microblaze_tls_referenced_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216719 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/pa/linux-unwind.h (pa32_read_access_ok): New function.
danglin [Sun, 26 Oct 2014 14:46:14 +0000 (14:46 +0000)]
* config/pa/linux-unwind.h (pa32_read_access_ok): New function.
(pa32_fallback_frame_state): Use pa32_read_access_ok to check if
memory read accesses are ok.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216716 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:42:00 +0000 (10:42 +0000)]
gcc/
* config/mips/mips.c (mips_at_reg_p): Delete.
(mips_need_noat_wrapper_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216715 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:41:53 +0000 (10:41 +0000)]
gcc/
* config/mips/mips.c (mips_record_lo_sum): Replace with...
(mips_record_lo_sums): ...this new function.
(mips_reorg_process_insns): Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216714 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:41:45 +0000 (10:41 +0000)]
gcc/
* config/mips/mips.c (mips_sim_insn): Update comment.
(mips_sim_wait_regs_2): Delete.
(mips_sim_wait_regs_1): Use FOR_EACH_SUBRTX_VAR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216713 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:41:36 +0000 (10:41 +0000)]
gcc/
* config/mips/mips.c (r10k_needs_protection_p_call): Take a const_rtx
and return a bool.  Iterate over all subrtxes here.
(r10k_needs_protection_p): Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216712 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:41:29 +0000 (10:41 +0000)]
gcc/
* config/mips/mips.c (r10k_needs_protection_p_1): Take an rtx
rather than an rtx pointer.  Change type of insn from "void *"
to its real type.  Return bool rather than int.  Iterate over
all subrtxes here.
(r10k_needs_protection_p_store): Update accordingly.
(r10k_needs_protection_p): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216711 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:41:22 +0000 (10:41 +0000)]
gcc/
* config/mips/mips.c (mips16_rewrite_pool_refs_info): Delete.
(mips16_rewrite_pool_refs): Take the insn and constant pool as
parameters.  Iterate over the instruction's pattern and return void.
(mips16_lay_out_constants): Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216710 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:41:13 +0000 (10:41 +0000)]
gcc/
* config/mips/mips.c (mips_kernel_reg_p): Replace with...
(mips_refers_to_kernel_reg_p): ...this new function.
(mips_expand_prologue): Update accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216709 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:41:06 +0000 (10:41 +0000)]
gcc/
* config/mips/mips.c (mips_rewrite_small_data_1): Take the context
as a parameter instead of the containing MEM.  Iterate over all
subrtxes.  Don't return a value.
(mips_rewrite_small_data): Update call accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216708 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:59 +0000 (10:40 +0000)]
gcc/
* config/mips/mips.c: Include rtl-iter.h.
(mips_small_data_pattern_1): Take an rtx rather than an rtx pointer.
Take the context as a parameter instead of the containing MEM.
Iterate over all subrtxes.
(mips_small_data_pattern_p): Update call accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216707 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:52 +0000 (10:40 +0000)]
gcc/
* config/mep/mep.c (mep_mul_hilo_bypass_1): Delete.
(mep_mul_hilo_bypass_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216706 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:44 +0000 (10:40 +0000)]
gcc/
* config/mep/mep.c (mep_store_find_set): Take a const_rtx and
return a bool.  Replace "void *" with specific type.  Iterate
over all subrtxes.
(mep_store_data_bypass_1): Update calls accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216705 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:37 +0000 (10:40 +0000)]
gcc/
* config/mep/mep.c: Include rtl-iter.h.
(global_reg_mentioned_p_1): Take a const_rtx and return a bool.
(xtensa_tls_referenced_p): Return a bool.  Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216704 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:29 +0000 (10:40 +0000)]
gcc/
* config/xtensa/xtensa.c: Include rtl-iter.h.
(xtensa_tls_referenced_p_1): Delete.
(xtensa_tls_referenced_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216703 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:22 +0000 (10:40 +0000)]
gcc/
* config/sh/sh.c (sh_contains_memref_p_1): Delete.
(sh_contains_memref_p): Use FOR_EACH_SUBRTX.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216702 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:15 +0000 (10:40 +0000)]
gcc/
* config/sh/sh-protos.h (shmedia_cleanup_truncate): Take an
rtx as argument and return the number of changes.
* config/sh/sh.c: Include rtl-iter.h.
(shmedia_cleanup_truncate): Take an rtx as argument and iterate
over all subrtxes.  Return the number of changes made.
* config/sh/sh.md: Update caller accordingly.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216701 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:40:05 +0000 (10:40 +0000)]
gcc/
* config/m68k/m68k.c (m68k_tls_reference_p_1): Delete.
(m68k_tls_reference_p): Use FOR_EACH_SUBRTX_VAR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216700 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Sun, 26 Oct 2014 10:39:57 +0000 (10:39 +0000)]
gcc/
* config/m68k/m68k.c: Include rtl-iter.h.
(m68k_final_prescan_insn_1): Delete.
(m68k_final_prescan_insn): Use FOR_EACH_SUBRTX_VAR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216699 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Sun, 26 Oct 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216696 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR tree-optimization/63641
jakub [Sat, 25 Oct 2014 20:21:47 +0000 (20:21 +0000)]
PR tree-optimization/63641
* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Set high
to low + prec - 1 - clz (mask) instead of low + prec - clz (mask).

* gcc.c-torture/execute/pr63641.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216693 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-25 François Dumont <fdumont@gcc.gnu.org>
fdumont [Sat, 25 Oct 2014 20:18:19 +0000 (20:18 +0000)]
2014-10-25  François Dumont  <fdumont@gcc.gnu.org>

* doc/xml/manual/status_cxx2011.xml: Update unordered container
specific behavior.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216692 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd forgotten "configure: regenerate" stanza to last CL entry.
hp [Sat, 25 Oct 2014 15:36:39 +0000 (15:36 +0000)]
Add forgotten "configure: regenerate" stanza to last CL entry.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216690 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR rtl-optimization/63615
amodra [Sat, 25 Oct 2014 06:45:52 +0000 (06:45 +0000)]
PR rtl-optimization/63615
* simplify-rtx.c (simplify_plus_minus): Set "canonicalized" on
decomposing PLUS or MINUS if operands are not placed adjacent
in the "ops" array.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216689 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoOnly allow e500 double in SPE_SIMD_REGNO_P registers.
jsm28 [Sat, 25 Oct 2014 00:23:17 +0000 (00:23 +0000)]
Only allow e500 double in SPE_SIMD_REGNO_P registers.

rs6000_hard_regno_nregs_internal allows SPE vectors in single
registers satisfying SPE_SIMD_REGNO_P (i.e. register numbers 0 to
31).  However, the corresponding test for e500 double treats all
registers as being able to store a 64-bit value, rather than just
those GPRs.

Logically this inconsistency is wrong; in addition, it causes problems
unwinding from signal handlers.  linux-unwind.h uses
ARG_POINTER_REGNUM as a place to store the return address from a
signal handler, but this logic in rs6000_hard_regno_nregs_internal
results in that being considered an 8-byte register, resulting in
assertion failures.
(<https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02625.html> first
needs to be applied for unwinding to work in general on e500.)  This
patch makes rs6000_hard_regno_nregs_internal handle the e500 double
case consistently with SPE vectors.

Tested with no regressions with cross to powerpc-linux-gnuspe (given
the aforementioned patch applied).  Failures of signal handling
unwinding tests such as gcc.dg/cleanup-{8,9,10,11}.c are fixed by this
patch.

* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Do
not allow e500 double in registers not satisyfing
SPE_SIMD_REGNO_P.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216688 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoOptimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use.
jsm28 [Sat, 25 Oct 2014 00:22:02 +0000 (00:22 +0000)]
Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use.

Continuing the cleanups of libgcc soft-fp configuration for
powerpc*-*-linux* in preparation for implementing
TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch
optimizes the choice of which functions to build for the 32-bit
classic hard-float and soft-float cases.  (e500 will be dealt with in
a separate patch which will need to add new features to t-hardfp and
t-softfp; this patch keeps the status quo for e500.)

For hard-float, while the functions in question are part of the libgcc
ABI there is no need for them to contain software floating point code:
no newly built code should use them, and if anything does use them
it's most efficient (space and speed) for them to pass straight
through to floating-point hardware instructions; this case is made to
use t-hardfp to achieve that.  For soft-float, direct use of soft-fp
functions for operations involving DImode or unsigned integers is more
efficient than using the libgcc2.c versions of those operations to
convert to operations on other types (which then end up calling
soft-fp functions for those other types, possibly more than once);
this case is thus stopped from using t-softfp-excl.  (A future patch
will stop the e500 cases from using t-softfp-excl as well.)

Tested with no regressions for crosses to powerpc-linux-gnu (soft
float and classic hard float); also checked that the same set of
symbols and versions is exported from shared libgcc before and after
the patch.

* configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*.
* configure: Regenerate.
* config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine
additions to tmake_file.  Use t-hardfp-sfdf and t-hardfp instead
of soft-fp for 32-bit classic hard float.  Do not use
t-softfp-excl for soft float.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216687 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Sat, 25 Oct 2014 00:16:13 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216686 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * dwarf2out.c (declare_in_namespace): Only emit external
aldyh [Sat, 25 Oct 2014 00:08:41 +0000 (00:08 +0000)]
* dwarf2out.c (declare_in_namespace): Only emit external
declarations in the local scope once.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216683 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoC++11 explicitly forbids macros for bool, true and false.
redi [Fri, 24 Oct 2014 20:56:40 +0000 (20:56 +0000)]
C++11 explicitly forbids macros for bool, true and false.

gcc:
* ginclude/stdbool.h: Do not define bool, true or false in C++11.

libstdc++-v3:
* testsuite/18_support/headers/cstdbool/macros.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216679 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Tobias Burnus <burnus@net-b.de>
burnus [Fri, 24 Oct 2014 20:52:41 +0000 (20:52 +0000)]
2014-10-24  Tobias Burnus  <burnus@net-b.de>

gcc/fortran
        * check.c (check_co_collective): Reject coindexed A args.
        (gfc_check_co_reduce): Add OPERATOR checks.
        * gfortran.texi (_gfortran_caf_co_broadcast,
        * _gfortran_caf_co_max,
        _gfortran_caf_co_min, _gfortran_caf_co_sum,
        _gfortran_caf_co_reduce): Add ABI documentation.
        * intrinsic.texi (CO_REDUCE): Document intrinsic.
        (DPROD): Returns double not single precision.
        * trans-decl.c (gfor_fndecl_co_reduce): New global var.
        (gfc_build_builtin_function_decls): Init it.
        * trans.h (gfor_fndecl_co_reduce): Declare it.
        * trans-intrinsic.c (conv_co_collective,
        gfc_conv_intrinsic_subroutine): Handle CO_REDUCE.

gcc/testsuite/
        * gfortran.dg/coarray_collectives_9.f90: Remove dg-error.
        * gfortran.dg/coarray_collectives_13.f90: New.
        * gfortran.dg/coarray_collectives_14.f90: New.
        * gfortran.dg/coarray_collectives_15.f90: New.
        * gfortran.dg/coarray_collectives_16.f90: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216678 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix error in earlier ChangeLog entry: s/define/undefine/.
ian [Fri, 24 Oct 2014 18:27:04 +0000 (18:27 +0000)]
Fix error in earlier ChangeLog entry: s/define/undefine/.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216676 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARM] gnu11 cleanup for aapcs testcases
jiwang [Fri, 24 Oct 2014 17:14:02 +0000 (17:14 +0000)]
[ARM] gnu11 cleanup for aapcs testcases

gcc/testsuite/
   * gcc.target/arm/aapcs/abitest.h: Declare memcpy.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216675 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c/56980
mpolacek [Fri, 24 Oct 2014 16:29:56 +0000 (16:29 +0000)]
PR c/56980
* c-pretty-print.c (c_pretty_printer::simple_type_specifier): Don't
print "struct"/"union"/"enum" for typedefed names.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216674 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agofix up changelog format for r216671.
cbaylis [Fri, 24 Oct 2014 15:01:49 +0000 (15:01 +0000)]
fix up changelog format for r216671.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216673 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[PATCH 2/2] [AARCH64,NEON] Convert arm_neon.h to use new builtins for vld[234](q...
cbaylis [Fri, 24 Oct 2014 15:00:20 +0000 (15:00 +0000)]
[PATCH 2/2] [AARCH64,NEON] Convert arm_neon.h to use new builtins for vld[234](q?)_lane_*

2014-10-24  Charles Baylis  <charles.baylis@linaro.org>

* config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rewrite using builtins,
update uses to use new macro arguments.
(__LD3_LANE_FUNC): Likewise.
(__LD4_LANE_FUNC): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216672 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[PATCH 1/2] [AARCH64,NEON] Add patterns + builtins for vld[234](q?)_lane_* intrinsics
cbaylis [Fri, 24 Oct 2014 14:58:51 +0000 (14:58 +0000)]
[PATCH 1/2] [AARCH64,NEON] Add patterns + builtins for vld[234](q?)_lane_* intrinsics

2014-10-24  Charles Baylis  <charles.baylis@linaro.org>
* config/aarch64/aarch64-builtins.c
(aarch64_types_loadstruct_lane_qualifiers): Define.
* config/aarch64/aarch64-simd-builtins.def (ld2_lane, ld3_lane,
ld4_lane): New builtins.
* config/aarch64/aarch64-simd.md (aarch64_vec_load_lanesoi_lane<mode>):
New pattern.
(aarch64_vec_load_lanesci_lane<mode>): Likewise.
(aarch64_vec_load_lanesxi_lane<mode>): Likewise.
(aarch64_ld2_lane<mode>): New expand.
(aarch64_ld3_lane<mode>): Likewise.
(aarch64_ld4_lane<mode>): Likewise.
* config/aarch64/aarch64.md (define_c_enum "unspec"): Add
UNSPEC_LD2_LANE, UNSPEC_LD3_LANE, UNSPEC_LD4_LANE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216671 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix bad email last commit
hp [Fri, 24 Oct 2014 14:31:47 +0000 (14:31 +0000)]
Fix bad email last commit

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216670 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * configure.ac (build_configargs): Don't share config.cache between
hp [Fri, 24 Oct 2014 14:30:35 +0000 (14:30 +0000)]
* configure.ac (build_configargs): Don't share config.cache between
build subdirs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216669 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * avr-protos.h (avr_out_sign_extend): New.
gjl [Fri, 24 Oct 2014 14:25:10 +0000 (14:25 +0000)]
* avr-protos.h (avr_out_sign_extend): New.
* avr.c (avr_adjust_insn_length) [ADJUST_LEN_SEXT]: Handle.
(avr_out_sign_extend): New function.
* avr.md (extendqihi2, extendqipsi2, extendqisi2, extendhipsi2)
(extendhisi2, extendpsisi2): Use it.
(adjust_len) [sext]: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216668 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Fri, 24 Oct 2014 12:54:43 +0000 (12:54 +0000)]
2014-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/atomic_base.h: Avoid including <stdbool.h>.
* include/std/atomic: When __cplusplus < 201103L skip the rest of
the header.
* testsuite/29_atomics/headers/atomic/std_c++0x_neg.cc: Adjust.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216667 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Daniel Hellstrom <daniel@gaisler.com>
danielh [Fri, 24 Oct 2014 12:34:49 +0000 (12:34 +0000)]
2014-10-24  Daniel Hellstrom  <daniel@gaisler.com>

* config.gcc (sparc*-*-*): Accept mcpu=leon3v7 processor.
* doc/invoke.texi (SPARC options): Add mcpu=leon3v7 comment.
* config/sparc/leon.md (leon3_load, leon_store, leon_fp_*): Handle
leon3v7 as leon3.
* config/sparc/sparc-opts.h (enum processor_type): Add LEON3V7.
* config/sparc/sparc.c (sparc_option_override): Add leon3v7 support.
* config/sparc/sparc.h (TARGET_CPU_leon3v7): New define.
* config/sparc/sparc.md (cpu): Add leon3v7.
* config/sparc/sparc.opt (enum processor_type): Add leon3v7.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216666 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARM] revert changes on check_effective_target_arm_*_ok
jiwang [Fri, 24 Oct 2014 12:06:37 +0000 (12:06 +0000)]
[ARM] revert changes on check_effective_target_arm_*_ok

  gcc/testsuite/
    * lib/target-supports.exp
    (check_effective_target_arm_crypto_ok_nocache): Remove declaration for
    vaeseq_u8.
    (check_effective_target_arm_neon_fp16_ok_nocache): Remove declaration for
    vcvt_f16_f32.
    (check_effective_target_arm_neonv2_ok_nocache): Remove declaration for
    vfma_f32.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216663 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix for PR63595
marxin [Fri, 24 Oct 2014 11:57:58 +0000 (11:57 +0000)]
Fix for PR63595

* gcc.dg/ipa/pr63595.c: New test.
* ipa-icf.c (sem_function::compare_phi_node): PHI result comparison

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216662 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:54:30 +0000 (11:54 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vuzp.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vzip.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216661 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:54:06 +0000 (11:54 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vmul.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216660 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:53:29 +0000 (11:53 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216659 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:53:04 +0000 (11:53 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vldX.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216658 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:52:40 +0000 (11:52 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vld1_dup.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216657 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:52:16 +0000 (11:52 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216656 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:51:47 +0000 (11:51 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vclz.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216655 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:51:19 +0000 (11:51 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vbsl.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216654 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:50:51 +0000 (11:50 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vaddw.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216653 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:50:24 +0000 (11:50 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vaddl.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216652 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:49:59 +0000 (11:49 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vaddhn.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216651 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:49:10 +0000 (11:49 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vabdl.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216650 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:48:34 +0000 (11:48 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vabd.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216649 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:47:49 +0000 (11:47 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vabal.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216648 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:47:21 +0000 (11:47 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/binary_sat_op.inc: New
file.
* gcc.target/aarch64/advsimd-intrinsics/vqadd.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vqsub.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216647 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:46:47 +0000 (11:46 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/unary_sat_op.inc: New
file.
* gcc.target/aarch64/advsimd-intrinsics/vqabs.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vqneg.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216646 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:46:04 +0000 (11:46 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/cmp_fp_op.inc: New file.
* gcc.target/aarch64/advsimd-intrinsics/vcage.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcagt.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcale.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcalt.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216645 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:45:24 +0000 (11:45 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/cmp_op.inc: New file.
* gcc.target/aarch64/advsimd-intrinsics/vceq.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcge.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcgt.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vcle.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vclt.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216644 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:44:44 +0000 (11:44 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/binary_op.inc: New file.
* gcc.target/aarch64/advsimd-intrinsics/vadd.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vand.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vbic.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/veor.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vorn.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vorr.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vsub.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216643 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:42:09 +0000 (11:42 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/unary_op.inc: New file.
* gcc.target/aarch64/advsimd-intrinsics/vabs.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vneg.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216642 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd new files missing from previous commit.
clyon [Fri, 24 Oct 2014 11:40:58 +0000 (11:40 +0000)]
Add new files missing from previous commit.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216641 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:38:51 +0000 (11:38 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/arm/README.advsimd-intrinsics: New file.
* gcc.target/aarch64/advsimd-intrinsics/README: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h:
Likewise.
* gcc.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp:
Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vaba.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vld1.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vshl.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216640 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] LINK_SPEC changes for Cortex-A53 erratum 835769 workaround
ktkachov [Fri, 24 Oct 2014 11:32:40 +0000 (11:32 +0000)]
[AArch64] LINK_SPEC changes for Cortex-A53 erratum 835769 workaround

     * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_835769_SPEC.
     * config/aarch64/aarch64-linux.h (CA53_ERR_835769_SPEC): Define.
     (LINK_SPEC): Include CA53_ERR_835769_SPEC.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216639 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 24 Oct 2014 11:32:05 +0000 (11:32 +0000)]
2014-10-24  Christophe Lyon  <christophe.lyon@linaro.org>

* lib/wrapper.exp ({tool}_maybe_build_wrapper): Clear
wrap_compile_flags before setting it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216638 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Cleanup logic around aarch64_final_prescan
ktkachov [Fri, 24 Oct 2014 11:30:42 +0000 (11:30 +0000)]
[AArch64] Cleanup logic around aarch64_final_prescan

* config/aarch64/aarch64.h (ADJUST_INSN_LENGTH): Wrap definition in
do while (0).
* config/aarch64/aarch64.c (is_mem_p): Delete.
(is_memory_op): Rename to...
(has_memory_op): ... This.  Use FOR_EACH_SUBRTX.
(dep_between_memop_and_curr): Assert that the input is a SET.
(aarch64_madd_needs_nop): Add comment.  Do not call
dep_between_memop_and_curr on NULL body.
(aarch64_final_prescan_insn): Add comment.
Include rtl-iter.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216637 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Richard Biener <rguenther@suse.de>
rguenth [Fri, 24 Oct 2014 11:09:30 +0000 (11:09 +0000)]
2014-10-24  Richard Biener  <rguenther@suse.de>

* Makefile.in (BUILD_CPPLIB): Move $(LIBINTL) $(LIBICONV)
to genmatch BUILD_LIBS instead.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216632 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Richard Biener <rguenther@suse.de>
rguenth [Fri, 24 Oct 2014 11:00:08 +0000 (11:00 +0000)]
2014-10-24  Richard Biener  <rguenther@suse.de>

* genmatch.c (expr::gen_transform): Use fold_buildN_loc
and build_call_expr_loc.
(dt_simplify::gen): Drop non_lvalue for GIMPLE, use
non_lvalue_loc to build it for GENERIC.
(decision_tree::gen_generic): Add location argument to
generic_simplify prototype.
(capture_info): New class.
(capture_info::capture_info): New constructor.
(capture_info::walk_match): New method.
(capture_info::walk_result): New method.
(capture_info::walk_c_expr): New method.
(dt_simplify::gen): Handle preserving side-effects for
GENERIC code generation.
(decision_tree::gen_generic): Do not reject operands
with TREE_SIDE_EFFECTS.
* generic-match.h: New file.
* generic-match-head.c: Include generic-match.h, not gimple-match.h.
* match.pd: Add some constant folding patterns from fold-const.c.
* fold-const.c: Include generic-match.h.
(fold_unary_loc): Dispatch to generic_simplify.
(fold_ternary_loc): Likewise.
(fold_binary_loc): Likewise.  Remove patterns now implemented
by generic_simplify.
* gimple-fold.c (replace_stmt_with_simplification): New function.
(fold_stmt_1): Add valueize parameter, dispatch to gimple_simplify.
(no_follow_ssa_edges): New function.
(fold_stmt): New overload with valueization hook.  Use
no_follow_ssa_edges for the overload without hook.
(fold_stmt_inplace): Likewise.
* gimple-fold.h (no_follow_ssa_edges): Declare.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216631 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/63173
fyang [Fri, 24 Oct 2014 10:53:08 +0000 (10:53 +0000)]
    PR target/63173
        * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
        (__LD3R_FUNC): Ditto.
        (__LD4R_FUNC): Ditto.
        (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
         vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
         vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
         vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
         vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
         vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
        (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
         vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
         vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
         vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
         vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
         vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
        (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
         vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
         vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
         vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
         vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
         vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
        * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
        UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
        * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
        builtins.
        * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
        (aarch64_simd_ld3r<mode>): Likewise.
        (aarch64_simd_ld4r<mode>): Likewise.
        (aarch64_ld2r<mode>): New expand.
        (aarch64_ld3r<mode>): Likewise.
        (aarch64_ld4r<mode>): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216630 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix gcc.dg/pr63594-1.c execution on Solaris/x86
ro [Fri, 24 Oct 2014 09:09:43 +0000 (09:09 +0000)]
Fix gcc.dg/pr63594-1.c execution on Solaris/x86

        * gcc.dg/pr63594-1.c: Apply -mno-mmx to all i?86-*-* and x86_64-*-*
        targets.
        * gcc.dg/pr63594-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216629 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc.target/alpha/980217-1.c (main): Fix implicit int.
uros [Fri, 24 Oct 2014 08:58:42 +0000 (08:58 +0000)]
* gcc.target/alpha/980217-1.c (main): Fix implicit int.
* gcc.target/alpha/pr19518.c (_mm_setzero_si64): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216627 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Daniel Hellstrom <daniel@gaisler.com>
danielh [Fri, 24 Oct 2014 08:52:20 +0000 (08:52 +0000)]
2014-10-24  Daniel Hellstrom  <daniel@gaisler.com>

* MAINTAINERS (write-after-approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216626 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoHandle SCRATCH in decompose_address
mkuvyrkov [Fri, 24 Oct 2014 08:23:01 +0000 (08:23 +0000)]
Handle SCRATCH in decompose_address

* rtlanal.c (get_base_term): Handle SCRATCH.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216624 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDisable max_issue when scheduling for register pressure
mkuvyrkov [Fri, 24 Oct 2014 08:22:49 +0000 (08:22 +0000)]
Disable max_issue when scheduling for register pressure

* haifa-sched.c (sched_init): Disable max_issue when scheduling for
register pressure.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216623 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRemove cached_first_cycle_multipass_dfa_lookahead and cached_issue_rate
mkuvyrkov [Fri, 24 Oct 2014 08:22:37 +0000 (08:22 +0000)]
Remove cached_first_cycle_multipass_dfa_lookahead and cached_issue_rate

* haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
(cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
(max_issue, choose_ready, sched_init): Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216622 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoImprove scheduler dumps of ready list
mkuvyrkov [Fri, 24 Oct 2014 08:22:24 +0000 (08:22 +0000)]
Improve scheduler dumps of ready list

* sched-int.h (struct _haifa_insn_data:last_rfs_win): New field.
* haifa-sched.c (INSN_LAST_RFS_WIN): New access macro.
(rfs_result): Set INSN_LAST_RFS_WIN.  Update signature.
(rank_for_schedule): Update calls to rfs_result to pass new parameters.
(print_rank_for_schedule_stats): Print out elements of ready list that
ended up on their respective places due to each of the sorting
heuristics.
(ready_sort): Update.
(debug_ready_list_1): Improve printout for SCHED_PRESSURE_MODEL.
(schedule_block): Update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216621 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAccount for prologue spills in reg_pressure scheduling
mkuvyrkov [Fri, 24 Oct 2014 08:22:12 +0000 (08:22 +0000)]
Account for prologue spills in reg_pressure scheduling

* haifa-sched.c (sched_class_regs_num, call_used_regs_num): New static
arrays.  Use sched_class_regs_num instead of ira_class_hard_regs_num.
(print_curr_reg_pressure, setup_insn_reg_pressure_info,)
(model_update_pressure, model_spill_cost): Use sched_class_regs_num.
(model_start_schedule): Update.
(sched_pressure_start_bb): New static function.  Calculate
sched_class_regs_num.
(schedule_block): Use it.
(alloc_global_sched_pressure_data): Calculate call_used_regs_num.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216620 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Richard Biener <rguenther@suse.de>
rguenth [Fri, 24 Oct 2014 08:04:25 +0000 (08:04 +0000)]
2014-10-24  Richard Biener  <rguenther@suse.de>

* Makefile.in (BUILD_CPPLIB): When in stage2+ use the
host library and make sure to pull in the required libintl
and libiconv dependencies.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216619 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-10-24 Richard Biener <rguenther@suse.de>
rguenth [Fri, 24 Oct 2014 07:57:51 +0000 (07:57 +0000)]
2014-10-24  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Fix copy-and-pasto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216617 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix bootstrap/PR63632
trippels [Fri, 24 Oct 2014 06:39:24 +0000 (06:39 +0000)]
Fix bootstrap/PR63632

r216566 (r216568 for 4.9 branch) added %{fno-lto} to LINK_COMMAND_SPEC.
However the linker doesn't understand -fno-lto and errors out.
This causes an LTO/PGO bootstrap failure, because -fno-lto is used
during STAGEprofile.
Fixed by filtering out -fno-lto in collect2.c.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216613 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
uros [Fri, 24 Oct 2014 06:06:20 +0000 (06:06 +0000)]
* ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): Guard
division by zero in dumps.
(sem_item_optimizer::merge_classes): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216612 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agocompiler: Use MPC library for complex numbers.
ian [Fri, 24 Oct 2014 05:01:50 +0000 (05:01 +0000)]
compiler: Use MPC library for complex numbers.

* go-gcc.cc (Gcc_backend::complex_constant_expression): Take one
mpc_t parameter instead of two mpfr_t parameters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216611 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agocompiler: Simplify making integer expressions.
ian [Fri, 24 Oct 2014 01:49:23 +0000 (01:49 +0000)]
compiler: Simplify making integer expressions.

Instead of always needing an mpz_t, add helper functions to
create an integer functions from signed or unsigned long
values.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216610 138bc75d-0d04-0410-961f-82ee72b054a4