Paolo Carlini [Sun, 2 Oct 2011 12:31:40 +0000 (12:31 +0000)]
re PR preprocessor/36819 (memleak in split_quote_chain)
2011-10-02 Paolo Carlini <paolo.carlini@oracle.com>
PR preprocessor/36819
* incpath.c (merge_include_chains): Call free_path on
heads[QUOTE] and tails[QUOTE].
From-SVN: r179426
Revital Eres [Sun, 2 Oct 2011 11:14:53 +0000 (11:14 +0000)]
Fix r179381: add missing period in testsuite/Changelog.
From-SVN: r179425
Jan Hubicka [Sun, 2 Oct 2011 10:41:24 +0000 (12:41 +0200)]
re PR lto/47247 (Linker plugin specification makes it difficult to handle COMDATs)
PR lto/47247
* lto-plugin.c (get_symbols_v2): New variable.
(write_resolution): Use V2 API when available.
(onload): Handle LDPT_GET_SYMBOLS_V2.
* lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
when resolution is already availbale from plugin.
(lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
* cgraph.c (ld_plugin_symbol_resolution): Add prevailing_def_ironly_exp.
* lto-cgraph.c (LDPR_NUM_KNOWN): Update.
* ipa.c (varpool_externally_visible_p): IRONLY variables are never
externally visible.
* varasm.c (resolution_to_local_definition_p): Add
LDPR_PREVAILING_DEF_IRONLY_EXP.
(resolution_local_p): Likewise.
* common.c (lto_resolution_str): Add new resolution.
* common.h (lto_resolution_str): Likewise.
From-SVN: r179424
David S. Miller [Sun, 2 Oct 2011 02:21:20 +0000 (02:21 +0000)]
Start adding support for VIS 3.0 instructions.
gcc/
* config/sparc/sparc.opt (VIS3): New option.
* doc/invoke.texi: Document it.
* config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
not capable of such instructions.
* config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
to 0x300 when TARGET_VIS3.
* config/sparc/sparc-modes.def: Create 16-byte vector modes.
* config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
(V64N8, VASS): New mode iterators.
(vis3_shift, vis3_addsub_ss): New code iterators.
(vbits, vconstr): New mode attributes.
(vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
(cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
fmean16_vis, fpadd64_vis, fpsub64_vis, <vis3_addsub_ss_insn><vbits>_vis,
fucmp<code>8<P:mode>_vis): New VIS 3.0 instruction patterns.
* config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
default when targetting capable cpus. TARGET_VIS3 implies
TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is
disabled.
(sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
(sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
is ignored.
* config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
__vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
__vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
__vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
__vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
__vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
__vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
__vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
* doc/extend.texi: Document new VIS 3.0 builtins.
gcc/testsuite/
* gcc.target/sparc/cmask.c: New test.
* gcc.target/sparc/fpadds.c: New test.
* gcc.target/sparc/fshift.c: New test.
* gcc.target/sparc/fucmp.c: New test.
* gcc.target/sparc/vis3misc.c: New test.
From-SVN: r179421
GCC Administrator [Sun, 2 Oct 2011 00:17:58 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r179420
Eric Botcazou [Sat, 1 Oct 2011 19:42:54 +0000 (19:42 +0000)]
* ira-color.c (assign_hard_reg): Fix typo.
From-SVN: r179415
François Dumont [Sat, 1 Oct 2011 19:21:57 +0000 (19:21 +0000)]
vector (vector<>::erase(iterator, iterator): Check iterators equality using normal iterators.
2011-10-01 François Dumont <fdumont@gcc.gnu.org>
* include/debug/vector (vector<>::erase(iterator, iterator): Check
iterators equality using normal iterators.
* include/debug/deque (deque<>::erase(iterator, iterator): Likewise.
From-SVN: r179414
Janus Weil [Sat, 1 Oct 2011 11:41:41 +0000 (13:41 +0200)]
re PR fortran/50585 (ICE with assumed length character array argument)
2011-10-01 Janus Weil <janus@gcc.gnu.org>
PR fortran/50585
* interface.c (get_expr_storage_size): Check if 'length' component is
associated.
2011-10-01 Janus Weil <janus@gcc.gnu.org>
PR fortran/50585
* gfortran.dg/assumed_charlen_arg_2.f90: New.
From-SVN: r179413
GCC Administrator [Sat, 1 Oct 2011 00:17:57 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r179410
Jason Merrill [Fri, 30 Sep 2011 17:47:40 +0000 (13:47 -0400)]
cp-tree.h (TREE_NEGATED_INT): Remove.
* cp-tree.h (TREE_NEGATED_INT): Remove.
* semantics.c (finish_unary_op_expr): Don't set it.
From-SVN: r179400
Janis Johnson [Fri, 30 Sep 2011 17:33:41 +0000 (17:33 +0000)]
re PR c++/44473 (iterators already defined for std::vector when using std::decimal)
gcc/cp
PR c++/44473
* mangle.c (write_type): Handle CV qualifiers for decimal classes.
gcc/testsuite
PR c++/44473
* g++.dg/dfp/44473-1.C: New test.
* g++.dg/dfp/44473-2.C: New test.
* g++.dg/dfp/mangle-1.C: New test.
* g++.dg/dfp/mangle-2.C: New test.
* g++.dg/dfp/mangle-3.C: New test.
* g++.dg/dfp/mangle-4.C: New test.
* g++.dg/dfp/mangle-5.C: New test.
From-SVN: r179399
H.J. Lu [Fri, 30 Sep 2011 16:29:06 +0000 (16:29 +0000)]
Add missing ','.
2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
* doc/extend.texi: Add missing ','.
From-SVN: r179397
H.J. Lu [Fri, 30 Sep 2011 15:48:51 +0000 (15:48 +0000)]
Use 64bit integer for LTO symbol ID.
gcc/lto
2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
Andi Kleen <ak@linux.intel.com>
PR lto/50568
* lto.c (lto_splay_tree_delete_id): New.
(lto_splay_tree_compare_ids): Likewise.
(lto_splay_tree_lookup): Likewise.
(lto_splay_tree_id_equal_p): Likewise.
(lto_splay_tree_insert): Likewise.
(lto_splay_tree_new): Likewise.
(lto_resolution_read): Change id to unsigned HOST_WIDE_INT.
Use lto_splay_tree_id_equal_p and lto_splay_tree_lookup.
(create_subid_section_table): Use lto_splay_tree_lookup and
lto_splay_tree_insert.
(lto_file_read): Use lto_splay_tree_new.
lto-plugin/
2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
Andi Kleen <ak@linux.intel.com>
PR lto/50568
* lto-plugin.c (sym_aux): Change id to unsigned long long.
(plugin_symtab): Likewise.
(dump_symtab): Likewise.
(resolve_conflicts): Likewise.
(process_symtab): Likewise.
Co-Authored-By: Andi Kleen <ak@linux.intel.com>
From-SVN: r179395
Bernd Schmidt [Fri, 30 Sep 2011 15:37:43 +0000 (15:37 +0000)]
c6x-common.c (c6x_option_optimization_table): Enable -fmodulo-sched at -O2 and above.
* common/config/c6x/c6x-common.c (c6x_option_optimization_table):
Enable -fmodulo-sched at -O2 and above.
* config/c6x/c6x.md (doloop_end): New expander.
(mvilc, sploop, spkernel, loop_end): New patterns.
(loop_end with memory destination splitter): New.
* config/c6x/c6x.c: Include "hw-doloop.h".
(enum unitreqs): New.
(unit_req_table): New typedef.
(unit_reqs): New static variable.
(unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
(struct c6x_sched_context): New member last_scheduled_iter0.
(init_sched_state): Initialize it.
(c6x_variable_issue): Update it.
(sploop_max_uid_iter0): New static variable.
(c6x_sched_reorder_1): Be careful about issuing sploop.
(c6x_reorg): Call c6x_hwlooops before the final schedule.
From-SVN: r179393
Georg-Johann Lay [Fri, 30 Sep 2011 15:15:23 +0000 (15:15 +0000)]
re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
* config/avr/avr-protos.h (avr_log_t): New field address_cost.
* config/avr/avr.c (avr_address_cost): Use it.
* config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
(avr_log_vadump): Unknown %-codes finish printing.
From-SVN: r179391
Jakub Jelinek [Fri, 30 Sep 2011 15:01:27 +0000 (17:01 +0200)]
re PR inline-asm/50571 (Undesirable folding in "m" constrained asm operands)
PR inline-asm/50571
* gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
input constraints allow mem and not reg, pass true instead of
false as second argument to maybe_fold_reference.
* gcc.dg/pr50571.c: New test.
From-SVN: r179389
Jakub Jelinek [Fri, 30 Sep 2011 15:00:12 +0000 (17:00 +0200)]
re PR tree-optimization/46309 (optimization a==3||a==1)
PR tree-optimization/46309
* fold-const.c (make_range, merge_ranges): Remove prototypes.
(make_range_step): New function.
(make_range): Use it.
* tree.h (make_range_step): New prototypes.
* Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
* tree-ssa-reassoc.c: Include diagnostic-core.h.
(struct range_entry): New type.
(init_range_entry, range_entry_cmp, update_range_test,
optimize_range_tests): New functions.
(reassociate_bb): Call optimize_range_tests.
* gcc.dg/pr46309.c: New test.
From-SVN: r179388
Jakub Jelinek [Fri, 30 Sep 2011 14:58:27 +0000 (16:58 +0200)]
tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
* tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix
handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
(ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
* gcc.dg/strlenopt-21.c: New test.
Co-Authored-By: Richard Guenther <rguenther@suse.de>
From-SVN: r179387
Jan Beulich [Fri, 30 Sep 2011 14:56:01 +0000 (14:56 +0000)]
Split out LTO's writing of top level asm nodes in preparation of extending what...
Split out LTO's writing of top level asm nodes in preparation of extending
what needs to be written out when top level asm-s get enhanced to accept a
limited set of input operands.
gcc/
2011-09-30 Jan Beulich <jbeulich@suse.com>
* lto-cgraph.c (output_cgraph): Remove processing of
'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
(input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
lto_input_toplevel_asms() instead.
* lto-section-in.c (lto_section_name): Add "asm" entry.
* lto-streamer-in.c (lto_input_toplevel_asms): New.
* lto-streamer-out.c (lto_output_toplevel_asms): New.
* lto-streamer.h (LTO_minor_version): Bump.
(enum lto_section_type): Add LTO_section_asm.
(struct lto_asm_header): New.
(lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
* tree-streamer.h (streamer_write_string_cst): Declare.
* tree-streamer-out.c (write_string_cst): Rename to
streamer_write_string_cst and make global. Handle incoming string
being NULL.
(streamer_write_tree_header): Adjust call to renamed function.
From-SVN: r179386
Bernd Schmidt [Fri, 30 Sep 2011 14:12:34 +0000 (14:12 +0000)]
sched-ebb.c (schedule_ebb): No longer static.
* sched-ebb.c (schedule_ebb): No longer static. Remove declaration.
New arg modulo_scheduling. All callers changed. Move note handling
code here from schedule_ebbs.
(schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
out of schedule_ebbs.
(schedule_ebbs): Call them. Remove note handling code moved to
schedule_ebb.
* sched-int.h (schedule_ebb, schedule_ebbs_init,
schedule_ebbs_finish): Declare.
From-SVN: r179385
Iain Sandoe [Fri, 30 Sep 2011 13:44:48 +0000 (13:44 +0000)]
Partial reversion of r179358.
ada:
Partial reversion of r179358.
* gcc-interface/Makefile.in (Darwin): Partial reversion of previous
change to powerpc section.
From-SVN: r179384
Bernd Schmidt [Fri, 30 Sep 2011 13:33:54 +0000 (13:33 +0000)]
haifa-sched.c (modulo_ii, [...]): New static variables.
* haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
modulo_last_stage): New static variables.
(set_modulo_params, discard_delay_pairs_above): New functions.
(struct delay_pair): New member stages.
(htab_i2_traverse, htab_i1_traverse): New static functions.
(record_delay_slot_pair): New arg stages. All callers changed.
Record it.
(pair_delay): Take stages into account.
(add_delay_dependencies): Don't do so for stage pairs.
(struct sched_block_state): New member modulo_epilogue.
(save_backtrack_point): Don't set SHADOW_P for stage pairs.
(unschedule_insns_until): Decrease modulo_insns_scheduled.
Set HARD_DEP without using or.
(resolve_dependencies): New static function.
(prune_ready_list): New arg modulo_epilogue_p. All callers changed.
If it is true, allow only insns with INSN_EXACT_TICK set.
(schedule_block): Return bool, always true for normal scheduling,
true or false depending on modulo scheduling success otherwise.
Add bookkeeping for modulo scheduling, and call resolve_dependencies
on everything left over after a modulo schedule.
(haifa_sched_init): Remove check_cfg call. Clear modulo_ii.
* sched-int.h (schedule_block, record_delay_slot_pair): Adjust
declarations.
(set_modulo_params, discard_delay_pairs_above): Declare.
* params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
* doc/invoke.texi (--param): Document it.
From-SVN: r179383
Richard Guenther [Fri, 30 Sep 2011 13:33:14 +0000 (13:33 +0000)]
re PR tree-optimization/50574 (gcc.c-torture/execute/vector-compare-1.c FAILs on SPARC)
2011-09-30 Richard Guenther <rguenther@suse.de>
PR middle-end/50574
* tree-cfg.c (verify_gimple_comparison): Compare component
mode sizes for vector comparisons.
From-SVN: r179382
Revital Eres [Fri, 30 Sep 2011 13:25:30 +0000 (13:25 +0000)]
SMS: Support instructions with REG_INC_NOTE
From-SVN: r179381
Revital Eres [Fri, 30 Sep 2011 13:10:56 +0000 (13:10 +0000)]
SMS: Avoid generating redundant reg-moves
From-SVN: r179380
Bernd Schmidt [Fri, 30 Sep 2011 12:26:57 +0000 (12:26 +0000)]
hw-doloop.c (scan_loop): Compute register usage only for non-debug insns.
* hw-doloop.c (scan_loop): Compute register usage only for non-debug
insns.
From-SVN: r179379
Ramana Radhakrishnan [Fri, 30 Sep 2011 09:36:43 +0000 (09:36 +0000)]
re PR target/50099 (ICE: internal compiler error: in extract_insn, at recog.c:2113 while building lttng-ust)
Fix PR target/50099
From-SVN: r179378
Matthew Gretton-Dann [Fri, 30 Sep 2011 09:28:38 +0000 (09:28 +0000)]
Commit for Matthew Gretton-Dann fix for the test.
From-SVN: r179377
David S. Miller [Fri, 30 Sep 2011 07:54:07 +0000 (07:54 +0000)]
Add sparc VIS 2.0 builtins, intrinsics, and option to control them.
gcc/
* config/sparc/sparc.opt (VIS2): New option.
* doc/invoke.texi: Document it.
* config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
(define_attr type): New insn type 'edgen'.
(bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
patterns.
* niagara.md: Handle edgen.
* niagara2.md: Likewise.
* ultra1_2.md: Likewise.
* ultra3.md: Likewise.
* config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
to 0x200 when TARGET_VIS2.
* config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
default when targetting capable cpus. TARGET_VIS2 implies
TARGET_VIS, clear and it when TARGET_FPU is disabled.
(sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
(sparc_expand_builtin): Fix predicate indexing when builtin returns
void.
(sparc_fold_builtin): Do not eliminate bmask when result is ignored.
* config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
__vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
__vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
__vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
* doc/extend.texi: Document new VIS 2.0 builtins.
gcc/testsuite/
* gcc.target/sparc/bmaskbshuf.c: New test.
* gcc.target/sparc/edgen.c: New test.
From-SVN: r179376
GCC Administrator [Fri, 30 Sep 2011 00:18:39 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r179375
David S. Miller [Thu, 29 Sep 2011 19:17:13 +0000 (19:17 +0000)]
More sparc pixel-compare insn pattern cleanups.
* config/sparc/sparc.md (VIS pixel-compare insn): There is only one
code iterator used, so just use <code>. There are two mode iterators
so explicitly use <GCM:gcm_name>.
From-SVN: r179366
Nick Clifton [Thu, 29 Sep 2011 17:57:06 +0000 (17:57 +0000)]
frvbegin.c: Fix location of unwind-dw2-fde.h header file.
* config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header
file.
* config/frv/frvend.c: Likewise.
* config/frv/frv.c (frv_function_prologue): Move misplaced
CALL_ARG_LOCATION notes back to their proper locations.
Co-Authored-By: Bernd Schmidt <bernds@codesourcery.com>
From-SVN: r179363
Paolo Carlini [Thu, 29 Sep 2011 17:26:32 +0000 (17:26 +0000)]
hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)): Remove noexcept from declaration too.
2011-09-29 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable.h (_Hashtable<>::_Hashtable(_Hashtable&&)):
Remove noexcept from declaration too.
From-SVN: r179360
Georg-Johann Lay [Thu, 29 Sep 2011 16:24:57 +0000 (16:24 +0000)]
re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
* config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
* config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
from avr_rtx_costs.
(avr_legitimate_address_p): Use avr_edump to print log information
filtered by avr_log.
(extra_constraint_Q): Ditto.
(avr_legitimize_address): Ditto.
(avr_rtx_costs): Ditto. Rewrite as wrapper for avr_rtx_costs_1.
(final_prescan_insn): Use avr_log.rtx_costs as filter.
From-SVN: r179359
Iain Sandoe [Thu, 29 Sep 2011 15:51:14 +0000 (15:51 +0000)]
Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS across the port.
ada:
* gcc-interface/Makefile.in (Darwin): Factor LIBGNAT_TARGET_PAIRS
across the port.
From-SVN: r179358
Richard Sandiford [Thu, 29 Sep 2011 15:03:06 +0000 (15:03 +0000)]
arm-protos.h (arm_modes_tieable_p): Declare.
gcc/
* config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
* config/arm/arm.h (MODES_TIEABLE_P): Use it.
* config/arm/arm.c (arm_modes_tieable_p): New function. Allow
NEON vector and structure modes to be tied.
From-SVN: r179355
Bill Schmidt [Thu, 29 Sep 2011 14:06:31 +0000 (14:06 +0000)]
graphite-scop-detection.c (make_close_phi_nodes_unique): New forward declaration.
2011-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* graphite-scop-detection.c (make_close_phi_nodes_unique): New
forward declaration.
(remove_duplicate_close_phi): Detect and repair creation of
duplicate close-phis for a containing loop.
From-SVN: r179351
Andi Kleen [Thu, 29 Sep 2011 13:15:29 +0000 (13:15 +0000)]
Use urandom in gcc.c too
gcc also takes generates a random number in some special circumstances,
so teach it about /dev/urandom too.
gcc/:
2011-09-27 Andi Kleen <ak@linux.intel.com>
* gcc.c (get_local_tick). Rename to get_random_number.
Read from /dev/urandom.
Add getpid call.
(compare_debug_dump_opt_spec_function): Drop getpid call.
From-SVN: r179349
Andi Kleen [Thu, 29 Sep 2011 13:15:13 +0000 (13:15 +0000)]
Use urandom to get random seed
When available use /dev/urandom to get the random seem. This will lower the probability
of collisions.
On other systems it will fallback to the old methods.
Passes bootstrap + testsuite on x86_64. Ok?
gcc/:
2011-09-26 Andi Kleen <ak@linux.intel.com>
* toplev.c (init_local_tick): Try reading random seed from /dev/urandom
From-SVN: r179348
Andi Kleen [Thu, 29 Sep 2011 13:14:51 +0000 (13:14 +0000)]
Change random seeds to 64bit and drop re-crcing
I had some trouble with random build failures in a large LTO project
and it turned out to be random seed collisions in a highly parallel build
(thanks to Honza for suggesting that)
There were multiple problems:
- The way to generate the random seed is not very random (milliseconds time plus pid)
and prone to collisions on highly parallel builds
- It's only 32bit
- Several users take the existing ascii seed and re-CRC32 it again, which
doesn't exactly improve it.
This patch changes that to:
- Always use 64bit seeds as numbers (no re-crcing)
- Change all users to use HOST_WIDE_INT
- When the user specifies a random seed it's still crc32ed, but only in
this case.
Passes bootstrap + testsuite on x86_64-linux.
gcc/cp:
2011-09-26 Andi Kleen <ak@linux.intel.com>
* repo.c (finish_repo): Use HOST_WIDE_INT_PRINT_HEX_PURE.
gcc/:
2011-09-26 Andi Kleen <ak@linux.intel.com>
* hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
* lto-streamer.c (lto_get_section_name): Remove crc32_string.
Handle numerical random seed.
* lto-streamer.h (lto_file_decl_data): Change id to unsigned HOST_WIDE_INT.
* toplev.c (random_seed): Add.
(init_random_seed): Change for numerical random seed.
(get_random_seed): Return as HOST_WIDE_INT.
(set_random_seed): Crc32 existing string.
* toplev.h (get_random_seed): Change to numercal return.
* tree.c (get_file_function_name): Remove CRC. Handle numerical random seed.
gcc/lto/:
2011-09-26 Andi Kleen <ak@linux.intel.com>
* lto.c (lto_resolution_read): Remove id dumping.
(lto_section_with_id): Turn id HOST_WIDE_ID.
(create_subid_section_table): Dito.
From-SVN: r179347
Janus Weil [Thu, 29 Sep 2011 11:57:35 +0000 (13:57 +0200)]
re PR fortran/50547 (dummy procedure argument of PURE shall be PURE)
2011-09-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* resolve.c (resolve_formal_arglist): Fix pureness check for dummy
functions.
PR fortran/50553
* symbol.c (check_conflict): Forbid TARGET attribute for statement
functions.
2011-09-29 Janus Weil <janus@gcc.gnu.org>
PR fortran/50547
* gfortran.dg/pure_formal_proc_3.f90: New.
PR fortran/50553
* gfortran.dg/stfunc_7.f90: New.
From-SVN: r179345
Georg-Johann Lay [Thu, 29 Sep 2011 11:51:59 +0000 (11:51 +0000)]
re PR target/50566 ([avr]: Add support for better logging similar to -mdeb)
PR target/50566
* config.gcc (extra_objs): Add avr-log.o for $target in:
avr-*-rtems*, avr-*-*.
* config/avr/t-avr (avr-log.o): New rule to compile...
* config/avr/avr-log.c: ...this new file.
* config/avr/avr.opt (mlog=): New option.
* config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
(avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
(avr_log_set_avr_log): New prototype.
(avr_log_t): New typedef.
(avr_log): New declaration.
* config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
From-SVN: r179344
Jan Beulich [Thu, 29 Sep 2011 11:37:47 +0000 (11:37 +0000)]
The commands of the $(TOOLS_ZIP) rule include copying of two subtrees from the source tree (asm/ and classes/).
The commands of the $(TOOLS_ZIP) rule include copying of two subtrees from the
source tree (asm/ and classes/). If the source tree is read-only, the use of
cp's -p option here prevents the trees from getting deleted later in the rule
if they (or at least their directories) don't get marked writable.
Committed as obvious.
libjava/classpath/
2011-09-29 Jan Beulich <jbeulich@suse.com>
* tools/Makefile.am (TOOLS_ZIP): Make writable the copied subtrees
asm/ and classes/.
* tools/Makefile.in: Re-generate.
From-SVN: r179343
Artjoms Sinkarovs [Thu, 29 Sep 2011 11:29:03 +0000 (11:29 +0000)]
expr.c (do_store_flag): Expand vector comparison by building an appropriate VEC_COND_EXPR.
2011-09-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
* expr.c (do_store_flag): Expand vector comparison by
building an appropriate VEC_COND_EXPR.
* c-typeck.c (build_binary_op): Typecheck vector comparisons.
(c_objc_common_truthvalue_conversion): Adjust.
* tree-vect-generic.c (do_compare): Helper function.
(expand_vector_comparison): Check if hardware supports
vector comparison of the given type or expand vector
piecewise.
(expand_vector_operation): Treat comparison as binary
operation of vector type.
(expand_vector_operations_1): Adjust.
* gcc.c-torture/execute/vector-compare-1.c: New testcase.
* gcc.c-torture/execute/vector-compare-2.c: Likewise.
* gcc.dg/vector-compare-1.c: Likewise.
* gcc.dg/vector-compare-2.c: Likewise.
From-SVN: r179342
Richard Guenther [Thu, 29 Sep 2011 11:26:46 +0000 (11:26 +0000)]
tree.c (build_opaque_vector_type): Make opaque vectors variant types of the corresponding non-opaque type.
2011-09-29 Richard Guenther <rguenther@suse.de>
* tree.c (build_opaque_vector_type): Make opaque vectors
variant types of the corresponding non-opaque type. Make
sure to share opaque vector types properly.
From-SVN: r179341
Uros Bizjak [Thu, 29 Sep 2011 09:04:03 +0000 (11:04 +0200)]
ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.
From-SVN: r179338
David S. Miller [Thu, 29 Sep 2011 07:56:05 +0000 (07:56 +0000)]
Remove unnecessary sparc code attr.
* config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
(VIS pixel-compare insn): Just use <gcond:name>.
From-SVN: r179335
David S. Miller [Thu, 29 Sep 2011 07:35:16 +0000 (07:35 +0000)]
Add sparc 3D array addressing VIS intrinsics.
gcc/
* config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
UNSPEC_ARRAY32): New unspec.
(define_attr type): New type 'array'.
(array{8,16,32}<P:mode>_vis): New patterns.
* config/sparc/ultra1_2.md: Add reservations for 'array'.
* config/sparc/ultra3.md: Likewise.
* config/sparc/niagara.md: Likewise.
* config/sparc/niagara2.md: Likewise.
* config/sparc/sparc.c (sparc_vis_init_builtins): Build new
array builtins.
* config/sparc/visintrin.h (__vis_array8, __vis_array16,
__vis_array32): New.
* doc/extend.texi: Document new VIS builtins.
gcc/testsuite/
* gcc.target/sparc/array.c: New test.
From-SVN: r179334
Iain Sandoe [Thu, 29 Sep 2011 07:17:42 +0000 (07:17 +0000)]
darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for Darwin >= 9.
gcc:
* config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
Darwin >= 9.
From-SVN: r179332
Jiangning Liu [Thu, 29 Sep 2011 06:48:26 +0000 (06:48 +0000)]
predcom-1.c: Explicitly turn on loop unroll and set max unroll times to 8.
2011-09-29 Jiangning Liu <jiangning.liu@arm.com>
* gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c: Explicitly turn on
loop unroll and set max unroll times to 8.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-2.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-3.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c: Likewise.
* gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c: Likewise.
From-SVN: r179330
David S. Miller [Thu, 29 Sep 2011 03:52:00 +0000 (03:52 +0000)]
Respin sparc pixel-compare patterns using iterators.
* config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
(UNSPEC_FCMP): New unspec.
(gcond): New code iterator.
(gcond_name): New code attr.
(GCM): New mode iterator.
(gcm_name): New mode attr.
(fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
From-SVN: r179329
GCC Administrator [Thu, 29 Sep 2011 00:18:27 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r179327
Paolo Carlini [Wed, 28 Sep 2011 23:14:04 +0000 (23:14 +0000)]
re PR c++/40145 (structure inside a static function is exported, producing warning)
2011-09-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/40145
* g++.dg/ext/visibility/warn5.C: New.
From-SVN: r179323
Paolo Carlini [Wed, 28 Sep 2011 22:04:48 +0000 (22:04 +0000)]
re PR c++/45278 (-Wextra doesn't warn about (pointer < 0 ).)
/cp
2011-09-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/45278
* typeck.c (cp_build_binary_op): With -Wextra, warn for ordered
comparison of pointer with zero.
/testsuite
2011-09-28 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/45278
* g++.dg/warn/Wextra-3.C: New.
From-SVN: r179321
Oleg Endo [Wed, 28 Sep 2011 21:43:01 +0000 (21:43 +0000)]
re PR bootstrap/49486 (Bootstrap failure)
PR target/49486
* config/sh/sh.md (negdi2): Move expansion into split to
allow more combination options. Add T_REG clobber.
(abssi2): New expander.
(*negdi2, *abssi2, *negabssi2): New insns.
(cneg): Change from insn to insn_and_split. Rename to
negsi_cond. Add alternative for non-SH4.
* gcc.target/sh/pr49468-si.c: New.
From-SVN: r179320
Doug Evans [Wed, 28 Sep 2011 19:09:50 +0000 (19:09 +0000)]
timeval-utils.h: New file.
include/
* timeval-utils.h: New file.
libiberty/
* timeval-utils.c: New file.
* Makefile.in (CFILES): Add it.
(REQUIRED_OFILES): Add timeval-utils.$(objext).
(INSTALLED_HEADERS): Add timeval-utils.h.
(timeval-utils.$(objext)): Add rule.
From-SVN: r179319
Doug Evans [Wed, 28 Sep 2011 19:04:30 +0000 (19:04 +0000)]
libiberty.h (countargv): Declare.
include/
* libiberty.h (countargv): Declare.
libiberty/
* argv.c (countargv): New function.
From-SVN: r179318
Richard Sandiford [Wed, 28 Sep 2011 15:00:10 +0000 (15:00 +0000)]
neon.md (neon_move_lo_quad_<mode>): Delete.
gcc/
* config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
(neon_move_hi_quad_<mode>): Likewise.
(move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
From-SVN: r179316
Nick Clifton [Wed, 28 Sep 2011 14:37:30 +0000 (14:37 +0000)]
predicates.md (rx_minmax_operand): New predicate.
* config/rx/predicates.md (rx_minmax_operand): New predicate.
Accepts immediates and a restricted subset of MEMs.
* config/rx/rx.md (int_modes): New iterator.
(smaxsi3, sminsi3): Delete and replace with...
(smax<int_mode>3, smin<int_mode>3): New patterns.
(umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
From-SVN: r179315
Nick Clifton [Wed, 28 Sep 2011 13:56:19 +0000 (13:56 +0000)]
rx-lib.h: Always restrict doubles to the SF type when 64-bit doubles are not enabled.
* config/rx/rx-lib.h: Always restrict doubles to the SF type when
64-bit doubles are not enabled.
* config/rx/rx-abi.h: Fix extraneous renaming of the floatsisf
and floatunsisf functions.
From-SVN: r179314
Richard Guenther [Wed, 28 Sep 2011 13:47:12 +0000 (13:47 +0000)]
re PR middle-end/50460 (__builtin___strcpy_chk/__builtin_object_size don't work)
2011-09-28 Richard Guenther <rguenther@suse.de>
PR middle-end/50460
* fold-const.c (try_move_mult_to_index): Handle &a.array the
same as &a.array[0].
From-SVN: r179313
Ian Lance Taylor [Wed, 28 Sep 2011 13:14:11 +0000 (13:14 +0000)]
mksysinfo: #include <ttold.h> on Irix.
From Rainer Orth.
From-SVN: r179312
Tom de Vries [Wed, 28 Sep 2011 08:48:00 +0000 (08:48 +0000)]
re PR testsuite/50485 (gcc.target/i386/sse4_1-blendps.c fails spuriously on i686)
2011-09-28 Tom de Vries <tom@codesourcery.com>
PR testsuite/50485
* gcc.target/i386/sse4_1-blendps.c: Include <stdlib.h>.
(TEST): Initialize src3 with random floats.
* gcc.target/i386/sse4_1-blendps-2.c (sse4_1_test): Remove field i from
union src3. Initialize src3 with random floats.
From-SVN: r179309
Kai Tietz [Wed, 28 Sep 2011 08:07:39 +0000 (10:07 +0200)]
configure.ac: Add test for new section attribute specifier "e" via define...
* configure.ac: Add test for new section attribute
specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
* config.in: Regenerated.
* configure: Regenerated.
* config/i386/winnt.c (i386_pe_asm_named_section): Emit
new section flag "e" for excluded sections, if supported.
Otherwise we mark section withc SECTION_EXCLUDE flag
as never-load.
From-SVN: r179308
Benjamin Kosnik [Wed, 28 Sep 2011 01:37:10 +0000 (01:37 +0000)]
*: Regenerate.
2011-09-27 Benjamin Kosnik <bkoz@redhat.com>
* doc/html/*: Regenerate.
* doc/Makefile.am: Un-nest the ext output directory.
* doc/Makefile.in: Regenerate.
* spine.xml: Remove authors, add abstract for short
contents. Rename to index.html for html output.
* manual/spine.xml: Authors here, manual starts with index.html.
* api.xml: Update.
* faq.xml: Same.
Co-Authored-By: Jonathan Wakely <jwakely.gcc@gmail.com>
From-SVN: r179304
GCC Administrator [Wed, 28 Sep 2011 00:18:32 +0000 (00:18 +0000)]
Daily bump.
From-SVN: r179302
Richard Sandiford [Tue, 27 Sep 2011 23:04:14 +0000 (23:04 +0000)]
m32r.md: Use match_test rather than eq/ne symbol_ref throughout file.
gcc/
* config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
throughout file.
From-SVN: r179297
Richard Sandiford [Tue, 27 Sep 2011 23:03:57 +0000 (23:03 +0000)]
iq2000.md: Use match_test rather than eq/ne symbol_ref throughout file.
gcc/
* config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
throughout file.
From-SVN: r179296
Oleg Endo [Tue, 27 Sep 2011 22:46:00 +0000 (22:46 +0000)]
mfmovd.c: Extend list of supported targets.
* gcc.target/sh/mfmovd.c: Extend list of supported targets.
* gcc.target/sh/struct-arg-dw2.c: Fix typo.
* gcc.target/sh/sh4a-sincos.c: Make test SH4A only.
* gcc.target/sh/sh4a-sincosf.c: Ditto.
* gcc.target/sh/sh4a-cos.c: Ditto.
* gcc.target/sh/sh4a-cosf.c: Ditto.
* gcc.target/sh/sh4a-sin.c: Ditto.
* gcc.target/sh/sh4a-sinf.c: Ditto.
* gcc.target/sh/sh4a-fsrra.c: Ditto.
* gcc.target/sh/sh4a-memmovua.c: Ditto.
* gcc.target/sh/sh4a-bitmovua.c: Ditto.
From-SVN: r179295
Paolo Carlini [Tue, 27 Sep 2011 21:52:19 +0000 (21:52 +0000)]
re PR c++/31489 (error says struct when it should say class)
/cp
2011-09-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/31489
* parser.c (cp_parser_elaborated_type_specifier): For RECORD_TYPE,
set CLASSTYPE_DECLARED_CLASS.
/testsuite
2011-09-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/31489
* g++.dg/parse/error40.C: New.
* g++.dg/warn/incomplete1.C: Adjust.
From-SVN: r179293
Jakub Jelinek [Tue, 27 Sep 2011 19:17:31 +0000 (21:17 +0200)]
trans-types.c (gfc_type_for_size): Return wider type if no suitable narrower type has been found.
* trans-types.c (gfc_type_for_size): Return wider type
if no suitable narrower type has been found.
(gfc_type_for_mode): Return NULL_TREE if gfc_type_for_size
returned type doesn't have expected TYPE_MODE.
From-SVN: r179290
Sriraman Tallam [Tue, 27 Sep 2011 17:52:13 +0000 (17:52 +0000)]
output.h (SECTION_EXCLUDE): New macro.
2011-09-27 Sriraman Tallam <tmsriram@google.com>
* output.h (SECTION_EXCLUDE): New macro.
* varasm.c (default_elf_asm_named_section): Check for
SECTION_EXCLUDE.
From-SVN: r179288
Richard Sandiford [Tue, 27 Sep 2011 17:24:03 +0000 (17:24 +0000)]
fwprop.c (forward_propagate_and_simplify): After checking reg/subreg combinations, check whether the modes are the same.
gcc/
* fwprop.c (forward_propagate_and_simplify): After checking
reg/subreg combinations, check whether the modes are the same.
From-SVN: r179287
Bernd Schmidt [Tue, 27 Sep 2011 17:23:27 +0000 (17:23 +0000)]
mips.c (mips_add_cfa_restore): New function.
gcc/
2011-09-25 Bernd Schmidt <bernds@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* config/mips/mips.c (mips_add_cfa_restore): New function.
(mips16e_save_restore_reg): Use it.
(mips_restore_reg): Likewise. Split double FPRs for
REG_CFA_RESTORE notes.
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
From-SVN: r179286
Richard Sandiford [Tue, 27 Sep 2011 17:18:22 +0000 (17:18 +0000)]
re PR libgomp/50386 (libgomp.h:87:5: error: unnamed struct/union that defines no instances)
gcc/
PR middle-end/50386
PR middle-end/50326
* tree-sra.c (build_ref_for_model): Use the type of the field as
the type of the COMPONENT_REF.
From-SVN: r179285
Jeff Law [Tue, 27 Sep 2011 16:49:17 +0000 (10:49 -0600)]
ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.
* ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale
non-jumping insns by REG_BR_PROB_BASE and the maximum cost
by SCALE.
(find_if_case_1): Use the probability of the THEN clause when
determining if speculation is profitable.
(find_if_case_2): Similarly for the ELSE clause.
From-SVN: r179284
Jan Hubicka [Tue, 27 Sep 2011 16:28:24 +0000 (18:28 +0200)]
re PR middle-end/49463 (LTO doesn't work symbol renamed via asm statement)
PR middle-end/49463
* gcc.c-torture/execute/builtins/strstr-asm-lib.c
(my_strstr): Mark used.
From-SVN: r179280
Jakub Jelinek [Tue, 27 Sep 2011 16:18:49 +0000 (18:18 +0200)]
common.opt: Add -foptimize-strlen option.
* common.opt: Add -foptimize-strlen option.
* Makefile.in (OBJS): Add tree-ssa-strlen.o.
(tree-sssa-strlen.o): Add dependencies.
* opts.c (default_options_table): Enable -foptimize-strlen
by default at -O2 if not -Os.
* passes.c (init_optimization_passes): Add pass_strlen
after pass_object_sizes.
* timevar.def (TV_TREE_STRLEN): New timevar.
* params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
* tree-pass.h (pass_strlen): Declare.
* tree-ssa-strlen.c: New file.
* c-decl.c (merge_decls): If compatible stpcpy prototype
is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
cp/
* decl.c (duplicate_decls): If compatible stpcpy prototype
is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
testsuite/
* gcc.dg/strlenopt-1.c: New test.
* gcc.dg/strlenopt-1f.c: New test.
* gcc.dg/strlenopt-2.c: New test.
* gcc.dg/strlenopt-2f.c: New test.
* gcc.dg/strlenopt-3.c: New test.
* gcc.dg/strlenopt-4.c: New test.
* gcc.dg/strlenopt-4g.c: New test.
* gcc.dg/strlenopt-4gf.c: New test.
* gcc.dg/strlenopt-5.c: New test.
* gcc.dg/strlenopt-6.c: New test.
* gcc.dg/strlenopt-7.c: New test.
* gcc.dg/strlenopt-8.c: New test.
* gcc.dg/strlenopt-9.c: New test.
* gcc.dg/strlenopt-10.c: New test.
* gcc.dg/strlenopt-11.c: New test.
* gcc.dg/strlenopt-12.c: New test.
* gcc.dg/strlenopt-12g.c: New test.
* gcc.dg/strlenopt-13.c: New test.
* gcc.dg/strlenopt-14g.c: New test.
* gcc.dg/strlenopt-14gf.c: New test.
* gcc.dg/strlenopt-15.c: New test.
* gcc.dg/strlenopt-16g.c: New test.
* gcc.dg/strlenopt-17g.c: New test.
* gcc.dg/strlenopt-18g.c: New test.
* gcc.dg/strlenopt.h: New file.
From-SVN: r179279
Jakub Jelinek [Tue, 27 Sep 2011 16:16:57 +0000 (18:16 +0200)]
common.opt: Add -foptimize-strlen option.
* common.opt: Add -foptimize-strlen option.
* Makefile.in (OBJS): Add tree-ssa-strlen.o.
(tree-sssa-strlen.o): Add dependencies.
* opts.c (default_options_table): Enable -foptimize-strlen
by default at -O2 if not -Os.
* passes.c (init_optimization_passes): Add pass_strlen
after pass_object_sizes.
* timevar.def (TV_TREE_STRLEN): New timevar.
* params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
* tree-pass.h (pass_strlen): Declare.
* tree-ssa-strlen.c: New file.
* c-decl.c (merge_decls): If compatible stpcpy prototype
is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
cp/
* decl.c (duplicate_decls): If compatible stpcpy prototype
is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
testsuite/
* gcc.dg/strlenopt-1.c: New test.
* gcc.dg/strlenopt-1f.c: New test.
* gcc.dg/strlenopt-2.c: New test.
* gcc.dg/strlenopt-2f.c: New test.
* gcc.dg/strlenopt-3.c: New test.
* gcc.dg/strlenopt-4.c: New test.
* gcc.dg/strlenopt-4g.c: New test.
* gcc.dg/strlenopt-4gf.c: New test.
* gcc.dg/strlenopt-5.c: New test.
* gcc.dg/strlenopt-6.c: New test.
* gcc.dg/strlenopt-7.c: New test.
* gcc.dg/strlenopt-8.c: New test.
* gcc.dg/strlenopt-9.c: New test.
* gcc.dg/strlenopt-10.c: New test.
* gcc.dg/strlenopt-11.c: New test.
* gcc.dg/strlenopt-12.c: New test.
* gcc.dg/strlenopt-12g.c: New test.
* gcc.dg/strlenopt-13.c: New test.
* gcc.dg/strlenopt-14g.c: New test.
* gcc.dg/strlenopt-14gf.c: New test.
* gcc.dg/strlenopt-15.c: New test.
* gcc.dg/strlenopt-16g.c: New test.
* gcc.dg/strlenopt-17g.c: New test.
* gcc.dg/strlenopt-18g.c: New test.
* gcc.dg/strlenopt.h: New file.
From-SVN: r179278
Jakub Jelinek [Tue, 27 Sep 2011 16:15:46 +0000 (18:15 +0200)]
common.opt: Add -foptimize-strlen option.
* common.opt: Add -foptimize-strlen option.
* Makefile.in (OBJS): Add tree-ssa-strlen.o.
(tree-sssa-strlen.o): Add dependencies.
* opts.c (default_options_table): Enable -foptimize-strlen
by default at -O2 if not -Os.
* passes.c (init_optimization_passes): Add pass_strlen
after pass_object_sizes.
* timevar.def (TV_TREE_STRLEN): New timevar.
* params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
* tree-pass.h (pass_strlen): Declare.
* tree-ssa-strlen.c: New file.
* c-decl.c (merge_decls): If compatible stpcpy prototype
is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
cp/
* decl.c (duplicate_decls): If compatible stpcpy prototype
is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
testsuite/
* gcc.dg/strlenopt-1.c: New test.
* gcc.dg/strlenopt-1f.c: New test.
* gcc.dg/strlenopt-2.c: New test.
* gcc.dg/strlenopt-2f.c: New test.
* gcc.dg/strlenopt-3.c: New test.
* gcc.dg/strlenopt-4.c: New test.
* gcc.dg/strlenopt-4g.c: New test.
* gcc.dg/strlenopt-4gf.c: New test.
* gcc.dg/strlenopt-5.c: New test.
* gcc.dg/strlenopt-6.c: New test.
* gcc.dg/strlenopt-7.c: New test.
* gcc.dg/strlenopt-8.c: New test.
* gcc.dg/strlenopt-9.c: New test.
* gcc.dg/strlenopt-10.c: New test.
* gcc.dg/strlenopt-11.c: New test.
* gcc.dg/strlenopt-12.c: New test.
* gcc.dg/strlenopt-12g.c: New test.
* gcc.dg/strlenopt-13.c: New test.
* gcc.dg/strlenopt-14g.c: New test.
* gcc.dg/strlenopt-14gf.c: New test.
* gcc.dg/strlenopt-15.c: New test.
* gcc.dg/strlenopt-16g.c: New test.
* gcc.dg/strlenopt-17g.c: New test.
* gcc.dg/strlenopt-18g.c: New test.
* gcc.dg/strlenopt.h: New file.
From-SVN: r179277
Tom de Vries [Tue, 27 Sep 2011 16:12:35 +0000 (16:12 +0000)]
re PR middle-end/43864 (Same basic blocks should be merged)
2011-09-27 Tom de Vries <tom@codesourcery.com>
PR middle-end/43864
* gcc.dg/fold-compare-2.c (dg-options): Add -fno-tree-tail-merge.
* gcc/testsuite/gcc.dg/uninit-pred-2_c.c: Same.
* gcc.dg/pr43864.c: New test.
* gcc.dg/pr43864-2.c: Same.
* gcc.dg/pr43864-3.c: Same.
* gcc.dg/pr43864-4.c: Same.
From-SVN: r179276
Tom de Vries [Tue, 27 Sep 2011 16:10:42 +0000 (16:10 +0000)]
re PR middle-end/43864 (Same basic blocks should be merged)
2011-09-27 Tom de Vries <tom@codesourcery.com>
PR middle-end/43864
* tree-ssa-tail-merge.c: New file.
(struct same_succ_def): Define.
(same_succ, const_same_succ): New typedef.
(struct bb_cluster_def): Define.
(bb_cluster, const_bb_cluster): New typedef.
(struct aux_bb_info): Define.
(BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
(gvn_uses_equal): New function.
(same_succ_print, same_succ_print_traverse, update_dep_bb)
(stmt_update_dep_bb, local_def, same_succ_hash)
(inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
(same_succ_reset): New function.
(same_succ_htab, same_succ_edge_flags)
(deleted_bbs, deleted_bb_preds): New var.
(debug_same_succ): New function.
(worklist): New var.
(print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
(init_worklist, delete_worklist, delete_basic_block_same_succ)
(same_succ_flush_bbs, purge_bbs, update_worklist): New function.
(print_cluster, debug_cluster, update_rep_bb)
(add_bb_to_cluster, new_cluster, delete_cluster): New function.
(all_clusters): New var.
(alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
(merge_clusters, set_cluster): New function.
(gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
(same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
(deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
(find_clusters_1, find_clusters): New function.
(update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
(update_bbs): New var.
(apply_clusters): New function.
(update_debug_stmt, update_debug_stmts): New function.
(tail_merge_optimize): New function.
tree-pass.h (tail_merge_optimize): Declare.
* tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
* Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
(tree-ssa-tail-merge.o): New rule.
* opts.c (default_options_table): Set OPT_ftree_tail_merge by default at
OPT_LEVELS_2_PLUS.
* tree-ssa-sccvn.c (vn_valueize): Move to ...
* tree-ssa-sccvn.h (vn_valueize): Here.
* timevar.def (TV_TREE_TAIL_MERGE): New timevar.
* common.opt (ftree-tail-merge): New switch.
* params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
(PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
* doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
(-ftree-tail-merge, max-tail-merge-comparisons)
(max-tail-merge-iterations): New item.
From-SVN: r179275
Jan Hubicka [Tue, 27 Sep 2011 15:27:41 +0000 (17:27 +0200)]
* ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
From-SVN: r179274
Jan Hubicka [Tue, 27 Sep 2011 15:08:31 +0000 (17:08 +0200)]
inline-5.c: New testcase.
* gcc.dg/ipa/inline-5.c: New testcase.
* ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle parameters
passed by reference; handle loads from non-SSA scalars and update comments.
From-SVN: r179273
Bernd Schmidt [Tue, 27 Sep 2011 14:55:11 +0000 (14:55 +0000)]
re PR rtl-optimization/50249 (ira marks wrong value for inheriting)
PR rtl-optimization/50249
* reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
instead of opnum and type. All callers changed. Remove useless
declaration.
Search forward for other reloads of the same type for the same operand
using the same register; if any are found, return false.
(reload_regs_reach_end_p): Same argument changes; all callers changed.
From-SVN: r179272
Andi Kleen [Tue, 27 Sep 2011 14:36:48 +0000 (14:36 +0000)]
invoke.texi (ffat-lto-objects): Document.
* doc/invoke.texi (ffat-lto-objects): Document.
* toplev.c (compile_file): Do not output assembly when doing slim lto;
Output __gnu_slim_lto when doing slim lto.
* cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
(cgraph_optimize): Return early when doing slim lto.
* opts.c (finish_options): Complain about lack of linker plugin
when doing slim lto.
* common.opt (ffat-lto-objects): New.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r179271
Ian Lance Taylor [Tue, 27 Sep 2011 13:16:22 +0000 (13:16 +0000)]
mksysinfo: Fix for systems that don't define TIOCSCTTY.
From Rainer Orth.
From-SVN: r179269
Richard Sandiford [Tue, 27 Sep 2011 13:01:31 +0000 (13:01 +0000)]
ipa-inline-analysis.c (predicate_probability): Avoid comparison between signed and unsigned.
gcc/
* ipa-inline-analysis.c (predicate_probability): Avoid comparison
between signed and unsigned.
From-SVN: r179268
Ira Rosen [Tue, 27 Sep 2011 12:26:34 +0000 (12:26 +0000)]
tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block vectorization.
* tree-vect-stmts.c (vectorizable_type_demotion): Handle basic
block vectorization.
(vectorizable_type_promotion): Likewise.
(vect_analyze_stmt): Call vectorizable_type_demotion and
vectorizable_type_promotion for basic blocks.
(supportable_widening_operation): Don't assume loop
vectorization.
* tree-vect-slp.c (vect_build_slp_tree): Allow multiple types
for basic blocks. Update vectorization factor for basic block
vectorization.
(vect_analyze_slp_instance): Allow multiple types for basic
block vectorization. Recheck unrolling factor after
construction of SLP instance.
From-SVN: r179267
Bernd Schmidt [Tue, 27 Sep 2011 11:04:34 +0000 (11:04 +0000)]
target-supports.exp (check_profiling_available): Don't rely solely on TLS tests for -fprofile-generate...
* testsuite/lib/target-supports.exp (check_profiling_available):
Don't rely solely on TLS tests for -fprofile-generate, fall
through to the other code.
From-SVN: r179263
Ed Schonberg [Tue, 27 Sep 2011 10:11:01 +0000 (10:11 +0000)]
a-cbhase.adb, [...]: Add iterator machinery to bounded sets and indefinite sets.
2011-09-27 Ed Schonberg <schonberg@adacore.com>
* a-cbhase.adb, a-cbhase.ads, a-cborse.adb, a-cborse.ads,
a-cihase.adb, a-cihase.ads, a-ciorse.adb, a-ciorse.ads,
a-coorse.adb, a-coorse.ads: Add iterator machinery to bounded sets and
indefinite sets.
* a-coorma.ads: Minor reformmating.
* einfo.ads: Improve the comment describing the
Directly_Designated_Type function.
* a-ciorma.adb, a-ciorma.ads: Add iterator machinery to indefinite
ordered maps.
* gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Update
dependencies.
From-SVN: r179260
Richard Guenther [Tue, 27 Sep 2011 10:06:40 +0000 (10:06 +0000)]
tree-object-size.c (compute_object_sizes): Fix dumping of folded statement.
2011-09-27 Richard Guenther <rguenther@suse.de>
* tree-object-size.c (compute_object_sizes): Fix dumping of
folded statement.
From-SVN: r179259
Arnaud Charlet [Tue, 27 Sep 2011 10:03:09 +0000 (12:03 +0200)]
[multiple changes]
2011-09-27 Robert Dewar <dewar@adacore.com>
* a-comutr.ads: Minor reformatting.
2011-09-27 Ed Schonberg <schonberg@adacore.com>
* a-cimutr.adb, a-cimutr.ads, a-cbmutr.adb, a-cbmutr.ads: Add children
iterators to multiway trees.
2011-09-27 Yannick Moy <moy@adacore.com>
* debug.adb (d.D): New option for strict Alfa mode.
* opt.ads (Strict_Alfa_Mode): New flag to interpret compiler
permissions as strictly as possible.
* sem_ch3.adb (Signed_Integer_Type_Declaration): In non-strict
Alfa mode, now, interpret ranges of base types like GNAT does; in
strict mode, simply change the range of the implicit base Itype.
* gnat1drv.adb: Update comments. Set Strict_Alfa_Mode.
From-SVN: r179258
Arnaud Charlet [Tue, 27 Sep 2011 09:58:53 +0000 (11:58 +0200)]
[multiple changes]
2011-09-27 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb: Minor comment fixes.
2011-09-27 Ed Schonberg <schonberg@adacore.com>
* a-comutr.adb, a-comutr.ads: Add children iterators on multiway
trees.
From-SVN: r179257
Arnaud Charlet [Tue, 27 Sep 2011 09:57:19 +0000 (11:57 +0200)]
[multiple changes]
2011-09-27 Eric Botcazou <ebotcazou@adacore.com>
* checks.adb (Apply_Scalar_Range_Check): Use Designated_Type
instead of Directly_Designated_Type in the indirect array case.
2011-09-27 Robert Dewar <dewar@adacore.com>
* exp_util.adb, exp_aggr.adb: Minor reformatting.
From-SVN: r179256
Arnaud Charlet [Tue, 27 Sep 2011 09:54:10 +0000 (11:54 +0200)]
[multiple changes]
2011-09-27 Ed Schonberg <schonberg@adacore.com>
* sinfo.ads, par-ch3.adb: Minor comment update: aspect specification
on subtype declarations.
* exp_aggr.adb: Minor comment update.
2011-09-27 Eric Botcazou <ebotcazou@adacore.com>
* exp_util.adb (Safe_Prefixed_Reference): Remove always-false
test in the N_Explicit_Dereference case. Fold double logical
negation in the special loop case and conditionalize it on
Variable_Ref being true.
2011-09-27 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Selected_Component): If the prefix is a
single protected object and the selector is a discriminant or an
entry family, this is a non-overloaded candidate interpretation,
and possible primitive operations of the type must not be
examined.
2011-09-27 Arnaud Charlet <charlet@adacore.com>
* s-taspri-posix-noaltstack.ads (Lock): Mark fields aliased.
From-SVN: r179255
Arnaud Charlet [Tue, 27 Sep 2011 09:48:14 +0000 (11:48 +0200)]
[multiple changes]
2011-09-27 Pascal Obry <obry@adacore.com>
* s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:
Add dummy definitions for pthread_rwlock_t
and pthread_rwlockattr_t on all POSIX platforms.
* s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
reference.
(Finalize_Lock): Likewise.
(Write_Lock): Likewise.
(Unlock): Likewise.
2011-09-27 Tristan Gingold <gingold@adacore.com>
* s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
windows 64.
From-SVN: r179254
Pascal Obry [Tue, 27 Sep 2011 09:45:00 +0000 (09:45 +0000)]
s-osinte-hpux.ads, [...]: Revert previous changes.
2011-09-27 Pascal Obry <obry@adacore.com>
* s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads,
s-taprop-tru64.adb, s-osinte-aix.ads, s-taspri-posix-noaltstack.ads,
s-taspri-mingw.ads, s-taprop-vms.adb, s-tpoben.adb, s-tpoben.ads,
s-taprop-mingw.adb, s-taprob.adb, s-taprob.ads,
s-osinte-solaris-posix.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
s-osinte-irix.ads, s-taprop-irix.adb, s-osinte-darwin.ads,
s-taspri-dummy.ads, s-taspri-posix.ads, s-taprop.ads,
s-taspri-vms.ads, s-osinte-freebsd.ads, s-taprop-hpux-dce.adb,
s-taspri-hpux-dce.ads, s-taspri-tru64.ads, s-taprop-dummy.adb,
s-taprop-posix.adb: Revert previous changes.
(Lock): Now a record containing the two possible lock
(mutex and read/write) defined in OS_Interface.
* s-taprop-linux.adb (Finalize_Protection): Use r/w lock for
'R' locking policy.
(Initialize_Protection): Likewise.
(Lock): Likewise.
(Lock_Read_Only): Likewise.
(Unlock): Likewise.
From-SVN: r179253
Arnaud Charlet [Tue, 27 Sep 2011 09:37:53 +0000 (11:37 +0200)]
[multiple changes]
2011-09-27 Pascal Obry <obry@adacore.com>
* s-taspri-posix-noaltstack.ads (RW_Lock): This type is now defined as
OS_Interface.pthread_rwlock_t.
2011-09-27 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb, a-cimutr.adb, a-cimutr.ads, gnat1drv.adb, a-comutr.adb,
a-comutr.ads, exp_dist.adb, a-cbmutr.adb, a-cbmutr.ads,
sem_ch5.adb, sem_util.adb: Minor reformatting.
From-SVN: r179252
Pascal Obry [Tue, 27 Sep 2011 09:33:30 +0000 (09:33 +0000)]
s-taprop.ads (Initialize_Lock): New spec for r/w lock.
2011-09-27 Pascal Obry <obry@adacore.com>
* s-taprop.ads (Initialize_Lock)[RW_Lock]: New spec for r/w lock.
(Finalize_Lock)[RW_Lock]: Likewise.
(Write_Lock)[RW_Lock]: Likewise.
(Unlock)[RW_Lock]: Likewise.
(Read_Lock): Define L as RW_Lock (instead of Lock).
* s-taprop-linux.adb (Initialize_Lock)[RW_Lock]: New
routine for r/w lock.
(Finalize_Lock)[RW_Lock]: Likewise.
(Write_Lock)[RW_Lock]: Likewise.
(Unlock)[RW_Lock]: Likewise.
(Read_Lock): Define L as RW_Lock (instead of Lock).
* s-taprop-vxworks.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
s-taprop-mingw.adb, s-taprop-solaris.adb, s-taprop-irix.adb,
s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-posix.adb
(Initialize_Lock)[RW_Lock]: Same implementation as corresponding
routine for standard lock.
(Finalize_Lock)[RW_Lock]: Likewise.
(Write_Lock)[RW_Lock]: Likewise.
(Unlock)[RW_Lock]: Likewise.
(Read_Lock): Define L as RW_Lock (instead of Lock).
* s-taprob.ads, s-tpoben.ads (Protection): Add RWL (RW_Lock)
in the record definition.
* s-taprob.adb, s-taproben.adb (Finalize_Protection): Use r/w
lock for 'R' locking policy.
(Initialize_Protection): Likewise.
(Lock): Likewise.
(Lock_Read_Only): Likewise.
(Unlock): Likewise.
* s-taspri-posix.ads (RW_Lock): New type defined as
OS_Interface.pthread_rwlock_t.
* s-taspri-vxworks.ads, s-taspri-posix-noaltstack.ads,
s-taspri-mingw.ads, s-taspri-solaris.ads, s-taspri-dummy.ads,
s-taspri-posix.ads, s-taspri-vms.ads, s-taspri-hpux-dce.ads,
s-taspri-tru64.ads (RW_Lock): New type defined as alias to Lock.
From-SVN: r179251