Commit Graph

135836 Commits

Author SHA1 Message Date
Richard Biener
d679e96bbe re PR tree-optimization/64365 (Predictive commoning after loop vectorization produces incorrect code.)
2015-01-15  Richard Biener  <rguenther@suse.de>

	PR middle-end/64365
	* tree-data-ref.c (dr_analyze_indices): Make sure that accesses
	for MEM_REF access functions with the same base can never partially
	overlap.

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

From-SVN: r219634
2015-01-15 08:41:08 +00:00
Marcos Diaz
5434dc0730 common.opt: New option -fstack-protector-explicit.
2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>

	* common.opt: New option -fstack-protector-explicit.
	* cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
	(stack_protect_decl_phase): Handle stack_protect attribute for
	explicit stack protection requests.
	(expand_used_vars): Similarly.
	* doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
	* doc/extend.texi: Add documentation for "stack_protect" attribute.
	* doc/invoke.texi: Add documentation for -fstack-protector-explicit.

	* c-cppbuiltin.c (c_cpp_builtins): New cpp define __SSP_EXPLICIT__
	for the new option fstack-protector_explicit.
	* c-common.c (c_common_attribute_table): Add stack_protect attribute.
	(handle_stack_protect_attribute): New function.

	* gcc.dg/stackprotectexplicit1.c: New test.
	* g++.dg/stackprotectexplicit2.c: New test.

From-SVN: r219633
2015-01-14 22:29:12 -07:00
Jerry DeLisle
1a0c698345 re PR fortran/61933 (Inquire on internal units)
2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR target/61933
	* gfortran.dg/inquire_internal.f90: New.
	* gfortran.dg/negative_unit_check.f90: New.

From-SVN: r219632
2015-01-15 04:06:02 +00:00
Jerry DeLisle
351b443252 re PR fortran/61933 (Inquire on internal units)
2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/61933
	* io/inquire.c (inquire_via_unit): Set existing to true if a
	gfc_unit stucture was found for the given unit number.
	* runtime/error.c (translate_error): Add case for
	LIBERROR_INQUIRE_INTERNAL_UNIT.

From-SVN: r219631
2015-01-15 03:57:29 +00:00
Jerry DeLisle
2da229cb17 re PR fortran/61933 (Inquire on internal units)
2015-01-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/61933
	* io.c (gfc_match_inquire): Generate error if unit number in
	inquire statement is a constant -1.  All other values allowed.
	* trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
	(create_dummy_iostat): Delete function no longer used.

From-SVN: r219630
2015-01-15 03:51:16 +00:00
Ian Lance Taylor
d5d9c650a2 libgo: Bump version number in libgo configure script.
From-SVN: r219629
2015-01-15 00:52:38 +00:00
Ian Lance Taylor
3307c079d5 Add files somehow left out of last commit (upgrade to Go 1.4).
From-SVN: r219628
2015-01-15 00:40:25 +00:00
Ian Lance Taylor
f8d9fa9e80 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
2015-01-15 00:27:56 +00:00
GCC Administrator
6bd3f109d8 Daily bump.
From-SVN: r219626
2015-01-15 00:17:03 +00:00
Oleg Endo
83e3f98b8d 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
2015-01-14 23:46:34 +00:00
Sandra Loosemore
ce2c3163d2 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
2015-01-14 18:09:03 -05:00
Paolo Carlini
36b218ee8f 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
2015-01-14 22:28:07 +00:00
Matthew Fortune
622ef5dae9 Fix indentation in an earlier gcc/ChangeLog update
From-SVN: r219620
2015-01-14 22:10:21 +00:00
Matthew Fortune
047b52f61d [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
2015-01-14 22:08:37 +00:00
Jan-Benedict Glaw
7fc39e2189 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
2015-01-14 21:55:35 +00:00
H.J. Lu
541c580691 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
2015-01-14 13:51:09 -08:00
Andrew MacLeod
77df532784 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
2015-01-14 21:30:39 +00:00
Aldy Hernandez
2ead7928a2 + * lto-cgraph: Update function comments for
+       lto_symtab_encoder_encode_*.

From-SVN: r219607
2015-01-14 16:37:15 +00:00
Ilya Verbin
3b6e42f965 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
2015-01-14 15:51:37 +00:00
Ilya Verbin
837bac8cb6 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
2015-01-14 15:15:21 +00:00
Ilya Tocar
2f6c116d28 Fix year in ChangeLog.
From-SVN: r219604
2015-01-14 17:23:47 +03:00
Richard Biener
7ef95f9cf0 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
2015-01-14 14:06:07 +00:00
Andrew Stubbs
7d11e4d632 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
2015-01-14 14:03:10 +00:00
Andrew MacLeod
8673b6713e 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
2015-01-14 13:58:35 +00:00
Ilya Tocar
4b54ab976e 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
2015-01-14 16:55:06 +03:00
Ilya Tocar
c67917b65d 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
2015-01-14 16:49:58 +03:00
Ilya Tocar
110b788648 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
2015-01-14 16:45:49 +03:00
Christophe Lyon
5c52d24936 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
2015-01-14 13:07:43 +01:00
Kyrylo Tkachov
2a62514fca [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
2015-01-14 12:03:22 +00:00
Kyrylo Tkachov
3bbbd3ee8e [doc][ARM] Deprecate -mapcs and -mapcs-frame.
* doc/invoke.texi (mapcs): Mention deprecation.
	(mapcs-frame): Likewise.

From-SVN: r219593
2015-01-14 11:58:06 +00:00
Thomas Preud'homme
6f0a6218e3 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
2015-01-14 11:51:40 +00:00
Hale Wang
6af2585d5c 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
2015-01-14 11:15:30 +00:00
Richard Biener
683750ce09 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
2015-01-14 11:06:18 +00:00
Martin Liska
217c08c571 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
2015-01-14 10:35:13 +00:00
Tejas Belagod
f29e90f541 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
2015-01-14 10:29:09 +00:00
Kyrylo Tkachov
ca39a43acc [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
2015-01-14 10:14:23 +00:00
Matthew Fortune
fcd7669cb6 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
2015-01-14 08:35:52 +00:00
Richard Biener
46b622cc24 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
2015-01-14 08:32:18 +00:00
Joey Ye
f7d2b51386 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
2015-01-14 08:17:15 +00:00
Martin Uecker
de1b5c17fd 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
2015-01-13 23:50:19 -07:00
Chung-Ju Wu
2ca1ca6581 [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
2015-01-14 06:08:35 +00:00
Naveen H.S
be77e6092b octeon3-pipe-1.c: New test.
* gcc.target/mips/octeon3-pipe-1.c: New test.

From-SVN: r219575
2015-01-14 06:08:24 +00:00
Jan Hubicka
c02ae3ae3d 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
2015-01-14 05:28:50 +00:00
Naveen H.S
9e145afd37 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
2015-01-14 05:10:44 +00:00
Jan Hubicka
0d92b55538 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
2015-01-14 03:47:17 +00:00
GCC Administrator
dc396715ae Daily bump.
From-SVN: r219569
2015-01-14 00:16:58 +00:00
Kaz Kojima
b1479ae31e configure.host: Remove extra brackets for sh.
* libffi/configure.host: Remove extra brackets for sh.

From-SVN: r219565
2015-01-13 23:30:33 +00:00
David Malcolm
86d0ac8876 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
2015-01-13 22:14:46 +00:00
H.J. Lu
9c80f9197e Add dg-require-profiling to gcc.dg/aru-2.c
* gcc.dg/aru-2.c: Add dg-require-profiling.

From-SVN: r219561
2015-01-13 13:24:16 -08:00
H.J. Lu
f263fe40d7 Check if -pg links in check_profiling_available
* lib/target-supports.exp (check_profiling_available): Check if
	-pg links.

From-SVN: r219560
2015-01-13 13:13:36 -08:00