Ian Lance Taylor [Thu, 15 Jan 2015 00:40:25 +0000 (00:40 +0000)]
Add files somehow left out of last commit (upgrade to Go 1.4).
From-SVN: r219628
Ian Lance Taylor [Thu, 15 Jan 2015 00:27:56 +0000 (00:27 +0000)]
libgo, compiler: Upgrade libgo to Go 1.4, except for runtime.
This upgrades all of libgo other than the runtime package to
the Go 1.4 release. In Go 1.4 much of the runtime was
rewritten into Go. Merging that code will take more time and
will not change the API, so I'm putting it off for now.
There are a few runtime changes anyhow, to accomodate other
packages that rely on minor modifications to the runtime
support.
The compiler changes slightly to add a one-bit flag to each
type descriptor kind that is stored directly in an interface,
which for gccgo is currently only pointer types. Another
one-bit flag (gcprog) is reserved because it is used by the gc
compiler, but gccgo does not currently use it.
There is another error check in the compiler since I ran
across it during testing.
gotools/:
* Makefile.am (go_cmd_go_files): Sort entries. Add generate.go.
* Makefile.in: Rebuild.
From-SVN: r219627
GCC Administrator [Thu, 15 Jan 2015 00:17:03 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r219626
Oleg Endo [Wed, 14 Jan 2015 23:46:34 +0000 (23:46 +0000)]
re PR target/53988 ([SH] tst Rm,Rn not used for QI/HImode)
gcc/
PR target/53988
* config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
reg-reg copies.
(sh_extending_set_of_reg): New struct.
(sh_find_extending_set_of_reg, sh_split_tst_subregs,
sh_remove_reg_dead_or_unused_notes): New Declarations.
* config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
sh_find_extending_set_of_reg, sh_split_tst_subregs,
sh_extending_set_of_reg::use_as_extended_reg): New functions.
* config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
convert to insn_and_split and use new function sh_split_tst_subregs.
gcc/testsuite/
PR target/53988
* gcc.target/sh/pr53988-1.c: New.
From-SVN: r219623
Sandra Loosemore [Wed, 14 Jan 2015 23:09:03 +0000 (18:09 -0500)]
invoke.texi (Option Summary): Reclassify -fuse-ld as a linker option.
2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
option.
(Optimization Options): Move -fuse-ld documentation to...
(Link Options): ...here.
From-SVN: r219622
Paolo Carlini [Wed, 14 Jan 2015 22:28:07 +0000 (22:28 +0000)]
re PR c++/58671 ([c++11] ICE with thread_local and self-referential variable initialization)
/cp
2015-01-14 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58671
* decl2.c (var_defined_without_dynamic_init): Handle gracefully
self-initialization.
/testsuite
2015-01-14 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58671
* g++.dg/tls/thread_local-ice3.C: New.
From-SVN: r219621
Matthew Fortune [Wed, 14 Jan 2015 22:10:21 +0000 (22:10 +0000)]
Fix indentation in an earlier gcc/ChangeLog update
From-SVN: r219620
Matthew Fortune [Wed, 14 Jan 2015 22:08:37 +0000 (22:08 +0000)]
[MIPS] Update the ZC constraint.
gcc/
* config/mips/constraints.md (ZC): Add support for R6 LL/SC
offsets.
(ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
* config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
(ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
instead of ZR for the memory operand of LL/SC.
(compare_and_swap_12, sync_add<mode>): Likewise.
(sync_<optab>_12, sync_old_<optab>_12): Likewise.
(sync_new_<optab>_12, sync_nand_12): Likewise.
(sync_old_nand_12, sync_new_nand_12): Likewise.
(sync_sub<mode>, sync_old_add<mode>): Likewise.
(sync_old_sub<mode>, sync_new_add<mode>): Likewise.
(sync_new_sub<mode>, sync_<optab><mode>): Likewise.
(sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
(sync_nand<mode>, sync_old_nand<mode>): Likewise.
(sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
(test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
(atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
* doc/md.texi (ZC): Update description.
From-SVN: r219619
Jan-Benedict Glaw [Wed, 14 Jan 2015 21:55:35 +0000 (21:55 +0000)]
Pull libiberty.h copyright update from Binutils
2015-12-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* libiberty.h: Merge Copyright year update from Binutils.
From-SVN: r219617
H.J. Lu [Wed, 14 Jan 2015 21:51:09 +0000 (21:51 +0000)]
Correct target selector in -mfentry tests
-fprofile -mfentry works with PIE if gcrt1.o is compiled with -fPIC. A
glibc has been filed, PR 17836, and a glibc patch has been submitted.
* gcc.target/i386/fentry-override.c: Properly place {} in target
selector. Remove nonpic.
* gcc.target/i386/fentry.c: Likewise.
From-SVN: r219616
Andrew MacLeod [Wed, 14 Jan 2015 21:30:39 +0000 (21:30 +0000)]
builtins.c (expand_builtin_atomic_exchange): Remove error when memory model is CONSUME.
2015-01-14 Andrew MacLeod <amacleod@redhat.com>
* builtins.c (expand_builtin_atomic_exchange): Remove error when
memory model is CONSUME.
(expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
expand_builtin_atomic_store): Change invalid memory model errors to
warnings.
(expand_builtin_atomic_clear): Change invalid model errors to warnings
and issue warning for CONSUME.
* testsuite/gcc.dg/atomic-invalid.c: Check for invalid memory model
warnings instead of errors.
M gcc/ChangeLog
M gcc/builtins.c
M gcc/testsuite/ChangeLog
M gcc/testsuite/gcc.dg/atomic-invalid.c
From-SVN: r219615
Aldy Hernandez [Wed, 14 Jan 2015 16:37:15 +0000 (16:37 +0000)]
+ * lto-cgraph: Update function comments for
+ lto_symtab_encoder_encode_*.
From-SVN: r219607
Ilya Verbin [Wed, 14 Jan 2015 15:51:37 +0000 (15:51 +0000)]
Makefile.in (site.exp): Do not set ENABLE_LTO.
gcc/
* Makefile.in (site.exp): Do not set ENABLE_LTO.
gcc/testsuite/
* lib/target-supports.exp (check_effective_target_lto): Check for -flto
option support instead of ENABLE_LTO from Makefile.
From-SVN: r219606
Ilya Verbin [Wed, 14 Jan 2015 15:15:21 +0000 (15:15 +0000)]
cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
gcc/
* cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
* lto-cgraph.c (select_what_to_stream): Remove argument, use
lto_stream_offload_p instead.
* lto-streamer.h (select_what_to_stream): Remove argument.
* passes.c (ipa_write_summaries): Likewise.
* tree-pass.h (ipa_write_summaries): Likewise.
gcc/lto/
* lto-partition.c (lto_promote_cross_file_statics): Remove argument
from select_what_to_stream.
From-SVN: r219605
Ilya Tocar [Wed, 14 Jan 2015 14:23:47 +0000 (17:23 +0300)]
Fix year in ChangeLog.
From-SVN: r219604
Richard Biener [Wed, 14 Jan 2015 14:06:07 +0000 (14:06 +0000)]
re PR tree-optimization/59354 (Element swizzling produces invalid result with -O3)
2015-01-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/59354
* tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
groups larger than the slp group size as having gaps.
* gcc.dg/vect/pr59354.c: New testcase.
From-SVN: r219603
Andrew Stubbs [Wed, 14 Jan 2015 14:03:10 +0000 (14:03 +0000)]
Fix neon test fails on non-neon configs.
gcc/testsuite/
* lib/target-supports.exp
(check_effective_target_arm_neon_ok_nocache): Don't try to test Neon
on ARM architures before v7.
From-SVN: r219602
Andrew MacLeod [Wed, 14 Jan 2015 13:58:35 +0000 (13:58 +0000)]
re PR middle-end/59448 (Code generation doesn't respect C11 address-dependency)
2015-01-14 Andrew MacLeod <amacleod@redhat.com>
PR middle-end/59448
* builtins.c (get_memmodel): Promote consume to acquire always.
* testsuite/gcc.dg/atomic-invalid.c: Remove obselete test for illegal
consume in an atomic_exchange.
From-SVN: r219601
Ilya Tocar [Wed, 14 Jan 2015 13:55:06 +0000 (13:55 +0000)]
re PR target/64386 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -mavx512bw)
PR target/64386
gcc/
PR target/64386
* config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
V32HImode.
testsuite/
* gcc.target/i386/pr64386.c: New test.
From-SVN: r219600
Ilya Tocar [Wed, 14 Jan 2015 13:49:58 +0000 (13:49 +0000)]
re PR target/64393 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -mavx512vbmi)
PR target/64393
gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
Enable AVX512BW.
(OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
* config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
AVX512VBMI, as it implies AVX512BW.
testsuite/
* gcc.target/i386/pr64393.c: New test.
From-SVN: r219599
Ilya Tocar [Wed, 14 Jan 2015 13:45:49 +0000 (13:45 +0000)]
re PR target/64387 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with -ffloat-store -mavx512er)
PR target/64387
gcc/
* config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
(vec_unpacks_hi_v16sf): Ditto.
testsuite/
* gcc.target/i386/pr64387.c: New test.
From-SVN: r219598
Christophe Lyon [Wed, 14 Jan 2015 12:07:43 +0000 (12:07 +0000)]
store-pair-1.c: Fix typo.
2015-01-14 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/store-pair-1.c: Fix typo.
From-SVN: r219595
Kyrylo Tkachov [Wed, 14 Jan 2015 12:03:22 +0000 (12:03 +0000)]
[AArch64] Error out of arm_neon.h if nofp/nosimd
* config/aarch64/arm_neon.h: Error out if AdvancedSIMD
is not available.
* gcc.target/aarch64/arm_neon-nosimd-error.c: New test.
From-SVN: r219594
Kyrylo Tkachov [Wed, 14 Jan 2015 11:58:06 +0000 (11:58 +0000)]
[doc][ARM] Deprecate -mapcs and -mapcs-frame.
* doc/invoke.texi (mapcs): Mention deprecation.
(mapcs-frame): Likewise.
From-SVN: r219593
Thomas Preud'homme [Wed, 14 Jan 2015 11:51:40 +0000 (11:51 +0000)]
re PR target/64453 (Live high register not saved in function prolog on ARM with -Os)
2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR target/64453
* config/arm/arm.c (callee_saved_reg_p): Define.
(arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
register is callee saved instead of !call_used_regs[reg].
(thumb1_compute_save_reg_mask): Likewise.
gcc/testsuite/
PR target/64453
* gcc.target/arm/pr64453.c: New.
From-SVN: r219592
Hale Wang [Wed, 14 Jan 2015 11:15:30 +0000 (11:15 +0000)]
arm.c: Tune the max_cond_insns/branch_cost for Cortex-M7.
2015-01-14 Hale Wang <hale.wang@arm.com>
* config/arm/arm.c: Tune the max_cond_insns/branch_cost for
Cortex-M7.
From-SVN: r219589
Richard Biener [Wed, 14 Jan 2015 11:06:18 +0000 (11:06 +0000)]
re PR middle-end/64415 (ICE: verify_ssa failed / segmentation fault with LTO)
2015-01-14 Richard Biener <rguenther@suse.de>
PR lto/64415
* tree-inline.c (insert_debug_decl_map): Check destination
function MAY_HAVE_DEBUG_STMTS.
(insert_init_debug_bind): Likewise.
(insert_init_stmt): Remove redundant check.
(remap_gimple_stmt): Drop debug stmts if the destination
function has var-tracking assignments disabled.
* gcc.dg/lto/pr64415_0.c: New testcase.
* gcc.dg/lto/pr64415_1.c: Likewise.
From-SVN: r219588
Martin Liska [Wed, 14 Jan 2015 10:35:13 +0000 (11:35 +0100)]
IPA ICF: handle IMAGPART_EXPR and REALPART_EXPR.
* gcc.dg/ipa/pr64307.c: New test.
* ipa-icf-gimple.c (func_checker::compare_operand): Add support for
IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
From-SVN: r219586
Tejas Belagod [Wed, 14 Jan 2015 10:29:09 +0000 (10:29 +0000)]
vect-movi.c: Check for vectorization for 64-bit and 128-bit.
2015-01-14 Tejas Belagod <tejas.belagod@arm.com>
* gcc.target/aarch64/vect-movi.c: Check for vectorization for
64-bit and 128-bit.
From-SVN: r219585
Kyrylo Tkachov [Wed, 14 Jan 2015 10:14:23 +0000 (10:14 +0000)]
[ARM] Fix PR target/64460: Set 'shift' attr properly on some patterns.
PR target/64460
* config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
(*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
* gcc.target/arm/pr64460_1.c: New test.
From-SVN: r219583
Matthew Fortune [Wed, 14 Jan 2015 08:35:52 +0000 (08:35 +0000)]
Fix Linux multilib configurations with default architectures
gcc/
* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
level from an ARCH; do not inject the default.
(MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
MIPS_ISA_LEVEL_SPEC.
(MIPS_ISA_NAN2008_SPEC): Update comment.
(BASE_DRIVER_SELF_SPECS): Likewise.
* config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
MIPS_DEFAULT_ISA_LEVEL_SPEC.
* config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
* config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
From-SVN: r219580
Richard Biener [Wed, 14 Jan 2015 08:32:18 +0000 (08:32 +0000)]
re PR tree-optimization/64493 (ICE at -O3 on x86_64-linux-gnu)
2015-01-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/64493
PR tree-optimization/64495
* tree-vect-loop.c (vect_finalize_reduction): For double-reductions
assign the proper vectorized PHI to the inner loop exit PHIs.
* gcc.dg/vect/pr64493.c: New testcase.
* gcc.dg/vect/pr64495.c: Likewise.
From-SVN: r219579
Joey Ye [Wed, 14 Jan 2015 08:17:15 +0000 (08:17 +0000)]
arm.c (arm_compute_save_reg_mask): Do not save lr in case of tail call.
2015-01-14 Joey Ye <joey.ye@arm.com>
* config/arm/arm.c (arm_compute_save_reg_mask):
Do not save lr in case of tail call.
* config/arm/thumb2.md (*thumb2_pop_single): New pattern.
From-SVN: r219578
Martin Uecker [Wed, 14 Jan 2015 06:50:19 +0000 (22:50 -0800)]
tree-vrp.c (check_array_ref): Emit more warnings for warn_array_bounds >= 2.
* tree-vrp.c (check_array_ref): Emit more warnings
for warn_array_bounds >= 2.
* common.opt: New option -Warray-bounds=.
* doc/invoke.texi: Document -Warray-bounds=.
* c.opt: New option -Warray-bounds=.
* gcc.dg/Warray-bounds-11.c: New test-case.
From-SVN: r219577
Chung-Ju Wu [Wed, 14 Jan 2015 06:08:35 +0000 (06:08 +0000)]
[NDS32] Remove some features and options that are not available yet in nds32 port of GNU binutils package.
gcc/
* config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
(mforbid-fp-as-gp): Remove.
(mex9): Remove.
* config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
(nds32_symbol_load_store_p): Remove.
(nds32_fp_as_gp_check_available): Clean up implementation.
* config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
cases.
* config/nds32/nds32.c (nds32_asm_file_start): No need to consider
fp-as-gp and ex9 cases.
From-SVN: r219576
Naveen H.S [Wed, 14 Jan 2015 06:08:24 +0000 (06:08 +0000)]
octeon3-pipe-1.c: New test.
* gcc.target/mips/octeon3-pipe-1.c: New test.
From-SVN: r219575
Jan Hubicka [Wed, 14 Jan 2015 05:28:50 +0000 (06:28 +0100)]
tree-profile.c (init_ic_make_global_vars): Drop workaround for bintuils bug 14342.
* tree-profile.c (init_ic_make_global_vars): Drop workaround
for bintuils bug 14342.
(init_ic_make_global_vars): Likewise.
(gimple_init_edge_profiler): Likewise.
(gimple_gen_ic_func_profiler): Likewise.
From-SVN: r219574
Naveen H.S [Wed, 14 Jan 2015 05:10:44 +0000 (05:10 +0000)]
ipa-inline.c (inline_small_functions): Swap the operands in enum.
2015-01-15 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
* ipa-inline.c (inline_small_functions): Swap the operands in
enum.
From-SVN: r219573
Jan Hubicka [Wed, 14 Jan 2015 03:47:17 +0000 (04:47 +0100)]
re PR ipa/64481 (r219076 breaks bootstrap (x86_64-unknown-linux-gnu))
PR ipa/64481
* ipa-inline-analysis.c (node_growth_cache): Remove.
(initialize_growth_caches): Do not initialize it.
(free_growth_caches): Do not free it.
(do_estimate_growth): Rename to ...
(estimate_growth): ... this one; drop growth cache code.
(growth_likely_positive): Always go the heuristics way.
* ipa-inline.c (can_inline_edge_p): Walk through aliases.
(reset_edge_caches): Do not reset node growth.
(heap_edge_removal_hook): Do not maintain cache.
(inline_small_functions): Likewise; strenghten sanity check.
(ipa_inline): Do not maintain caches.
* ipa-inline.h (node_growth_cache): Remove.
(do_estimate_growth): Remove to ...
(estimate_growth): this one; remove inline version.
(reset_node_growth_cache): Remove.
From-SVN: r219572
GCC Administrator [Wed, 14 Jan 2015 00:16:58 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219569
Kaz Kojima [Tue, 13 Jan 2015 23:30:33 +0000 (23:30 +0000)]
configure.host: Remove extra brackets for sh.
* libffi/configure.host: Remove extra brackets for sh.
From-SVN: r219565
David Malcolm [Tue, 13 Jan 2015 22:14:46 +0000 (22:14 +0000)]
jit: New API entrypoint: gcc_jit_context_dump_reproducer_to_file
gcc/jit/ChangeLog:
* docs/cp/topics/contexts.rst (Debugging): Add
gccjit::context::dump_reproducer_to_file.
* docs/internals/index.rst (Design notes): New section,
discussing input validation and
gcc_jit_context_dump_reproducer_to_file.
* docs/topics/contexts.rst (Debugging): Add
gcc_jit_context_dump_reproducer_to_file.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::dump::get_context): New accessor.
* jit-recording.c: Include "hash-map.h".
Within namespace ::gcc::jit...
(dump::write): Flush each line.
(dump::make_location): Pass false for new param "created_by_user".
(class allocator): New class.
(allocator::~allocator): New function.
(allocator::xstrdup_printf): New function.
(allocator::xstrdup_printf_va): New function.
(class reproducer): New subclass of dump.
(reproducer::reproducer): New function.
(reproducer::write_params): New function.
(reproducer::write_args): New function.
(reproducer::make_identifier): New function.
(reproducer::make_tmp_identifier): New function.
(reproducer::get_identifier): New pair of functions.
(reproducer::get_identifier_as_rvalue): New function.
(reproducer::get_identifier_as_lvalue): New function.
(reproducer::get_identifier_as_type): New function.
(reproducer::xstrdup_printf): New function.
(recording::context::context): Initialize m_toplevel_ctxt.
(recording::context::new_location): Add param created_by_user.
(str_option_reproducer_strings): New table of strings.
(int_option_reproducer_strings): Likewise.
(bool_option_reproducer_strings): Likewise.
(get_type_enum_strings): Likewise.
(names_of_function_kinds): Likewise.
(global_kind_reproducer_strings): Likewise.
(unary_op_reproducer_strings): Likewise.
(binary_op_reproducer_strings): Likewise.
(comparison_reproducer_strings): Likewise.
Within namespace ::gcc::jit::recording::...
(context::dump_reproducer_to_file): New function.
(string::write_reproducer): Likewise.
(location::write_reproducer): Likewise.
(type::access_as_type): Likewise.
(memento_of_get_type::write_reproducer): Likewise.
(memento_of_get_pointer::write_reproducer): Likewise.
(memento_of_get_const::write_reproducer): Likewise.
(memento_of_get_volatile::write_reproducer): Likewise.
(array_type::write_reproducer): Likewise.
(function_type::write_reproducer): Likewise.
(function_type::write_deferred_reproducer): Likewise.
(field::write_reproducer): Likewise.
(struct_::access_as_type): Likewise.
(struct_::write_reproducer): Likewise.
(union_::write_reproducer): Likewise.
(fields::write_reproducer): Likewise.
(rvalue::access_as_rvalue): Likewise.
(lvalue::access_as_rvalue): Likewise.
(lvalue::access_as_lvalue): Likewise.
(param::access_as_rvalue): Likewise.
(param::access_as_lvalue): Likewise.
(param::write_reproducer): Likewise.
(function::write_reproducer): Likewise.
(block::write_reproducer): Likewise.
(global::write_reproducer): Likewise.
(memento_of_new_rvalue_from_const <int>::write_reproducer):
Likewise.
(memento_of_new_rvalue_from_const <long>::write_reproducer):
Likewise.
(memento_of_new_rvalue_from_const <double>::write_reproducer):
Likewise.
(memento_of_new_rvalue_from_const <void *>::write_reproducer):
Likewise.
(memento_of_new_string_literal::write_reproducer): Likewise.
(unary_op::write_reproducer): Likewise.
(binary_op::write_reproducer): Likewise.
(comparison::write_reproducer): Likewise.
(cast::write_reproducer): Likewise.
(call::write_reproducer): Likewise.
(call_through_ptr::write_reproducer): Likewise.
(array_access::write_reproducer): Likewise.
(access_field_of_lvalue::write_reproducer): Likewise.
(access_field_rvalue::write_reproducer): Likewise.
(dereference_field_rvalue::write_reproducer): Likewise.
(dereference_rvalue::write_reproducer): Likewise.
(get_address_of_lvalue::write_reproducer): Likewise.
(local::write_reproducer): Likewise.
(eval::write_reproducer): Likewise.
(assignment::write_reproducer): Likewise.
(assignment_op::write_reproducer): Likewise.
(comment::write_reproducer): Likewise.
(conditional::write_reproducer): Likewise.
(jump::write_reproducer): Likewise.
(return_::write_reproducer): Likewise.
* jit-recording.h (gcc::jit::reproducer): New forward declararion.
Within namespace ::gcc::jit::recording::...
(context::new_location): Add "created_by_user" param.
(context::dump_reproducer_to_file): New method.
(context::m_toplevel_ctxt): New field.
(memento::write_reproducer): New pure virtual function.
(memento::dyn_cast_location): New virtual function.
(string::write_reproducer):
(location::location): Add "created_by_user" param.
(location::dyn_cast_location): New function.
(location::created_by_user): New accessor.
(location::write_reproducer): New function.
(location::m_created_by_user): New field.
(type::access_as_type): New virtual function.
(location::write_reproducer): Likewise.
(type::access_as_type): Likewise.
(memento_of_get_type::write_reproducer): Likewise.
(memento_of_get_pointer::write_reproducer): Likewise.
(memento_of_get_const::write_reproducer): Likewise.
(memento_of_get_volatile::write_reproducer): Likewise.
(array_type::write_reproducer): Likewise.
(function_type::write_reproducer): Likewise.
(function_type::write_deferred_reproducer): Likewise.
(field::write_reproducer): Likewise.
(struct_::access_as_type): Likewise.
(struct_::write_reproducer): Likewise.
(union_::write_reproducer): Likewise.
(union_::m_fields): Remove stray unused field.
(fields::length): New accessor.
(fields::get_field): New accessor.
(fields::write_reproducer): New function.
(rvalue::access_as_rvalue): Likewise.
(lvalue::access_as_rvalue): Likewise.
(lvalue::access_as_lvalue): Likewise.
(param::access_as_rvalue): Likewise.
(param::access_as_lvalue): Likewise.
(param::write_reproducer): Likewise.
(function::write_reproducer): Likewise.
(block::write_reproducer): Likewise.
(global::write_reproducer): Likewise.
(memento_of_new_rvalue_from_const <HOST_TYPE>::write_reproducer):
Likewise.
(memento_of_new_string_literal::write_reproducer): Likewise.
(unary_op::write_reproducer): Likewise.
(binary_op::write_reproducer): Likewise.
(comparison::write_reproducer): Likewise.
(cast::write_reproducer): Likewise.
(call::write_reproducer): Likewise.
(call_through_ptr::write_reproducer): Likewise.
(array_access::write_reproducer): Likewise.
(access_field_of_lvalue::write_reproducer): Likewise.
(access_field_rvalue::write_reproducer): Likewise.
(dereference_field_rvalue::write_reproducer): Likewise.
(dereference_rvalue::write_reproducer): Likewise.
(get_address_of_lvalue::write_reproducer): Likewise.
(local::write_reproducer): Likewise.
(eval::write_reproducer): Likewise.
(assignment::write_reproducer): Likewise.
(assignment_op::write_reproducer): Likewise.
(comment::write_reproducer): Likewise.
(conditional::write_reproducer): Likewise.
(jump::write_reproducer): Likewise.
(return_::write_reproducer): Likewise.
* libgccjit++.h (gccjit::context::dump_reproducer_to_file): New.
* libgccjit.c (gcc_jit_context_new_location): Pass "true" as
param "created_by_user".
(gcc_jit_context_dump_reproducer_to_file): New API entrypoint.
* libgccjit.h (gcc_jit_context_dump_reproducer_to_file): New API
entrypoint.
* libgccjit.map (gcc_jit_context_dump_reproducer_to_file): New API
entrypoint.
gcc/testsuite/ChangeLog:
* jit.dg/harness.h (set_up_logging): Move string concatenation
into...
(concat_strings): New function.
(dump_reproducer): New function.
(test_jit): Call dump_reproducer.
* jit.dg/jit.exp (is_testcase_meant_to_generate_a_reproducer): New
function.
(jit-dg-test): Delete any generated reproducer from previous runs.
Verify that a generated reproducer was created, and verify that it
compiles.
* jit.dg/test-nested-contexts.c (main): Call
gcc_jit_context_dump_reproducer_to_file.
From-SVN: r219564
H.J. Lu [Tue, 13 Jan 2015 21:24:16 +0000 (21:24 +0000)]
Add dg-require-profiling to gcc.dg/aru-2.c
* gcc.dg/aru-2.c: Add dg-require-profiling.
From-SVN: r219561
H.J. Lu [Tue, 13 Jan 2015 21:13:36 +0000 (21:13 +0000)]
Check if -pg links in check_profiling_available
* lib/target-supports.exp (check_profiling_available): Check if
-pg links.
From-SVN: r219560
Jason Merrill [Tue, 13 Jan 2015 21:04:43 +0000 (16:04 -0500)]
re PR c++/64356 (Some constexpr expressions not recognized as constexpr)
PR c++/64356
PR libstdc++/58777
* constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
pointer expressions.
(cxx_eval_increment_expression): Likewise.
From-SVN: r219559
Jason Merrill [Tue, 13 Jan 2015 21:04:35 +0000 (16:04 -0500)]
re PR c++/64514 (Error in template instantiation in GCC 4.9, works fine in GCC 4.8)
PR c++/64514
* pt.c (coerce_template_parameter_pack): Return NULL for a
zero-length fixed parameter pack with a pack expansion arg.
From-SVN: r219558
Jason Merrill [Tue, 13 Jan 2015 21:04:28 +0000 (16:04 -0500)]
re PR c++/64520 (ICE with std::initializer_list)
PR c++/64520
* pt.c (unify): Don't try to deduce to std::initializer_list<T...>.
From-SVN: r219557
Jan Hubicka [Tue, 13 Jan 2015 20:59:37 +0000 (21:59 +0100)]
re PR ipa/64565 (ICE: in inline_small_functions, at ipa-inline.c:1664)
PR ipa/64565
* g++.dg/torture/pr64565.C: New testcase.
* ipa-inline.c (inline_small_functions): Update callee keys after
resolving speculation
(inline_small_functions): Always check monotonicity of the queue.
From-SVN: r219556
Marek Polacek [Tue, 13 Jan 2015 20:22:32 +0000 (20:22 +0000)]
re PR middle-end/64391 (ICE: SIGSEGV in get_attrs_for (trans-mem.c:179) with -fgnu-tm and #pragma GCC ivdep)
PR middle-end/64391
* trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
* gcc.dg/tm/pr64391.c: New test.
From-SVN: r219555
H.J. Lu [Tue, 13 Jan 2015 20:07:33 +0000 (20:07 +0000)]
Support PIE in gcc.dg/tree-ssa/ssa-store-ccp-3.c
target nonpic is always false for -fPIE since it defines both __PIC__
and __PIE__. This patch changes gcc.dg/tree-ssa/ssa-store-ccp-3.c to
make it to pass with -fPIE by excluding PIE when nonpic is true.
* gcc.dg/tree-ssa/ssa-store-ccp-3.c: Exclude pie when nonpic is
true.
From-SVN: r219554
H.J. Lu [Tue, 13 Jan 2015 20:05:41 +0000 (20:05 +0000)]
Add check_effective_target_pie
* gcc.target/i386/pie.c: New test.
* lib/target-supports.exp (check_effective_target_pie): New.
From-SVN: r219553
Jakub Jelinek [Tue, 13 Jan 2015 19:12:47 +0000 (20:12 +0100)]
re PR rtl-optimization/64286 (Redundant extend removal ignores vector element type)
PR rtl-optimization/64286
* ree.c (combine_reaching_defs): Move part of comment earlier,
remove !SCALAR_INT_MODE_P check.
(add_removable_extension): Don't add vector mode
extensions if all uses of the source register aren't the same
vector extensions.
* gcc.target/i386/avx2-pr64286.c: New test.
From-SVN: r219550
Paolo Carlini [Tue, 13 Jan 2015 17:19:32 +0000 (17:19 +0000)]
re PR c++/57626 ([C++11] ICE with template alias and member function pointer)
2015-01-13 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57626
* g++.dg/cpp0x/vt-57626.C: New.
From-SVN: r219546
Jakub Jelinek [Tue, 13 Jan 2015 17:01:30 +0000 (18:01 +0100)]
sanitizer_deadlock_detector.h: Cherry pick upstream r224518 and r224519.
* sanitizer_common/sanitizer_deadlock_detector.h: Cherry pick
upstream r224518 and r224519.
* tsan/tsan_rtl_thread.cc: Cherry pick upstream r224702 and
r224834.
From-SVN: r219545
Renlin Li [Tue, 13 Jan 2015 16:47:30 +0000 (16:47 +0000)]
[ARM]Make CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO return 2.
gcc/
* config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
(CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
From-SVN: r219544
Jakub Jelinek [Tue, 13 Jan 2015 16:42:22 +0000 (17:42 +0100)]
re PR fortran/64528 (ICE: in process_constraint, at tree-ssa-structalias.c:3002 with -O -fno-tree-ccp -fno-tree-dce)
PR fortran/64528
* trans-decl.c (create_function_arglist): Don't set TREE_READONLY
on dummy args with VALUE attribute.
* gfortran.dg/pr64528.f90: New test.
From-SVN: r219543
Martin Liska [Tue, 13 Jan 2015 16:30:23 +0000 (17:30 +0100)]
Option diff dump is added for target and optimization
* ipa-icf.c (sem_function::equals_private): Call new functions
cl_target_option_print_diff and cl_optimization_print_diff.
* optc-save-gen.awk (cl_target_option_print_diff): New function.
(cl_optimization_print_diff): Likewise.
* opth-gen.awk: Likewise.
M gcc/ChangeLog
M gcc/ipa-icf.c
M gcc/optc-save-gen.awk
M gcc/opth-gen.awk
From-SVN: r219542
H.J. Lu [Tue, 13 Jan 2015 15:57:27 +0000 (15:57 +0000)]
Set TARGET to X86_64 if __x86_64__ is defined
PR bootstrap/64575
* configure.host (TARGET): Set to X86_64 if __x86_64__ is defined.
From-SVN: r219539
Richard Henderson [Tue, 13 Jan 2015 15:29:47 +0000 (07:29 -0800)]
re PR libffi/64572 (r219477 breaks bootstrap on x86_64 darwin)
PR libffi/64572
* src/x86/ffitarget.h (FFI_GO_CLOSURES): Do not define for darwin.
(FFI_TARGET_HAS_COMPLEX_TYPE): Likewise.
From-SVN: r219538
Jonathan Wakely [Tue, 13 Jan 2015 14:56:50 +0000 (14:56 +0000)]
re PR libstdc++/64571 (Link failure with fstream due to new string implementation)
PR libstdc++/64571
* config/abi/pre/gnu.ver: Export fstream functions using new string.
From-SVN: r219537
Richard Sandiford [Tue, 13 Jan 2015 14:11:15 +0000 (14:11 +0000)]
gcc/
* config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
(*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
(*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
(*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
(*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
(*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
gcc/testsuite/
* gcc.target/aarch64/subsp.c: New test.
From-SVN: r219533
Andrew Pinski [Tue, 13 Jan 2015 14:08:21 +0000 (14:08 +0000)]
\1a2015-01-13 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64.c (fusion_load_store): Check dest mode
instead of src mode.
2015-01-13 Andrew Pinski <apinski@cavium.com>
* gcc.target/aarch64/store-pair-1.c: New testcase.
From-SVN: r219532
Richard Biener [Tue, 13 Jan 2015 13:57:27 +0000 (13:57 +0000)]
re PR lto/64373 (ICE with lto related to variably modified type)
2015-01-13 Richard Biener <rguenther@suse.de>
PR lto/64373
* lto-streamer-out.c (tree_is_indexable): Guard for NULL
DECL_CONTEXT.
* gcc.dg/lto/pr64373_0.c: New testcase.
From-SVN: r219531
Andrew Pinski [Tue, 13 Jan 2015 13:55:23 +0000 (13:55 +0000)]
[multiple changes]
2015-01-13 Andrew Pinski <apinski@cavium.com>
* config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
volatile mems.
(aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2015-01-13 Andrew Pinski <apinski@cavium.com>
* gcc.target/aarch64/volatileloadpair-1.c: New testcase.
* gcc.target/aarch64/volatileloadpair-2.c: New testcase.
From-SVN: r219530
Jakub Jelinek [Tue, 13 Jan 2015 13:44:06 +0000 (14:44 +0100)]
re PR middle-end/63974 (gcc.c-torture/compile/991213-3.c ICEs with -mabi=ilp32)
PR middle-end/63974
* cfgexpand.c (expand_computed_goto): Don't call
convert_memory_address here.
From-SVN: r219529
Richard Biener [Tue, 13 Jan 2015 13:41:46 +0000 (13:41 +0000)]
re PR tree-optimization/64406 (ICE: SIGSEGV in estimate_numbers_of_iterations_loop (tree-ssa-loop-niter.c:3453) with custom flags)
2015-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/64406
* tree-loop-distibution.c (pass_loop_distribution::execute):
Reset the SCEV hashtable if we distributed anything.
* gcc.dg/pr64406.c: New testcase.
From-SVN: r219528
Richard Biener [Tue, 13 Jan 2015 12:35:27 +0000 (12:35 +0000)]
re PR tree-optimization/64404 (ICE: in vect_get_vec_def_for_operand, at tree-vect-stmts.c:1464 with --param=sccvn-max-alias-queries-per-access=1)
2015-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/64404
* tree-vect-stmts.c (vectorizable_load): Reject conflicting
SLP types for CSEd loads.
* gcc.dg/vect/pr64404.c: New testcase.
From-SVN: r219527
Iain Sandoe [Tue, 13 Jan 2015 11:23:46 +0000 (11:23 +0000)]
update to add myself to Objective-c/c++ maintainers
From-SVN: r219526
Thomas Preud'homme [Tue, 13 Jan 2015 11:23:01 +0000 (11:23 +0000)]
re PR tree-optimization/64436 (optimize-bswapdi-3.c fails on aarch64_be-none-elf)
2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
PR tree-optimization/64436
* tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
merge of two symbolic numbers for a bitwise OR to ...
(perform_symbolic_merge): This. Also fix computation of the range and
end of the symbolic number corresponding to the result of a bitwise OR.
From-SVN: r219525
Marek Polacek [Tue, 13 Jan 2015 09:08:35 +0000 (09:08 +0000)]
Add self as C front end reviewer.
From-SVN: r219523
Richard Biener [Tue, 13 Jan 2015 08:32:13 +0000 (08:32 +0000)]
re PR middle-end/64568 (error: invalid reference prefix)
2014-01-13 Richard Biener <rguenther@suse.de>
PR tree-optimization/64568
* tree-ssa-forwprop.c (pass_forwprop::execute): Properly
release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
* g++.dg/torture/pr64568.C: New testcase.
From-SVN: r219520
Jakub Jelinek [Tue, 13 Jan 2015 08:23:31 +0000 (09:23 +0100)]
re PR libgcj/64219 (Rename libgcj-5.0.pc to libgcj-5.pc)
PR libgcj/64219
* Makefile.am (install-data-local): Use just the major version
from GCJVERSION instead of major.minor.
* Makefile.in: Regenerated.
From-SVN: r219519
Chung-Ju Wu [Tue, 13 Jan 2015 06:06:34 +0000 (06:06 +0000)]
[NDS32] Consider -mcmodel=X in nds32_legitimate_address_p implementation.
gcc/
* config/nds32/nds32.c (nds32_legitimate_address_p): Consider
TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
From-SVN: r219515
Chung-Ju Wu [Tue, 13 Jan 2015 05:59:03 +0000 (05:59 +0000)]
[NDS32] Implement TARGET_ENCODE_SECTION_INFO to store specific flag in symbol_ref rtx.
gcc/
* config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
target-specific symbol_ref flag.
(NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
resides in rodata section.
* config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
(nds32_encode_section_info): New function.
From-SVN: r219514
Jeff Law [Tue, 13 Jan 2015 05:41:11 +0000 (22:41 -0700)]
MAINTAINERS: Remove Stan Shebs as he has been inactive for a very long time.
* MAINTAINERS: Remove Stan Shebs as he has been inactive for
a very long time.
From-SVN: r219513
Chung-Ju Wu [Tue, 13 Jan 2015 05:37:07 +0000 (05:37 +0000)]
[NDS32] Consider TARGET_CMODEL_LARGE for function call instructions.
gcc/
* config/nds32/nds32.md (call): Use pseudo instruction bal which
clobbers TA_REGNUM if large code model is specified.
(call_register): Likewise.
(call_immediate): Likewise.
(call_value): Likewise.
(call_value_register): Likewise.
(call_value_immediate): Likewise.
From-SVN: r219512
Chung-Ju Wu [Tue, 13 Jan 2015 05:32:08 +0000 (05:32 +0000)]
[NDS32] Provide TARGET_CMODEL_[SMALL|MEDIUM|LARGE] to check which code model is specified.
gcc/
* config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
(TARGET_CMODEL_MEDIUM): New macro.
(TARGET_CMODEL_LARGE): New macro.
* config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
code model setting in assembly code.
From-SVN: r219511
Chung-Ju Wu [Tue, 13 Jan 2015 05:22:25 +0000 (05:22 +0000)]
[NDS32] Remove -mgp-direct/-mno-gp-direct options.
gcc/
* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
Remove MASK_GP_DIRECT flag.
* config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
one of the multilib default options.
* config/nds32/nds32.opt (mgp-direct): Remove.
* config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
-mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
From-SVN: r219510
Chung-Ju Wu [Tue, 13 Jan 2015 05:17:54 +0000 (05:17 +0000)]
[NDS32] Add -mcmodel= option to support different code model.
* config/nds32/nds32.opt (mcmodel): Add new option.
* config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
to describe code model.
From-SVN: r219509
Oleg Endo [Tue, 13 Jan 2015 00:30:57 +0000 (00:30 +0000)]
re PR target/64479 ([SH] wrong optimization delayed-branch)
gcc/
PR target/64479
* rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
From-SVN: r219506
Richard Henderson [Tue, 13 Jan 2015 00:26:31 +0000 (16:26 -0800)]
Fix libjava failures on i686-linux
* src/x86/ffi.c (ffi_raw_call): Fill in frame.
From-SVN: r219505
GCC Administrator [Tue, 13 Jan 2015 00:16:50 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r219503
Kaz Kojima [Mon, 12 Jan 2015 23:47:58 +0000 (23:47 +0000)]
* Add TARGET_ATOMIC_ASSIGN_EXPAND_FENV hook for sh.
From-SVN: r219500
David Malcolm [Mon, 12 Jan 2015 22:25:37 +0000 (22:25 +0000)]
libgccjit: detect various kinds of errors relating to params and locals
gcc/jit/ChangeLog:
* jit-recording.c (class gcc::jit::rvalue_usage_validator): New.
(gcc::jit::rvalue_usage_validator::rvalue_usage_validator): New
ctor.
(gcc::jit::rvalue_usage_validator::visit): New function.
(gcc::jit::recording::rvalue::verify_valid_within_stmt): New
function.
(gcc::jit::recording::rvalue::set_scope): New function.
(gcc::jit::recording::function::function): Call set_scope on each
param, issuing errors for any params that already have a function.
(gcc::jit::recording::block::add_eval): Return the new statement;
update the comment given that some error-checking now happens after
this returns.
(gcc::jit::recording::block::add_assignment): Likewise.
(gcc::jit::recording::block::add_assignment_op): Likewise.
(gcc::jit::recording::block::add_comment): Likewise.
(gcc::jit::recording::block::end_with_conditional): Likewise.
(gcc::jit::recording::block::end_with_jump): Likewise.
(gcc::jit::recording::block::end_with_return): Likewise.
(gcc::jit::recording::block::validate): Add a comment.
(gcc::jit::recording::unary_op::visit_children): New function.
(gcc::jit::recording::binary_op::visit_children): New function.
(gcc::jit::recording::comparison::visit_children): New function.
(gcc::jit::recording::cast::visit_children): New function.
(gcc::jit::recording::call::visit_children): New function.
(gcc::jit::recording::call_through_ptr::visit_children): New function.
(gcc::jit::recording::array_access::visit_children): New function.
(gcc::jit::recording::access_field_of_lvalue::visit_children): New
function.
(gcc::jit::recording::access_field_rvalue::visit_children): New
function.
(gcc::jit::recording::dereference_field_rvalue::visit_children):
New function.
(gcc::jit::recording::dereference_rvalue::visit_children): New
function.
(gcc::jit::recording::get_address_of_lvalue::visit_children): New
function.
* jit-recording.h: Within namespace gcc::jit::recording...
(class rvalue_visitor): New.
(rvalue::rvalue): Initialize m_scope.
(rvalue::get_loc): New accessor.
(rvalue::verify_valid_within_stmt): New function.
(rvalue::visit_children): New pure virtual function.
(rvalue::set_scope): New function.
(rvalue::get_scope): New function.
(rvalue::dyn_cast_param): New function.
(rvalue::m_scope): New field.
(param::visit_children): New empty function.
(param::dyn_cast_param): New function.
(function::get_loc): New function.
(block::add_eval): Return the new statement.
(block::add_assignment): Likewise.
(block::add_assignment_op): Likewise.
(block::add_comment): Likewise.
(block::end_with_conditional): Likewise.
(block::end_with_jump): Likewise.
(block::end_with_return): Likewise.
(global::visit_children): New function.
(memento_of_new_rvalue_from_const<HOST_TYPE>::visit_children):
New function.
(memento_of_new_string_literal::visit_children): New function.
(unary_op::visit_children): New function.
(binary_op::visit_children): New function.
(comparison::visit_children): New function.
(cast::visit_children): New function.
(call::visit_children): New function.
(call_through_ptr::visit_children): New function.
(array_access::visit_children): New function.
(access_field_of_lvalue::visit_children): New function.
(access_field_rvalue::visit_children): New function.
(dereference_field_rvalue::visit_children): New function.
(dereference_rvalue::visit_children): New function.
(get_address_of_lvalue::visit_children): New function.
(local::local): Call set_scope.
(local::visit_children): New function.
(statement::get_block): Make public.
* libgccjit.c (RETURN_VAL_IF_FAIL_PRINTF5): New macro.
(RETURN_NULL_IF_FAIL_PRINTF5): New macro.
(gcc_jit_context_new_function): Verify that each param has
not yet been used for creating another function.
(gcc_jit_block_add_eval): After creating the stmt, verify
that the rvalue expression tree is valid to use within it.
(gcc_jit_block_add_assignment): Likewise for the lvalue and
rvalue expression trees.
(gcc_jit_block_add_assignment_op): Likewise.
(gcc_jit_block_end_with_conditional): Likewise for the boolval
expression tree.
(gcc_jit_block_end_with_return): Likewise for the rvalue
expression tree.
(gcc_jit_block_end_with_void_return): Remove return of "void",
now that block::end_with_return is now non-void.
gcc/testsuite/ChangeLog:
* jit.dg/test-error-local-used-from-other-function.c: New test
case.
* jit.dg/test-error-param-reuse.c: New test case.
* jit.dg/test-error-param-sharing.c: New test case.
* jit.dg/test-error-param-used-from-other-function.c: New test
case.
* jit.dg/test-error-param-used-without-a-function.c: New test
case.
From-SVN: r219498
Sandra Loosemore [Mon, 12 Jan 2015 21:57:54 +0000 (16:57 -0500)]
invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses after a funtion name just to indicate it is a function.
2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
after a funtion name just to indicate it is a function.
([-fsanitize-undefined-trap-on-error]): Likewise.
([-fdbg-cnt=]): Likewise.
([-mmemcpy]): Likewise.
([-mflush-func]): Likewise.
([-msynci]): Likewise.
From-SVN: r219497
Jonathan Wakely [Mon, 12 Jan 2015 21:45:50 +0000 (21:45 +0000)]
re PR libstdc++/64553 (Missing '# ifdef _GLIBCXX_USE_WCHAR_T' in src/c++11/cxx11-shim_facet.cc)
PR libstdc++/64553
* src/c++11/cxx11-shim_facets.cc: Check for wchar_t support.
From-SVN: r219496
Jonathan Wakely [Mon, 12 Jan 2015 21:45:44 +0000 (21:45 +0000)]
re PR libstdc++/64560 (building libstdc++ with -fno-rtti fails in new cxx11-shim-facets.cc file)
PR libstdc++/64560
* src/c++11/cxx11-shim_facets.cc (locale::facet::_M_sso_shim): Check
for RTTI support.
From-SVN: r219495
Sandra Loosemore [Mon, 12 Jan 2015 21:32:53 +0000 (16:32 -0500)]
invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing example.
2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
example.
From-SVN: r219494
Jakub Jelinek [Mon, 12 Jan 2015 20:48:09 +0000 (21:48 +0100)]
re PR tree-optimization/64563 (ICE with "-Wall -Wextra" at -Os and above on x86_64-linux-gnu)
PR tree-optimization/64563
* tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
instead of != VR_VARYING.
* gcc.dg/pr64563.c: New test.
From-SVN: r219493
Jakub Jelinek [Mon, 12 Jan 2015 20:45:38 +0000 (21:45 +0100)]
re PR target/64513 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2231 with -mstack-arg-probe)
PR target/64513
* config/i386/i386.c (ix86_expand_prologue): Add
REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
* gcc.target/i386/pr64513.c: New test.
From-SVN: r219492
Jakub Jelinek [Mon, 12 Jan 2015 20:44:32 +0000 (21:44 +0100)]
re PR tree-optimization/64454 (optimize (x%5)%5)
PR tree-optimization/64454
* tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
for signed or [0, op1 - 1] for unsigned modulo.
(simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
even if op1 does not satisfy integer_pow2p.
* gcc.dg/pr64454.c: New test.
From-SVN: r219491
Jakub Jelinek [Mon, 12 Jan 2015 20:30:53 +0000 (21:30 +0100)]
re PR testsuite/64028 (r211599 caused many vectorizer test failures with -fPIC)
PR testsuite/64028
* gcc.dg/vect/no-section-anchors-vect-31.c: Add dg-add-options
bind_pic_locally.
* gcc.dg/vect/no-section-anchors-vect-34.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-36.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-64.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-65.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-68.c: Likewise.
* gcc.dg/vect/no-section-anchors-vect-69.c: Likewise.
* gcc.dg/vect/slp-25.c: Likewise.
* gcc.dg/vect/vect-109.c: Likewise.
* gcc.dg/vect/vect-13.c: Likewise.
* gcc.dg/vect/vect-17.c: Likewise.
* gcc.dg/vect/vect-18.c: Likewise.
* gcc.dg/vect/vect-19.c: Likewise.
* gcc.dg/vect/vect-20.c: Likewise.
* gcc.dg/vect/vect-21.c: Likewise.
* gcc.dg/vect/vect-22.c: Likewise.
* gcc.dg/vect/vect-27.c: Likewise.
* gcc.dg/vect/vect-29.c: Likewise.
* gcc.dg/vect/vect-2-big-array.c: Likewise.
* gcc.dg/vect/vect-2.c: Likewise.
* gcc.dg/vect/vect-3.c: Likewise.
* gcc.dg/vect/vect-4.c: Likewise.
* gcc.dg/vect/vect-5.c: Likewise.
* gcc.dg/vect/vect-72.c: Likewise.
* gcc.dg/vect/vect-73-big-array.c: Likewise.
* gcc.dg/vect/vect-73.c: Likewise.
* gcc.dg/vect/vect-77-global.c: Likewise.
* gcc.dg/vect/vect-78-global.c: Likewise.
* gcc.dg/vect/vect-7.c: Likewise.
* gcc.dg/vect/vect-86.c: Likewise.
* gcc.dg/vect/vect-align-1.c: Likewise.
* gcc.dg/vect/vect-align-3.c: Likewise.
* gcc.dg/vect/vect-all-big-array.c: Likewise.
* gcc.dg/vect/vect-all.c: Likewise.
* gcc.dg/vect/vect-multitypes-1.c: Likewise.
* gcc.dg/vect/vect-multitypes-4.c: Likewise.
* gcc.dg/vect/vect-peel-3.c: Likewise.
* gcc.dg/vect/vect-peel-4.c: Likewise.
* gcc.dg/vect/wrapv-vect-7.c: Likewise.
From-SVN: r219490
Jakub Jelinek [Mon, 12 Jan 2015 20:30:09 +0000 (21:30 +0100)]
re PR other/64370 (sreal.c:125:23: error: 'exp2' was not declared in this scope)
PR other/64370
* sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
From-SVN: r219489
Jeff Law [Mon, 12 Jan 2015 20:19:57 +0000 (13:19 -0700)]
re PR target/64461 (bad assembly generated for Coldfire targets)
PR target/64461
* gcc.target/m68k/pr64461.c: New test.
From-SVN: r219488
David Malcolm [Mon, 12 Jan 2015 19:57:05 +0000 (19:57 +0000)]
jit-playback.c: fix missing fclose
gcc/jit/ChangeLog:
* jit-playback.c (gcc::jit::playback::context::read_dump_file):
Add missing fclose on error-handling path.
From-SVN: r219487
Jeff Law [Mon, 12 Jan 2015 19:10:40 +0000 (12:10 -0700)]
Add PR marker for last commit
From-SVN: r219484
Jeff Law [Mon, 12 Jan 2015 19:09:12 +0000 (12:09 -0700)]
m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
* config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
(trunchiqi2, truncsihi2): Similarly.
From-SVN: r219483
Jeff Law [Mon, 12 Jan 2015 17:26:09 +0000 (10:26 -0700)]
h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly rather than calling F.
* config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
rather than calling F.
From-SVN: r219481
David Malcolm [Mon, 12 Jan 2015 17:14:02 +0000 (17:14 +0000)]
jit: API change to gcc_jit_context_new_global
gcc/jit/ChangeLog:
* docs/cp/topics/expressions.rst (Global variables): Add
enum gcc_jit_global_kind param to gccjit::context::new_global.
* docs/topics/expressions.rst (Global variables): Likewise.
Document the new enum.
* docs/topics/results.rst (Compilation results): Document
globals-handling.
* dummy-frontend.c (jit_langhook_write_globals): Call into the
playback context's write_global_decls_1 and write_global_decls_2
before and after calling symtab->finalize_compilation_unit ().
* jit-playback.c: Include "debug.h".
(gcc::jit::playback::context::new_global): Add "kind" param and
use it to set TREE_PUBLIC, TREE_STATIC and DECL_EXTERNAL on the
underlying VAR_DECL. Call varpool_node::get_create on the
VAR_DECL, and add it to m_globals.
(gcc::jit::playback::context::write_global_decls_1): New function.
(gcc::jit::playback::context::write_global_decls_2): New function.
* jit-playback.h (gcc::jit::playback::context::context): Call
create on m_globals.
(gcc::jit::playback::context::new_global): Add "kind" param.
(gcc::jit::playback::context::write_global_decls_1): New function.
(gcc::jit::playback::context::write_global_decls_2): New function.
(gcc::jit::playback::context::m_globals): New field.
* jit-recording.c (gcc::jit::recording::context::context):
Initialize m_globals.
(gcc::jit::recording::context::new_global): Add param "kind".
Add the new global to m_globals.
(gcc::jit::recording::context::dump_to_file): Dump the globals.
(gcc::jit::recording::global::replay_into): Add field m_kind.
(gcc::jit::recording::global::write_to_dump): New override.
* jit-recording.h (gcc::jit::recording::context::new_global): Add
param "kind".
(gcc::jit::recording::context::m_globals): New field.
(gcc::jit::recording::global::global): Add param kind.
(gcc::jit::recording::global::write_to_dump): New override.
(gcc::jit::recording::global::m_kind): New field.
* jit-result.c (gcc::jit::result::get_global): New function.
* jit-result.h (gcc::jit::result::get_global): New function.
* libgccjit++.h (gccjit::context::new_global): Add "kind" param.
* libgccjit.c (gcc_jit_context_new_global): Likewise.
(gcc_jit_result_get_global): New API entrypoint.
* libgccjit.h (gcc_jit_result_get_global): New API entrypoint.
(enum gcc_jit_global_kind): New enum.
(gcc_jit_context_new_global): API change: add "kind" param.
* libgccjit.map (gcc_jit_result_get_global): New symbol.
gcc/testsuite/ChangeLog:
* jit.dg/test-array-as-pointer.c (create_code): Update call
to gcc_jit_context_new_global by setting "kind" to
GCC_JIT_GLOBAL_IMPORTED.
* jit.dg/test-error-array-as-pointer.c: Likewise.
* jit.dg/test-expressions.c (make_test_of_get_address): Likewise.
* jit.dg/test-fuzzer.c (make_random_global): Likewise, but
setting kind to GCC_JIT_GLOBAL_EXPORTED.
* jit.dg/test-using-global.c (the_global): Rename to...
(imported_global): ...this.
(create_code): Update to test the three kinds of global.
(verify_code): Likewise.
From-SVN: r219480
Marc Glisse [Mon, 12 Jan 2015 17:08:04 +0000 (18:08 +0100)]
Avoid undefined behavior in gcc.target/i386/pr64291-1.c
PR testsuite/64427
* gcc.target/i386/pr64291-1.c: Limit to lp64 tarrget. Avoid
undefined behavior.
* gcc.target/i386/pr64291-2.c: Updated.
From-SVN: r219479