platform/upstream/linaro-gcc.git
9 years agoPR jit/64166: Add API entrypoint gcc_jit_context_enable_dump
dmalcolm [Tue, 9 Dec 2014 15:35:39 +0000 (15:35 +0000)]
PR jit/64166: Add API entrypoint gcc_jit_context_enable_dump

gcc/jit/ChangeLog:
PR jit/64166
* docs/topics/contexts.rst (Debugging): Add description of
gcc_jit_context_enable_dump.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c: Include context.h.
(class auto_argvec): New class.
(auto_argvec::~auto_argvec): New function.
(gcc::jit::playback::context::compile): Convert fake_args to be
an auto_argvec, so that it can contain dynamically-allocated
strings.   Construct a vec of all requested dumps, and pass it to
make_fake_args.  Extract requested dumps between the calls to
toplev::main and toplev::finalize.
(gcc::jit::playback::context::make_fake_args): Convert param
"argvec" to be a vec <char *>, and gain a "requested_dumps"
param.  Convert to dynamically-allocated arg strings by converting
ADD_ARG to take a copy of the arg, and add ADD_ARG_TAKE_OWNERSHIP
for args that are already a copy.  Add args for all requested dumps.
(gcc::jit::playback::context::extract_any_requested_dumps): New
function.
(gcc::jit::playback::context::read_dump_file): New function.
* jit-playback.h (gcc::jit::playback::context::make_fake_args):
Convert param "argvec" to be a vec <char *>, and gain a
"requested_dumps" param.
(gcc::jit::playback::context::extract_any_requested_dumps): New
function.
(gcc::jit::playback::context::read_dump_file): New function.
* jit-recording.c (gcc::jit::recording::context::enable_dump): New
function.
(gcc::jit::recording::context::get_all_requested_dumps): New
function.
* jit-recording.h (gcc::jit::recording::requested_dump): New
struct.
(gcc::jit::recording::context::enable_dump): New function.
(gcc::jit::recording::context::get_all_requested_dumps): New
function.
(gcc::jit::recording::context::m_requested_dumps): New field.
* libgccjit.c (gcc_jit_context_enable_dump): New API entrypoint.
* libgccjit.h (gcc_jit_context_enable_dump): New API entrypoint.
* libgccjit.map (gcc_jit_context_enable_dump): New API entrypoint.

gcc/testsuite/ChangeLog:
PR jit/64166
PR jit/64020
* jit.dg/harness.h (CHECK_STRING_CONTAINS): New macro.
(check_string_contains): New function.
* jit.dg/test-error-unrecognized-dump.c: New file.
* jit.dg/test-functions.c (trig_sincos_dump): New variable.
(trig_statistics_dump): New variable.
(create_test_of_builtin_trig): Enable dumping of "sincos" and
"statistics" into "trig_sincos_dump" and "trig_statistics_dump".
(verify_test_of_builtin_trig): Verify the sincos and statistics
dumps.
* jit.dg/test-sum-of-squares.c (dump_vrp1): New variable.
(create_code): Enable dumping of "tree-vrp1" into dump_vrp1.
(verify_code): Verify the tree-vrp1 dump.

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

9 years agoPR jit/64166: Add methods to gcc::dump_manager needed by JIT testing
dmalcolm [Tue, 9 Dec 2014 15:25:11 +0000 (15:25 +0000)]
PR jit/64166: Add methods to gcc::dump_manager needed by JIT testing

gcc/ChangeLog:
PR jit/64166
* dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
New function.
(gcc::dump_manager::get_dump_file_name): Split out bulk of
implementation into a new overloaded variant taking a
dump_file_info *.
* dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
New function.
(gcc::dump_manager::get_dump_file_name): New overloaded variant of
this function, taking a dump_file_info *.

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

9 years ago PR bootstrap/64213
uros [Tue, 9 Dec 2014 14:34:32 +0000 (14:34 +0000)]
PR bootstrap/64213
Revert:
2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>

PR rtl-optimization/64037
* combine.c (setup_incoming_promotions): Pass the argument
before any promotions happen to promote_function_mode.

testsuite/ChangeLog:

PR bootstrap/64213
Revert:
2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>

PR rtl-optimization/64037
* g++.dg/pr64037.C: New test.

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

9 years ago2014-12-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Dec 2014 14:25:09 +0000 (14:25 +0000)]
2014-12-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/64193
* tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
and valueize the VUSE before looking up the def stmt.
* tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
* tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
to walk_non_aliased_vuses.
(vn_reference_lookup): Likewise.
* tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
callback to walk_non_aliased_vuses.

* gcc.dg/tree-ssa/ssa-fre-43.c: New testcase.

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

9 years agoLocal Vim config with GNU formatting.
ygribov [Tue, 9 Dec 2014 13:45:47 +0000 (13:45 +0000)]
Local Vim config with GNU formatting.

2014-12-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
    Yury Gribov  <y.gribov@samsung.com>

/
* .gitignore: Added .local.vimrc and .lvimrc.
* Makefile.tpl (vimrc, .lvimrc, .local.vimrc): New targets.
* Makefile.in: Regenerate.

contrib/
* vimrc: New file.

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

9 years ago2014-12-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Dec 2014 11:58:51 +0000 (11:58 +0000)]
2014-12-09  Richard Biener  <rguenther@suse.de>

PR middle-end/64199
* fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.

* gcc.dg/torture/pr64199.c: New testcase.

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

9 years ago PR libstdc++/64203
redi [Tue, 9 Dec 2014 11:03:57 +0000 (11:03 +0000)]
PR libstdc++/64203
* include/std/shared_mutex: Fix preprocessor conditions.
* testsuite/experimental/feat-cxx14.cc: Check conditions.

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

9 years ago2014-12-09 Richard Biener <rguenther@suse.de>
rguenth [Tue, 9 Dec 2014 09:13:18 +0000 (09:13 +0000)]
2014-12-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/64191
* tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
not relevant (nor are their uses).

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

9 years agogcc/
ienkovich [Tue, 9 Dec 2014 08:00:52 +0000 (08:00 +0000)]
gcc/

* lto/lto-partition.c (privatize_symbol_name): Correctly
privatize instrumentation clones.

gcc/testsuite/

* gcc.dg/lto/lto.exp: Load mpx-dg.exp.
* gcc.dg/lto/chkp-privatize_0.c: New.
* gcc.dg/lto/chkp-privatize_1.c: New.

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

9 years ago * lto-cgraph.c (input_cgraph_1): Don't break existing
ienkovich [Tue, 9 Dec 2014 07:56:26 +0000 (07:56 +0000)]
* lto-cgraph.c (input_cgraph_1): Don't break existing
instrumentation clone references.
* lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
instrumented_version references appropriately.

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

9 years agogcc/
ienkovich [Tue, 9 Dec 2014 07:53:17 +0000 (07:53 +0000)]
gcc/

PR bootstrap/63995
* tree-chkp.c (chkp_make_static_bounds): Share bounds var
between nodes sharing assembler name.

gcc/testsuite/

PR bootstrap/63995
* g++.dg/dg.exp: Add mpx-dg.exp.
* g++.dg/pr63995-1.C: New.

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

9 years ago2014-12-08 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Tue, 9 Dec 2014 03:56:28 +0000 (03:56 +0000)]
2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/64204
* config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
constant moves if -mupper-regs-df.

* config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
0.0L to TFmode.
(movtd_64bit_nodm): Likewise.
(mov<mode>_32bit, FMOVE128 case): Likewise.

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

9 years ago2014-12-08 Sandra Loosemore <sandra@codesourcery.com>
sandra [Tue, 9 Dec 2014 02:53:00 +0000 (02:53 +0000)]
2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* simplify-rtx.c (simplify_relational_operation_1): Handle
simplification identities for BICS patterns.

gcc/testsuite/
* gcc.target/aarch64/bics_4.c: New.

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

9 years agomove gimple_canonical_types htab out of gc memory
tbsaunde [Tue, 9 Dec 2014 02:30:13 +0000 (02:30 +0000)]
move gimple_canonical_types htab out of gc memory

lto/

* lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types
htab with malloc instead of ggc.

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

9 years agoremove param_is from nvptx
tbsaunde [Tue, 9 Dec 2014 02:30:06 +0000 (02:30 +0000)]
remove param_is from nvptx

gcc/

* config/nvptx/nvptx.c: Convert htabs to hash_table.

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

9 years agoDaily bump.
gccadmin [Tue, 9 Dec 2014 00:16:30 +0000 (00:16 +0000)]
Daily bump.

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

9 years ago PR target/64226
dje [Mon, 8 Dec 2014 23:47:39 +0000 (23:47 +0000)]
    PR target/64226
        * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
        [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
        TARGET_TOC. Always use rs6000_emit_move.

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

9 years agoDWARFv5 Emit DW_TAG_atomic_type for C11 _Atomic.
mark [Mon, 8 Dec 2014 22:32:23 +0000 (22:32 +0000)]
DWARFv5 Emit DW_TAG_atomic_type for C11 _Atomic.

This implements the DW_TAG_atomic_type for C11 _Atomic proposal as adopted
in the latest DWARF5 draft. http://dwarfstd.org/ShowIssue.php?issue=131112.1

gcc/ChangeLog

PR debug/60782
* dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.

gcc/testsuite/ChangeLog

PR debug/60782
* gcc.dg/debug/dwarf2/atomic.c: New test.
* gcc.dg/debug/dwarf2/stacked-qualified-types-3.c: Likewise.

include/ChangeLog

PR debug/60782
* dwarf2.def: Add DWARFv5 DW_TAG_atomic_type.

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

9 years agoFix typo in ChangeLog
law [Mon, 8 Dec 2014 22:11:42 +0000 (22:11 +0000)]
Fix typo in ChangeLog

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

9 years ago PR target/61692
law [Mon, 8 Dec 2014 21:58:23 +0000 (21:58 +0000)]
    PR target/61692
* cfgexpand.c (expand_asm_operands): Count all inline asm params.

PR target/61692
        * gcc.dg/pr61692.c: New test.

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

9 years agoAdded myself to Write After Approval list
boger [Mon, 8 Dec 2014 20:12:23 +0000 (20:12 +0000)]
Added myself to Write After Approval list

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

9 years agoPR jit/63854: Introduce xstrdup_for_dump
dmalcolm [Mon, 8 Dec 2014 19:31:45 +0000 (19:31 +0000)]
PR jit/63854: Introduce xstrdup_for_dump

gcc/ChangeLog:
PR jit/63854
* cgraph.h (xstrdup_for_dump): New function.
* cgraph.c (cgraph_node::get_create): Replace use of xstrdup
within fprintf with xstrdup_for_dump.
(cgraph_edge::make_speculative): Likewise.
(cgraph_edge::resolve_speculation): Likewise.
(cgraph_edge::redirect_call_stmt_to_callee): Likewise.
(cgraph_node::dump): Likewise.
* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
* ipa-cp.c (perhaps_add_new_callers): Likewise.
* ipa-inline.c (report_inline_failed_reason): Likewise.
(want_early_inline_function_p): Likewise.
(edge_badness): Likewise.
(update_edge_key): Likewise.
(flatten_function): Likewise.
(inline_always_inline_functions): Likewise.
* ipa-profile.c (ipa_profile): Likewise.
* ipa-prop.c (ipa_print_node_jump_functions): Likewise.
(ipa_make_edge_direct_to_target): Likewise.
(remove_described_reference): Likewise.
(propagate_controlled_uses): Likewise.
* ipa-utils.c (ipa_merge_profiles): Likewise.

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

9 years agolibgccjit++.h: use indentation to show inheritance
dmalcolm [Mon, 8 Dec 2014 19:05:01 +0000 (19:05 +0000)]
libgccjit++.h: use indentation to show inheritance

gcc/jit/ChangeLog:
* libgccjit++.h: Indent the forward declarations of the classes to
show the inheritance hierarchy.

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

9 years agoMake jit/notes.txt better reflect current status quo
dmalcolm [Mon, 8 Dec 2014 18:56:21 +0000 (18:56 +0000)]
Make jit/notes.txt better reflect current status quo

gcc/jit/ChangeLog:
* notes.txt: Show the beginning and ending of
recording::context::compile vs playback::context::compile.  Show
the creation and unlinking of the tempdir.  Show toplev::finalize.
Move "RELEASE MUTEX" to the correct location.  Show
gcc_jit_result_release, and indicate where the
dlopen/dlsym/dlclose occur.

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

9 years ago2014-12-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
edlinger [Mon, 8 Dec 2014 18:30:15 +0000 (18:30 +0000)]
2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR ipa/64049
        * ipa-polymorphic-call.c
        (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.

testsuite/ChangeLog:
2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR ipa/64049
        * g++.dg/ipa/pr64049.h: New.
        * g++.dg/ipa/pr64049-1.C: New.
        * g++.dg/ipa/pr64049-2.C: New.

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

9 years agoBics instruction generation for aarch64
avelenko [Mon, 8 Dec 2014 18:10:39 +0000 (18:10 +0000)]
Bics instruction generation for aarch64

gcc/

* config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
New define_insn.
* (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
Likewise.

gcc/testsuite/

* gcc.target/aarch64/bics_3.c : New testcase.

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

9 years ago PR go/64198
ian [Mon, 8 Dec 2014 18:05:30 +0000 (18:05 +0000)]
PR go/64198
compiler: Don't crash on invalid ++.

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

9 years ago * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
fyang [Mon, 8 Dec 2014 14:19:44 +0000 (14:19 +0000)]
    * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
        builtin functions.
        (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
        vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
        (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
        vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
        vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
        vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
        vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
        vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
        vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
        vrsubhn_high_u64): Likewise.
        * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
        * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
        * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
        * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
        subhn2, rsubhn2, urecpe): New builtins.

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

9 years agoEnable non-const v64qi permutations.
tocarip [Mon, 8 Dec 2014 11:48:01 +0000 (11:48 +0000)]
Enable non-const v64qi permutations.

gcc/
* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
* config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.

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

9 years agoEnable const permutations for V64QImode.
tocarip [Mon, 8 Dec 2014 11:45:35 +0000 (11:45 +0000)]
Enable const permutations for V64QImode.

gcc/
* config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
(expand_vec_perm_vpermi2_vpshub2): New.
(ix86_expand_vec_perm_const_1): Use it.
(ix86_vectorize_vec_perm_const_ok): Handle v64qi.
* config/i386/sse.md (VEC_PERM_CONST): Add v64qi.

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

9 years ago * tree-chkp.c (chkp_build_returned_bound): Don't predict
ienkovich [Mon, 8 Dec 2014 10:10:00 +0000 (10:10 +0000)]
* tree-chkp.c (chkp_build_returned_bound): Don't predict
return bounds for strchr calls.

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

9 years agogcc/
ienkovich [Mon, 8 Dec 2014 10:01:19 +0000 (10:01 +0000)]
gcc/

* tree-chkp.c (chkp_call_returns_bounds_p): New.
(chkp_build_returned_bound): Use zero bounds as
returned by calls not returning bounds.

gcc/testsuite/

* gcc.target/i386/chkp-bndret.c: New.
* gcc.target/i386/chkp-strchr.c: New.

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

9 years ago2014-12-08 Richard Biener <rguenther@suse.de>
rguenth [Mon, 8 Dec 2014 09:20:35 +0000 (09:20 +0000)]
2014-12-08  Richard Biener  <rguenther@suse.de>

* builtins.c (fold_builtin_0): Remove unused ignore parameter.
(fold_builtin_1): Likewise.
(fold_builtin_3): Likewise.
(fold_builtin_varargs): Likewise.
(fold_builtin_2): Likewise.  Do not fold stpcpy here.
(fold_builtin_n): Adjust.
(fold_builtin_stpcpy): Move to gimple-fold.c.
(gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
(gimple_fold_builtin): Fold stpcpy here.

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

9 years agodon't ICE when section attribute is used on things in comdats
tbsaunde [Mon, 8 Dec 2014 00:35:33 +0000 (00:35 +0000)]
don't ICE when section attribute is used on things in comdats

gcc/

PR ipa/63621
* symtab.c (symtab_node::verify): Check for section attribute before
asserting something isn't in a section and a comdat group.

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

9 years agoDaily bump.
gccadmin [Mon, 8 Dec 2014 00:16:30 +0000 (00:16 +0000)]
Daily bump.

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

9 years agogcc/testsuite/
olegendo [Sun, 7 Dec 2014 23:19:59 +0000 (23:19 +0000)]
gcc/testsuite/
PR target/53513
* gcc.target/sh/pr54602-4.c: Fix matching of rte-nop sequence.

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

9 years agogcc/
olegendo [Sun, 7 Dec 2014 22:57:11 +0000 (22:57 +0000)]
gcc/
PR target/50751
* config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.

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

9 years ago * compare-elim.c: Fix head comment.
ebotcazou [Sun, 7 Dec 2014 21:55:47 +0000 (21:55 +0000)]
* compare-elim.c: Fix head comment.
(conforming_compare): Remove redundant test.
(can_eliminate_compare): New function extracted from...
(before_dom_children): ...here.  Use it, replace direct uses of
flag_non_call_exceptions and tidy up.
(maybe_select_cc_mode): Tidy up.

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

9 years ago PR testsuite/64038
danglin [Sun, 7 Dec 2014 17:48:56 +0000 (17:48 +0000)]
PR testsuite/64038
* gcc.dg/ipa/ipa-icf-5.c: Require c99_runtime.  Add c99_runtime options.
* gcc.dg/ipa/ipa-icf-7.c: Likewise.

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

9 years agogcc/testsuite/
olegendo [Sun, 7 Dec 2014 16:42:45 +0000 (16:42 +0000)]
gcc/testsuite/
* gcc.target/h8300/h8300.exp: Fix duplicated text.
* gcc.target/h8300/pragma-isr.c: Likewise.
* gcc.target/h8300/pragma-isr2.c: Likewise.

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

9 years ago * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
fyang [Sun, 7 Dec 2014 15:01:23 +0000 (15:01 +0000)]
    * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
        patterns.
        * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
        builtins.
        * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
        vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
        vcntq_u8): Rewrite using builtin functions.

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

9 years ago[ARM,AArch64][testsuite] Fix vaddl and vaddw tests
clyon [Sun, 7 Dec 2014 09:40:58 +0000 (09:40 +0000)]
[ARM,AArch64][testsuite] Fix vaddl and vaddw tests

2014-12-07  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vaddhn.c: Actually execute
the test.
* gcc.target/aarch64/advsimd-intrinsics/vaddl.c: Actually execute
the test. Fix expected output.
* gcc.target/aarch64/advsimd-intrinsics/vaddw.c: Likewise.

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

9 years ago * symtab.c (symtab_node::equal_address_to): New function.
hubicka [Sun, 7 Dec 2014 07:35:11 +0000 (07:35 +0000)]
* symtab.c (symtab_node::equal_address_to): New function.
* cgraph.h (symtab_node::equal_address_to): Declare.
* fold-const.c (fold_comparison, fold_binary_loc): Use it.

* c-family/c-common.c: Refuse weaks for symbols that can not change
visibility.

* gcc.dg/addr_equal-1.c: New testcase.

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

9 years ago * doc/invoke.texi (Warning Options): Fix spelling and grammar.
redi [Sun, 7 Dec 2014 00:51:37 +0000 (00:51 +0000)]
* doc/invoke.texi (Warning Options): Fix spelling and grammar.

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

9 years agoDaily bump.
gccadmin [Sun, 7 Dec 2014 00:16:29 +0000 (00:16 +0000)]
Daily bump.

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

9 years agoextend jump thread for finite state automata
spop [Sat, 6 Dec 2014 19:19:37 +0000 (19:19 +0000)]
extend jump thread for finite state automata

PR tree-optimization/54742
* params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
max-fsm-thread-paths): New.

* doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
max-fsm-thread-paths): Documented.

* tree-cfg.c (split_edge_bb_loc): Export.
* tree-cfg.h (split_edge_bb_loc): Declared extern.

* tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
original value of cond when simplification fails.
(fsm_find_thread_path): New.
(fsm_find_control_statement_thread_paths): New.
(thread_through_normal_block): Call find_control_statement_thread_paths.

* tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
EDGE_FSM_THREAD.
(verify_seme): New.
(duplicate_seme_region): New.
(thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
calling duplicate_seme_region.

* tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.

* testsuite/gcc.dg/tree-ssa/ssa-dom-thread-6.c: New test.
* testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c: New test.

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

9 years ago2014-12-06 Tobias Burnus <burnus@net-b.de>
burnus [Sat, 6 Dec 2014 16:53:40 +0000 (16:53 +0000)]
2014-12-06  Tobias Burnus  <burnus@net-b.de>

        * error.c (gfc_error_check): Use bool not int.
        * gfortran.h (gfc_error_check): Update prototype.
        * match.c (gfc_match_if): Update call.
        * parse.c (decode_statement, decode_omp_directive,
        decode_gcc_attribute): Ditto.

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

9 years ago2014-12-06 Tobias Burnus <burnus@net-b.de>
burnus [Sat, 6 Dec 2014 16:33:11 +0000 (16:33 +0000)]
2014-12-06  Tobias Burnus  <burnus@net-b.de>
            Manuel López-Ibáñez  <manu@gcc.gnu.org>

        * error.c (gfc_buffer_error, gfc_error_flag_test): Use bool not
        * int.
        (buffer_flag): Remove static variable.
        (buffered_p): Add static variable.
        (gfc_error_init_1): Call gfc_buffer_error.
        (gfc_warning_1, gfc_warning, gfc_warning_now_1, gfc_error,
        gfc_error_now_1): Update for static variable change.
        * gfortran.h (gfc_buffer_error, gfc_error_flag_test): Update
        prototype.
        * parse.c (use_modules, decode_specification_statement,
        next_fixed, next_statement, match_deferred_characteristics):
        Update calls.
        * decl.c (gfc_match_data_decl): Ditto.
        * match.c (gfc_match_name): Ditto.

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

9 years agoclarification
korbb [Sat, 6 Dec 2014 15:08:55 +0000 (15:08 +0000)]
clarification

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

9 years ago PR tree-optimization/64183
mpolacek [Sat, 6 Dec 2014 13:10:31 +0000 (13:10 +0000)]
PR tree-optimization/64183
* c-gimplify.c (c_gimplify_expr): Don't convert the RHS of a
shift-expression if it is integer_type_node.  Use types_compatible_p.

* gcc.dg/tree-ssa/pr64183.c: New test.

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

9 years agoDon't assert "alg != libcall" for -minline-stringops-dynamically
hjl [Sat, 6 Dec 2014 11:32:46 +0000 (11:32 +0000)]
Don't assert "alg != libcall" for -minline-stringops-dynamically

gcc/

PR target/64200
* config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
for TARGET_INLINE_STRINGOPS_DYNAMICALLY.

gcc/testsuite/

PR target/64200
* gcc.target/i386/memcpy-strategy-4.c: New test.

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

9 years agoFix ChangeLog format.
timshen [Sat, 6 Dec 2014 11:31:12 +0000 (11:31 +0000)]
Fix ChangeLog format.

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

9 years agoDaily bump.
gccadmin [Sat, 6 Dec 2014 00:16:31 +0000 (00:16 +0000)]
Daily bump.

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

9 years ago PR sanitizer/64170
jakub [Fri, 5 Dec 2014 23:00:09 +0000 (23:00 +0000)]
PR sanitizer/64170
* sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
non-NULL, call maybe_get_dominating_check on it even if g is
non-NULL.

* gcc.dg/asan/pr64170.c: New test.

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

9 years ago * doc/md.texi: Note problems using function calls to determine
law [Fri, 5 Dec 2014 22:19:26 +0000 (22:19 +0000)]
    * doc/md.texi: Note problems using function calls to determine
        insn lengths and point readers to a potential workaround.

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

9 years ago* combine.c (is_parallel_of_n_reg_sets)
schwab [Fri, 5 Dec 2014 20:25:19 +0000 (20:25 +0000)]
* combine.c (is_parallel_of_n_reg_sets)
(can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.

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

9 years ago2014-12-05 Andrew Pinski <apinski@cavium.com>
pinskia [Fri, 5 Dec 2014 19:44:47 +0000 (19:44 +0000)]
2014-12-05  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
        than CF10 so 2 is appended on the code.
        * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
        (bswap<mode>2): This so it matches for the optabs.

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

9 years ago2014-12-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Fri, 5 Dec 2014 18:36:57 +0000 (18:36 +0000)]
2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * regrename.c (find_best_rename_reg): Rename to ...
    (find_rename_reg): This. Also add a parameter to skip tick check.
    * regrename.h: Likewise.
    * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.

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

9 years ago2014-12-05 Martin Jambor <mjambor@suse.cz>
jamborm [Fri, 5 Dec 2014 18:14:37 +0000 (18:14 +0000)]
2014-12-05  Martin Jambor  <mjambor@suse.cz>

PR ipa/64192
* ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
from bits to bytes after checking they are byte-aligned.

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

9 years ago[AArch64]Clarify the usage of SCHED in AARCH64_CORE macro
renlin [Fri, 5 Dec 2014 18:00:55 +0000 (18:00 +0000)]
[AArch64]Clarify the usage of SCHED in AARCH64_CORE macro

gcc/

2014-12-05  Renlin Li  <renlin.li@arm.com>

* config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
* config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
* config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
IDENT to SCHED.

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

9 years ago2014-12-05 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Fri, 5 Dec 2014 17:50:40 +0000 (17:50 +0000)]
2014-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/53199
* gcc.target/powerpc/pr53199.c: Limit tests to 64-bit.

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

9 years ago[AArch64]load store pair optimization using sched_fusion pass.
mshawcroft [Fri, 5 Dec 2014 17:06:33 +0000 (17:06 +0000)]
[AArch64]load store pair optimization using sched_fusion pass.

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

9 years ago2014-12-05 Olivier Hainque <hainque@adacore.com>
hainque [Fri, 5 Dec 2014 17:01:42 +0000 (17:01 +0000)]
2014-12-05  Olivier Hainque  <hainque@adacore.com>

        gcc/
        * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
        * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
        DWARF_REG_TO_UNWIND_COLUMN.

        libgcc/
        * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Remove default def,
        now provided by defaults.h.

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

9 years ago2014-12-05 Olivier Hainque <hainque@adacore.com>
hainque [Fri, 5 Dec 2014 16:53:22 +0000 (16:53 +0000)]
2014-12-05  Olivier Hainque  <hainque@adacore.com>

        * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
        one particular reg for expand_builtin_init_dwarf_reg_sizes.
        (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
        account for dwarf register spans.

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

9 years ago2014-12-05 Sandra Loosemore <sandra@codesourcery.com>
sandra [Fri, 5 Dec 2014 16:18:30 +0000 (16:18 +0000)]
2014-12-05  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* gcc.dg/vect/pr63341-1.c: Remove explicit "dg-do run".
* gcc.dg/vect/pr63341-2.c: Likewise.
* gcc.dg/vect/pr63379.c: Likewise.
* gcc.dg/vect/pr63605.c: Likewise.

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

9 years ago PR target/64003
ienkovich [Fri, 5 Dec 2014 16:00:52 +0000 (16:00 +0000)]
PR target/64003
* config/i386/i386.md (*jcc_1_bnd): New.
(*jcc_2_bnd): New.
(jump_bnd): New.
(*jcc_1): Remove bnd prefix.
(*jcc_2): Likewise.
(jump): Likewise.

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

9 years ago[AArch64] Use selected cpu's tuning when no tuning parameter is specified
renlin [Fri, 5 Dec 2014 15:54:57 +0000 (15:54 +0000)]
[AArch64] Use selected cpu's tuning when no tuning parameter is specified

gcc/

2014-12-05  Renlin Li  <renlin.li@arm.com>

* config/aarch64/aarch64.c (aarch64_parse_cpu): Don't define
selected_tune.
(aarch64_override_options): Use selected_cpu's tuning.

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

9 years ago* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
dje [Fri, 5 Dec 2014 15:04:55 +0000 (15:04 +0000)]
* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
alignment to section name. Increase default alignment to word.

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

9 years ago2014-12-05 Andre Vehreschild <vehre@gmx.de>
dominiq [Fri, 5 Dec 2014 14:15:27 +0000 (14:15 +0000)]
2014-12-05  Andre Vehreschild  <vehre@gmx.de>

PR fortran/60414
* interface.c (compare_parameter): Remove class argument rank
check short circuit.

2014-12-05  Andre Vehreschild  <vehre@gmx.de>

PR fortran/60414
* gfortran.dg/unlimited_polymorphism_18.f90: New test.

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

9 years ago2014-12-05 Martin Jambor <mjambor@suse.cz>
jamborm [Fri, 5 Dec 2014 11:06:26 +0000 (11:06 +0000)]
2014-12-05  Martin Jambor  <mjambor@suse.cz>

* cgraph.h (cgraph_node): New method expand_all_artificial_thunks.
(cgraph_edge): New method redirect_callee_duplicating_thunks.
* cgraphclones.c (duplicate_thunk_for_node): Donot expand newly
created thunks.
(redirect_edge_duplicating_thunks): Turned into edge method
redirect_callee_duplicating_thunks.
(cgraph_node::expand_all_artificial_thunks): New method.
(create_clone): Call expand_all_artificial_thunks.
* ipa-cp.c (perhaps_add_new_callers): Call
redirect_callee_duplicating_thunks instead of redirect_callee.
Also call expand_all_artificial_thunks.

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

9 years ago * include/bits/hashtable_policy.h (_Map_base::operator[],
redi [Fri, 5 Dec 2014 10:35:51 +0000 (10:35 +0000)]
* include/bits/hashtable_policy.h (_Map_base::operator[],
_Map_base::at): Simplify definitions with trailing return types.

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

9 years agogcc/
ienkovich [Fri, 5 Dec 2014 10:01:33 +0000 (10:01 +0000)]
gcc/

PR target/64056
* doc/sourcebuild.texi: Add mempcpy and stpcpy for Effective-Target Keywords.

gcc/testsuite/

PR target/64056
* lib/target-supports.exp (check_effective_target_stpcpy): New.
* gcc.target/i386/chkp-strlen-2.c: Add stpcpy target check.

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

9 years agoDaily bump.
gccadmin [Fri, 5 Dec 2014 00:16:33 +0000 (00:16 +0000)]
Daily bump.

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

9 years agoThis test should have been added in revision 218407.
manu [Fri, 5 Dec 2014 00:01:35 +0000 (00:01 +0000)]
This test should have been added in revision 218407.

gcc/testsuite/

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

* gfortran.dg/line_length_5.f90: New test.

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

9 years agogcc/fortran/ChangeLog:
manu [Thu, 4 Dec 2014 23:59:35 +0000 (23:59 +0000)]
gcc/fortran/ChangeLog:

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

* error.c (gfc_diagnostic_build_locus_prefix): Use
diagnostic_expand_location.

gcc/ChangeLog:

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

* diagnostic.h (diagnostic_expand_location): New inline function.
* diagnostic.c (diagnostic_build_prefix): Use it.
(diagnostic_show_locus): Likewise.

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

9 years agoAlways define HAVE_LD_PIE_COPYRELOC
hjl [Thu, 4 Dec 2014 23:53:24 +0000 (23:53 +0000)]
Always define HAVE_LD_PIE_COPYRELOC

PR bootstrap/64189
* configure.ac (HAVE_LD_PIE_COPYRELOC): Always define.
* configure: Regenerated.

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

9 years agolibcpp/ChangeLog:
manu [Thu, 4 Dec 2014 23:35:29 +0000 (23:35 +0000)]
libcpp/ChangeLog:

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

* line-map.c (linemap_position_for_loc_and_offset): Add new
linemap_assert_fails.

gcc/fortran/ChangeLog:

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

* scanner.c (gfc_next_char_literal): Use gfc_warning_now.
(load_file): Use the line length as the column hint for
linemap_line_start. Reserve a location for the highest column of
the line.

gcc/testsuite/ChangeLog:

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

* gfortran.dg/line_length_5.f90: New test.

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

9 years agogcc/ChangeLog:
manu [Thu, 4 Dec 2014 23:09:41 +0000 (23:09 +0000)]
gcc/ChangeLog:

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

* diagnostic.c (diagnostic_color_init): New.
* diagnostic.h: Declare.
* gcc.c (driver::global_initializations): Use it.
(driver_handle_option): Handle -fdiagnostics-color_.
* toplev.c: Do not include diagnostic-color.h.
(process_options): Do not initialize color diagnostics here.
* common.opt (fdiagnostics-color=): Add Driver.
* opts-global.c (init_options_once): Initialize color here.
* opts.c (common_handle_option): Use diagnostics_color_init.
* diagnostic-color.h: Fix comment.

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

9 years agoAvoid overuse of name "buffer" in tree-pretty-print.c
dmalcolm [Thu, 4 Dec 2014 21:33:22 +0000 (21:33 +0000)]
Avoid overuse of name "buffer" in tree-pretty-print.c

gcc/ChangeLog:
* tree-pretty-print.c (INDENT): Rename "buffer" to "pp".
(NIY): Likewise.
(buffer): Rename this variable to...
(tree_pp): ...this.

(do_niy): Rename param from "buffer" to "pp".
(dump_decl_name): Likewise.
(dump_function_name): Likewise.
(dump_function_declaration): Likewise.
(dump_array_domain): Likewise.
(dump_omp_clause): Likewise.
(dump_omp_clauses): Likewise.
(dump_location): Likewise.
(dump_block_node): Likewise.
(dump_generic_node): Likewise.
(print_declaration): Likewise.
(print_struct_decl): Likewise.
(print_call_name): Likewise.
(pretty_print_string): Likewise.
(newline_and_indent): Likewise.

(print_generic_decl): Update for renaming of "buffer" to
"tree_pp".
(print_generic_stmt): Likewise.
(print_generic_stmt_indented): Likewise.
(print_generic_expr): Likewise.
(maybe_init_pretty_print): Likewise.

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

9 years agoPR jit/63854: Fix double-initialization within tree-pretty-print.c
dmalcolm [Thu, 4 Dec 2014 21:23:57 +0000 (21:23 +0000)]
PR jit/63854: Fix double-initialization within tree-pretty-print.c

gcc/ChangeLog:
PR jit/63854
* tree-pretty-print.c: Eliminate include of <new>.
(buffer): Convert this variable from a pretty_printer to a
pretty_printer *.
(initialized): Eliminate this variable in favor of the NULL-ness
of "buffer".
(print_generic_decl): Update for "buffer" becoming a pointer.
(print_generic_stmt): Likewise.
(print_generic_stmt_indented): Likewise.
(print_generic_expr): Likewise.
(maybe_init_pretty_print): Likewise, allocating "buffer" on the
heap and using its non-NULL-ness to ensure idempotency.

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

9 years agoPR jit/63854: Fix leak of ipa hooks
dmalcolm [Thu, 4 Dec 2014 21:11:04 +0000 (21:11 +0000)]
PR jit/63854: Fix leak of ipa hooks

gcc/ChangeLog:
PR jit/63854
* ipa-prop.c (ipa_register_cgraph_hooks): Guard insertion of
ipa_add_new_function on function_insertion_hook_holder being
non-NULL.
* ipa-reference.c (ipa_reference_c_finalize): Remove
node_removal_hook_holder and node_duplication_hook_holder if
they've been added to symtab.
* toplev.c (toplev::finalize): Call ipa_reference_c_finalize
before cgraph_c_finalize so that the former can access "symtab".

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

9 years ago PR c++/64029
jason [Thu, 4 Dec 2014 20:37:30 +0000 (20:37 +0000)]
PR c++/64029
* decl.c (grok_reference_init): Complete array type.

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

9 years ago PR c++/64080
jason [Thu, 4 Dec 2014 20:37:24 +0000 (20:37 +0000)]
PR c++/64080
* constexpr.c (cxx_eval_store_expression): Handle non-decl store
targets.

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

9 years agofix comment
jason [Thu, 4 Dec 2014 20:37:14 +0000 (20:37 +0000)]
fix comment

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

9 years agoUpdate docs to reflect use of gimple subclasses
dmalcolm [Thu, 4 Dec 2014 20:00:25 +0000 (20:00 +0000)]
Update docs to reflect use of gimple subclasses

gcc/ChangeLog:
* doc/cfg.texi (GIMPLE statement iterators): Add note about
gphi_iterator, and use one in the example.
* doc/gimple.texi (Tuple specific accessors): Add missing
GIMPLE_GOTO section and menu item.
(gimple_build_asm, gimple gimple_build_assign_with_ops)
gimple_call_mark_uninlinable, gimple_call_cannot_inline_p): Remove
description of removed functions.
(gimple_build_assign, gimple_build_bind, gimple_build_call,
gimple_build_call_from_tree, gimple_build_call_vec,
gimple_build_catch, gimple_build_cond,
gimple_build_cond_from_tree, gimple_build_debug_bind,
gimple_build_eh_filter, gimple_build_label, gimple_build_goto,
gimple_build_omp_atomic_load, gimple_build_omp_atomic_store,
gimple_build_omp_continue, gimple_build_omp_critical,
gimple_build_omp_for, gimple_build_omp_parallel,
gimple_build_omp_sections, gimple_build_omp_single,
gimple_build_return, gimple_build_resx, gimple_build_switch,
gimple_build_try): Update return type within description to
reflect changes in gimple.h to using gimple subclasses.
(gimple_build_asm_vec): Update return type, params and
description.
(gimple_asm_ninputs): Update param.
(gimple_asm_noutputs, gimple_asm_nclobbers, gimple_asm_input_op
gimple_asm_set_input_op, gimple_asm_output_op
gimple_asm_set_output_op, gimple_asm_clobber_op,
gimple_asm_set_clobber_op, gimple_asm_string,
gimple_asm_volatile_p, gimple_asm_set_volatile, gimple_bind_vars,
gimple_bind_set_vars, gimple_bind_append_vars, gimple_bind_body,
gimple_bind_set_body, gimple_bind_add_stmt, gimple_bind_add_seq,
gimple_bind_block, gimple_bind_set_block, gimple_call_set_fn,
gimple_call_return_type, gimple_call_set_chain,
gimple_call_set_tail, gimple_call_tail_p,
gimple_call_copy_skip_args, gimple_catch_types,
gimple_catch_types_ptr, gimple_catch_handler,
gimple_catch_set_types, gimple_catch_set_handler,
gimple_cond_set_code, gimple_cond_set_lhs, gimple_cond_set_rhs,
gimple_cond_true_label, gimple_cond_set_true_label,
gimple_cond_set_false_label, gimple_cond_false_label,
gimple_cond_make_false, gimple_cond_make_true,
gimple_eh_filter_set_types, gimple_eh_filter_set_failure,
gimple_eh_must_not_throw_fndecl,
gimple_eh_must_not_throw_set_fndecl, gimple_label_label,
gimple_label_set_label, gimple_goto_set_dest,
gimple_omp_atomic_load_set_lhs, gimple_omp_atomic_load_lhs,
gimple_omp_atomic_load_set_rhs, gimple_omp_atomic_load_rhs,
gimple_omp_atomic_store_set_val, gimple_omp_atomic_store_val,
gimple_omp_continue_control_def,
gimple_omp_continue_control_def_ptr,
gimple_omp_continue_set_control_def,
gimple_omp_continue_control_use,
gimple_omp_continue_control_use_ptr,
gimple_omp_continue_set_control_use, gimple_omp_critical_name,
gimple_omp_critical_name_ptr, gimple_omp_critical_set_name,
gimple_omp_parallel_clauses_ptr, gimple_omp_parallel_set_clauses,
gimple_omp_parallel_child_fn, gimple_omp_parallel_child_fn_ptr,
gimple_omp_parallel_set_child_fn, gimple_omp_parallel_data_arg,
gimple_omp_parallel_data_arg_ptr,
gimple_omp_parallel_set_data_arg, gimple_omp_single_set_clauses,
gimple_phi_set_result, gimple_phi_set_arg, gimple_resx_region,
gimple_resx_set_region, gimple_return_retval,
gimple_return_set_retval, gimple_switch_num_labels,
gimple_switch_set_num_labels, gimple_switch_index,
gimple_switch_set_index, gimple_switch_label,
gimple_switch_set_label, gimple_switch_default_label,
gimple_switch_set_default_label, gimple_try_set_eval,
gimple_try_set_cleanup): Update initial param within description
to reflect changes in gimple.h to using gimple subclasses.
(Adding a new GIMPLE statement code): Update to reflect gimple
statement subclassing.

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

9 years agox86-64: Optimize access to globals in PIE with copy reloc
hjl [Thu, 4 Dec 2014 19:40:50 +0000 (19:40 +0000)]
x86-64: Optimize access to globals in PIE with copy reloc

Normally, with -fPIE/-fpie, GCC accesses globals that are extern to the
module using the GOT.  This is two instructions, one to get the address
of the global from the GOT and the other to get the value.  If it turns
out that the global gets defined in the executable at link-time, it still
needs to go through the GOT as it is too late then to generate a direct
 access.

Examples:

foo.cc
------
int a_glob;
int main () {
  return a_glob; // defined in this file
}

With -O2 -fpie -pie, the generated code directly accesses the global via
PC-relative insn:

5e0   <main>:
   mov    0x165a(%rip),%eax        # 1c40 <a_glob>

foo.cc
------

extern int a_glob;
int main () {
  return a_glob; // defined in this file
}

With -O2 -fpie -pie, the generated code accesses global via GOT using
two memory loads:

6f0  <main>:
   mov    0x1609(%rip),%rax   # 1d00 <_DYNAMIC+0x230>
   mov    (%rax),%eax

This is true even if in the latter case the global was defined in the
executable through a different file.

Some experiments on google benchmarks shows that the extra memory loads
affects performance by 1% to 5%.

Solution - Copy Relocations:

When the linker supports copy relocations, GCC can always assume that
the global will be defined in the executable.  For globals that are truly
extern (come from shared objects), the linker will create copy relocations
and have them defined in the executable. Result is that no global access
needs to go through the GOT and hence improves performance.

This optimization only applies to undefined, non-weak global data.
Undefined, weak global data access still must go through the GOT.

This patch checks if linker supports PIE with copy reloc, which is
enabled in gold and bfd linker in bininutils 2.25, at configure time
and enables this optimization if the linker support is available.

gcc/

* configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
Linux/x86-64 linker supports PIE with copy reloc.
* config.in: Regenerated.
* configure: Likewise.

* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
pc-relative address for undefined, non-weak, non-function
symbol reference in 64-bit PIE if linker supports PIE with
copy reloc.

* doc/sourcebuild.texi: Document pie_copyreloc target.

gcc/testsuite/

* gcc.target/i386/pie-copyrelocs-1.c: New test.
* gcc.target/i386/pie-copyrelocs-2.c: Likewise.
* gcc.target/i386/pie-copyrelocs-3.c: Likewise.
* gcc.target/i386/pie-copyrelocs-4.c: Likewise.

* lib/target-supports.exp (check_effective_target_pie_copyreloc):
New procedure.

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

9 years ago PR middle-end/56917
mpolacek [Thu, 4 Dec 2014 19:20:12 +0000 (19:20 +0000)]
PR middle-end/56917
* fold-const.c (fold_unary_loc): Perform the negation in A's type
when transforming ~ (A - 1) or ~ (A + -1) to -A.

* c-c++-common/ubsan/pr56917.c: New test.

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

9 years ago2014-12-04 Tobias Burnus <burnus@net-b.de>
burnus [Thu, 4 Dec 2014 18:18:21 +0000 (18:18 +0000)]
2014-12-04  Tobias Burnus  <burnus@net-b.de>

        * Makefile.in: Remove CLOOGLIB and CLOOGINC.

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

9 years ago2014-12-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Thu, 4 Dec 2014 16:39:47 +0000 (16:39 +0000)]
2014-12-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    contrib/
    * check_GNU_style.sh: Warn for incorrect number of spaces in function
    call only if 0 or 2+ spaces found.

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

9 years ago2014-12-04 Richard Biener <rguenther@suse.de>
rguenth [Thu, 4 Dec 2014 14:44:57 +0000 (14:44 +0000)]
2014-12-04  Richard Biener  <rguenther@suse.de>

* doc/match-and-simplify.texi: Update for recent changes.

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

9 years ago2014-12-04 Martin Jambor <mjambor@suse.cz>
jamborm [Thu, 4 Dec 2014 14:37:01 +0000 (14:37 +0000)]
2014-12-04  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.h (ipa_alignment): New type.
(ipa_jump_func): New field alignment.
(ipcp_transformation_summary) New type.
(ipcp_grow_transformations_if_necessary): Declare.
(ipa_node_agg_replacements): Removed.
(ipcp_transformations): Declare.
(ipcp_get_transformation_summary): New function.
(ipa_get_agg_replacements_for_node): Use it.
* ipa-cp.c (ipcp_param_lattices): New field alignment.
(print_all_lattices): Also print alignment.
(alignment_bottom_p): New function.
(set_alignment_to_bottom): Likewise.
(set_all_contains_variable): Also set alignment to bottom.
(initialize_node_lattices): Likewise.
(propagate_alignment_accross_jump_function): New function.
(propagate_constants_accross_call): Call it.
(ipcp_store_alignment_results): New function.
(ipcp_driver): Call it.
* ipa-prop.c (ipa_node_agg_replacements): Removed.
(ipcp_transformations): New.
(ipa_print_node_jump_functions_for_edge): Also print alignment.
(ipa_set_jf_unknown): New function.
(detect_type_change_from_memory_writes): Use ipa_set_jf_unknown.
(ipa_compute_jump_functions_for_edge): Also calculate alignment.
(update_jump_functions_after_inlining): Use ipa_set_jf_unknown.
(ipcp_grow_transformations_if_necessary): New function.
(ipa_set_node_agg_value_chain): Use ipcp_transformations.
(ipa_node_removal_hook): Likewise.
(ipa_node_duplication_hook): Also duplicate alignment results.
(ipa_write_jump_function): Also stream alignments.
(ipa_read_jump_function): Use ipa_set_jf_unknown, also stream
alignments.
(write_agg_replacement_chain): Renamed to
write_ipcp_transformation_info, also stream alignments.
(read_agg_replacement_chain): Renamed to
read_ipcp_transformation_info, also stream alignments.
(ipa_prop_write_all_agg_replacement): Renamed to
ipcp_write_transformation_summaries. Stream always.
(ipa_prop_read_all_agg_replacement): Renamed to
ipcp_read_transformation_summaries.
(ipcp_update_alignments): New function.
(ipcp_transform_function): Call it, free also alignments.

testsuite/
* gcc.dg/ipa/propalign-1.c: New test.
* gcc.dg/ipa/propalign-2.c: Likewise.

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

9 years ago2014-12-04 Richard Biener <rguenther@suse.de>
rguenth [Thu, 4 Dec 2014 12:35:42 +0000 (12:35 +0000)]
2014-12-04  Richard Biener  <rguenther@suse.de>

* gimple-fold.c (replace_stmt_with_simplification): Properly
fail when maybe_push_res_to_seq fails.

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

9 years agoAdd prefetch support for aarch64
gganesh [Thu, 4 Dec 2014 10:51:54 +0000 (10:51 +0000)]
Add prefetch support for aarch64

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

9 years ago * doc/install.texi: Remove mentions of cloog and ppl.
fxcoudert [Thu, 4 Dec 2014 10:31:56 +0000 (10:31 +0000)]
* doc/install.texi: Remove mentions of cloog and ppl.
* doc/invoke.texi: Likewise

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

9 years ago PR c++/56493
jakub [Thu, 4 Dec 2014 09:46:45 +0000 (09:46 +0000)]
PR c++/56493
* convert.c (convert_to_real, convert_to_expr, convert_to_complex):
Handle COMPOUND_EXPR.

* c-c++-common/pr56493.c: New test.

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

9 years ago[testsuite] Cache return value of check_effective_target_tiny
ktkachov [Thu, 4 Dec 2014 09:31:00 +0000 (09:31 +0000)]
[testsuite] Cache return value of check_effective_target_tiny

* lib/target-supports.exp (check_effective_target_tiny): Cache
predicate value.

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

9 years ago2014-12-04 Richard Biener <rguenther@suse.de>
rguenth [Thu, 4 Dec 2014 08:49:49 +0000 (08:49 +0000)]
2014-12-04  Richard Biener  <rguenther@suse.de>

* builtins.c (target_newline): Export.
(target_percent_s_newline): Likewise.
(fold_builtin_1): Do not fold printf functions here.
(fold_builtin_2): Likewise.
(fold_builtin_3): Likewise, do not fold strncat.
(fold_builtin_strncat): Move to gimple-fold.c.
(fold_builtin_printf): Likewise.
* builtins.h (target_newline): Declare.
(target_percent_s_newline): Likewise.
* gimple-fold.c (gimple_fold_builtin_strncat): Move from
builtins.c and gimplify.
(gimple_fold_builtin_printf): Likewise.
(gimple_fold_builtin): Fold strncat, printf, printf_unlocked,
vprintf, printf_chk and vprintf_chk here.

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

9 years ago PR testsuite/64145
fxcoudert [Thu, 4 Dec 2014 08:46:03 +0000 (08:46 +0000)]
PR testsuite/64145
* gcc.dg/graphite/isl-codegen-loop-dumping.c: Restore
-fgraphite-identity.

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

9 years ago * config/isl.m4: Don't pass -DCLOOG_INT_GMP on islinc.
fxcoudert [Thu, 4 Dec 2014 08:45:33 +0000 (08:45 +0000)]
* config/isl.m4: Don't pass -DCLOOG_INT_GMP on islinc.
* configure: Regenerated.

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

9 years ago PR libstdc++/64140
timshen [Thu, 4 Dec 2014 04:25:12 +0000 (04:25 +0000)]
PR libstdc++/64140
* include/bits/regex.tcc (regex_iterator<>::operator++): Update
prefix.matched after modifying prefix.first.
* testsuite/28_regex/iterators/regex_iterator/char/64140.cc: New
testcase.

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