Marek Polacek [Thu, 6 Mar 2014 13:41:46 +0000 (13:41 +0000)]
re PR c/60197 (ICE with _Cilk_spawn in expression)
PR c/60197
c-family/
* cilk.c (contains_cilk_spawn_stmt): New function.
(contains_cilk_spawn_stmt_walker): Likewise.
(recognize_spawn): Give error on invalid use of _Cilk_spawn.
* c-common.h (contains_cilk_spawn_stmt): Add declaration.
c/
* c-typeck.c (c_finish_return): Call contains_cilk_spawn_stmt instead
of checking tree code.
cp/
* typeck.c (check_return_expr): Call contains_cilk_spawn_stmt instead
of checking tree code.
testsuite/
* c-c++-common/cilk-plus/CK/pr60197.c: New test.
* c-c++-common/cilk-plus/CK/pr60197-2.c: New test.
* tree-streamer.c (record_common_node): Assert we don't record
nodes with type double.
(preload_common_node): Skip type double, complex double and
double pointer since it is now frontend dependent due to
fshort-double option.
Richard Biener [Thu, 6 Mar 2014 08:48:01 +0000 (08:48 +0000)]
gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin or -fno-lto is specified and the...
2014-03-06 Richard Biener <rguenther@suse.de>
* gcc.c (PLUGIN_COND): Always enable unless -fno-use-linker-plugin
or -fno-lto is specified and the linker has full plugin support.
* collect2.c (lto_mode): Default to LTO_MODE_WHOPR if LTO is
enabled.
(main): Remove -flto processing, adjust lto_mode using
use_plugin late.
* lto-wrapper.c (merge_and_complain): Merge compile-time
optimization levels.
(run_gcc): And pass it through to the link options.
Jakub Jelinek [Wed, 5 Mar 2014 20:07:50 +0000 (21:07 +0100)]
re PR testsuite/59308 (gcc.dg/tree-ssa/ssa-ifcombine-ccmp-[1456] tests fail on arm cortex-a5)
PR testsuite/59308
* gcc.dg/pr46309.c: Don't compile on logical_op_short_circuit targets
other than mips/avr. Use -mbranch-cost=2 even for i?86/x86_64.
* gcc.dg/tree-ssa/reassoc-32.c: Use -mbranch-cost=2 even for
s390*/i?86/x86_64.
* gcc.dg/tree-ssa/reassoc-33.c: Likewise.
* gcc.dg/tree-ssa/reassoc-34.c: Likewise.
* gcc.dg/tree-ssa/reassoc-35.c: Likewise.
* gcc.dg/tree-ssa/reassoc-36.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Don't compile on
logical_op_short_circuit targets other than avr. Use -mbranch-cost=2
even for mips*/s390*/i?86/x86_64.
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise.
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise.
Jason Merrill [Wed, 5 Mar 2014 17:53:28 +0000 (12:53 -0500)]
re PR c++/60361 (unexpected 'use of parameter outside function body' error)
PR c++/60361
* parser.c (cp_parser_template_id): Don't set up a CPP_TEMPLATE_ID
if re-parsing might succeed.
* semantics.c (finish_id_expression): Use of a parameter outside
the function body is a parse error.
Jakub Jelinek [Wed, 5 Mar 2014 08:46:31 +0000 (09:46 +0100)]
re PR lto/60404 (wrong code by LTO on x86_64-linux-gnu)
PR lto/60404
* cfgexpand.c (expand_used_vars): Do not assume all SSA_NAMEs
of PARM/RESULT_DECLs must be coalesced with optimize && in_lto_p.
* tree-ssa-coalesce.c (coalesce_ssa_name): Use MUST_COALESCE_COST - 1
cost for in_lto_p.
* gcc.dg/lto/pr60404_0.c: New test.
* gcc.dg/lto/pr60404_1.c: New file.
* gcc.dg/lto/pr60404_2.c: New file.
Paulo Matos [Tue, 4 Mar 2014 11:45:06 +0000 (12:45 +0100)]
tree-streamer.c (record_common_node): Assert we don't record nodes with type double.
2014-03-04 Paulo Matos <paulo@matos-sorge.com>
* tree-streamer.c (record_common_node): Assert we don't record
nodes with type double.
(preload_common_node): Skip type double, complex double and
double pointer since it is now frontend dependent due to
fshort-double option.
Richard Biener [Tue, 4 Mar 2014 11:25:50 +0000 (11:25 +0000)]
re PR lto/60405 (ICE in lto1 on x86_64-linux-gnu)
2014-03-04 Richard Biener <rguenther@suse.de>
PR lto/60405
* lto-streamer-in.c (lto_read_body): Remove LTO bytecode version
check.
(lto_input_toplevel_asms): Likewise.
* lto-section-in.c (lto_get_section_data): Instead do it here
for every section.
Jerry DeLisle [Tue, 4 Mar 2014 04:33:40 +0000 (04:33 +0000)]
re PR fortran/60148 (strings in NAMELIST do not honor DELIM= in open statement)
2014-03-03 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/60148
* io/inquire.c (inquire_via_unit): In the case of
DELIM_UNSPECIFIED set inquire return string to "NONE".
* io/list_read.c (read_character): In the case of DELIM_NONE and
namelists, complete the character read using the namelist
variable length.
* io/open.c (new_unit): Don't set delim status to none if not
specified so that DELIM_UNSPECIFIED can be used later.
* io/transfer.c (data_transfer_init): For namelist I/O, if the
unit delim status is unspecified set the current status to quote.
Otherwise, set current status to the unit status.
* io/unit.c (get_internel_unit, init_unit): Remember to set
flags_delim initially to DELIM_UNSPECIFIED so defaults come out
correctly.
* io/write.c (write_character): Add a new function argument
"mode" to signify that raw output is to be used vs output with
delimiters. If the mode is set to DELIM (1) proceed with
delimiters. (list_formatted_write_scalar): Write the separator
only if a delimiter was previously specified. Update the call to
write_character with the mode argument given.
(namelist_write_newline): Use the mode argument. (nml_write_obj):
Use the mode argument. Remove use of tmp_delim. Write the
semi-colon or comma correctly only when needed with using
delimiters. Cleanup whitespace.
(namelist_write): If delim is not specified in namelist I/O,
default to using quotes. Get rid of the tmp_delim variable and
use the new mode argument in write_character.
Bill Schmidt [Mon, 3 Mar 2014 20:16:52 +0000 (20:16 +0000)]
rs6000.c (rs6000_preferred_reload_class): Disallow reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS...
2014-03-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_preferred_reload_class): Disallow
reload of PLUS rtx's outside of GENERAL_REGS or BASE_REGS; relax
constraint on constants to permit them being loaded into
GENERAL_REGS or BASE_REGS.
* c-pragma.c (c_pp_lookup_pragma): Handle PRAGMA_CILK_SIMD.
(init_pragma): Call cpp_register_deferred_pragma for PRAGMA_CILK_SIMD
even when flag_preprocess_only.
* c-c++-common/cilk-plus/PS/vectorlength-2.c: New test.
* c-c++-common/cilk-plus/PS/vectorlength-3.c: New test.
Jakub Jelinek [Mon, 3 Mar 2014 07:25:50 +0000 (08:25 +0100)]
re PR middle-end/60175 (ICE on gcc.dg/asan/nosanitize-and-inline.c)
PR middle-end/60175
* function.c (expand_function_end): Don't emit
clobber_return_register sequence if clobber_after is a BARRIER.
* cfgexpand.c (construct_exit_block): Append instructions before
return_label to prev_bb.
Jan Hubicka [Sun, 2 Mar 2014 22:19:37 +0000 (23:19 +0100)]
re PR lto/60150 (ICE in function_and_variable_visibility, at ipa.c:1000)
PR ipa/60150
* ipa.c (function_and_variable_visibility): When dissolving comdat
group, also set all symbols to local.
* g++.dg/lto/pr60150.H: New testcase.
* g++.dg/lto/pr60150_0.C: New testcase.
* g++.dg/lto/pr60150_1.C: New testcase.
Richard Biener [Fri, 28 Feb 2014 13:14:23 +0000 (13:14 +0000)]
re PR tree-optimization/60280 (gcc.target/arm/ivopts.c and gcc.target/arm/ivopts-2.c failed caused by preserving loop structure.)
2014-02-28 Richard Biener <rguenther@suse.de>
PR target/60280
* tree-cfgcleanup.c (tree_forwarder_block_p): Restrict
previous fix and only allow to remove trivial pre-headers
and latches. Also honor LOOPS_MAY_HAVE_MULTIPLE_LATCHES.
(remove_forwarder_block): Properly update the latch of
a loop.
Alexandre Oliva [Fri, 28 Feb 2014 12:57:40 +0000 (12:57 +0000)]
re PR debug/59992 (Compilation of insn-recog.c too slow due to var-tracking)
PR debug/59992
* cselib.c (cselib_hasher::equal): Special-case VALUE lookup.
(cselib_preserved_hash_table): New.
(preserve_constants_and_equivs): Move preserved vals to it.
(cselib_find_slot): Look it up first.
(cselib_init): Initialize it.
(cselib_finish): Release it.
(dump_cselib_table): Dump it.
Alexandre Oliva [Fri, 28 Feb 2014 12:57:06 +0000 (12:57 +0000)]
re PR debug/59992 (Compilation of insn-recog.c too slow due to var-tracking)
PR debug/59992
* cselib.c (remove_useless_values): Skip to avoid quadratic
behavior if the condition moved from...
(cselib_process_insn): ... here holds.
Jeff Law [Thu, 27 Feb 2014 19:28:40 +0000 (12:28 -0700)]
re PR rtl-optimization/52714 (ICE in fixup_reorder_chain, at cfglayout.c:880)
PR rtl-optimization/52714
* combine.c (try_combine): When splitting an unrecognized PARALLEL
into two independent simple sets, if I3 is a jump, ensure the
pattern we place into I3 is a (set (pc) ...)
PR rtl-optimization/52714
* gcc.c-torture/compile/pr52714.c: New test.
re PR rtl-optimization/49847 (NULL deref in fold_rtx (prev_insn_cc0 == NULL))
PR rtl-optimization/49847
* cse.c (fold_rtx) Handle case where cc0 setter and cc0 user
are in different blocks.
* doc/tm.texi (Condition Code Status): Update documention for
relative locations of cc0-setter and cc0-user.
PR rtl-optimization/49847
* g++.dg/pr49847.C: New test.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r208203
Marek Polacek [Thu, 27 Feb 2014 08:05:21 +0000 (08:05 +0000)]
re PR middle-end/59223 (-Wmaybe-uninitialized and -Wuninitialized relationships)
PR middle-end/59223
* tree-ssa-uninit.c (gate_warn_uninitialized): Run the pass even for
-Wmaybe-uninitialized.
testsuite/
* c-c++-common/pr59223.c: New test.