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