gcc.git
9 years agopredict.c (maybe_hot_frequency_p): Use opt_for_fn.
Jan Hubicka [Mon, 17 Nov 2014 18:52:28 +0000 (19:52 +0100)]
predict.c (maybe_hot_frequency_p): Use opt_for_fn.

* predict.c (maybe_hot_frequency_p): Use opt_for_fn.
(optimize_function_for_size_p): Likewise.
(probably_never_executed): Likewise; replace cfun by fun.

From-SVN: r217666

9 years ago[AArch64] Extend aarch64_simd_vec_set pattern, replace asm for vld1_lane
Alan Lawrence [Mon, 17 Nov 2014 18:29:49 +0000 (18:29 +0000)]
[AArch64] Extend aarch64_simd_vec_set pattern, replace asm for vld1_lane

gcc/:

* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Add
variant reading from memory and assembling to ld1.

* config/aarch64/arm_neon.h (vld1_lane_f32, vld1_lane_f64, vld1_lane_p8,
vld1_lane_p16, vld1_lane_s8, vld1_lane_s16, vld1_lane_s32,
vld1_lane_s64, vld1_lane_u8, vld1_lane_u16, vld1_lane_u32,
vld1_lane_u64, vld1q_lane_f32, vld1q_lane_f64, vld1q_lane_p8,
vld1q_lane_p16, vld1q_lane_s8, vld1q_lane_s16, vld1q_lane_s32,
vld1q_lane_s64, vld1q_lane_u8, vld1q_lane_u16, vld1q_lane_u32,
vld1q_lane_u64): Replace asm with vset_lane and pointer dereference.

gcc/testsuite/:

* gcc.target/aarch64/vld1_lane.c: New test.

From-SVN: r217665

9 years ago* constexpr.c (use_new_call): Always use new call handling.
Jason Merrill [Mon, 17 Nov 2014 18:16:19 +0000 (13:16 -0500)]
* constexpr.c (use_new_call): Always use new call handling.

From-SVN: r217664

9 years agoC++14 constexpr support (minus loops and multiple returns)
Jason Merrill [Mon, 17 Nov 2014 18:16:14 +0000 (13:16 -0500)]
C++14 constexpr support (minus loops and multiple returns)

C++14 constexpr support (minus loops and multiple returns)
gcc/
* tree-inline.c (copy_fn): New.
* tree-inline.h: Declare it.
gcc/cp/
* constexpr.c (use_new_call): New macro.
(build_data_member_initialization): Ignore non-mem-inits.
(check_constexpr_bind_expr_vars): Remove C++14 checks.
(constexpr_fn_retval): Likewise.
(check_constexpr_ctor_body): Do nothing in C++14.
(massage_constexpr_body): In C++14 only collect mem-inits.
(get_function_named_in_call): Handle null CALL_EXPR_FN.
(cxx_bind_parameters_in_call): Build bindings in same order as
parameters.  Don't treat iniviref parms specially in new call mode.
(cxx_eval_call_expression): If use_new_call, do constexpr expansion
based on DECL_SAVED_TREE rather than the massaged constexpr body.
Set up ctx->object from AGGR_INIT_EXPR_SLOT if we don't have one.
(is_sub_constant_expr): Don't mess with ctx.ctor here.
(cxx_eval_component_reference): A null element means we're mid-
initialization.
(cxx_eval_store_expression, cxx_eval_increment_expression): New.
(cxx_eval_constant_expression): Handle RESULT_DECL, DECL_EXPR,
MODIFY_EXPR, STATEMENT_LIST, BIND_EXPR, USING_STMT,
PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR,
POSTDECREMENT_EXPR.  Don't look into DECL_INITIAL of variables in
constexpr functions.  In new-call mode find parms in the values table.
(potential_constant_expression_1): Handle null CALL_EXPR_FN.
Handle STATEMENT_LIST, MODIFY_EXPR, MODOP_EXPR, IF_STMT,
PREINCREMENT_EXPR, POSTINCREMENT_EXPR, PREDECREMENT_EXPR,
POSTDECREMENT_EXPR, BIND_EXPR, WITH_CLEANUP_EXPR,
CLEANUP_POINT_EXPR, MUST_NOT_THROW_EXPR, TRY_CATCH_EXPR,
EH_SPEC_BLOCK, EXPR_STMT, DECL_EXPR, CASE_LABEL_EXPR, BREAK_STMT,
CONTINUE_STMT, USING_STMT, IF_STMT, DO_STMT, FOR_STMT, WHILE_STMT,
SWITCH_STMT, ASM_EXPR.
(cxx_eval_vec_init_1): Call build_aggr_init_expr.
(cxx_eval_indirect_ref): Don't return a CONSTRUCTOR when the
caller wants an lvalue.
(cxx_eval_outermost_constant_expr): Pull object out of AGGR_INIT_EXPR.
(maybe_constant_init): Look through INIT_EXPR.
(ensure_literal_type_for_constexpr_object): Set
cp_function_chain->invalid_constexpr.
* cp-tree.h (struct language_function): Add invalid_constexpr bitfield.
* decl.c (start_decl): Set cp_function_chain->invalid_constexpr.
(check_for_uninitialized_const_var): Likewise.
(maybe_save_function_definition): Check it.
* parser.c (cp_parser_jump_statement): Set
cp_function_chain->invalid_constexpr.
(cp_parser_asm_definition): Likewise.

From-SVN: r217663

9 years agoaarch64-builtins.c (TYPES_CREATE): Remove.
Alan Lawrence [Mon, 17 Nov 2014 18:07:45 +0000 (18:07 +0000)]
aarch64-builtins.c (TYPES_CREATE): Remove.

gcc/:

* config/aarch64/aarch64-builtins.c (TYPES_CREATE): Remove.
* config/aarch64/aarch64-simd-builtins.def (create): Remove.
* config/aarch64/aarch64-simd.md (aarch64_create<mode>): Remove.
* config/aarch64/arm_neon.h (vcreate_f64, vreinterpret_f64_s64,
vreinterpret_f64_u64): Replace __builtin_aarch64_createv1df with C casts.
* config/aarch64/iterators.md (VD1): Remove.

gcc/testsuite/:

* gcc.target/aarch64/simd/vfma_f64.c: Add asm volatile memory.
* gcc.target/aarch64/simd/vfms_f64.c: Likewise.

From-SVN: r217662

9 years ago[AArch64] Remove crypto extension from default for cortex-a53, cortex-a57
Kyrylo Tkachov [Mon, 17 Nov 2014 17:31:56 +0000 (17:31 +0000)]
[AArch64] Remove crypto extension from default for cortex-a53, cortex-a57

* config/aarch64/aarch64-cores.def (cortex-a53): Remove
AARCH64_FL_CRYPTO from feature flags.
(cortex-a57): Likewise.
(cortex-a57.cortex-a53): Likewise.

From-SVN: r217661

9 years agore PR c++/52282 ([C++0x] rejects-valid issues with decltype/constexpr)
Jason Merrill [Mon, 17 Nov 2014 17:00:38 +0000 (12:00 -0500)]
re PR c++/52282 ([C++0x] rejects-valid issues with decltype/constexpr)

PR c++/52282
* decl.c (build_ptrmemfunc_type): Don't build a different
RECORD_TYPE for a qualified PMF.
* cp-tree.h (TYPE_PTRMEMFUNC_FN_TYPE): Merge cv-quals.
(TYPE_PTRMEMFUNC_FN_TYPE_RAW): New.
* decl2.c (cplus_decl_attributes): Use TYPE_PTRMEMFUNC_FN_TYPE_RAW.
* tree.c (cp_walk_subtrees): Likewise.
(cp_build_qualified_type_real): Remove special PMF handling.

From-SVN: r217660

9 years agotree.c (free_lang_data_in_decl): Annotate all functio nbodies with DECL_FUNCTION_SPEC...
Jan Hubicka [Mon, 17 Nov 2014 16:48:29 +0000 (17:48 +0100)]
tree.c (free_lang_data_in_decl): Annotate all functio nbodies with DECL_FUNCTION_SPECIFIC_TARGET.

* tree.c (free_lang_data_in_decl): Annotate all functio nbodies with
DECL_FUNCTION_SPECIFIC_TARGET.
* i386.c (ix86_set_current_function): Handle explicit default options.

* lto.c (lto_read_decls): Do not rebuild DECL_FUNCTION_SPECIFIC_TARGET.

From-SVN: r217659

9 years agobuiltins.c (expand_builtin_memcpy_with_bounds): Use target hook instead of BNDmode.
Ilya Enkovich [Mon, 17 Nov 2014 16:17:06 +0000 (16:17 +0000)]
builtins.c (expand_builtin_memcpy_with_bounds): Use target hook instead of BNDmode.

* builtins.c (expand_builtin_memcpy_with_bounds): Use target hook
instead of BNDmode.
(expand_builtin_mempcpy_with_bounds): Likewise.
(expand_builtin_memset_with_bounds): Likewise.

From-SVN: r217658

9 years agotree-ssa-strlen.c: include ipa-chkp.h, cgraph.h, ipa-ref.h, plugin-api.h.
Ilya Enkovich [Mon, 17 Nov 2014 13:55:49 +0000 (13:55 +0000)]
tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h, ipa-ref.h, plugin-api.h.

gcc/

* tree-ssa-strlen.c: include ipa-chkp.h, cgraph.h,
ipa-ref.h, plugin-api.h.
(get_string_length): Handle calls with bounds.
(adjust_last_stmt): Likewise.
(handle_builtin_strchr): Likewise.
(handle_builtin_strcpy): Likewise.
(handle_builtin_memcpy): Likewise.
(handle_builtin_strcat): Likewise.

gcc/testsuite/

* gcc.target/i386/chkp-strlen-1.c: New.
* gcc.target/i386/chkp-strlen-2.c: New.
* gcc.target/i386/chkp-strlen-3.c: New.
* gcc.target/i386/chkp-strlen-4.c: New.
* gcc.target/i386/chkp-strlen-5.c: New.

From-SVN: r217657

9 years agotree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
Ilya Enkovich [Mon, 17 Nov 2014 13:52:37 +0000 (13:52 +0000)]
tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.

gcc/

* tree-chkp-opt.c (chkp_get_nobnd_fndecl): New.
(chkp_get_nochk_fndecl): New.
(chkp_optimize_string_function_calls): New.
(chkp_opt_execute): Call chkp_optimize_string_function_calls.
* tree-cfg.h (insert_cond_bb): New.
* tree-cfg.c (insert_cond_bb): New.

gcc/testsuite/

* gcc.target/i386/chkp-stropt-1.c: New.
* gcc.target/i386/chkp-stropt-2.c: New.
* gcc.target/i386/chkp-stropt-3.c: New.
* gcc.target/i386/chkp-stropt-4.c: New.
* gcc.target/i386/chkp-stropt-5.c: New.
* gcc.target/i386/chkp-stropt-6.c: New.
* gcc.target/i386/chkp-stropt-7.c: New.
* gcc.target/i386/chkp-stropt-8.c: New.
* gcc.target/i386/chkp-stropt-9.c: New.
* gcc.target/i386/chkp-stropt-10.c: New.
* gcc.target/i386/chkp-stropt-11.c: New.
* gcc.target/i386/chkp-stropt-12.c: New.
* gcc.target/i386/chkp-stropt-13.c: New.
* gcc.target/i386/chkp-stropt-14.c: New.
* gcc.target/i386/chkp-stropt-15.c: New.
* gcc.target/i386/chkp-stropt-16.c: New.

From-SVN: r217656

9 years agotree-core.h (built_in_class): Add builtin codes to be used by Pointer Bounds Checker...
Ilya Enkovich [Mon, 17 Nov 2014 13:45:55 +0000 (13:45 +0000)]
tree-core.h (built_in_class): Add builtin codes to be used by Pointer Bounds Checker for instrumented builtin...

* tree-core.h (built_in_class): Add builtin codes to be used
by Pointer Bounds Checker for instrumented builtin functions.
* tree-streamer-in.c: Include ipa-chkp.h.
(streamer_get_builtin_tree): Created instrumented decl if
required.
* ipa-chkp.h (chkp_maybe_clone_builtin_fndecl): New.
* ipa-chkp.c (chkp_build_instrumented_fndecl): Support builtin
function decls.
(chkp_maybe_clone_builtin_fndecl): New.
(chkp_maybe_create_clone): Support builtin function decls.
(chkp_versioning): Clone builtin functions.
* tree-chkp.c (chkp_instrument_normal_builtin): New.
(chkp_add_bounds_to_call_stmt): Support builtin functions.
(chkp_replace_function_pointer): Likewise.
* builtins.c (expand_builtin_memcpy_args): New.
(expand_builtin_memcpy): Call expand_builtin_memcpy_args.
(expand_builtin_memcpy_with_bounds): New.
(expand_builtin_mempcpy_with_bounds): New.
(expand_builtin_mempcpy_args): Add orig_exp arg. Support
BUILT_IN_CHKP_MEMCPY_NOBND_NOCHK
(expand_builtin_memset_with_bounds): New.
(expand_builtin_memset_args): Support BUILT_IN_CHKP_MEMSET_NOBND_NOCHK.
(expand_builtin_with_bounds): New.
* builtins.h (expand_builtin_with_bounds): New.
* expr.c (expand_expr_real_1): Support instrumented builtin calls.

From-SVN: r217655

9 years agoReplace unsigned long with __SIZE_TYPE__
H.J. Lu [Mon, 17 Nov 2014 13:38:38 +0000 (13:38 +0000)]
Replace unsigned long with __SIZE_TYPE__

* g++.dg/ipa/pr63894.C (new): Replace unsigned long with
__SIZE_TYPE__.

From-SVN: r217654

9 years agoAdd more comments to some gimple accessors
Dodji Seketeli [Mon, 17 Nov 2014 09:56:43 +0000 (09:56 +0000)]
Add more comments to some gimple accessors

gcc/ChangeLog:

* gimple.h (gimple_set_visited, gimple_visited_p)
(gimple_set_plf, gimple_plf, gimple_set_uid, gimple_uid): Add more
comments to these accessors.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
From-SVN: r217653

9 years agore PR tree-optimization/63898 (r217560 caused segfault building 462.libquantum from...
Richard Biener [Mon, 17 Nov 2014 09:38:48 +0000 (09:38 +0000)]
re PR tree-optimization/63898 (r217560 caused segfault building 462.libquantum from cpu2006)

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

PR middle-end/63898
PR middle-end/63883
* gfortran.dg/pr63883.f90: New testcase.

From-SVN: r217652

9 years agoavr-log.c (avr_log_set_avr_log): Set avr_log_details to "all".
Georg-Johann Lay [Mon, 17 Nov 2014 09:37:05 +0000 (09:37 +0000)]
avr-log.c (avr_log_set_avr_log): Set avr_log_details to "all".

* config/avr/avr-log.c (avr_log_set_avr_log) [TARGET_ALL_DEBUG]:
Set avr_log_details to "all".

From-SVN: r217651

9 years agore PR tree-optimization/63898 (r217560 caused segfault building 462.libquantum from...
Richard Biener [Mon, 17 Nov 2014 09:31:33 +0000 (09:31 +0000)]
re PR tree-optimization/63898 (r217560 caused segfault building 462.libquantum from cpu2006)

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

PR middle-end/63898
* match.pd: Guard X / CST -> X * CST' transform against
zero CST.

From-SVN: r217650

9 years agoAdded Dodji Seketeli as line map maintainer
Dodji Seketeli [Mon, 17 Nov 2014 09:26:17 +0000 (09:26 +0000)]
Added Dodji Seketeli as line map maintainer

* MAINTAINERS (Various Maintainers): Added myself as line map
maintainer.
* ChangeLog: Update this.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
From-SVN: r217649

9 years agoAdd testcase for PR 63894
Markus Trippelsdorf [Mon, 17 Nov 2014 09:21:34 +0000 (09:21 +0000)]
Add testcase for PR 63894

2014-11-17  Markus Trippelsdorf  <markus@trippelsdorf.de>

  PR ipa/63894
  * g++.dg/ipa/pr63894.C: New test.

From-SVN: r217648

9 years agothumb1.md (*addsi3_cbranch_scratch): Updated to UAL format.
Terry Guo [Mon, 17 Nov 2014 07:06:54 +0000 (07:06 +0000)]
thumb1.md (*addsi3_cbranch_scratch): Updated to UAL format.

gcc/
2014-11-17  Terry Guo  <terry.guo@arm.com>

* config/arm/thumb1.md (*addsi3_cbranch_scratch): Updated to UAL
format.

gcc/testsuite/
2014-11-17  Terry Guo  <terry.guo@arm.com>

* gcc.target/arm/thumb1-ual-1.c: New test.

From-SVN: r217647

9 years agoifcvt.c (HAVE_cbranchcc4): Define.
Zhenqiang Chen [Mon, 17 Nov 2014 06:29:07 +0000 (06:29 +0000)]
ifcvt.c (HAVE_cbranchcc4): Define.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* ifcvt.c (HAVE_cbranchcc4): Define.
(noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
Use HAVE_cbranchcc4.

From-SVN: r217646

9 years agoaarch64.c (aarch64_code_to_ccmode, [...]): New functions.
Zhenqiang Chen [Mon, 17 Nov 2014 06:24:36 +0000 (06:24 +0000)]
aarch64.c (aarch64_code_to_ccmode, [...]): New functions.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* config/aarch64/aarch64.c (aarch64_code_to_ccmode,
aarch64_convert_mode, aarch64_gen_ccmp_first,
aarch64_gen_ccmp_next): New functions.
(TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Define.

From-SVN: r217645

9 years agoaarch64-protos.h (aarch64_ccmp_mode_to_code): New.
Zhenqiang Chen [Mon, 17 Nov 2014 06:19:08 +0000 (06:19 +0000)]
aarch64-protos.h (aarch64_ccmp_mode_to_code): New.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* config/aarch64/aarch64-protos.h (aarch64_ccmp_mode_to_code): New.
* aarch64.c (aarch64_nzcv_codes): New data.
(aarch64_ccmp_mode_to_code): New.
(aarch64_print_operand): Output nzcv.
config/aarch64/aarch64.md (cbranchcc4, *ccmp_and, *ccmp_ior, cstorecc4):
New patterns.
(cstore<mode>4): Handle ccmp_cc_register.
* config/aarch64/predicates.md (const0_operand): New.

From-SVN: r217644

9 years agoaarch64-modes.def: Define ccmp CC mode.
Zhenqiang Chen [Mon, 17 Nov 2014 06:12:43 +0000 (06:12 +0000)]
aarch64-modes.def: Define ccmp CC mode.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* config/aarch64/aarch64-modes.def: Define ccmp CC mode.
* config/aarch64/aarch64.c (aarch64_get_condition_code_1): New function
extacted from aarch64_get_condition_code.
(aarch64_get_condition_code): Call aarch64_get_condition_code_1.
config/aarch64/predicates.md (ccmp_cc_register): New predicate.

From-SVN: r217643

9 years agoconstraints.md (Usn, [...]): New constraints.
Zhenqiang Chen [Mon, 17 Nov 2014 06:07:15 +0000 (06:07 +0000)]
constraints.md (Usn, [...]): New constraints.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* config/aarch64/constraints.md (Usn, aarch64_ccmp_immediate,
aarch64_ccmp_operand): New constraints.

From-SVN: r217642

9 years agoMakefile.in: Add ccmp.o.
Zhenqiang Chen [Mon, 17 Nov 2014 06:03:07 +0000 (06:03 +0000)]
Makefile.in: Add ccmp.o.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* Makefile.in: Add ccmp.o.
* ccmp.c: New file.
* ccmp.h: New file.
* expr.c: include "ccmp.h"
(expand_cond_expr_using_cmove): Handle VOIDmode.
(expand_expr_real_1): Try to expand ccmp.

From-SVN: r217641

9 years agocfgexpand.c (expand_gimple_cond): Check ccmp.
Zhenqiang Chen [Mon, 17 Nov 2014 05:52:26 +0000 (05:52 +0000)]
cfgexpand.c (expand_gimple_cond): Check ccmp.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

* cfgexpand.c (expand_gimple_cond): Check ccmp.
* expmed.c (emit_cstore): Make it global.
* expmed.h: #include "insn-codes.h"
(emit_cstore): New prototype.
* expr.c (expand_operands): Make it global.
* expr.h (expand_operands): New prototype.
* optabs.c (get_rtx_code): Make it global.
* optabs.h (get_rtx_code): New prototype.

From-SVN: r217640

9 years agotarget.def (gen_ccmp_first, [...]): Add two new hooks.
Zhenqiang Chen [Mon, 17 Nov 2014 05:38:41 +0000 (05:38 +0000)]
target.def (gen_ccmp_first, [...]): Add two new hooks.

2014-11-17  Zhenqiang Chen  <zhenqiang.chen@linaor.org>

* target.def (gen_ccmp_first, gen_ccmp_first): Add two new hooks.
* doc/tm.texi.in (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.
* doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New.

From-SVN: r217639

9 years agoAlways combine comparisons or conversions from booleans.
Patrick Palka [Mon, 17 Nov 2014 02:01:36 +0000 (02:01 +0000)]
Always combine comparisons or conversions from booleans.

2014-11-16  Patrick Palka  <ppalka@gcc.gnu.org>

gcc/
PR middle-end/63790
* tree-ssa-forwprop.c (forward_propagate_into_comparison_1):
Always combine comparisons or conversions from booleans.

gcc/testsuite/
PR middle-end/63790
* gcc.dg/tree-ssa/pr21031.c: Drop XFAIL.
* gcc.dg/tree-ssa/forwprop-29.c: New test.

From-SVN: r217638

9 years agoDaily bump.
GCC Administrator [Mon, 17 Nov 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217637

9 years ago* ipa-polymorphic-call.c
Jan Hubicka [Sun, 16 Nov 2014 21:01:45 +0000 (22:01 +0100)]
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::speculation_consistent_p): Constify.
(ipa_polymorphic_call_context::meet_speculation_with): New function.
(ipa_polymorphic_call_context::combine_with): Handle types in construction
better.
(ipa_polymorphic_call_context::equal_to): Do not bother about useless
speculation.
(ipa_polymorphic_call_context::meet_with): New function.
* cgraph.h (class ipa_polymorphic_call_context): Add
meet_width, meet_speculation_with; constify speculation_consistent_p.
* ipa-cp.c (ipa_context_from_jfunc): Handle speculation; combine with incomming
context.
(propagate_context_accross_jump_function): Likewise; be more cureful.
about set_contains_variable.
(ipa_get_indirect_edge_target_1): Fix handling of dynamic type changes.
(find_more_scalar_values_for_callers_subset): Fix.
(find_more_contexts_for_caller_subset): Perform meet operation.

From-SVN: r217634

9 years agopasses.c (execute_one_pass): Do not apply all transforms prior every simple IPA pass.
Jan Hubicka [Sun, 16 Nov 2014 19:36:37 +0000 (20:36 +0100)]
passes.c (execute_one_pass): Do not apply all transforms prior every simple IPA pass.

* passes.c (execute_one_pass): Do not apply all transforms prior
every simple IPA pass.
* cgraphunit.c: Do not include fibheap.h
(expand_thunk): Use get_untransformed_body.
(cgraph_node::expand): Likewise.
* tree-ssa-structalias.c (ipa_pta_execute): Skip inline clones.
* cgraph.c (release_function_body): Do not push cfun when CFG is not there.
(cgraph_node::get_untransformed_body): Break out from ...
(cgraph_node::get_body): ... here; add code to apply all transforms.
* cgraph.h (cgraph_node): Add get_untransformed_body.
* ipa-icf.c (sem_function::init): Use get_untransformed_body.
* cgraphclones.c (duplicate_thunk_for_node): Likewise.
* tree-inline.c (expand_call_inline): LIkewise.
* i386.c (ix86_reset_to_default_globals): Break out from ...
(ix86_set_current_function): ... here;
(ix86_reset_previous_fndecl): Use it.
(ix86_simd_clone_adjust): Use ix86_reset_previous_fndecl.

From-SVN: r217633

9 years ago* gcc.dg/vect/pr63605.c (dg-final): Cleanup vect tree dump.
Uros Bizjak [Sun, 16 Nov 2014 19:31:10 +0000 (20:31 +0100)]
* gcc.dg/vect/pr63605.c (dg-final): Cleanup vect tree dump.

From-SVN: r217632

9 years agoUpdate move-if-change from gnulib
Jan-Benedict Glaw [Sun, 16 Nov 2014 16:12:44 +0000 (16:12 +0000)]
Update move-if-change from gnulib

2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* move-if-change: Sync from upstream gnulib.

From-SVN: r217631

9 years agotm.texi.in (TARGET_FLAGS_REGNUM): Move around.
Eric Botcazou [Sun, 16 Nov 2014 15:49:37 +0000 (15:49 +0000)]
tm.texi.in (TARGET_FLAGS_REGNUM): Move around.

* doc/tm.texi.in (TARGET_FLAGS_REGNUM): Move around.
* doc/tm.texi: Regenerate.

From-SVN: r217628

9 years agoUpdate from upstream Automake files.
Jan-Benedict Glaw [Sun, 16 Nov 2014 14:07:13 +0000 (14:07 +0000)]
Update from upstream Automake files.

2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* compile: Sync with upstream Automake.
* depcomp: Ditto.
* install-sh: Ditto.
* missing: Ditto.
* mkinstalldirs: Ditto.
* ylwrap: Ditto.

From-SVN: r217627

9 years agosh.c: Do not include algorithm.
Uros Bizjak [Sun, 16 Nov 2014 11:50:29 +0000 (12:50 +0100)]
sh.c: Do not include algorithm.

* config/sh/sh.c: Do not include algorithm.
(sh_emit_scc_to_t): Replace open-coded swap with std::swap
to swap values.
(sh_emit_compare_and_branch): Ditto.
(sh_emit_compare_and_set): Ditto.
* config/sh/sh.md (replacement peephole2): Ditto.
(cstore4_media): Ditto.
(*fmasf4): Ditto.

From-SVN: r217626

9 years agomemset-4.c: New test.
Andrew Pinski [Sun, 16 Nov 2014 08:01:09 +0000 (08:01 +0000)]
memset-4.c: New test.

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

* gcc.c-torture/execute/memset-4.c: New test.
* gcc.c-torture/execute/20110418-1.c: New test.
* gcc.c-torture/execute/20141022-1.c: New test.
* gcc.c-torture/execute/strcpy-2.c: New test.
* gcc.c-torture/execute/20140212-2.c: New test.
* gcc.c-torture/compile/20120913-1.c: New test.
* gcc.c-torture/compile/20121010-1.c: New test.
* gcc.c-torture/compile/20120917-1.c: New test.
* gcc.c-torture/compile/20140110-1.c: New test.
* gcc.c-torture/compile/20121220-1.c: New test.
* gcc.c-torture/compile/20120822-1.c: New test.
* gcc.c-torture/compile/20121027-1.c: New test.
* gcc.c-torture/compile/20120830-2.c: New test.

From-SVN: r217625

9 years agolra-remat.c (cand_transf_func): Process regno for rematerialization too.
Vladimir Makarov [Sun, 16 Nov 2014 05:00:30 +0000 (05:00 +0000)]
lra-remat.c (cand_transf_func): Process regno for rematerialization too.

2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>

* lra-remat.c (cand_transf_func): Process regno for
rematerialization too.
* lra.c (lra): Switch on rematerialization pass.

From-SVN: r217624

9 years agoPR 60324 VLA related fixes to random number generator.
Janne Blomqvist [Sun, 16 Nov 2014 01:56:54 +0000 (03:56 +0200)]
PR 60324 VLA related fixes to random number generator.

2014-11-16  Janne Blomqvist  <jb@gcc.gnu.org>

PR libfortran/60324
* intrinsics/random.c (kiss_size): Rename to KISS_SIZE, make it a
macro instead of a variable.
(random_seed_i4): Make seed correct size, remove assert, KISS_SIZE
related changes.
(random_seed_i8): KISS_SIZE related changes.

From-SVN: r217623

9 years agoDaily bump.
GCC Administrator [Sun, 16 Nov 2014 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217622

9 years agoUpdate config.{sub,guess} from upstream repo
Jan-Benedict Glaw [Sat, 15 Nov 2014 23:44:29 +0000 (23:44 +0000)]
Update config.{sub,guess} from upstream repo

2014-11-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config.sub: Update from upstream config repo.
* config.guess: Ditto.

From-SVN: r217619

9 years agoparser.c (cp_parser_omp_declare_reduction_exprs): A block is not an expression.
Jason Merrill [Sat, 15 Nov 2014 23:28:58 +0000 (18:28 -0500)]
parser.c (cp_parser_omp_declare_reduction_exprs): A block is not an expression.

* parser.c (cp_parser_omp_declare_reduction_exprs): A block is not
an expression.

From-SVN: r217618

9 years agoconstexpr.c (cxx_eval_builtin_function_call): Use fold_builtin_call_array.
Jason Merrill [Sat, 15 Nov 2014 23:28:51 +0000 (18:28 -0500)]
constexpr.c (cxx_eval_builtin_function_call): Use fold_builtin_call_array.

* constexpr.c (cxx_eval_builtin_function_call): Use
fold_builtin_call_array.

From-SVN: r217617

9 years ago* constexpr.c (cx_check_missing_mem_inits): Clarify error message.
Jason Merrill [Sat, 15 Nov 2014 23:28:46 +0000 (18:28 -0500)]
* constexpr.c (cx_check_missing_mem_inits): Clarify error message.

From-SVN: r217616

9 years agoguality.exp (check_guality): Fix `test_counts' restoration.
Maciej W. Rozycki [Sat, 15 Nov 2014 23:20:18 +0000 (23:20 +0000)]
guality.exp (check_guality): Fix `test_counts' restoration.

* g++.dg/guality/guality.exp (check_guality): Fix `test_counts'
restoration.

From-SVN: r217615

9 years ago2014-11-15 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
Adhemerval Zanella [Sat, 15 Nov 2014 23:17:46 +0000 (23:17 +0000)]
2014-11-15  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>

* gcc.dg/atomic/c11-atomic-exec-5.c
(test_main_long_double_add_overflow): Only actually define if
LDBL_MANT_DIG != 106.
(test_main_complex_long_double_add_overflow): Likewise.
(test_main_long_double_sub_overflow): Likewise.
(test_main_complex_long_double_sub_overflow): Likewise.

(NOT_LDBL_EPSILON_2): Likewise.
(NOT_MINUS_LDBL_EPSILON_2): Likewise.

From-SVN: r217614

9 years agoDon't run gcc.target/i386/sibcall-1.c on x32 targets
H.J. Lu [Sat, 15 Nov 2014 23:13:08 +0000 (23:13 +0000)]
Don't run gcc.target/i386/sibcall-1.c on x32 targets

* gcc.target/i386/sibcall-1.c: Don't run on x32 targets,
instead of run on ia32 targets.

From-SVN: r217613

9 years agore PR middle-end/63884 (ICE: SIGSEGV in is_sec_implicit_index_fn with -fcilkplus...
Marek Polacek [Sat, 15 Nov 2014 20:20:05 +0000 (20:20 +0000)]
re PR middle-end/63884 (ICE: SIGSEGV in is_sec_implicit_index_fn with -fcilkplus and __builtin_sadd_overflow())

PR middle-end/63884
c-family/
* array-notation-common.c (is_sec_implicit_index_fn): Return false
for NULL fndecl.
(extract_array_notation_exprs): Return for NULL node.
testsuite/
* c-c++-common/cilk-plus/AN/pr63884.c: New test.

From-SVN: r217612

9 years agore PR target/60104 (load not folded into indirect branch on x86-64)
Francois-Xavier Coudert [Sat, 15 Nov 2014 19:46:14 +0000 (19:46 +0000)]
re PR target/60104 (load not folded into indirect branch on x86-64)

PR target/60104
* gcc.target/i386/sibcall-1.c: Don't run on pic targets.

From-SVN: r217611

9 years agolra.c (lra): Switch off rematerialization pass.
Vladimir Makarov [Sat, 15 Nov 2014 16:59:08 +0000 (16:59 +0000)]
lra.c (lra): Switch off rematerialization pass.

2014-11-15  Vladimir Makarov  <vmakarov@redhat.com>

* lra.c (lra): Switch off rematerialization pass.

From-SVN: r217609

9 years agoxmmintrin.h (_mm_add_ps, [...]): Use vector extensions instead of builtins.
Marc Glisse [Sat, 15 Nov 2014 16:56:27 +0000 (17:56 +0100)]
xmmintrin.h (_mm_add_ps, [...]): Use vector extensions instead of builtins.

2014-11-15  Marc Glisse  <marc.glisse@inria.fr>

gcc/
* config/i386/xmmintrin.h (_mm_add_ps, _mm_sub_ps, _mm_mul_ps,
_mm_div_ps, _mm_store_ss, _mm_cvtss_f32): Use vector extensions
instead of builtins.
* config/i386/emmintrin.h (__v2du, __v4su, __v8hu, __v16qu): New
typedefs.
(_mm_sqrt_sd): Fix comment.
(_mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64,
_mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64,
_mm_mullo_epi16, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32,
_mm_cmplt_epi8, _mm_cmplt_epi16, _mm_cmplt_epi32, _mm_cmpgt_epi8,
_mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_and_si128, _mm_or_si128,
_mm_xor_si128, _mm_store_sd, _mm_cvtsd_f64, _mm_storeh_pd,
_mm_cvtsi128_si64, _mm_cvtsi128_si64x, _mm_add_pd, _mm_sub_pd,
_mm_mul_pd, _mm_div_pd, _mm_storel_epi64, _mm_movepi64_pi64):
Use vector extensions instead of builtins.
* config/i386/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64,
_mm_mullo_epi32): Likewise.
* config/i386/avxintrin.h (__v4du, __v8su, __v16hu, __v32qu):
New typedefs.
(_mm256_add_pd, _mm256_add_ps, _mm256_div_pd, _mm256_div_ps,
_mm256_mul_pd, _mm256_mul_ps, _mm256_sub_pd, _mm256_sub_ps):
Use vector extensions instead of builtins.
* config/i386/avx2intrin.h (_mm256_cmpeq_epi8, _mm256_cmpeq_epi16,
_mm256_cmpeq_epi32, _mm256_cmpeq_epi64, _mm256_cmpgt_epi8,
_mm256_cmpgt_epi16, _mm256_cmpgt_epi32, _mm256_cmpgt_epi64,
_mm256_and_si256, _mm256_or_si256, _mm256_xor_si256, _mm256_add_epi8,
_mm256_add_epi16, _mm256_add_epi32, _mm256_add_epi64,
_mm256_mullo_epi16, _mm256_mullo_epi32, _mm256_sub_epi8,
_mm256_sub_epi16, _mm256_sub_epi32, _mm256_sub_epi64): Likewise.
* config/i386/avx512fintrin.h (__v8du, __v16su, __v32hu, __v64qu):
New typedefs.
(_mm512_or_si512, _mm512_or_epi32, _mm512_or_epi64, _mm512_xor_si512,
_mm512_xor_epi32, _mm512_xor_epi64, _mm512_and_si512,
_mm512_and_epi32, _mm512_and_epi64, _mm512_mullo_epi32,
_mm512_add_epi64, _mm512_sub_epi64, _mm512_add_epi32,
_mm512_sub_epi32, _mm512_add_pd, _mm512_add_ps, _mm512_sub_pd,
_mm512_sub_ps, _mm512_mul_pd, _mm512_mul_ps, _mm512_div_pd,
_mm512_div_ps): Use vector extensions instead of builtins.
* config/i386/avx512bwintrin.h (_mm512_mullo_epi16, _mm512_add_epi8,
_mm512_sub_epi8, _mm512_sub_epi16, _mm512_add_epi16): Likewise.
* config/i386/avx512dqintrin.h (_mm512_mullo_epi64): Likewise.
* config/i386/avx512vldqintrin.h (_mm256_mullo_epi64, _mm_mullo_epi64):
Likewise.

gcc/testsuite/
* gcc.target/i386/intrinsics_opt-1.c: New testcase.
* gcc.target/i386/intrinsics_opt-2.c: Likewise.
* gcc.target/i386/intrinsics_opt-3.c: Likewise.
* gcc.target/i386/intrinsics_opt-4.c: Likewise.

From-SVN: r217608

9 years agolto-streamer-out.c (hash_tree): Use cl_optimization_hash.
Jan Hubicka [Sat, 15 Nov 2014 16:53:51 +0000 (17:53 +0100)]
lto-streamer-out.c (hash_tree): Use cl_optimization_hash.

* lto-streamer-out.c (hash_tree): Use cl_optimization_hash.
* lto-streamer.h (cl_optimization_stream_out, cl_optimization_stream_in): Declare.
* optc-save-gen.awk: Generate cl_optimization LTO streaming and hashing routines.
* opth-gen.awk: Add prototype of cl_optimization_hash.
* tree-streamer-in.c (unpack_ts_optimization): Remove.
(streamer_unpack_tree_bitfields): Use cl_optimization_stream_in.
* tree-streamer-out.c (pack_ts_optimization): Remove.
(streamer_pack_tree_bitfields): Use cl_optimization_stream_out.

From-SVN: r217607

9 years ago* gcc.dg/tree-ssa/pr61144.c: Add dg-require-alias.
Francois-Xavier Coudert [Sat, 15 Nov 2014 16:36:58 +0000 (16:36 +0000)]
* gcc.dg/tree-ssa/pr61144.c: Add dg-require-alias.

From-SVN: r217606

9 years agopubtypes-3.c: Include <string.h>.
Francois-Xavier Coudert [Sat, 15 Nov 2014 16:06:55 +0000 (16:06 +0000)]
pubtypes-3.c: Include <string.h>.

* gcc.dg/pubtypes-3.c: Include <string.h>.
* gcc.dg/pubtypes-4.c: Likewise.

From-SVN: r217605

9 years agoNew unroll and jam option in Graphite.
Mircea Namolaru [Sat, 15 Nov 2014 15:37:49 +0000 (16:37 +0100)]
New unroll and jam option in Graphite.

From-SVN: r217604

9 years ago* gcc.dg/darwin-cfstring-format-1.c: Adjust dg-error.
Francois-Xavier Coudert [Sat, 15 Nov 2014 15:27:18 +0000 (15:27 +0000)]
* gcc.dg/darwin-cfstring-format-1.c: Adjust dg-error.

From-SVN: r217603

9 years agotree-cfg.c (replace_loop_annotate_in_block): New function extracted from...
Eric Botcazou [Sat, 15 Nov 2014 12:34:20 +0000 (12:34 +0000)]
tree-cfg.c (replace_loop_annotate_in_block): New function extracted from...

* tree-cfg.c (replace_loop_annotate_in_block): New function extracted
from...
(replace_loop_annotate): ...here.  Call it on the header and on the
latch block, if any.  Restore proper behavior of final cleanup.

From-SVN: r217602

9 years agotree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message for max-complet...
Eric Botcazou [Sat, 15 Nov 2014 12:06:23 +0000 (12:06 +0000)]
tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message for max-completely-peeled-insns limit.

* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add log message
for max-completely-peeled-insns limit.

From-SVN: r217601

9 years agoerror.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.
Tobias Burnus [Sat, 15 Nov 2014 11:06:07 +0000 (12:06 +0100)]
error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.

2014-11-15  Tobias Burnus  <burnus@net-b.de>

gcc/fortran/
        * error.c (gfc_fatal_error_1): Renamed from gfc_fatal_error.
        (gfc_fatal_error): Add; uses common diagnostics.
        * array.c (gfc_match_array_ref, gfc_match_array_spec): Use
        %< %>.
        * check.c (check_co_collective, gfc_check_lcobound,
        gfc_check_image_index, gfc_check_num_images,
        gfc_check_this_image, gfc_check_ucobound): Ditto.
        * cpp.c (gfc_cpp_post_options): Ditto.
        (gfc_cpp_init_0, gfc_cpp_done): Change %s to %qs.
        * gfc-diagnostic.def (DK_FATAL): Capitalize first letter.
        * gfortran.h (gfc_fatal_error_1): Add.
        * match.c (gfc_match_name, gfc_match_critical,
        lock_unlock_statement, sync_statement): Add %< %>.
        * module.c (bad_module, gfc_dump_module, gfc_use_module): Change
        %s to %qs.
        * options.c (gfc_handle_module_path_options,
        * gfc_handle_fpe_option,
        gfc_handle_coarray_option, gfc_handle_runtime_check_option,
        gfc_handle_option): Add %< %>.
        * simplify.c (gfc_simplify_num_images): Ditto.
        * trans-stmt.c (gfc_trans_sync): Use gfc_fatal_error_1.
        * trans-array.c (gfc_conv_array_initializer): Ditto.
        * trans-types.c (gfc_init_kinds): Use gfc_fatal_error instead
        of fatal_error; add %< %> quotations.

gcc/testsuite/
        * gfortran.dg/binding_label_tests_4.f03: Add dg-excess-errors.
        * gfortran.dg/coarray_9.f90: Ditto.
        * gfortran.dg/empty_label.f: Ditto.
        * gfortran.dg/empty_label.f90: Ditto.

From-SVN: r217600

9 years agoDaily bump.
GCC Administrator [Sat, 15 Nov 2014 00:16:30 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r217599

9 years agoipa-prop.h (ipa_known_type_data): Remove.
Jan Hubicka [Fri, 14 Nov 2014 23:25:20 +0000 (00:25 +0100)]
ipa-prop.h (ipa_known_type_data): Remove.

* ipa-prop.h (ipa_known_type_data): Remove.
(ipa_binfo_from_known_type_jfunc): Remove.

From-SVN: r217596

9 years ago[AARCH64] Add scheduler for ThunderX
Andrew Pinski [Fri, 14 Nov 2014 21:21:25 +0000 (21:21 +0000)]
[AARCH64] Add scheduler for ThunderX

This adds the schedule model for ThunderX. There are a few TODOs in that
not all of the SIMD is model currently.  Also the idea of a simple
shift/extend is not modeled and all cases where there is a shift/extend
is considered as non simple and take up two cycles rather than correct
value of one cycle.  Also the 32bit divide and the 64bit divide
have different cycle counts but there is no way to model that currently.
Also multiply high takes one cycle more than the normal multiply but
there is no way to model that currently either.

Build and tested for aarch64-elf with no regressions.

ChangeLog:
* config/aarch64/aarch64-cores.def (thunderx): Change the scheduler
over to thunderx.
* config/aarch64/aarch64.md: Include thunderx.md.
(generic_sched): Set to no for thunderx.
* config/aarch64/thunderx.md: New file.

From-SVN: r217593

9 years agopredicates.md (easy_fp_constant): Delete redunant tests for 0.0.
Michael Meissner [Fri, 14 Nov 2014 20:45:21 +0000 (20:45 +0000)]
predicates.md (easy_fp_constant): Delete redunant tests for 0.0.

[gcc]
2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/predicates.md (easy_fp_constant): Delete redunant
tests for 0.0.

* config/rs6000/vector.md (VEC_R): Move secondary reload support
insns to rs6000.md from vector.md.
(reload_<VEC_R:mode>_<P:mptrsize>_store): Likewise.
(reload_<VEC_R:mode>_<P:mptrsize>_load): Likewise.
(vec_reload_and_plus_<mptrsize>): Likewise.

* config/rs6000/rs6000.md (Fa): New mode attribute to give
constraint for the Altivec registers for a type.
(RELOAD): New mode iterator for all of the types that have
secondary reload address support to load up a base register.
(extendsfdf2_fpr): Use correct constraint.
(copysign<mode>3_fcpsgn): For SFmode, use correct xscpsgndp
instruction.
(floatsi<mode>2_lfiwax): Add support for -mupper-regs-{sf,df}.
Generate the non-VSX instruction if all registers were FPRs.  Do
not use the patterns in vsx.md for scalar operations.
(floatsi<mode>2_lfiwax_mem): Likewise.
(floatunssi<mode>2_lfiwzx): Likewise.
(floatunssi<mode>2_lfiwzx_mem): Likewise.
(fix_trunc<mode>di2_fctidz): Likewise.
(fixuns_trunc<mode>di2_fctiduz): Likewise.
(fctiwz_<mode>): Likewise.
(fctiwuz_<mode>): Likewise.
(friz): Likewise.
(floatdidf2_fpr): Likewise.
(floatdidf2_mem): Likewise.
(floatunsdidf2): Likewise.
(floatunsdidf2_fcfidu): Likewise.
(floatunsdidf2_mem): Likewise.
(floatdisf2_fcfids): Likewise.
(floatdisf2_mem): Likewise.
(floatdisf2_internal1): Add explicit test for not FCFIDS to make
it more obvious that the code is for pre-ISA 2.06 machines.
(floatdisf2_internal2): Likewise.
(floatunsdisf2_fcfidus): Add support for -mupper-regs-{sf,df}.
Generate the non-VSX instruction if all registers were FPRs.  Do
not use the patterns in vsx.md for scalar operations.
(floatunsdisf2_mem): Likewise.
(reload_<RELOAD:mode>_<P:mptrsize>_store): Move the reload
handlers here from vector.md, and expand the types we generate
reload handlers for.
(reload_<RELOAD:mode>_<P:mptrsize>_load): Likewise.
(vec_reload_and_plus_<mptrsize>): Likewise.

* config/rs6000/vsx.md (vsx_float<VSi><mode>2): Only provide the
vector forms of the instructions.  Move VSX scalar forms to
rs6000.md, and add support for -mupper-regs-sf.
(vsx_floatuns<VSi><mode>2): Likewise.
(vsx_fix_trunc<mode><VSi>2): Likewise.
(vsx_fixuns_trunc<mode><VSi>2): Likewise.
(vsx_float_fix_<mode>2): Delete DF version, rename to
vsx_float_fix_v2df2.
(vsx_float_fix_v2df2): Likewise.

[gcc/testsuite]
2014-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/ppc-fpconv-1.c: Adjust for -mupper-regs-df
changes.
* gcc.target/powerpc/ppc-fpconv-2.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-3.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-4.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-5.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-6.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-7.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-8.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-9.c: Likewise.
* gcc.target/powerpc/ppc-fpconv-10.c: Likewise.
* gcc.target/powerpc/ppc-round.c: Likewise.

From-SVN: r217590

9 years agoipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
Martin Jambor [Fri, 14 Nov 2014 20:07:39 +0000 (21:07 +0100)]
ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.

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

* ipa-prop.h (jump_func_type): Removed value IPA_JF_KNOWN_TYPE.
(ipa_pass_through_data): Removed field type_preserved.
(ipa_ancestor_jf_data): removed fields type and type_preserved.
(ipa_jump_func): Removed field known_type.
(ipa_get_jf_known_type_offset): Removed.
(ipa_get_jf_known_type_base_type): Likewise.
(ipa_get_jf_known_type_component_type): Likewise.
(ipa_get_jf_ancestor_type): Likewise.
* ipa-cp.c (print_ipcp_constant_value): Removed BINFO handling.
(ipa_get_jf_pass_through_result): Likewise.
(ipa_get_jf_ancestor_result): Always build ptr_node_type accesses.
(values_equal_for_ipcp_p): Removed BINFO handling.
(ipa_get_indirect_edge_target_1): Updated comment.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Removed handling
of IPA_JF_KNOWN_TYPE jump functions.  Do not print removed fields.
(ipa_set_jf_known_type): Removed.
(ipa_set_jf_simple_pass_through): Do not set removed fields.  Update
all callers.
(ipa_set_jf_arith_pass_through): Likewise.
(ipa_set_ancestor_jf): Likewise.
(ipa_binfo_from_known_type_jfunc): Removed.
(prop_type_change_info): Removed fields known_current_type and
multiple_types_encountered.
(extr_type_from_vtbl_ptr_store): Removed.
(check_stmt_for_type_change): Do not attempt to identify changed type.
(detect_type_change_from_memory_writes): Do not set the removed fields,
always set jfunc to unknown.
(compute_complex_assign_jump_func): Do not detect dynamic type change.
(compute_complex_ancestor_jump_func): Likewise.
(compute_known_type_jump_func): Removed.
(ipa_compute_jump_functions_for_edge): Do not detect dynamic type
change.  Do not comute known type jump functions.
(combine_known_type_and_ancestor_jfs): Removed.
(update_jump_functions_after_inlining): Removed handling of
IPA_JF_KNOWN_TYPE jump functions.  Do not set removed fields.
(ipa_write_jump_function): Do not stream removed fields or known type
jump functions.
(ipa_read_jump_function): Likewise.

From-SVN: r217589

9 years agolra-int.h (lra_create_live_ranges): Add parameter.
Vladimir Makarov [Fri, 14 Nov 2014 20:06:11 +0000 (20:06 +0000)]
lra-int.h (lra_create_live_ranges): Add parameter.

2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>

* lra-int.h (lra_create_live_ranges): Add parameter.
* lra-lives.c (temp_bitmap): Move higher.
(initiate_live_solver): Move temp_bitmap initialization into
lra_live_ranges_init.
(finish_live_solver): Move temp_bitmap clearing into
live_ranges_finish.
(process_bb_lives): Add parameter.  Use it to control live info
update and dead insn elimination.  Pass it to mark_regno_live and
mark_regno_dead.
(lra_create_live_ranges): Add parameter.  Pass it to
process_bb_lives.
(lra_live_ranges_init, lra_live_ranges_finish): See changes in
initiate_live_solver and finish_live_solver.
* lra-remat.c (do_remat): Process insn non-operand hard regs too.
Use temp_bitmap to update avail_cands.
* lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
check with lra_need_for_spill_p after live range pass.  Switch on
rematerialization pass.

From-SVN: r217588

9 years agoipa-prop.h (ipa_get_jf_pass_through_type_preserved): use agg_preserved flag instead.
Martin Jambor [Fri, 14 Nov 2014 20:03:19 +0000 (21:03 +0100)]
ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use agg_preserved flag instead.

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

* ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
agg_preserved flag instead.
(ipa_get_jf_ancestor_type_preserved): Likewise.
(ipa_node_params): Rename known_vals to known_csts, update all users.
New field known_contexts.
(ipa_get_indirect_edge_target): Update prototype.
(ipcp_poly_ctx_values_pool): Declare.
(ipa_context_from_jfunc): Likewise.
* ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
* cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
parameter newline of method dump.
* ipa-cp.c (ctxlat): New field.
(ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
(ipcp_poly_ctx_values_pool):New variable.
(ipa_get_poly_ctx_lat): New function.
(print_ipcp_constant_value): New overloaded function for contexts.
(print_all_lattices): Also print contexts.
(ipa_topo_info): New field contexts;
(set_all_contains_variable): Also set the flag in the context lattice.
(initialize_node_lattices): Likewise for flag bottom.
(ipa_get_jf_ancestor_result): Removed BINFO handling.
(ipa_value_from_jfunc): Likewise.
(ipa_context_from_jfunc): New function.
(values_equal_for_ipcp_p): New overloaded function for contexts.
(allocate_and_init_ipcp_value): Construct the value.
(allocate_and_init_ipcp_value): New overloaded function for contexts.
(propagate_scalar_accross_jump_function): Removed handling of
KNOWN_TYPE jump functions.
(propagate_context_accross_jump_function): New function.
(propagate_constants_accross_call): Also propagate contexts.
(ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
(ipa_get_indirect_edge_target): Likewise.
(devirtualization_time_bonus): Likewise.
(gather_context_independent_values): Create and populate known_contexts
vector rather than known_binfos.
(perform_estimation_of_a_value): Work on contexts rather than BINFOs.
(estimate_local_effects): Likewise.
(add_all_node_vals_to_toposort): Also add contexts to teir topological
sort.
(ipcp_propagate_stage): Also propagate effects of contexts.
(ipcp_discover_new_direct_edges): Receive and pass known_contexts to
ipa_get_indirect_edge_target_1.
(cgraph_edge_brings_value_p): New overloaded function for contexts.
(create_specialized_node): Work on contexts rather than BINFOs.
(find_more_contexts_for_caller_subset): New function.
(known_contexts_useful_p): New function.
(copy_useful_known_contexts): Likewise.
(modify_known_vectors_with_val): Likewise.
(ipcp_val_in_agg_replacements_p): Renamed to
ipcp_val_agg_replacement_ok_p, return true for all offset indicating
non-aggregate.
(ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
(decide_about_value): Work on contexts rather than BINFOs.
(decide_whether_version_node): Likewise.
(ipcp_driver): Initialize the new alloc pool.
* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
printing of edge contexts.
(ipa_set_ancestor_jf): Replace assert with conditional setting of
type_preserved to false.
(update_jump_functions_after_inlining): Use access function instead of
reading agg_preserved directly.  Store combined context in the ancestor
case.
(try_make_edge_direct_virtual_call): Work on contexts rather than
BINFOs.
(update_indirect_edges_after_inlining): Get context from
ipa_context_from_jfunc.
(ipa_free_node_params_substructures): Free also known_contexts.
(ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
(ipa_free_all_structures_after_iinln): Likewise.
* ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
contexts rather than BINFOs.
(estimate_edge_devirt_benefit): Likewise.
(estimate_edge_size_and_time): Likewise.
(estimate_calls_size_and_time): Likewise.
(estimate_node_size_and_time): Likewise.
(estimate_ipcp_clone_size_and_time): Likewise.
(do_estimate_edge_time): Likewise.
(do_estimate_edge_size): Likewise.
(do_estimate_edge_hints): Likewise.
* ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
parameter newline, ouput newline only when it is set.
(ipa_polymorphic_call_context::equal_to): New method.

testsuite/
* g++.dg/ipa/devirt-11.C: Dont't run ipa-cp, remove times constraint
from the dump scan.
* g++.dg/ipa/devirt-21.C: Xfail.
* g++.dg/ipa/devirt-24.C: Likewise.
* g++.dg/ipa/devirt-10.C: Removed times constraint from the dump scan.
* g++.dg/ipa/devirt-41.C: Updated the dump scan.
* g++.dg/ipa/devirt-44.C: Likewise.
* g++.dg/ipa/devirt-43.C: Xfail.

From-SVN: r217587

9 years agoipa-cp.c (ipcp_value_source): Converted to a template class.
Martin Jambor [Fri, 14 Nov 2014 19:58:18 +0000 (20:58 +0100)]
ipa-cp.c (ipcp_value_source): Converted to a template class.

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

* ipa-cp.c (ipcp_value_source): Converted to a template class.  All
users converted to the same specialization as the using class/function
or specialization on tree.
(ipcp_value): Likewise.
(ipcp_lattice): Likewise.
(ipcp_agg_lattice): Now derived from tree specialization of
ipcp_lattice.
(values_topo): Moved to new class value_topo_info.
(ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
Updated all callers.
(print_lattice): Turned into ipcp_lattice::print.  Updated all
callers.
(value_topo_info): New class template.
(ipa_topo_info): New field constants.  New constructor.
(build_toporder_info): Do not clear stack_top, only checkign assert
it.
(set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
Updated all callers.
(set_lattice_contains_variable): Turned into
ipcp_lattice::set_contains_variable.  Updated all callers.
(add_value_source): Turned into ipcp_value::add_source.  Updated all
callers.
(allocate_and_init_ipcp_value): New function.
(add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
parameter got default a value.  Updated all callers.
(add_scalar_value_to_lattice): Removed, users converted to using
ipcp_lattice::add_value with default value of the last parameter.
(add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
all callers.
(propagate_effects): Made method of value_topo_info.
(cgraph_edge_brings_value_p): Now a template function.
(get_info_about_necessary_edges): Likewise.
(gather_edges_for_value): Likewise.
(perhaps_add_new_callers): Likewise.
(decide_about_value): Likewise.
* ipa-prop.h (ipcp_lattice): Remove fowrward declaration.

From-SVN: r217586

9 years ago* doc/install.texi (--with-diagnostics-color=): Document.
Jakub Jelinek [Fri, 14 Nov 2014 19:41:33 +0000 (20:41 +0100)]
* doc/install.texi (--with-diagnostics-color=): Document.

From-SVN: r217585

9 years agotree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate IFN_GOMP_SIMD_LANE without...
Jakub Jelinek [Fri, 14 Nov 2014 19:41:00 +0000 (20:41 +0100)]
tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate IFN_GOMP_SIMD_LANE without lhs as useless.

* tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
IFN_GOMP_SIMD_LANE without lhs as useless.

From-SVN: r217584

9 years agoruntime: set library name based on compiler name
Ian Lance Taylor [Fri, 14 Nov 2014 18:02:50 +0000 (18:02 +0000)]
runtime: set library name based on compiler name

Different compilers may have different release cadences or ABI
incompatibilities, so it does not make sense to use the same library
name for runtime libraries intended for different compilers.

This CL causes a libgo built by llgo to receive the name libgo-llgo.
Likewise, libgobegin is named libgobegin-llgo.

From-SVN: r217583

9 years agoipa-pure-const.c (struct funct_state_d): Add can_free field.
Jakub Jelinek [Fri, 14 Nov 2014 17:46:50 +0000 (18:46 +0100)]
ipa-pure-const.c (struct funct_state_d): Add can_free field.

* ipa-pure-const.c (struct funct_state_d): Add can_free field.
(varying_state): Add true for can_free.
(check_call): For builtin or internal !nonfreeing_call_p set
local->can_free.
(check_stmt): For asm volatile and asm with "memory" set
local->can_free.
(analyze_function): Clear local->can_free initially, continue
calling check_stmt until all flags are computed, dump can_free
flag.
(pure_const_write_summary): Write can_free flag.
(pure_const_read_summary): Read it back.
(propagate_pure_const): Propagate also can_free flag, set
w->nonfreeing_fn if it is false after propagation.
* cgraph.h (cgraph_node): Add nonfreeing_fn member.
* gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
(nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
Also return true for IFN_ABNORMAL_DISPATCHER.
* cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
* lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
(input_overwrite_node): Read it back.

From-SVN: r217582

9 years agosanopt.c: Include tree-ssa-operands.h.
Jakub Jelinek [Fri, 14 Nov 2014 17:28:11 +0000 (18:28 +0100)]
sanopt.c: Include tree-ssa-operands.h.

* sanopt.c: Include tree-ssa-operands.h.
(struct sanopt_info): Add has_freeing_call_p,
has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
being_visited_p fields.
(struct sanopt_ctx): Add asan_check_map field.
(imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
maybe_optimize_asan_check_ifn): New functions.
(sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
internal calls.
(pass_sanopt::execute): Call sanopt_optimize even for
-fsanitize=address.
* gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
internal calls.

Co-Authored-By: Marek Polacek <polacek@redhat.com>
From-SVN: r217581

9 years ago[Vectorizer] Tidy up vect_create_epilog / use_scalar_result
Alan Lawrence [Fri, 14 Nov 2014 17:20:40 +0000 (17:20 +0000)]
[Vectorizer] Tidy up vect_create_epilog / use_scalar_result

* tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
'if (extract_scalar_result)' to the only place that it is true.

From-SVN: r217580

9 years agoe.54.2.c (main): Use N / 8 instead of 32 as block_size.
Jakub Jelinek [Fri, 14 Nov 2014 17:19:55 +0000 (18:19 +0100)]
e.54.2.c (main): Use N / 8 instead of 32 as block_size.

* libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
of 32 as block_size.
* libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
instead of 32 as block_size.

From-SVN: r217579

9 years ago* dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags)
Shinichiro Hamaji [Fri, 14 Nov 2014 17:18:34 +0000 (17:18 +0000)]
* dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags)
(DW_AT_APPLE_isa, DW_AT_APPLE_block)
(DW_AT_APPLE_major_runtime_vers, DW_AT_APPLE_runtime_class)
(DW_AT_APPLE_omit_frame_ptr, DW_AT_APPLE_property_name)
(DW_AT_APPLE_property_getter, DW_AT_APPLE_property_setter)
(DW_AT_APPLE_property_attribute, DW_AT_APPLE_objc_complete_type)
(DW_AT_APPLE_property): New macros.

From-SVN: r217578

9 years agosemantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr.
Paolo Carlini [Fri, 14 Nov 2014 16:59:52 +0000 (16:59 +0000)]
semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr.

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

* semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr.
* parser.c (cp_parser_omp_clause_collapse): Likewise.
(cp_parser_enumerator_definition): Don't call
instantiate_non_dependent_expr...
* decl.c (build_enumerator): ... call fold_non_dependent_expr here.
* typeck2.c (massage_init_elt): Use fold_non_dependent_expr.
* constexpr.c (maybe_constant_value): Allow VIEW_CONVERT_EXPR in
the final gcc_assert.

* constexpr.c (fold_non_dependent_expr): Add.
* cp-tree.h (fold_non_dependent_expr): Declare it.
* call.c (null_ptr_cst_p): Use it.
* pt.c (tsubst_copy_and_build, build_non_dependent_expr): Likewise.
* semantics.c (begin_maybe_infinite_loop): Likewise.
* typeck.c (cp_build_binary_op): Likewise.
* typeck2.c (check_narrowing): Likewise.

* pt.c (fold_non_dependent_expr): Rename to
instantiate_non_dependent_expr.
(fold_non_dependent_expr_sfinae): Rename to
instantiate_non_dependent_expr_sfinae.
(convert_nontype_argument, build_non_dependent_expr): Adjust.
* decl.c (compute_array_index_type): Likewise.
* parser.c (cp_parser_parenthesized_expression_list,
cp_parser_enumerator_definition, cp_parser_omp_clause_collapse):
Likewise.
* semantics.c (end_maybe_infinite_loop, finish_static_assert):
Likewise.
* typeck.c (cxx_alignas_expr): Likewise.
* typeck2.c (store_init_value, massage_init_elt): Likewise.
* call.c: Adjust comments.
* class.c: Likewise.
* constexpr.c: Likewise.
* decl2.c: Likewise.
* tree.c: Likewise.

From-SVN: r217577

9 years agomt_allocator.cc: Fix assumption that sizeof(void *) is equal to sizeof(size_t).
Joel Sherrill [Fri, 14 Nov 2014 16:57:20 +0000 (16:57 +0000)]
mt_allocator.cc: Fix assumption that sizeof(void *) is equal to sizeof(size_t).

2014-11-14  Joel Sherrill <joel.sherrill@oarcorp.com>

* src/c++98/mt_allocator.cc: Fix assumption that sizeof(void *) is
equal to sizeof(size_t). The m32c breaks this assumption.

From-SVN: r217576

9 years agoDon't enable IFUNC by default for Android and uclibc
H.J. Lu [Fri, 14 Nov 2014 16:43:23 +0000 (16:43 +0000)]
Don't enable IFUNC by default for Android and uclibc

* config.gcc (default_gnu_indirect_function): Set to yes
for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
Android nor uclibc.

From-SVN: r217575

9 years agoaarch64-simd.md (*aarch64_simd_ld1r<mode>): Use VALL mode iterator instead of VALLDI.
Felix Yang [Fri, 14 Nov 2014 15:51:22 +0000 (15:51 +0000)]
aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use VALL mode iterator instead of VALLDI.

        * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
        VALL mode iterator instead of VALLDI.

Co-Authored-By: Jiji Jiang <jiangjiji@huawei.com>
From-SVN: r217573

9 years agooptc-save-gen.awk: Output cl_target_option_eq...
Jan Hubicka [Fri, 14 Nov 2014 15:48:47 +0000 (15:48 +0000)]
optc-save-gen.awk: Output cl_target_option_eq...

* optc-save-gen.awk: Output cl_target_option_eq,
cl_target_option_hash, cl_target_option_stream_out,
cl_target_option_stream_in functions.
* opth-gen.awk: Output prototypes for
cl_target_option_eq and cl_target_option_hash.
* lto-streamer.h (cl_target_option_stream_out,
cl_target_option_stream_in): Declare.
* tree.c (cl_option_hash_hash): Use cl_target_option_hash.
(cl_option_hash_eq): Use cl_target_option_eq.
* tree-streamer-in.c (unpack_value_fields): Stream in
TREE_TARGET_OPTION.
* lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
DECL_FUNCTION_SPECIFIC_TARGET.
(hash_tree): Hash TREE_TARGET_OPTION; visit
DECL_FUNCTION_SPECIFIC_TARGET.
* tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
TS_TARGET_OPTION.
(streamer_write_tree_body): Output TS_TARGET_OPTION.

* lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.

From-SVN: r217572

9 years agooptc-save-gen.awk: Output cl_target_option_eq...
Jan Hubicka [Fri, 14 Nov 2014 15:47:53 +0000 (16:47 +0100)]
optc-save-gen.awk: Output cl_target_option_eq...

* optc-save-gen.awk: Output cl_target_option_eq,
cl_target_option_hash, cl_target_option_stream_out,
cl_target_option_stream_in functions.
* opth-gen.awk: Output prototypes for
cl_target_option_eq and cl_target_option_hash.
* lto-streamer.h (cl_target_option_stream_out,
cl_target_option_stream_in): Declare.
* tree.c (cl_option_hash_hash): Use cl_target_option_hash.
(cl_option_hash_eq): Use cl_target_option_eq.
* tree-streamer-in.c (unpack_value_fields): Stream in
TREE_TARGET_OPTION.
* lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
DECL_FUNCTION_SPECIFIC_TARGET.
(hash_tree): Hash TREE_TARGET_OPTION; visit
DECL_FUNCTION_SPECIFIC_TARGET.
* tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
TS_TARGET_OPTION.
(streamer_write_tree_body): Output TS_TARGET_OPTION.

* lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.

From-SVN: r217571

9 years agoMakefile.am (AM_CXXFLAGS): Use -std=gnu++11.
Uros Bizjak [Fri, 14 Nov 2014 14:23:51 +0000 (15:23 +0100)]
Makefile.am (AM_CXXFLAGS): Use -std=gnu++11.

* sanitizer_common/Makefile.am (AM_CXXFLAGS): Use -std=gnu++11.
* asan/Makefile.am (AM_CXXFLAGS): Ditto.
* lsan/Makefile.am (AM_CXXFLAGS): Ditto.
* interception/Makefile.am (AM_CXXFLAGS): Ditto.
* tsan/Makefile.am (AM_CXXFLAGS): Ditto.
* libbacktrace/Makefile.am (AM_CXXFLAGS): Ditto.
* ubsan/Makefile.am (AM_CXXFLAGS): Ditto.
* sanitizer_common/Makefile.in: Regenerate.
* asan/Makefile.in: Ditto.
* lsan/Makefile.in: Ditto.
* interception/Makefile.in: Ditto.
* tsan/Makefile.in: Ditto.
* libbacktrace/Makefile.in: Ditto.
* ubsan/Makefile.in: Ditto.

From-SVN: r217562

9 years agogimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd valueization hook defaulted...
Richard Biener [Fri, 14 Nov 2014 13:32:56 +0000 (13:32 +0000)]
gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd valueization hook defaulted to no_follow_ssa_edges.

2014-11-14  Richard Biener  <rguenther@suse.de>

* gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
valueization hook defaulted to no_follow_ssa_edges.
* gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
2nd valueization hook to gimple_simplify.
* tree-ssa-ccp.c (valueize_op_1): New function to be
used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
(ccp_fold): Adjust.
* tree-vrp.c (vrp_valueize_1): New function to be
used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
(vrp_visit_assignment_or_call): Adjust.

From-SVN: r217560

9 years agoDefine C++11 version of std::ios_base::failure.
Jonathan Wakely [Fri, 14 Nov 2014 12:17:57 +0000 (12:17 +0000)]
Define C++11 version of std::ios_base::failure.

* config/abi/pre/gnu.ver: Add new exports.
* include/bits/ios_base.h (ios_base::failure): New definition using
abi_tag.
(io_errc, make_error_code, make_error_category, iostream_category):
Define.
* include/std/system_error (system_error): Add char* constructors.
* src/c++11/Makefile.am: Add new file.
* src/c++11/Makefile.in: Regenerate.
* src/c++11/cxx11-ios_failure.cc: New file.
* src/c++98/ios_failure.cc: Compile old definition without abi_tag.
* testsuite/27_io/ios_base/failure/cxx11.cc: New.
* testsuite/27_io/ios_base/failure/what-1.cc: Allow string returned by
ios_base::failure::what() to contain additional data.
* testsuite/27_io/ios_base/failure/what-2.cc: Likewise..
* testsuite/27_io/ios_base/failure/what-3.cc: Likewise..
* testsuite/27_io/ios_base/failure/what-big.cc: Likewise..

From-SVN: r217559

9 years agoFix patch mangling with --inline option
Tom de Vries [Fri, 14 Nov 2014 12:09:45 +0000 (12:09 +0000)]
Fix patch mangling with --inline option

2014-11-14  Tom de Vries  <tom@codesourcery.com>

* mklog: Move reading of .diff file up and add comment.  Copy diff_lines
to orig_diff_lines.  Use orig_diff_lines when appending patch.

From-SVN: r217558

9 years agomangle.c (find_substitution): Look for abi_tag on class templates.
Jonathan Wakely [Fri, 14 Nov 2014 12:02:09 +0000 (12:02 +0000)]
mangle.c (find_substitution): Look for abi_tag on class templates.

gcc/cp:
* mangle.c (find_substitution): Look for abi_tag on class templates.

gcc/testsuite:
* g++.dg/abi/abi-tag11.C: New.

From-SVN: r217557

9 years agofold-const.c (fold_negate_expr): Don't fold INTEGER_CST if that overflows when SANITI...
Marek Polacek [Fri, 14 Nov 2014 11:57:05 +0000 (11:57 +0000)]
fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if that overflows when SANITIZE_SI_OVERFLOW is on.

* fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
folding with TYPE_OVERFLOW_SANITIZED.

* c-c++-common/ubsan/overflow-negate-3.c: New test.

From-SVN: r217556

9 years agore PR sanitizer/63839 (ICE: tree check: expected ssa_name, have var_decl in simplify_...
Marek Polacek [Fri, 14 Nov 2014 11:22:12 +0000 (11:22 +0000)]
re PR sanitizer/63839 (ICE: tree check: expected ssa_name, have var_decl in simplify_builtin_call, at tree-ssa-forwprop.c:1441 with -fsanitize=unreachable)

PR sanitizer/63839
* asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
* builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
Define.
* builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
instrument BUILT_IN_UNREACHABLE here.
* sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
const.
* sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
* tree-ssa-ccp.c (optimize_unreachable): Bail out if
SANITIZE_UNREACHABLE.
* ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
* ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
testsuite/
* c-c++-common/ubsan/pr63839.c: New test.
* c-c++-common/ubsan/unreachable-2.c: New test.

From-SVN: r217553

9 years ago[RS6000] Remove vec_shl and (hopefully) fix vec_shr
Alan Lawrence [Fri, 14 Nov 2014 11:18:21 +0000 (11:18 +0000)]
[RS6000] Remove vec_shl and (hopefully) fix vec_shr

* config/rs6000/vector.md (vec_shl_<mode>): Remove.
(vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.

From-SVN: r217552

9 years agoFix ChangeLog date
Alan Lawrence [Fri, 14 Nov 2014 10:53:24 +0000 (10:53 +0000)]
Fix ChangeLog date

From-SVN: r217551

9 years ago[Vectorizer]Make reductions-via-shifts and vec_shr_optab endianness-neutral
Alan Lawrence [Fri, 14 Nov 2014 10:48:34 +0000 (10:48 +0000)]
[Vectorizer]Make reductions-via-shifts and vec_shr_optab endianness-neutral

        * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
        BYTES_BIG_ENDIAN.
        * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
        vect_create_epilog_for_reduction): Likewise.
        * doc/md.texi (vec_shr_m): Clarify direction of shifting.

From-SVN: r217550

9 years agore PR target/63724 ([AArch64] Inefficient immediate expansion and hoisting.)
Ramana Radhakrishnan [Fri, 14 Nov 2014 09:44:17 +0000 (09:44 +0000)]
re PR target/63724 ([AArch64] Inefficient immediate expansion and hoisting.)

Fix PR target/63724

2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

PR target/63724
        * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
        numerical immediate handling to...
        (aarch64_internal_mov_immediate): ...this. New.
        (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
        (aarch64_mov_operand_p): Relax predicate.
        * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
        (*movsi_aarch64): Turn into define_insn_and_split and new alternative
        for 'n'.
        (*movdi_aarch64): Likewise.

From-SVN: r217546

9 years agomatch.pd: Implement more binary patterns exercised by fold_stmt.
Richard Biener [Fri, 14 Nov 2014 09:30:08 +0000 (09:30 +0000)]
match.pd: Implement more binary patterns exercised by fold_stmt.

2014-11-14  Richard Biener  <rguenther@suse.de>

* match.pd: Implement more binary patterns exercised by
fold_stmt.
* fold-const.c (sing_bit_p): Export.
(exact_inverse): Likewise.
(fold_binary_loc): Remove patterns here.
(tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
* fold-const.h (sing_bit_p): Declare.
(exact_inverse): Likewise.

* gcc.c-torture/execute/shiftopt-1.c: XFAIL invalid parts.

From-SVN: r217545

9 years ago* tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.
Marek Polacek [Fri, 14 Nov 2014 08:55:11 +0000 (08:55 +0000)]
* tree.c (build_common_builtin_nodes): Remove doubled ECF_LEAF.

From-SVN: r217543

9 years agogenmatch.c (add_operator): Allow CONSTRUCTOR.
Richard Biener [Fri, 14 Nov 2014 08:37:41 +0000 (08:37 +0000)]
genmatch.c (add_operator): Allow CONSTRUCTOR.

2014-11-14  Richard Biener  <rguenther@suse.de>

* genmatch.c (add_operator): Allow CONSTRUCTOR.
(dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
(parser::parse_op): Allow to iterate over predicates.

From-SVN: r217541

9 years agoconfigure.ac (--with-diagnostics-color): New configure option, default to --with...
Jakub Jelinek [Fri, 14 Nov 2014 07:30:27 +0000 (08:30 +0100)]
configure.ac (--with-diagnostics-color): New configure option, default to --with-diagnostics-color=auto.

* configure.ac (--with-diagnostics-color): New configure
option, default to --with-diagnostics-color=auto.
* toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
to determine -fdiagnostics-color= option default.
* doc/invoke.texi (-fdiagnostics-color=): Document new
default.
* configure: Regenerated.
* config.in: Regenerated.

From-SVN: r217540

9 years agore PR tree-optimization/63841 (Incorrect strlen optimization after complete unroll)
Teresa Johnson [Fri, 14 Nov 2014 06:35:35 +0000 (06:35 +0000)]
re PR tree-optimization/63841 (Incorrect strlen optimization after complete unroll)

2014-11-13  Teresa Johnson  <tejohnson@google.com>

gcc:
PR tree-optimization/63841
* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.

2014-11-13  Teresa Johnson  <tejohnson@google.com>

gcc/testsuite:
PR tree-optimization/63841
* g++.dg/tree-ssa/pr63841.C: Remove prints, use abort.

From-SVN: r217537

9 years ago* cas_n.c (libat_compare_exchange): Add missing cast.
Andrew Waterman [Fri, 14 Nov 2014 06:05:51 +0000 (06:05 +0000)]
* cas_n.c (libat_compare_exchange): Add missing cast.

From-SVN: r217536

9 years agoregex.h: Support embedded zeros in sub_match comparisons (DR 2217)
Daniel Kruegler [Fri, 14 Nov 2014 04:23:06 +0000 (04:23 +0000)]
regex.h: Support embedded zeros in sub_match comparisons (DR 2217)

2014-11-13  Daniel Kruegler  <daniel.kruegler@gmail.com>

* include/bits/regex.h: Support embedded zeros in sub_match
comparisons (DR 2217)
* testsuite/28_regex/sub_match/embedded_zeros_cmp.cc:
Add test cases for embedded zeros

From-SVN: r217535