platform/upstream/gcc.git
9 years ago[PATCH 3/7] OpenMP 4.0 offloading infrastructure: Offload tables.
Ilya Verbin [Thu, 13 Nov 2014 13:44:04 +0000 (13:44 +0000)]
[PATCH 3/7] OpenMP 4.0 offloading infrastructure: Offload tables.

gcc/
* Makefile.in (GTFILES): Add omp-low.h to list of GC files.
* cgraphunit.c: Include omp-low.h.
* doc/tm.texi: Regenerate.
* doc/tm.texi.in (TARGET_RECORD_OFFLOAD_SYMBOL): Document.
* gengtype.c (open_base_files): Add omp-low.h to ifiles.
* lto-cgraph.c (output_offload_tables): New function.
(input_offload_tables): Likewise.
* lto-section-in.c (lto_section_name): Add "offload_table".
* lto-section-names.h (OFFLOAD_VAR_TABLE_SECTION_NAME): Define.
(OFFLOAD_FUNC_TABLE_SECTION_NAME): Likewise.
* lto-streamer-out.c (lto_output): Call output_offload_tables.
* lto-streamer.h (lto_section_type): Add LTO_section_offload_table.
(output_offload_tables, input_offload_tables): Declare.
* omp-low.c: Include common/common-target.h and lto-section-names.h.
(offload_funcs, offload_vars): New global <tree, va_gc> vectors.
(expand_omp_target): Add child_fn into offload_funcs vector.
(add_decls_addresses_to_decl_constructor): New function.
(omp_finish_file): Likewise.
* omp-low.h (omp_finish_file, offload_funcs, offload_vars): Declare.
* target.def (record_offload_symbol): New DEFHOOK.
* toplev.c: Include omp-low.h.
(compile_file): Call omp_finish_file.
* varpool.c: Include omp-low.h.
(varpool_node::get_create): Add decl into offload_vars vector.

gcc/lto/
* lto/lto.c (read_cgraph_and_symbols): Call input_offload_tables.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r217489

9 years agogenmatch.c (dt_node::gen_kids): Fix placement of break statement.
Richard Biener [Thu, 13 Nov 2014 13:41:11 +0000 (13:41 +0000)]
genmatch.c (dt_node::gen_kids): Fix placement of break statement.

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

* genmatch.c (dt_node::gen_kids): Fix placement of break statement.

From-SVN: r217487

9 years ago[PATCH 2/7] OpenMP 4.0 offloading infrastructure: LTO streaming.
Ilya Verbin [Thu, 13 Nov 2014 13:37:38 +0000 (13:37 +0000)]
[PATCH 2/7] OpenMP 4.0 offloading infrastructure: LTO streaming.

gcc/
* cgraph.c: Include context.h.
(cgraph_node::create): Set node->offloadable and g->have_offload if
decl have "omp declare target" attribute.
* cgraph.h (symtab_node): Add need_lto_streaming and offloadable flags.
* cgraphunit.c: Include lto-section-names.h.
(ipa_passes): Call ipa_write_summaries if there is something to write to
OFFLOAD_SECTION_NAME_PREFIX sections.
(symbol_table::compile): Set flag_generate_lto if there is something to
offload.
Replace flag_lto with flag_generate_lto before lto_streamer_hooks_init.
* context.c (gcc::context::context): Initialize have_offload with false.
* context.h (class context): Add have_offload flag.
* ipa-inline-analysis.c (inline_generate_summary): Do not exit under
flag_generate_lto.
(inline_free_summary): Always remove hooks.
* lto-cgraph.c (referenced_from_other_partition_p): Ignore references
from non-offloadable nodes while streaming a node into offload section.
(reachable_from_other_partition_p): Likewise.
(select_what_to_stream): New function.
(compute_ltrans_boundary): Do not call
lto_set_symtab_encoder_in_partition if the node should not be streamed.
* lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX): Define.
(section_name_prefix): Declare.
* lto-streamer.c (section_name_prefix): New variable.
(lto_get_section_name): Use section_name_prefix instead of
LTO_SECTION_NAME_PREFIX.
* lto-streamer.h (select_what_to_stream): Declare.
* omp-low.c: Include context.h.
(is_targetreg_ctx): New function.
(scan_sharing_clauses): Use offloadable flag, instead of an attribute.
(create_omp_child_function, check_omp_nesting_restrictions): Use new
is_targetreg_ctx function.  Replace usage of "omp declare target"
attribute with a cgraph_node flag offloadable.
(expand_omp_target): Set mark_force_output for offloadable functions.
(lower_omp_critical): Set offloadable flag for omp critical symbol.
* passes.c (ipa_write_summaries): New argument offload_lto_mode.  Call
select_what_to_stream.  Do not call lto_set_symtab_encoder_in_partition
if the node should not be streamed out.
* tree-pass.h (ipa_write_summaries): New bool argument.
* varpool.c: Include context.h.
(varpool_node::get_create): Set node->offloadable and g->have_offload if
decl have "omp declare target" attribute.

gcc/lto/
* lto-object.c (lto_obj_add_section): Use section_name_prefix instead of
LTO_SECTION_NAME_PREFIX.
* lto-partition.c (lto_promote_cross_file_statics): Call
select_what_to_stream.
* lto.c (lto_section_with_id): Use section_name_prefix instead of
LTO_SECTION_NAME_PREFIX.
(read_cgraph_and_symbols): Read OFFLOAD_SECTION_NAME_PREFIX sections, if
being built as an offload compiler.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r217486

9 years ago[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make
Bernd Schmidt [Thu, 13 Nov 2014 13:28:56 +0000 (13:28 +0000)]
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make

* configure: Regenerate.
* configure.ac (--enable-as-accelerator-for)
(--enable-offload-targets): New configure options.
gcc/
* Makefile.in (real_target_noncanonical, accel_dir_suffix)
(enable_as_accelerator): New variables substituted by configure.
(libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
being configured as an offload compiler.
(DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
ACCEL_DIR_SUFFIX.
(install-cpp, install-common, install_driver, install-gcc-ar): Do not
install for the offload compiler.
* config.in: Regenerate.
* configure: Regenerate.
* configure.ac (real_target_noncanonical, accel_dir_suffix)
(enable_as_accelerator): Compute new variables.
(ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
(OFFLOAD_TARGETS): List of target names suitable for offloading.
(ENABLE_OFFLOADING): Define if list of offload targets is not empty.
gcc/cp/
* Make-lang.in (c++.install-common): Do not install for the offload
compiler.
gcc/doc/
* install.texi (Options specification): Document
--enable-as-accelerator-for and --enable-offload-targets.
gcc/fortran/
* Make-lang.in (fortran.install-common): Do not install for the offload
compiler.
libgcc/
* Makefile.in (crtoffloadbegin$(objext)): New rule.
(crtoffloadend$(objext)): Likewise.
* configure: Regenerate.
* configure.ac (accel_dir_suffix): Compute new variable.
(extra_parts): Add crtoffloadbegin.o and crtoffloadend.o
if enable_offload_targets is not empty.
* offloadstuff.c: New file.
libgomp/
* config.h.in: Regenerate.
* configure: Regenerate.
* configure.ac: Check for libdl, required for plugin support.
(PLUGIN_SUPPORT): Define if plugins are supported.
(enable_offload_targets): Support Intel MIC targets.
(OFFLOAD_TARGETS): List of target names suitable for offloading.
lto-plugin/
* Makefile.am (libexecsubdir): Tweak for the possibility of being
configured for offload compiler.
(accel_dir_suffix, real_target_noncanonical): New variables substituted
by configure.
* Makefile.in: Regenerate.
* configure: Regenerate.
* configure.ac (accel_dir_suffix, real_target_noncanonical): Compute new
variables.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
From-SVN: r217485

9 years agoUse POINTER_SIZE to check for pointer size
H.J. Lu [Thu, 13 Nov 2014 13:08:12 +0000 (13:08 +0000)]
Use POINTER_SIZE to check for pointer size

PR tree-optimization/63828
* ipa-polymorphic-call.c (possible_placement_new): Check
POINTER_SIZE, instead of BITS_PER_WORD, for pointer size.

From-SVN: r217483

9 years agoPR 60324 Unbounded stack allocations in libgfortran.
Janne Blomqvist [Thu, 13 Nov 2014 12:05:01 +0000 (14:05 +0200)]
PR 60324 Unbounded stack allocations in libgfortran.

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

PR libfortran/60324
* configure: Regenerated.
* configure.ac (AM_CFLAGS): Add Werror=vla.
* libgfortran.h (gfc_alloca): Remove macro.
(fc_strdup_notrim): New prototype.
* intrinsics/access.c (access_func): Use fc_strdup rather than
stack allocation.
* intrinsics/chdir.c (chdir_i4_sub): Likewise.
(chdir_i8_sub): Likewise.
* intrinsics/chmod.c (chmod_internal): New function, move logic
here.
(chmod_func): Call chmod_internal.
* intrinsics/env.c (getenv): Use fc_strdup rather than stack
allocation.
(get_environment_variable_i4): Likewise.
* intrinsics/execute_command_line.c (execute_command_line):
Likewise.
* intrinsics/hostnm.c (hostnm_0): New function, use static buffer
rather than VLA.
(hostnm_i4_sub): Call hostnm_0.
(hostnm_i8_sub): Likewise.
(hostnm): Likewise.
* intrinsics/link.c (link_internal): New function, use fc_strdup
rather than stack allocation.
(link_i4_sub): Call link_internal.
(link_i8_sub): Likewise.
(link_i4): Likewise.
(link_i8): Likewise.
* intrinsics/perror.c (perror_sub): Use fc_strdup rather than
stack allocation.
* intrinsics/random.c (random_seed_i4): Use static buffer rather
than VLA, use _Static_assert to make sure it's big enough.
* intrinsics/rename.c (rename_internal): New function, use
fc_strdup rather than stack allocation.
(rename_i4_sub): Call rename_internal.
(rename_i8_sub): Likewise.
(rename_i4): Likewise.
(rename_i8): Likewise.
* intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than
stack allocation.
(stat_i8_sub_0): Likewise.
* intrinsics/symlink.c (symlnk_internal): New function, use
fc_strdup rather than stack allocation.
(symlnk_i4_sub): Call symlnk_internal.
(symlnk_i8_sub): Likewise.
(symlnk_i4): Likewise.
(symlnk_i8): Likewise.
* intrinsics/system.c (system_sub): Use fc_strdup rather than
stack allocation.
* intrinsics/unlink.c (unlink_i4_sub): Likewise.
* io/file_pos.c (READ_CHUNK): Make it a macro rather than variable.
* io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall
back to xmalloc/free for large sizes.
* io/read.c (read_f): Likewise.
* io/transfer.c (MAX_READ): Make it a macro rather than variable.
(WRITE_CHUNK): Likewise.
* io/write_float.def (write_float): Use fixed stack buffer, fall
back to xmalloc/free for large sizes.
* runtime/string.c (fc_strdup_notrim): New function.

From-SVN: r217480

9 years agotm.texi.in (SELECT_CC_MODE): Update example.
Eric Botcazou [Thu, 13 Nov 2014 11:44:26 +0000 (11:44 +0000)]
tm.texi.in (SELECT_CC_MODE): Update example.

* doc/tm.texi.in (SELECT_CC_MODE): Update example.
(REVERSIBLE_CC_MODE): Fix example.
(REVERSE_CONDITION): Fix typo.
* doc/tm.texi: Regenerate.

From-SVN: r217476

9 years agoRun pass_expand_omp_ssa after pass_paralellize_loops
Tom de Vries [Thu, 13 Nov 2014 10:51:58 +0000 (10:51 +0000)]
Run pass_expand_omp_ssa after pass_paralellize_loops

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

* omp-low.c (pass_data_expand_omp): Set properties_provided to
PROP_gimple_eomp.
(pass_expand_omp::gate): Remove function.  Move gate expression to ...
(pass_expand_omp::execute): ... here, as new variable gate.  Add early
exit if gate is false.
(pass_data pass_data_expand_omp_ssa): New pass_data.
(class pass_expand_omp_ssa): New pass.
(make_pass_expand_omp_ssa): New function.
* passes.def (pass_parallelize_loops): Use PUSH_INSERT_PASSES_WITHIN
instead of NEXT_PASS.
(pass_expand_omp_ssa): Add after pass_parallelize_loops.
* tree-parloops.c (gen_parallel_loop): Remove call to omp_expand_local.
(pass_parallelize_loops::execute): Don't do cleanups TODO_cleanup_cfg
and TODO_rebuild_alias yet.  Add TODO_update_ssa.  Set
cfun->omp_expand_needed.
* tree-pass.h: Add define PROP_gimple_eomp.
(make_pass_expand_omp_ssa): Declare.

From-SVN: r217474

9 years agoline-map.h: Include EXPR, so that unused variable warnings do not occur.
Manuel López-Ibáñez [Thu, 13 Nov 2014 10:46:56 +0000 (10:46 +0000)]
line-map.h: Include EXPR, so that unused variable warnings do not occur.

* include/line-map.h: Include EXPR, so that unused variable warnings
do not occur.

From-SVN: r217473

9 years agoEnable libcc1 on Solaris
Rainer Orth [Thu, 13 Nov 2014 10:22:22 +0000 (10:22 +0000)]
Enable libcc1 on Solaris

* configure.ac (libcc1_cv_lib_sockets): Check for -lsocket -lnsl.
* configure: Regenerate.
* connection.cc: Include <string.h>.
        * libcc1.cc (libcc1_compile): Use AF_UNIX instead of AF_LOCAL.

From-SVN: r217471

9 years agotree.h (TYPE_OVERFLOW_SANITIZED): Define.
Marek Polacek [Thu, 13 Nov 2014 10:17:51 +0000 (10:17 +0000)]
tree.h (TYPE_OVERFLOW_SANITIZED): Define.

* tree.h (TYPE_OVERFLOW_SANITIZED): Define.
* fold-const.c (fold_binary_loc): Use it.
* match.pd: Likewise.

From-SVN: r217470

9 years agocp-tree.h (cp_build_function_call): Remove prototype.
Kai Tietz [Thu, 13 Nov 2014 09:46:53 +0000 (10:46 +0100)]
cp-tree.h (cp_build_function_call): Remove prototype.

2014-11-13  Kai Tietz  <ktietz@redhat.com>

* cp-tree.h (cp_build_function_call): Remove prototype.
(cp_build_addr_expr_strict): Likewise.
(build_typed_address): Likewise.
* typeck.c (build_typed_address): Removed.
(cp_build_addr_expr_strict): Make static.
(cp_build_function_call): Likewise.

From-SVN: r217469

9 years agoRename struct in gcc/lra-lives.c
Kirill Yukhin [Thu, 13 Nov 2014 09:12:09 +0000 (09:12 +0000)]
Rename struct in gcc/lra-lives.c

gcc/
* gcc/lra-lives.c (struct bb_data): Rename to ...
(struct bb_data_pseudos): ... this.
(initiate_live_solver): Update struct name.

From-SVN: r217468

9 years agotarget-supports.exp (error_h): New check.
Alexander Ivchenko [Thu, 13 Nov 2014 09:08:18 +0000 (09:08 +0000)]
target-supports.exp (error_h): New check.

gcc/testsuite/
* lib/target-supports.exp (error_h): New check.
(libc_has_complex_functions): Ditto.
(tgmath_h): Ditto.
* gcc.dg/builtins-59.c: Add libc_has_complex_functions check.
* gcc.dg/builtins-61.c: Likewise.
* gcc.dg/builtins-67.c: Disable test for Bionic.
* gcc.dg/strlenopt-14g.c: Likewise.
* gcc.dg/strlenopt-14gf.c: Likewise.
* gcc.dg/c99-tgmath-1.c: Add tgmath_h check.
* gcc.dg/c99-tgmath-2.c: Likewise.
* gcc.dg/c99-tgmath-3.c: Likewise.
* gcc.dg/c99-tgmath-4.c: Likewise.
* gcc.dg/dfp/convert-dfp-round-thread.c: Add error_h check.

From-SVN: r217467

9 years agomatch.pd: Implement conditional expression patterns.
Richard Biener [Thu, 13 Nov 2014 08:53:23 +0000 (08:53 +0000)]
match.pd: Implement conditional expression patterns.

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

* match.pd: Implement conditional expression patterns.
* tree-ssa-forwprop.c (forward_propagate_into_cond): Remove
them here.
(combine_cond_exprs): Remove.
(pass_forwprop::execute): Do not call combine_cond_exprs.
* fold-const.c (fold_ternary_loc): Remove patterns here.
(pedantic_omit_one_operand_loc): Remove.

From-SVN: r217465

9 years agore PR tree-optimization/61559 (FAIL: gcc.dg/builtin-bswap-8.c on i686 with -mmovbe)
Richard Biener [Thu, 13 Nov 2014 08:45:29 +0000 (08:45 +0000)]
re PR tree-optimization/61559 (FAIL: gcc.dg/builtin-bswap-8.c on i686 with -mmovbe)

2014-12-13  Richard Biener  <rguenther@suse.de>

PR middle-end/61559
* match.pd: Implement bswap patterns for transforms checked by
gcc.dg/builtin-bswap-8.c.

From-SVN: r217464

9 years agodivmodhi.S: Add support for the G10 architecture.
Nick Clifton [Thu, 13 Nov 2014 08:34:41 +0000 (08:34 +0000)]
divmodhi.S: Add support for the G10 architecture.

* config/rl78/divmodhi.S: Add support for the G10 architecture.
Use START_FUNC and END_FUNC macros to enable linker garbage
collection.
* config/rl78/divmodqi.S: Likewise.
* config/rl78/divmodsi.S: Likewise.
* config/rl78/mulsi3.S: Likewise.
* config/rl78/lib2div.c: Remove G10 functions.
* config/rl78/lib2muls.c: Likewise.
* config/rl78/t-rl8 (HOST_LIBGCC2_CFLAGS): Define.
* config/rl78/vregs.h (START_FUNC): New macro.
(END_FUNC): New macro.

From-SVN: r217463

9 years agore PR libstdc++/63775 ([C++11] Regex range with leading dash (-) not working)
Tim Shen [Thu, 13 Nov 2014 07:40:01 +0000 (07:40 +0000)]
re PR libstdc++/63775 ([C++11] Regex range with leading dash (-) not working)

PR libstdc++/63775
* include/bits/regex_compiler.h (_Compiler<>::_M_expression_term,
_BracketMatcher<>::_M_make_range): Throw regex_erorr on invalid range
like [z-a]. Change _M_expression_term interface.
* include/bits/regex_compiler.tcc (
_Compiler<>::_M_insert_bracket_matcher,
_Compiler<>::_M_expression_term): Rewrite bracket expression parsing.
* testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc:
Add testcases and move file out of extended.

From-SVN: r217461

9 years agolra.c (lra): Switch off rematerialization pass.
Vladimir Makarov [Thu, 13 Nov 2014 05:07:52 +0000 (05:07 +0000)]
lra.c (lra): Switch off rematerialization pass.

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

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

From-SVN: r217459

9 years agocommon.opt (flra-remat): New.
Vladimir Makarov [Thu, 13 Nov 2014 03:02:49 +0000 (03:02 +0000)]
common.opt (flra-remat): New.

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

* common.opt (flra-remat): New.
* opts.c (default_options_table): Add entry for flra_remat.
* timevar_def (TV_LRA_REMAT): New.
* doc/invoke.texi (-flra-remat): Add description of the new
option.
* doc/passes.texi (-flra-remat): Remove lra-equivs.c and
lra-saves.c.  Add lra-remat.c.
* Makefile.in (OBJS): Add lra-remat.o.
* lra-remat.c: New file.
* lra.c: Add info about the rematerialization pass in the top
comment.
(collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
Process unallocatable regs too.
(lra_constraint_new_insn_uid_start): Remove.
(lra): Add code for calling rematerialization sub-pass.
* lra-int.h (lra_constraint_new_insn_uid_start): Remove.
(lra_constrain_insn, lra_remat): New prototypes.
(lra_eliminate_regs_1): Add parameter.
* lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
Process unallocatable hard regs too.
(process_bb_lives): Ditto.
* lra-spills.c (remove_pseudos): Add argument to
lra_eliminate_regs_1 call.
* lra-eliminations.c (lra_eliminate_regs_1): Add parameter.  Use it
for sp offset calculation.
(lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
(eliminate_regs_in_insn): Add parameter.  Use it for sp offset
calculation.
(process_insn_for_elimination): Add argument for
eliminate_regs_in_insn call.
* lra-constraints.c (get_equiv_with_elimination):  Add argument
for lra_eliminate_regs_1 call.
(process_addr_reg): Add parameter.  Use it.
(process_address_1): Ditto.  Add argument for process_addr_reg
call.
(process_address): Ditto.
(curr_insn_transform): Add parameter.  Use it.  Add argument for
process_address calls.
(lra_constrain_insn): New function.
(lra_constraints): Add argument for curr_insn_transform call.

From-SVN: r217458

9 years agoopts-global.c (postpone_unknown_option_warning): Fix spelling.
Manuel López-Ibáñez [Thu, 13 Nov 2014 01:08:06 +0000 (01:08 +0000)]
opts-global.c (postpone_unknown_option_warning): Fix spelling.

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

* opts-global.c (postpone_unknown_option_warning): Fix spelling.
(print_ignored_options): Fix quoting.
* opts.c (common_handle_option): Likewise.
(set_debug_level): Likewise.
* toplev.c (process_options): Likewise.

From-SVN: r217457

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

From-SVN: r217456

9 years agocompiler: Do not count package uses from ambiguous lookups.
Ian Lance Taylor [Thu, 13 Nov 2014 00:10:37 +0000 (00:10 +0000)]
compiler: Do not count package uses from ambiguous lookups.

When using dot imports, it is possible to
have an imported symbol name that matches
the name of a struct field in a composite
literal.  Do not consider the imported
package to be used in this situation.
Fixes issue 6427.

From-SVN: r217453

9 years agostd::shared_ptr atomic operations
Jonathan Wakely [Wed, 12 Nov 2014 23:55:11 +0000 (23:55 +0000)]
std::shared_ptr atomic operations

PR libstdc++/57250
* config/abi/pre/gnu.ver: Export new symbols.
* include/Makefile.am: Add new header.
* include/Makefile.in: Regenerate.
* include/bits/shared_ptr_atomic.h: Define atomic access functions.
* include/std/memory: Include new header.
* src/c++11/shared_ptr.cc (_Sp_locker): Define and use mutex pool.
* testsuite/20_util/shared_ptr/atomic/1.cc: New.
* testsuite/20_util/shared_ptr/atomic/2.cc: New.
* testsuite/20_util/shared_ptr/atomic/3.cc: New.

From-SVN: r217452

9 years agore PR ipa/63838 (ipa-pure-const miscomputes can_throw)
Jakub Jelinek [Wed, 12 Nov 2014 23:09:15 +0000 (00:09 +0100)]
re PR ipa/63838 (ipa-pure-const miscomputes can_throw)

PR ipa/63838
* ipa-pure-const.c (propagate_nothrow): Walk w->indirect_calls
chain instead of node->indirect_calls.  Put !can_throw into
conditions of all the loops.

* g++.dg/ipa/pr63838.C: New test.

From-SVN: r217449

9 years agoUse gen_rtx_REG to set pic_offset_table_rtx
H.J. Lu [Wed, 12 Nov 2014 21:50:20 +0000 (21:50 +0000)]
Use gen_rtx_REG to set pic_offset_table_rtx

* config/i386/i386.c (x86_output_mi_thunk): Use gen_rtx_REG to
set pic_offset_table_rtx.

From-SVN: r217448

9 years agoImplement MIPS o32 FPXX, FP64, FP64A ABI extensions.
Matthew Fortune [Wed, 12 Nov 2014 21:39:46 +0000 (21:39 +0000)]
Implement MIPS o32 FPXX, FP64, FP64A ABI extensions.

2014-11-12  Matthew Fortune  <matthew.fortune@imgtec.com>

gcc/
* common/config/mips/mips-common.c (mips_handle_option): Ensure
that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
* config.gcc (--with-fp-32): New option.
(--with-odd-spreg-32): Likewise.
* config.in (HAVE_AS_DOT_MODULE): New config define.
* config/mips/mips-protos.h
(mips_secondary_memory_needed): New prototype.
(mips_hard_regno_caller_save_mode): Likewise.
* config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
(mips_get_arg_info): Assert that V2SFmode is only handled specially
with TARGET_PAIRED_SINGLE_FLOAT.
(mips_return_mode_in_fpr_p): Likewise.
(mips16_call_stub_mode_suffix): Likewise.
(mips_get_reg_raw_mode): New static function.
(mips_return_fpr_pair): O32 return values span two registers.
(mips16_build_call_stub): Likewise.
(mips_function_value_regno_p): Support both FP return registers.
(mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1.  Add
specific cases for TARGET_FPXX to move via memory.
(mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
than UNITS_PER_FPREG 'span' one register.
(mips_dwarf_frame_reg_mode): New static function.
(mips_file_start): Switch to using .module instead of .gnu_attribute.
No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
(mips_save_reg, mips_restore_reg): Always represent DFmode frame
slots with two CFI directives even for O32 FP64.
(mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
saving/restoring callee-saved registers.
(mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
(mips_secondary_memory_needed): New function.
(mips_option_override): ABI check for TARGET_FLOATXX.  Disable
odd-numbered single-precision registers when using TARGET_FLOATXX.
Implement -modd-spreg and defaults.
(mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
callee-saved behaviour.
(mips_hard_regno_caller_save_mode): Implement.
(TARGET_GET_RAW_RESULT_MODE): Define target hook.
(TARGET_GET_RAW_ARG_MODE): Define target hook.
(TARGET_DWARF_FRAME_REG_MODE): Define target hook.
* config/mips/mips.h (TARGET_FLOAT32): New macro.
(TARGET_O32_FP64A_ABI): Likewise.
(TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
_MIPS_SPFPSET builtin define.
(MIPS_FPXX_OPTION_SPEC): New macro.
(OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
--with-odd-spreg-32=* to -m[no-]odd-spreg.
(ISA_HAS_ODD_SPREG): New macro.
(ISA_HAS_MXHC1): True for anything other than -mfp32.
(ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
(MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
(HARD_REGNO_CALLER_SAVE_MODE): Define.  Implement O32 FPXX extension
(HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
(SECONDARY_MEMORY_NEEDED): Likewise.
(FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
* config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
FP64A ABI extensions.
(move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
TARGET_FLOAT64.
* config/mips/mips.opt (mfpxx): New target option.
(modd-spreg): Likewise.
* config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
fp64 sysroot.
* config/mips/t-mti-elf: Remove fp64 multilib.
* config/mips/t-mti-linux: Likewise.
* configure.ac: Detect .module support.
* configure: Regenerate.
* doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
* doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
options.

gcc/testsuite/
* gcc.target/mips/args-1.c: Handle __mips_fpr == 0.
* gcc.target/mips/call-clobbered-1.c: New.
* gcc.target/mips/call-clobbered-2.c: New.
* gcc.target/mips/call-clobbered-3.c: New.
* gcc.target/mips/call-clobbered-4.c: New.
* gcc.target/mips/call-clobbered-5.c: New.
* gcc.target/mips/call-saved-4.c: New.
* gcc.target/mips/call-saved-5.c: New.
* gcc.target/mips/call-saved-6.c: New.
* gcc.target/mips/mips.exp: Support -mfpxx, -ffixed-f*,
and -m[no-]odd-spreg.  Use _MIPS_SPFPSET to determine default
odd-spreg option.  Account for -modd-spreg in minimum arch code.
* gcc.target/mips/movdf-1.c: New.
* gcc.target/mips/movdf-2.c: New.
* gcc.target/mips/movdf-3.c: New.
* gcc.target/mips/oddspreg-1.c: New.
* gcc.target/mips/oddspreg-2.c: New.
* gcc.target/mips/oddspreg-3.c: New.
* gcc.target/mips/oddspreg-4.c: New.
* gcc.target/mips/oddspreg-5.c: New.
* gcc.target/mips/oddspreg-6.c: New.

libgcc/
* config/mips/mips16.S: Set .module when supported.  Update O32
FP64 calling convention and use for FPXX when possible.  Add FPXX
calling convention fallback case.

From-SVN: r217446

9 years agoInitialize PIC register for large PIC model C++ thunk
H.J. Lu [Wed, 12 Nov 2014 21:16:14 +0000 (21:16 +0000)]
Initialize PIC register for large PIC model C++ thunk

gcc/

PR target/63815
* config/i386/i386.c (ix86_init_large_pic_reg): New.  Extracted
from ...
(ix86_init_pic_reg): Here.  Use ix86_init_large_pic_reg.
(x86_output_mi_thunk): Set PIC register to %r11.  Call
ix86_init_large_pic_reg to initialize PIC register.

gcc/testsuite/

PR target/63815
* g++.dg/other/pr63815.C: New test.

From-SVN: r217445

9 years agoDR 1510 PR c++/60420
Paolo Carlini [Wed, 12 Nov 2014 20:43:09 +0000 (20:43 +0000)]
DR 1510 PR c++/60420

/cp
2014-11-12  Paolo Carlini  <paolo.carlini@oracle.com>

DR 1510
PR c++/60420
* cp-tree.h (struct cp_decl_specifier_seq): Add decltype_p bool field.
* decl.c (grokdeclarator): Use it.
* parser.c (cp_parser_simple_type_specifier): Likewise.
* pt.c (tsubst, case DECLTYPE_TYPE): Use tf_ignore_bad_quals.

/testsuite
2014-11-12  Paolo Carlini  <paolo.carlini@oracle.com>

DR 1510
PR c++/60420
* g++.dg/cpp0x/decltype61.C: New.

From-SVN: r217444

9 years agosdbout.c (sdbout_symbol): Eliminate register only if decl isn't a global variable.
Kai Tietz [Wed, 12 Nov 2014 20:04:50 +0000 (21:04 +0100)]
sdbout.c (sdbout_symbol): Eliminate register only if decl isn't a global variable.

2014-11-12  Kai Tietz  <ktietz@redhat.com>

        * sdbout.c (sdbout_symbol): Eliminate register only
        if decl isn't a global variable.

From-SVN: r217443

9 years agoImplement resolutions of LWG 2399, 2400 and 2401.
Jonathan Wakely [Wed, 12 Nov 2014 19:41:36 +0000 (19:41 +0000)]
Implement resolutions of LWG 2399, 2400 and 2401.

* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Define
_Convertible alias template to simplify constraints.
(shared_ptr(unique_ptr<TD>&&)): Constrain (LWG 2399).
* include/bits/shared_ptr_base.h: Likewise.
(_Sp_counted_deleter::_M_get_deleter()): Use addressof (LWG 2400).
* include/std/functional (function::operator=(nullptr_t)): Add
noexcept (LWG 2401).
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.

From-SVN: r217442

9 years agoAdd a testcase for PR tree-optimization/63835
H.J. Lu [Wed, 12 Nov 2014 18:56:50 +0000 (18:56 +0000)]
Add a testcase for PR tree-optimization/63835

PR tree-optimization/63835
* gcc.dg/pr63835.c: New test.

From-SVN: r217441

9 years agoAdd bounds checking to vqdm*_lane intrinsics via a qualifier that also flips endianness
Alan Lawrence [Wed, 12 Nov 2014 18:51:53 +0000 (18:51 +0000)]
Add bounds checking to vqdm*_lane intrinsics via a qualifier that also flips endianness

gcc/:

* config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Display indices.

* config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add
qualifier_lane_index.
(aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): Rename to...
(aarch64_types_quadop_lane_qualifiers, TYPES_QUADOP_LANE): ...these.
(aarch64_types_ternop_lane_qualifiers, TYPES_TERNOP_LANE): New.

(aarch64_types_getlane_qualifiers): Rename to...
(aarch64_types_binop_imm_qualifiers): ...this.
(TYPES_SHIFTIMM): Follow renaming.
(TYPES_GETLANE): Rename to...
(TYPE_GETREG): ...this.

(aarch64_types_setlane_qualifiers): Rename to...
(aarch64_type_ternop_imm_qualifiers): ...this.
(TYPES_SHIFTINSERT, TYPES_SHIFTACC): Follow renaming.
(TYPES_SETLANE): Follow renaming above, and rename self to...
(TYPE_SETREG): ...this.

(enum builtin_simd_arg): Add SIMD_ARG_LANE_INDEX.
(aarch64_simd_expand_args): Add range check and endianness-flip.

(aarch64_simd_expand_builtin): Add mapping for qualifier_lane_index.

* config/aarch64/aarch64-simd.md
(aarch64_sq<r>dmulh_lane<mode>_internal *2): Rename to...
(aarch64_sq<r>dmulh_lane<mode>): ...this, and remove lane bounds check.
(aarch64_sqdmulh_lane<mode> *2, aarch64_sqrdmulh_lane<mode> *2): Delete.

(aarch64_sq<r>dmulh_laneq<mode>_internal): Rename to...
(aarch64_sq<r>dmulh_lane<mode>): ...this.

(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal *2): Rename to...
(aarch64_sqdml<SBINQOPS:as>l_lane<mode>): ...this.

(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal *2): Rename to...
(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): ...this.

(aarch64_sqdmull_lane<mode>_internal *2): Rename to...
(aarch64_sqdmull_lane<mode>): ...this.

(aarch64_sqdmull_laneq<mode>_internal *2): Rename to...
(aarch64_sqdmull_laneq<mode>): ...this.

(aarch64_sqdmulh_laneq<mode>, aarch64_sqrdmulh_laneq<mode>,
(aarch64_sqdmlal_lane<mode>, aarch64_sqdmlal_laneq<mode>,
aarch64_sqdmlsl_lane<mode>, aarch64_sqdmlsl_laneq<mode>,
aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Delete.

(aarch64_sqdmlal2_lane<mode>, aarch64_sqdmlal2_laneq<mode>,
aarch64_sqdmlsl2_lane<mode>, aarch64_sqdmlsl2_laneq<mode>,
aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>): Remove
bounds check and lane flip.

* config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane,
get_dregoi, get_dregci, getdregxi, get_qregoi,get_qregci, get_qregxi,
set_qregoi, set_qregci, set_qregxi): Change qualifiers to GETREG.

(sqdmlal_lane, sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq,
sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, sqdmlsl2_laneq): Follow
renaming of TERNOP_LANE to QUADOP_LANE.

(sqdmull_lane, sqdmull_laneq, sqdmull2_lane, sqdmull2_laneq,
sqdmulh_lane, sqdmulh_laneq, sqrdmulh_lane, sqrdmulh_laneq): Set
qualifiers to TERNOP_LANE.

gcc/testsuite/:

         * gcc.target/aarch64/simd/vqdmlal_high_lane_s16_indices_1.c: New test.
         * gcc.target/aarch64/simd/vqdmlal_high_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlal_high_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlal_high_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlal_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlal_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlal_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlal_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlalh_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlals_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_high_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_high_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_high_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsl_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlslh_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmlsls_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulh_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulh_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulh_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulh_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulhh_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulhq_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulhq_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulhq_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulhq_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulhs_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_high_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_high_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_high_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_high_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmull_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmullh_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqdmulls_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulh_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulh_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulh_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulh_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulhh_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulhq_lane_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulhq_lane_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulhq_laneq_s16_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulhq_laneq_s32_indices_1.c: Likewise.
         * gcc.target/aarch64/simd/vqrdmulhs_lane_s32_indices_1.c: Likewise.

From-SVN: r217440

9 years agoFix ChangeLog of previous commit, r217438:
Tobias Burnus [Wed, 12 Nov 2014 18:45:17 +0000 (19:45 +0100)]
Fix ChangeLog of previous commit, r217438:

        * Makefile.def: Make all-gcc depend on all-isl.

From-SVN: r217439

9 years agoMakefile.def: Remove CLooG.
Tobias Burnus [Wed, 12 Nov 2014 18:42:03 +0000 (19:42 +0100)]
Makefile.def: Remove CLooG.

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

        * Makefile.def: Remove CLooG.
        * Makefile.in: Regenerate.

From-SVN: r217438

9 years ago387-1.c (dg-skip-if): Use *-*-* target selector.
Uros Bizjak [Wed, 12 Nov 2014 18:32:57 +0000 (19:32 +0100)]
387-1.c (dg-skip-if): Use *-*-* target selector.

* gcc.target/i386/387-1.c (dg-skip-if): Use *-*-* target selector.
* gcc.target/i386/387-2.c (dg-skip-if): Ditto.
* gcc.target/i386/387-5.c (dg-skip-if): Ditto.
* gcc.target/i386/387-6.c (dg-skip-if): Ditto.
* gcc.target/i386/cmov7.c (dg-skip-if): Ditto.
* gcc.target/i386/funcspec-2.c (dg-skip-if): Ditto.
* gcc.target/i386/funcspec-3.c (dg-skip-if): Ditto.
* gcc.target/i386/funcspec-8.c (dg-skip-if): Ditto.
* gcc.target/i386/funcspec-9.c (dg-skip-if): Ditto.
* gcc.target/i386/gcc-have-sync-compare-and-swap-1.c (dg-skip-if):
Ditto.
* gcc.target/i386/gcc-have-sync-compare-and-swap-2.c (dg-skip-if):
Ditto.
* gcc.target/i386/isa-1.c (dg-skip-if): Ditto.
* gcc.target/i386/isa-6.c (dg-skip-if): Ditto.
* gcc.target/i386/isa-9.c (dg-skip-if): Ditto.
* gcc.target/i386/lea.c (dg-skip-if): Ditto.
* gcc.target/i386/memcpy-strategy-1.c (dg-skip-if): Ditto.
* gcc.target/i386/memcpy-strategy-2.c (dg-skip-if): Ditto.
* gcc.target/i386/memcpy-vector_loop-1.c (dg-skip-if): Ditto.
* gcc.target/i386/memcpy-vector_loop-2.c (dg-skip-if): Ditto.
* gcc.target/i386/memset-vector_loop-1.c (dg-skip-if): Ditto.
* gcc.target/i386/memset-vector_loop-2.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-10.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-2.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-3.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-4.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-5a.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-5b.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-6a.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-6b.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-7.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-8.c (dg-skip-if): Ditto.
* gcc.target/i386/pad-9.c (dg-skip-if): Ditto.
* gcc.target/i386/pentium4-not-mull.c (dg-skip-if): Ditto.
* gcc.target/i386/pr42589.c (dg-skip-if): Ditto.
* gcc.target/i386/sse-19.c (dg-skip-if): Ditto.
* gcc.target/i386/sse2-init-v2di-2.c (dg-skip-if): Ditto.
* gcc.target/i386/ssefn-1.c (dg-skip-if): Ditto.
* gcc.target/i386/ssetype-1.c (dg-skip-if): Ditto.
* gcc.target/i386/ssetype-2.c (dg-skip-if): Ditto.
* gcc.target/i386/ssetype-5.c (dg-skip-if): Ditto.
* gcc.target/i386/vect-double-1.c (dg-skip-if): Ditto.

From-SVN: r217437

9 years agoMakefile.in (CLOOGLIBS, CLOOGINC): Remove.
Tobias Burnus [Wed, 12 Nov 2014 18:28:36 +0000 (19:28 +0100)]
Makefile.in (CLOOGLIBS, CLOOGINC): Remove.

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

        * Makefile.in (CLOOGLIBS, CLOOGINC): Remove.
        * configure.ac: Ditto.
        * graphite-interchange.c: Remove HAVE_CLOOG block.
        * config.in: Regenerate.
        * configure: Regenerate.

From-SVN: r217436

9 years agopr45852.c: Simplify target selector.
Uros Bizjak [Wed, 12 Nov 2014 17:45:29 +0000 (18:45 +0100)]
pr45852.c: Simplify target selector.

* gcc.target/i386/pr45852.c: Simplify target selector.
* gcc.target/i386/pr63495.c: Ditto.
* gcc.target/i386/pr39496.c: Ditto.
* gcc.target/i386/pr36613.c: Ditto.

From-SVN: r217432

9 years ago[AArch64] Let LR register alloctable
Jiong Wang [Wed, 12 Nov 2014 17:15:57 +0000 (17:15 +0000)]
[AArch64] Let LR register alloctable

  gcc/
    * config/aarch64/aarch64.h (CALL_USED_REGISTERS): Mark LR as caller-save.
    (EPILOGUE_USES): Guard the check by epilogue_completed.
    * config/aarch64/aarch64.c (aarch64_layout_frame): Explictly check for LR.
    (aarch64_can_eliminate): Check LR_REGNUM liveness.

  gcc/testsuite/
    * gcc.target/aarch64/lr_free_1.c: New testcase for -fomit-frame-pointer.
    * gcc.target/aarch64/lr_free_2.c: New testcase for leaf
    -fno-omit-frame-pointer.

From-SVN: r217431

9 years agoFix typo in *<arith_shift_insn>_shiftsi
Ramana Radhakrishnan [Wed, 12 Nov 2014 17:07:12 +0000 (17:07 +0000)]
Fix typo in *<arith_shift_insn>_shiftsi

From-SVN: r217430

9 years agoCast strtol return to unsigned long
Kirill Yukhin [Wed, 12 Nov 2014 16:24:30 +0000 (16:24 +0000)]
Cast strtol return to unsigned long

* testsuite/test-strtol.c (run_tests): Cast strtol return to
unsigned long.

From-SVN: r217429

9 years agogcc-dg.exp (${tool}_load): Call prune_file_path instead of prune_gcc_output.
Marek Polacek [Wed, 12 Nov 2014 15:48:54 +0000 (15:48 +0000)]
gcc-dg.exp (${tool}_load): Call prune_file_path instead of prune_gcc_output.

* lib/gcc-dg.exp (${tool}_load): Call prune_file_path instead
of prune_gcc_output.
* lib/prune.exp (prune_file_path): New procedure.

From-SVN: r217428

9 years agofold-const.c (fold_binary_loc): Don't fold if the result is undefined.
Marek Polacek [Wed, 12 Nov 2014 14:36:41 +0000 (14:36 +0000)]
fold-const.c (fold_binary_loc): Don't fold if the result is undefined.

* fold-const.c (fold_binary_loc): Don't fold if the result
is undefined.
* match.pd (A + (-B) -> A - B, A - (-B) -> A + B,
-(-A) -> A): Likewise.

* c-c++-common/ubsan/overflow-sub-4.c: New test.
* c-c++-common/ubsan/overflow-sub-2.c: Adjust dg-output.
* c-c++-common/ubsan/overflow-int128.c: Likewise.

From-SVN: r217427

9 years agopr52252-atom-1.c: Extend assembler scan on AVX2 case.
Evgeny Stupachenko [Wed, 12 Nov 2014 14:33:18 +0000 (14:33 +0000)]
pr52252-atom-1.c: Extend assembler scan on AVX2 case.

gcc/testsuite

* gcc.target/i386/pr52252-atom-1.c: Extend assembler scan on AVX2 case.

From-SVN: r217423

9 years ago[multiple changes]
Richard Biener [Wed, 12 Nov 2014 14:29:14 +0000 (14:29 +0000)]
[multiple changes]

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

Merge from match-and-simplify branch
2014-11-04  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* genmatch.c (user_id): Add new member is_oper_list.
(user_id::user_id): Add new default argument.
(parser::parse_operator_list): New function.
(parser::parse_for): Allow operator-list.
(parser::parse_pattern): Call parser::parse_operator_list.
(parser::parse_operation): Reject operator-list.
* match-builtin.pd: Define operator lists POWs, CBRTs and SQRTs.

2014-10-31  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* genmatch.c (parser::parse_c_expr): Mark user-defined ops as used.

2014-10-30  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* genmatch.c (parser::parse_op): Check if predicate is used in
result operand.

2014-10-29  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* genmatch.c (parser::parse_for): Make sure to have a valid
token to report errors at.

2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* genmatch.c (parser): Add new member parsing_match_operand.
(parser::parse_operation): Check for conditional convert in result
operand.
(parser::parse_expr): Check for commutative operator in result operand.
Check for :type in match operand.
(parser::parse_simplify): Set/unset parsing_match_operand.
(parser::parser): Initialize parsing_match_operand.

2014-10-28  Richard Biener  <rguenther@suse.de>

* genmatch.c (parser::parse_for): Properly check for already
defined operators.

2014-10-28  Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

* genmatch.c (error_cb): Adjust for printing warnings.
(warning_at): New function.
(user_id): Add new member used.
(get_operator): Mark user_id as used.
(parse_for): Warn for unused operators.

From-SVN: r217422

9 years agomatch.pd: Implement simple complex operations cancelling.
Richard Biener [Wed, 12 Nov 2014 13:45:48 +0000 (13:45 +0000)]
match.pd: Implement simple complex operations cancelling.

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

* match.pd: Implement simple complex operations cancelling.
* fold-const.c (fold_unary_loc): Remove them here.

* gcc.dg/tree-ssa/ssa-fre-32.c: Disable forwprop.

From-SVN: r217421

9 years agoPredefine __NO_MATH_ERRNO__ for -fno-math-errno.
Joseph Myers [Wed, 12 Nov 2014 13:33:45 +0000 (13:33 +0000)]
Predefine __NO_MATH_ERRNO__ for -fno-math-errno.

This patch adds a predefined macro __NO_MATH_ERRNO__ for when
-fno-math-errno is passed or implied.  This allows math.h to provide a
more accurate definition of the C99 math_errhandling macro that takes
this option into account, and allows for choice of libm functions to
be optimized at compile time based on this option.

(There may be a case for such interfaces for -fno-rounding-math
(default) and -fno-trapping-math as well, but as C99 standard pragmas
would allow those to vary on a per-block basis, predefined macros
would be problematic as the interface; you can't select a
-fno-trapping-math or -fno-rounding-math version of a function in a
standard header if a conforming program could then use "#pragma STDC
FENV_ACCESS ON" to require a -ftrapping-math -frounding-math version
in a particular block.  So built-in functions might be a better way of
providing access to information about those options.)

Bootstrapped with no regressions on x86_64-unknown-linux-gnu.  OK to
commit?

* cppbuiltin.c (define_builtin_macros_for_compilation_flags):
Define __NO_MATH_ERRNO__ if -fno-math-errno.
* doc/cpp.texi (__NO_MATH_ERRNO__): Document predefined macro.

c-family:
* c-cppbuiltin.c (c_cpp_builtins_optimize_pragma): Define and
undefine __NO_MATH_ERRNO__ based on changes to -fmath-errno state.

testsuite:
* gcc.dg/no-math-errno-1.c, gcc.dg/no-math-errno-2.c,
gcc.dg/no-math-errno-3.c, gcc.dg/no-math-errno-4.c: New tests.

From-SVN: r217420

9 years agoAvoid tail call in c-c++-common/asan/strlen-overflow-1.c
H.J. Lu [Wed, 12 Nov 2014 12:54:00 +0000 (12:54 +0000)]
Avoid tail call in c-c++-common/asan/strlen-overflow-1.c

PR testsuite/63830
* c-c++-common/asan/strlen-overflow-1.c (main): Avoid tail call.

From-SVN: r217417

9 years agogenmatch.c (::gen_transform): Add capture_info and expand_compares arguments.
Richard Biener [Wed, 12 Nov 2014 12:49:14 +0000 (12:49 +0000)]
genmatch.c (::gen_transform): Add capture_info and expand_compares arguments.

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

* genmatch.c (::gen_transform): Add capture_info and
expand_compares arguments.
(struct expr): Add is_generic flag.
(lower_cond): New functions lowering [VEC_]COND_EXPR
conditions to a GENERIC and a GIMPLE variant.
(lower): Call lower_cond.
(cmp_operand): Also compare the is_generic flag.
(capture_info::cinfo): Add cond_expr_cond_p flag.
(capture_info::capture_info): Pass down whether the
expression argument is a COND_EXPR condition.
(capture_info::walk_match): Likewise, mark captures
capturing COND_EXPR conditions with cond_expr_cond_p.
(expr::gen_transform): Pass down whether we need to
expand compares from COND_EXPR conditions.
(capture::gen_transform): Expand compares substituted
from COND_EXPR conditions into non-COND_EXPR conditions.
(dt_operand::gen_gimple_expr): Handle explicitely marked
GENERIC expressions as generic.
(dt_simplify::gen): Pass whether we need to expand
conditions to gen_transform.  Handle capture results
which are from COND_EXPR conditions.
(main): Pass gimple flag down to lower.

From-SVN: r217416

9 years agore PR c/59708 (clang-compatible checked arithmetic builtins)
Jakub Jelinek [Wed, 12 Nov 2014 12:28:06 +0000 (13:28 +0100)]
re PR c/59708 (clang-compatible checked arithmetic builtins)

PR c/59708
* builtin-attrs.def (ATTR_NOTHROW_TYPEGENERIC_LEAF): New attribute.
* builtins.c (fold_builtin_arith_overflow): New function.
(fold_builtin_3): Use it.
* builtins.def (BUILT_IN_ADD_OVERFLOW, BUILT_IN_SUB_OVERFLOW,
BUILT_IN_MUL_OVERFLOW, BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW,
BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW,
BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW,
BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW,
BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADDL_OVERFLOW,
BUILT_IN_UADDLL_OVERFLOW, BUILT_IN_USUB_OVERFLOW,
BUILT_IN_USUBL_OVERFLOW, BUILT_IN_USUBLL_OVERFLOW,
BUILT_IN_UMUL_OVERFLOW, BUILT_IN_UMULL_OVERFLOW,
BUILT_IN_UMULLL_OVERFLOW): New built-in functions.
* builtin-types.def (BT_PTR_UINT, BT_PTR_ULONG, BT_PTR_LONGLONG,
BT_FN_BOOL_INT_INT_INTPTR, BT_FN_BOOL_LONG_LONG_LONGPTR,
BT_FN_BOOL_LONGLONG_LONGLONG_LONGLONGPTR, BT_FN_BOOL_UINT_UINT_UINTPTR,
BT_FN_BOOL_ULONG_ULONG_ULONGPTR,
BT_FN_BOOL_ULONGLONG_ULONGLONG_ULONGLONGPTR, BT_FN_BOOL_VAR): New.
* expr.c (write_complex_part): Remove prototype, no longer static.
* expr.h (write_complex_part): New prototype.
* function.c (aggregate_value_p): For internal functions return 0.
* gimple-fold.c (arith_overflowed_p): New functions.
(gimple_fold_call): Fold {ADD,SUB,MUL}_OVERFLOW internal calls.
* gimple-fold.h (arith_overflowed_p): New prototype.
* tree-ssa-dce.c: Include tree-ssa-propagate.h and gimple-fold.h.
(find_non_realpart_uses, maybe_optimize_arith_overflow): New
functions.
(eliminate_unnecessary_stmts): Transform {ADD,SUB,MUL}_OVERFLOW
into COMPLEX_CST/COMPLEX_EXPR if IMAGPART_EXPR of the result is
never used.
* gimplify.c (gimplify_call_expr): Handle gimplification of
internal calls with lhs.
* internal-fn.c (get_range_pos_neg, get_min_precision,
expand_arith_overflow_result_store): New functions.
(ubsan_expand_si_overflow_addsub_check): Renamed to ...
(expand_addsub_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
Handle ADD_OVERFLOW and SUB_OVERFLOW expansion.
(ubsan_expand_si_overflow_neg_check): Renamed to ...
(expand_neg_overflow): ... this.  Add LOC, LHS, ARG1, IS_UBSAN
arguments, remove STMT argument.  Handle SUB_OVERFLOW with
0 as first argument expansion.
(ubsan_expand_si_overflow_mul_check): Renamed to ...
(expand_mul_overflow): ... this.  Add LOC, LHS, ARG0, ARG1,
UNSR_P, UNS0_P, UNS1_P, IS_UBSAN arguments, remove STMT argument.
Handle MUL_OVERFLOW expansion.
(expand_UBSAN_CHECK_ADD): Use expand_addsub_overflow, prepare
arguments for it.
(expand_UBSAN_CHECK_SUB): Use expand_addsub_overflow or
expand_neg_overflow, prepare arguments for it.
(expand_UBSAN_CHECK_MUL): Use expand_mul_overflow, prepare arguments
for it.
(expand_arith_overflow, expand_ADD_OVERFLOW, expand_SUB_OVERFLOW,
expand_MUL_OVERFLOW): New functions.
* internal-fn.def (ADD_OVERFLOW, SUB_OVERFLOW, MUL_OVERFLOW): New
internal functions.
* tree-vrp.c (check_for_binary_op_overflow): New function.
(extract_range_basic): Handle {REAL,IMAG}PART_EXPR if the operand
is SSA_NAME set by {ADD,SUB,MUL}_OVERFLOW internal functions.
(simplify_internal_call_using_ranges): Handle {ADD,SUB,MUL}_OVERFLOW
internal functions.
* optabs.def (umulv4_optab): New optab.
* config/i386/i386.md (umulv<mode>4, <u>mulvqi4): New define_expands.
(*umulv<mode>4, *<u>mulvqi4): New define_insns.
* doc/extend.texi (Integer Overflow Builtins): Document
__builtin_*_overflow.
c-family/
* c-common.c (check_builtin_function_arguments): Handle
BUILT_IN_{ADD,SUB,MUL}_OVERFLOW.
testsuite/
* c-c++-common/builtin-arith-overflow-1.c: New test.
* c-c++-common/torture/builtin-arith-overflow-10.c: New test.
* c-c++-common/torture/builtin-arith-overflow-11.c: New test.
* c-c++-common/torture/builtin-arith-overflow-12.c: New test.
* c-c++-common/torture/builtin-arith-overflow-12.h: New file.
* c-c++-common/torture/builtin-arith-overflow-13.c: New test.
* c-c++-common/torture/builtin-arith-overflow-14.c: New test.
* c-c++-common/torture/builtin-arith-overflow-15.c: New test.
* c-c++-common/torture/builtin-arith-overflow-16.c: New test.
* c-c++-common/torture/builtin-arith-overflow-17.c: New test.
* c-c++-common/torture/builtin-arith-overflow-18.c: New test.
* c-c++-common/torture/builtin-arith-overflow-1.c: New test.
* c-c++-common/torture/builtin-arith-overflow-1.h: New file.
* c-c++-common/torture/builtin-arith-overflow-2.c: New test.
* c-c++-common/torture/builtin-arith-overflow-3.c: New test.
* c-c++-common/torture/builtin-arith-overflow-4.c: New test.
* c-c++-common/torture/builtin-arith-overflow-5.c: New test.
* c-c++-common/torture/builtin-arith-overflow-6.c: New test.
* c-c++-common/torture/builtin-arith-overflow-7.c: New test.
* c-c++-common/torture/builtin-arith-overflow-8.c: New test.
* c-c++-common/torture/builtin-arith-overflow-9.c: New test.
* c-c++-common/torture/builtin-arith-overflow.h: New file.
* gcc.dg/builtin-arith-overflow-1.c: New test.
* gcc.dg/builtin-arith-overflow-2.c: New test.

From-SVN: r217415

9 years agogenmatch.c (capture_info::capture_info): Add missing COND_EXPR handling.
Richard Biener [Wed, 12 Nov 2014 11:59:40 +0000 (11:59 +0000)]
genmatch.c (capture_info::capture_info): Add missing COND_EXPR handling.

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

* genmatch.c (capture_info::capture_info): Add missing
COND_EXPR handling.
(capture_info::walk_match): Fix COND_EXPR handling.
(capture_info::walk_result): Likewise.

From-SVN: r217414

9 years agoLWG DR 2315. weak_ptr should be movable
Jonathan Wakely [Wed, 12 Nov 2014 11:54:08 +0000 (11:54 +0000)]
LWG DR 2315. weak_ptr should be movable

* include/bits/shared_ptr.h (weak_ptr): Add move constructor and
assignment.
* include/bits/shared_ptr_base.h (__weak_count, __weak_ptr): Likewise.
Use nullptr and injected class name.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Adjust dg-error.

From-SVN: r217413

9 years agoAdd -Wno-deprecated to dg-options.
Jonathan Wakely [Wed, 12 Nov 2014 10:32:17 +0000 (10:32 +0000)]
Add -Wno-deprecated to dg-options.

PR c++/33911
* testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Use -Wno-deprecated.
* testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
* testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise.
* testsuite/ext/array_allocator/variadic_construct.cc: Likewise.

From-SVN: r217412

9 years agore PR bootstrap/63821 (ICE in verify_gimple during libgcc build starting with r217349)
Richard Biener [Wed, 12 Nov 2014 10:13:48 +0000 (10:13 +0000)]
re PR bootstrap/63821 (ICE in verify_gimple during libgcc build starting with r217349)

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

PR middle-end/63821
* match.pd: Add missing conversion to the -(T)-X pattern.

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

From-SVN: r217411

9 years agore PR middle-end/63819 (Cannot build compiler with --enable-gather-detailed-mem-stats...
Richard Biener [Wed, 12 Nov 2014 10:12:47 +0000 (10:12 +0000)]
re PR middle-end/63819 (Cannot build compiler with --enable-gather-detailed-mem-stats (error: default argument given for parameter 5 of ‘void* ggc_internal_cleared_alloc))

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

PR bootstrap/63819
* hash-table.h: Include ggc.h also for generator programs.
* genmatch.c (ggc_internal_cleared_alloc): Properly define
using MEM_STAT_DECL instead of CXX_MEM_STAT_INFO.

From-SVN: r217410

9 years ago[multiple changes]
Thomas Preud'homme [Wed, 12 Nov 2014 09:50:20 +0000 (09:50 +0000)]
[multiple changes]

2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/63761
    * tree-ssa-math-opts.c (bswap_replace): Construct gsi from cur_stmt
    rather than taking it as a parameter. Add some comments to explain the
    gsi_move_before in case of load and why canonicalization of bswap into
    a rotation is only done for 16bit values.
    (pass_optimize_bswap::execute): Adapt for loop via gsi to make gsi
    refer to the statement just before cur_stmt. Ignore 16bit bswap that
    are already in canonical form. Adapt bswap_replace to removal of its
    gsi parameter.

    2014-11-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    PR tree-optimization/63761
    * gcc.c-torture/compile/pr63761.c: New test.

From-SVN: r217409

9 years ago[PATCH][dejagnu] truncate absolute file path into relative for dg-output
Jiong Wang [Wed, 12 Nov 2014 09:37:01 +0000 (09:37 +0000)]
[PATCH][dejagnu] truncate absolute file path into relative for dg-output

  gcc/testsuite/
    * lib/gcc-dg.exp (${tool}_load): Truncate gcc output.
    * lib/prune.exp (prune_gcc_output): New absolute path to relative path
    truncation pattern.

From-SVN: r217408

9 years agortl.h (rtx_function, [...]): Delete.
Richard Sandiford [Wed, 12 Nov 2014 09:05:29 +0000 (09:05 +0000)]
rtl.h (rtx_function, [...]): Delete.

gcc/
* rtl.h (rtx_function, for_each_rtx, for_each_rtx_in_insn): Delete.
* rtlanal.c (non_rtx_starting_operands, for_each_rtx_1, for_each_rtx):
(for_each_rtx_in_insn): Delete.
(init_rtlanal): Remove initialization of non_rtx_starting_operands.
* df-core.c: Remove reference to for_each_rtx in comment.

From-SVN: r217407

9 years ago[AArch64] Remove unnecessary files.
Tejas Belagod [Wed, 12 Nov 2014 08:46:05 +0000 (08:46 +0000)]
[AArch64] Remove unnecessary files.

2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>

        * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
        arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
        * doc/aarch64-acle-intrinsics.texi: Remove.
        * doc/arm-acle-intrinsics.texi: Remove.
        * doc/arm-neon-intrinsics.texi: Remove.
        * doc/extend.texi: Consolidate sections AArch64 intrinsics,
        ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
        Extension section. Add references to public ACLE specification.

From-SVN: r217406

9 years ago[AArch64] Add reference to ACLE and consolidate documentation.
Tejas Belagod [Wed, 12 Nov 2014 08:42:41 +0000 (08:42 +0000)]
[AArch64] Add reference to ACLE and consolidate documentation.

2014-11-12  Tejas Belagod  <tejas.belagod@arm.com>

        * Makefile.in (TEXI_GCC_FILES): Remove arm-acle-intrinsics.texi,
        arm-neon-intrinsics.texi, aarch64-acle-intrinsics.texi.
        * doc/aarch64-acle-intrinsics.texi: Remove.
        * doc/arm-acle-intrinsics.texi: Remove.
        * doc/arm-neon-intrinsics.texi: Remove.
        * doc/extend.texi: Consolidate sections AArch64 intrinsics,
        ARM NEON Intrinsics, ARM ACLE Intrinsics into one ARM C Language
        Extension section. Add references to public ACLE specification.

From-SVN: r217405

9 years agolibgo: Update libtool support to files in current GCC trunk.
Ian Lance Taylor [Wed, 12 Nov 2014 03:51:36 +0000 (03:51 +0000)]
libgo: Update libtool support to files in current GCC trunk.

From-SVN: r217404

9 years agoeabi1.c: Replace arm*-*-*eabi* and arm*-*-symbianelf* with arm_eabi.
Andreas Tobler [Wed, 12 Nov 2014 03:06:14 +0000 (04:06 +0100)]
eabi1.c: Replace arm*-*-*eabi* and arm*-*-symbianelf* with arm_eabi.

2014-11-12  Andreas Tobler  <andreast@gcc.gnu.org>

        * gcc.target/arm/eabi1.c: Replace arm*-*-*eabi* and arm*-*-symbianelf*
with arm_eabi.
* g++.dg/abi/arm_rtti1.C: Likewise.
* g++.dg/abi/key1.C: Likewise.
* g++.dg/ext/visibility/arm1.C: Likewise.
* g++.dg/ext/visibility/arm2.C: Likewise.
* g++.dg/ext/visibility/arm3.C: Likewise.

From-SVN: r217403

9 years agoFix dump scanning in g++.dg/ipa/devirt-42.C
H.J. Lu [Wed, 12 Nov 2014 02:05:06 +0000 (02:05 +0000)]
Fix dump scanning in g++.dg/ipa/devirt-42.C

* g++.dg/ipa/devirt-42.C: Fix dump scanning for "return 2".

From-SVN: r217402

9 years ago1.cc: Remove unused header.
Jonathan Wakely [Wed, 12 Nov 2014 00:34:19 +0000 (00:34 +0000)]
1.cc: Remove unused header.

* testsuite/experimental/optional/constexpr/observers/1.cc: Remove
unused header.
* testsuite/experimental/optional/constexpr/observers/2.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/3.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/4.cc: Likewise.
* testsuite/experimental/optional/constexpr/observers/5.cc: Likewise.

From-SVN: r217401

9 years agoVRP: Simplify logic for checking if any asserts need to be inserted
Patrick Palka [Wed, 12 Nov 2014 00:29:33 +0000 (00:29 +0000)]
VRP: Simplify logic for checking if any asserts need to be inserted

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

* tree-vrp.c (register_edge_assert_for_2): Change return type to
void and adjust accordingly.
(register_edge_assert_for_1): Likewise.
(register_edge_assert_for): Likewise.
(find_conditional_asserts): Likewise.
(find_switch_asserts): Likewise.
(find_assert_locations_1): Likewise.
(find_assert_locations): Likewise.
(insert_range_insertions): Inspect the need_assert_for bitmap.

From-SVN: r217400

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

From-SVN: r217399

9 years agooptional (_Has_addressof): Check for non-member operator&.
Jonathan Wakely [Wed, 12 Nov 2014 00:16:19 +0000 (00:16 +0000)]
optional (_Has_addressof): Check for non-member operator&.

* include/experimental/optional (_Has_addressof): Check for non-member
operator&.
* testsuite/experimental/optional/observers/2.cc: Add operator&.
* testsuite/experimental/optional/constexpr/observers/2.cc: Likewise.

From-SVN: r217397

9 years agoDefine __void_t and SFINAE-friendly iterator_traits.
Jonathan Wakely [Tue, 11 Nov 2014 23:57:35 +0000 (23:57 +0000)]
Define __void_t and SFINAE-friendly iterator_traits.

* include/std/type_traits (__void_t): Define new alias template.
(_GLIBCXX_HAS_NESTED_TYPE): Redefine using __void_t.
* include/std/functional (_Maybe_get_result_type): Likewise.
* include/bits/stl_iterator_base_types.h (__iterator_traits): Likewise.
* include/bits/uses_allocator.h (__uses_allocator_helper): Likewise.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
* testsuite/20_util/reference_wrapper/typedefs-3.cc: Adjust to changes
in _GLIBCXX_HAS_NESTED_TYPE.

From-SVN: r217395

9 years agoBug target/61997
Andrew Pinski [Tue, 11 Nov 2014 23:40:03 +0000 (23:40 +0000)]
Bug target/61997

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

        Bug target/61997
        * config.gcc (aarch64*-*-*): Set target_gtfiles to include
        aarch64-builtins.c.
        * config/aarch64/aarch64-builtins.c: Include gt-aarch64-builtins.h
        at the end of the file.

From-SVN: r217394

9 years agoMake std::mem_fn work with varargs functions.
Jonathan Wakely [Tue, 11 Nov 2014 23:38:34 +0000 (23:38 +0000)]
Make std::mem_fn work with varargs functions.

* include/std/functional (_Mem_fn_traits): Add partial specializations
for varargs functions.
(_Mem_fn_base): Do not check arguments are convertible for varargs.
(_Bind_check_arity): Add partial specializations for varargs functions.
* include/std/type_traits (__bool_constant): Add alias template.
* testsuite/20_util/bind/ref_neg.cc: Adjust dg-error.
* testsuite/20_util/bind/refqual.cc: New, test ref-qualifiers.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error.
* testsuite/20_util/function_objects/mem_fn/refqual.cc: Test varargs.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
dg-error.

From-SVN: r217393

9 years agore PR driver/36312 (should refuse to overwrite input file with output file)
Anthony Brandon [Tue, 11 Nov 2014 23:33:25 +0000 (23:33 +0000)]
re PR driver/36312 (should refuse to overwrite input file with output file)

gcc/testsuite/ChangeLog:

2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
    Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR driver/36312
* gcc.misc-tests/output.exp: New test case for identical input and
output files.

include/ChangeLog:

2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
    Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR driver/36312
* filenames.h: Add prototype for canonical_filename_eq.

gcc/ChangeLog:

2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
    Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR driver/36312
* diagnostic-core.h: Add prototype for fatal_error.
* diagnostic.c (fatal_error): New function fatal_error.
* gcc.c (store_arg): Remove have_o_argbuf_index.
(process_command): Check if input and output files are the same.
* toplev.c (init_asm_output): Check if input and output files are
the same.

libiberty/ChangeLog:

2014-11-11  Anthony Brandon  <anthony.brandon@gmail.com>
    Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR driver/36312
* filename_cmp.c (canonical_filename_eq): New function to check if
file names are the same.
* functions.texi: Updated with documentation for new function.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r217391

9 years agore PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagn...
Manuel López-Ibáñez [Tue, 11 Nov 2014 22:50:48 +0000 (22:50 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)

libcpp/ChangeLog:

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

PR fortran/44054
* include/line-map.h (linemap_position_for_loc_and_offset):
Declare.
* line-map.c (linemap_position_for_loc_and_offset): New.

gcc/fortran/ChangeLog:

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

PR fortran/44054
* gfortran.h (warn_use_without_only): Remove.
(gfc_diagnostics_finish): Declare.
* error.c: Include tree-diagnostics.h
(gfc_format_decoder): New.
(gfc_diagnostics_init): Use gfc_format_decoder. Set default caret
char.
(gfc_diagnostics_finish): Restore tree diagnostics defaults, but
keep gfc_diagnostics_starter and finalizer. Restore default caret.
* options.c: Remove all uses of warn_use_without_only.
* lang.opt (Wuse-without-only): Add Var.
* f95-lang.c (gfc_be_parse_file): Call gfc_diagnostics_finish.
* module.c (gfc_use_module): Use gfc_warning_now_2.
* parse.c (decode_statement): Likewise.
(decode_gcc_attribute): Likewise.
(next_free): Likewise.
(next_fixed): Likewise.

gcc/testsuite/ChangeLog:

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

PR fortran/44054
* lib/gfortran-dg.exp: Update regexp to match locus and message
without caret.
* gfortran.dg/use_without_only_1.f90: Add column numbers.
        * gfortran.dg/warnings_are_errors_1.f: Update.

From-SVN: r217383

9 years ago* reorg.c (fill_slots_from_thread): Do not copy frame-related insns.
Eric Botcazou [Tue, 11 Nov 2014 22:31:09 +0000 (22:31 +0000)]
* reorg.c (fill_slots_from_thread): Do not copy frame-related insns.

From-SVN: r217381

9 years agoassociative-containers.cc: Add new file missed from earlier commit.
Siva Chandra Reddy [Tue, 11 Nov 2014 22:10:21 +0000 (22:10 +0000)]
associative-containers.cc: Add new file missed from earlier commit.

2014-11-11  Siva Chandra Reddy  <sivachandra@google.com>

* testsuite/libstdc++-xmethods/associative-containers.cc: Add new
file missed from earlier commit.

From-SVN: r217378

9 years agore PR target/61535 (SIGBUS in gen_group_rtx compiling 64-bit gcc.dg/vect/vect-singlet...
Eric Botcazou [Tue, 11 Nov 2014 22:09:40 +0000 (22:09 +0000)]
re PR target/61535 (SIGBUS in gen_group_rtx compiling 64-bit gcc.dg/vect/vect-singleton_1.c)

PR target/61535
* config/sparc/sparc.c (function_arg_vector_value): Deal with vectors
smaller than 8 bytes.
(sparc_function_arg_1): Tweak.
(sparc_function_value_1): Tweak.

From-SVN: r217377

9 years agoMerger of dmalcolm/jit branch from git
David Malcolm [Tue, 11 Nov 2014 21:55:52 +0000 (21:55 +0000)]
Merger of dmalcolm/jit branch from git

ChangeLog:
* ChangeLog.jit: New.
* MAINTAINERS (Various Maintainers): Add myself as jit maintainer.

contrib/ChangeLog:
* ChangeLog.jit: New.
* jit-coverage-report.py: New file: a script to print crude
code-coverage information for the libgccjit API.

gcc/ChangeLog:
* ChangeLog.jit: New.
* Makefile.in (doc_build_sys): New variable, set to "sphinx" if
sphinx is installed, falling back to "texinfo" otherwise.
(FULL_DRIVER_NAME): New variable, adapted from the
install-driver target.  New target, a symlink within the builddir,
linked to "xgcc", for use when running the JIT library from the
builddir.
(MOSTLYCLEANFILES): Add FULL_DRIVER_NAME.
(install-driver): Use $(FULL_DRIVER_NAME) rather than spelling it
out.
* configure.ac (doc_build_sys): New variable, set to "sphinx" if
sphinx is installed, falling back to "texinfo" otherwise.
(GCC_DRIVER_NAME): Generate a gcc-driver-name.h file containing
GCC_DRIVER_NAME for the benefit of jit/internal-api.c.
* configure: Regenerate.
* doc/install.texi (--enable-host-shared): Specify that this is
required when building libgccjit.
(Tools/packages necessary for modifying GCC): Add Sphinx.
* timevar.def (TV_JIT_REPLAY): New.
(TV_ASSEMBLE): New.
(TV_LINK): New.
(TV_LOAD): New.

gcc/java/ChangeLog:
* gcc/ChangeLog.jit: New.

gcc/jit/ChangeLog:
* ChangeLog.jit: New.
* ChangeLog: New.
* Make-lang.in: New.
* TODO.rst: New.
* config-lang.in: New.
* docs/Makefile: New.
* docs/_build/texinfo/Makefile: New.
* docs/_build/texinfo/factorial.png: New.
* docs/_build/texinfo/libgccjit.texi: New.
* docs/_build/texinfo/sum-of-squares.png: New.
* docs/conf.py: New.
* docs/examples/tut01-hello-world.c: New.
* docs/examples/tut02-square.c: New.
* docs/examples/tut03-sum-of-squares.c: New.
* docs/examples/tut04-toyvm/Makefile: New.
* docs/examples/tut04-toyvm/factorial.toy: New.
* docs/examples/tut04-toyvm/fibonacci.toy: New.
* docs/examples/tut04-toyvm/toyvm.c: New.
* docs/index.rst: New.
* docs/internals/index.rst: New.
* docs/intro/factorial.png: New.
* docs/intro/index.rst: New.
* docs/intro/sum-of-squares.png: New.
* docs/intro/tutorial01.rst: New.
* docs/intro/tutorial02.rst: New.
* docs/intro/tutorial03.rst: New.
* docs/intro/tutorial04.rst: New.
* docs/topics/contexts.rst: New.
* docs/topics/expressions.rst: New.
* docs/topics/functions.rst: New.
* docs/topics/index.rst: New.
* docs/topics/locations.rst: New.
* docs/topics/objects.rst: New.
* docs/topics/results.rst: New.
* docs/topics/types.rst: New.
* dummy-frontend.c: New.
* jit-builtins.c: New.
* jit-builtins.h: New.
* jit-common.h: New.
* jit-playback.c: New.
* jit-playback.h: New.
* jit-recording.c: New.
* jit-recording.h: New.
* libgccjit++.h: New.
* libgccjit.c: New.
* libgccjit.h: New.
* libgccjit.map: New.
* notes.txt: New.

gcc/testsuite/ChangeLog:
* ChangeLog.jit: New.
* jit.dg/all-non-failing-tests.h: New.
* jit.dg/harness.h: New.
* jit.dg/jit.exp: New.
* jit.dg/test-accessing-struct.c: New.
* jit.dg/test-accessing-union.c: New.
* jit.dg/test-array-as-pointer.c: New.
* jit.dg/test-arrays.c: New.
* jit.dg/test-calling-external-function.c: New.
* jit.dg/test-calling-function-ptr.c: New.
* jit.dg/test-combination.c: New.
* jit.dg/test-dot-product.c: New.
* jit.dg/test-empty.c: New.
* jit.dg/test-error-accessing-field-in-other-struct.c: New.
* jit.dg/test-error-adding-to-terminated-block.c: New.
* jit.dg/test-error-array-as-pointer.c: New.
* jit.dg/test-error-bad-cast.c: New.
* jit.dg/test-error-block-in-wrong-function.c: New.
* jit.dg/test-error-call-through-ptr-with-mismatching-args.c: New.
* jit.dg/test-error-call-through-ptr-with-non-function.c: New.
* jit.dg/test-error-call-through-ptr-with-non-pointer.c: New.
* jit.dg/test-error-call-through-ptr-with-not-enough-args.c: New.
* jit.dg/test-error-call-through-ptr-with-too-many-args.c: New.
* jit.dg/test-error-call-with-mismatching-args.c: New.
* jit.dg/test-error-call-with-not-enough-args.c: New.
* jit.dg/test-error-call-with-too-many-args.c: New.
* jit.dg/test-error-dereference-field-of-non-pointer.c: New.
* jit.dg/test-error-dereference-read-of-non-pointer.c: New.
* jit.dg/test-error-get-type-bad-enum.c: New.
* jit.dg/test-error-index-not-a-numeric-type.c: New.
* jit.dg/test-error-mismatching-types-in-assignment.c: New.
* jit.dg/test-error-mismatching-types-in-call.c: New.
* jit.dg/test-error-missing-return.c: New.
* jit.dg/test-error-new-binary-op-bad-op.c: New.
* jit.dg/test-error-new-function-bad-kind.c: New.
* jit.dg/test-error-new-unary-op-bad-op.c: New.
* jit.dg/test-error-null-passed-to-api.c: New.
* jit.dg/test-error-return-within-void-function.c: New.
* jit.dg/test-error-unreachable-block.c: New.
* jit.dg/test-error-unterminated-block.c: New.
* jit.dg/test-error-value-not-a-numeric-type.c: New.
* jit.dg/test-expressions.c: New.
* jit.dg/test-factorial.c: New.
* jit.dg/test-fibonacci.c: New.
* jit.dg/test-functions.c: New.
* jit.dg/test-fuzzer.c: New.
* jit.dg/test-hello-world.c: New.
* jit.dg/test-linked-list.c: New.
* jit.dg/test-long-names.c: New.
* jit.dg/test-nested-contexts.c: New.
* jit.dg/test-nested-loops.c: New.
* jit.dg/test-operator-overloading.cc: New.
* jit.dg/test-quadratic.c: New.
* jit.dg/test-quadratic.cc: New.
* jit.dg/test-reading-struct.c: New.
* jit.dg/test-string-literal.c: New.
* jit.dg/test-sum-of-squares.c: New.
* jit.dg/test-threads.c: New.
* jit.dg/test-types.c: New.
* jit.dg/test-using-global.c: New.
* jit.dg/test-volatile.c: New.

include/ChangeLog:
* ChangeLog.jit: New.

libbacktrace/ChangeLog:
* ChangeLog.jit: New.

libcpp/ChangeLog:
* ChangeLog.jit: New.

libdecnumber/ChangeLog:
* ChangeLog.jit: New.

libiberty/ChangeLog:
* ChangeLog.jit: New.

zlib/ChangeLog:
* ChangeLog.jit: New.

From-SVN: r217374

9 years agore PR libstdc++/61107 (stl_algo.h: std::__inplace_stable_partition() doesn't process...
François Dumont [Tue, 11 Nov 2014 21:21:10 +0000 (21:21 +0000)]
re PR libstdc++/61107 (stl_algo.h: std::__inplace_stable_partition() doesn't process the whole data range)

2014-11-11  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/61107
* include/bits/stl_algo.h (__inplace_stable_partition): Delete.
(__stable_partition_adaptive): Return __first if range length is 1.
(__stable_partition): Adapt.
* testsuite/util/testsuite_new_operators.h: New.
* testsuite/25_algorithms/stable_sort/1.cc: Test algo in simulated
constraint memory context.
* testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
* testsuite/25_algorithms/stable_partition/1.cc: Likewise.

From-SVN: r217370

9 years agore PR target/63610 (Fixing the libtool bug for Yosemite (darwin14))
Francois-Xavier Coudert [Tue, 11 Nov 2014 20:25:18 +0000 (20:25 +0000)]
re PR target/63610 (Fixing the libtool bug for Yosemite (darwin14))

toplevel:
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* libtool.m4: Fix globbing of darwin versions.

boehm-gc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

gcc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libatomic/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libbacktrace/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libcc1/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libcilkrts/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libffi/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libgfortran/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libgomp/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libitm/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libobjc/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libquadmath/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libsanitizer/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libssp/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libstdc++-v3/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libvtv/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

lto-plugin/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libjava/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

libjava/classpath/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

zlib/
2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR target/63610
* configure: Regenerate.

From-SVN: r217366

9 years agocloog.m4: Remove.
Tobias Burnus [Tue, 11 Nov 2014 18:54:16 +0000 (19:54 +0100)]
cloog.m4: Remove.

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

        * config/cloog.m4: Remove.
        * Makefile.def: Remove CLooG.
        * Makefile.tpl: Ditto.
        * configure.ac: Ditto.
        * configure: Regenerate.
        * Makefile.in: Ditto.

From-SVN: r217364

9 years ago[Patch AArch64] Fix up BSL expander for floating point types
James Greenhalgh [Tue, 11 Nov 2014 17:37:35 +0000 (17:37 +0000)]
[Patch AArch64] Fix up BSL expander for floating point types

gcc/

* config/aarch64/aarch64-simd.md
(aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
(aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
are punning between float vectors and integer vectors.

gcc/testsuite/

* gcc.target/aarch64/vbslq_f64_1.c: New.
* gcc.target/aarch64/vbslq_f64_2.c: Likewise.
* gcc.target/aarch64/vbslq_u64_1.c: Likewise.
* gcc.target/aarch64/vbslq_u64_2.c: Likewise.

From-SVN: r217362

9 years agore PR c++/63265 (Constexpr variables can trigger spurious compiler warnings)
Paolo Carlini [Tue, 11 Nov 2014 17:34:12 +0000 (17:34 +0000)]
re PR c++/63265 (Constexpr variables can trigger spurious compiler warnings)

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

PR c++/63265
* pt.c (tsubst_copy_and_build, case COND_EXPR): Maybe fold to
constant the condition.

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

PR c++/63265
* g++.dg/cpp0x/constexpr-63265.C: New.

From-SVN: r217361

9 years agoalpha.c (alpha_emit_conditional_branch): Replace open-coded swap with std::swap to...
Uros Bizjak [Tue, 11 Nov 2014 17:07:47 +0000 (18:07 +0100)]
alpha.c (alpha_emit_conditional_branch): Replace open-coded swap with std::swap to swap values.

* config/alpha/alpha.c (alpha_emit_conditional_branch): Replace
open-coded swap with std::swap to swap values.
(alpha_emit_setcc): Ditto.
(alpha_emit_conditional_move): Ditto.
(alpha_split_tmode_pair): Ditto.

From-SVN: r217360

9 years agotree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift permutations...
Evgeny Stupachenko [Tue, 11 Nov 2014 16:07:52 +0000 (16:07 +0000)]
tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift permutations on power of 2 cases.

gcc/

        * tree-vect-data-refs.c (vect_shift_permute_load_chain): Extend shift
permutations on power of 2 cases.

gcc/testsuites/

* gcc.target/i386/pr52252-atom-1.c: New.

From-SVN: r217359

9 years ago[AArch64] Properly guard CUMULATIVE_ARGS definition and remove 'enum' from machine_mo...
Kyrylo Tkachov [Tue, 11 Nov 2014 15:29:21 +0000 (15:29 +0000)]
[AArch64] Properly guard CUMULATIVE_ARGS definition and remove 'enum' from machine_mode in aarch64.h

* config/aarch64/aarch64.h (MACHMODE): Remove 'enum' keyword.
(CUMULATIVE_ARGS): Guard on !defined(USED_FOR_TARGET).

From-SVN: r217358

9 years agomklog: Symbol '}' stops search for changes.
Marat Zakirov [Tue, 11 Nov 2014 15:26:03 +0000 (15:26 +0000)]
mklog: Symbol '}' stops search for changes.

contrib/

2014-11-11  Marat Zakirov  <m.zakirov@samsung.com>

* mklog: Symbol '}' stops search for changes.

From-SVN: r217357

9 years agotree-core.h (pedantic_lvalues): Remove.
Richard Biener [Tue, 11 Nov 2014 15:21:12 +0000 (15:21 +0000)]
tree-core.h (pedantic_lvalues): Remove.

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

* tree-core.h (pedantic_lvalues): Remove.
* fold-const.c (pedantic_lvalues): Likewise.
(pedantic_non_lvalue_loc): Remove conditional non_lvalue_loc call.

c/
* c-decl.c (c_init_decl_processing): Do not set pedantic_lvalues
to true.

From-SVN: r217356

9 years agore PR bootstrap/63622 (Bootstrap fails on x86_64-apple-darwin1[34] after revision...
Martin Liska [Tue, 11 Nov 2014 14:58:21 +0000 (15:58 +0100)]
re PR bootstrap/63622 (Bootstrap fails on x86_64-apple-darwin1[34] after revision r216305)

PR ipa/63622

        PR ipa/63795
* g++.dg/ipa/ipa-icf-4.C: Add more precise dump scan.
* g++.dg/ipa/ipa-icf-5.C: Add condition for target
with symbol alias support.
* ipa-icf.c (sem_function::merge): Add new target symbol alias
support guard.
(sem_variable::merge): Likewise.
* ipa-icf.h (target_supports_symbol_aliases_p): New function.

From-SVN: r217355

9 years agomatch.pd: Implement patterns from associate_plusminus and factor in differences from...
Richard Biener [Tue, 11 Nov 2014 13:23:26 +0000 (13:23 +0000)]
match.pd: Implement patterns from associate_plusminus and factor in differences from the...

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

* match.pd: Implement patterns from associate_plusminus
and factor in differences from the fold-const.c implementation.
* fold-const.c (fold_binary_loc): Remove patterns here.
* tree-ssa-forwprop.c (associate_plusminus): Remove.
(pass_forwprop::execute): Don't call it.
* tree.c (tree_nop_conversion_p): New function, factored
from tree_nop_conversion.
* tree.h (tree_nop_conversion_p): Declare.

From-SVN: r217349

9 years agosystem.h: Include algorithm and utility.
Uros Bizjak [Tue, 11 Nov 2014 13:12:39 +0000 (14:12 +0100)]
system.h: Include algorithm and utility.

* system.h: Include algorithm and utility.
* rtl.h: Do not include utility here.
* wide-int.h: Ditto.
* tree-vect-data-refs.c (swap): Remove template.
(vect_prune_runtime_alias_test_list): Use std::swap instead of swap.

From-SVN: r217348

9 years agore PR ada/42978 (gnatmake doesn't report the options it actually provides to ranlib)
Simon Wright [Tue, 11 Nov 2014 11:58:26 +0000 (11:58 +0000)]
re PR ada/42978 (gnatmake doesn't report the options it actually provides to ranlib)

PR ada/42978
* mlib-utl.adb (ar): Output the options passed to ranlib.

From-SVN: r217346

9 years ago[Fortran] PR 63701 Make sure variable is always used initialised
Kyrylo Tkachov [Tue, 11 Nov 2014 11:52:36 +0000 (11:52 +0000)]
[Fortran] PR 63701 Make sure variable is always used initialised

PR fortran/63701
* trans-expr.c (gfc_get_tree_for_caf_expr): Initialise found to false.

From-SVN: r217345

9 years agoxmethods.py: Add xmethods for associative containers.
Siva Chandra Reddy [Tue, 11 Nov 2014 11:35:34 +0000 (11:35 +0000)]
xmethods.py: Add xmethods for associative containers.

2014-11-11  Siva Chandra Reddy  <sivachandra@google.com>

* python/libstdcxx/v6/xmethods.py: Add xmethods for associative
containers.
* testsuite/libstdc++-xmethods/associative-containers.cc: New file.

From-SVN: r217344

9 years agore PR libstdc++/63811 (r217322 breaks bootstrap)
Jonathan Wakely [Tue, 11 Nov 2014 10:41:46 +0000 (10:41 +0000)]
re PR libstdc++/63811 (r217322 breaks bootstrap)

PR libstdc++/63811
* include/bits/stl_deque.h (_Deque_base::_M_move_impl()): Avoid using
badname.

From-SVN: r217343

9 years agore PR bootstrap/63699 (Bootstrap fails in libcc1 on darwin14)
Francois-Xavier Coudert [Tue, 11 Nov 2014 09:20:07 +0000 (09:20 +0000)]
re PR bootstrap/63699 (Bootstrap fails in libcc1 on darwin14)

PR bootstrap/63699
PR bootstrap/63750

* system.h: Include <string> before "safe-ctype.h"
* wide-int.h (wi::smin, wi::smax, wi::umin, wi::umax): Prefix
calls to min/max with wi namespace.
* ipa-chkp.c: Don't include <string>.

* plugin.cc: Don't include <string>.

From-SVN: r217342

9 years agoinvoke.texi (-masm-syntax-unified): Reword and fix typo.
Terry Guo [Tue, 11 Nov 2014 09:18:35 +0000 (09:18 +0000)]
invoke.texi (-masm-syntax-unified): Reword and fix typo.

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

* doc/invoke.texi (-masm-syntax-unified): Reword and fix typo.
* config/arm/thumb1.md (*thumb_mulsi3): Use movs to move low
registers.
(*thumb1_movhf): Likewise.

From-SVN: r217341

9 years agosreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.
Uros Bizjak [Tue, 11 Nov 2014 08:53:08 +0000 (09:53 +0100)]
sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t) instead of INT64_MAX.

* sreal.c (sreal::to_int): Use INTTYPE_MAXIMUM (int64_t)
instead of INT64_MAX.

From-SVN: r217340

9 years agodownload_prerequisites: Stop downloading CLooG.
Tobias Burnus [Tue, 11 Nov 2014 06:55:31 +0000 (07:55 +0100)]
download_prerequisites: Stop downloading CLooG.

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

contrib/
        * download_prerequisites: Stop downloading CLooG.
gcc/
        * doc/install.texi (Prerequisites): Remove CLooG.

From-SVN: r217339

9 years agoAdd illegal cilk checks to C++ front.
Andi Kleen [Tue, 11 Nov 2014 05:11:09 +0000 (05:11 +0000)]
Add illegal cilk checks to C++ front.

Add calls for several illegal Cilk cases to the C++ frontend.
C++ usually doesn't ICE unlike C on illegal cilk, but it's
better to match C in what is allowed and what is not.

if (_Cilk_spawn ...) is still not errored, but at least it doesn't ICE.

gcc/cp/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

* semantics.c (finish_goto_stmt): Call check_no_cilk.
(finish_while_stmt_cond): Dito.
(finish_do_stmt): Dito.
(finish_for_cond): Dito.
(finish_switch_cond): Dito.

From-SVN: r217337

9 years agoError out for Cilk_spawn or array expression in forbidden places
Andi Kleen [Tue, 11 Nov 2014 05:10:58 +0000 (05:10 +0000)]
Error out for Cilk_spawn or array expression in forbidden places

_Cilk_spawn or Cilk array expressions are only allowed on their own,
but not in for(), if(), switch, do, while, goto, etc.
The C parser didn't always check for that, which lead to ICEs earlier
for invalid code.

Add a generic helper that checks this and call it where needed
in the C frontend.

I chose to allow spawn/array for for init and increment expressions.
While the Cilk spec could be interpreted to forbid it there too
there didn't seem any reason to not allow it.

One dark corner is spawn, array in statement expressions not at
the end. Right now that's forbidden too.

gcc/c-family/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

PR c/60804
* c-common.h (check_no_cilk): Declare.
* cilk.c (get_error_location): New function.
(check_no_cilk): Dito.

gcc/c/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

PR c/60804
* c-parser.c (c_parser_statement_after_labels): Call
check_no_cilk.
(c_parser_if_statement): Dito.
(c_parser_switch_statement): Dito.
(c_parser_while_statement): Dito.
(c_parser_do_statement): Dito.
(c_parser_for_statement): Dito.
* c-typeck.c (c_finish_loop): Dito.

From-SVN: r217336

9 years agoFix some of the existing Cilk tests for the new errors.
Andi Kleen [Tue, 11 Nov 2014 05:10:46 +0000 (05:10 +0000)]
Fix some of the existing Cilk tests for the new errors.

gcc/testsuite/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

* c-c++-common/cilk-plus/AN/misc.c (main): Handle
new cilk errors.

From-SVN: r217335