gcc.git
9 years agoAdd files somehow left out of last commit (upgrade to Go 1.4).
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

9 years agolibgo, compiler: Upgrade libgo to Go 1.4, except for runtime.
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

9 years agoDaily bump.
GCC Administrator [Thu, 15 Jan 2015 00:17:03 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r219626

9 years agore PR target/53988 ([SH] tst Rm,Rn not used for QI/HImode)
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

9 years agoinvoke.texi (Option Summary): Reclassify -fuse-ld as a linker option.
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

9 years agore PR c++/58671 ([c++11] ICE with thread_local and self-referential variable initiali...
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

9 years agoFix indentation in an earlier gcc/ChangeLog update
Matthew Fortune [Wed, 14 Jan 2015 22:10:21 +0000 (22:10 +0000)]
Fix indentation in an earlier gcc/ChangeLog update

From-SVN: r219620

9 years ago[MIPS] Update the ZC constraint.
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

9 years agoPull libiberty.h copyright update from Binutils
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

9 years agoCorrect target selector in -mfentry tests
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

9 years agobuiltins.c (expand_builtin_atomic_exchange): Remove error when memory model is CONSUME.
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

9 years ago+ * lto-cgraph: Update function comments for
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

9 years agoMakefile.in (site.exp): Do not set ENABLE_LTO.
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

9 years agocgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
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

9 years agoFix year in ChangeLog.
Ilya Tocar [Wed, 14 Jan 2015 14:23:47 +0000 (17:23 +0300)]
Fix year in ChangeLog.

From-SVN: r219604

9 years agore PR tree-optimization/59354 (Element swizzling produces invalid result with -O3)
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

9 years agoFix neon test fails on non-neon configs.
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

9 years agore PR middle-end/59448 (Code generation doesn't respect C11 address-dependency)
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

9 years agore PR target/64386 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with...
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

9 years agore PR target/64393 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with...
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

9 years agore PR target/64387 (ICE: in extract_insn, at recog.c:2327 (unrecognizable insn) with...
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

9 years agostore-pair-1.c: Fix typo.
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

9 years ago[AArch64] Error out of arm_neon.h if nofp/nosimd
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

9 years ago[doc][ARM] Deprecate -mapcs and -mapcs-frame.
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

9 years agore PR target/64453 (Live high register not saved in function prolog on ARM with -Os)
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

9 years agoarm.c: Tune the max_cond_insns/branch_cost for Cortex-M7.
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

9 years agore PR middle-end/64415 (ICE: verify_ssa failed / segmentation fault with LTO)
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

9 years agoIPA ICF: handle IMAGPART_EXPR and REALPART_EXPR.
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

9 years agovect-movi.c: Check for vectorization for 64-bit and 128-bit.
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

9 years ago[ARM] Fix PR target/64460: Set 'shift' attr properly on some patterns.
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

9 years agoFix Linux multilib configurations with default architectures
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

9 years agore PR tree-optimization/64493 (ICE at -O3 on x86_64-linux-gnu)
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

9 years agoarm.c (arm_compute_save_reg_mask): Do not save lr in case of tail call.
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

9 years agotree-vrp.c (check_array_ref): Emit more warnings for warn_array_bounds >= 2.
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

9 years ago[NDS32] Remove some features and options that are not available yet in nds32 port...
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

9 years agoocteon3-pipe-1.c: New test.
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

9 years agotree-profile.c (init_ic_make_global_vars): Drop workaround for bintuils bug 14342.
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

9 years agoipa-inline.c (inline_small_functions): Swap the operands in enum.
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

9 years agore PR ipa/64481 (r219076 breaks bootstrap (x86_64-unknown-linux-gnu))
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

9 years agoDaily bump.
GCC Administrator [Wed, 14 Jan 2015 00:16:58 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r219569

9 years agoconfigure.host: Remove extra brackets for sh.
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

9 years agojit: New API entrypoint: gcc_jit_context_dump_reproducer_to_file
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

9 years agoAdd dg-require-profiling to gcc.dg/aru-2.c
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

9 years agoCheck if -pg links in check_profiling_available
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

9 years agore PR c++/64356 (Some constexpr expressions not recognized as constexpr)
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

9 years agore PR c++/64514 (Error in template instantiation in GCC 4.9, works fine in GCC 4.8)
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

9 years agore PR c++/64520 (ICE with std::initializer_list)
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

9 years agore PR ipa/64565 (ICE: in inline_small_functions, at ipa-inline.c:1664)
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

9 years agore PR middle-end/64391 (ICE: SIGSEGV in get_attrs_for (trans-mem.c:179) with -fgnu...
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

9 years agoSupport PIE in gcc.dg/tree-ssa/ssa-store-ccp-3.c
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

9 years agoAdd check_effective_target_pie
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

9 years agore PR rtl-optimization/64286 (Redundant extend removal ignores vector element type)
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

9 years agore PR c++/57626 ([C++11] ICE with template alias and member function pointer)
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

9 years agosanitizer_deadlock_detector.h: Cherry pick upstream r224518 and r224519.
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

9 years ago[ARM]Make CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO return 2.
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

9 years agore PR fortran/64528 (ICE: in process_constraint, at tree-ssa-structalias.c:3002 with...
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

9 years agoOption diff dump is added for target and optimization
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

9 years agoSet TARGET to X86_64 if __x86_64__ is defined
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

9 years agore PR libffi/64572 (r219477 breaks bootstrap on x86_64 darwin)
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

9 years agore PR libstdc++/64571 (Link failure with fstream due to new string implementation)
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

9 years agogcc/
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

9 years ago\1a2015-01-13 Andrew Pinski <apinski@cavium.com>
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

9 years agore PR lto/64373 (ICE with lto related to variably modified type)
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

9 years ago[multiple changes]
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

9 years agore PR middle-end/63974 (gcc.c-torture/compile/991213-3.c ICEs with -mabi=ilp32)
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

9 years agore PR tree-optimization/64406 (ICE: SIGSEGV in estimate_numbers_of_iterations_loop...
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

9 years agore PR tree-optimization/64404 (ICE: in vect_get_vec_def_for_operand, at tree-vect...
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

9 years agoupdate to add myself to Objective-c/c++ maintainers
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

9 years agore PR tree-optimization/64436 (optimize-bswapdi-3.c fails on aarch64_be-none-elf)
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

9 years agoAdd self as C front end reviewer.
Marek Polacek [Tue, 13 Jan 2015 09:08:35 +0000 (09:08 +0000)]
Add self as C front end reviewer.

From-SVN: r219523

9 years agore PR middle-end/64568 (error: invalid reference prefix)
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

9 years agore PR libgcj/64219 (Rename libgcj-5.0.pc to libgcj-5.pc)
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

9 years ago[NDS32] Consider -mcmodel=X in nds32_legitimate_address_p implementation.
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

9 years ago[NDS32] Implement TARGET_ENCODE_SECTION_INFO to store specific flag in symbol_ref...
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

9 years agoMAINTAINERS: Remove Stan Shebs as he has been inactive for a very long time.
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

9 years ago[NDS32] Consider TARGET_CMODEL_LARGE for function call instructions.
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

9 years ago[NDS32] Provide TARGET_CMODEL_[SMALL|MEDIUM|LARGE] to check which code model is speci...
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

9 years ago[NDS32] Remove -mgp-direct/-mno-gp-direct options.
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

9 years ago[NDS32] Add -mcmodel= option to support different code model.
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

9 years agore PR target/64479 ([SH] wrong optimization delayed-branch)
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

9 years agoFix libjava failures on i686-linux
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

9 years agoDaily bump.
GCC Administrator [Tue, 13 Jan 2015 00:16:50 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r219503

9 years ago* Add TARGET_ATOMIC_ASSIGN_EXPAND_FENV hook for sh.
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

9 years agolibgccjit: detect various kinds of errors relating to params and locals
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

9 years agoinvoke.texi ([-Wsuggest-attribute=]): Don't use parentheses after a funtion name...
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

9 years agore PR libstdc++/64553 (Missing '# ifdef _GLIBCXX_USE_WCHAR_T' in src/c++11/cxx11...
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

9 years agore PR libstdc++/64560 (building libstdc++ with -fno-rtti fails in new cxx11-shim...
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

9 years agoinvoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing example.
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

9 years agore PR tree-optimization/64563 (ICE with "-Wall -Wextra" at -Os and above on x86_64...
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

9 years agore PR target/64513 (ICE: in maybe_record_trace_start, at dwarf2cfi.c:2231 with -mstac...
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

9 years agore PR tree-optimization/64454 (optimize (x%5)%5)
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

9 years agore PR testsuite/64028 (r211599 caused many vectorizer test failures with -fPIC)
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

9 years agore PR other/64370 (sreal.c:125:23: error: 'exp2' was not declared in this scope)
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

9 years agore PR target/64461 (bad assembly generated for Coldfire targets)
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

9 years agojit-playback.c: fix missing fclose
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

9 years agoAdd PR marker for last commit
Jeff Law [Mon, 12 Jan 2015 19:10:40 +0000 (12:10 -0700)]
Add PR marker for last commit

From-SVN: r219484

9 years agom68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
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

9 years agoh8300.c (Fpa): Use RTX_FRAME_RELATED_P directly rather than calling F.
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

9 years agojit: API change to gcc_jit_context_new_global
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

9 years agoAvoid undefined behavior in gcc.target/i386/pr64291-1.c
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