gcc.git
9 years agojit: Add new testcase missing from r218521
David Malcolm [Tue, 9 Dec 2014 15:52:48 +0000 (15:52 +0000)]
jit: Add new testcase missing from r218521

I intended for r218521 to contain this file:

gcc/testsuite/ChangeLog:
* jit.dg/test-error-unrecognized-dump.c: New file.

Add it.

From-SVN: r218522

9 years agoPR jit/64166: Add API entrypoint gcc_jit_context_enable_dump
David Malcolm [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.

From-SVN: r218521

9 years agoPR jit/64166: Add methods to gcc::dump_manager needed by JIT testing
David Malcolm [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 *.

From-SVN: r218520

9 years agore PR bootstrap/64213 (gimple-match.c:1523:6: error: ‘GIMPLE’ was not declared in...
Uros Bizjak [Tue, 9 Dec 2014 14:34:32 +0000 (15:34 +0100)]
re PR bootstrap/64213 (gimple-match.c:1523:6: error: ‘GIMPLE’ was not declared in this scope)

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.

From-SVN: r218516

9 years agore PR tree-optimization/64193 (Decreased performance after r173250)
Richard Biener [Tue, 9 Dec 2014 14:25:09 +0000 (14:25 +0000)]
re PR tree-optimization/64193 (Decreased performance after r173250)

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.

From-SVN: r218515

9 years agoLocal Vim config with GNU formatting.
Yury Gribov [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.

From-SVN: r218514

9 years agore PR tree-optimization/64199 (ICE: tree check: expected class 'constant', have ...
Richard Biener [Tue, 9 Dec 2014 11:58:51 +0000 (11:58 +0000)]
re PR tree-optimization/64199 (ICE: tree check: expected class 'constant', have 'binary' (plus_expr) in fold_binary_loc, at fold-const.c:10404 with -ffast-math -frounding-math)

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.

From-SVN: r218513

9 years agore PR libstdc++/64203 (shared_mutex compile errors on bare-metal targets)
Jonathan Wakely [Tue, 9 Dec 2014 11:03:57 +0000 (11:03 +0000)]
re PR libstdc++/64203 (shared_mutex compile errors on bare-metal targets)

PR libstdc++/64203
* include/std/shared_mutex: Fix preprocessor conditions.
* testsuite/experimental/feat-cxx14.cc: Check conditions.

From-SVN: r218511

9 years agore PR tree-optimization/64191 (indirect clobbers messes up dead code elimination...
Richard Biener [Tue, 9 Dec 2014 09:13:18 +0000 (09:13 +0000)]
re PR tree-optimization/64191 (indirect clobbers messes up dead code elimination in loop calling dtor)

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).

From-SVN: r218509

9 years agolto-partition.c (privatize_symbol_name): Correctly privatize instrumentation clones.
Ilya Enkovich [Tue, 9 Dec 2014 08:00:52 +0000 (08:00 +0000)]
lto-partition.c (privatize_symbol_name): Correctly privatize instrumentation clones.

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.

From-SVN: r218508

9 years agolto-cgraph.c (input_cgraph_1): Don't break existing instrumentation clone references.
Ilya Enkovich [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-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.

From-SVN: r218507

9 years agore PR bootstrap/63995 (Bootstrap error with -mmpx -fcheck-pointer-bounds)
Ilya Enkovich [Tue, 9 Dec 2014 07:53:17 +0000 (07:53 +0000)]
re PR bootstrap/63995 (Bootstrap error with -mmpx -fcheck-pointer-bounds)

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.

From-SVN: r218506

9 years agore PR target/64204 (gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian after...
Michael Meissner [Tue, 9 Dec 2014 03:56:28 +0000 (03:56 +0000)]
re PR target/64204 (gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian after -mupper-regs patches went in)

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.

From-SVN: r218505

9 years agosimplify-rtx.c (simplify_relational_operation_1): Handle simplification identities...
Sandra Loosemore [Tue, 9 Dec 2014 02:53:00 +0000 (21:53 -0500)]
simplify-rtx.c (simplify_relational_operation_1): Handle simplification identities for BICS patterns.

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.

From-SVN: r218503

9 years agomove gimple_canonical_types htab out of gc memory
Trevor Saunders [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.

From-SVN: r218502

9 years agoremove param_is from nvptx
Trevor Saunders [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.

From-SVN: r218501

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

From-SVN: r218500

9 years agore PR target/64226 (Secondary reload incorrect TOC address)
David Edelsohn [Mon, 8 Dec 2014 23:47:39 +0000 (23:47 +0000)]
re PR target/64226 (Secondary reload incorrect TOC address)

        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.

From-SVN: r218497

9 years agoDWARFv5 Emit DW_TAG_atomic_type for C11 _Atomic.
Mark Wielaard [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.

From-SVN: r218496

9 years agoFix typo in ChangeLog
Jeff Law [Mon, 8 Dec 2014 22:11:42 +0000 (15:11 -0700)]
Fix typo in ChangeLog

From-SVN: r218495

9 years agore PR inline-asm/61692 (ICE in extract_insn in recog.c for asm with many parameters)
David Wohlferd [Mon, 8 Dec 2014 21:58:23 +0000 (21:58 +0000)]
re PR inline-asm/61692 (ICE in extract_insn in recog.c for asm with many parameters)

        PR target/61692
* cfgexpand.c (expand_asm_operands): Count all inline asm params.

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

From-SVN: r218494

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

From-SVN: r218491

9 years agoPR jit/63854: Introduce xstrdup_for_dump
David Malcolm [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.

From-SVN: r218490

9 years agolibgccjit++.h: use indentation to show inheritance
David Malcolm [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.

From-SVN: r218489

9 years agoMake jit/notes.txt better reflect current status quo
David Malcolm [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.

From-SVN: r218488

9 years agore PR ipa/64049 (r215898 caused wrong code at -O3)
Bernd Edlinger [Mon, 8 Dec 2014 18:30:15 +0000 (18:30 +0000)]
re PR ipa/64049 (r215898 caused wrong code at -O3)

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.

From-SVN: r218487

9 years agoBics instruction generation for aarch64
Alex Velenko [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.

From-SVN: r218486

9 years agore PR go/64198 (ICE in gofrontend)
Ian Lance Taylor [Mon, 8 Dec 2014 18:05:30 +0000 (18:05 +0000)]
re PR go/64198 (ICE in gofrontend)

PR go/64198
compiler: Don't crash on invalid ++.

From-SVN: r218485

9 years agoarm_neon.h (vrecpe_u32, [...]): Rewrite using builtin functions.
Felix Yang [Mon, 8 Dec 2014 14:19:44 +0000 (14:19 +0000)]
arm_neon.h (vrecpe_u32, [...]): Rewrite using builtin functions.

        * 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.

Co-Authored-By: Haijian Zhang <z.zhanghaijian@huawei.com>
Co-Authored-By: Jiji Jiang <jiangjiji@huawei.com>
Co-Authored-By: Pengfei Sui <suipengfei@huawei.com>
From-SVN: r218484

9 years agoEnable non-const v64qi permutations.
Ilya Tocar [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.

From-SVN: r218483

9 years agoEnable const permutations for V64QImode.
Ilya Tocar [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.

From-SVN: r218482

9 years agotree-chkp.c (chkp_build_returned_bound): Don't predict return bounds for strchr calls.
Ilya Enkovich [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.

* tree-chkp.c (chkp_build_returned_bound): Don't predict
return bounds for strchr calls.

From-SVN: r218479

9 years agotree-chkp.c (chkp_call_returns_bounds_p): New.
Ilya Enkovich [Mon, 8 Dec 2014 10:01:19 +0000 (10:01 +0000)]
tree-chkp.c (chkp_call_returns_bounds_p): New.

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.

From-SVN: r218478

9 years agobuiltins.c (fold_builtin_0): Remove unused ignore parameter.
Richard Biener [Mon, 8 Dec 2014 09:20:35 +0000 (09:20 +0000)]
builtins.c (fold_builtin_0): Remove unused ignore parameter.

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.

From-SVN: r218477

9 years agodon't ICE when section attribute is used on things in comdats
Trevor Saunders [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.

From-SVN: r218476

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

From-SVN: r218475

9 years agore PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)
Oleg Endo [Sun, 7 Dec 2014 23:19:59 +0000 (23:19 +0000)]
re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)

gcc/testsuite/
PR target/53513
* gcc.target/sh/pr54602-4.c: Fix matching of rte-nop sequence.

From-SVN: r218472

9 years agore PR target/50751 (SH Target: Displacement addressing does not work for QImode and...
Oleg Endo [Sun, 7 Dec 2014 22:57:11 +0000 (22:57 +0000)]
re PR target/50751 (SH Target: Displacement addressing does not work for QImode and HImode)

gcc/
PR target/50751
* config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.

From-SVN: r218469

9 years agocompare-elim.c: Fix head comment.
Eric Botcazou [Sun, 7 Dec 2014 21:55:47 +0000 (21:55 +0000)]
compare-elim.c: Fix head comment.

* 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.

From-SVN: r218468

9 years agore PR testsuite/64038 (FAIL: gcc.dg/ipa/ipa-icf-5.c (test for excess errors))
John David Anglin [Sun, 7 Dec 2014 17:48:56 +0000 (17:48 +0000)]
re PR testsuite/64038 (FAIL: gcc.dg/ipa/ipa-icf-5.c (test for excess errors))

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.

From-SVN: r218467

9 years agoh8300.exp: Fix duplicated text.
Oleg Endo [Sun, 7 Dec 2014 16:42:45 +0000 (16:42 +0000)]
h8300.exp: Fix duplicated text.

gcc/testsuite/
* gcc.target/h8300/h8300.exp: Fix duplicated text.
* gcc.target/h8300/pragma-isr.c: Likewise.
* gcc.target/h8300/pragma-isr2.c: Likewise.

From-SVN: r218465

9 years agoaarch64-simd.md (clrsb<mode>2, [...]): New patterns.
Felix Yang [Sun, 7 Dec 2014 15:01:23 +0000 (15:01 +0000)]
aarch64-simd.md (clrsb<mode>2, [...]): New patterns.

        * 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.

Co-Authored-By: Shanyao Chen <chenshanyao@huawei.com>
From-SVN: r218464

9 years ago[ARM,AArch64][testsuite] Fix vaddl and vaddw tests
Christophe Lyon [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.

From-SVN: r218463

9 years agosymtab.c (symtab_node::equal_address_to): New function.
Jan Hubicka [Sun, 7 Dec 2014 07:35:11 +0000 (08:35 +0100)]
symtab.c (symtab_node::equal_address_to): New function.

* 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.

From-SVN: r218462

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

From-SVN: r218461

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

From-SVN: r218460

9 years agoextend jump thread for finite state automata
James Greenhalgh [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.

Co-Authored-By: Brian Rzycki <b.rzycki@samsung.com>
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r218451

9 years agoerror.c (gfc_error_check): Use bool not int.
Tobias Burnus [Sat, 6 Dec 2014 16:53:40 +0000 (17:53 +0100)]
error.c (gfc_error_check): Use bool not int.

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.

From-SVN: r218450

9 years agoerror.c (gfc_buffer_error, [...]): Use bool not
Tobias Burnus [Sat, 6 Dec 2014 16:33:11 +0000 (17:33 +0100)]
error.c (gfc_buffer_error, [...]): Use bool not

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.

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

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

From-SVN: r218448

9 years agore PR tree-optimization/64183 (Complete unroll doesn't happen for a while-loop)
Marek Polacek [Sat, 6 Dec 2014 13:10:31 +0000 (13:10 +0000)]
re PR tree-optimization/64183 (Complete unroll doesn't happen for a while-loop)

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.

From-SVN: r218447

9 years agoDon't assert "alg != libcall" for -minline-stringops-dynamically
H.J. Lu [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.

From-SVN: r218446

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

From-SVN: r218444

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

From-SVN: r218443

9 years agore PR sanitizer/64170 (ICE compiling Linux Kernel drivers/media/rc/imon.c in imon_inc...
Jakub Jelinek [Fri, 5 Dec 2014 23:00:09 +0000 (00:00 +0100)]
re PR sanitizer/64170 (ICE compiling Linux Kernel drivers/media/rc/imon.c in imon_incoming_packet)

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.

From-SVN: r218440

9 years agomd.texi: Note problems using function calls to determine insn lengths and point reade...
Jeff Law [Fri, 5 Dec 2014 22:19:26 +0000 (15:19 -0700)]
md.texi: Note problems using function calls to determine insn lengths and point readers...

        * doc/md.texi: Note problems using function calls to determine
        insn lengths and point readers to a potential workaround.

From-SVN: r218439

9 years ago* combine.c (is_parallel_of_n_reg_sets)
Andreas 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.

From-SVN: r218436

9 years agoaarch64-simd-builtins.def (bswap): Use CF2 rather than CF10 so 2 is appended on the...
Andrew Pinski [Fri, 5 Dec 2014 19:44:47 +0000 (19:44 +0000)]
aarch64-simd-builtins.def (bswap): Use CF2 rather than CF10 so 2 is appended on the code.

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.

From-SVN: r218435

9 years agoregrename.c (find_best_rename_reg): Rename to ...
Thomas Preud'homme [Fri, 5 Dec 2014 18:36:57 +0000 (18:36 +0000)]
regrename.c (find_best_rename_reg): Rename to ...

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.

From-SVN: r218434

9 years agore PR ipa/64192 (r218369 causes some regressions with -m32.)
Martin Jambor [Fri, 5 Dec 2014 18:14:37 +0000 (19:14 +0100)]
re PR ipa/64192 (r218369 causes some regressions with -m32.)

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.

From-SVN: r218433

9 years ago[AArch64]Clarify the usage of SCHED in AARCH64_CORE macro
Renlin Li [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.

From-SVN: r218432

9 years agore PR target/53199 (__builtin_bswap64 and __builtin_bswap32 generate errors if -mcpu...
Michael Meissner [Fri, 5 Dec 2014 17:50:40 +0000 (17:50 +0000)]
re PR target/53199 (__builtin_bswap64 and __builtin_bswap32 generate errors if -mcpu=power6)

2014-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

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

From-SVN: r218431

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

From-SVN: r218430

9 years agodefaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
Olivier Hainque [Fri, 5 Dec 2014 17:01:42 +0000 (17:01 +0000)]
defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.

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.

From-SVN: r218429

9 years agodwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing one particular reg...
Olivier Hainque [Fri, 5 Dec 2014 16:53:22 +0000 (16:53 +0000)]
dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing one particular reg for expand_builtin_init_dwarf_reg_sizes.

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.

From-SVN: r218428

9 years agopr63341-1.c: Remove explicit "dg-do run".
Sandra Loosemore [Fri, 5 Dec 2014 16:18:30 +0000 (11:18 -0500)]
pr63341-1.c: Remove explicit "dg-do run".

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.

From-SVN: r218427

9 years agore PR target/64003 (valgrind complains about get_attr_length_nobnd in insn-attrtab...
Ilya Enkovich [Fri, 5 Dec 2014 16:00:52 +0000 (16:00 +0000)]
re PR target/64003 (valgrind complains about get_attr_length_nobnd in insn-attrtab.c from i386.md)

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.

From-SVN: r218426

9 years ago[AArch64] Use selected cpu's tuning when no tuning parameter is specified
Renlin Li [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.

From-SVN: r218425

9 years agoxcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append alignment to section name.
David Edelsohn [Fri, 5 Dec 2014 15:04:55 +0000 (15:04 +0000)]
xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append alignment to section name.

* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_LOCAL): Append
alignment to section name. Increase default alignment to word.

From-SVN: r218424

9 years agore PR fortran/60414 (internal compiler error: tree check)
Andre Vehreschild [Fri, 5 Dec 2014 14:15:27 +0000 (15:15 +0100)]
re PR fortran/60414 (internal compiler error: tree check)

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.

From-SVN: r218422

9 years agocgraph.h (cgraph_node): New method expand_all_artificial_thunks.
Martin Jambor [Fri, 5 Dec 2014 11:06:26 +0000 (12:06 +0100)]
cgraph.h (cgraph_node): New method expand_all_artificial_thunks.

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.

From-SVN: r218417

9 years agohashtable_policy.h (_Map_base::operator[], [...]): Simplify definitions with trailing...
Jonathan Wakely [Fri, 5 Dec 2014 10:35:51 +0000 (10:35 +0000)]
hashtable_policy.h (_Map_base::operator[], [...]): Simplify definitions with trailing return types.

* include/bits/hashtable_policy.h (_Map_base::operator[],
_Map_base::at): Simplify definitions with trailing return types.

From-SVN: r218416

9 years agore PR target/64056 (gcc.target/i386/chkp-strlen-4.c etc. FAIL)
Ilya Enkovich [Fri, 5 Dec 2014 10:01:33 +0000 (10:01 +0000)]
re PR target/64056 (gcc.target/i386/chkp-strlen-4.c etc. FAIL)

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.

From-SVN: r218415

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

From-SVN: r218413

9 years agoThis test should have been added in revision 218407.
Manuel López-Ibáñez [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.

From-SVN: r218410

9 years agoerror.c (gfc_diagnostic_build_locus_prefix): Use diagnostic_expand_location.
Manuel López-Ibáñez [Thu, 4 Dec 2014 23:59:35 +0000 (23:59 +0000)]
error.c (gfc_diagnostic_build_locus_prefix): Use diagnostic_expand_location.

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.

From-SVN: r218409

9 years agoAlways define HAVE_LD_PIE_COPYRELOC
H.J. Lu [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.

From-SVN: r218408

9 years agoline-map.c (linemap_position_for_loc_and_offset): Add new linemap_assert_fails.
Manuel López-Ibáñez [Thu, 4 Dec 2014 23:35:29 +0000 (23:35 +0000)]
line-map.c (linemap_position_for_loc_and_offset): Add new linemap_assert_fails.

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.

From-SVN: r218407

9 years agodiagnostic.c (diagnostic_color_init): New.
Manuel López-Ibáñez [Thu, 4 Dec 2014 23:09:41 +0000 (23:09 +0000)]
diagnostic.c (diagnostic_color_init): New.

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.

From-SVN: r218406

9 years agoAvoid overuse of name "buffer" in tree-pretty-print.c
David Malcolm [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.

From-SVN: r218405

9 years agoPR jit/63854: Fix double-initialization within tree-pretty-print.c
David Malcolm [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.

From-SVN: r218404

9 years agoPR jit/63854: Fix leak of ipa hooks
David Malcolm [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".

From-SVN: r218403

9 years agore PR c++/64029 (const int (&in)[]{1,2,3,4,5}; results in internal compiler error...
Jason Merrill [Thu, 4 Dec 2014 20:37:30 +0000 (15:37 -0500)]
re PR c++/64029 (const int (&in)[]{1,2,3,4,5}; results in internal compiler error: Segmentation fault)

PR c++/64029
* decl.c (grok_reference_init): Complete array type.

From-SVN: r218402

9 years agore PR c++/64080 ([C++14]ICE in cxx_eval_store_expression)
Jason Merrill [Thu, 4 Dec 2014 20:37:24 +0000 (15:37 -0500)]
re PR c++/64080 ([C++14]ICE in cxx_eval_store_expression)

PR c++/64080
* constexpr.c (cxx_eval_store_expression): Handle non-decl store
targets.

From-SVN: r218401

9 years agofix comment
Jason Merrill [Thu, 4 Dec 2014 20:37:14 +0000 (15:37 -0500)]
fix comment

From-SVN: r218400

9 years agoUpdate docs to reflect use of gimple subclasses
David Malcolm [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.

From-SVN: r218399

9 years agox86-64: Optimize access to globals in PIE with copy reloc
Sriraman Tallam [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.

Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r218397

9 years agore PR middle-end/56917 (-ftrapv detects a overflow wrongly.)
Marek Polacek [Thu, 4 Dec 2014 19:20:12 +0000 (19:20 +0000)]
re PR middle-end/56917 (-ftrapv detects a overflow wrongly.)

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.

From-SVN: r218395

9 years agoMakefile.in: Remove CLOOGLIB and CLOOGINC.
Tobias Burnus [Thu, 4 Dec 2014 18:18:21 +0000 (19:18 +0100)]
Makefile.in: Remove CLOOGLIB and CLOOGINC.

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

        * Makefile.in: Remove CLOOGLIB and CLOOGINC.

From-SVN: r218389

9 years agocheck_GNU_style.sh: Warn for incorrect number of spaces in function call only if...
Thomas Preud'homme [Thu, 4 Dec 2014 16:39:47 +0000 (16:39 +0000)]
check_GNU_style.sh: Warn for incorrect number of spaces in function call only if 0 or 2+ spaces found.

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.

From-SVN: r218382

9 years agomatch-and-simplify.texi: Update for recent changes.
Richard Biener [Thu, 4 Dec 2014 14:44:57 +0000 (14:44 +0000)]
match-and-simplify.texi: Update for recent changes.

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

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

From-SVN: r218372

9 years agoipa-prop.h (ipa_alignment): New type.
Martin Jambor [Thu, 4 Dec 2014 14:37:01 +0000 (15:37 +0100)]
ipa-prop.h (ipa_alignment): New type.

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.

From-SVN: r218369

9 years agogimple-fold.c (replace_stmt_with_simplification): Properly fail when maybe_push_res_t...
Richard Biener [Thu, 4 Dec 2014 12:35:42 +0000 (12:35 +0000)]
gimple-fold.c (replace_stmt_with_simplification): Properly fail when maybe_push_res_to_seq fails.

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

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

From-SVN: r218353

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

From-SVN: r218349

9 years agoinstall.texi: Remove mentions of cloog and ppl.
Francois-Xavier Coudert [Thu, 4 Dec 2014 10:31:56 +0000 (10:31 +0000)]
install.texi: Remove mentions of cloog and ppl.

* doc/install.texi: Remove mentions of cloog and ppl.
* doc/invoke.texi: Likewise

From-SVN: r218348

9 years agore PR c++/56493 (Performance regression in google dense hashmap)
Jakub Jelinek [Thu, 4 Dec 2014 09:46:45 +0000 (10:46 +0100)]
re PR c++/56493 (Performance regression in google dense hashmap)

PR c++/56493
* convert.c (convert_to_real, convert_to_expr, convert_to_complex):
Handle COMPOUND_EXPR.

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

From-SVN: r218345

9 years ago[testsuite] Cache return value of check_effective_target_tiny
Kyrylo Tkachov [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.

From-SVN: r218344

9 years agobuiltins.c (target_newline): Export.
Richard Biener [Thu, 4 Dec 2014 08:49:49 +0000 (08:49 +0000)]
builtins.c (target_newline): Export.

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.

From-SVN: r218343

9 years agore PR testsuite/64145 (gcc.dg/graphite/isl-codegen-loop-dumping.c UNRESOLVED after...
Jack Howarth [Thu, 4 Dec 2014 08:46:03 +0000 (08:46 +0000)]
re PR testsuite/64145 (gcc.dg/graphite/isl-codegen-loop-dumping.c UNRESOLVED after r217315.)

PR testsuite/64145
* gcc.dg/graphite/isl-codegen-loop-dumping.c: Restore
-fgraphite-identity.

From-SVN: r218342

9 years agoisl.m4: Don't pass -DCLOOG_INT_GMP on islinc.
Jack Howarth [Thu, 4 Dec 2014 08:45:33 +0000 (08:45 +0000)]
isl.m4: Don't pass -DCLOOG_INT_GMP on islinc.

* config/isl.m4: Don't pass -DCLOOG_INT_GMP on islinc.
* configure: Regenerated.

From-SVN: r218341