c-common.h (c_register_addr_space): Add prototype.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2
3         * c-common.h (c_register_addr_space): Add prototype.
4         (ADDR_SPACE_KEYWORD): Remove.
5         * c-common.c (c_register_addr_space): New function.
6         (c_addr_space_name): Reimplement.
7         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
8
9         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
10         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
11
12         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
13         Remove TARGET_ADDR_SPACE_KEYWORDS.
14
15 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
16
17         * input.c: New file.
18         * input.h (main_input_filename): Move declaration to toplev.h.
19         * toplev.c (input_location, line_table): Move to input.c
20         * toplev.h (main_input_filename): Move declaration from input.h.
21         * tree.c (expand_location): Move to input.c.
22         * Makefile.in (OBJS-common): Add input.o.
23         (input.o): Add dependencies.
24
25 2010-05-27  Richard Guenther  <rguenther@suse.de>
26
27         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
28         for non-existant files.
29         (fork_execute): Mark args_name file as deleted.
30
31 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
32
33         PR bootstrp/44287
34         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
35         (narrow_signed_type): Likewise.
36
37 2010-05-26  Jan Hubicka  <jh@suse.cz>
38
39         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
40         edge only when checking is enabled; check using former_clone_of;
41         check inline clones too.
42         (cgraph_materialize_clone): Record former_clone_of pointer.
43         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
44         combining redirections; dump args_to_skip bitmap
45         (cgraph_materialize_all_clones): Do no redirection here.
46         * ipa-inline.c (inline_transform): Do redirection here.
47         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
48         cheking only).
49
50 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
51
52         * config/avr/avr-c.c: Do not include regs.h.
53         Include cpplib.h for cpp_define and tree.h for c-common.h.
54         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
55         * config/avr/t-avr: Fix dependencies for avr-c.o.
56
57 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
58
59         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
60         string instead of SYMBOL_REF rtx.
61         * rtl.h (set_stack_check_libfunc): Move prototype from here...
62         * libfuncs.h: ...to here.  Adjust for explow.c change.
63
64 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
65
66         * pretty-print.c: Don't include ggc.h.
67         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
68         (identifier_to_locale): Use them for allocation.
69         * pretty-print.h (identifier_to_locale_alloc,
70         identifier_to_locale_free): Declare.
71         * toplev.c (alloc_for_identifier_to_locale): New.
72         (general_init): Set identifier_to_locale_alloc and
73         identifier_to_locale_free.
74         * Makefile.in (pretty-print.o): Update dependencies.
75
76 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
77
78         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
79         pointer types if they have different alignment or mode.
80
81 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
82
83         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
84         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
85         * config/sparc/sparc-protos.h (function_value): Remove declaration.
86         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
87         sparc_function_value_regno_p): New functions.
88         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
89         TARGET_FUNCTION_VALUE_REGNO_P): Define.
90         (function_value): Rename to...
91         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
92         argument to 'outgoing'.
93         (function_arg_record_value, function_arg_union_value,
94         function_arg_vector_value): Update comment.
95
96 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
97
98         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
99         (fde_needed_for_eh_p): New predicate.
100         (output_call_frame_info): Use it throughout to decide whether FDEs
101         are needed for EH purpose.
102         (dwarf2out_begin_prologue): Reorder assignments.
103
104 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
105
106         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
107         special case loop->header.
108         (is_predicated): New.
109         (if_convertible_loop_p): Call it.
110
111 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
112
113         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
114         iterator in parameter.  Do not generate code during the analysis.
115         (tree_if_convert_cond_stmt): Removed.
116         (tree_if_convert_stmt): Removed.
117         (predicate_bbs): New.
118         (if_convertible_loop_p): Call predicate_bbs.
119         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
120         now contains all the analysis part.
121
122 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
123
124         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
125         statements in the analysis part.
126         (tree_if_convert_stmt): Update comment.
127         (remove_conditions_and_labels): New.
128         (combine_blocks): Call remove_conditions_and_labels.
129         (tree_if_conversion): Update comment.
130
131 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
132
133         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
134         than 2 predecessors or more than 2 successors.
135
136 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
137
138         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
139         of loops in which the data dependence analysis fails.
140
141 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
142
143         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
144         CDI_POST_DOMINATORS.
145         (tree_if_conversion): Same.
146
147 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
148
149         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
150
151 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
152
153         * tree-if-conv.c: Update copyright years.  Fix comments.
154         Fix indentation.
155
156 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
157
158         * builtin-types.def (BT_INT128): New primitive type.
159         (BT_UINT128): Likewise.
160         * c-common.c (c_common_r): Add __int128 keyword.
161         (c_common_type_for_size): Handle __int128.
162         (c_common_type_for_mode): Likewise.
163         (c_common_signed_or_unsigned_type): Likewise.
164         (c_common_nodes_and_builtins): Add builtin type
165         if target supports 128-bit integer scalar.
166         * c-common.h (enum rid): Add RID_INT128.
167         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
168         if target supports 128-bit integer scalar.
169         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
170         (finish_declspecs): Likewise.
171         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
172         (c_token_starts_declspecs): Likewise.
173         (c_parser_declspecs): Likewise.
174         (c_parser_attributes): Likewise.
175         (c_parser_objc_selector): Likewise.
176         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
177         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
178         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
179         * tree.c (make_or_reuse_type): Likewise.
180         (make_unsigned_type): Likewise.
181         (build_common_tree_nodes_2): Likewise.
182         * tree.h (enum integer_type_kind): Add itk_int128 and
183         itk_unsigned_int128.
184         (int128_integer_type_node): New define.
185         (int128_unsigned_type_node): New define.
186         * doc/extend.texi: Add documentation about __int128 type.
187
188 2010-05-26  Richard Guenther  <rguenther@suse.de>
189
190         * tree-ssa-sccvn.c (copy_nary): Adjust.
191         (copy_phis): Rename to ...
192         (copy_phi): ... this.  Adjust.
193         (copy_references): Rename to ...
194         (copy_reference): ... this.  Adjust.
195         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
196         result into the valid table.
197
198 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
199
200         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
201         insn-config.h, insn-codes.h, recog.h, and optabs.h.
202
203 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
204
205         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
206
207 2010-05-26  Richard Guenther  <rguenther@suse.de>
208
209         * opts.c (common_handle_option): Handle OPT_Ofast.
210
211 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
212
213         * diagnostic.c: Don't include opts.h.
214         (permissive_error_option): Define.
215         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
216         for classify_diagnostic.  Don't use memset for
217         classify_diagnostic.  Initialize new and recently added fields.
218         (diagnostic_classify_diagnostic): Use context->n_opts instead of
219         N_OPTS.
220         (diagnostic_report_diagnostic): Pass context parameter to
221         diagnostic_report_warnings_p.  Use option_enabled and option_name
222         hooks from context.
223         (emit_diagnostic): Use permissive_error_option.
224         (permerror): Likewise.
225         * diagnostic.h: Don't include options.h.
226         (struct diagnostic_context): Add n_opts, opt_permissive,
227         inhibit_warnings, warn_system_headers, option_enabled and
228         option_name fields.  Change classify_diagnostic to a pointer.
229         * opts-diagnostic.h: New file.
230         * opts.c: Include opts-diagnostic.h.
231         (common_handle_option): Set global_dc fields for -Wfatal-errors,
232         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
233         (option_name): New function.
234         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
235         (c_common_handle_option): Set global_dc->permissive for
236         -fpermissive.
237         * c-common.c (c_cpp_error): Save and restore
238         global_dc->warn_system_headers, not variable warn_system_headers.
239         * toplev.c: Include opts-diagnostic.h.
240         (general_init): Update call to diagnostic_initialize.  Set
241         global_dc->show_column, global_dc->option_enabled and
242         global_dc->option_name.
243         (process_options): Don't set global_dc fields here.
244         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
245         (diagnostic.o, opts.o, toplev.o): Update dependencies.
246
247 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
248
249         * config/picochip/picochip.md (movsi): Split a movsi from a
250         const after reload.
251
252 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
253
254         * ggc-zone.c: Update copyright year.
255         (poison_region): Mark memory for Valgrind as undefined before
256         memset () call and inaccessible afterwards.
257         (ggc_pch_total_size): Change type of i to int.
258
259 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
260
261         * ggc-common.c (ggc_free_overhead): Allow empty slot.
262
263 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
264
265         * ggc-common.c: Update copyright year.
266         (ggc_rlimit_bound): Remove prototype.  Compile only if
267         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
268         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
269         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
270         (ggc_min_heapsize_heuristic): Likewise.
271
272 2010-05-26  Richard Guenther  <rguenther@suse.de>
273
274         PR rtl-optimization/44164
275         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
276         no-common access-path disambiguation.
277         (indirect_ref_may_alias_decl_p): Adjust.
278         (indirect_refs_may_alias_p): Likewise.
279         (refs_may_alias_p_1): Likewise.
280
281 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
282
283         * c-typeck.c: Do not include expr.h.
284
285 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
286
287         * rtl.h (decl_default_tls_model): Move prototype from here...
288         * output.h: ...to here.
289         * c-decl.c: Do not include rtl.h.
290         * c-pragma.c: Likewise.
291         * c-parser.c: Likewise.
292         * c-gimplify.c: Likewise.  And also not hard-reg-set.
293         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
294         FIXME note for it.  Add a FIXME note for expr.h.
295         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
296         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
297         defined.
298
299 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
300
301         PR target/44199
302         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
303         or total_size is larger than red zone size for non-V4 ABI, emit a
304         stack_tie resp. frame_tie insn before stack pointer restore.
305         * config/rs6000/rs6000.md (frame_tie): New insn.
306
307 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
308
309         * function.h (struct function): Add can_throw_non_call_exceptions bit.
310         * lto-streamer-in.c (input_function): Stream it in.
311         * lto-streamer-out.c (output_function): Stream it out.
312         * function.c (allocate_struct_function): Set it.
313         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
314         for flag_non_call_exceptions.
315         * cfgbuild.c (control_flow_insn_p): Likewise.
316         (make_edges): Likewise.
317         * cfgexpand.c (expand_stack_alignment): Likewise.
318         * combine.c (distribute_notes): Likewise.
319         * cse.c (cse_extended_basic_block): Likewise.
320         * except.c (insn_could_throw_p): Likewise.
321         * gcse.c (simple_mem): Likewise.
322         * ipa-pure-const.c (check_call): Likewise.
323         (check_stmt ): Likewise.
324         * lower-subreg.c (lower-subreg.c): Likewise.
325         * optabs.c (emit_libcall_block): Likewise.
326         (prepare_cmp_insn): Likewise.
327         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
328         * postreload.c (rest_of_handle_postreload): Likewise.
329         * reload1.c (reload_as_needed): Likewise.
330         (emit_input_reload_insns): Likewise.
331         (emit_output_reload_insns): Likewise.
332         (fixup_abnormal_edges): Likewise.
333         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
334         * store-motion.c (find_moveable_store): Likewise.
335         * tree-eh.c (stmt_could_throw_p): Likewise.
336         (tree_could_throw_p): Likewise.
337         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
338         * config/arm/arm.c (arm_expand_prologue): Likewise.
339         (thumb1_expand_prologue): Likewise.
340         * config/rx/rx.md (cbranchsf4): Likewise.
341         (cmpsf): Likewise.
342         * config/s390/s390.c (s390_emit_prologue): Likewise.
343         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
344         (inline_forbidden_into_p): New predicate.
345         (expand_call_inline): Use it to forbid inlining.
346         (tree_can_inline_p): Likewise.
347
348 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
349
350         * config/i386/i386-c.c: Do not include rtl.h.
351         * config/i386/t-i386: Update dependencies.
352
353 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
354
355         * attribs.c: Do not include rtl.h.
356         * Makefile.in: Update dependencies.
357
358 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
359
360         * double-int.h (double_int_and): New.
361         * combine.c (try_combine): Clean up, use double_int_* and
362         immed_double_int_const functions.
363
364 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
365
366         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
367         stderr to /dev/null instead of grep -q.
368         * configure: Regenerate.
369
370 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
371
372         * Makefile.in (EXCEPT_H): Fix typo.
373
374 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
375
376         * ira-build.c (update_conflict_hard_reg_costs): New.
377         (ira_build): Call update_conflict_hard_reg_costs.
378
379 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
380
381         PR debug/41371
382         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
383         ENABLE_CHECKING.
384         (intersect_loc_chains): Walk the s2var's loc_chain together
385         with s1node chain as long as the locations are equal, don't
386         call find_loc_in_1pdv in that case.
387
388         PR debug/42801
389         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
390         (copy_bind_expr): ... instead of here.
391         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
392         if the block hasn't been remapped.
393         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
394         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
395
396 2010-05-25  Richard Guenther  <rguenther@suse.de>
397
398         PR middle-end/44069
399         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
400         out-of-bounds array accesses.
401
402 2010-05-25  Richard Guenther  <rguenther@suse.de>
403
404         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
405         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
406         (run_gcc): Re-organize to make cleanup easier.
407
408 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
409
410         * config/s390/s390.c (optimization_options): Fix and move the
411         flag_prefetch_loop_arrays override ...
412         (override_options): ... here.
413
414 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
415
416         * diagnostic.c: Don't include plugin.h.
417         (diagnostic_report_diagnostic): Don't handle plugins specially
418         here.  Pass context to internal_error callback.
419         * diagnostic.h (struct diagnostic_context): Add context parameter
420         to internal_error callback.
421         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
422         * plugin.h (struct diagnostic_context): Declare.
423         (warn_if_plugins, plugins_internal_error_function): Declare.
424         * toplev.c (general_init): Set global_dc->internal_error.
425         * Makefile.in (diagnostic.o): Update dependencies.
426
427 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
428
429         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
430         * config/rs6000/t-darwin64: New.
431         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
432         build crt2.
433
434 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
435
436         PR 44203
437         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
438         match the original (and intended) behaviour before r159557.  This
439         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
440         in two ways.
441
442 2010-05-25  Richard Guenther  <rguenther@suse.de>
443
444         * doc/invoke.texi: Document -Ofast.
445         * target.h (struct gcc_target): Add handle_ofast.
446         * target-def.h (TARGET_HANDLE_OFAST): Add.
447         (TARGET_INITIALIZER): Adjust.
448         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
449         * common.opt (Ofast): Add.
450
451 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
452
453         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
454         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
455
456 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
457
458         PR target/43610
459         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
460         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
461         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
462         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
463
464 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
465
466         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
467         DW_OP_minus with negated offset instead of DW_OP_plus.
468         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
469
470 2010-05-25  Wei Guozhi  <carrot@google.com>
471
472         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
473         tst instruction and a new alternative.
474         * config/arm/constraints.md (Pu): New constraint.
475
476 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
477
478         * function.c (assign_stack_local_1): Initialize variable
479         to avoid warning when bootstrapping at -O3.
480
481 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
482
483         * configure.ac (all_lang_makefiles): Remove everything related to it.
484         * configure: Regenerate.
485         * Makefile.in: Fix reference to ada Make-lang.in.
486         Remove support for LANG_MAKEFILES.
487
488 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
489             Sandra Loosemore  <sandra@codesourcery.com>
490
491         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
492         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
493         description.  Add arm_neon_fp16_ok.
494         (Add Options): Add arm_neon and arm_neon_fp16.
495
496 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
497
498         * diagnostic.c: Don't include flags.h.
499         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
500         context parameters.  Check flags in the context passed as a parameter.
501         (diagnostic_build_prefix): Add context parameter.  Check
502         show_column flag in context.
503         (diagnostic_action_after_output): Check fatal_errors flag in context.
504         (diagnostic_report_current_module): Check show_column flag in context.
505         (default_diagnostic_starter): Update call to
506         diagnostic_build_prefix.
507         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
508         (emit_diagnostic): Pass context to permissive_error_kind.
509         (permerror): Pass context to permissive_error_kind.
510         * diagnostic.h (struct diagnostic_context): Add show_column,
511         pedantic_errors, permissive and fatal_errors fields.
512         (diagnostic_build_prefix): Update prototype.
513         * langhooks.c
514         * toplev.c (process_options): Set flags in global_dc from
515         flag_show_column, flag_pedantic_errors, flag_permissive,
516         flag_fatal_errors.
517         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
518         to diagnostic_build_prefix.
519         * Makefile.in (diagnostic.o): Update dependencies.
520
521 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
522
523         * config/i386/ia32intrin.h (__crc32q): Define only if
524         __SSE4_2__ is defined.
525
526 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
527
528         PR target/44132
529         PR middle-end/43602
530         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
531         DECL_VISIBILITY_SPECIFIED.
532         (emutls_decl): Set DECL_PRESERVE_P and copy
533         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
534         (emutls_finalize_control_var): New callback.
535         (emutls_finish): Finalize emutls control variables.
536         * toplev.c (compile_file): Move the call to emutls_finish ()
537         before varpool_assemble_pending_decls ().
538
539 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
540
541         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
542         added to the preprocessor condition.
543
544 2010-05-24  Paul Brook  <paul@codesourcery.com>
545
546         * gengtype-lex.l: Add HARD_REG_SET.
547         * expr.c (expand_expr_real_1): Record writes to hard registers.
548         * function.c (rtl_data): Add asm_clobbers.
549         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
550         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
551         Use crtl->asm_clobbers.
552
553 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
554
555         * doc/makefile.texi (Makefile): Mention stages 'profile'
556         and 'feedback' for profiledbootstrap.
557
558 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
559
560         PR target/44245
561         * config/i386/i386.c (def_builtin): Properly check
562         OPTION_MASK_ISA_64BIT.
563
564 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
565
566         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
567         typedefs with different but compatible types.  Allow duplicate
568         typedefs with the same type except for pedantic non-C1X, but give
569         warning for variably modified types.
570         * c-typeck.c (tagged_types_tu_compatible_p,
571         function_types_compatible_p, type_lists_compatible_p,
572         comptypes_internal): Add parameter different_types_p; set
573         *different_types_p for different but compatible types.  All
574         callers changed.
575         (comptypes_check_different_types): New.
576         * c-tree.h (comptypes_check_different_types): Declare.
577
578 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
579
580         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
581         * jump.c: Include basic-block.h.
582         * profile.c: Likewise.
583         * tree-profile.c: Likewise.
584         * coverage.c: Likewise.
585         * basic-block.h (optimize_function_for_size_p): Move to function.h.
586         (optimize_function_for_speed_p): Likewise.
587         * function.h (optimize_function_for_size_p,
588         optimize_function_for_speed_p): Moved here from basic-block.h.
589         * Makefile.in: Update dependencies.
590
591 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
592
593         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
594         before calling make; allow override through $MAKE.
595         * doc/invoke.texi (Optimize Options): Document override.
596
597 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
598
599         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
600         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
601         (rs6000_mode_dependent_address_ptr): Make static.
602         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
603         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
604         Remove.
605
606 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
607
608         PR target/43869
609         * config/i386/i386.c: Make sure that the correct regparm is passed.
610
611 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
612
613         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
614         * sbitmap.c: ...to here to internalize sbitmap element access.
615         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
616         Explain why basic-block.h is included.
617         * function.h: Include tm.h for CUMULATIVE_ARGS.
618         * Makefile.in: Update dependencies.
619
620 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
621
622         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
623         New core types.
624         * sbitmap.h (struct sbitmap_def): Do not typedef here.
625         * sbitmap.c: Include sbitmap.h.
626         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
627         hard-reg-set.h.  Split everything related to regsets out from here...
628         * regset.h: ...to here.  New file.
629         * df.h: Include regset.h and sbitmap.h.
630         * tree-flow.h: Likewise.
631         * cfgloop.h: Likewise.
632         * except.h: Do not include sbitmap.h.  Include hashtab.h.
633         * cgraph.h: Include vec.h and function.h.
634         * reload.h (struct insn_chain): Change types of live_throughout
635         and dead_or_set from regset_head to bitmap_head.
636         (compute_use_by_pseudos): Be defined also if regset.h is not included.
637         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
638         spilled_regs from regset_head to bitmap_head to avoid dependency
639         in regset.h.
640         * sel-sched-ir.h: Include regset.h.
641         * reload.c: Include df.h before reload.h.
642         * caller-save.c: Likewise.
643         * reload1.c: Likewise.
644         * ira.c: Likewise.
645         (mark_elimination): Update type of r to bitmap, consistent with
646         DF_LR_IN.
647         * dominance.c: Include bitmap.h.
648         * modulo-sched.c: Include df.h.
649         * cfganal.c: Include bitmap.h and sbitmap.h.
650         * cfgbuild.c: Include sbitmap.h.
651         * lcm.c: Include sbitmap.h.
652         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
653         * domwalk.c: Include sbitmap.h, exclude ggc.h.
654         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
655         * cselib.c: Include bitmap.h.
656         * tree-optimize.c: Include regset.h.
657         * stmt.c: Include bitmap.h.
658         * Makefile.in: Update dependencies.
659
660 2010-05-22  Jan Hubicka  <jh@suse.cz>
661
662         * cgraph.h (struct varpool_node): Add same_comdat_group.
663         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
664         pointer.
665         (output_varpool): Update call of lto_output_varpool_node.
666         (input_varpool): Read same_comdat_group pointer.
667         (input_varpool_1): Fixup same_comdat_group pointer.
668         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
669         group is needed, all are.
670         * varpool.c (varpool_remove_node): Remove node from same comdat group
671         linklist too.
672         (varpool_analyze_pending_decls): Walk same comdat groups.
673
674 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
675
676         * rtl.h (union rtunion_def): Remove rt_bit member.
677         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
678         * print-rtl (print_rtx): Do not print the member.
679         * gengtype.c (adjust_field_rtx_def): Do not handle it.
680         * gengenrtl.c (type_from_format): Likewise.
681         (accessor_from_format): Likewise.
682
683 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
684
685         * dbgcnt.c: Include toplev.h instead of errors.h.
686         * ira-emit.c: Don't include errors.h.
687         * ira.c: Include toplev.h instead of errors.h.
688         * lto-compress.c: Include toplev.h instead of errors.h.
689         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
690         ira.o, dbgcnt.o): Update dependencies.
691
692 2010-05-22  Richard Guenther  <rguenther@suse.de>
693
694         * gimple.c (gimple_types_compatible_p): Check type qualifications
695         before merging pointer to complete and pointer to incomplete type.
696         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
697         we use our own resolution algorithm.  The gold linker plugin
698         doesn't do the job we want it to do here.
699
700 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
701
702         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
703         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
704         (sparc_mode_dependent_address_p): New function.
705
706 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
707
708         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
709
710         * timevar.c: Do not include any core headers.
711         (timevar_print): De-i18n-ize.
712         (print_time): Likewise.
713         * timevar.h (timevar_push, timevar_pop): Make inline functions.
714
715 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
716
717         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
718         langhooks-def.h.
719         (diagnostic_initialize): Initialize x_data not last_function.
720         (diagnostic_report_current_function): Move to tree-diagnostic.c.
721         (default_diagnostic_starter): Call
722         diagnostic_report_current_module not
723         diagnostic_report_current_function.
724         (diagnostic_report_diagnostic): Initialize x_data not
725         abstract_origin.
726         (verbatim): Likewise.
727         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
728         x_data.
729         (struct diagnostic_context): Change last_function to x_data.
730         (diagnostic_auxiliary_data): Replace with
731         diagnostic_context_auxiliary_data and
732         diagnostic_info_auxiliary_data.
733         (diagnostic_last_function_changed, diagnostic_set_last_function,
734         diagnostic_report_current_function): Move to tree-diagnostic.h.
735         (print_declaration, dump_generic_node, print_generic_stmt,
736         print_generic_stmt_indented, print_generic_expr,
737         print_generic_decl, debug_c_tree, dump_omp_clauses,
738         print_call_name, debug_generic_expr, debug_generic_stmt,
739         debug_tree_chain, default_tree_printer): Move to
740         tree-pretty-print.h.
741         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
742         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
743         gimple-pretty-print.h.
744         * pretty-print.c: Don't include tree.h
745         (pp_base_format): Don't handle %K here.
746         (pp_base_tree_identifier): Move to tree-pretty-print.c.
747         * pretty-print.h (text_info): Change abstract_origin to x_data.
748         (pp_tree_identifier, pp_unsupported_tree,
749         pp_base_tree_identifier): Move to tree-pretty-print.h.
750         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
751         tree-pretty-print.h: New files.
752         * tree-pretty-print.c: Include tree-pretty-print.h.
753         (percent_K_format): New.  Moved from pretty-print.c.
754         (pp_base_tree_identifier): Move from pretty-print.c.
755         * c-objc-common.c: Include tree-pretty-print.h.
756         (c_tree_printer): Handle %K here.
757         * langhooks.c: Include tree-diagnostic.h.
758         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
759         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
760         (default_tree_printer): Handle %K using percent_K_format.
761         (general_init): Use default_tree_diagnostic_starter.
762         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
763         (free_lang_data): Use default_tree_diagnostic_starter.
764         * c-pretty-print.c: Include tree-pretty-print.h.
765         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
766         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
767         * dwarf2out.c: Include tree-pretty-print.h.
768         * except.c: Include tree-pretty-print.h.
769         * gimple-pretty-print.c: Include tree-pretty-print.h and
770         gimple-pretty-print.h.
771         * gimplify.c: Include tree-pretty-print.h.
772         * graphite-poly.c: Include tree-pretty-print.h and
773         gimple-pretty-print.h.
774         * ipa-cp.c: Include tree-pretty-print.h.
775         * ipa-inline.c: Include gimple-pretty-print.h.
776         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
777         * ipa-pure-const.c: Include gimple-pretty-print.h.
778         * ipa-struct-reorg.c: Include tree-pretty-print.h and
779         gimple-pretty-print.h.
780         * ipa-type-escape.c: Include tree-pretty-print.h.
781         * print-rtl.c: Include tree-pretty-print.h.
782         * print-tree.c: Include gimple-pretty-print.h.
783         * sese.c: Include tree-pretty-print.h.
784         * tree-affine.c: Include tree-pretty-print.h.
785         * tree-browser.c: Include tree-pretty-print.h.
786         * tree-call-cdce.c: Include gimple-pretty-print.h.
787         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
788         * tree-chrec.c: Include tree-pretty-print.h.
789         * tree-data-ref.c: Include tree-pretty-print.h and
790         gimple-pretty-print.h.
791         * tree-dfa.c: Include tree-pretty-print.h.
792         * tree-if-conv.c: Include tree-pretty-print.h and
793         gimple-pretty-print.h.
794         * tree-inline.c: Include tree-pretty-print.h.
795         * tree-into-ssa.c: Include tree-pretty-print.h and
796         gimple-pretty-print.h.
797         * tree-nrv.c: Include tree-pretty-print.h.
798         * tree-object-size.c: Include tree-pretty-print.h and
799         gimple-pretty-print.h.
800         * tree-outof-ssa.c: Include tree-pretty-print.h and
801         gimple-pretty-print.h.
802         * tree-parloops.c: Include tree-pretty-print.h and
803         gimple-pretty-print.h.
804         * tree-predcom.c: Include tree-pretty-print.h and
805         gimple-pretty-print.h.
806         * tree-scalar-evolution.c: Include tree-pretty-print.h and
807         gimple-pretty-print.h.
808         * tree-sra.c: Include tree-pretty-print.h.
809         * tree-ssa-address.c: Include tree-pretty-print.h.
810         * tree-ssa-alias.c: Include tree-pretty-print.h.
811         * tree-ssa-ccp.c: Include tree-pretty-print.h and
812         gimple-pretty-print.h.
813         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
814         * tree-ssa-copy.c: Include tree-pretty-print.h and
815         gimple-pretty-print.h.
816         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
817         * tree-ssa-dce.c: Include tree-pretty-print.h and
818         gimple-pretty-print.h.
819         * tree-ssa-dom.c: Include tree-pretty-print.h and
820         gimple-pretty-print.h.
821         * tree-ssa-dse.c: Include gimple-pretty-print.h.
822         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
823         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
824         * tree-ssa-live.c: Include tree-pretty-print.h and
825         gimple-pretty-print.h.
826         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
827         gimple-pretty-print.h.
828         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
829         gimple-pretty-print.h.
830         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
831         gimple-pretty-print.h.
832         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
833         gimple-pretty-print.h.
834         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
835         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
836         * tree-ssa-operands.c: Include tree-pretty-print.h and
837         gimple-pretty-print.h.
838         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
839         gimple-pretty-print.h.
840         * tree-ssa-pre.c: Include tree-pretty-print.h and
841         gimple-pretty-print.h.
842         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
843         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
844         gimple-pretty-print.h.
845         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
846         gimple-pretty-print.h.
847         * tree-ssa-sink.c: Include gimple-pretty-print.h.
848         * tree-ssa-ter.c: Include tree-pretty-print.h and
849         gimple-pretty-print.h.
850         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
851         * tree-ssa.c: Include tree-pretty-print.h and
852         gimple-pretty-print.h.
853         * tree-stdarg.c: Include gimple-pretty-print.h.
854         * tree-switch-conversion.c: Include gimple-pretty-print.h.
855         * tree-tailcall.c: Include tree-pretty-print.h and
856         gimple-pretty-print.h.
857         * tree-vect-data-refs.c: Include tree-pretty-print.h and
858         gimple-pretty-print.h.
859         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
860         gimple-pretty-print.h.
861         * tree-vect-loop.c: Include tree-pretty-print.h and
862         gimple-pretty-print.h.
863         * tree-vect-patterns.c: Include gimple-pretty-print.h.
864         * tree-vect-slp.c: Include tree-pretty-print.h and
865         gimple-pretty-print.h.
866         * tree-vect-stmts.c: Include tree-pretty-print.h and
867         gimple-pretty-print.h.
868         * tree-vectorizer.c: Include tree-pretty-print.h.
869         * tree-vrp.c: Include tree-pretty-print.h and
870         gimple-pretty-print.h.
871         * value-prof.c: Include tree-pretty-print.h and
872         gimple-pretty-print.h.
873         * var-tracking.c: Include tree-pretty-print.h.
874         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
875         (tree-diagnostic.o): New dependencies.
876         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
877         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
878         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
879         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
880         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
881         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
882         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
883         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
884         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
885         tree-ssa-address.o, tree-ssa-loop-niter.o,
886         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
887         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
888         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
889         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
890         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
891         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
892         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
893         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
894         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
895         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
896         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
897         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
898         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
899         tree-switch-conversion.o, var-tracking.o, value-prof.o,
900         cfgexpand.o, pretty-print.o): Update dependencies.
901
902 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
903
904         * tree-ssa-structalias.c: Remove tm_p.h from include.
905
906 2010-05-21  Jeff Law  <law@redhat.com>
907
908         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
909
910 2010-05-21  Jason Merrill  <jason@redhat.com>
911
912         * tree-eh.c (cleanup_is_dead_in): New.
913         (lower_try_finally): Don't generate a dead cleanup region.
914         (lower_cleanup): Likewise.
915
916 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
917
918         PR debug/44223
919         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
920         unchain each use from the cyclic next_regno_use chain first.
921
922 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
923
924         * real: Do not include gmp.h, mpfr.h, and mpc.h.
925         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
926         (real_value_negate, real_value_abs): New prototypes.
927         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
928         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
929         new include file for interface between MPFR and REAL_VALUE_TYPE.
930         * real.c: Include realmpfr.h.
931         (real_arithmetic2): Remove legacy function.
932         (real_value_negate): New.
933         (real_value_abs): New.
934         (mfpr_from_real, real_from_mpfr): Move from here...
935         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
936         * builtins.c: Include realmpfr.h.
937         * fold-const.c: Include realmpfr.h.
938         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
939         (fold_negate_const): Likewise.
940         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
941         * toplev.c: Include realmpfr.h.
942         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
943         and real_value_negate.
944         * fixed-value.c (check_real_for_fixed_mode): Likewise.
945         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
946         (vfp3_const_double_index): Likewise.
947         (arm_print_operand): Likewise.
948         * Makefile.in: Update dependencies.
949
950 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
951
952         * config/s390/s390.c (override_options): Increase the default
953         of max-completely-peel-times.
954
955 2010-05-21  Julian Brown  <julian@codesourcery.com>
956             Mark Mitchell  <mark@codesourcery.com>
957
958         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
959         sibling calls for Thumb-1.
960         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
961         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
962         Thumb-2.
963         (*call_insn, *call_value_insn): Don't use for Thumb-2.
964         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
965         for Thumb-2.
966         (return): New expander.
967         (*arm_return): New name for ARM return insn.
968         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
969
970 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
971
972         * config.gcc (sparc64-*-rtems*): New target.
973
974 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
975
976         * tree.c (build_function_decl_skip_args): Fix grammar.
977         (build_function_type_list_1): Fix typos, adjust formatting.
978
979 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
980
981         * tree.h: Include real.h and fixed-value.h as basic datatypes.
982         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
983         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
984         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
985         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
986         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
987         tree-pretty-print.c, tree-loop-distribution.c,
988         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
989         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
990         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
991         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
992         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
993         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
994         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
995         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
996         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
997         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
998         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
999         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
1000         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
1001         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
1002         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
1003         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
1004         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
1005         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
1006         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
1007         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
1008         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
1009         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
1010         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
1011         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
1012         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
1013         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
1014         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
1015         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
1016         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
1017         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
1018         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
1019         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
1020         config/score/score7.c, config/score/score.c, config/arm/arm.c,
1021         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
1022         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
1023         config/bfin/bfin.c: Clean up redundant includes.
1024         * Makefile.in: Update accordingly.
1025
1026 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
1027
1028         PR middle-end/44204
1029         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
1030         statement has no arguments.
1031
1032 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
1033
1034         PR/44139
1035         * varasm.c (emutls_decl): Merge attributes to new decl.
1036
1037 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
1038
1039         PR middle-end/44101
1040         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
1041         around the uniquized constructor if its type requires a conversion.
1042
1043 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
1044
1045         PR debug/44205
1046         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
1047         at -O0 goto_locus of any of the incoming edges differs from
1048         goto_locus of outgoing edge, or gimple_location of any of the
1049         labels differs.
1050
1051 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
1052
1053         * ira.c (ira_non_ordered_class_hard_regs): Define.
1054         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
1055         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
1056         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
1057         cost of unaligned hard regs when allocating multi-reg pseudos.
1058
1059 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
1060
1061         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
1062         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
1063         for TARGET_NO_FLOAT.
1064         * config/mips/mips.c (mips_file_start): Expand conditional expression
1065         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
1066         (mips_override_options): Move -mno-float override -msoft-float and
1067         -mhard-float.
1068         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
1069         Condition(TARGET_SUPPORTS_NO_FLOAT).
1070         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
1071         __mips_no_float here.
1072         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
1073         (TARGET_SUPPORTS_NO_FLOAT): Define.
1074         * config/mips/sdemtk.opt: Delete.
1075
1076 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
1077
1078         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
1079
1080 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
1081
1082         PR target/43733
1083         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
1084         * configure: Regenerate.
1085         * config.in: Regenerate.
1086         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
1087         instead of sahf only for 64bit targets.
1088
1089 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1090
1091         PR debug/44178
1092         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
1093         setup_ref_regs for DEBUG_INSNs.
1094
1095 2010-05-20  Jan Hubicka  <jh@suse.cz>
1096
1097         PR middle-end/44197
1098         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
1099
1100 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
1101
1102         PR bootstrap/43870
1103         * df-scan.c (df_ref_compare): Stabilize sort.
1104
1105 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
1106
1107         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
1108         argument.  Don't use DW_OP_piece if offset is non-zero,
1109         put offset into second DW_OP_bit_piece argument.
1110         (dw_sra_loc_expr): Adjust callers.  For memory expressions
1111         compute offset.
1112
1113 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
1114
1115         PR target/44202
1116         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
1117         settings for 16-bit-constant "addo" alternative.
1118
1119 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
1120
1121         * config/mips/mips-dsp.md (add<DSPV:mode>3,
1122         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
1123
1124         PR target/43764
1125         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
1126         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
1127         Use it.
1128
1129 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
1130
1131         * diagnostic.c (FLOAT, FFS): Don't undefine.
1132         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
1133         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
1134         include ordering.
1135
1136 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
1137
1138         * combine.c (propagate_for_debug): Call make_compound_operation
1139         on the source value.
1140         (try_combine): When implementing a split chosen by find_split_point,
1141         either copy i2src or set it to null.  Assert that i2src is not null
1142         before substituting into CALL_INSN_FUNCTION_USAGE.
1143
1144 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
1145
1146         * double-int.h (double_int_ior): New function.
1147         * tree.h (build_int_cst_wide_type): Remove.
1148         * tree.c (build_int_cst_wide_type): Remove.
1149         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
1150         of build_int_cst_wide_type.
1151         * stor-layout.c (set_sizetype): (Ditto.).
1152         * dojump.c (do_jump): Use build_int_cstu instead of
1153         build_int_cst_wide_type.
1154
1155 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
1156
1157         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
1158         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
1159         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
1160         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
1161         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
1162         propagate the 'data' argument to copy_tree_r.
1163         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
1164         Propagate 'data' argument to walk_tree.
1165         (copy_if_shared): New function.
1166         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
1167         (unmark_visited): New function.
1168         (unshare_body): Call copy_if_shared instead of doing it manually.
1169         (unvisit_body): Call unmark_visited instead of doing it manually.
1170
1171 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
1172
1173         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
1174         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
1175         * hooks.c: Likewise.
1176         * target-def.h (TARGET_FOLD_BUILTIN): Define to
1177         hook_tree_tree_int_treep_bool_null.
1178         * target.h (struct gcc_target): Update signature of fold_builtin
1179         field.
1180         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
1181         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
1182         instead of the call expression.
1183         (fold_builtin_call_array): Pass n and argarray directly.
1184         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
1185         consing a list.
1186         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
1187         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
1188         `i' and use it in place of `arity'.
1189         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
1190         Dereference `args' directly.
1191         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
1192
1193 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1194
1195         * doc/sourcebuild.texi (Effective-Target Keywords): Document
1196         3dnow, sse3, sse2.
1197         (Directives): Document optional dg-require-effective-target
1198         selector.
1199
1200 2010-05-19  Richard Guenther  <rguenther@suse.de>
1201
1202         PR lto/44196
1203         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
1204
1205 2010-05-19  Richard Guenther  <rguenther@suse.de>
1206
1207         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
1208         * common.opt (fwhopr=): New.
1209         * opts.c (common_handle_option): Handle OPT_fwhopr.
1210         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
1211         * collect2.c (main): Match -fwhopr*.
1212         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
1213         Execute ltrans stage in parallel when jobs is bigger than 1.
1214
1215 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1216
1217         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
1218         pentiumpro on Solaris 8/x86 with Sun as.
1219         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
1220         hidden alias bug.
1221         (gcc_cv_as_ix86_quad): Check for .quad directive.
1222         * configure: Regenerate.
1223         * config.in: Regenerate.
1224         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
1225
1226 2010-05-19  Martin Jambor  <mjambor@suse.cz>
1227
1228         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
1229         also for indirect edges.  Actual printing moved...
1230         (ipa_print_node_jump_functions_for_edge): ...here.
1231         (ipa_compute_jump_functions): Renamed to
1232         ipa_compute_jump_functions_for_edge and made static.
1233         (ipa_compute_jump_functions): New function.
1234         (make_edge_direct_to_target): Check if the number of arguments on
1235         the newly direct edge is the same as the number of parametrs of
1236         the callee.
1237         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
1238         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
1239         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
1240         analysis functions unconditionally, call the new
1241         ipa_analyze_params_uses on the node instead of every edge.
1242
1243 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
1244
1245         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
1246         to tree.
1247         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
1248         also checks for a constant int vs.  non-constant but
1249         loop-invariant steps.
1250         (find_or_create_group): Change the sort algorithm to only consider
1251         steps that are constant ints.
1252         (idx_analyze_ref): Adopt code to handle a tree instead of a
1253         HOST_WIDE_INT for step.
1254         (gather_memory_references_ref): Handle tree instead of int and be
1255         prepared to see a NULL_TREE.
1256         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
1257         prefetches if the step cannot be calculated at compile time.
1258         (issue_prefetch_ref): Issue prefetches for non-constant but
1259         loop-invariant steps.
1260
1261 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1262
1263         Revert:
1264         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1265
1266         * tree.h (build_call_list): Remove.
1267         * tree.c (build_call_list): Remove.
1268
1269 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
1270
1271         * tree.h (build_call_list): Remove.
1272         * tree.c (build_call_list): Remove.
1273
1274 2010-05-18  Jan Hubicka  <jh@suse.cz>
1275
1276         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
1277
1278 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
1279
1280         PR rtl-optimization/43332
1281         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
1282
1283 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
1284
1285         * tree.h (build_int_cstu): Implement as static inline.
1286         * tree.c (build_int_cstu): Remove function.
1287         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
1288         sign extended.
1289
1290 2010-05-18  Richard Guenther  <rguenther@suse.de>
1291
1292         PR lto/44143
1293         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
1294         (debug): Initialize from -save-temps.
1295         (collect_execute): Print command-line when verbose.
1296         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
1297         for ltrans invocation.  Produce -dumpbase flag again.
1298         (process_args): Remove.
1299         (main): Simplify.
1300         * collect2.c (maybe_run_lto_and_relink): Only pass object
1301         files to lto-wrapper.
1302         * gcc.c (LINK_COMMAND_SPEC): Likewise.
1303
1304 2010-05-18  Jan Hubicka  <jh@suse.cz>
1305
1306         * opts.c (decode_options): Do not disable whopr at ipa_cp.
1307         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
1308
1309 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1310
1311         PR lto/44184
1312         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
1313         in a GIMPLE_ASM.
1314         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
1315         in a GIMPLE_ASM.
1316
1317 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
1318
1319         PR debug/41371
1320         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
1321         rtx_equal_p inline.
1322
1323 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
1324
1325         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
1326         lto-macho as lto_binary_reader.
1327
1328         * darwin.c (darwin_asm_named_section): Do not add assembler comment
1329         after .section directive; just print it before the directive instead.
1330
1331 2010-05-17  Jan Hubicka  <jh@suse.cz>
1332
1333         * cgraph.c (cgraph_create_virtual_clone): Only check
1334         versionable_function_p when not in wpa and checking is enabled.
1335         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
1336         there are no more functions to materialize.
1337
1338 2010-05-17  Jan Hubicka  <jh@suse.cz>
1339
1340         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
1341         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
1342         New functions.
1343         (output_cgraph): Call output_cgraph_opt_summary.
1344         (input_cgrpah): Call input_cgraph_opt_summary.
1345         (output_cgraph_opt_summary_p, output_node_opt_summary,
1346         input_node_opt_summary, input_cgraph_opt_section): New functions.
1347         * lto-section-in.c (lto_section_name): Add cgraphopt.
1348         * tree-inline.c (tree_function_versioning): Handle parm_num.
1349         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
1350         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
1351
1352 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1353
1354         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
1355         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
1356         the insn to prefetch ratio heuristic to loops with known trip count.
1357
1358 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
1359
1360         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
1361         (schedule_prefetches): Do not generate a prefetch if the unroll factor
1362         is far from what is required by the prefetch.
1363
1364 2010-05-17  Jan Hubicka  <jh@suse.cz>
1365
1366         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
1367         (ipcp_estimate_growth): Likewise.
1368         (ipcp_const_param_count): Likewise.
1369         (ipcp_insert_stage): Likewise.
1370         * ipa-prop.c (visit_load_for_mod_analysis): New function.
1371         (visit_store_addr_for_mod_analysis): Set used flag.
1372         (ipa_detect_param_modifications): Set used flag for SSE params;
1373         update use of walk_stmt_load_store_addr_ops.
1374         (ipa_print_node_params): Print used flag.
1375         (ipa_write_node_info): Stream used flag.
1376         (ipa_read_node_info): Likewise.
1377         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
1378         (ipa_is_param_used): New function.
1379         (lto_ipa_fixup_call_notes): Remove unused declaration.
1380
1381 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1382
1383         PR target/44074
1384         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
1385         * configure: Regenerate.
1386         * config.in: Regenerate.
1387         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
1388         !HAVE_AS_IX86_REP_LOCK_PREFIX.
1389         Don't emit whitespace.
1390         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
1391         (*rep_movsi): Likewise.
1392         (*rep_movsi_rex64): Likewise.
1393         (*rep_movqi): Likewise.
1394         (*rep_movqi_rex64): Likewise.
1395         (*rep_stosdi_rex64): Likewise.
1396         (*rep_stossi): Likewise.
1397         (*rep_stossi_rex64): Likewise.
1398         (*rep_stosqi): Likewise.
1399         (*rep_stosqi_rex64): Likewise.
1400         (*cmpstrnqi_nz_1): Use {%;} after repz.
1401         (*cmpstrnqi_nz_rex_1): Likewise.
1402         (*cmpstrnqi_1): Likewise.
1403         (*cmpstrnqi_rex_1): Likewise.
1404         (*strlenqi_1): Use {%;} after repnz.
1405         (*strlenqi_rex_1): Likewise.
1406         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
1407         (*sync_compare_and_swap<mode>): Likewise.
1408         (sync_double_compare_and_swap<mode>): Likewise.
1409         (*sync_double_compare_and_swapdi_pic): Likewise.
1410         (sync_old_add<mode>): Likewise.
1411         (sync_add<mode>): Likewise.
1412         (sync_sub<mode>): Likewise.
1413         (sync_<code><mode>): Likewise.
1414
1415 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1416
1417         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
1418         otr_token and polymorphic.
1419         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
1420         (cgraph_clone_edge): Copy the above fields.
1421         * tree.c (get_binfo_at_offset): New function.
1422         * tree.h (get_binfo_at_offset): Declare.
1423         * ipa-prop.h (enum jump_func_type): Added known_type jump function
1424         type, reordered items, updated comments.
1425         (union jump_func_value): Added base_type field, reordered fields.
1426         (enum ipa_lattice_type): Moved down in the file.
1427         (struct ipa_param_descriptor): New field polymorphic.
1428         (ipa_is_param_polymorphic): New function.
1429         * ipa-prop.c: Include gimple.h and gimple-fold.h.
1430         (ipa_print_node_jump_functions): Print known type jump functions.
1431         (compute_complex_pass_through): Renamed to...
1432         (compute_complex_assign_jump_func): this.
1433         (compute_complex_ancestor_jump_func): New function.
1434         (compute_known_type_jump_func): Likewise.
1435         (compute_scalar_jump_functions): Create known type and complex ancestor
1436         jump functions.
1437         (ipa_note_param_call): New parameter polymorphic, set the corresponding
1438         flag in the call note accordingly.
1439         (ipa_analyze_call_uses): Renamed to...
1440         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
1441         variable var only in the block where it is used.
1442         (ipa_analyze_virtual_call_uses): New function.
1443         (ipa_analyze_call_uses): Likewise.
1444         (combine_known_type_and_ancestor_jfs): Likewise.
1445         (update_jump_functions_after_inlining): Implemented handling of a
1446         number of new jump function types combination.
1447         (print_edge_addition_message): Removed.
1448         (make_edge_direct_to_target): New function.
1449         (try_make_edge_direct_simple_call): Likewise.
1450         (try_make_edge_direct_virtual_call): Likewise.
1451         (update_call_notes_after_inlining): Renamed to...
1452         (update_indirect_edges_after_inlining): this.  Moved edge creation for
1453         indirect calls to try_make_edge_direct_simple_call, also calls
1454         try_make_edge_direct_virtual_call for virtual calls.
1455         (ipa_print_node_params): Changed the header message.
1456         (ipa_write_jump_function): Stream also known type jump functions.
1457         (ipa_read_jump_function): Likewise.
1458         (ipa_write_indirect_edge_info): Stream new fields in
1459         cgraph_indirect_call_info.
1460         (ipa_read_indirect_edge_info): Likewise.
1461         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
1462         GIMPLE_FOLD_H.
1463
1464 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1465
1466         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
1467
1468 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1469
1470         * tree.h (CALL_EXPR_ARGS): Delete.
1471         (call_expr_arglist): Delete.
1472         * tree.c (call_expr_arglist): Delete.
1473         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
1474         targetm.fold_builtin.
1475         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
1476         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
1477         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
1478         arglist parameter.  Use CALL_EXPR_ARG.
1479         (picochip_expand_builtin_3op): Likewise.
1480         (picochip_expand_builtin_2opvoid): Likewise.
1481         (picochip_expand_array_get): Likewise.
1482         (picochip_expand_array_put): Likewise.
1483         (picochip_expand_array_testport): Likewise.
1484         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
1485         rather than arglist.
1486         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
1487         CALL_EXPR_ARGS.
1488         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
1489         than TREE_VALUE and TREE_CHAIN.
1490         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1491         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
1492         the arglist.
1493
1494 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1495
1496         PR bootstrap/42347
1497         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
1498         to have no fallthru edge.
1499
1500         PR middle-end/44102
1501         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
1502         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
1503         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
1504         add BARRIER after previous bb if needed.
1505
1506 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
1507
1508         * tree.c (build_function_type_list_1): Remove bogus assert condition.
1509
1510 2010-05-17  Alan Modra  <amodra@gmail.com>
1511
1512         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
1513         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
1514         with copy_reg rtx param.
1515         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
1516         Correct cases where code for ABI_V4 did not initialise the reg
1517         used to access frame.  Also leave frame_reg_rtx as sp for large
1518         frames that save no regs.
1519
1520 2010-05-17  Martin Jambor  <mjambor@suse.cz>
1521
1522         PR middle-end/44133
1523         * tree-sra.c (create_access_replacement): New parameter rename, mark
1524         the replaement for renaming only when it is true.
1525         (get_access_replacement): Pass true in the rename parameter of
1526         create_access_replacement.
1527         (get_unrenamed_access_replacement): New function.
1528         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
1529         replacement declaration from it.
1530
1531 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
1532
1533         * function.c (try_fit_stack_local, add_frame_space): New static
1534         functions.
1535         (assign_stack_local_1): Use them.  Look for opportunities to use
1536         space previously wasted on alignment.
1537         * function.h (struct frame_space): New.
1538         (struct rtl_data): Add FRAME_SPACE_LIST member.
1539         * reload1.c (something_was_spilled): New static variable.
1540         (alter_reg): Set it.
1541         (reload): Test it in addition to testing if the frame size changed.
1542
1543 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
1544
1545         * config/s390/s390.c: Define sane prefetch settings and activate
1546         flag_prefetch_loop_arrays on -O3.
1547         * config/s390/s390.h: Declare that read can use write prefetch.
1548
1549 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
1550
1551         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
1552         build.
1553
1554 2010-05-16  Jan Hubicka  <jh@suse.cz>
1555
1556         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
1557         function body; do not check stdarg field of struct function.
1558
1559 2010-05-16  Jan Hubicka  <jh@suse.cz>
1560
1561         * cgraph.c (dump_cgraph_node): Dump versionable flag.
1562         * cgraph.h (cgraph_local_info): Add versionable flag.
1563         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
1564         (ipcp_versionable_function_p): Use it.
1565         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
1566         versionable flag.
1567
1568 2010-05-16  Jan Hubicka  <jh@suse.cz>
1569
1570         * cgraph.c (cgraph_clone_node): Take decl argument and insert
1571         clone into hash when it is different from orig.
1572         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
1573         * cgraph.h (cgraph_clone_node): Update prototype.
1574         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
1575         (lto_cgraph_encoder_delete): Delete body map.
1576         (lto_cgraph_encoder_size): Move to header.
1577         (lto_cgraph_encoder_encode_body_p,
1578         lto_set_cgraph_encoder_encode_body): New.
1579         (lto_output_node): Do not take written_decls argument; output clone_of
1580         pointer.
1581         (add_node_to): Add include_body_argument; call
1582         lto_set_cgraph_encoder_encode_body on master of the clone.
1583         (add_references): Update use of add_node_to.
1584         (compute_ltrans_boundary): Likewise.
1585         (output_cgraph): Do not create written_decls bitmap.
1586         (input_node): Take nodes argument; stream in clone_of correctly.
1587         (input_cgraph_1): Update use of input_node.
1588         * lto-streamer-out.c (lto_output): Use encoder info to decide
1589         what bodies to output.
1590         * ipa-inline.c (cgraph_clone_inlined_nodes,
1591         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
1592         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
1593         (lto_cgraph_encoder_size): Define here.
1594         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
1595         Declare.
1596
1597 2010-05-16  Richard Guenther  <rguenther@suse.de>
1598
1599         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
1600         -fipa-type-escape.
1601         * ipa-type-escape.c (gate_type_escape_vars): Run when
1602         -fipa-struct-reorg runs.
1603         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
1604         * common.opt (fipa-type-escape): Remove.
1605
1606 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1607
1608         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
1609         (decode_options): Likewise.
1610         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
1611
1612 2010-05-16  Jan Hubicka  <jh@suse.cz>
1613
1614         * ipa.c (function_and_variable_visibility): Also bring local all
1615         aliases.
1616
1617 2010-05-16  Richard Guenther  <rguenther@suse.de>
1618
1619         * alias.c (nonoverlapping_memrefs_p): Remove use of
1620         IPA type-escape information.
1621
1622 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
1623
1624         * c-common.c (c_common_reswords): Add _Static_assert for C.
1625         * c-parser.c (c_token_starts_declaration,
1626         c_parser_next_token_starts_declaration,
1627         c_parser_static_assert_declaration_no_semi,
1628         c_parser_static_assert_declaration): New.
1629         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
1630         Handle static assertions if static_assert_ok.
1631         (c_parser_external_declaration, c_parser_declaration_or_fndef,
1632         c_parser_compound_statement_nostart, c_parser_label,
1633         c_parser_for_statement, c_parser_objc_methodprotolist,
1634         c_parser_omp_for_loop): All callers of
1635         c_parser_declaration_or_fndef changed.
1636         (c_parser_struct_declaration): Handle static assertions.
1637         (c_parser_compound_statement_nostart): Use
1638         c_parser_next_token_starts_declaration and
1639         c_token_starts_declaration to detect start of declarations.
1640         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
1641         Likewise.
1642
1643 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
1644
1645         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1646         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1647         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1648         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1649         (mmix_function_outgoing_value): Rename to...
1650         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
1651         (mmix_function_value_regno_p): Make static.
1652         (mmix_libcall_value): New function.
1653         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
1654         mmix_function_value_regno_p): Remove declaration.
1655
1656 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
1657
1658         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
1659         BUILT_IN_ALLOCA if stack checking is enabled.
1660
1661 2010-05-16  Richard Guenther  <rguenther@suse.de>
1662
1663         * var-tracking.c (vars_copy_1): Inline ...
1664         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1665         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
1666         (variable_merge_over_cur): Adjust.  Merge asserts.
1667         (variable_merge_over_src): Likewise.
1668         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
1669         (variable_post_merge_new_vals): Merge asserts.
1670         (variable_post_merge_perm_vals): Likewise.
1671         (find_mem_expr_in_1pdv): Likewise.
1672         (dataflow_set_different_value): Remove.
1673         (onepart_variable_different_p): Merge asserts.
1674         (variable_different_p): Likewise.
1675         (dataflow_set_different_1): Inline ...
1676         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
1677         (emit_notes_for_differences_1): Merge asserts.
1678
1679 2010-05-16  Richard Guenther  <rguenther@suse.de>
1680
1681         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
1682         * optabs.c (libfunc_decl_hash): Likewise.
1683         * varasm.c (emutls_decl): Likewise.
1684
1685 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
1686
1687         * c-decl.c: Don't include gimple.h.
1688         (merge_decls): Do not copy gimple_body.
1689
1690 2010-05-15  Jason Merrill  <jason@redhat.com>
1691
1692         * c.opt: Add -fnothrow-opt.
1693
1694 2010-05-15  Jan Hubicka  <jh@suse.cz>
1695
1696         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
1697         analyzed.
1698         * passes.c (ipa_write_summaries): Write all analyzed nodes.
1699
1700 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
1701
1702         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
1703         * Makefile.in: Add it.
1704         Fix all other Makefile dependencies for changes below.
1705         * tree.h: Include it instead of defining VEC primitives here.
1706         * gimple.h: Likewise.
1707         * rtl.h: Likewise.
1708         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
1709         * except.h: Include vecir.h, break dependence on tree.h.
1710
1711         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
1712         Move from here...
1713         * tree-iterator.c: ...to here.
1714         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
1715
1716         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
1717         tm_p.h.
1718         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
1719         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
1720         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
1721         tree-mudflap.h, and target.h.
1722         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
1723         predict.h, tree-inline.h, gimple.h, and langhooks.h.
1724         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
1725         Add FIXME for why gimple.h is still included (should be unnecessary
1726         since GCC 4.5 gimplification unit-at-a-time).
1727         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
1728         * c-pragma.c: Add FIXME for why function.h needs to be included just
1729         for cfun, at front-end level.
1730         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
1731         Do not include ggc.h, but include vecprim.h for VEC(char).
1732         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
1733         Explain why target.h is included.
1734         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
1735         Explain why gimple.h is included.
1736         * c-ppoutput.c: Do not include tm.h.
1737         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
1738         * c-parses.c: Explain why rtl.h is included, and that this (and only
1739         this) is also why tm.h must be included.
1740         Do not include except.h.
1741         * c-lang.c: Do not include ggc.h.
1742
1743 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
1744
1745         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
1746
1747 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
1748
1749         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
1750         unions by default if those structs and unions have no tags.  Do
1751         not condition anonymous struct and unions handling on flag_iso.
1752         Allow anonymous structs and unions for C1X.
1753         (finish_struct): Do not diagnose lack of named fields when
1754         anonymous structs and unions present for C1X.  Accept flexible
1755         array members in structure with anonymous structs or unions but no
1756         directly named fields.
1757         * doc/extend.texi (Unnamed Fields): Update.
1758
1759 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
1760
1761         * gimple.h (compare_field_offset): Rename into...
1762         (gimple_compare_field_offset): ...this.
1763         * gimple.c (compare_field_offset): Rename into...
1764         (gimple_compare_field_offset): ...this.  Compare the full access if
1765         the offset is self-referential.
1766         (gimple_types_compatible_p): Adjust for above renaming.
1767         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
1768         DECL_NONADDRESSABLE_P flag of fields before merging them.
1769
1770 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
1771
1772         * tree.h (ctor_to_list): Delete.
1773         * tree.c (ctor_to_list): Delete.
1774
1775 2010-05-15  Jan Hubicka  <jh@suse.cz>
1776
1777         * ipa-reference.c: Include toplev.h
1778         (is_proper_for_analysis): Only add to all_module_statics
1779         if it is allocated.
1780         (write_node_summary_p, stream_out_bitmap,
1781         ipa_reference_write_optimization_summary,
1782         ipa_reference_read_optimization_summary): New.
1783         (struct ipa_opt_pass_d pass_ipa_reference): Add
1784         optimization summary streaming.
1785         * lto-cgraph.c (referenced_from_this_partition_p,
1786         reachable_from_this_partition_p): New functions.
1787         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
1788         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
1789         * opts.c (decode_options): Enable ipa_reference.
1790         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
1791         * lto-streamer.h (referenced_from_this_partition_p,
1792         reachable_from_this_partition_p): Declare.
1793
1794 2010-05-15  Richard Guenther  <rguenther@suse.de>
1795
1796         PR tree-optimization/44038
1797         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
1798         taking the address of a V_C_E of a constant.
1799
1800 2010-05-14  Jan Hubicka  <jh@suse.cz>
1801
1802         * tree.h (memory_identifier_string): Remove.
1803         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
1804         (ipa_reference_global_vars_info_d): Remove statics_not_read and
1805         statics_not_written.
1806         (ipa_reference_optimization_summary_d): New structure.
1807         (ipa_reference_optimization_summary_t): New type and vector.
1808         (ipa_reference_vars_info_d): Embedd structures instead of using
1809         pointers.
1810         (reference_vars_to_consider): Remove out of GGC space.
1811         (module_statics_escape): Remove.
1812         (global_info_obstack): Rename to ...
1813         (optimization_summary_obstack): ... this one.
1814         (initialization_status_t): Remove.
1815         (memory_identifier_string): Remove.
1816         (get_reference_vars_info): Fix indenting.
1817         (set_reference_vars_info): Likewise.
1818         (get_reference_optimization_summary): New.
1819         (set_reference_optimization_summary): New.
1820         (get_global_reference_vars_info): Remove.
1821         (ipa_reference_get_read_global): Remove.
1822         (ipa_reference_get_written_global): Remove.
1823         (ipa_reference_get_not_read_global): Update.
1824         (ipa_reference_get_not_written_global): Update.
1825         (is_proper_for_analysis): Outlaw addressable.
1826         (propagate_bits): Update for new datastructures.
1827         (analyze_variable): Remove.
1828         (init_function_info): Update for new datastructures.
1829         (clean_function_local_data): Remove.
1830         (clean_function): Remove.
1831         (copy_global_bitmap): Use optimizations_summary_obstack.
1832         (duplicate_node_data): Duplicate optimization summary only.
1833         (remove_node_data): Remove optimization summary only.
1834         (generate_summary): Do not analyze variables; do not compute
1835         module_statics_escape; do not prune solutions by it.
1836         (read_write_all_from_decl): Fix typos in comments.
1837         (propagate): Doscover readonly and nonaddressable first;
1838         update for new datastructures; share global bitmaps.
1839         * ipa-reference.h (ipa_reference_get_read_global,
1840         ipa_reference_get_written_global): Remove.
1841         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
1842         * Makefile.in: Remove ipa-refereference from GT files.
1843
1844 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1845
1846         PR debug/44112
1847         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
1848         for all SYMBOL_REF_DECLs.
1849
1850 2010-05-14  Jan Hubicka  <jh@suse.cz>
1851
1852         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
1853         (varpool_all_refs_explicit_p): New inline function.
1854         * ipa-reference.c: Update comment.
1855         (module_statics_written): Remove.
1856         (get_static_decl): Remove.
1857         (ipa_init): Do not initialize module_statics_written.
1858         (analyze_function): Likewise.
1859         (generate_summary): Likewise; do not compute module_statics_readonly
1860         and do not update variable flags.
1861         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
1862         * ipa.c: Inlucde flags.h
1863         (cgraph_local_node_p): New.
1864         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
1865         promote functions to local.
1866         (ipa_discover_readonly_nonaddressable_vars): New function.
1867         (function_and_variable_visibility): Use cgraph_local_node_p.
1868         * varpool.c (varpool_finalize_decl): Set force_output for
1869         DECL_PRESERVE_P vars.
1870
1871 2010-05-14  Jan Hubicka  <jh@suse.cz>
1872
1873         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
1874
1875 2010-05-14  Richard Guenther  <rguenther@suse.de>
1876
1877         PR tree-optimization/44119
1878         * tree-ssa-pre.c (eliminate): Properly mark replacement of
1879         a PHI node necessary.
1880
1881 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
1882
1883         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
1884
1885 2010-05-14  Jason Merrill  <jason@redhat.com>
1886
1887         PR c++/44127
1888         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
1889         (gimple_call_set_nothrow): New.
1890         * gimple.c (gimple_build_call_from_tree): Call it.
1891         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
1892
1893         PR c++/44127
1894         * gimplify.c (gimplify_seq_add_stmt): No longer static.
1895         * gimple.h: Declare it.
1896         * gimple.c (gimple_build_eh_filter): No ops.
1897
1898 2010-05-14  Jan Hubicka  <jh@suse.cz>
1899
1900         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
1901         nodes already in queue.
1902         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
1903         re-enqueueing node.
1904
1905 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
1906
1907         PR debug/44136
1908         * cfgexpand.c (expand_debug_expr): If non-memory op0
1909         has BLKmode, return NULL.
1910
1911 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
1912
1913         * config.gcc: Add support for --with-cpu option for bdver1.
1914         * config/i386/i386.h (TARGET_BDVER1): New macro.
1915         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
1916         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1917         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
1918         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
1919         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
1920         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
1921         (processor_type): Add PROCESSOR_BDVER1.
1922         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
1923         processor_type in config/i386/i386.h.
1924         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
1925         movaps <reg, reg> instead of movapd <reg, reg> when replacing
1926         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
1927         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
1928         to emit packed xor instead of packed double/packed integer
1929         xor for SSE and AVX when moving a zero value.
1930         * config/i386/sse.md: Add check for
1931         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
1932         movapd/movdqa for SSE and AVX.
1933         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
1934         single logical operations i.e and, or and xor instead of packed double
1935         logical operations for SSE and AVX.
1936         * config/i386/i386-c.c (ix86_target_macros_internal):
1937         Add PROCESSOR_BDVER1.
1938         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
1939         (has_fma4, has_xop): New.
1940         * config/i386/i386.c (bdver1_cost): New variable.
1941         (m_BDVER1): New macro.
1942         (m_AMD_MULTIPLE): Add m_BDVER1.
1943         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
1944         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
1945         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
1946         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
1947         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
1948         x86_tune_sse_partial_reg_dependency,
1949         x86_tune_sse_unaligned_load_optimal,
1950         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
1951         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
1952         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
1953         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
1954         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
1955         Enable/disable for bdver1.
1956         (processor_target_table): Add bdver1_cost.
1957         (cpu_names): Add bdver1.
1958         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
1959          processor_alias_table.
1960         (ix86_expand_vector_move_misalign): Change.
1961         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
1962         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
1963         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
1964         of movupd/movdqu for SSE and AVX.
1965         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
1966         (ix86_tune_adjust_cost): Add code for bdver1.
1967         (standard_sse_constant_opcode): Add check for
1968         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
1969         of packed double xor for SSE and AVX.
1970
1971 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
1972
1973         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
1974         result to unsigned.
1975
1976 2010-05-14  Tristan Gingold  <gingold@adacore.com>
1977
1978         * toplev.c (default_debug_hooks): Remove this variable.
1979         (process_options): Remove assignments to default_debug_hooks.
1980
1981 2010-05-14  Martin Jambor  <mjambor@suse.cz>
1982
1983         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
1984         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
1985         * langhooks.h (struct lang_hooks_for_decls): Removed field
1986         fold_obj_type_ref.
1987         * tree.c (free_lang_data): Remove assignment to
1988         lang_hooks.fold_obj_type_ref.
1989         * tree.def (OBJ_TYPE_REF): Update comment.
1990
1991 2010-05-14  Richard Guenther  <rguenther@suse.de>
1992
1993         PR tree-optimization/44124
1994         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
1995
1996 2010-05-14  Alan Modra  <amodra@gmail.com>
1997
1998         PR target/44075
1999         * config/rs6000/rs6000.c (struct machine_function): Reorder
2000         fields for better packing.  Add lr_save_state.
2001         (rs6000_ra_ever_killed): Return lr_save_state if set.
2002         (rs6000_emit_eh_reg_restore): Set lr_save_state.
2003
2004 2010-05-13  Jan Hubicka  <jh@suse.cz>
2005
2006         * varpool.c (decide_is_variable_needed): Drop code checking
2007         TREE_SYMBOL_REFERENCED.
2008
2009 2010-05-13  Jan Hubicka  <jh@suse.cz>
2010
2011         * final.c (output_addr_const): Do not call mark_decl_referenced.
2012         * cgraphunit.c (process_function_and_variable_attributes): Use
2013         mark_needed_node dirrectly.
2014         (assemble_thunk): Do not call mark_decl_referenced.
2015
2016 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
2017
2018         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
2019
2020 2010-05-13  Jeff Law  <law@redhat.com>
2021
2022         * ira-conflicts.c (print_allocno_conflicts): New function broken out
2023         from...
2024         (print_conflicts): Call print_allocno_conflicts.
2025
2026 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2027
2028         PR debug/44104
2029         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
2030         if it is NULL.
2031
2032 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
2033
2034         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
2035         t-mingw-w64 or t-mingw-w32 for multilib configuration.
2036         * config/i386/t-mingw-w32: New.
2037         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
2038
2039 2010-05-13  Martin Jambor  <mjambor@suse.cz>
2040
2041         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
2042         gimple-fold.c).
2043         * gimple-fold.c (get_base_binfo_for_type): New function.
2044         (gimple_get_relevant_ref_binfo): Likewise.
2045         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2046         (gimple_fold_obj_type_ref): Likewise.
2047         (fold_gimple_call): Simplify condition for folding virtual calls
2048         and call gimple_fold_obj_type_ref.
2049         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
2050         (gimple_fold_obj_type_ref_known_binfo): Likewise.
2051
2052 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
2053
2054         * config/rs6000/rs6000-protos.h
2055         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
2056         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
2057         (rs6000_debug_mode_dependent_address)
2058         (rs6000_mode_dependent_address_ptr): Likewise.
2059
2060 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
2061
2062         PR debug/43983
2063         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
2064         by SRA.
2065         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
2066         * tree-sra.c (create_access_replacement): Call unshare_expr before
2067         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
2068         * dwarf2out.c: Include tree-flow.h.
2069         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
2070         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
2071         Handle DW_OP_bit_piece.
2072         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
2073         construct_piece_list, adjust_piece_list): New functions.
2074         (add_var_loc_to_decl): Handle SRA optimized variables.
2075         Adjust for var_loc_note to loc field renaming.
2076         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
2077         in VAR_LOCATION note.
2078         (new_loc_descr_op_bit_piece): New function.
2079         (dw_sra_loc_expr): New function.
2080         (dw_loc_list): Use it.  Don't handle the last range after the
2081         loop, handle it inside of the loop.  Adjust for var_loc_note
2082         to loc field renaming.
2083         (add_location_or_const_value_attribute): Only special case
2084         single entry loc lists if loc is NOTE_P.  Adjust for
2085         var_loc_note to loc field renaming.
2086         (dwarf2out_var_location): Don't set newloc->var_loc_note
2087         and newloc->next here.
2088
2089 2010-05-12  Jan Hubicka  <jh@suse.cz>
2090
2091         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
2092         flag.
2093         * cgraph.h (cgraph_only_called_directly_p,
2094         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
2095         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
2096         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
2097         (assemble
2098         * ipa.c (cgraph_remove_unreachable_nodes): Use
2099         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
2100         flags.
2101         * tree-inline.c (copy_bb): Check address_taken flag.
2102         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
2103         externally_visible flag.
2104
2105 2010-05-12  Jason Merrill  <jason@redhat.com>
2106
2107         PR bootstrap/44048
2108         PR target/44099
2109         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
2110         * sdbout.c (plain_type_1): Likewise.
2111         * dwarf2out.c (is_base_type): Likewise.
2112         (gen_type_die_with_usage): Likewise.  Generate
2113         DW_TAG_unspecified_type for any LANG_TYPE.
2114
2115 2010-05-12  Jan Hubicka  <jh@suse.cz>
2116
2117         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
2118         indrect edges too.
2119         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
2120         (cgraph_clone_edge): Update.
2121         (cgraph_node_remove_callees): Remove indirect calls too.
2122         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
2123         (cgraph_create_indirect_edge): Update prototype.
2124         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
2125         is_proper_for_analysis.
2126         (add_new_function, visited_nodes, function_insertion_hook_holder,
2127         get_local_reference_vars_info, mark_address_taken, mark_address,
2128         mark_load, mark_store, check_asm_memory_clobber, check_call,
2129         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
2130         (ipa_init): Do not initialize visited_nodes;
2131         function_insertion_hook_holder.
2132         (analyze_variable): Rewrite.
2133         (analyze_function): Rewrite.
2134         (copy_local_bitmap): Remove.
2135         (duplicate_node_dat): Do not duplicate local info.
2136         (generate_summary): Simplify to only walk cgraph.
2137         (write_node_summary_p, ipa_reference_write_summary,
2138         ipa_reference_read_summary): Remove.
2139         (propagate): Do not remove function insertion;
2140         generate summary.
2141         (pass_ipa_reference): NULLify summary handling fields.
2142         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
2143         (input_edge): Input ecf_flags.
2144         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
2145         (update_indirect_edges_after_inlining): Ignore edges with unknown
2146         param.
2147
2148 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
2149
2150         * implicit-zee.c: New file.
2151         * tree-pass.h (pass_implicit_zee): Declare.
2152         * passes.c (init_optimization_passes): Add zee pass.
2153         * common.opt (fzee): New flag.
2154         * timevar.def (TV_ZEE): Define.
2155         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
2156         and beyond.
2157         * Makefile.in (implicit-zee.o): Add new build file.
2158
2159 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2160             Nathan Froyd  <froydnj@codesourcery.com>
2161
2162         * c-common.c (sync_resolve_params): Remove write-only variable.
2163
2164 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
2165
2166         * target.h (struct gcc_target): Add mode_dependent_address_p field.
2167         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2168         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
2169         * targhooks.c (default_mode_dependent_address_p): New function.
2170         * targhooks.h (default_mode_dependent_address_p): Declare function.
2171         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
2172         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
2173         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
2174         target hook. Change return type to bool.
2175         * recog.h (mode_dependent_address_p): Change return type to bool.
2176
2177 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2178             Nathan Froyd  <froydnj@codesourcery.com>
2179
2180         * tree-mudflap.c (build_function_type_0, build_function_type_1,
2181         build_function_type_2, build_function_type_3): Remove.
2182         (mudflap_init): Use build_function_type_list.
2183
2184 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
2185             Nathan Froyd  <froydnj@codesourcery.com>
2186
2187         * coverage.c (build_fn_info_value): Call build_constructor instead of
2188         build_constructor_from_list.
2189         (build_ctr_info_value): Likewise.
2190         (build_gcov_info): Likewise.
2191
2192 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
2193
2194         * tree.c (build_constructor): Compute TREE_CONSTANT for the
2195         resultant constructor.
2196         (build_constructor_single): Don't set TREE_CONSTANT.
2197         (build_constructor_from_list): Don't compute TREE_CONSTANT.
2198
2199 2010-05-12  Jan Hubicka  <jh@suse.cz>
2200
2201         * cgraph.h (struct varpool_node): Add aux.
2202         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
2203         * varpool.c (varpool_remove_node): Do not remove initializer.
2204         (varpool_reset_queue): Export.
2205         (varpool_finalize_decl): Volatile vars are forced to be output.
2206         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
2207         replaced decl.
2208         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
2209         process_references, varpool_can_remove_if_no_refs): New functions.
2210         (cgraph_remove_unreachable_nodes): Handle variables too.
2211
2212 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
2213
2214         PR target/44088
2215         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
2216
2217 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
2218
2219         PR middle-end/44085
2220         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
2221         change value of ORT_TASK.
2222         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
2223         (omp_notice_threadprivate_variable): New function.
2224         (omp_notice_variable): Call it for threadprivate variables.
2225         If enclosing ctx is a task, print enclosing task rather than
2226         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
2227         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
2228         if task has untied clause.
2229
2230         PR debug/42278
2231         * dwarf2out.c (base_type_die): Don't add name attribute here.
2232         (modified_type_die): Instead of sizetype use
2233         its underlying original type.  If a DW_TAG_base_type doesn't
2234         have name added, add __unknown__.
2235         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
2236         always call force_type_die instead.
2237
2238 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
2239
2240         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
2241         for __stack_chk_guard.
2242
2243 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2244
2245         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
2246         don't call start_source_file debug hook here...
2247         (finish_options): ... but here, after outputting predefined and
2248         command line defines and undefs.
2249
2250         PR middle-end/44071
2251         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
2252         no fallthru edge.
2253         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
2254         optimizing away empty bb with no successors, move over its
2255         footer chain to fallthru predecessor.
2256         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
2257         (rtl_split_edge): For asm goto call patch_jump_insn even if
2258         splitting fallthru edge.
2259
2260         PR c++/44059
2261         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
2262         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
2263         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
2264         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
2265         on DW.ref.* decls.
2266
2267         PR c++/44062
2268         * c-parser.c (c_parser_expression): Mark LHS of a comma
2269         expression as read if it is a decl, handled component or
2270         COMPOUND_EXPR with that on the RHS.
2271         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
2272         if it is a decl or handled component.
2273
2274 2010-05-11  Jan Hubicka  <jh@suse.cz>
2275
2276         * lto-symtab.c (lto_symtab_free): New function.
2277         * lto-streamer.h (lto_symtab_free): Declare.
2278
2279 2010-05-11  Jan Hubicka  <jh@suse.cz>
2280
2281         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
2282         that if function is needed it is reachable.
2283         (lto_output_node): See if it the function is reachable or referenced.
2284         (output_cgraph): Update call of lto_output_node.
2285         * lto-streamer.h (reachable_from_other_partition_p): Declare.
2286
2287 2010-05-11  Jan Hubicka  <jh@suse.cz>
2288
2289         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
2290         Mark as used.
2291
2292 2010-05-11  Jan Hubicka  <jh@suse.cz>
2293
2294         PR tree-optimize/44063
2295         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
2296         queue.
2297         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
2298         limits.
2299         (estimate_function_body_sizes): Compute sizes even when disregarding.
2300
2301 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
2302
2303         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
2304
2305 2010-05-11  Jan Hubicka  <jh@suse.cz>
2306
2307         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
2308         into every boundary.
2309
2310 2010-05-11  Jan Hubicka  <jh@suse.cz>
2311
2312         * matrix-reorg.c (matrix_reorg): Rebuild edges.
2313
2314 2010-05-11  Jan Hubicka  <jh@suse.cz>
2315
2316         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
2317         lto_streamer_cache_delete): Put nodes into heap.
2318         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
2319         heap.
2320
2321 2010-05-11  Jan Hubicka  <jh@suse.cz>
2322
2323         * cgraphbuild.c (cgraph_rebuild_references): New.
2324         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
2325         out extern inlines.
2326         * cgraph.h (cgraph_rebuild_references): Declare.
2327         * tree-inline.c (tree_function_versioning): Use it.
2328         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
2329
2330 2010-05-11  Jan Hubicka  <jh@suse.cz>
2331
2332         * cgraph.c: Include ipa-utils.h
2333         (cgraph_create_virtual_clone): Update references.
2334         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
2335
2336 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2337
2338         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
2339         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
2340         cache size.
2341
2342 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
2343
2344         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
2345
2346 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
2347
2348         * gcc.c (execute): For -### don't quote arguments that
2349         contain just alphanumerics and _/-. characters.
2350         * doc/invoke.texi: Document that change for -###.
2351
2352         PR debug/44023
2353         * df-problems.c (struct dead_debug): Add to_rescan field.
2354         (dead_debug_init): Clear to_rescan field.
2355         (dead_debug_finish): Rescan all debug insns in to_rescan
2356         bitmap and free the bitmap.
2357         (dead_debug_insert_before): Instead of rescanning debug insns
2358         immediately queue their rescanning until dead_debug_finish.
2359         (df_note_bb_compute): After dead_debug_add do continue instead
2360         of break.
2361
2362 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
2363
2364         PR debug/44028
2365         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
2366         clear also INSN_REG_USE_LIST.
2367
2368 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2369
2370         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
2371
2372 2010-05-10  Jan Hubicka  <jh@suse.cz>
2373
2374         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
2375         commited change.
2376
2377 2010-05-10  Jan Hubicka  <jh@suse.cz>
2378
2379         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
2380         Allocate encoders.
2381         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
2382         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
2383         (lto_streamer_cache_create): Init alloc pool.
2384         (lto_streamer_cache_delete): Free alloc pool.
2385         * lto-streamer.h: Include alloc pool.
2386         (lto_streamer_cache_d): Use alloc pool.
2387         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
2388
2389 2010-05-10  Jan Hubicka  <jh@suse.cz>
2390
2391         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
2392         * cgraphbuild.c: Include except.h
2393         (record_type_list, record_eh_tables): New function.
2394         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
2395
2396 2010-05-10  Jan Hubicka  <jh@suse.cz>
2397
2398         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
2399         __frame_dummy_init_array_entry, force_to_data): Attribute as used
2400         rather than unused.
2401
2402 2010-05-10  Michael Matz  <matz@suse.de>
2403
2404         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
2405         (can_reassociate_p): Use FLOAT_TYPE_P.
2406         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
2407         (vect_force_simple_reduction): ... this.
2408         * tree-parloops.c (gather_scalar_reductions): Use
2409         vect_force_simple_reduction.
2410         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
2411         vect_is_simple_reduction, add modify argument, if true rewrite
2412         "a-b" into "a+(-b)".
2413         (vect_is_simple_reduction, vect_force_simple_reduction): New
2414         functions.
2415         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
2416
2417 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
2418             Vladimir Makarov  <vmakarov@redhat.com>
2419
2420         PR rtl-optimization/44012
2421         * ira-build.c (remove_unnecessary_allocnos): Nullify
2422         regno_allocno_map of the removed allocno.
2423
2424 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2425
2426         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
2427         to /dev/null.
2428         * configure: Regenerate.
2429
2430 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2431
2432         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
2433         unused.
2434         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
2435         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
2436         support in Sun ld.
2437         * configure: Regenerate.
2438
2439 2010-05-10  Richard Guenther  <rguenther@suse.de>
2440
2441         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
2442         marked if the entry identifier is marked.
2443
2444 2010-05-10  Richard Guenther  <rguenther@suse.de>
2445
2446         * c-common.c (struct c_common_attributes): Add fnspec attribute.
2447         (handle_fnspec_attribute): New function.
2448         * gimple.h (gimple_call_return_flags): Declare.
2449         (gimple_call_arg_flags): Likewise.
2450         * gimple.c (gimple_call_arg_flags): New function.
2451         (gimple_call_return_flags): Likewise.
2452         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
2453         New argument flags.
2454         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
2455         return value flags.
2456         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
2457         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
2458         main work to ...
2459         (make_heapvar_for): ... this new function.
2460         (handle_rhs_call): Handle fnspec attribute argument specifiers.
2461         (handle_lhs_call): Likewise.
2462         (find_func_aliases): Adjust.
2463
2464 2010-05-10  Richard Guenther  <rguenther@suse.de>
2465
2466         PR tree-optimization/44050
2467         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
2468
2469 2010-05-10  Wei Guozhi  <carrot@google.com>
2470
2471         PR target/42879
2472         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
2473
2474 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2475
2476         PR c/10676
2477         * c-typeck.c (lookup_field): Take a type directly.  Update
2478         recursive calls.
2479         (build_component_ref): Update call to lookup_field.
2480         (set_init_label): Use lookup_field to find initialized field.
2481         Handle returned list of fields like a sequence of designators.
2482
2483 2010-05-09  Richard Guenther  <rguenther@suse.de>
2484
2485         PR middle-end/44024
2486         * fold-const.c (tree_single_nonzero_warnv_p): Properly
2487         handle &FUNCTION_DECL.
2488
2489 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
2490
2491         PR c/4784
2492         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
2493         structures and unions recursively.
2494         (detect_field_duplicates): Move duplicate detection with a hash to
2495         detect_field_duplicates_hash.  Always use a hash if anonymous
2496         structures or unions are present.
2497         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
2498         give errors.
2499
2500 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
2501
2502         PR target/44046
2503         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
2504         detect Atom, Core 2 and Core i7.
2505
2506 2010-05-09  Richard Guenther  <rguenther@suse.de>
2507
2508         * gcc.c (store_arg): Handle temporary file deletion for
2509         joined arguments.
2510
2511 2010-05-09  Richard Guenther  <rguenther@suse.de>
2512
2513         PR middle-end/44043
2514         * ipa-inline.c (estimate_function_body_sizes): Return after
2515         disregarding inline limits.
2516
2517 2010-05-09  Richard Guenther  <rguenther@suse.de>
2518
2519         * gcc.c (store_arg): Revert last change.
2520
2521 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
2522
2523         PR middle-end/28685
2524         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
2525         (optimize_ops_list): Call it.
2526
2527 2010-05-08  Richard Guenther  <rguenther@suse.de>
2528
2529         PR tree-optimization/44030
2530         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
2531         NECESSARY flag if we propagate from a inserted expression.
2532
2533 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
2534
2535         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
2536         domain types as equal if they are both PLACEHOLDER_EXPRs.
2537
2538 2010-05-08  Richard Guenther  <rguenther@suse.de>
2539
2540         * lto-wrapper.c (run_gcc): Remove linker output from
2541         command line for LTRANS invocation.
2542
2543 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2544
2545         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
2546         lto-macho as lto_binary_reader.
2547         * target.h (struct gcc_target): New hooks lto_start and lto_end.
2548         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
2549         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
2550         in lto_start and lto_end calls.
2551         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
2552         magic numbers.
2553         (scan_prog_file): Update is_elf_or_coff call.
2554         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
2555
2556         * collect2.c (main): Fix enum comparison.
2557
2558         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
2559         Add prototypes.
2560         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
2561         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
2562         and TARGET_ASM_LTO_END.
2563         * darwin.c: Include obstack.h and lto-streamer.h.
2564         (lto_section_names_offset, lto_section_names_obstack,
2565         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
2566         global variables.
2567         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
2568         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
2569         to a temporary file.
2570         (darwin_asm_lto_end): New function.  Restore asm_out_file.
2571         (darwin_asm_named_section): For LTO sections, replace the name with
2572         the offset of the section name in a string table, and build this
2573         table.
2574         (darwin_file_start): Initialize global vars for LTO support.
2575         (darwin_file_end): If output to asm_out_file was redirected, append it
2576         to the proper asm_out_file here.  Add the section names section.
2577
2578 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
2579
2580         * c-pragma.c (pending_weak_d, pending_weak): New.
2581         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
2582         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
2583         handle_pragma_weak): Update the uses of pending_weaks.
2584
2585 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2586
2587         PR documentation/44016
2588         * doc/standards.texi (Standards): Link to unversioned
2589         cxx0x_status.html page.
2590
2591 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
2592
2593         PR target/43708
2594         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
2595         in addition to TREE_USED, to avoid "set but unused" warnings.
2596
2597 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2598
2599         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
2600         (is_loop_prefetching_profitable): Do not insert prefetches
2601         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
2602         times the prefetch ahead distance.
2603
2604 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2605
2606         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
2607         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
2608         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
2609         the unroll_factor.
2610
2611 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
2612
2613         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
2614         a diagnostic info when the insn-to-mem ratio is too small.
2615
2616 2010-05-07  Richard Guenther <rguenther@suse.de>
2617
2618         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
2619         the linker plugin.
2620         (store_arg): Queue temp_filename for deletion instead of
2621         the whole argument.
2622
2623 2010-05-07  Richard Guenther  <rguenther@suse.de>
2624
2625         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
2626         (run_gcc): Handle LTRANS phase invocation.
2627         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
2628
2629 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
2630
2631         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
2632         this is also meaningful on PARM_DECLs and RESULT_DECLs.
2633
2634 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2635
2636         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
2637
2638 2010-05-07  Richard Guenther  <rguenther@suse.de>
2639
2640         PR tree-optimization/44020
2641         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
2642         code when PRE is not yet initialized.
2643
2644 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2645
2646         * config/mips/dbxmdebug.h: Remove.
2647         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
2648
2649 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
2650
2651         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
2652         with null pointer and also warn about ordered comparison of zero with
2653         pointer if -Wextra.
2654
2655 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2656
2657         * graphite-blocking.c
2658         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
2659         * graphite-clast-to-gimple.c
2660         (clast_to_gcc_expression): Same.
2661         (precision_for_value): Same.
2662         (precision_for_interval): Same.
2663         (gcc_type_for_interval): Same.
2664         (graphite_create_new_guard): Same.
2665         (compute_bounds_for_level): Same.
2666         (graphite_create_new_loop_guard): Same.
2667         * graphite-interchange.c
2668         (build_linearized_memory_access): Same.
2669         (pdr_stride_in_loop): Same.
2670         (memory_strides_in_loop_1): Same.
2671         (memory_strides_in_loop): Same.
2672         (extend_scattering): Same.
2673         (psct_scattering_dim_for_loop_depth): Same.
2674         (pbb_number_of_iterations): Same.
2675         * graphite-poly.h
2676         (debug_iteration_domains): Same.
2677         * graphite-ppl.c
2678         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
2679         (ppl_set_inhomogeneous_gmp): Same.
2680         (ppl_strip_loop): Same.
2681         (ppl_lexico_compare_linear_expressions): Same.
2682         (ppl_read_polyhedron_matrix): Same.
2683         (ppl_max_for_le_pointset): Same.
2684         * graphite-ppl.h
2685         (ppl_read_polyhedron_matrix): Same.
2686         (tree_int_to_gmp): Same.
2687         (gmp_cst_to_tree): Same.
2688         (ppl_set_inhomogeneous): Same.
2689         (ppl_set_inhomogeneous_tree): Same.
2690         (ppl_set_coef): Same.
2691         (ppl_set_coef_tree): Same.
2692         * graphite-sese-to-poly.c
2693         (build_pbb_scattering_polyhedrons): Same.
2694         (build_scop_scattering): Same.
2695         (scan_tree_for_params_right_scev): Same.
2696         (scan_tree_for_params): Same.
2697         (find_params_in_bb): Same.
2698         (find_scop_parameters): Same.
2699         (add_upper_bounds_from_estimated_nit): Same.
2700         (build_loop_iteration_domains): Same.
2701         (add_condition_to_domain): Same.
2702         (pdr_add_memory_accesses): Same.
2703
2704 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
2705
2706         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
2707         CLooG's value_* macros to their respective mpz_* counterparts.
2708         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
2709         (graphite_create_new_loop_guard): Same.
2710         * graphite-interchange.c (build_linearized_memory_access): Same.
2711         (pdr_stride_in_loop): Same.
2712         (memory_strides_in_loop_1): Same.
2713         (1st_interchange_profitable_p): Same.
2714         * graphite-poly.c (extend_scattering): Same.
2715         (psct_scattering_dim_for_loop_depth): Same.
2716         (pbb_number_of_iterations): Same.
2717         (pbb_number_of_iterations_at_time): Same.
2718         * graphite-poly.h (new_1st_loop): Same.
2719         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
2720         (oppose_constraint): Same.
2721         (insert_constraint_into_matrix): Same.
2722         (ppl_set_inhomogeneous_gmp): Same.
2723         (ppl_set_coef_gmp): Same.
2724         (ppl_strip_loop): Same.
2725         (ppl_lexico_compare_linear_expressions): Same.
2726         (ppl_max_for_le_pointset): Same.
2727         (ppl_min_for_le_pointset): Same.
2728         (ppl_build_realtion): Same.
2729         * graphite-ppl.h (gmp_cst_to_tree): Same.
2730         (ppl_set_inhomogeneous): Same.
2731         (ppl_set_inhomogeneous_tree): Same.
2732         (ppl_set_coef): Same.
2733         (ppl_set_coef_tree): Same.
2734         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
2735         (build_scop_scattering): Same.
2736         (add_value_to_dim): Same.
2737         (scan_tree_for_params_right_scev): Same.
2738         (scan_tree_for_params_int): Same.
2739         (scan_tree_for_params): Same.
2740         (find_params_in_bb): Same.
2741         (find_scop_parameters): Same.
2742         (add_upper_bounds_from_estimated_nit): Same.
2743         (build_loop_iteration_domains): Same.
2744         (create_linear_expr_from_tree): Same.
2745         (add_condition_to_domain): Same.
2746         (pdr_add_memory_accesses): Same.
2747
2748 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2749             Jason Merrill  <jason@redhat.com>
2750
2751         * c-common.c (c_common_reswords): Add nullptr.
2752         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
2753         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
2754         (gen_type_die_with_usage): Likewise.
2755         * dbxout.c (dbxout_type): Likewise.
2756         * sdbout.c (plain_type_1): Likewise.
2757
2758 2010-05-06  Jason Merrill  <jason@redhat.com>
2759
2760         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
2761         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
2762         ret appropriately.
2763         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
2764
2765         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
2766         stripping WITH_SIZE_EXPR.
2767         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
2768         change.
2769
2770 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2771
2772         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
2773         list of obsolete configurations.
2774         Disabled check for obsolete configurations.
2775         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
2776         Removed support for previous versions.
2777         * config/mips/iris.h: Removed.
2778         * config/mips/iris5.h: Removed.
2779         * config/mips/iris6.h: Merged old iris.h contents.
2780         (TARGET_IRIX): Removed.
2781         (DRIVER_SELF_SPECS): Removed mabi=32.
2782         (IDENT_ASM_OP): Removed undef.
2783         (STARTFILE_SPEC): Removed mabi=32.
2784         (ENDFILE_SPEC): Likewise.
2785         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
2786         (MACHINE_TYPE): Update for IRIX 6.5.
2787         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
2788         TARGET_IRIX by TARGET_IRIX6.
2789         (mips_file_start): Likewise.
2790         (mips_output_external): Remove IRIX 5/6 O32 support.
2791         (mips_output_function_prologue): Likewise.
2792         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
2793         TARGET_IRIX6.
2794         (TARGET_CPU_CPP_BUILTINS): Likewise.
2795         (TARGET_IRIX): Removed.
2796         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
2797         (MULTILIB_DIRNAMES): Removed 32.
2798         (MULTILIB_OSDIRNAMES): Removed ../lib.
2799         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
2800         (Specific, mips-sgi-irix5): Document removal.
2801         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
2802         Remove references to older IRIX 6 releases and the O32 ABI.
2803
2804 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
2805
2806         PR bootstrap/43994
2807         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
2808         instead of DF_REF_REAL_REG.
2809
2810 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
2811
2812         PR target/43888
2813         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
2814         handling to still return true for x64 targets.
2815
2816 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2817
2818         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
2819
2820 2010-05-06  Jan Hubicka  <jh@suse.cz>
2821
2822         PR tree-optimization/43791
2823         * ipa-inline.c (update_caller_keys): Remove bogus
2824         disregard_inline_limits check.
2825
2826 2010-05-06  Michael Matz  <matz@suse.de>
2827
2828         PR tree-optimization/43984
2829         * tree-ssa-pre.c (inserted_phi_names): Remove.
2830         (inserted_exprs): Change to bitmap.
2831         (create_expression_by_pieces): Set bits, don't append to vector.
2832         (insert_into_preds_of_block): Don't handle inserted_phi_names.
2833         (eliminate): Don't look at inserted_phi_names, remove deleted
2834         insns from inserted_exprs.
2835         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
2836         (init_pre, fini_pre): Allocate and free bitmaps.
2837         (execute_pre): Insert insns on edges before elimination.
2838
2839 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
2840
2841         * tree.c (initializer_zerop): Handle STRING_CST.
2842
2843 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2844
2845         PR 40989
2846         * doc/invoke.texi (Wimplicit): Document as C only.
2847         * opts.c (common_handle_option): Add argument kind.
2848         (handle_option): Rename as read_cmdline_option. Factor out code to...
2849         (handle_option): ... here. New.
2850         (handle_options): Rename as read_cmdline_options.
2851         (decode_options): Update call.
2852         (set_option): Use option index instead of option pointer. Classify
2853         diagnostics correctly.
2854         (enable_warning_as_error): Call handle_option.
2855         * opts.h (set_option): Update declaration.
2856         (handle_option): Declare.
2857         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
2858         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
2859         * c-opts.c (set_Wimplicit): Delete.
2860         (c_family_lang_mask): New static constant.
2861         (c_common_handle_option): Add argument kind. Use handle_option
2862         instead of set_Wimplicit.
2863         (c_common_post_options): warn_implicit and warn_implicit_int
2864         are disabled by default.
2865         * c-common.c (warn_implicit): Do not define here.
2866         * c-common.h (warn_implicit): Do not declare here.
2867         (c_common_handle_option): Update declaration.
2868         * lto-opts.c (lto_reissue_options): Update call to set_option.
2869
2870 2010-05-06  Richard Guenther  <rguenther@suse.de>
2871
2872         PR tree-optimization/43571
2873         * domwalk.c (walk_dominator_tree): Walk the dominator
2874         sons in more optimal order.
2875
2876 2010-05-06  Richard Guenther  <rguenther@suse.de>
2877
2878         PR tree-optimization/43934
2879         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
2880         (stmt_cost): Likewise.
2881         (extract_true_false_args_from_phi): New helper.
2882         (determine_max_movement): For PHI nodes verify we can hoist them
2883         and compute their cost.
2884         (determine_invariantness_stmt): Handle PHI nodes.
2885         (move_computations_stmt): Likewise.  Hoist PHI nodes in
2886         if-converted form using COND_EXPRs.
2887         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
2888         (tree_ssa_lim): Likewise.
2889         * tree-flow.h (tree_ssa_lim): Adjust prototype.
2890         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
2891
2892 2010-05-06  Richard Guenther  <rguenther@suse.de>
2893
2894         PR tree-optimization/43987
2895         * tree-ssa-structalias.c (could_have_pointers): For possibly
2896         address-taken variables force pointers to be recorded.
2897         (create_variable_info_for_1): Likewise.
2898         (push_fields_onto_fieldstack): Pass in wheter all fields
2899         must have pointers.
2900         (find_func_aliases): Query types instead of vars whether
2901         they contain pointers where appropriate.
2902
2903 2010-05-06  Jan Hubicka  <jh@suse.cz>
2904
2905         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
2906         (record_reference, mark_address, mark_load, mark_store): Record
2907         references.
2908         (record_references_in_initializer): Update call of record_references.
2909         (rebuild_cgraph_edges): Remove all references before rebuiding.
2910         * cgraph.c (cgraph_create_node): Clear ref list.
2911         (cgraph_remove_node): Remove references.
2912         (dump_cgraph_node): Dump references.
2913         (cgraph_clone_node): Clone references.
2914         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
2915         (struct cgraph_node, varpool_node): Add ref_lst.
2916         * ipa-ref.c: New file.
2917         * ipa-ref.h: New file.
2918         * ipa-ref-inline.h: New file.
2919         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
2920         (referenced_from_other_partition_p): New function.
2921         (lto_output_varpool_node): Take set arugment; call
2922         referenced_from_other_partition.
2923         (lto_output_ref): New.
2924         (add_references): New.
2925         (output_refs): New.
2926         (output_cgraph): Compute boundary based on references; output refs.
2927         (output_varpool): Accept cgraph_node_set argument.
2928         (input_ref): New.
2929         (input_refs): New.
2930         (input_cgraph): Call input_refs.
2931         * lto-section-in.c (lto_section_name): Add refs.
2932         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
2933         (ipa-ref.o): New file.
2934         * varpool.c (varpool_node): Clear ipa ref list.
2935         (varpool_remove_node): Remove references.
2936         (dump_varpool_node): Dump references.
2937         (varpool_assemble_decl): Only compile finalized ones.
2938         (varpool_extra_name_alias): Initialize ref list.
2939         * lto-streamer.c (lto-get_section_name): Add .refs section.
2940         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
2941         (referenced_from_other_partition_p): Declared.
2942
2943 2010-05-06  Ira Rosen  <irar@il.ibm.com>
2944
2945         PR tree-optimization/43901
2946         * tree-vect-stmts.c (vectorizable_call): Assert that vector
2947         type is not NULL if it's transformation phase, and return
2948         FALSE if it's analysis.
2949         (vectorizable_conversion, vectorizable_operation,
2950         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
2951
2952 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
2953
2954         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2955         Delete.
2956         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
2957         New define.
2958         * config/mips/mips-protos.h
2959         (mips_small_register_classes_for_mode_p): Delete prototype.
2960
2961 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
2962
2963         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
2964         * config/arm/arm.c (multiple_operation_profitable_p,
2965         compute_offset_order): New static functions.
2966         (load_multiple_sequence, store_multiple_sequence): Use them.
2967         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
2968         memory offsets, not register numbers.
2969         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
2970
2971 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
2972
2973         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
2974         (get_pending_sizes, put_pending_size, put_pending_sizes):
2975         Update the uses of pending_sizes.
2976         * c-decl.c (store_parm_decls): Likewise.
2977         * c-tree.h (struct c_arg_info): Likewise.
2978         * tree.h: Update the prototype for get_pending_sizes and
2979         put_pending_sizes.
2980
2981 2010-05-05  Jason Merrill  <jason@redhat.com>
2982
2983         PR debug/43370
2984         * c-common.c (handle_aligned_attribute): Respect
2985         ATTR_FLAG_TYPE_IN_PLACE.
2986
2987         PR testsuite/43758
2988         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
2989         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2990         (TARGET_INITIALIZER): Use it.
2991         * c-common.c (attribute_takes_identifier_p): Call it.
2992         * c-common.h: Update prototype.
2993         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
2994         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
2995
2996 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
2997
2998         PR debug/43950
2999         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
3000         DW_ID_down_case for Fortran compilation units.
3001
3002 2010-05-05  Jan Hubicka  <jh@suse.cz>
3003
3004         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
3005         handle aliases.
3006
3007 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
3008
3009         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
3010         a variable-sized RESULT_DECL.
3011
3012 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
3013
3014         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
3015
3016 2010-05-05  Jason Merrill  <jason@redhat.com>
3017
3018         PR c++/43787
3019         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
3020         returns GS_OK.
3021         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
3022
3023 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
3024             Jakub Jelinek  <jakub@redhat.com>
3025
3026         PR debug/43478
3027         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
3028         (dead_debug_init, dead_debug_finish): New functions.
3029         (dead_debug_add, dead_debug_insert_before): Likewise.
3030         (df_note_bb_compute): Initialize a dead_debug object, add dead
3031         debug uses to it, insert debug bind insns before death insns,
3032         reset debug insns that refer to pending uses at the end.
3033         * rtl.h (make_debug_expr_from_rtl): New prototype.
3034         * varasm.c (make_debug_expr_from_rtl): New function.
3035
3036 2010-05-05  Jan Hubicka  <jh@suse.cz>
3037
3038         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
3039         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
3040         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
3041         lto_varpool_encoder_deref, lto_varpool_encoder_size,
3042         lto_varpool_encoder_encode_initializer_p,
3043         lto_set_varpool_encoder_encode_initializer): New functions.
3044         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
3045         call output_varpool.
3046         (input_varpool_node): Do not always set analyzed.
3047         (input_cgraph_1): Return vector of cgraph nodes.
3048         (input_varpool_1): Return vector of varpools.
3049         (input_cgraph): Free the vectors.
3050         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
3051         output only initializers needed.
3052         (lto_output): Only call output_cgraph.
3053         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
3054         * lto-section-out.c (lto_new_out_decl_state): Initialize
3055         state->varpool_node_encoder.
3056         * lto-streamer.h (lto_varpool_encoder_d): New.
3057         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
3058         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
3059         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
3060         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
3061         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
3062         Declare.
3063         (output_varpool, input_varpool): Remove declarations.
3064
3065 2010-05-05  Jan Hubicka  <jh@suse.cz>
3066
3067         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
3068         with body can prevail.
3069
3070 2010-05-05  Jan Hubicka  <jh@suse.cz>
3071
3072         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
3073         size.
3074
3075 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3076
3077         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
3078
3079         * gengtype.h (erro_at_line): Constify pos argument.
3080
3081         * gengtype.c: Include hashtab.h.
3082         (enum gc_used): Document GC_MAYBE_POINTED_TO.
3083         (error_at_line): Constify pos argument.
3084         (do_typedef): Initialize p->opt field.
3085         (get_file_gtfilename): Fix comment typo.
3086         (struct walk_type_data): Constify line field.
3087         (get_output_file_for_structure): New function.
3088         (write_local_func_for_structure): Constify orig_s argument.
3089         Use get_output_file_for_structure.
3090         (write_func_for_structure): Use get_output_file_for_structure.
3091         (INDENT): New define.
3092         (dump_pair, dump_type, dump_type_list, dump_typekind)
3093         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
3094         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
3095         functions.
3096         (seen_types): New variable.
3097         (main): New variable do_dump.  Process "-d" command line option.
3098         Call dump_everything if dump requested.
3099
3100 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
3101
3102         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
3103         in a temporary instead of invoking the macro multiple times.
3104         (track_expr_p): Likewise.
3105
3106 2010-05-04  Neil Vachharajani <nvachhar@google.com>
3107
3108         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
3109         per new semantics.
3110         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
3111         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
3112         conditions for printing notes.
3113         * common.opt (-Wcoverage-mismatch): Allow negative, default to
3114         true, update documentation.
3115         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
3116
3117 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
3118
3119         PR c/43981
3120         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
3121         on dimen.
3122
3123 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3124
3125         PR target/43799
3126         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
3127         (*sse_prologue_save_insn1): Likewise.
3128         (SSE prologue save splitter): Likewise.
3129
3130 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
3131
3132         * tree.c (free_lang_data_in_one_sizepos): New inline function.
3133         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
3134         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
3135         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
3136         all decls.  Call it on DECL_FIELD_OFFSET of fields.
3137         (find_decls_types_r): Follow DECL_VALUE_EXPR.
3138         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
3139
3140 2010-05-04  Martin Jambor  <mjambor@suse.cz>
3141
3142         * tree-sra.c (build_access_from_expr_1): The first parameter type
3143         changed to simple tree.
3144         (build_access_from_expr): Likewise, gsi parameter was eliminated.
3145         (scan_assign_result): Renamed to assignment_mod_result, enum elements
3146         renamed as well.
3147         (build_accesses_from_assign): Removed all parameters except for a
3148         simple gimple statement.  Now returns a simple bool.
3149         (scan_function): All non-analysis parts moved to separate functions
3150         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
3151         parameters and updated both callers.
3152         (sra_modify_expr): Removed parameter data.
3153         (sra_modify_function_body): New function.
3154         (perform_intra_sra): Call sra_modify_function_body to modify the
3155         function body.
3156         (replace_removed_params_ssa_names): Parameter data changed into
3157         adjustments vector.
3158         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
3159         changed the parameter dont_convert to convert with the opposite
3160         meaning.
3161         (sra_ipa_modify_assign): Parameter data changed into adjustments
3162         vector, return value changed to bool.
3163         (ipa_sra_modify_function_body): New function.
3164         (sra_ipa_reset_debug_stmts): Updated a comment.
3165         (modify_function): Use ipa_sra_modify_function_body to modify function
3166         body.
3167
3168 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3169
3170         PR middle-end/43671
3171         * alias.c (true_dependence): Handle the same VALUE in x and mem.
3172         (canon_true_dependence): Likewise.
3173         (write_dependence_p): Likewise.
3174
3175 2010-05-04  Jan Hubicka  <jh@suse.cz>
3176
3177         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
3178         * cgraphbuild.c: Include ipa-utils.h
3179         (record_reference_ctx): New struct.
3180         (record_reference): Simplify to work on initializers; not statements.
3181         (mark_address, mark_load, mark_store): New.
3182         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3183         walk PHI nodes too.
3184         (record_references_in_initializer): Update use of record_reference.
3185         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
3186         walk PHI nodes too.
3187
3188 2010-05-04  Jan Hubicka  <jh@suse.cz>
3189
3190         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
3191         node will be removed anyway.
3192         (lto_varpool_replace_node): Allow also unanalyzed nodes;
3193         relink aliases of node into prevailing node.
3194         * varpool.c (varpool_remove_node): Remove aliases properly;
3195         when removing node, remove all its aliases too; remove DECL_INITIAL
3196         of removed node; ggc_free the varpool node.
3197
3198 2010-05-04  Richard Guenther  <rguenther@suse.de>
3199
3200         PR tree-optimization/43879
3201         * tree-ssa-structalias.c (alias_get_name): Use
3202         DECL_ASSEMBLER_NAME if available.
3203         (create_function_info_for): Return the varinfo node.
3204         (ipa_pta_execute): Associate same-body aliases and extra names
3205         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
3206
3207 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
3208
3209         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
3210
3211 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
3212
3213         PR bootstrap/43964
3214         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
3215         only if HONOR_REG_ALLOC_ORDER is not defined.
3216
3217 2010-05-04  Richard Guenther  <rguenther@suse.de>
3218
3219         PR tree-optimization/43949
3220         * tree-vrp.c (extract_range_from_binary_expr): Only handle
3221         TRUNC_MOD_EXPR.
3222
3223 2010-04-26  Jason Merrill  <jason@redhat.com>
3224
3225         * c.opt (-fstrict-enums): New.
3226         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
3227
3228 2010-05-03  David Ung <davidu@mips.com>
3229             James E. Wilson  <wilson@codesourcery.com>
3230
3231         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
3232         emit the trap instruction before the divide for TUNE_74K.
3233
3234 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
3235
3236         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
3237         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
3238         based on the above, for new target hook.
3239
3240         * hooks.c (hook_bool_mode_true): New generic hook.
3241         * hooks.h (hook_bool_mode_true): Add prototype.
3242
3243         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
3244         target hook.
3245         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
3246         target hook, set to hook_bool_mode_false.
3247         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
3248         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
3249         with targetm.small_register_classes_for_mode_p.
3250         (find_reusable_reload): Likewise.
3251         (combine_reloads): Likewise.
3252         * reload1.c (reload_as_needed): Likewise.
3253         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
3254         * ifcvt.c (noce_process_if_block, check_cond_move_block,
3255         dead_or_predicable): Likewise.
3256         * regmove.c (optimize_reg_copy_1): Likewise.
3257         * calls.c (prepare_call_address): Likewise.
3258         (precompute_register_parameters): Likewise.
3259
3260         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
3261         hook definition.
3262         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
3263         implementation of the hook that considers all register classes
3264         small except for SH64.
3265         (sh_override_options): Use the new hook.
3266         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
3267         Add prototype.
3268
3269         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
3270         hook definition.
3271         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
3272         implementation of the hook that considers all register classes
3273         small for THUMB1.
3274         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
3275         Add prototype.
3276
3277         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
3278         hook definition.
3279         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
3280         implementation of the hook that considers all register classes
3281         small for MIPS16.
3282         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
3283         Add prototype.
3284
3285         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
3286         hook definition.
3287         * config/m32c/m32c.h: Likewise.
3288         * config/pdp11/pdp11.h: Likewise.
3289         * config/avr/avr.h: Likewise.
3290         * config/xtensa/xtensa.h: Likewise.
3291         * config/m68hc11/m68hc11.h: Likewise.
3292         * config/mn10300/mn10300.h: Likewise.
3293         * config/mcore/mcore.h: Likewise.
3294         * config/h8300/h8300.h: Likewise.
3295         * config/bfin/bfin.h: Likewise.
3296
3297         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
3298         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
3299
3300 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
3301
3302         * double-int.h (tree_to_double_int): Remove macro.
3303         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
3304         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3305         (tree_to_double_int): New function.
3306         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
3307         Move ...
3308         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
3309
3310 2010-05-03  Richard Guenther  <rguenther@suse.de>
3311
3312         PR tree-optimization/43971
3313         * tree-ssa-structalias.c (get_constraint_for_1): Fix
3314         constraints in the !flag_delete_null_pointer_checks case.
3315
3316 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
3317
3318         PR debug/43972
3319         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
3320         result mode matches original rtl mode.
3321
3322 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
3323
3324         PR target/43888
3325         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
3326
3327 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3328
3329         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
3330         when processing flag options.
3331
3332 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3333
3334         * gcov-iov.c (main): Change format string placeholder
3335         from %#08x to 0x%08x.
3336         * genchecksum.c (dosum): Change format string placeholder
3337         from %#02x to 0x%02x.
3338
3339 2010-05-02  Richard Guenther  <rguenther@suse.de>
3340
3341         PR tree-optimization/43879
3342         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
3343
3344 2010-05-02  Bruno Haible  <bruno@clisp.org>
3345
3346         * doc/extend.texi (Function Attributes): Fix a typo.
3347
3348 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3349
3350         Revert:
3351         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
3352         placeholder from 0x%x to %#x.
3353         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3354         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
3355         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
3356         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
3357         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
3358         * config/i386/i386.c (ix86_target_string): Ditto.
3359         * config/i386/i386.c (output_pic_addr_const): Ditto.
3360         (print_operand): Ditto.
3361
3362 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
3363
3364         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
3365         placeholder from 0x%x to %#x.
3366         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
3367         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
3368         (ASM_OUTPUT_DEBUG_DATA): Ditto.
3369         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
3370         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
3371         * optc-gen.awk: Ditto.
3372         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
3373         (HOST_WIDE_INT_PRINT_HEX): Ditto.
3374         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
3375         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
3376
3377 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3378
3379         * target.h (struct calls): Add function_value_regno_p field.
3380         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3381         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
3382         * targhooks.c (default_function_value_regno_p): New function.
3383         * targhooks.h (default_function_value_regno_p): Declare function.
3384         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
3385         * builtins.c. (apply_result_size): (Ditto.).
3386         * combine.c. (likely_spilled_retval_p): (Ditto.).
3387         * mode-switching.c. Include 'target.h'.
3388         (create_pre_exit): Use function_value_regno_p hook.
3389         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
3390         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
3391         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
3392
3393         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
3394         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
3395         (ix86_function_value_regno_p): Declare as static, change argument
3396         type to const unsigned int.
3397         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
3398
3399 2010-05-01  Richard Guenther  <rguenther@suse.de>
3400
3401         PR tree-optimization/43949
3402         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
3403         types.
3404         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
3405
3406 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
3407
3408         * rtl.h (CONST_DOUBLE_P): Define.
3409         (rtx_to_double_int): Declare.
3410         * emit-rtl.c (rtx_to_double_int): New function.
3411         * dwarf2out.c (insert_double): New function.
3412         (loc_descriptor, add_const_value_attribute): Clean up, use
3413         rtx_to_double_int and insert_double functions.
3414
3415 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
3416
3417         * doc/extend.texi (Inline): Add missing return keyword to examples.
3418         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
3419         "command-line".
3420
3421 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
3422
3423         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
3424         the variable part of the offset as well.  Use highest_pow2_factor for
3425         all alignment checks.
3426
3427 2010-04-30  Richard Guenther  <rguenther@suse.de>
3428
3429         PR tree-optimization/43879
3430         * tree-ssa-structalias.c (type_could_have_pointers): Functions
3431         can have pointers.
3432
3433 2010-04-30  Jan Hubicka  <jh@suse.cz>
3434
3435         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
3436         varpool.
3437         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
3438
3439 2010-04-30  Jan Hubicka  <jh@suse.cz>
3440
3441         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
3442         New.
3443         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
3444         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
3445         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
3446         cgraph_node_set_needs_ltrans_p): Remove.
3447
3448 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3449
3450         * sdbout.c: Include vec.h, do not include varray.h.
3451         (deferred_global_decls, sdbout_global_decl,
3452         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
3453         * toplev.c: Do not include varray.h.
3454         (dump_memory_report): Do not dump VARRAY statistics.
3455         * gengtype.c (open_base_file): Ignore varray.h.
3456         * Makefile.in: Update for abovementioned changes.
3457         Remove all traces of varray.c and varray.h.
3458         * varray.c: Remove file.
3459         * varray.h: Remove file.
3460
3461 2010-04-30  Jan Hubicka  <jh@suse.cz>
3462
3463         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
3464         references.
3465
3466 2010-04-30  Jan Hubicka  <jh@suse.cz>
3467
3468         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
3469         needed.
3470
3471 2010-04-30  Richard Guenther  <rguenther@suse.de>
3472
3473         * tree-ssa-structalias.c (get_constraint_for_1): Generate
3474         constraints for CONSTRUCTOR.
3475
3476 2010-04-30  Richard Guenther  <rguenther@suse.de>
3477
3478         PR lto/43946
3479         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
3480         first after all lowering passes.
3481
3482 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
3483
3484         * toplev.c: Include varray.h for statistics dumping.
3485         * tree.h: Do not declare varray_head_tag.
3486         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
3487         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
3488         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
3489         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
3490         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
3491         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
3492         c-common.c, c-common.h, reg-stack.c, basic-block.h,
3493         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
3494         include varray.h.
3495         * Makefile.in: Update for abovementioned changes.
3496
3497 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
3498
3499         PR debug/43942
3500         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
3501
3502 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3503
3504         * config/picochip/picochip.c (picochip_legitimize_address): Define.
3505         Use this function to do machine-specific conversion.
3506         (picochip_legitimize_reload_address): Likewise.
3507         (picochip_legitimate_address_p): Check valid base register only if
3508         strict.
3509         (picochip_check_conditional_copy): Check for modw only if opnd is
3510         register.
3511         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
3512         to call the function in c.
3513         * config/picochip/picochip-protos.h
3514         (picochip_legitimize_reload_address): Define.
3515         * config/picochip/picochip.md (supported_compare1): Define.
3516
3517 2010-04-30  Jan Hubicka  <jh@suse.cz>
3518
3519         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
3520         (cgraph_global_info): Remove inlined.
3521         (LTO_cgraph_tag_names): Remove.
3522         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
3523         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
3524         simplify cgraph tags and document.
3525         (lto_output_node): Use only LTO_cgraph_unavail_node and
3526         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
3527         for_functions_valid, global info, process and output flags.
3528         (input_overwrite_node): Initialize estimated stack size and
3529         estimated growth.  Do not read flags we no longer store.
3530         (input_node): Likewise do not read info no longer stored.
3531         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
3532         flag.
3533
3534 2010-04-30  Richard Guenther  <rguenther@suse.de>
3535
3536         PR tree-optimization/43879
3537         * tree-ssa-structalias.c (get_constraint_for_1): Properly
3538         handle non-zero initializers.
3539
3540 2010-04-30  Richard Guenther  <rguenther@suse.de>
3541
3542         * builtins.c (fold_builtin_1): Delete free (0).
3543
3544 2010-04-29  Jan Hubicka  <jh@suse.cz>
3545
3546         * gengtype.c (open_base_files): Add lto-streamer.h
3547         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
3548         (pass_ipa_cp): GGC collect.
3549         * toplev. (compile_file): Do not output symbols.
3550         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
3551         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
3552         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
3553         * lto-section-in.c: Include ggc.h
3554         (lto_new_in_decl_state): Alloc in GGC.
3555         (lto_delete_in_decl_state): Likewise.
3556         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
3557         Collect.
3558
3559 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3560
3561         PR target/42895
3562         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
3563         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
3564         (HONOR_REG_ALLOC_ORDER): Describe new macro.
3565         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
3566         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
3567         account only if HONOR_REG_ALLOC_ORDER is not defined.
3568         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
3569         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
3570
3571 2010-04-29  Jon Grant  <04@jguk.org>
3572
3573         * collect2.c (vflag): Change type from int to bool.
3574         (debug): Likewise.
3575         (helpflag): New global bool.
3576         (main): Set vflag and debug with boolean, not integer truth values.
3577         Accept new "--help" option and output usage text if found.
3578         * collect2.h (vflag): Update prototype.
3579         (debug): Likewise.
3580
3581 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3582
3583         PR bootstrap/43936
3584         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
3585
3586 2010-04-29  Richard Guenther  <rguenther@suse.de>
3587
3588         PR bootstrap/43935
3589         * plugin.h (invoke_plugin_callbacks): Annotate arguments
3590         with ATTRIBUTE_UNUSED.
3591
3592 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
3593
3594         PR target/43921
3595         * config/i386/i386.c (get_some_local_dynamic_name): Replace
3596         INSN_P with NONDEBUG_INSN_P.
3597         (distance_non_agu_define): Likewise.
3598         (distance_agu_use): Likewise.
3599
3600 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
3601
3602         From Dominique d'Humieres <dominiq@lps.ens.fr>
3603         PR bootstrap/43858
3604         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
3605         test_set.
3606
3607 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
3608
3609         * plugin.h (invoke_plugin_callbacks): New inline function.
3610         * plugin.c (flag_plugin_added): New global flag.
3611         (add_new_plugin): Initialize above flag.
3612         (invoke_plugin_callbacks): Rename to ...
3613         (invoke_plugin_callbacks_full): ... this.
3614
3615 2010-04-28  Jan Hubicka  <jh@suse.cz>
3616
3617         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
3618         (lto_varpool_replace_node): New.
3619         (lto_symtab_resolve_symbols): Resolve varpool nodes.
3620         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
3621         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
3622         * cgraph.h (varpool_node_ptr): New type.
3623         (varpool_node_ptr): New vector.
3624         (varpool_node_set_def): New structure.
3625         (varpool_node_set): New type.
3626         (varpool_node_set): New vector.
3627         (varpool_node_set_element_def): New structure.
3628         (varpool_node_set_element, const_varpool_node_set_element): New types.
3629         (varpool_node_set_iterator): New type.
3630         (varpool_node): Add prev pointers, add used_from_other_partition,
3631         in_other_partition.
3632         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
3633         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
3634         varpool_get_node, varpool_remove_node): Declare.
3635         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
3636         varpool_node_set_size): New inlines.
3637         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
3638         * tree-pass.h (varpool_node_set_def): Forward declare.
3639         (ipa_opt_pass_d): Summary writting takes vnode sets too.
3640         (ipa_write_optimization_summaries): Update prototype.
3641         * ipa-cp.c (ipcp_write_summary): Update.
3642         * ipa-reference.c (ipa_reference_write_summary): Update.
3643         * lto-cgraph.c (lto_output_varpool_node): New static function.
3644         (output_varpool): New function.
3645         (input_varpool_node): New static function.
3646         (input_varpool_1): New function.
3647         (input_cgraph): Input varpool.
3648         * ipa-pure-const.c (pure_const_write_summary): Update.
3649         * lto-streamer-out.c (lto_output): Update, output varpool too.
3650         (write_global_stream): Kill WPA hack.
3651         (produce_asm_for_decls): Update.
3652         (output_alias_pair_p): Handle variables.
3653         (output_unreferenced_globals): Output only needed partition of varpool.
3654         * ipa-inline.c (inline_write_summary): Update.
3655         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
3656         cgraph.
3657         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
3658         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
3659         varpool_node_set_new, varpool_node_set_add,
3660         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
3661         debug_varpool_node_set): New functions.
3662         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
3663         (execute_one_pass): Process new decls too.
3664         (ipa_write_summaries_2): Pass around vsets.
3665         (ipa_write_summaries_1): Likewise.
3666         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
3667         to add.
3668         (ipa_write_optimization_summaries_1): Pass around vsets.
3669         (ipa_write_optimization_summaries): Likewise.
3670         * varpool.c (varpool_get_node): New.
3671         (varpool_node): Update doubly linked lists.
3672         (varpool_remove_node): New.
3673         (dump_varpool_node): More dumping.
3674         (varpool_enqueue_needed_node): Update doubly linked lists.
3675         (decide_is_variable_needed): Kill ltrans hack.
3676         (varpool_finalize_decl): Kill lto hack.
3677         (varpool_assemble_decl): Skip decls in other partitions.
3678         (varpool_assemble_pending_decls): Update doubly linkes lists.
3679         (varpool_empty_needed_queue): Likewise.
3680         (varpool_extra_name_alias): Likewise.
3681         * lto-streamer.c (lto_get_section_name): Add vars section.
3682         * lto-streamer.h (lto_section_type): Update.
3683         (output_varpool, input_varpool): Declare.
3684
3685 2010-04-28  Mike Stump  <mikestump@comcast.net>
3686
3687         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
3688
3689 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3690
3691         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
3692         record or union type with RECORD_OR_UNION_TYPE_P predicate.
3693         (lto_input_ts_type_tree_pointers): Likewise.
3694         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
3695         (lto_output_ts_type_tree_pointers): Likewise.
3696
3697 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3698
3699         Uniquization of constants at the Tree level
3700         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
3701         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
3702         bit to the end.
3703         (tree_output_constant_def): Declare.
3704         * gimplify.c (gimplify_init_constructor): When using block copy, first
3705         uniquize the constant constructor on the RHS.
3706         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
3707         DECL_IN_CONSTANT_POOL flag.
3708         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
3709         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
3710         constant pool.
3711         (assemble_variable): Deal with symbols belonging to the tree constant
3712         pool.
3713         (get_constant_section): Add ALIGN parameter and simplify.
3714         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
3715         (assemble_constant_contents): Use the expression of the VAR_DECL.
3716         (output_constant_def_contents): Use the alignment of the VAR_DECL.
3717         (tree_output_constant_def): New global function.
3718         (mark_constant): Use the expression of the VAR_DECL.
3719         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
3720         its expression.
3721         (output_object_block): Likewise and assemble the expression.
3722
3723 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
3724
3725         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
3726         hash_tree, eq_tree): New tree hash table.
3727         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
3728         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
3729         lto_orig_address_remove): Reimplement.
3730
3731 2010-04-28  Xinliang David Li  <davidxl@google.com>
3732
3733         PR c/42643
3734         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
3735         (compute_uninit_opnds_pos): New function.
3736         (is_non_loop_exit_postdominating): New function.
3737         (compute_control_dep_chain): New function.
3738         (find_pdom): New function.
3739         (convert_control_dep_chain_into_preds): New function.
3740         (find_predicates): New function.
3741         (find_control_equiv_block): New function.
3742         (collect_phi_def_edges): New function.
3743         (find_def_preds): New function.
3744         (find_dom): New function.
3745         (dump_predicates): New function.
3746         (get_cmp_code): New function.
3747         (is_value_included_in): New function.
3748         (find_matching_predicate_in_rest_chains): New function.
3749         (use_pred_not_overlap_with_undef_path_pred): New function.
3750         (is_use_properly_guarded): New function.
3751         (normalize_cond_1): New function.
3752         (is_and_or_or): New function.
3753         (normalize_cond): New function.
3754         (is_gcond_subset_of): New function.
3755         (is_subset_of_any): New function.
3756         (is_or_set_subset_of): New function.
3757         (is_and_set_subset_of): New function.
3758         (is_norm_cond_subset_of): New function.
3759         (is_pred_expr_subset_of): New function.
3760         (is_pred_chain_subset_of): New function.
3761         (is_included_in): New function.
3762         (is_superset_of): New function.
3763         (find_uninit_use): New function.
3764         (warn_uninitialized_phi): New function.
3765         (compute_possibly_undefined_names): New function.
3766         (ssa_undefined_value_p): New function.
3767         (execute_late_warn_uninitialized): New function.
3768         * tree-ssa.c (ssa_undefined_value_p): Removed.
3769         (warn_uninit): Changed to extern.
3770         (warn_uninitialized_phi): Removed.
3771         (warn_uninitialized_vars): Changed to extern.
3772         (execute_late_warn_uninitialized): Removed
3773         * tree-flow.h: Add new prototypes.
3774         * timevar.def: Add new time variable.
3775         * Makefile.in: Add new build file.
3776
3777 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
3778
3779         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
3780         type if available.
3781
3782 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3783
3784         PR target/22224
3785         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
3786
3787 2010-04-28  Martin Jambor  <mjambor@suse.cz>
3788
3789         * cgraph.h (struct cgraph_node): New field indirect_calls.
3790         (struct cgraph_indirect_call_info): New type.
3791         (struct cgraph_edge): Removed field indirect_call. New fields
3792         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
3793         (cgraph_create_indirect_edge): Declare.
3794         (cgraph_make_edge_direct): Likewise.
3795         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
3796         * ipa-prop.h (struct ipa_param_call_note): Removed.
3797         (struct ipa_node_params): Removed field param_calls.
3798         (ipa_create_all_structures_for_iinln): Declare.
3799         * cgraph.c: Described indirect edges and uids in initial comment.
3800         (cgraph_add_edge_to_call_site_hash): New function.
3801         (cgraph_edge): Search also among the indirect edges, use
3802         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
3803         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
3804         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
3805         site hash.
3806         (initialize_inline_failed): Assign a reason to indirect edges.
3807         (cgraph_create_edge_1): New function.
3808         (cgraph_create_edge): Moved some functionality to
3809         cgraph_create_edge_1.
3810         (cgraph_create_indirect_edge): New function.
3811         (cgraph_edge_remove_callee): Add an assert checking for
3812         non-indirectness.
3813         (cgraph_edge_remove_caller): Special-case indirect edges.
3814         (cgraph_remove_edge): Likewise.
3815         (cgraph_set_edge_callee): New function.
3816         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
3817         (cgraph_make_edge_direct): New function.
3818         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
3819         the declaration of the call statement matches.
3820         (cgraph_node_remove_callees): Special-case indirect edges.
3821         (cgraph_clone_edge): Likewise.
3822         (cgraph_clone_node): Clone also the indirect edges.
3823         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
3824         indirect_call, dump count of indirect_calls edges.
3825         * ipa-prop.c (iinlining_processed_edges): New variable.
3826         (ipa_note_param_call): Create indirect edges instead of
3827         creating notes.  New parameter node.
3828         (ipa_analyze_call_uses): New parameter node, pass it on to
3829         ipa_note_param_call.
3830         (ipa_analyze_stmt_uses): Likewise.
3831         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
3832         (print_edge_addition_message): Work on edges rather than on notes.
3833         (update_call_notes_after_inlining): Likewise, renamed to
3834         update_indirect_edges_after_inlining.
3835         (ipa_create_all_structures_for_iinln): New function.
3836         (ipa_free_node_params_substructures): Do not free notes.
3837         (ipa_edge_duplication_hook): Propagate bits within
3838         iinlining_processed_edges bitmap.
3839         (ipa_node_duplication_hook): Do not duplicate notes.
3840         (free_all_ipa_structures_after_ipa_cp): Renamed to
3841         ipa_free_all_structures_after_ipa_cp.
3842         (free_all_ipa_structures_after_iinln): Renamed to
3843         ipa_free_all_structures_after_iinln.
3844         (ipa_write_param_call_note): Removed.
3845         (ipa_read_param_call_note): Removed.
3846         (ipa_write_indirect_edge_info): New function.
3847         (ipa_read_indirect_edge_info): Likewise.
3848         (ipa_write_node_info): Do not stream notes, do stream information
3849         in indirect edges.
3850         (ipa_read_node_info): Likewise.
3851         (lto_ipa_fixup_call_notes): Removed.
3852         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
3853         * ipa-inline.c (pass_ipa_inline): Likewise.
3854         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
3855         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
3856         * tree-inline.c (copy_bb): Removed an unnecessary double check for
3857         is_gimple_call.
3858         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
3859         edges.
3860         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
3861         (output_cgraph): Stream also indirect edges.
3862         (lto_output_edge): Added capability to stream indirect edges.
3863         (input_edge): Likewise.
3864         (input_cgraph_1): Likewise.
3865         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
3866         of indirect edges.
3867
3868 2010-04-28  Richard Guenther  <rguenther@suse.de>
3869
3870         PR tree-optimization/43879
3871         PR tree-optimization/43909
3872         * tree-ssa-structalias.c (struct variable_info): Add
3873         only_restrict_pointers flag.
3874         (new_var_info): Initialize it.  Increment stats.total_vars here.
3875         (create_function_info_for): Do not increment stats.total_vars here.
3876         (get_function_part_constraint): Fix build with C++.
3877         (insert_into_field_list): Remove.
3878         (push_fields_onto_fieldstack): Properly merge fields.
3879         (create_variable_info_for): Split and simplify.
3880         (create_variable_info_for_1): New piece.
3881         (intra_create_variable_infos): Properly make restrict constraints
3882         from parameters.
3883
3884 2010-04-28  Richard Guenther  <rguenther@suse.de>
3885
3886         PR c++/43880
3887         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
3888
3889 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3890             Jan Hubicka <hubicka@ucw.cz>
3891
3892         * doc/invoke.texi (-Wsuggest-attribute=const,
3893         -Wsuggest-attribute=pure): Document.
3894         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
3895         (function_always_visible_to_compiler_p,
3896         suggest_attribute, warn_function_pure, warn_function_const):
3897         New functions.
3898         (check_call): Improve debug info.
3899         (analyze_function): Do not check availability.
3900         (add_new_function): Check availability.
3901         (propagate): Output warnings.
3902         (skip_function_for_local_pure_const): New function.
3903         (local_pure_const): Use it; output warnings.
3904         * common.opt (Wsuggest-attribute=const,
3905         Wsuggest-attribute=pure): New.
3906
3907 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3908
3909         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
3910         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
3911         or DW_CFA_def_cfa_offset{,_sf}.
3912
3913 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3914
3915         * tree.h: Fix truncated long macros.
3916
3917 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
3918
3919         * collect2.c (TARGET_64BIT): Redefine to target's default.
3920         * tlink.c: Likewise.
3921         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
3922         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
3923         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
3924         for underscoring __USER_LABEL_PREFIX__.
3925         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
3926         (SUB_LINK_ENTRY32): New.
3927         (SUB_LINK_ENTRY64): New.
3928         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
3929         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
3930         (SUB_LINK_ENTRY64): New.
3931         (SUB_LINK_ENTRY): New.
3932         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
3933         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
3934         x64 target is choosen.
3935         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
3936         * configure: Regenerated.
3937         * configure.ac (leading-mingw64-underscores): Option added.
3938
3939 2010-04-27  Jan Hubicka  <jh@suse.cz>
3940
3941         * doc/invoke.texi (-fipa-profile): Document.
3942         * opts.c (decode_options): Enable ipa-profile at -O1.
3943         * timevar.def (TV_IPA_PROFILE): Define.
3944         * common.opt (fipa-profile): Add.
3945         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
3946         flag for clones.
3947         (cgraph_propagate_frequency): Handle only local ones.
3948         * tree-pass.h (pass_ipa_profile): Declare.
3949         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
3950         (pass_ipa_profile): Use TV_IPA_PROFILE.
3951         * ipa.c (ipa_profile): New function.
3952         (gate_ipa_profile): Likewise.
3953         (pass_ipa_profile): New global variable.
3954         * passes.c (pass_ipa_profile): New.
3955
3956 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
3957
3958         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
3959
3960 2010-04-27  Martin Jambor  <mjambor@suse.cz>
3961
3962         PR middle-end/43812
3963         * ipa.c (dissolve_same_comdat_group_list): New function.
3964         (function_and_variable_visibility): Call
3965         dissolve_same_comdat_group_list when comdat group contains external or
3966         newly local nodes.
3967         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
3968         lists are circular and that they contain only DECL_ONE_ONLY nodes.
3969
3970 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
3971
3972         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
3973         (const_hash_1) <VECTOR_CST>: New case.
3974         (compare_constant) <VECTOR_CST>: Likewise.
3975         <ADDR_EXPR>: Deal with LABEL_REFs.
3976         (copy_constant) <VECTOR_CST>: New case.
3977
3978 2010-04-27  Jan Hubicka  <jh@suse.cz>
3979
3980         * cgraph.c (cgraph_propagate_frequency): New function.
3981         * cgraph.h (cgraph_propagate_frequency): Declare.
3982         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
3983         cgraph_propagate_frequency.
3984
3985 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
3986
3987         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
3988
3989 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
3990
3991         PR target/40657
3992         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
3993         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
3994         here to determine which regs to push and how much stack to reserve.
3995
3996 2010-04-27  Jie Zhang  <jie@codesourcery.com>
3997
3998         * doc/gimple.texi (gimple_statement_with_ops): Remove
3999         addresses_taken field.
4000         (gimple_statement_with_memory_ops): Likewise.
4001
4002 2010-04-27  Jan Hubicka  <jh@suse.cz>
4003
4004         * tree-inline.c (eni_inlining_weights): Remove.
4005         (estimate_num_insns): Special case more builtins.
4006
4007 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
4008
4009         PR c/32207
4010         * c-typeck.c (build_binary_op): Move forward check for comparison
4011         pointer with null pointer constant and adjust the diagnostic message.
4012
4013 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
4014
4015         PR lto/42776
4016         * configure.ac (gcc_cv_as_section_has_align): Set if installed
4017         binutils supports extended .section directive needed by LTO, or
4018         warn if older binutils found.
4019         (LTO_BINARY_READER): New AC_SUBST'd variable.
4020         (LTO_USE_LIBELF): Likewise.
4021         * gcc/config.gcc (lto_binary_reader): New target-specific configure
4022         variable.
4023         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
4024         (LTO_USE_LIBELF): Likewise.
4025         * configure: Regenerate.
4026
4027         * collect2.c (is_elf): Rename from this ...
4028         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
4029          object files in addition to ELF-formatted ones.
4030         (scan_prog_file): Caller updated.  Also allow for LTO info marker
4031         symbol to be prefixed or not by an extra underscore.
4032
4033         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
4034         * config/i386/winnt.c: Also #include lto-streamer.h
4035         (i386_pe_asm_named_section): Specify 1-byte section alignment for
4036         LTO named sections.
4037         (i386_pe_asm_output_aligned_decl_common): Add comment.
4038         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
4039
4040 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
4041
4042         PR target/43889
4043         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
4044         Add missing earlyclobber for second alternative.
4045
4046 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
4047
4048         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
4049         bits for artificial defs at the top of the block.
4050         * fwprop.c (single_def_use_enter_block): Don't call it.
4051
4052 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
4053
4054         PR 43715
4055         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
4056         instead of "$gcc_cv_objdump -T".
4057         Use "-undefined dynamic_lookup" on darwin.
4058         * gcc/configure: Regenerate.
4059
4060 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
4061
4062         PR c/43893
4063         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
4064
4065 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4066
4067         * c-parser.c (struct c_token): Move location field up.
4068         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
4069         (struct c_declspecs): Convert typespec_word, storage_class, and
4070         default_int_p into bitfields.
4071         (struct c_declarator): Move loc field up.
4072
4073 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
4074
4075         * cfgloop.h (struct loop): Move can_be_parallel field up.
4076         * ipa-prop.h (struct ip_node_params): Move bitfields up.
4077         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
4078         down.
4079         (struct iv_cand): Convert pos field into a bitfield.
4080         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
4081         field up.
4082         (struct _stmt_vec_info): Shuffle fields for better packing.
4083
4084 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4085
4086         * varasm.c (IN_NAMED_SECTION): Remove guard.
4087         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
4088         (IN_NAMED_SECTION_P): ...this.
4089         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
4090         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
4091
4092 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
4093
4094         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
4095         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
4096         of shadowing it.  Fix comments.
4097
4098 2010-04-26  Jan Hubicka  <jh@suse.cz>
4099
4100         * cgraph.c (cgraph_create_node): Set node frequency to normal.
4101         (cgraph_clone_node): Copy function frequency.
4102         * cgraph.h (node_frequency): New enum
4103         (struct cgraph_node): Add.
4104         * final.c (rest_of_clean_state): Update.
4105         * lto-cgraph.c (lto_output_node): Output node frequency.
4106         (input_overwrite_node): Input node frequency.
4107         * tre-ssa-loop-ivopts (computation_cost): Update.
4108         * lto-streamer-out.c (output_function): Do not output function
4109         frequency.
4110         * predict.c (maybe_hot_frequency_p): Update and handle functions
4111         executed once.
4112         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
4113         attribute lookup.
4114         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
4115         (compute_function_frequency): Set noreturn functions to be executed
4116         once.
4117         (choose_function_section): Update.
4118         * lto-streamer-in.c (input_function): Do not input function frequency.
4119         * function.c (allocate_struct_function): Do not initialize function
4120         frequency.
4121         * function.h (function_frequency): Remove.
4122         (struct function): Remove function frequency.
4123         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
4124         (try_update): Update.
4125         * tree-inline.c (initialize_cfun): Do not update function frequency.
4126         * passes.c (pass_init_dump_file): Update.
4127         * i386.c (ix86_compute_frame_layout): Update.
4128         (ix86_pad_returns): Update.
4129
4130 2010-04-26  Jie Zhang  <jie@codesourcery.com>
4131
4132         PR tree-optimization/43833
4133         * tree-vrp.c (range_int_cst_p): New.
4134         (range_int_cst_singleton_p): New.
4135         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
4136         when both operands are constants.  Use range_int_cst_p in
4137         BIT_IOR_EXPR case.
4138
4139 2010-04-26  Jan Hubicka  <jh@suse.cz>
4140
4141         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
4142
4143 2010-04-26  Richard Guenther  <rguenther@suse.de>
4144
4145         PR lto/43080
4146         * gimple.c (gimple_decl_printable_name): Deal gracefully
4147         with a NULL DECL_NAME.
4148
4149 2010-04-26  Richard Guenther  <rguenther@suse.de>
4150
4151         PR lto/42425
4152         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
4153         if emitting debug information and it is either a function
4154         or a namespace decl.
4155
4156 2010-04-26  Ira Rosen  <irar@il.ibm.com>
4157
4158         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
4159         determine if the statement is vectorizable, and a macro to access it.
4160         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
4161         Skip statements that can't be vectorized. If the analysis fails,
4162         mark the statement as unvectorizable if vectorizing basic block.
4163         (vect_compute_data_refs_alignment): Likewise.
4164         (vect_verify_datarefs_alignment): Skip statements marked as
4165         unvectorizable. Add print.
4166         (vect_analyze_group_access): Skip statements that can't be
4167         vectorized. If the analysis fails, mark the statement as
4168         unvectorizable if vectorizing basic block.
4169         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
4170         * tree-vect-stmts.c (vectorizable_store): Fix the number of
4171         generated stmts for SLP.
4172         (new_stmt_vec_info): Initialize the new field.
4173         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
4174         statements marked as unvectorizable.
4175
4176 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
4177
4178         * c-common.c (flag_isoc1x): New.
4179         (flag_isoc99): Update comment.
4180         * c-common.h (flag_isoc1x): New.
4181         (flag_isoc99): Update comment.
4182         * c-cppbuiltin.c (builtin_define_float_constants): Also define
4183         __<type>_DECIMAL_DIG__.
4184         * c-opts.c (set_std_c1x): New.
4185         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
4186         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
4187         * c.opt (-std=c1x, -std=gnu1x): New options.
4188         * doc/cpp.texi: Mention -std=c1x.
4189         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
4190         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
4191         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
4192         * doc/standards.texi: Mention C1X.
4193         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
4194         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
4195         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
4196         Define for C1X.
4197
4198 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
4199
4200         * config/i386/gmon-sol2.c (_mcleanup): Change format string
4201         placeholder from 0x%x to %#x.
4202         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
4203         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
4204         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
4205         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
4206         * config/i386/i386.c (ix86_target_string): Ditto.
4207         (output_pic_addr_const): Ditto.
4208         (print_operand): Ditto.
4209
4210 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
4211
4212         * combine.c (find_split_point): Add third argument.  Use it
4213         to find nested multiply-accumulate instructions.  Adjust calls.
4214         (try_combine): Adjust call to find_split_point.
4215
4216 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
4217
4218         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
4219
4220 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
4221
4222         PR tree-optimization/41442
4223         * fold-const.c (merge_truthop_with_opposite_arm): New function.
4224         (fold_binary_loc): Call it.
4225
4226 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4227
4228         * toplev.c (general_init): Set default for fdiagnostics-show-option.
4229         * opts.c (common_handle_option): Allow disabling it.
4230         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
4231
4232 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4233
4234         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
4235         between modes if both types are integral.
4236
4237 2010-04-23  Richard Guenther  <rguenther@suse.de>
4238
4239         PR tree-optimization/43572
4240         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
4241
4242 2010-04-23  Richard Guenther  <rguenther@suse.de>
4243
4244         PR lto/43455
4245         * tree-inline.c (tree_can_inline_p): Also check compatibility
4246         of return types.
4247
4248 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4249
4250         PR tree-optimization/43846
4251         * tree-sra.c (struct access): New flag grp_assignment_read.
4252         (build_accesses_from_assign): Set grp_assignment_read.
4253         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
4254         (enum mark_read_status): New type.
4255         (analyze_access_subtree): Propagate grp_assignment_read, create
4256         accesses also if both direct_read and root->grp_assignment_read.
4257
4258 2010-04-23  Martin Jambor  <mjambor@suse.cz>
4259
4260         PR middle-end/43835
4261         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
4262         function does not have type attributes.
4263
4264 2010-04-23  Richard Guenther  <rguenther@suse.de>
4265
4266         PR lto/42653
4267         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
4268         of FUNCTION_DECLs.
4269
4270 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4271
4272         * sese.h (create_if_region_on_edge): Remove.
4273
4274         * sese.c (create_if_region_on_edge): Make static.
4275
4276         * tree-inline.c: Do not include ggc.h.
4277
4278         * expr.c: Do not include ggc.h.
4279
4280         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
4281         dependencies.
4282
4283 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
4284
4285         PR target/43744
4286         * config/sh/sh.c (find_barrier): Don't emit a constant pool
4287         in the middle of insns for casesi_worker_2.
4288
4289 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
4290
4291         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
4292
4293 2010-04-22  Ira Rosen  <irar@il.ibm.com>
4294
4295         PR tree-optimization/43842
4296         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
4297         loop unrolling in update of exit phis. Fix comment.
4298         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
4299         least two reduction statements in the loop before starting SLP
4300         analysis.
4301
4302 2010-04-22  Nick Clifton  <nickc@redhat.com>
4303
4304         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
4305
4306 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
4307
4308         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
4309         to simplify a + ~a.
4310
4311 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4312
4313         * tree-parloops.c (loop_parallel_p): New argument
4314         parloop_obstack.  Pass it down.
4315         (parallelize_loops): New variable parloop_obstack.  Initialize it,
4316         pass it down, free it.
4317
4318         * tree-loop-linear.c (linear_transform_loops): Pass down
4319         lambda_obstack.
4320
4321         * tree-data-ref.h (lambda_compute_access_matrices): New argument
4322         of type struct obstack *.
4323
4324         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
4325         scratch_obstack.  Initialize it, pass down, free it.
4326
4327         * lambda.h (lambda_loop_new): Remove.
4328         (lambda_matrix_new, lambda_matrix_inverse)
4329         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
4330         argument of type struct obstack *.
4331
4332         * lambda-trans.c (lambda_trans_matrix_new): New argument
4333         lambda_obstack.  Pass it down, use obstack allocation for ret.
4334         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
4335         it down.
4336
4337         * lambda-mat.c (lambda_matrix_get_column)
4338         (lambda_matrix_project_to_null): Remove.
4339         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
4340         allocation for mat.
4341         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
4342         lambda_obstack.
4343
4344         * lambda-code.c (lambda_loop_new): New function.
4345         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
4346         (lambda_compute_auxillary_space, lambda_compute_target_space)
4347         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
4348         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
4349         (build_access_matrix): New argument lambda_obstack.  Use obstack
4350         allocation for am.
4351         (lambda_compute_step_signs, lambda_compute_access_matrices): New
4352         argument lambda_obstack.  Pass it down.
4353
4354 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4355
4356         * optabs.h (expand_widening_mult): Declare.
4357
4358 2010-04-22  Richard Guenther  <rguenther@suse.de>
4359
4360         PR tree-optimization/43845
4361         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
4362         lookup the CALL_EXPR function and arguments.
4363
4364 2010-04-22  Nick Clifton  <nickc@redhat.com>
4365
4366         * config/stormy16/stormy16.c
4367         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
4368         * config/stormy16/stormy16.h: Tidy up formatting.
4369         (DONT_USE_BUILTIN_SETJMP): Remove definition.
4370         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
4371         (ineqbranchsi): Delete pattern.
4372         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
4373         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
4374         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
4375         stormy16-lib2-ucmpsi2.c.
4376
4377 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4378
4379         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
4380         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
4381         extra set merge_set_noclobber, and use it to relax the final test
4382         slightly.
4383         * df.h (df_simulate_find_noclobber_defs): Declare.
4384         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
4385         conditional defs.
4386         (df_simulate_find_noclobber_defs): New function.
4387
4388 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
4389
4390         * config/i386/i386.md: Use {} around multi-line preparation statements.
4391
4392 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4393
4394         * c-tree.h (push_init_level, pop_init_level, set_init_index)
4395         (process_init_element): New argument of type struct obstack *.
4396
4397         * c-typeck.c (push_init_level, pop_init_level, set_designator)
4398         (set_init_index, set_init_label, set_nonincremental_init)
4399         (set_nonincremental_init_from_string, find_init_member)
4400         (output_init_element, output_pending_init_elements)
4401         (process_init_element): New argument braced_init_obstack.  Pass it
4402         down.
4403         (push_range_stack, add_pending_init): New argument
4404         braced_init_obstack.  Use obstack allocation.
4405
4406         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
4407         braced_init_obstack.  Pass it down.
4408         (c_parser_braced_init): New variables ret, braced_init_obstack.
4409         Initialize obstack, pass it down and finally free it.
4410
4411 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
4412
4413         PR middle-end/29274
4414         * tree-pass.h (pass_optimize_widening_mul): Declare.
4415         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
4416         gate_optimize_widening_mul): New static functions.
4417         (pass_optimize_widening_mul): New.
4418         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
4419         <case MULT_EXPR>: Remove support for widening multiplies.
4420         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
4421         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
4422         simplify_gen_unary rather than directly building extensions.
4423         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
4424         WIDEN_MULT_EXPR.
4425         * expmed.c (expand_widening_mult): New function.
4426         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
4427
4428 2010-04-21  Jan Hubicka  <jh@suse.cz>
4429
4430         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
4431         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
4432         * lto-wpa-fixup.c: Remove.
4433         * Makefile.in (lto-wpa-fixup.o): Remove.
4434         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
4435         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
4436         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
4437
4438 2010-04-21  Jan Hubicka  <jh@suse.cz>
4439
4440         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
4441         add write_optimization_summary, read_optimization_summary.
4442         (ipa_write_summaries_of_cgraph_node_set): Remove.
4443         (ipa_write_optimization_summaries): Declare.
4444         (ipa_read_optimization_summaries): Declare.
4445         * ipa-cp.c (pass_ipa_cp): Update.
4446         * ipa-reference.c (pass_ipa_reference): Update.
4447         * ipa-pure-const.c (pass_ipa_pure_const): Update.
4448         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
4449         Update.
4450         * ipa-inline.c (pass_ipa_inline): Update.
4451         * ipa.c (pass_ipa_whole_program): Update.
4452         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
4453         * passes.c (ipa_write_summaries_1): Do not test wpa.
4454         (ipa_write_optimization_summaries_1): New.
4455         (ipa_write_optimization_summaries): New.
4456         (ipa_read_summaries): Do not test ltrans.
4457         (ipa_read_optimization_summaries_1): New.
4458         (ipa_read_optimization_summaries): New.
4459
4460 2010-04-21  Jan Hubicka  <jh@suse.cz>
4461
4462         * lto-cgraph.c (lto_output_node): Do not output comdat groups
4463         for boundary nodes.
4464         (output_cgraph): Do not arrange comdat groups for boundary nodes.
4465
4466 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4467
4468         PR debug/40040
4469         * dwarf2out.c (add_name_and_src_coords_attributes): Add
4470         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
4471
4472 2010-04-21  Jan Hubicka  <jh@suse.cz>
4473
4474         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
4475
4476 2010-04-21  Jan Hubicka  <jh@suse.cz>
4477
4478         * varpool.c (decide_is_variable_needed): Variable is always needed
4479         during ltrans.
4480
4481 2010-04-21  Jan Hubicka  <jh@suse.cz>
4482
4483         * opts.c (decode_options): Enable pure-const pass for whopr.
4484
4485 2010-04-21  Jan Hubicka  <jh@suse.cz>
4486
4487         * cgraph.c (dump_cgraph_node): Dump also assembler name.
4488         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
4489         at WPA dumping.
4490         (cgraph_decide_inlining): Do not expect callee to be removed in all
4491         cases.
4492
4493 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
4494
4495         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
4496
4497 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4498
4499         * config/i386/i386.md (x86_shrd): Add athlon_decode and
4500         amdfam10_decode attributes.
4501
4502 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4503
4504         PR middle-end/43570
4505         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
4506         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
4507         (lower_copyprivate_clauses): Use private var in outer
4508         context instead of original var.  Make sure the types
4509         are correct for VLAs.
4510
4511 2010-04-21  Richard Guenther  <rguenther@suse.de>
4512
4513         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
4514         to non-pointer objects.
4515
4516 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
4517
4518         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
4519         last chain entry if it starts with the still current label.
4520         (add_location_or_const_value_attribute): Check that
4521         loc_list->first->next is NULL instead of comparing ->first with ->last.
4522         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
4523         to add_var_loc_to_decl.
4524
4525         * dwarf2out.c (output_call_frame_info): For dw_cie_version
4526         >= 4 add also address size and segment size fields into CIE header.
4527
4528         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
4529         long as address size is the same as sizeof (void *) and
4530         segment size is 0.
4531         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
4532         address size or segment size is unexpected, return DW_EH_PE_omit.
4533         (classify_object_over_fdes): If get_cie_encoding returned
4534         DW_EH_PE_omit, return -1.
4535         (init_object): If classify_object_over_fdes returned -1,
4536         pretend there were no FDEs at all.
4537
4538 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
4539
4540         * config/i386/i386.md (bswap<mode>2): Macroize expander from
4541         bswap{si,di}2 using SWI48 mode iterator.
4542         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
4543         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
4544         set modrm attribute of bswap insn to 0 and remove length attribute.
4545         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
4546         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
4547         set mode attribute to <MODE> and remove length attribute.
4548
4549 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
4550
4551         PR rtl-optimization/43520
4552         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
4553         zero available registers.
4554
4555 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4556
4557         * builtins.c (fold_builtin_cproj): Fold more cases.
4558
4559 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4560
4561         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
4562         (fold_builtin_1): Fold builtin cproj.
4563         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
4564         Use ATTR_CONST_NOTHROW_LIST.
4565
4566 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
4567
4568         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
4569         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
4570         ffsi2_no_cmove for !TARGET_CMOVE.
4571         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
4572         (ffssi2): Remove expander.
4573         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
4574         mode iterator.
4575         (ctz<mode>2): Ditto from ctz{si,di}2.
4576         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
4577         mode iterator.
4578         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
4579         mode iterator.
4580
4581 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4582
4583         * dwarf2out.c (AT_linkage_name): Define.
4584         (clone_as_declaration): Handle DW_AT_linkage_name.
4585         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
4586         of DW_AT_MIPS_linkage_name.
4587         (move_linkage_attr): Likewise.
4588         (dwarf2out_finish): Likewise.
4589
4590 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
4591
4592         PR middle-end/41952
4593         * fold-const.c (fold_comparison): New folding rule.
4594
4595 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
4596
4597         * double-int.h (double_int_setbit): Declare.
4598         * double-int.c (double_int_setbit): New function.
4599         * rtl.h (immed_double_int_const): Declare.
4600         * emit-rtl.c (immed_double_int_const): New function.
4601         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
4602         and immed_double_int_const functions.
4603         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
4604         expand_copysign_bit):  (Ditto.).
4605         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
4606         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
4607         * dojump.c (prefer_and_bit_test): (Ditto.).
4608         * expr.c (convert_modes, reduce_to_bit_field_precision,
4609         const_vector_from_tree): (Ditto.).
4610         * expmed.c (mask_rtx, lshift_value): (Ditto.).
4611
4612 2010-04-20  Jan Hubicka  <jh@suse.cz>
4613
4614         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
4615         (dump_cgraph_node): Dump new flags.
4616         * cgraph.h (struct cgraph_node): Add flags
4617         reachable_from_other_partition and in_other_partition.
4618         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
4619         other partition can not be removed.
4620         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
4621         the other partition must be output; silence sanity checking on
4622         leaking functions bodies from other paritition.
4623         * lto-cgraph.c (reachable_from_other_partition_p): New function.
4624         (lto_output_node): Output new flags; do not sanity check that inline
4625         clones are output; drop lto_forced_extern_inline_p code; do not mock
4626         visibility flags at partition boundaries.
4627         (add_node_to): New function.
4628         (output_cgraph): Use it to sort functions so masters appear before
4629         clones.
4630         (input_overwrite_node): Input new flags.
4631         * passes.c (ipa_write_summaries): Do not call
4632         lto_new_extern_inline_states.
4633         * lto-section-out.c (forced_extern_inline,
4634         lto_new_extern_inline_states lto_delete_extern_inline_states,
4635         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
4636         * lto-streamer.h (lto_new_extern_inline_states,
4637         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
4638         lto_forced_extern_inline_p): Kill.
4639
4640 2010-04-20  Richard Guenther  <rguenther@suse.de>
4641
4642         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
4643         from vars that can have pointers.
4644         (process_constraint): Dump useless constraints.
4645
4646 2010-04-20  Richard Guenther  <rguenther@suse.de>
4647
4648         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
4649         (dump_sa_points_to_info): Remove asserts.
4650         (init_base_vars): nothing_id isn't an escape point nor does it
4651         have pointers.
4652
4653 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
4654
4655         * tree.h (TYPE_REF_IS_RVALUE): Define.
4656         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
4657         should_move_die_to_comdat, prune_unused_types_walk): Handle
4658         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
4659         (modified_type_die, gen_reference_type_die): Emit
4660         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
4661         if TYPE_REF_IS_RVALUE and -gdwarf-4.
4662
4663 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4664
4665         PR target/43635
4666         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
4667         calls for -fpic -m31 if they have been sibcall optimized.
4668
4669 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
4670
4671         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
4672         ar.lc fixed and call-used.
4673
4674         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
4675
4676 2010-04-19  Jan Hubicka  <jh@suse.cz>
4677
4678         * opts.c (decode_options): Disable whpr incompatible passes.
4679         * lto/lto.c (lto_1_to_1_map): Skip clones.
4680         (read_cgraph_and_symbols): Do not mark everything as needed.
4681         (do_whole_program_analysis): Do map only after optimizing;
4682         set proper cgraph_state; use passmanager.
4683
4684 2010-04-19  DJ Delorie  <dj@redhat.com>
4685
4686         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
4687         POINTER_PLUS_EXPR and fix them.
4688
4689 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
4690
4691         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
4692         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
4693         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
4694         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
4695         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
4696         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
4697         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
4698         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
4699         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
4700         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
4701         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
4702
4703 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
4704
4705         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
4706         (check_cond_move_block): Likewise.
4707         (cond_move_process_if_block): Likewise.
4708         (noce_find_if_block): Improve formatting.
4709         (find_if_header): Pass 0 to memset and tweak conditions.
4710         (cond_exec_find_if_block): Fix long lines and tweak conditions.
4711
4712 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4713
4714         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
4715         for -gdwarf-4.
4716
4717         PR middle-end/43337
4718         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
4719         with non-local decl doesn't need chain.
4720
4721 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
4722
4723         * ira-color.c (allocno_reload_assign): Avoid accumulating
4724         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
4725
4726 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4727
4728         * gimple.h (create_tmp_reg): Declare.
4729         * gimplify.c (create_tmp_reg): New function.
4730         (gimplify_return_expr): Use create_tmp_reg.
4731         (gimplify_omp_atomic): Likewise.
4732         (gimple_regimplify_operands): Likewise.
4733         * tree-dfa.c (make_rename_temp): Likewise.
4734         * tree-predcom.c (predcom_tmp_var): Likewise.
4735         (reassociate_to_the_same_stmt): Likewise.
4736         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
4737         (get_replaced_param_substitute): Likewise.
4738         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
4739         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
4740         * tree-ssa-pre.c (get_representative_for): Likewise.
4741         (create_expression_by_pieces): Likewise.
4742         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
4743         (create_tailcall_accumulator): Likewise.
4744
4745 2010-04-19  Martin Jambor  <mjambor@suse.cz>
4746
4747         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
4748         new_stmt.
4749         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
4750
4751 2010-04-19  Richard Guenther  <rguenther@suse.de>
4752
4753         PR tree-optimization/43796
4754         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
4755         from SCEV in the lattice.
4756         (vrp_visit_phi_node): Dump change.
4757
4758 2010-04-19  Richard Guenther  <rguenther@suse.de>
4759
4760         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
4761         * configure: Re-generated.
4762
4763 2010-04-19  Richard Guenther  <rguenther@suse.de>
4764
4765         PR tree-optimization/43783
4766         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
4767         constant ARRAY_REF operands two and three if possible.
4768
4769 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
4770
4771         PR target/43766
4772         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
4773
4774 2010-04-19  Jie Zhang  <jie@codesourcery.com>
4775
4776         PR target/43662
4777         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
4778
4779 2010-04-19  Ira Rosen  <irar@il.ibm.com>
4780
4781         PR tree-optimization/37027
4782         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
4783         and macro to access it.
4784         (vectorizable_reduction): Add argument.
4785         (vect_get_slp_defs): Likewise.
4786         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
4787         statements for possible use in SLP.
4788         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
4789         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
4790         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
4791         add new argument.
4792         (vectorizable_reduction): Likewise.
4793         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
4794         vect_get_slp_defs.
4795         (vectorizable_type_demotion, vectorizable_type_promotion,
4796         vectorizable_store): Likewise.
4797         (vect_analyze_stmt): Update call to vectorizable_reduction.
4798         (vect_transform_stmt): Likewise.
4799         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
4800         (vect_build_slp_tree): Fix indentation. Check that there are no loads
4801         from different interleaving chains in same node.
4802         (vect_slp_rearrange_stmts): New function.
4803         (vect_supported_load_permutation_p): Allow load permutations for
4804         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
4805         inside SLP nodes if necessary.
4806         (vect_analyze_slp_instance): Handle reductions.
4807         (vect_analyze_slp): Try to build SLP instances originating from groups
4808         of reductions.
4809         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
4810         (vect_get_constant_vectors): Create initial vectors for reductions
4811         according to reduction code. Add new argument.
4812         (vect_get_slp_defs): Add new argument, pass it to
4813         vect_get_constant_vectors.
4814         (vect_schedule_slp_instance): Remove SLP tree root statements.
4815
4816 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
4817
4818         * tree.h (ENUM_IS_SCOPED): Define.
4819         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
4820         for ENUM_IS_SCOPED enums.
4821
4822 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
4823
4824         * fold-const.c (fold_comparison): Use ssizetype.
4825         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
4826         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
4827         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
4828         * tree-object-size.c (compute_object_sizes): Use size_type_node.
4829
4830         * tree.h (initialize_sizetypes): Remove parameter.
4831         (build_common_tree_nodes): Remove second parameter.
4832         * stor-layout.c (initialize_sizetypes): Remove parameter.
4833         Always create an unsigned type.
4834         (set_sizetype): Assert that the passed type is unsigned and simplify.
4835         * tree.c (build_common_tree_nodes): Remove second parameter.
4836         Adjust call to initialize_sizetypes.
4837         * c-decl.c (c_init_decl_processing): Remove second argument in call to
4838         build_common_tree_nodes.
4839
4840 2010-04-18  Matthias Klose  <doko@ubuntu.com>
4841
4842         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
4843
4844 2010-04-18  Ira Rosen  <irar@il.ibm.com>
4845
4846         PR tree-optimization/43771
4847         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
4848         load permutation doesn't have gaps.
4849
4850 2010-04-18  Jan Hubicka  <jh@suse.cz>
4851
4852         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
4853         (sse_prologue_save_insn expander): Use new pattern.
4854         (sse_prologue_save_insn1): New pattern and splitter.
4855         (sse_prologue_save_insn): Update to deal also with 64bit aligned
4856         blocks.
4857         * i386.c (setup_incoming_varargs_64): Do not compute jump
4858         destination here.
4859         (ix86_gimplify_va_arg): Update alignment needed.
4860         (ix86_local_alignment): Do not align all local arrays to 128bit.
4861
4862 2010-04-17  Jan Hubicka  <jh@suse.cz>
4863
4864         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
4865
4866 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4867
4868         * arm.md (negdi2): Remove redundant code to force values into a
4869         register.
4870
4871 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4872
4873         * arm/bpabi.S: Add EABI alignment attributes to objects.
4874         * arm/bpabi-v6m.S: Likewise.
4875         * arm/crti.asm: Likewise.
4876         * arm/crtn.asm: Likewise.
4877         * arm/lib1funcs.asm: Likewise.
4878         * arm/libunwind.S: Likewise.
4879
4880 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
4881
4882         * arm-protos.h (tune_params): New structure.
4883         * arm.c (current_tune): New variable.
4884         (arm_constant_limit): Delete.
4885         (struct processors): Add pointer to the tune parameters.
4886         (arm_slowmul_tune): New tuning option.
4887         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
4888         (all_cores): Adjust to pick up the tuning model.
4889         (arm_constant_limit): New function.
4890         (arm_override_options): Select the appropriate tuning model.  Delete
4891         initialization of arm_const_limit.
4892         (arm_split_constant): Use the new constant-limit model.
4893         (arm_rtx_costs): Pick up the current tuning model.
4894         * arm.md (is_strongarm, is_xscale): Delete.
4895         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
4896         for Xscale variant architectures.
4897         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
4898
4899 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4900
4901         * config/arm/arm.c (arm_gen_constant): Remove unused variable
4902         can_shift.
4903         (arm_rtx_costs_1): Remove unused variable extra_cost.
4904         (arm_unwind_emit_set): Use variable offset.
4905         (thumb1_output_casesi): Remove unused variable flags.
4906
4907 2010-04-16  Jeff Law  <law@redhat.com>
4908
4909         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
4910         needing assignment rather than doing a two-phase assignment.  Remove
4911         unused variable 'm'.
4912
4913 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4914
4915         PR bootstrap/43767
4916         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
4917
4918 2010-04-16  Doug Kwan  <dougkwan@google.com>
4919
4920         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
4921         (next_operand_entry_id): New static variable.
4922         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
4923         (add_to_ops_vec): Assigned unique ID to operand entry.
4924         (struct oecount_s): New field ID.
4925         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
4926         (undistribute_ops_list): Assign unique IDs to oecounts.
4927         (init_reassoc): reset next_operand_entry_id.
4928
4929 2010-04-16  Doug Kwan  <dougkwan@google.com>
4930
4931         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
4932         missing left parenthesis.
4933
4934 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
4935
4936         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
4937         *btdi_rex64 using SWI48 mode iterator.
4938         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
4939         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
4940         *jcc_btdi_mask_rex64.
4941
4942 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
4943
4944         * double-int.h (tree_to_double_int): Convert to macro.
4945         * double-int.c (tree_to_double_int): Remove.
4946
4947 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
4948
4949         PR debug/43762
4950         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
4951         with want_address 2 and in case a single element list might be
4952         possible, call it again with want_address 0.
4953
4954 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
4955
4956         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
4957         case 'W' print operands for HI mode.
4958         * config/h8300/h8300.h (Y0, Y2) : New constraints.
4959         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
4960         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
4961         * config/h8300/predicate.md (bit_register_indirect_operand): New.
4962
4963         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
4964
4965         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
4966         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
4967         #xx:3 and #xx:4 mode.
4968
4969         * config/h8300/h8300.md (inverted load with HImode dest): Add
4970         support for H8300SX.
4971
4972         * config/h8300/predicate.md (bit_operand): Allow immediate values that
4973         satisfy 'U' constraint.
4974
4975 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4976
4977         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
4978         * configure: Regenerate.
4979         * config.in: Regenerate.
4980         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
4981         works.
4982
4983 2010-04-16  Richard Guenther  <rguenther@suse.de>
4984
4985         * tree.h (struct tree_decl_minimal): Move pt_uid ...
4986         (struct tree_decl_common): ... here.
4987         (DECL_PT_UID): Adjust.
4988         (SET_DECL_PT_UID): Likewise.
4989         (DECL_PT_UID_SET_P): Likewise.
4990
4991 2010-04-16  Richard Guenther  <rguenther@suse.de>
4992
4993         PR tree-optimization/43572
4994         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
4995         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
4996         * tree-flow.h (is_call_clobbered): Remove.
4997         * tree-flow-inline.h (is_call_clobbered): Likewise.
4998         * tree-dfa.c (dump_variable): Do not dump call clobber state.
4999         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
5000         (execute_return_slot_opt): Adjust.
5001         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
5002         check for call clobbered vars here.
5003         (find_tail_calls): Move tailcall verification to the
5004         proper place.
5005
5006 2010-04-16  Diego Novillo  <dnovillo@google.com>
5007
5008         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
5009
5010 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5011
5012         PR target/40603
5013         * config/arm/arm.md (cbranchqi4): New pattern.
5014         * config/arm/predicates.md (const0_operand,
5015         cbranchqi4_comparison_operator): New predicates.
5016
5017 2010-04-16  Richard Guenther  <rguenther@suse.de>
5018
5019         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
5020         (dump_gimple_stmt): Likewise.
5021
5022 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
5023
5024         * recog.h (struct recog_data): New field is_operator.
5025         (struct insn_operand_data): New field is_operator.
5026         * recog.c (extract_insn): Set recog_data.is_operator.
5027         * genoutput.c (output_operand_data): Emit code to set the
5028         is_operator field.
5029         * reload.c (find_reloads): Use it rather than testing for an
5030         empty constraint string.
5031
5032         PR target/41514
5033         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
5034         If the previous insn is a cbranchsi4_insn with the same arguments,
5035         omit the compare instruction.
5036
5037         * config/arm/arm.md (addsi3_cbranch): If destination is a high
5038         register, inputs must be low registers and we need a low register
5039         scratch.  Handle alternative 2 like alternative 3.
5040
5041 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
5042
5043         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
5044         don't call get_addr on both.  If one expression is a VALUE and
5045         the other a REG, check VALUE's locs if the REG isn't among them.
5046
5047 2010-04-16  Christian Bruel  <christian.bruel@st.com>
5048
5049         * config/sh/sh.h (sh_frame_pointer_required): New function.
5050         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
5051         (flag_omit_frame_pointer) Set.
5052         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
5053         (rounded_frame_size): Adjust size with outgoing_args_size.
5054         (sh_set_return_address): Must return from stack pointer.
5055         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
5056         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5057         (ACCUMULATE_OUTGOING_ARGS): Define.
5058         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
5059         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
5060
5061 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5062
5063         PR target/43471
5064         * config/sh/sh.c (sh_legitimize_reload_address): Use
5065         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
5066         Remove a unneeded check for offset_base.
5067
5068 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
5069
5070         * configure: Regenerated.
5071
5072 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5073
5074         * config/s390/s390.c (s390_call_save_register_used): Switch back
5075         to HARD_REGNO_NREGS.
5076
5077 2010-04-15  Richard Guenther  <rguenther@suse.de>
5078
5079         * alias.c (alias_set_subset_of): Handle alias-set zero
5080         child properly.
5081
5082 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
5083             Julian Brown  <julian@codesourcery.com>
5084
5085         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
5086         alternatives according to use of high and low regs.
5087         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
5088         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
5089         optimizing for size on Thumb-2.
5090
5091 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
5092
5093         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
5094
5095 2010-04-15  Richard Guenther  <rguenther@suse.de>
5096
5097         * tree-ssa-structalias.c (struct variable_info): Add
5098         is_fn_info flag.
5099         (new_var_info): Initialize it.
5100         (dump_constraints): Support printing last added constraints.
5101         (debug_constraints): Adjust.
5102         (dump_constraint_graph): Likewise.
5103         (make_heapvar_for): Check for NULL cfun.
5104         (get_function_part_constraint): New function.
5105         (get_fi_for_callee): Likewise.
5106         (find_func_aliases): Properly implement IPA PTA constraints.
5107         (process_ipa_clobber): New function.
5108         (find_func_clobbers): Likewise.
5109         (insert_into_field_list_sorted): Remove.
5110         (create_function_info_for): Properly allocate vars for IPA mode.
5111         Do not use insert_into_field_list_sorted.
5112         (create_variable_info_for): Properly generate constraints for
5113         global vars in IPA mode.
5114         (dump_solution_for_var): Always dump the solution.
5115         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
5116         (find_what_var_points_to): Adjust.
5117         (pt_solution_set): Change.
5118         (pt_solution_ior_into): New function.
5119         (pt_solution_empty_p): Export.
5120         (pt_solution_includes_global): Adjust.
5121         (pt_solution_includes_1): Likewise.
5122         (pt_solutions_intersect_1): Likewise.
5123         (dump_sa_points_to_info): Check some invariants.
5124         (solve_constraints): Move constraint dumping ...
5125         (compute_points_to_sets): ... here.
5126         (ipa_pta_execute): ... and here.
5127         (compute_may_aliases): Do not re-compute points-to info
5128         locally if IPA info is available.
5129         (ipa_escaped_pt): New global var.
5130         (ipa_pta_execute): Properly implement IPA PTA.
5131         * tree-into-ssa.c (dump_decl_set): Support dumping
5132         decls not in referenced-vars.
5133         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
5134         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
5135         (dump_points_to_solution): Likewise.
5136         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
5137         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
5138         (remap_gimple_stmt): Reset call clobber/use information if necessary.
5139         (copy_decl_to_var): Copy DECL_PT_UID.
5140         (copy_result_decl_to_var): Likewise.
5141         * tree.c (make_node_stat): Initialize DECL_PT_UID.
5142         (copy_node_stat): Copy it.
5143         * tree.h (DECL_PT_UID): New macro.
5144         (SET_DECL_PT_UID): Likewise.
5145         (DECL_PT_UID_SET_P): Likewise.
5146         (struct tree_decl_minimal): Add pt_uid member.
5147         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
5148         (pt_solution_empty_p): Declare.
5149         (pt_solution_set): Adjust.
5150         (ipa_escaped_pt): Declare.
5151         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
5152         * gimple-pretty-print.c (pp_points_to_solution): New function.
5153         (dump_gimple_call): Dump call clobber/use information.
5154         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
5155         * tree-pass.h (TDF_ALIAS): New dump option.
5156         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
5157         * doc/invoke.texi (-fipa-pta): Update documentation.
5158
5159 2010-04-15  Richard Guenther  <rguenther@suse.de>
5160
5161         * Makefile.in (OBJS-common): Add gimple-fold.o.
5162         (gimple-fold.o): New rule.
5163         * tree.h (maybe_fold_offset_to_reference,
5164         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
5165         prototypes ...
5166         * gimple.h: ... here.
5167         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
5168         may_propagate_address_into_dereference): Move prototypes ...
5169         * gimple.h: ... here.
5170         * tree-ssa-ccp.c (get_symbol_constant_value,
5171         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
5172         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
5173         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
5174         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
5175         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
5176         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
5177         gimplify_and_update_call_from_tree): Move ...
5178         * gimple-fold.c: ... here.  New file.
5179         (ccp_fold_builtin): Rename to ...
5180         (gimple_fold_builtin): ... this.
5181         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
5182
5183 2010-04-15  Richard Guenther  <rguenther@suse.de>
5184
5185         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
5186         fit_double_type, force_fit_type_double, add_double_with_sign,
5187         neg_double, mul_double_with_sign, lshift_double, rshift_double,
5188         lrotate_double, rrotate_double, div_and_round_double): Move ...
5189         * double-int.c: ... here.
5190         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
5191         add_double, neg_double, mul_double_with_sign, mul_double,
5192         lshift_double, rshift_double, lrotate_double, rrotate_double,
5193         div_and_round_double): Move prototypes ...
5194         * double-int.h: ... here.
5195
5196 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
5197
5198         PR target/43742
5199         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
5200         matching constraints to ensure inputs match the output.
5201
5202 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
5203
5204         PR target/43742
5205         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
5206         in an input-only operand.
5207
5208 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
5209
5210         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
5211         (double_int_not, double_int_lshift, double_int_rshift): Declare.
5212         (double_int_negative_p): Convert to static inline function.
5213         * double-int.c (double_int_lshift, double_int_lshift): New functions.
5214         (double_int_negative_p): Remove.
5215         * tree.h (lshift_double, rshift_double):
5216         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
5217         * fold-const.c (fold_convert_const_int_from_real,
5218         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
5219         (lshift_double): Change type of arith argument to bool.
5220         (rshift_double): Change type of arith argument to bool. Correct
5221         comment.
5222         * expmed.c (mask_rtx, lshift_value): (Ditto.).
5223
5224 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
5225
5226         PR target/21803
5227         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
5228         at the start and end of the then/else blocks, and omit them from the
5229         conversion.
5230         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
5231         argument; all callers changed.  Pass zero to old_insns_match_p instead.
5232         (flow_find_head_matching_sequence): New function.
5233         (old_insns_match_p): Check REG_EH_REGION notes for calls.
5234         * basic-block.h (flow_find_cross_jump,
5235         flow_find_head_matching_sequence): Declare functions.
5236
5237 2010-04-14  Jason Merrill  <jason@redhat.com>
5238
5239         PR c++/36625
5240         * c-common.c (attribute_takes_identifier_p): New fn.
5241         * c-common.h: Declare it.
5242
5243 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5244
5245         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
5246         splitter condition.
5247         (*udivmod<mode>4): Ditto.
5248
5249 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5250
5251         * config/i386/i386.md (maxmin_int): Rename code attribute from
5252         maxminiprefix and update all users.
5253         (maxmin_float): Ditto from maxminfprefix.
5254         (logic): Ditto from logicprefix.
5255         (absneg_mnemonic): Ditto from absnegprefix.
5256         * config/i386/mmx.md: Update all users of maxminiprefix,
5257         maxminfprefix and logicprefix for rename.
5258         * config/i386/sse.md: Ditto.
5259         * config/i386/sync.md (sync_<code><mode>): Update for
5260         logicprefix rename.
5261
5262 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5263
5264         PR 42966
5265         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
5266         warnings converted to errors.
5267
5268 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5269
5270         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
5271         used insn_type variable.
5272         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
5273         to avoid set-but-not-used warning.
5274
5275 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5276
5277         * df-core.c (df_ref_debug): Change format string placeholder
5278         from 0x%x to %#x.
5279         * dwarf2asm.c (dw2_asm_output_data_raw,
5280         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
5281         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
5282         * dwarf2out.c (output_cfi, output_cfi_directive,
5283         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
5284         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
5285         Ditto.
5286         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
5287         * print-rtl.c (print_rtx): Ditto.
5288
5289 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
5290
5291         PR middle-end/42694
5292         * builtins.c (expand_builtin_pow_root): New function to expand pow
5293         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
5294         series of sqrt and cbrt calls under -ffast-math.
5295         (expand_builtin_pow): Call it.
5296
5297 2010-04-14  Michael Matz  <matz@suse.de>
5298
5299         PR tree-optimization/42963
5300         * tree-cfg.c (touched_switch_bbs): New static variable.
5301         (group_case_labels_stmt): New function broken out from ...
5302         (group_case_labels): ... here, use the above.
5303         (start_recording_case_labels): Allocate touched_switch_bbs.
5304         (end_recording_case_labels): Deallocate it, call
5305         group_case_labels_stmt.
5306         (gimple_redirect_edge_and_branch): Remember index of affected BB.
5307
5308 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5309
5310         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
5311         from insn template.
5312
5313 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
5314
5315         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
5316
5317 2010-04-13  Jan Hubicka  <jh@suse.cz>
5318
5319         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
5320         of optimized out static functions.
5321         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
5322         cost computation.  Also sanity check for overflows.
5323         (update_caller_keys): Update cgraph_edge_badness call; properly
5324         update fibheap and sanity check that it is up to date.
5325         (add_new_edges_to_heap): Update cgraph_edge_badness.
5326         (cgraph_decide_inlining_of_small_function): Likewise;
5327         add sanity checking that badness in heap is up to date;
5328         improve dumping of reason; Update badness of calls to the
5329         offline copy of function currently inlined; dump badness
5330         of functions not inlined because of unit growth limits.
5331
5332 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5333
5334         PR middle-end/32628
5335         * c-common.c (pointer_int_sum): Disregard overflow that occured only
5336         because of sign-extension change when converting to sizetype here...
5337         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
5338
5339         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
5340         the folding to constants.  Remove redundant final conversion.
5341         (fold_binary) <associate>: Do not associate if the re-association of
5342         constants alone overflows.
5343         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
5344         to the end of the list.
5345         (multiple_of_p) <COND_EXPR>: New case.
5346
5347 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5348
5349         * opt-functions.awk (opt_sanitized_name): New.
5350         (opt_enum): New.
5351         * optc-gen.awk: Use it
5352         * opth-gen.awk: Use it.
5353
5354 2010-04-13  Martin Jambor  <mjambor@suse.cz>
5355
5356         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
5357         (sra_modify_assign): Delete stmts loading dead data even if racc has no
5358         children.  Call replace_uses_with_default_def_ssa_name to handle
5359         SSA_NAES on lhs.
5360
5361 2010-04-13  Michael Matz  <matz@suse.de>
5362
5363         PR middle-end/43730
5364         * builtins.c (expand_builtin_interclass_mathfn): Also create
5365         a register if the predicate doesn't match.
5366
5367 2010-04-13  Diego Novillo  <dnovillo@google.com>
5368
5369         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
5370         * c-pch.c: Include timevar.h.
5371         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
5372         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
5373         * ggc-common.c: Include timevar.h.
5374         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
5375         * timevar.def (TV_PCH_SAVE): Define.
5376         (TV_PCH_CPP_SAVE): Define.
5377         (TV_PCH_PTR_REALLOC): Define.
5378         (TV_PCH_PTR_SORT): Define.
5379         (TV_PCH_RESTORE): Define.
5380         (TV_PCH_CPP_RESTORE): Define.
5381
5382 2010-04-13  Michael Matz  <matz@suse.de>
5383
5384         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
5385         into MINUS_EXPRs.
5386         (can_reassociate_p): New function.
5387         (break_up_subtract_bb, reassociate_bb): Use it.
5388
5389 2010-04-13  Richard Guenther  <rguenther@suse.de>
5390
5391         PR bootstrap/43737
5392         * builtins.c (c_readstr): Fix assert.
5393
5394 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
5395
5396         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
5397         when generating cltd insn.
5398
5399         (*ashl<mode>3_1): Remove special handling for register operand 2.
5400         (*ashlsi3_1_zext): Ditto.
5401         (*ashlhi3_1): Ditto.
5402         (*ashlhi3_1_lea): Ditto.
5403         (*ashlqi3_1): Ditto.
5404         (*ashlqi3_1_lea): Ditto.
5405         (*<shiftrt_insn><mode>3_1): Ditto.
5406         (*<shiftrt_insn>si3_1_zext): Ditto.
5407         (*<shiftrt_insn>qi3_1_slp): Ditto.
5408         (*<rotate_insn><mode>3_1): Ditto.
5409         (*<rotate_insn>si3_1_zext): Ditto.
5410         (*<rotate_insn>qi3_1_slp): Ditto.
5411
5412 2010-04-13  Richard Guenther  <rguenther@suse.de>
5413
5414         * tree-ssa-structalias.c (callused_id): Remove.
5415         (call_stmt_vars): New.
5416         (get_call_vi): Likewise.
5417         (lookup_call_use_vi): Likewise.
5418         (lookup_call_clobber_vi): Likewise.
5419         (get_call_use_vi): Likewise.
5420         (get_call_clobber_vi): Likewise.
5421         (make_transitive_closure_constraints): Likewise.
5422         (handle_const_call): Adjust to do per-call call-used handling.
5423         (handle_pure_call): Likewise.
5424         (find_what_var_points_to): Remove general callused handling.
5425         (init_base_vars): Likewise.
5426         (init_alias_vars): Initialize call_stmt_vars.
5427         (compute_points_to_sets): Process call-used and call-clobbered
5428         vars for call statements.
5429         (delete_points_to_sets): Free call_stmt_vars.
5430
5431 2010-04-13  Richard Guenther  <rguenther@suse.de>
5432
5433         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
5434         Only add RW dependence for dependence distance zero.
5435         Adjust maximal vectorization factor according to dependences.
5436         Move alignment handling ...
5437         (vect_find_same_alignment_drs): ... here.  New function.
5438         (vect_analyze_data_ref_dependences): Adjust.
5439         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
5440         (vect_analyze_data_refs): Adjust minimal vectorization factor
5441         according to data references.
5442         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
5443         dependences before determining the vectorization factor.
5444         Analyze alignment after determining the vectorization factor.
5445         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
5446         dependences before alignment.
5447         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
5448         Adjust prototype.
5449         (vect_analyze_data_refs): Likewise.
5450         (MAX_VECTORIZATION_FACTOR): New define.
5451
5452 2010-04-13  Duncan Sands  <baldrick@free.fr>
5453
5454         * except.h (lang_eh_type_covers): Remove.
5455         * except.c (lang_eh_type_covers): Likewise.
5456
5457 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5458             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5459
5460         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
5461         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
5462         UNITS_PER_LONG where it is ABI relevant.
5463         (s390_return_addr_rtx): Likewise.
5464         (s390_back_chain_rtx): Likewise.
5465         (s390_frame_area): Likewise.
5466         (s390_frame_info): Likewise.
5467         (s390_initial_elimination_offset): Likewise.
5468         (save_gprs): Likewise.
5469         (s390_emit_prologue): Likewise.
5470         (s390_emit_epilogue): Likewise.
5471         (s390_function_arg_advance): Likewise.
5472         (s390_function_arg): Likewise.
5473         (s390_va_start): Likewise.
5474         (s390_gimplify_va_arg): Likewise.
5475         (s390_function_profiler): Likewise.
5476         (s390_optimize_prologue): Likewise.
5477         (s390_rtx_costs): Likewise.
5478         (s390_secondary_reload): Likewise.
5479         (s390_promote_function_mode): Likewise.
5480         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
5481         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
5482         registers available.
5483         (s390_unwind_word_mode): New function.
5484         (s390_function_value): Split 64 bit values into register pair if
5485         used as return value.
5486         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
5487         function call parameters.  Handle parallels.
5488         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
5489         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
5490         (DWARF_CIE_DATA_ALIGNMENT): New macro.
5491         (s390_expand_setmem): Remove unused variable src_addr.
5492         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
5493         deal with 64 bit registers.
5494         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
5495         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
5496         (UNITS_PER_LONG): New macro.
5497         * libjava/include/s390-signal.h: Define extended ucontext
5498         structure containing the upper halfs of the 64 bit registers.
5499
5500 2010-04-13  Simon Baldwin  <simonb@google.com>
5501
5502         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
5503
5504 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5505
5506         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
5507         rvalue on the RHS if the LHS is of a non-renamable type.
5508         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
5509
5510 2010-04-13  Matthias Klose  <doko@ubuntu.com>
5511
5512         * gcc.c (cc1_options): Handle -iplugindir before processing
5513         the cc1 spec. Only add -iplugindir once.
5514         (cpp_unique_options): Add -iplugindir option if -fplugin* options
5515         found.
5516         * common.opt (iplugindir): Remove `Separate' property, initialize.
5517         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
5518         option.
5519         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
5520         (distclean): Remove plugin dir.
5521         * doc/invoke.texi: Document -iplugindir.
5522
5523 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
5524
5525         * doc/plugins.texi (Loading Plugins): Document short
5526         -fplugin=foo option.
5527         (Plugin API): Mention default_plugin_dir_name function.
5528
5529         * gcc.c (find_file_spec_function): Add new declaration.
5530         (static_spec_func): Use it for "find-file".
5531         (find_file_spec_function): Add new function.
5532         (cc1_options): Add -iplugindir option if -fplugin* options found.
5533
5534         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
5535
5536         * plugin.c (add_new_plugin): Updated comment, and handle short
5537         plugin name.
5538         (default_plugin_dir_name): Added new function.
5539
5540         * common.opt (iplugindir): New option to set the plugin directory.
5541
5542 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
5543
5544         * config/i386/i386.md (any_rotate): New code iterator.
5545         (rotate_insn): New code attribute.
5546         (rotate): Ditto.
5547         (SWIM124): New mode iterator.
5548         (<rotate_insn>ti3): New expander.
5549         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
5550         any_rotate code iterator.
5551         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
5552         using any_rotate code iterator and SWIM124 mode iterator.
5553         (ix86_rotlti3): New insn_and_split pattern.
5554         (ix86_rotrti3): Ditto.
5555         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
5556         ix86_rotl{di,ti}3 patterns.
5557         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
5558         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
5559         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
5560         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
5561         code iterator and SWI mode iterator.
5562         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
5563         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
5564         code iterator.
5565         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
5566         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
5567         (bswap rotatert splitter): Add splitter.
5568         (bswap splitter): Macroize splitter using any_rotate code iterator.
5569         Add insn predicate to split only for TARGET_USE_XCHGB or when
5570         optimizing function for size.
5571
5572 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5573
5574         * config/pa/pa.c (emit_move_sequence): Remove use of
5575         deleted variable flag_argument_noalias.
5576
5577 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5578
5579         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
5580         configurations.
5581         Add to unsupported targets list.
5582         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
5583         sparc*-sun-solaris2.[567]* from target lists.
5584         * configure: Regenerate.
5585         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
5586         removal.
5587         Remove Solaris 7 patch references.
5588         (Specific, sparc-sun-solaris2.7): Removed.
5589         (sparc-sun-solaris2*): Update Solaris 7 example.
5590         (sparc64-*-solaris2*): Likewise.
5591
5592 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5593
5594         * config.build (alpha*-dec-osf4*): Remove.
5595         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
5596         of obsolete configurations.
5597         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
5598         support.
5599         * config/alpha/t-osf4: Renamed to ...
5600         * config/alpha/t-osf5: ... this.
5601         * config/alpha/osf.h: Renamed to ...
5602         * config/alpha/osf5.h: ... this.
5603         Merged old osf5.h contents.
5604         Update comments.
5605         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
5606         (EXTRA_SPECS): Removed.
5607         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
5608         reflect removal of Tru64 UNIX V4.0/V5.0 support.
5609         Document that.
5610
5611 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5612
5613         * doc/contrib.texi (Contributors, Rainer Orth): Update.
5614
5615 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
5616
5617         PR/43702
5618         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
5619         __thiscall convention.
5620
5621 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5622
5623         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
5624         orig_base.
5625         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
5626
5627 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
5628
5629         * function.c (assign_parms_initialize_all): Add unused attribute
5630         to fntype.
5631
5632 2010-04-12  Richard Guenther  <rguenther@suse.de>
5633
5634         * gsstruct.def (GSS_CALL): New.
5635         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
5636         * gimple.h: Include tree-ssa-alias.h.
5637         (struct gimple_statement_call): New.
5638         (union gimple_statement_struct_d): Add gimple_call member.
5639         (gimple_call_reset_alias_info): Declare.
5640         (gimple_call_use_set): New function.
5641         (gimple_call_clobber_set): Likewise.
5642         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
5643         * gimple.c (gimple_call_reset_alias_info): New function.
5644         (gimple_build_call_1): Call it.
5645         * lto-streamer-in.c (input_gimple_stmt): Likewise.
5646         * tree-inline.c (remap_gimple_stmt): Likewise.
5647         (expand_call_inline): Remove callused handling.
5648         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
5649         * tree-dfa.c (dump_variable): Likewise.
5650         * tree-parloops.c (parallelize_loops): Likewise.
5651         * tree-ssa.c (init_tree_ssa): Likewise.
5652         (delete_tree_ssa): Likewise.
5653         * tree-flow-inline.h (is_call_used): Remove.
5654         * tree-flow.h (struct gimple_df): Remove callused member.
5655         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
5656         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
5657         (ref_maybe_used_by_call_p_1): Simplify.
5658         (call_may_clobber_ref_p_1): Likewise.
5659         * tree-ssa-structalias.c (compute_points_to_sets): Set
5660         the call stmt used and clobbered sets.
5661         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
5662         (find_tail_calls): Verify the tail call.
5663
5664 2010-04-12  Richard Guenther  <rguenther@suse.de>
5665
5666         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
5667         single-iteration always-inline inlining.
5668         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
5669         (cgraph_decide_inlining): Do not handle always-inline specially.
5670         (try_inline): Remove always-inline cycle detection special case.
5671         Do not recurse on always-inlines.
5672         (cgraph_early_inlining): Do not iterate if not optimizing.
5673         (cgraph_gate_early_inlining): remove.
5674         (pass_early_inline): Run unconditionally.
5675         (gate_cgraph_decide_inlining): New function.
5676         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
5677         not inlining or optimizing.
5678         (cgraph_decide_inlining_of_small_functions): Also consider
5679         always-inline functions.
5680         (cgraph_default_inline_p): Return true for nodes which should
5681         disregard inline limits.
5682         (estimate_function_body_sizes): Assume zero size and time for
5683         nodes which are marked as disregarding inline limits.
5684         (cgraph_decide_recursive_inlining): Do not perform recursive
5685         inlining on always-inline nodes.
5686
5687 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
5688
5689         PR bootstrap/43699
5690         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
5691         for exprs satisfying handled_component_p.
5692
5693 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5694
5695         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
5696         non-constant aggregate elements.
5697
5698         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
5699         is a real initialization.
5700
5701 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
5702
5703         PR c/36774
5704         * c-decl.c (start_function): Move forward check for nested function.
5705
5706 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
5707
5708         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
5709         * config/sh/sh.c: Include reload.h.
5710         (sh_legitimize_reload_address): New.
5711         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
5712         sh_legitimize_reload_address.
5713
5714 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
5715
5716         * config/sh/sh.md (*movqi_pop): New insn pattern.
5717         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
5718
5719 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5720
5721         * config/i386/i386.md (any_shiftrt): New code iterator.
5722         (shiftrt_insn): New code attribute.
5723         (shiftrt): Ditto.
5724         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
5725         using any_shiftrt code iterator.
5726         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
5727         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
5728         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
5729         pattern from corresponding peephole2 patterns.
5730         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
5731         using any_shiftrt code iterator.
5732         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
5733         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
5734         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
5735         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
5736         *{ashr,lshr}<mode>3_cmp_zext.
5737         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
5738
5739 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5740
5741         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
5742         scratch register.
5743         (*lshr<mode>3_cconly): Ditto.
5744
5745 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
5746
5747         * config/i386/i386.md (lshr<mode>3): Macroize expander from
5748         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5749         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5750         pattern from *lshr{di,ti}3_1 and corresponding splitters using
5751         DWI mode iterator.
5752         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5753         from corresponding peephole2 patterns.
5754         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
5755         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
5756         and *lshrdi3_1_rex64 using SWI mode iterator.
5757         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
5758         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
5759         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
5760         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
5761         and *lshrdi3_cmp_rex64 using SWI mode iterator.
5762         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
5763         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
5764         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
5765         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
5766         SWI mode iterator.
5767
5768 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
5769
5770         * config/i386/i386.md (ashr<mode>3): Macroize expander from
5771         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
5772         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5773         pattern from *ashr{di,ti}3_1 and corresponding splitters using
5774         DWI mode iterator.
5775         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
5776         from corresponding peephole2 patterns.
5777         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
5778         (ashrsi3_cvt): Rename from ashrsi3_31.
5779         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
5780         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
5781         and x86_64_shift_adj_3 using SWI48 mode iterator.
5782         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
5783         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
5784         and *ashrdi3_1_rex64 using SWI mode iterator.
5785         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
5786         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
5787         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
5788         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
5789         and *ashrdi3_cmp_rex64 using SWI mode iterator.
5790         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
5791         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
5792         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
5793         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
5794         SWI mode iterator.
5795         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
5796         * config/i386/i386.c (ix86_split_ashr): Update for renamed
5797         x86_shift<mode>_adj_3 expanders.
5798
5799 2010-04-10  Wei Guozhi  <carrot@google.com>
5800
5801         PR target/42601
5802         * config/arm/arm.c (arm_pic_static_addr): New function.
5803         (legitimize_pic_address): Call arm_pic_static_addr when it detects
5804         a static symbol.
5805         (arm_output_addr_const_extra): Output expression for new pattern.
5806         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
5807
5808 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
5809
5810         * ira-costs.c (record_reg_classes): Ignore alternatives that are
5811         not enabled.
5812
5813         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
5814         * web.c: Include "insn-config.h" and "recog.h".
5815         (union_match_dups): New function.
5816         (web_main): Call it.
5817         (union_defs): Don't try to recognize match_dups.
5818
5819         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
5820         if doing so would replace the entire pattern.
5821
5822 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
5823
5824         PR target/43707
5825         PR target/43709
5826         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
5827         and splitter pattern.  Change splitter operand 1 predicate to
5828         nonmemory_operand.
5829
5830 2010-04-09  Martin Jambor  <mjambor@suse.cz>
5831
5832         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
5833         lattices are addresses of CONST_DECLs with the same initial value.
5834         (ipcp_print_all_lattices): Print values of CONST_DECLs.
5835         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
5836
5837 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
5838             Bernd Schmidt  <bernds@codesourcery.com>
5839
5840         * loop-invariant.c (replace_uses): New static function.
5841         (move_invariant_reg): Use it to ensure we can replace the uses.
5842
5843 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
5844
5845         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
5846         function template.
5847         (picochip_override_options): Enable section anchors only above -O1.
5848         (picochip_reorg): Fixed a couple of build warnings.
5849
5850 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5851
5852         * configure.ac (plugin -rdynamic test): Log result.
5853         * configure: Regenerate.
5854         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
5855         (RDYNAMIC_SPEC): Define.
5856         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
5857
5858 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5859
5860         * configure.ac: Determine Sun ld version numbers.
5861         (comdat_group): Restrict GNU ld version checks to gld.
5862         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
5863         (enable_comdat): Support --enable-comdat.
5864         * configure: Regenerate.
5865         * doc/install.texi (Configuration): Document --enable-comdat.
5866
5867 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5868
5869         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
5870         * config/sol2-gld.h: ... here.
5871         * config.gcc (sparc*-*-solaris2*): Reflect this.
5872         (i[34567]86-*-solaris2*): Use it.
5873
5874 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
5875
5876         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
5877         setup_clocks_p.
5878         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
5879
5880 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5881
5882         PR 42965
5883         * diagnostic.c (diagnostic_initialize): Initialize
5884         some_warnings_are_errors.
5885         (diagnostic_finish): New.
5886         (diagnostic_action_after_output): Call it before exiting.
5887         (diagnostic_report_diagnostic): Do not print message here. Set
5888         some_warnings_are_errors.
5889         * diagnostic.h (diagnostic_context): Delete
5890         issue_warnings_are_errors_message. Add some_warnings_are_errors.
5891         (diagnostic_finish): Declare.
5892         * toplev.c (toplev_main): Call it before exit.
5893
5894 2010-04-09  Jason Merrill  <jason@redhat.com>
5895
5896         PR c++/42623
5897         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
5898         for incomplete type.
5899
5900         PR c++/41788
5901         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
5902         based on a warning flag.
5903
5904 2010-04-09  Richard Guenther  <rguenther@suse.de>
5905
5906         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
5907
5908 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
5909
5910         PR bootstrap/43684
5911         * varasm.c (default_assemble_visibility): Wrap vars that are
5912         set, but unused, by targets without GAS.
5913         * config/rs6000/rs6000.c (paired_emit_vector_compare):
5914         Remove set, but unused, vars.
5915         (rs6000_legitimize_tls_address): Likewise.
5916         (altivec_expand_dst_builtin): Likewise.
5917         * config/darwin.c (machopic_classify_symbol): Likewise.
5918         (machopic_indirection_name): Likewise.
5919
5920 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
5921
5922         * config/i386/i386.md (DWI): New mode iterator.
5923         (S): New mode attribute.
5924         (shift_operand): Ditto.
5925         (shift_immediate_operand): Ditto.
5926         (ashl_input_operand): Ditto.
5927         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
5928         using SDWIM mode iterator.
5929         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
5930         pattern from *ashl{di,ti}3_1 and corresponding splitters using
5931         DWI mode iterator.
5932         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
5933         from corresponding peephole2 patterns.
5934         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
5935         and x86_64_shift_adj_1 using SWI48 mode iterator.
5936         (x86_shift<mode>_adj_2): Ditto.
5937         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
5938         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
5939         using SWI48 mode iterator.
5940         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
5941         *ashldi3_cmp_rex64 using SWI mode iterator.
5942         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
5943         *ashldi3_cconly_rex64 using SWI mode iterator.
5944         * config/i386/i386.c (ix86_split_ashl): Update for renamed
5945         x86_shift<mode>_adj_{1,2}.
5946         (ix86_split_ashr): Ditto.
5947         (ix86_split_lshr): Ditto.
5948
5949 2010-04-09  Richard Guenther  <rguenther@suse.de>
5950
5951         * target.h (builtin_conversion): Pass in input and output types.
5952         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
5953         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
5954         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
5955         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
5956
5957         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
5958         Handle AVX modes.
5959         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
5960
5961 2010-04-09  Richard Guenther  <rguenther@suse.de>
5962
5963         PR target/43152
5964         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
5965
5966 2010-04-09  Richard Guenther  <rguenther@suse.de>
5967
5968         * tree-vectorizer.h (struct _stmt_vec_info): Document
5969         that vectype is the type of the LHS.
5970         (supportable_widening_operation, supportable_narrowing_operation):
5971         Get both input and output vector types as arguments.
5972         (vect_is_simple_use_1): Declare.
5973         (get_same_sized_vectype): Likewise.
5974         * tree-vect-loop.c (vect_determine_vectorization_factor):
5975         Set STMT_VINFO_VECTYPE to the vector type of the def.
5976         (vectorizable_reduction): Adjust.
5977         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
5978         Adjust.  Specify the output vector type.
5979         (vect_pattern_recog_1): Adjust.
5980         * tree-vect-stmts.c (get_same_sized_vectype): New function.
5981         (vectorizable_call): Adjust.
5982         (vectorizable_conversion): Likewise.
5983         (vectorizable_operation): Likewise.
5984         (vectorizable_type_demotion): Likewise.
5985         (vectorizable_type_promotion): Likewise.
5986         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
5987         the def.
5988         (vect_is_simple_use_1): New function.
5989         (supportable_widening_operation): Get both input and output
5990         vector types.
5991         (supportable_narrowing_operation): Likewise.
5992         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
5993
5994 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
5995
5996         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
5997         __thiscall and _thiscall as predefined macros.
5998         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
5999         thiscall attribute handling.
6000         (ix86_comp_type_attributes): Likewise.
6001         (ix86_function_regparm): Likewise.
6002         (ix86_return_pops_args): Likewise.
6003         (init_cumulative_args): Likewise.
6004         (find_drap_reg): Likewise.
6005         (ix86_static_chain): Likewise.
6006         (x86_this_parameter): Likewise.
6007         (x86_output_mi_thunk): Likewise.
6008         (ix86_attribute_table): Add description for thiscall attribute.
6009         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
6010         * doc/extend.texi: Add documentation for thiscall.
6011
6012 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6013
6014         PR c++/28584
6015         * c.opt (Wint-to-pointer-cast): Available in C++.
6016         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
6017
6018 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6019
6020         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
6021         * calls.c (expand_call): Pass the function type to aggregate_value_p.
6022         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
6023         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
6024         function type instead.  Reorder and simplify checks.
6025
6026         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
6027
6028 2010-04-08  Jing Yu  <jingyu@google.com>
6029             Zdenek Dvorak  <ook@ucw.cz>
6030
6031         PR tree-optimization/42720
6032         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
6033         loop unswitch conditions here from ...
6034         (tree_unswitch_single_loop): ... here.
6035
6036 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6037
6038         * tree-if-conv.c: Fix comments and simplify logic.
6039
6040 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
6041
6042         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
6043         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
6044         (main_tree_if_conversion): Update call to tree_if_conversion.
6045
6046 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6047
6048         PR 42485
6049         * doc/invoke.texi (-b,-V): Delete.
6050         * doc/tm.texi: Do not mention -b.
6051         * gcc.c (display_help): Delete -b and -V.
6052         (process_command): Delete -b and -V.
6053         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
6054
6055 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
6056             Wolfgang Gellerich  <gellerich@de.ibm.com>
6057
6058         Implement target hook for loop unrolling
6059         * target.h (loop_unroll_adjust): Add a new target hook function.
6060         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
6061         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
6062         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
6063         (s390_loop_unroll_adjust): Implement the new target hook for s390.
6064         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
6065         target hook.
6066         (decide_unroll_stupid): Likewise.
6067
6068 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6069
6070         PR target/43643
6071         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
6072
6073 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6074
6075         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
6076         (Specific, *-*-solaris2*): Likewise.
6077         Don't prefer Sun as over GNU as.
6078
6079 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
6080
6081         * config/s390/s390.c (override_options): Adjust the z10 defaults
6082         for max-unroll-times, max-completely-peeled-insns
6083         and max-completely-peel-times.
6084
6085 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6086
6087         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
6088         instructions for z10.
6089         (s390_expand_setmem): Likewise.
6090         (s390_expand_cmpmem): Likewise.
6091
6092 2010-04-08  Richard Guenther  <rguenther@suse.de>
6093
6094         PR tree-optimization/43679
6095         * tree-ssa-pre.c (eliminate): Only propagate copies.
6096
6097 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6098
6099         PR bootstrap/43681
6100         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
6101         set but not used variable warning.
6102
6103 2010-04-08  Wei Guozhi  <carrot@google.com>
6104
6105         PR target/41653
6106         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
6107         (arm_size_rtx_costs): Call the new function when optimized for size.
6108
6109 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
6110
6111         PR debug/43670
6112         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
6113         op0 is not a MEM, just return NULL instead of assertion
6114         failure.
6115         (discover_nonconstant_array_refs): Don't walk debug stmts.
6116
6117 2010-04-08  Doug Kwan  <dougkwan@google.com>
6118
6119         * configure.ac: Recognize gold and do not use its version number
6120         to test ld features.
6121         * configure: Regenerate.
6122
6123 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
6124
6125         PR middle-end/40815
6126         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
6127         (negate_value): Move code to push elements to broken_up_substracts ...
6128         (eliminate_plus_minus_pair): ... here.  Push operands that have no
6129         negative pair to plus_negates.
6130         (repropagate_negates, init_reassoc, fini_reassoc): Update.
6131
6132 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6133
6134         * doc/install.texi (Configuration): Move description of
6135         --enable-lto, --with-libelf*, --enable-gold from Java section to
6136         general section.
6137
6138         * doc/generic.texi (Working with declarations)
6139         (Function Properties, C and C++ Trees): Fix typos.
6140         * doc/sourcebuild.texi (Top Level): Likewise.
6141
6142 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6143
6144         PR c/18624
6145         * tree.h (DECL_READ_P): Define.
6146         (struct tree_decl_common): Add decl_read_flag.
6147         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
6148         a set but not used warning.
6149         (merge_decls): Merge DECL_READ_P flag.
6150         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
6151         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
6152         * c-common.c (handle_used_attribute, handle_unused_attribute):
6153         Likewise.
6154         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
6155         New prototypes.
6156         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
6157         New functions.
6158         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
6159         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
6160         c_parser_binary_expression, c_parser_cast_expression,
6161         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
6162         Call default_function_array_read_conversion instead of
6163         default_function_array_conversion where needed.
6164         (c_parser_unary_expression, c_parser_conditional_expression,
6165         c_parser_postfix_expression_after_primary, c_parser_initelt):
6166         Likewise.  Call mark_exp_read where needed.
6167         (c_parser_statement_after_labels, c_parser_asm_operands,
6168         c_parser_typeof_specifier, c_parser_sizeof_expression,
6169         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
6170         where needed.
6171         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
6172         New.
6173         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
6174         (warn_unused_but_set_parameter): Default to warn_unused
6175         && extra_warnings.
6176         * doc/invoke.texi: Document -Wunused-but-set-variable and
6177         -Wunused-but-set-parameter.
6178
6179         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
6180         used count variable.
6181         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
6182         when operandN variables aren't used in the body of the expander
6183         or splitter.
6184         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
6185         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
6186         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
6187         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
6188         FOR_EACH_IMM_USE_ON_STMT): Likewise.
6189         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
6190         * tree.c (PROCESS_ARG): Likewise.
6191
6192 2010-04-07  Simon Baldwin  <simonb@google.com>
6193
6194         * diagnostic.h (diagnostic_override_option_index): New macro to
6195         set a diagnostic's option_index.
6196         * c-tree.h (c_cpp_error): Add warning reason argument.
6197         * opts.c (_warning_as_error_callback): New.
6198         (register_warning_as_error_callback): Store callback for
6199         warnings enabled via enable_warning_as_error.
6200         (enable_warning_as_error): Call callback, minor code tidy.
6201         * opts.h (register_warning_as_error_callback): Declare.
6202         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
6203         response to -Werror=.
6204         (c_common_init_options): Register warning_as_error_callback in opts.c.
6205         * common.opt: Add -Wno-cpp option.
6206         * c-common.c (struct reason_option_codes_t): Map cpp warning
6207         reason codes to gcc option indexes.
6208         * (c_option_controlling_cpp_error): New function, lookup the gcc
6209         option index for a cpp warning reason code.
6210         * (c_cpp_error): Add warning reason argument, call
6211         c_option_controlling_cpp_error for diagnostic_override_option_index.
6212         * doc/invoke.texi: Document -Wno-cpp.
6213
6214 2010-04-07  Richard Guenther  <rguenther@suse.de>
6215
6216         * ipa-reference.c (mark_load): Use get_base_address.
6217         (mark_store): Likewise.
6218
6219         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
6220         inserting GIMPLE_NOPs into the IL.
6221         * tree-ssa-structalias.c (get_constraint_for_component_ref):
6222         Explicitly strip handled components and indirect references.
6223
6224         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
6225         folding address expressions.
6226         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
6227         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
6228         operand_equal_p to compare decls.
6229         (ptr_deref_may_alias_decl_p): Likewise.
6230         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
6231         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
6232         Handle reversed comparison ops.
6233         * tree-sra.c (asm_visit_addr): Use get_base_address.
6234         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
6235         * ipa-reference.c (mark_address): Use get_base_address.
6236
6237 2010-04-07  Richard Guenther  <rguenther@suse.de>
6238
6239         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
6240         Propagate constants everywhere.
6241
6242 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
6243
6244         PR debug/43516
6245         * tree.c (MAX_INT_CACHED_PREC): Define.
6246         (nonstandard_integer_type_cache): New array.
6247         (build_nonstandard_integer_type): Cache results for precision
6248         <= MAX_INT_CACHED_PREC.
6249
6250 2010-04-07  Richard Guenther  <rguenther@suse.de>
6251
6252         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
6253         -fargument-noalias-global, -fargument-noalias-anything): Remove.
6254         * common.opt: Likewise.
6255         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
6256         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
6257         (nonoverlapping_memrefs_p): Likewise.
6258         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6259         * opts.c (common_handle_option): Handle OPT_fargument_alias,
6260         OPT_fargument_noalias, OPT_fargument_noalias_anything and
6261         OPT_fargument_noalias_global for backward compatibility.
6262
6263 2010-04-07  Richard Guenther  <rguenther@suse.de>
6264
6265         PR tree-optimization/43270
6266         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
6267         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
6268         * tree-ssa-pre.c (phi_translate_1): Adjust.
6269         (fully_constant_expression): Split out vn_reference handling to ...
6270         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
6271         Fold reads from constant strings.
6272         (vn_reference_lookup): Handle fully constant references.
6273         (vn_reference_lookup_pieces): Likewise.
6274         * Makefile.in (expmed.o-warn): Add -Wno-error.
6275
6276 2010-04-07  Martin Jambor  <mjambor@suse.cz>
6277
6278         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
6279
6280 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
6281
6282         PR driver/41594
6283         * gcc.c: Add -static-libstdc++ to list of recognized options.
6284
6285 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6286
6287         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
6288
6289 2010-04-07  Richard Guenther  <rguenther@suse.de>
6290
6291         PR middle-end/42617
6292         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
6293         bases build simple mem attributes to retain points-to information.
6294
6295 2010-04-07  Richard Guenther  <rguenther@suse.de>
6296
6297         PR middle-end/42617
6298         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
6299         preserve points-to related information.
6300
6301 2010-04-07  Richard Guenther  <rguenther@suse.de>
6302
6303         PR middle-end/42617
6304         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
6305         discard plain indirect references.
6306         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
6307         * tree.c (tree_nop_conversion): Likewise.
6308
6309 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
6310
6311         PR debug/43628
6312         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
6313
6314 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
6315
6316         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
6317         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
6318
6319 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6320
6321         * tree-if-conv.c: Fix indentation and comments.
6322
6323 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6324
6325         * tree-if-conv.c: Sort static functions in topological order.
6326
6327 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
6328
6329         * tree-if-conv.c: Fix indentation and comments.
6330
6331 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6332
6333         PR middle-end/43519
6334         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
6335         lang_hooks.types.type_for_size instead of
6336         build_nonstandard_integer_type.
6337         When converting an unsigned type to signed, double its precision.
6338         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
6339         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
6340         (graphite_create_new_loop_guard): When ub + 1 wraps around,
6341         use lb <= ub.
6342
6343 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6344
6345         PR middle-end/43519
6346         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
6347         POINTER_PLUS_EXPR for pointer types.
6348
6349 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6350
6351         PR middle-end/43519
6352         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
6353         * graphite-clast-to-gimple.c: Include langhooks.h.
6354         (max_signed_precision_type): New.
6355         (max_precision_type): Takes two types as arguments.
6356         (precision_for_value): New.
6357         (precision_for_interval): New.
6358         (gcc_type_for_interval): New.
6359         (gcc_type_for_value): New.
6360         (gcc_type_for_clast_term): New.
6361         (gcc_type_for_clast_red): New.
6362         (gcc_type_for_clast_bin): New.
6363         (gcc_type_for_clast_expr): Split up into several functions.
6364         (gcc_type_for_clast_eq): Rewritten.
6365         (compute_bounds_for_level): New.
6366         (compute_type_for_level_1): New.
6367         (compute_type_for_level): New.
6368         (gcc_type_for_cloog_iv): Removed.
6369         (gcc_type_for_iv_of_clast_loop): Rewritten.
6370         (graphite_create_new_loop): Compute the lower and upper bound types
6371         with gcc_type_for_clast_expr.
6372         (graphite_create_new_loop_guard): Same.
6373         (find_cloog_iv_in_expr): Removed.
6374         (compute_cloog_iv_types_1): Removed.
6375         (compute_cloog_iv_types): Removed.
6376         (gloog): Do not call compute_cloog_iv_types.
6377         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
6378         GBB_CLOOG_IV_TYPES.
6379         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
6380         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
6381         (GBB_CLOOG_IV_TYPES): Removed.
6382
6383 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6384
6385         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
6386         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
6387         (detect_commutative_reduction): Same.
6388
6389 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6390
6391         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
6392         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
6393         argument.
6394         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
6395         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
6396         (rewrite_commutative_reductions_out_of_ssa): Same.
6397         * passes.c (execute_function_todo): Call verify_ssa for every pass
6398         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
6399         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
6400         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
6401         with an extra argument.
6402         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
6403         verify_ssa only when the extra argument is true.
6404         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
6405         with an extra argument.
6406         (tree_transform_and_unroll_loop): Same.
6407
6408 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
6409
6410         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
6411         for all the passes of the LNO having LOOP_CLOSED_SSA.
6412         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
6413         * tree-loop-distribution.c (pass_loop_distribution): Same.
6414         * tree-pass.h (TODO_verify_loops): Removed.
6415         * tree-ssa-loop.c (pass_tree_loop_init): Same.
6416         (pass_lim): Same.
6417         (pass_tree_unswitch): Same.
6418         (pass_predcom): Same.
6419         (pass_vectorize): Same.
6420         (pass_linear_transform): Same.
6421         (pass_graphite_transforms): Same.
6422         (pass_iv_canon): Same.
6423         (pass_complete_unroll): Same.
6424         (pass_complete_unrolli): Same.
6425         (pass_parallelize_loops): Same.
6426         (pass_loop_prefetch): Same.
6427         (pass_iv_optimize): Same.
6428
6429 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
6430
6431         PR middle-end/32824
6432         * passes.c (init_optimization_passes): Move pass_lim before
6433         pass_copy_prop and pass_dce_loop.
6434
6435 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6436
6437         PR target/43667
6438         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
6439         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
6440         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
6441         MULTI_* defines for 4 argument vpermil2p* builtins.
6442
6443 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6444
6445         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
6446         * config/i386/i386.c (x86_maybe_negate_const_int): New.
6447         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
6448         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
6449         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
6450         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
6451         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
6452         Use x86_maybe_negate_const_int to output insn mnemonic.
6453         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
6454         check from instruction predicate.  Update comments.
6455         * config/i386/sync.md (sync_add<mode>): Use
6456         x86_maybe_negate_const_int to output insn mnemonic.
6457
6458 2010-04-06  Jan Hubicka  <jh@suse.cz>
6459
6460         PR tree-optimization/42906
6461         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
6462         IGNORE_SELF argument.  Set visited_control_parents for fully
6463         processed BBs.
6464         (find_obviously_necessary_stmts): Update call of
6465         mark_control_dependent_edges_necessary.
6466         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
6467
6468 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
6469
6470         * config/i386/i386.md: Remove comment about 'e' and 'E'
6471         operand modifier.
6472
6473 2010-04-06  Richard Guenther  <rguenther@suse.de>
6474
6475         PR tree-optimization/43627
6476         * tree-vrp.c (extract_range_from_unary_expr): Widenings
6477         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
6478         not varying.
6479
6480 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
6481
6482         * BASE-VER: Change to 4.6.0.
6483
6484         PR target/43638
6485         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
6486         handling.
6487
6488 2010-04-06  Richard Guenther  <rguenther@suse.de>
6489
6490         PR middle-end/43661
6491         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
6492
6493 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6494
6495         * doc/invoke.texi (Optimize Options): Document that LTO
6496         won't remove object access purely due to incompatible
6497         declarations.
6498
6499 2010-04-04  Matthias Klose  <doko@ubuntu.com>
6500
6501         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
6502         Initialize variable.
6503
6504 2010-04-03  Richard Guenther  <rguenther@suse.de>
6505
6506         PR middle-end/42509
6507         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
6508         require a non-NULL MEM_OFFSET.
6509
6510 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
6511
6512         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
6513         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
6514         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
6515         config/alpha/predicates.md, config/arm/arm.md,
6516         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
6517         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
6518         config/darwin9.h, config/darwin.c, config/darwin.h,
6519         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
6520         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
6521         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
6522         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
6523         config/mips/mips.md, config/mn10300/mn10300.c,
6524         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
6525         config/rs6000/aix.h, config/rs6000/dfp.md,
6526         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
6527         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
6528         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
6529         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
6530         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
6531         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
6532         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
6533         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
6534         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
6535         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
6536         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
6537         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
6538         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
6539         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
6540         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
6541         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
6542         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
6543         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
6544         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
6545         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
6546         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
6547         opt-functions.awk, opth-gen.awk, params.def, passes.c,
6548         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
6549         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
6550         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
6551         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
6552         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
6553         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
6554         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
6555         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
6556         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
6557         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
6558         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
6559         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
6560         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
6561         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
6562
6563 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6564
6565         PR other/43620
6566         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
6567         * aclocal.m4: Regenerate.
6568
6569 2010-04-02  Richard Guenther  <rguenther@suse.de>
6570
6571         PR tree-optimization/43629
6572         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
6573         if we have seen a constant value.
6574
6575 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
6576
6577         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
6578
6579 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
6580
6581         PR target/43469
6582         * arm.c (legitimize_tls_address): Adjust call to
6583         gen_tls_load_dot_plus_four.
6584         (arm_note_pic_base): New function.
6585         (arm_cannot_copy_insn_p): Use it.
6586         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
6587         constraint.
6588
6589 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6590
6591         PR bootstrap/43531
6592
6593         Revert:
6594         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6595
6596         * Makefile.in ($(out_object_file)): Depend on
6597         gt-$(basename $(notdir $(out_file))).h.
6598
6599 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
6600
6601         * config.gcc (lm32-*-rtems*): Add t-lm32.
6602
6603 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
6604
6605         * config.gcc: Add lm32-*-rtems*.
6606         * config/lm32/rtems.h: New file.
6607
6608 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
6609
6610         PR target/42609
6611         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
6612
6613 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
6614
6615         * dwarf2out.c (output_compilation_unit_header): For
6616         -gdwarf-4 use version 4 instead of version 3.
6617         (output_line_info): For version 4 and above emit additional
6618         maximum ops per insn header field.
6619         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
6620
6621         * dwarf2out.c (is_c_family, is_java): Remove.
6622         (lower_bound_default): New function.
6623         (add_bound_info, gen_descr_array_type_die): Use it.
6624
6625 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
6626
6627         PR debug/43325
6628         * dwarf2out.c (gen_variable_die): Allow debug info for variable
6629         re-declaration when it happens in a function.
6630
6631 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
6632
6633         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
6634         (cgraph_remove_function_insertion_hook): Same.
6635         (cgraph_call_function_insertion_hooks): Same.
6636
6637 2010-04-01  Richard Guenther  <rguenther@suse.de>
6638
6639         PR middle-end/43614
6640         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
6641         and TREE_THIS_VOLATILE.
6642         (copy_ref_info): Likewise.
6643         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
6644         * tree.c (build6_stat): Ignore side-effects of all but arg5
6645         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
6646         TARGET_MEM_REF.
6647
6648 2010-04-01  Richard Guenther  <rguenther@suse.de>
6649
6650         PR tree-optimization/43607
6651         * ipa-type-escape.c (check_call): Do not access non-existing
6652         arguments.
6653
6654 2010-04-01  Richard Guenther  <rguenther@suse.de>
6655
6656         PR middle-end/43602
6657         Revert
6658         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6659                     Jack Howarth <howarth@bromo.med.uc.edu>
6660
6661         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6662         variables TLS.
6663
6664 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6665
6666         * doc/install.texi (Prerequisites): Document libelf usability on
6667         IRIX 5/6 and Solaris 2.
6668         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
6669         Update GNU as, GNU ld requirements.
6670         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
6671         Document Sun Studio compiler download.
6672         Update and simplify as, ld recommendations.
6673         (Specific, *-*-solaris2.7): Note obsoletion, removal.
6674
6675 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6676
6677         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
6678         with_tune_32 to pentium4.
6679
6680 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
6681
6682         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
6683
6684 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6685
6686         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
6687         obsoletion, removal.
6688         Update IDO URL.
6689         Document GNU as requirement.
6690         Update configure requirements.
6691         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
6692         Recomment IRIX 6.5.18+.
6693         Document IDF/IDL requirement.
6694         Document GNU as requirement.
6695         Document GNU ld bootstrap failure.
6696         Remove freeware.sgi.com reference.
6697
6698 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6699
6700         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
6701         UNIX V4.0, V5.0 obsoletion, removal.
6702         Remove --with-gc=simple reference.
6703         Update VM requirements during bootstrap.
6704         Remove -oldas bootstrap description.
6705         Update binutils reference.
6706         Remove comparison failure note.
6707
6708 2010-03-31  Richard Guenther  <rguenther@suse.de>
6709             Zdenek Dvorak  <ook@ucw.cz>
6710             Sebastian Pop  <sebastian.pop@amd.com>
6711
6712         PR middle-end/43464
6713         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
6714         with multiple arguments.
6715         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
6716
6717 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6718
6719         * graphite-dependences.c (print_pddr): Call print_pdr with an
6720         extra argument.
6721         * graphite-poly.c (debug_pdr): Add an extra argument for the
6722         verbosity level.
6723         (print_pdr): Same.
6724         (print_pbb_domain): Same.
6725         (print_pbb): Same.
6726         (print_scop_context): Same.
6727         (print_scop): Same.
6728         (print_cloog): Same.
6729         (debug_pbb_domain): Same.
6730         (debug_pbb): Same.
6731         (print_pdrs): Same.
6732         (debug_pdrs): Same.
6733         (debug_scop_context): Same.
6734         (debug_scop): Same.
6735         (debug_cloog): Same.
6736         (print_scop_params): Same.
6737         (debug_scop_params): Same.
6738         (print_iteration_domain): Same.
6739         (print_iteration_domains): Same.
6740         (debug_iteration_domain): Same.
6741         (debug_iteration_domains): Same.
6742         (print_scattering_function): Same.
6743         (print_scattering_functions): Same.
6744         (debug_scattering_function): Same.
6745         (debug_scattering_functions): Same.
6746         * graphite-poly.h (debug_pdr): Update declaration.
6747         (print_pdr): Same.
6748         (print_pbb_domain): Same.
6749         (print_pbb): Same.
6750         (print_scop_context): Same.
6751         (print_scop): Same.
6752         (print_cloog): Same.
6753         (debug_pbb_domain): Same.
6754         (debug_pbb): Same.
6755         (print_pdrs): Same.
6756         (debug_pdrs): Same.
6757         (debug_scop_context): Same.
6758         (debug_scop): Same.
6759         (debug_cloog): Same.
6760         (print_scop_params): Same.
6761         (debug_scop_params): Same.
6762         (print_iteration_domain): Same.
6763         (print_iteration_domains): Same.
6764         (debug_iteration_domain): Same.
6765         (debug_iteration_domains): Same.
6766         (print_scattering_function): Same.
6767         (print_scattering_functions): Same.
6768         (debug_scattering_function): Same.
6769         (debug_scattering_functions): Same.
6770
6771 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6772
6773         * graphite-poly.c (print_scattering_function_1): New.
6774         (print_scattering_function): Call it.
6775         (print_scop_params): Remove spaces at the end of lines.
6776         (print_cloog): New.
6777         (debug_cloog): New.
6778         * graphite-poly.h (print_cloog): Declared.
6779         (debug_cloog): Declared.
6780
6781 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6782
6783         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
6784         in loop->header.
6785         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
6786         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
6787         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
6788         to switch between adding the IV bump in loop->latch or in loop->header.
6789
6790 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
6791
6792         * graphite-poly.c (print_scattering_function): Pretty print following
6793         the scoplib format.
6794         (print_pdr): Same.
6795         (print_pbb_domain): Same.
6796         (dump_gbb_cases): Same.
6797         (dump_gbb_conditions): Same.
6798         (print_pdrs): Same.
6799         (print_pbb): Same.
6800         (print_scop_params): Same.
6801         (print_scop_context): Same.
6802         (print_scop): Same.
6803         (print_pbb_body): New.
6804         (lst_indent_to): New.
6805         (print_lst): Start new lines with a #.
6806         * graphite-poly.h (pbb_bb): New.
6807         (pbb_index): Use pbb_bb.
6808         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
6809         disjuncts.
6810         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
6811
6812 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6813
6814         * dwarf2out.c (size_of_die): For -gdwarf-4 use
6815         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
6816         and 0 instead of 1 for dw_val_class_flag.
6817         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
6818         dw_val_class_range_list, dw_val_class_loc_list,
6819         dw_val_class_lineptr and dw_val_class_macptr, use
6820         DW_FORM_flag_present for dw_val_class_flag and
6821         DW_FORM_exprloc for dw_val_class_loc.
6822         (output_die): For -gdwarf-4 print dw_val_class_loc
6823         size as uleb128 instead of 1 or 2 bytes and don't print
6824         anything for dw_val_class_flag.
6825
6826         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
6827         instead of cselib_lookup following by tweaking locs->setting_insn.
6828
6829         PR bootstrap/43596
6830         * cselib.c (cselib_process_insn): Clear cselib_current_insn
6831         even before returning from label, setjmp call or volatile asm
6832         handling.
6833
6834 2010-03-31  Richard Guenther  <rguenther@suse.de>
6835
6836         PR middle-end/43600
6837         * cgraphunit.c (cgraph_output_in_order): Do not allocate
6838         temporary data on stack.
6839
6840 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6841
6842         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
6843         (PUSHSECTION_ASM_OP): Remove.
6844         (POPSECTION_ASM_OP): Remove.
6845         (PUSHSECTION_FORMAT): Remove.
6846         * config/sol2.h (PUSHSECTION_FORMAT): Define.
6847         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
6848         * config/sol2.c (solaris_output_init_fini): Use it.
6849
6850 2010-03-31  Jie Zhang  <jie@codesourcery.com>
6851
6852         PR 43574
6853         * opt-functions.awk (var_type_struct): Use signed char type
6854         for simple variables.
6855
6856 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6857
6858         * config/sol2.c: Include output.h.
6859         (solaris_assemble_visibility): New function.
6860         * config/t-sol2 (sol2.o): Add output.h dependency.
6861         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
6862         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
6863         Redefine.
6864
6865 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
6866
6867         PR target/43580
6868         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
6869         V2SImode or XFmode on PRE_DEC.
6870
6871         PR debug/43557
6872         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
6873         BLKmode.
6874
6875 2010-03-31  Jie Zhang  <jie@codesourcery.com>
6876
6877         PR 43562
6878         * reload.h (caller_save_initialized_p): Declare.
6879         * toplev.c (backend_init_target): Don't call
6880         init_caller_save but set caller_save_initialized_p to false.
6881         * caller-save.c (caller_save_initialized_p): Define.
6882         (init_caller_save): Check caller_save_initialized_p.
6883         * ira.c (ira): Call init_caller_save if flag_caller_saves.
6884
6885 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6886
6887         PR target/39048
6888         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
6889         and soft-fp/t-softfp to tmake_file.
6890         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
6891         (LIBGCC2_TF_CEXT): Define.
6892         (TF_SIZE): Define.
6893
6894 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
6895
6896         PR debug/42977
6897         * cselib.c (n_useless_values): Document handling of debug locs.
6898         (n_useless_debug_values, n_debug_values): New variables.
6899         (new_elt_loc_list): Don't add to debug values, keep count.
6900         (promote_debug_loc): New.
6901         (cselib_reset_table): Zero new variables.
6902         (entry_and_rtx_equal_p): Promote debug locs.
6903         (discard_useless_locs): Increment n_useless_debug_values for
6904         debug values.
6905         (remove_useless_values): Adjust n_useless_values and n_debug_values
6906         with n_useless_debug_values.
6907         (add_mem_for_addr): Promote debug locs.
6908         (cselib_lookup_mem): Likewise.
6909         (cselib_lookup_addr): Renamed to...
6910         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
6911         (cselib_log_lookup): ... this.  Turn into...
6912         (cselib_lookup_addr): ... new wrapper.
6913         (cselib_lookup_from_insn): New.
6914         (cselib_invalidate_regno): Increment n_useless_debug_values for
6915         debug values.
6916         (cselib_invalidate_mem): Likewise.
6917         (cselib_process_insn): Take n_deleted and n_debug_values into
6918         account to guard remove_useless_value call.
6919         (cselib_finish): Zero n_useless_debug_values.
6920         * cselib.h (cselib_lookup_from_insn): Declare.
6921         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
6922         (sched_analyze_2): Likewise.
6923
6924 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
6925
6926         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
6927         functions.
6928         (adjust_mems): Replace narrowing SUBREG of expression containing
6929         just PLUS, MINUS, MULT and ASHIFT of registers and constants
6930         with operations in the narrower mode.
6931
6932         PR debug/43593
6933         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
6934         regs_invalidated_by_call instead all call_used_reg_set registers.
6935
6936 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
6937
6938         PR middle-end/43430
6939         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
6940         pointer comparisons with types_compatible_p.
6941         * tree-vect-stmts.c (vectorizable_call): Same.
6942         (vectorizable_condition): Same.
6943
6944 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
6945
6946         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
6947         stack check if the mask would be zero.
6948
6949 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
6950             Jack Howarth <howarth@bromo.med.uc.edu>
6951
6952         * tree-profile.c (tree_init_ic_make_global_vars): Make static
6953         variables TLS.
6954
6955 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
6956
6957         PR other/25232
6958         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
6959         and __unordtf2.
6960         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
6961         Include ___unordxf2 and ___unordtf2.
6962         * config/i386/libgcc-glibc.ver: Do not define inheritance from
6963         GCC_4.4.0 here.
6964
6965 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
6966
6967         * config/lm32/t-lm32: New file.
6968         * config.gcc: Use the above file when targetting lm32.
6969
6970 2010-03-28  Duncan Sands  <baldrick@free.fr>
6971
6972         * Makefile.in (PLUGIN_HEADERS): Add except.h.
6973
6974 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
6975
6976         PR middle-end/43431
6977         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
6978         Improve vectorization cost model diagnostic.
6979
6980 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
6981
6982         PR middle-end/43436
6983         * tree-vect-data-refs.c (vect_analyze_data_refs): When
6984         compute_data_dependences_for_loop returns false, early exit
6985         and output an extra diagnostic for the failed data reference
6986         analysis.
6987
6988 2010-03-29  Richard Guenther  <rguenther@suse.de>
6989
6990         PR tree-optimization/43560
6991         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
6992         (can_sm_ref_p): Treat stores to readonly locations as trapping.
6993
6994 2010-03-29  Jie Zhang  <jie@codesourcery.com>
6995
6996         PR 43564
6997         * toplev.c (process_options): Set optimization_default_node
6998         and optimization_current_node.
6999         * opts.c (decode_options): Don't set optimization_default_node
7000         and optimization_current_node.
7001
7002 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
7003
7004         * config/rtems.h: Abandon -qrtems_debug.
7005
7006 2010-03-28  Jan Hubicka  <jh@suse.cz>
7007
7008         PR tree-optimization/43505
7009         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
7010         map should not be copied.
7011
7012 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7013
7014         PR middle-end/41674
7015         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
7016         cdtors, set DECL_PRESERVE_P.
7017         * ipa.c (cgraph_externally_visible_p): Return true if declaration
7018         should be preseved.
7019
7020 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
7021
7022         PR tree-optimization/43528
7023         * stor-layout.c (place_field): Check that constant fits into
7024         unsigned HWI when skipping calculation of MS bitfield layout.
7025
7026 2010-03-27  Jan Hubicka  <jh@suse.cz>
7027
7028         PR middle-end/43391
7029         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
7030         notice_global_symbol work.
7031
7032 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
7033
7034         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
7035         instead of dwarf2out_decl.
7036         (struct var_loc_node): Remove section_label field.
7037         (dwarf2out_function_decl): New function.
7038         (dwarf2out_var_location): Don't set section_label field.
7039         (dwarf2out_begin_function): Don't empty decl_loc_table here.
7040
7041 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7042
7043         PR tree-optimization/43544
7044         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
7045         First argument for builtin vectorized function hook is now a
7046         tree to be able to distinguish between machine specific and
7047         standard builtins.
7048         * targhooks.c (default_builtin_vectorized_function): Ditto.
7049         * targhooks.h (default_builtin_vectorized_function): Ditto.
7050         * target.h (struct gcc_target): Ditto.
7051         * tree-vect-stmts.c (vectorizable_function): Ditto.
7052         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
7053         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
7054         Ditto.
7055
7056 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
7057
7058         PR c/43381
7059         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
7060         nested binding iff it is a FUNCTION_DECL.
7061         (store_parm_decls_newstyle): Pass nested=true to bind for
7062         FUNCTION_DECLs amongst parameters.
7063
7064 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7065
7066         * var-tracking.c (vt_expand_loc_callback): Don't run
7067         cselib_expand_value_rtx_cb in dummy mode if
7068         cselib_dummy_expand_value_rtx_cb returned false.
7069
7070         * var-tracking.c (emit_note_insn_var_location): For one part
7071         notes with offset 0, don't add EXPR_LIST around the location.
7072         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
7073         add_location_or_const_value_attribute): Adjust for that change.
7074
7075         PR debug/43540
7076         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
7077         into first operand and location into second.
7078         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
7079         dw_cfi_oprnd_loc for DW_CFA_expression.
7080         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
7081         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
7082         assume first argument is regnum and second argument is location.
7083
7084 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7085
7086         PR target/42113
7087         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
7088         of scratch register to DImode.  Split to DImode comparison operator.
7089         Use SImode subreg of scratch register in the multiplication.
7090         (*cmp_sadd_sidi): Ditto.
7091         (*cmp_ssub_si): Ditto.
7092         (*cmp_ssub_sidi): Ditto.
7093
7094 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
7095
7096         PR target/43524
7097         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
7098         Remove invalid assert and wrong comment.
7099
7100 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
7101
7102         PR debug/43516
7103         * flags.h (final_insns_dump_p): New extern.
7104         * final.c (final_insns_dump_p): New variable.
7105         (rest_of_clean_state): Set it before -fdump-final-insns=
7106         dumping, clear afterwards.
7107         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
7108         MEM_ALIAS_SET on MEMs.
7109
7110 2010-03-26  David S. Miller  <davem@davemloft.net>
7111
7112         * configure.ac: Fix sparc GOTDATA_OP bug check.
7113         * configure: Rebuild.
7114
7115 2010-03-26  Alan Modra  <amodra@gmail.com>
7116
7117         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
7118
7119 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7120
7121         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
7122         TLS_SECTION_ASM_FLAG.
7123
7124 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
7125
7126         PR bootstrap/43511
7127         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
7128         Clear first_function_block_is_cold.
7129
7130         PR c/43385
7131         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
7132         argument if the argument is truth_value_p.
7133
7134 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7135
7136         * config/rs6000/constraints.md: Update copyright year for my changes.
7137
7138         PR target/43484
7139         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
7140         used in reg+reg addressing, swap registers.
7141
7142 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7143
7144         PR debug/43293
7145         * target.h (struct gcc_target): Add code_end hook.
7146         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
7147         if not yet defined.
7148         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
7149         * toplev.c (compile_file): Call targetm.asm_out.code_end
7150         hook before unwind info/debug info output.
7151         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
7152         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
7153         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7154         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
7155         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
7156         * config/i386/i386.c (ix86_file_end): Renamed to...
7157         (ix86_code_end): ... this.  Make static.  Don't call
7158         file_end_indicate_exec_stack.  Emit unwind info using
7159         final_start_function/final_end_function.
7160         (darwin_x86_file_end): Remove.
7161         (TARGET_ASM_CODE_END): Define.
7162         * config/i386/i386.h (TARGET_ASM_FILE_END,
7163         NEED_INDICATE_EXEC_STACK): Don't define.
7164         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
7165         (TARGET_ASM_FILE_END): Define to darwin_file_end.
7166         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
7167         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
7168
7169         PR target/43498
7170         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
7171         at the beginning and final_end_function at the end.
7172         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
7173
7174 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7175
7176         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
7177         and Sun as TLS syntax.
7178         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
7179         * configure: Regenerate.
7180         * config.in: Regenerate.
7181         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
7182         (default_elf_asm_named_section): Use it.
7183         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
7184         (i386_output_dwarf_dtprel): Likewise.
7185         (output_addr_const_extra): Likewise.
7186         (output_pic_addr_const): Lowercase @GOTTPOFF.
7187         (output_addr_const_extra): Likewise.
7188         (output_pic_addr_const): Lowercase @GOTNTPOFF.
7189         (output_addr_const_extra): Likewise.
7190         (output_pic_addr_const): Lowercase @INDNTPOFF.
7191         (output_addr_const_extra): Likewise.
7192         (output_pic_addr_const): Lowercase @NTPOFF.
7193         (output_addr_const_extra): Likewise.
7194         (output_pic_addr_const): Lowercase @TPOFF.
7195         (output_addr_const_extra): Likewise.
7196         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
7197         (*tls_global_dynamic_64): Likewise.
7198         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
7199         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
7200
7201         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
7202         (ASM_OUTPUT_TLS_COMMON): Use it.
7203         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
7204
7205         PR target/38118
7206         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
7207         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
7208         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
7209         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
7210         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7211         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
7212
7213 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7214
7215         * config/i386/i386.c (override_options): Don't accept
7216         -mtls-dialect=sun any longer.
7217         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
7218         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
7219         (*tls_local_dynamic_base_32_sun): Likewise.
7220         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
7221
7222 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
7223
7224         PR debug/43508
7225         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
7226         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
7227
7228         PR debug/43479
7229         * ira.c (adjust_cleared_regs): New function.
7230         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
7231
7232         PR debug/19192
7233         PR debug/43479
7234         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
7235         from gimple_block.
7236         * expr.c (expand_expr_real): Restore previous
7237         curr_insn_source_location and curr_insn_block after
7238         expand_expr_real_1 call.
7239         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
7240         instead of expand_expr_real_1.
7241
7242 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
7243
7244         PR rtl-optimization/43413
7245         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
7246         hard regs too.
7247
7248 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
7249
7250         PR target/43348
7251         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
7252         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
7253
7254 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
7255
7256         * config/i386/i386.c (ix86_target_string): Add -mfma.
7257         Fix a typo in comment.
7258
7259 2010-03-22  Mike Stump  <mikestump@comcast.net>
7260
7261         PR target/23071
7262         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
7263         Don't overly align based upon packed packed fields.
7264
7265 2010-03-22  Jason Merrill  <jason@redhat.com>
7266
7267         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
7268         Use () rather than [], and move before the element type.
7269
7270 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7271
7272         * doc/configfiles.texi (Configuration Files): Removed
7273         fixinc/Makefile*, intl/Makefile.*.
7274         * doc/makefile.texi: Fixed markup. Abstract from version
7275         control system used.
7276         (Makefile): Removed obsolete gcc/java/parse.y example.
7277         * doc/sourcebuild.texi: Likewise.
7278         (Top Level): Added config, gnattools, libdecnumber, libgcc,
7279         libgomp, libssp.  Removed fastjar.
7280         (Miscellaneous Docs): Clarify location.
7281         Added COPYING3, COPYING3.LIB.
7282         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
7283
7284 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7285
7286         PR target/38085
7287         * config/i386/i386.c (x86_function_profiler)
7288         [!NO_PROFILE_COUNTERS]: Fix typo.
7289         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
7290         instead of callq.
7291
7292 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
7293             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7294
7295         * doc/sourcebuild.texi (Test Directives): Split into six
7296         subsections, with most of the current text in new subsections
7297         Directives, Selectors, and Final Actions.
7298         (Directives): Split list of test directives into multiple
7299         subsubsections.
7300         (Selectors): Describe use and syntax of selectors.
7301         (Effective-Target Keywords): Describe all existing keywords.
7302         (Add Options): Describe features for dg-add-options.
7303         (Require Support): Describe variants of dg-require-support.
7304         (Final Actions): Describe commands to use in dg-final.
7305
7306 2010-03-22  Michael Matz  <matz@suse.de>
7307
7308         PR middle-end/43475
7309         * recog.c (validate_replace_rtx_group): Replace also in
7310         REG_EQUAL and REG_EQUIV notes.
7311
7312 2010-03-22  Richard Guenther  <rguenther@suse.de>
7313
7314         PR tree-optimization/43390
7315         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
7316         sure vector extracts are type correct.
7317
7318 2010-03-22  Richard Guenther  <rguenther@suse.de>
7319
7320         PR middle-end/40106
7321         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
7322         x * sqrt (x) even when optimizing for size if the target
7323         has native support for sqrt.
7324
7325 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
7326
7327         * varasm.c (make_decl_rtl_for_debug): Also clear
7328         flag_mudflap for the duration of make_decl_rtl call.
7329
7330         PR debug/43443
7331         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
7332         locs from preserved VALUEs.
7333
7334 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7335
7336         PR middle-end/42718
7337         * pa.md (movmemsi): Set align to one if zero.
7338         (movmemdi): Likewise.
7339
7340 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
7341
7342         PR target/42321
7343         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
7344         with their corresponding prologue pushes.
7345
7346 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
7347
7348         PR target/43156
7349         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
7350         at the begining or end.
7351         (spu_expand_epilogue): Likewise.
7352
7353 2010-03-20  Richard Guenther  <rguenther@suse.de>
7354
7355         PR rtl-optimization/43438
7356         * combine.c (make_extraction): Properly zero-/sign-extend an
7357         extraction of the low part of a CONST_INT.  Also handle
7358         CONST_DOUBLE.
7359
7360 2010-03-19  Mike Stump  <mikestump@comcast.net>
7361
7362         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
7363         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
7364         (override_options): Use SUBTARGET32_DEFAULT_CPU.
7365
7366 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
7367
7368         PR c/43211
7369         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
7370         an error.
7371
7372 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
7373
7374         PR rtl-optimization/42258
7375         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
7376         use that may match DEF.
7377
7378         PR target/40697
7379         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
7380         the cost of loading the constant rather than assuming
7381         COSTS_N_INSNS (1).
7382         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
7383         outer code is AND, do the same tests as the andsi3 expander and
7384         return COSTS_N_INSNS (1) if and is cheap.
7385
7386         * optabs.c (avoid_expensive_constant): Fix formatting.
7387
7388 2010-03-19  Michael Matz  <matz@suse.de>
7389
7390         PR c++/43116
7391         * attribs.c (decl_attributes): When rebuilding a function pointer
7392         type use the same qualifiers as the original pointer type.
7393
7394 2010-03-19  Martin Jambor  <mjambor@suse.cz>
7395
7396         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
7397         and is_gimple_ip_invariant_address.
7398
7399 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7400
7401         Revert
7402         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7403
7404         * config/arm/arm.c (arm_override_options): Turn off
7405         flag_dwarf2_cfi_asm for AAPCS variants.
7406
7407 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7408
7409         PR target/43399
7410         * config/arm/arm.c (emit_multi_reg_push): Update comments.
7411         Use PRE_MODIFY instead of PRE_DEC.
7412         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
7413         (vfp_emit_fstmd): Likewise.
7414
7415 2010-03-19  Michael Matz  <matz@suse.de>
7416
7417         PR target/43305
7418         * builtins.c (expand_builtin_interclass_mathfn,
7419         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
7420         if that fails.
7421
7422 2010-03-19  Richard Guenther  <rguenther@suse.de>
7423
7424         PR tree-optimization/43415
7425         * tree-ssa-pre.c (phi_translate): Split out worker to ...
7426         (phi_translate_1): ... this.
7427         (phi_translate): Move all caching here.  Cache all NARY
7428         and REFERENCE translations.
7429
7430 2010-03-19  David S. Miller  <davem@davemloft.net>
7431
7432         With help from Eric Botcazou.
7433         * config/sparc/sparc.c: Include dwarf2out.h.
7434         (emit_pic_helper): Delete.
7435         (pic_helper_symbol_name): Delete.
7436         (pic_helper_emitted_p): Delete.
7437         (pic_helper_needed): New.
7438         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
7439         (get_pc_thunk_name): New.
7440         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
7441         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
7442         Set pic_helper_needed to true.  Don't call emit_pic_helper.
7443         (sparc_expand_prologue): Update load_pic_register call.
7444         (sparc_output_mi_thunk): Likewise.
7445         (sparc_file_end): Emit a hidden comdat symbol for the PIC
7446         thunk if possible.  Output CFI information as needed.
7447
7448 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
7449             Jack Howarth <howarth@bromo.med.uc.edu>
7450
7451         PR target/36399
7452         * config/i386/i386.h: Fix ABI on darwin x86-32.
7453
7454 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
7455
7456         * tree.h: Declare make_decl_rtl_for_debug.
7457         * varasm.c (make_decl_rtl_for_debug): New.
7458         * dwarf2out.c (rtl_for_decl_location): Call it.
7459         * cfgexpand.c (expand_debug_expr): Call it.
7460
7461 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7462
7463         PR bootstrap/43399
7464         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
7465         mem_mode.
7466
7467         PR bootstrap/43403
7468         * var-tracking.c (vt_init_cfa_base): Do nothing if
7469         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
7470
7471 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
7472
7473         PR debug/42873
7474         * var-tracking.c (canonicalize_vars_star): New.
7475         (dataflow_post_merge_adjust): Use it.
7476
7477 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
7478
7479         PR debug/43058
7480         * var-tracking.c (non_suitable_const): New function.
7481         (add_uses): For DEBUG_INSNs with constants, don't record any
7482         value, instead just the constant value itself.
7483         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
7484         is not VAR_LOC_UNKNOWN_P, set var to the constant.
7485         (emit_notes_in_bb): Likewise.
7486         (emit_note_insn_var_location): For onepart variables if
7487         cur_loc is a VOIDmode constant, use DECL_MODE.
7488
7489 2010-03-18  Martin Jambor  <mjambor@suse.cz>
7490
7491         PR middle-end/42450
7492         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
7493         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
7494         all non-clones.  Moved call redirection...
7495         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
7496         (cgraph_materialize_all_clones): Dispose of all
7497         combined_args_to_skip bitmaps.
7498         (verify_cgraph_node): Do not check for edges pointing to wrong
7499         nodes in inline clones.
7500         * tree-inline.c (copy_bb): Call
7501         cgraph_redirect_edge_call_stmt_to_callee.
7502         * ipa.c (cgraph_remove_unreachable_nodes): Call
7503         cgraph_node_remove_callees even when there are used clones.
7504
7505 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7506
7507         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
7508
7509 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
7510
7511         PR target/43383
7512         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
7513         for 32bit.
7514
7515 2010-03-18  Michael Matz  <matz@suse.de>
7516
7517         PR middle-end/43419
7518         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
7519         into sqrt(x) if we need to preserve signed zeros.
7520
7521 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
7522             Eric Botcazou  <ebotcazou@adacore.com>
7523
7524         PR rtl-optimization/43360
7525         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
7526         note if we don't know its invariant status.
7527
7528 2010-03-18  Michael Matz  <matz@suse.de>
7529
7530         PR tree-optimization/43402
7531         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
7532         PHI chains of ssa names registered for update.
7533
7534 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
7535
7536         PR target/42427
7537         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
7538         non-offsettable and pre_modify update addressing.
7539         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
7540         and "2" alternatives "#".
7541         (*movdd_softfloat32): Make all alternatives "#";
7542         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
7543         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
7544         (*movdf_softfloat32): Make all alternatives "#";
7545         (movdi): Use the new DIFD mode iterator to create a common splitter
7546         for movdi, movdf and movdd patterns.
7547
7548 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
7549
7550         * common.opt (dumpdir): Remove redundant tab.
7551
7552 2010-03-17  Martin Jambor  <mjambor@suse.cz>
7553
7554         PR tree-optimization/43347
7555         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
7556         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
7557
7558 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
7559
7560         PR rtl-optimization/42216
7561         * regrename.c (create_new_chain): New function, broken out from...
7562         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
7563         appending a use to an empty chain.
7564         (build_def_use): Remove previous changes that convert OP_INOUT to
7565         OP_OUT operands; instead detect the case where an OP_INOUT operand
7566         uses a previously untracked register and create an empty chain for it.
7567
7568 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7569
7570         * doc/extend.texi (Function Attributes): Rewrite unfinished
7571         sentence in ms_abi documentation.
7572
7573 2010-03-17  Alan Modra  <amodra@gmail.com>
7574
7575         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
7576         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
7577         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
7578         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
7579
7580 2010-03-16  Richard Henderson  <rth@redhat.com>
7581
7582         PR middle-end/43365
7583         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
7584         (lower_try_finally): Save and restore eh_seq around the expansion
7585         of the try-finally.
7586
7587 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7588
7589         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
7590         statements before splitting block.
7591
7592 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7593
7594         * doc/sourcebuild.texi (Testsuites): Fix markup.
7595         Use pathnames relative to gcc/testsuite.
7596         (Test Directives): Move description of how timeout is determined.
7597         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
7598         (C Tests): Correct gcc.misc-tests directory.
7599         Framework tests now live in gcc.test-framework.
7600
7601 2010-03-16  Richard Guenther  <rguenther@suse.de>
7602
7603         PR middle-end/43379
7604         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
7605         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
7606
7607 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
7608             Alexandre Oliva  <aoliva@redhat.com>
7609
7610         PR tree-optimization/42917
7611         * lambda-code.c (remove_iv): Skip debug statements.
7612         (lambda_loopnest_to_gcc_loopnest): Likewise.
7613         (not_interesting_stmt): Debug statements are not interesting.
7614
7615 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
7616
7617         PR debug/43051
7618         PR debug/43092
7619         * cselib.c (cselib_preserve_constants,
7620         cfa_base_preserved_val): New static variables.
7621         (preserve_only_constants): New function.
7622         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
7623         clear its REG_VALUES.  If cselib_preserve_constants, don't
7624         empty the whole hash table, but preserve there VALUEs with constants,
7625         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
7626         (cselib_preserve_cfa_base_value): New function.
7627         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
7628         (cselib_init): Change argument to int bitfield.  Set
7629         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
7630         is in it.
7631         (cselib_finish): Clear cselib_preserve_constants and
7632         cfa_base_preserved_val.
7633         * cselib.h (enum cselib_record_what): New enum.
7634         (cselib_init): Change argument to int.
7635         (cselib_preserve_cfa_base_value): New prototype.
7636         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
7637         * dse.c (dse_step1): Likewise.
7638         * cfgcleanup.c (thread_jump): Likewise.
7639         * sched-deps.c (sched_analyze): Likewise.
7640         * gcse.c (local_cprop_pass): Likewise.
7641         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
7642         If FN is non-NULL, call the callback always and whenever it returns
7643         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
7644         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
7645         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
7646         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
7647         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
7648         * var-tracking.c: Include recog.h.
7649         (bb_stack_adjust_offset): Remove.
7650         (vt_stack_adjustments): Don't call it, instead just gather the
7651         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
7652         (adjust_stack_reference): Remove.
7653         (compute_cfa_pointer): New function.
7654         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
7655         (struct adjust_mem_data): New type.
7656         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
7657         functions.
7658         (get_address_mode): New function.
7659         (replace_expr_with_values): Use it.
7660         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
7661         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
7662         (adjust_sets): Remove.
7663         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
7664         Use get_address_mode.
7665         (get_adjusted_src): Remove.
7666         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
7667         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
7668         (add_with_sets): Don't call adjust_sets.
7669         (fp_setter, vt_init_cfa_base): New functions.
7670         (vt_initialize): Change return type to bool.  Move most of pool etc.
7671         initialization to the beginning of the function from end.  Pass
7672         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
7673         If !frame_pointer_needed, call vt_stack_adjustment before mos
7674         vector is filled, call vt_init_cfa_base if argp/framep has been
7675         eliminated to sp.  If frame_pointer_needed and argp/framep has
7676         been eliminated to hard frame pointer, set
7677         hard_frame_pointer_adjustment and call vt_init_cfa_base after
7678         encountering fp setter in the prologue.  For MO_ADJUST, call
7679         log_op_type before pusing the op into mos vector, not afterwards.
7680         Call adjust_insn before cselib_process_insn/add_with_sets,
7681         call cancel_changes (0) afterwards.
7682         (variable_tracking_main_1): Adjust for vt_initialize calling
7683         vt_stack_adjustments and returning whether it succeeded or not.
7684
7685 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
7686
7687         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
7688         debug statements.
7689
7690 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
7691
7692         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
7693         has been set.
7694         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
7695         drap_reg has not been set.
7696
7697 2010-03-15  Michael Matz  <matz@suse.de>
7698
7699         PR middle-end/43300
7700         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
7701         use it to expand block copies.
7702         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
7703         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
7704         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
7705
7706 2010-03-15  Richard Guenther  <rguenther@suse.de>
7707
7708         PR tree-optimization/43367
7709         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
7710         elimination check.
7711
7712 2010-03-15  Richard Guenther  <rguenther@suse.de>
7713
7714         PR tree-optimization/43317
7715         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
7716
7717 2010-03-15  Martin Jambor  <mjambor@suse.cz>
7718
7719         PR tree-optimization/43141
7720         * tree-sra.c (create_abstract_origin): New function.
7721         (modify_function): Call create_abstract_origin.
7722
7723 2010-03-15  Chris Demetriou  <cgd@google.com>
7724
7725         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
7726         wasn't copied.
7727
7728 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7729
7730         PR middle-end/43354
7731         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
7732         call insert_out_of_ssa_copy for default definitions.
7733
7734 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7735
7736         * graphite-clast-to-gimple.c (my_long_long): Defined.
7737         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
7738         * graphite-sese-to-poly.c (my_long_long): Defined.
7739         (scop_ivs_can_be_represented): Use it.
7740
7741 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7742
7743         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
7744         graphite-max-bbs-per-function, and loop-block-tile-size.
7745         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
7746         with "maximum".
7747         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
7748
7749 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7750
7751         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
7752         forward declaration.
7753         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
7754         (add_upper_bounds_from_estimated_nit): New.
7755         (build_loop_iteration_domains): Use it.
7756
7757 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7758
7759         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
7760
7761 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7762
7763         PR middle-end/43306
7764         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
7765         should be an INTEGER_CST.  Also handle CASE_CONVERT.
7766
7767 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7768
7769         * graphite.c (graphite_initialize): To bound the number of bbs per
7770         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
7771         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
7772         * doc/invoke.texi: Document it.
7773
7774 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7775
7776         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
7777         * graphite-sese-to-poly.h (build_poly_scop): Same.
7778
7779 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
7780
7781         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
7782         the number of parameters in the scop.  Use as an upper bound
7783         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
7784         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
7785         * doc/invoke.texi: Document it.
7786
7787 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
7788
7789         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
7790         * doc/c-tree.texi: Remove.
7791         * doc/generic.texi: Merge c-tree.texi here.
7792         * doc/gccint.texi (Trees): Remove menu entry.
7793         (c-tree.texi): Remove @include.
7794         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
7795         * doc/languages.texi (Reading RTL): Ditto.
7796
7797 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
7798
7799         PR target/42869
7800         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
7801
7802 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7803
7804         PR middle-end/42431
7805         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
7806         code added to work around reload clobbering CONST insns.
7807
7808 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
7809
7810         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
7811         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
7812         (cselib_preserve_only_values): Remove retain argument, don't
7813         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
7814         * cselib.h (cselib_preserve_only_values): Remove retain argument.
7815         * var-tracking.c (micro_operation): Move insn field before union.
7816         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
7817         (struct variable_tracking_info_def): Remove n_mos field, change
7818         mos into a vector of micro_operations.
7819         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
7820         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
7821         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
7822         changing into a vector.
7823         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
7824         come before all other uops generated by add_stores.
7825         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
7826         argument removal.
7827         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
7828         a vector.  Run just one pass over the bbs instead of separate counting
7829         and computation phase.
7830         (vt_finalize): Free VTI (bb)->mos vector instead of array.
7831
7832         PR debug/43329
7833         * tree-inline.c (remap_decls): Put old_var rather than origin_var
7834         into *nonlocalized_list vector.
7835         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
7836         even if origin is non-NULL.
7837         (gen_variable_die): Likewise.
7838         (process_scope_var): Don't change origin.
7839         (gen_decl_die): Likewise.
7840         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
7841         before adding new edges instead of after it, fix moving over
7842         debug stmts.
7843
7844 2010-03-11  David S. Miller  <davem@davemloft.net>
7845
7846         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
7847         of four.
7848         * configure: Rebuild.
7849
7850 2010-03-11  Martin Jambor  <mjambor@suse.cz>
7851
7852         PR tree-optimization/43257
7853         * tree.c (assign_assembler_name_if_neeeded): New function.
7854         (free_lang_data_in_cgraph): Assembler name assignment moved to the
7855         above new function.
7856         * tree.h (assign_assembler_name_if_neeeded): Declare.
7857         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
7858         the function if needed.
7859
7860 2010-03-11  Chris Demetriou  <cgd@google.com>
7861
7862         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
7863         include/stdint-gcc.h, and include/stdint.h world-readable.
7864
7865 2010-03-11  Richard Guenther  <rguenther@suse.de>
7866
7867         PR tree-optimization/43255
7868         * tree-vrp.c (process_assert_insertions_for): Do not insert
7869         asserts for trivial conditions.
7870
7871 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7872
7873         PR tree-optimization/43280
7874         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
7875         generation.  Move calculation of size out of the if branch.
7876         (find_bswap): Modify compare number generation.
7877
7878 2010-03-11  Richard Guenther  <rguenther@suse.de>
7879
7880         PR lto/43200
7881         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
7882         (input_gimple_stmt): Fixup handled component types during
7883         operand read.  Also fix up decls in ADDR_EXPRs.
7884
7885 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7886
7887         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
7888         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
7889
7890 2010-03-10  Jan Hubicka  <jh@suse.cz>
7891
7892         PR c/43288
7893         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
7894         * varasm.c (get_variable_section): Don't do that here...
7895         (make_decl_rtl): ... and here.
7896         (do_assemble_alias): Produce decl RTL.
7897         (assemble_alias): Likewise.
7898
7899 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
7900
7901         PR debug/43290
7902         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
7903         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
7904         of fde->vdrap_reg.
7905         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
7906         (based_loc_descr): Only express drap or vdrap regno based expressions
7907         using DW_OP_fbreg when not optimizing.
7908         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
7909         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
7910         REG_CFA_SET_VDRAP note.
7911
7912 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
7913
7914         PR tree-optimization/43236
7915         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
7916         error in calculation of base address in reverse iteration case.
7917         (generate_builtin): Take number of latch executions if the statement
7918         is in the latch.
7919
7920 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
7921
7922         PR middle-end/42859
7923         * tree-eh.c: Include pointer-set.h.
7924         (lower_eh_dispatch): Filter out duplicate case labels and
7925         remove the unneeded edge when the label is unused.  Return
7926         true when some edges are removed.
7927         (execute_lower_eh_dispatch): When any lowering resulted in
7928         removing an edge, also delete unreachable blocks.
7929
7930 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
7931
7932         PR bootstrap/43287
7933         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
7934         UNSPEC_MACHOPIC_OFFSET.
7935
7936 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
7937
7938         PR target/43294
7939         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
7940         (m68k_delegitimize_address): New function.
7941
7942 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
7943
7944         PR debug/43299
7945         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
7946
7947         PR debug/43299
7948         * var-tracking.c (adjust_sets): New function.
7949         (count_with_sets, add_with_sets): Use it.
7950         (get_adjusted_src): New inline function.
7951         (add_stores): Use it.
7952
7953         PR debug/43304
7954         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
7955         call cselib_dummy_expand_value_rtx_cb instead of
7956         cselib_expand_value_rtx_cb.
7957
7958         PR debug/43293
7959         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
7960         * config/i386/i386.c: Include debug.h and dwarf2out.h.
7961         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
7962         and .cfi_endproc around the pic thunks.
7963         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
7964         all queued unwind info register saves are saved before the call.
7965         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
7966         considered as sp-=4 for unwind info and the pop as sp+=4 which
7967         also clobbers dest, but doesn't actually restore it.
7968
7969         PR debug/43290
7970         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
7971         RTX_FRAME_RELATED_P.
7972
7973 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7974
7975         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
7976         whitespaces in output template.
7977
7978 2010-03-09  Jie Zhang  <jie@codesourcery.com>
7979
7980         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
7981         out array boundary.
7982
7983 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
7984
7985         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
7986         builtins.exp in a separate job.
7987
7988 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7989
7990         * graphite-sese-to-poly.c (add_param_constraints): Use
7991         lower_bound_in_type and upper_bound_in_type.
7992
7993 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7994
7995         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
7996         instead of unsigned_type_node.
7997
7998 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
7999             Reza Yazdani  <reza.yazdani@amd.com>
8000
8001         PR middle-end/43065
8002         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
8003         on pointer type parameters.
8004
8005 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8006
8007         PR middle-end/42644
8008         PR middle-end/42130
8009         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
8010         handle conversions from pointer to integers.
8011         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
8012         induction variable, to be able to work with code generated by CLooG.
8013         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
8014         (build_poly_scop): Bail out if we cannot codegen a loop.
8015
8016 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
8017
8018         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
8019         code generation with gloog_error.
8020
8021 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8022
8023         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
8024         Call fold_convert on all the returned values.
8025         (expand_scalar_variables_expr): Pass to
8026         expand_scalar_variables_ssa_name the type of the resulting expression.
8027
8028 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8029
8030         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
8031         ppl_min_for_le_pointset.
8032         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
8033         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
8034
8035 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8036
8037         * graphite-dependences.c (map_into_dep_poly): Removed.
8038         (dependence_polyhedron_1): Use combine_context_id_scat.
8039
8040 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8041
8042         * graphite-poly.h (struct poly_scattering): Add layout documentation.
8043         (struct poly_bb): Same.
8044         (combine_context_id_scat): New.
8045
8046 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8047
8048         PR middle-end/42326
8049         * sese.c (name_defined_in_loop_p): Return false for default
8050         definitions.
8051
8052 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8053
8054         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
8055         and clean up the logic.
8056
8057 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
8058
8059         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
8060         early return.
8061
8062 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
8063
8064         * var-tracking.c (remove_cselib_value_chains): Define only for
8065         ENABLE_CHECKING.
8066         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
8067         delete_slot_part, emit_notes_for_differences_1): Don't call
8068         remove_cselib_value_chains here.
8069         (set_slot_part, emit_notes_for_differences_2): Don't call
8070         add_cselib_value_chains here.
8071         (preserved_values): New vector.
8072         (preserve_value): New function.
8073         (add_uses, add_stores, vt_add_function_parameters): Use it
8074         instead of cselib_preserve_value.
8075         (changed_values_stack): New vector.
8076         (check_changed_vars_0): New function.
8077         (check_changed_vars_1, check_changed_vars_2): Use it.
8078         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
8079         changed_values_stack VALUEs.
8080         (vt_emit_notes): For all preserved_values call
8081         add_cselib_value_chains.  If ENABLE_CHECKING call
8082         remove_cselib_value_chains before verifying value_chains is empty.
8083         Initialize and free changed_values_stack.
8084         (vt_initialize): Initialize preserved_values.
8085         (vt_finalize): Free preserved_values.
8086
8087 2010-03-08  Richard Guenther  <rguenther@suse.de>
8088
8089         PR tree-optimization/43269
8090         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
8091         region detection.
8092
8093 2010-03-08  Martin Jambor  <mjambor@suse.cz>
8094
8095         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
8096         (ipa_is_param_called): Removed.
8097         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
8098         (ipa_print_node_params): Do not print the called flag.
8099         (ipa_write_node_info): Do not stream the called flag.
8100         (ipa_read_node_info): Likewise.
8101
8102 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
8103
8104         PR debug/43176
8105         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
8106         * cselib.c (struct expand_value_data): Add dummy field.
8107         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
8108         dummy to false.
8109         (cselib_dummy_expand_value_rtx_cb): New function.
8110         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
8111         any rtl.
8112         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
8113         * var-tracking.c: Include pointer-set.h.
8114         (variable): Change n_var_parts to char from int.  Add
8115         cur_loc_changed and in_changed_variables fields.
8116         (variable_canonicalize): Remove.
8117         (shared_var_p): New inline function.
8118         (unshare_variable): Maintain cur_loc_changed and
8119         in_changed_variables fields.  If var was in changed_variables,
8120         replace it there with new_var.  Just copy cur_loc instead of
8121         resetting it to something else.
8122         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
8123         (dataflow_set_union): Don't call variable_canonicalize.
8124         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
8125         of their DEBUG_EXPR_TREE_DECLs.
8126         (canonicalize_loc_order_check): Verify that cur_loc is NULL
8127         and in_changed_variables and cur_loc_changed is false.
8128         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
8129         and cur_loc_changed.  Don't update cur_loc here.
8130         (variable_merge_over_src): Don't call variable_canonicalize.
8131         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
8132         removing loc that is equal to cur_loc, clear cur_loc,
8133         set cur_loc_changed and ensure variable_was_changed is called.
8134         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
8135         compare pointers in cur_loc check, if it is equal to loc,
8136         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
8137         (variable_different_p): Remove compare_current_location argument,
8138         don't compare cur_loc.
8139         (dataflow_set_different_1): Adjust variable_different_p caller.
8140         (variable_was_changed): If dv had some var in changed_variables
8141         already, reset in_changed_variables flag for it and propagate
8142         cur_loc_changed over to the new variable.  On empty var
8143         always set cur_loc_changed.  Set in_changed_variables on whatever
8144         var is added to changed_variables.
8145         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
8146         Use shared_var_p.  When removing loc that is equal to cur_loc,
8147         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
8148         end, don't set it to something else, just call variable_was_changed.
8149         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
8150         loc being removed, clear cur_loc and set cur_loc_changed.
8151         Set cur_loc_changed if all locations have been removed.
8152         (struct expand_loc_callback_data): New type.
8153         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
8154         allocated.  Always create SUBREGs if simplify_subreg failed.
8155         Prefer to use cur_loc, when that fails and still in
8156         changed_variables (and seen first time) recompute it.  Set
8157         cur_loc_changed of variables which had to change cur_loc and
8158         compute elcd->cur_loc_changed if any of the subexpressions used
8159         had to change cur_loc.
8160         (vt_expand_loc): Adjust to pass arguments in
8161         expand_loc_callback_data structure.
8162         (vt_expand_loc_dummy): New function.
8163         (emitted_notes): New variable.
8164         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
8165         that weren't used for any other decl in current
8166         emit_notes_for_changes call call vt_expand_loc_dummy to update
8167         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
8168         first loc_chain location if NULL before.  Always use just
8169         cur_loc instead of first loc_chain location.  When cur_loc_changed
8170         is false, when not --enable-checking=rtl just don't emit any note.
8171         When rtl checking, compute the note and assert it is the same
8172         as previous note.  Clear cur_loc_changed and in_changed_variables
8173         at the end before removing from changed_variables.
8174         (check_changed_vars_3): New function.
8175         (emit_notes_for_changes): Traverse changed_vars to call
8176         check_changed_vars_3 on each changed var.
8177         (emit_notes_for_differences_1): Clear cur_loc_changed and
8178         in_changed_variables.  Recompute cur_loc of new_var.
8179         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
8180         (vt_emit_notes): Initialize and destroy emitted_notes.
8181
8182 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
8183
8184         PR rtl-optimization/42220
8185         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
8186         Use verify_reg_tracked to determine if we should use OP_OUT rather
8187         than OP_INOUT.
8188         (build_def_use): If we see an in-out operand for a register that we
8189         know nothing about, treat is an output if possible, fail the block if
8190         not.
8191
8192 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8193
8194         PR debug/42897
8195         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
8196         permanently.
8197
8198 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
8199
8200         PR debug/42897
8201         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
8202         uses of relevant DEFs that are dead outside the loop too.
8203
8204 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
8205
8206         * var-tracking.c (dataflow_set_merge): Swap src and src2.
8207         Reverted:
8208         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
8209         PR debug/41371
8210         * var-tracking.c (values_to_unmark): New variable.
8211         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
8212         values_to_unmark vector.  Moved body to...
8213         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
8214         instead queue it into values_to_unmark vector.
8215         (vt_find_locations): Free values_to_unmark vector.
8216
8217 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8218
8219         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
8220         (site.exp): Export them when plugins are enabled.
8221
8222 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
8223
8224         PR middle-end/42326
8225         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
8226         that contain scevs.
8227         (chrec_fold_multiply): Same.
8228
8229 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
8230
8231         PR c/43248
8232         * c-decl.c (build_compound_literal): Return early if init is
8233         an error_mark_node.
8234
8235 2010-03-04  Martin Jambor  <mjambor@suse.cz>
8236
8237         PR tree-optimization/43164
8238         PR tree-optimization/43191
8239         * tree-sra.c (type_consists_of_records_p): Reject records with
8240         zero-size bit-fields at the end.
8241
8242 2010-03-04  Mike Stump  <mikestump@comcast.net>
8243
8244         * Makefile.in (TAGS): Remove *.y.
8245
8246 2010-03-04  Richard Guenther  <rguenther@suse.de>
8247
8248         PR tree-optimization/40761
8249         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
8250         in reverse order.
8251         (my_rev_post_order_compute): New function.
8252         (init_pre): Call it.
8253
8254 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
8255
8256         PR middle-end/43209
8257         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
8258         decrease the cost of an IV candidate when the cost is infinite.
8259
8260 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8261
8262         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
8263         Use '3DNow!' for the extension of that name, ensure normal space
8264         after the string.
8265         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
8266
8267 2010-03-03  Jeff Law  <law@redhat.com>
8268
8269         * PR middle-end/32693
8270         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
8271         than gen_rtx_SUBREG.
8272         (extract_bit_field_1): Likewise.
8273
8274 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
8275
8276         * doc/sourcebuild.texi (Test directives): Document that arguments
8277         include-opts and exclude-opts are now optional for dg-skip-if,
8278         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
8279
8280 2010-03-03  Jason Merrill  <jason@redhat.com>
8281
8282         PR c++/12909
8283         * cgraph.h (varpool_node): Add extra_name field.
8284         * varpool.c (varpool_extra_name_alias): New.
8285         (varpool_assemble_decl): Emit extra name aliases.
8286         (varpool_mark_needed_node): Look past an extra name alias.
8287         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
8288         * lto-streamer-in.c (lto_input_tree): Read it.
8289         * lto-streamer-out.c (output_unreferenced_globals): Write it.
8290
8291 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
8292
8293         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
8294         (sparc*-*-solaris2*): ...this.
8295
8296 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
8297
8298         PR debug/43229
8299         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
8300         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
8301         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
8302         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
8303
8304         PR debug/43237
8305         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
8306         fallthrough to default handling, just with want_address 0 instead of 2.
8307         For single element lists, add_AT_loc directly, otherwise create an
8308         artificial variable DIE and stick location list to it.
8309
8310         PR debug/43177
8311         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
8312         (VAL_EXPR_HAS_REVERSE): Define.
8313         (reverse_op): New function.
8314         (add_stores): For reversible operations add an extra MO_VAL_USE.
8315
8316 2010-03-02  Jason Merrill  <jason@redhat.com>
8317
8318         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
8319
8320 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
8321
8322         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
8323         (sparc64-*-linux*): Likewise.
8324         (sparc64-*-solaris2*): Include assembler files before linker ones.
8325         (sparc-*-solaris2*): Simplify and reorder to match previous case.
8326         * config/sparc/gas.h: Delete.
8327         * config/sparc/sol2-64.h: Add copyright notice.
8328         * config/sparc/sol2-gas-bi.h: Likewise.
8329         * config/sparc/sol2-gld.h: Likewise.
8330         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
8331         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
8332         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
8333         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
8334         (sparc_elf_asm_named_section): Rename into...
8335         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
8336
8337 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
8338
8339         * config/alpha/alpha.c (override_options): Fix -mtune error message.
8340
8341 2010-03-02  Jeff Law  <law@redhat.com>
8342
8343         PR middle-end/42431
8344         * reload1.c (rtx_p, substitute_stack): Declare.
8345         (substitute): Record addresses of changed rtxs.
8346         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
8347         Restore the original rtx when complete.
8348         (reload): Free subsitute_stack when complete.
8349
8350 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
8351
8352         * doc/gccint.texi (menu): Add Testsuites as a chapter.
8353         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
8354         new chapter.
8355         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
8356         LTO Testing, gcov Testing, profopt Testing, compat Testing,
8357         Torture Tests): Change from subsection to section.
8358
8359 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
8360             Steven Bosscher  <steven@gcc.gnu.org>
8361
8362         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
8363         instead of bb.
8364
8365 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
8366
8367         PR middle-end/42640
8368         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
8369         the assignment from the new induction variable to the assignment
8370         of the value from the original loop PHI function.
8371
8372 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
8373             Daniel Jacobowitz  <dan@codesourcery.com>
8374
8375         * doc/sourcebuild.texi (Test directives): Clarify options to
8376         dg-skip-if.
8377
8378 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8379
8380         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
8381         Disable cfi directives unless GCC and gas agree on using read-only
8382         .eh_frame sections for 64-bit.
8383         * configure: Regenerate.
8384
8385 2010-03-01  Richard Guenther  <rguenther@suse.de>
8386
8387         PR tree-optimization/43220
8388         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
8389         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
8390
8391 2010-03-01  Richard Guenther  <rguenther@suse.de>
8392             Martin Jambor  <mjambor@suse.cz>
8393
8394         PR middle-end/41250
8395         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
8396         gimplified parameters.
8397
8398 2010-03-01  Christian Bruel  <christian.bruel@st.com>
8399
8400         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
8401
8402 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
8403
8404         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
8405
8406 2010-03-01  Richard Guenther  <rguenther@suse.de>
8407
8408         PR middle-end/43213
8409         * expr.c (expand_assignment): Use the alias-oracle to tell
8410         if the rhs aliases the result decl.
8411
8412 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8413
8414         PR pch/14940
8415         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
8416         to sol_gt_pch_get_address.
8417         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
8418         64-bit, SPARC and x86.
8419         (sol_gt_pch_get_address): New function.
8420
8421 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
8422
8423         * toplev.h (inform_n, error_n): Declare.
8424         * diagnostic.c (inform_n, error_n): New function.
8425
8426 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
8427
8428         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
8429         has no rtl yet when processing local_decls, queue it and recheck
8430         if deferred stack allocation hasn't assigned it rtl.
8431
8432 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
8433
8434         * config/sh/sh.c (unspec_bbr_uid): New.
8435         (gen_block_redirect): Use it instead of INSN_UID.
8436         (gen_far_branch): Likewise.
8437
8438 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
8439
8440         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
8441         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
8442
8443 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8444
8445         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
8446         (Warning Options): -Wno-conversion-null is valid for
8447         Objective-C++ as well.
8448         * doc/tm.texi (Named Address Spaces): Likewise.
8449         * doc/plugins.texi (Plugins): Replace TABs with spaces.
8450         * doc/tree-ssa.texi (Tree SSA): Likewise.
8451
8452 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8453
8454         PR bootstrap/43202
8455         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
8456         by default.  Don't set the default arch for
8457         i[34567]86-*-darwin*|x86_64-*-darwin*.
8458
8459 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8460
8461         PR bootstrap/43202
8462         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
8463         default.  Set the default 32bit/64bit archs with $with_arch
8464         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
8465
8466 2010-02-27  Richard Guenther  <rguenther@suse.de>
8467
8468         PR tree-optimization/43186
8469         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
8470         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
8471         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
8472         unroller iterations.
8473
8474 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
8475
8476         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
8477         required and i[34567]86-*-* targets don't support 64bit ISA.
8478
8479 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
8480
8481         PR ada/43096
8482         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
8483         the same alias set.
8484
8485 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8486
8487         * config.gcc: Set the default arch at least to Prescott for
8488         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
8489         if SSE math is enabled.
8490
8491 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8492
8493         * diagnostic.c (diagnostic_initialize): Update.
8494         (diagnostic_report_diagnostic): Test inhibit_notes_p for
8495         informative notes.
8496         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
8497         (diagnostic_inhibit_notes): New.
8498         * toplev.c (process_options): inhibit notes with -fcompare-debug.
8499
8500 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8501
8502         PR c/20631
8503         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
8504         * doc/standards.texi: Likewise.
8505         * doc/extend.texi: Likewise.
8506         * doc/trouble.texi: Likewise.
8507         * doc/cppopts.texi: Likewise.
8508         * doc/install.texi: Likewise.
8509         * c.opt (std=c90,std=gnu90): New options.
8510         * c-opts.c (c_common_handle_option): Handle them.
8511
8512 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8513
8514         PR c/24577
8515         * c-decl.c (undeclared_variable): Use an informative note.
8516
8517 2010-02-26  Richard Guenther  <rguenther@suse.de>
8518
8519         PR tree-optimization/43186
8520         * gimple.h (gimple_fold): Remove.
8521         * gimple.c (gimple_fold): Remove.  Inline into single user ...
8522         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
8523         Try harder for conditions.
8524
8525 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8526
8527         PR debug/43190
8528         * function.c (used_types_insert): Don't skip through named pointer
8529         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
8530         and it is different from the main variant's type.
8531
8532 2010-02-26  Nick Clifton  <nickc@redhat.com>
8533
8534         * config/rx/rx.md (sminsi3): Remove bogus alternative.
8535
8536 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
8537
8538         * config.gcc: Support --with-fpmath=sse for x86.
8539
8540         * config/i386/ssemath.h: New.
8541
8542         * doc/install.texi (--with-fpmath=sse): Documented.
8543
8544 2010-02-26  Richard Guenther  <rguenther@suse.de>
8545
8546         PR tree-optimization/43188
8547         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
8548         vector types of over-aligned element type.
8549
8550 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
8551
8552         PR target/43175
8553         * config/i386/i386.c (expand_vec_perm_blend): Use correct
8554         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
8555
8556 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
8557
8558         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
8559
8560 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
8561
8562         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
8563         * var-tracking.c: Include diagnostic.h.
8564         (debug_dv): New function.
8565         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
8566
8567         PR debug/43160
8568         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
8569         (add_value_chain, add_value_chains, remove_value_chain,
8570         remove_value_chains): Handle DEBUG_EXPRs.
8571         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
8572
8573         PR debug/43161
8574         * regcprop.c (struct queued_debug_insn_change): New type.
8575         (struct value_data_entry): Add debug_insn_changes field.
8576         (struct value_data): Add n_debug_insn_changes field.
8577         (debug_insn_changes_pool): New variable.
8578         (free_debug_insn_changes, apply_debug_insn_changes,
8579         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
8580         (kill_value_one_regno): Call free_debug_insn_changes if needed.
8581         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
8582         fields.
8583         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
8584         changes for them.
8585         (copyprop_hardreg_forward_1): Don't call apply_change_group for
8586         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
8587         changes, call cprop_find_used_regs via note_stores.
8588         (copyprop_hardreg_forward): When copying vd from predecessor
8589         which has any queued DEBUG_INSN changes, make sure the pointers are
8590         cleared.  At the end call df_analyze and then if there are any
8591         DEBUG_INSN changes queued at the end of some basic block for still
8592         live registers, apply them.
8593         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
8594
8595 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
8596
8597         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
8598         (arm*-*-*): Ditto.
8599
8600 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
8601
8602         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
8603         targets.  Set the default with_cpu/with_arch from arch/cpu.
8604         Allow x86-64 and native for with_cpu/with_arch.
8605
8606 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
8607
8608         * ebitmap.c: Change calls to verify_popcount with calls to
8609         sbitmap_verify_popcount.
8610         (ebitmap_clear_bit): Fixed map->cacheindex test and
8611         map>cache update when bit clearing results in an empty
8612         element.
8613
8614 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
8615
8616         PR target/43154
8617         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
8618         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
8619         and support both V2DF and V2DI modes.
8620         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
8621         support both V2DF and V2DI modes.
8622         (general): Delete trailing whitespace from a few patterns.
8623
8624         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8625         V2DF/V2DI interleave high/low builtins.
8626
8627         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
8628         new VSX builtins.
8629
8630         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
8631         interleave high/low functions.
8632
8633 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
8634
8635         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
8636         #pragma extern_prefix.
8637
8638 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
8639
8640         PR debug/43166
8641         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
8642         BLKmode, assert op0 is a MEM and just adjust its mode.
8643
8644         PR debug/43165
8645         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
8646         if bitpos isn't multiple of mode's bitsize.
8647
8648 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8649
8650         * c.opt (-ftemplate-depth=): New.
8651         (-ftemplate-depth-): Deprecate.
8652         * optc-gen.awk: Handle -ftemplate-depth=.
8653         * opth-gen.awk: Likewise.
8654         * c-opts.c (c_common_handle_option): Likewise.
8655         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
8656
8657 2010-02-24  Jason Merrill  <jason@redhat.com>
8658
8659         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
8660
8661 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8662
8663         * cfg.c (alloc_aux_for_block): Remove inline.
8664         (alloc_aux_for_edge): Likewise.
8665
8666 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8667
8668         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
8669
8670 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8671
8672         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
8673         * config/i386/sol2-gas.h: New file.
8674         * config.gcc (i[34567]86-*-solaris2*): Use it.
8675
8676 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8677
8678         PR c/43128
8679         * c-typeck.c (ep_convert_and_check): New.
8680         (build_conditional_expr): Use it.
8681         (build_binary_op): Likewise.
8682
8683 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
8684
8685         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
8686
8687         PR debug/43150
8688         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
8689         bounds even for -O+.
8690         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
8691         expr needs to have DECL_NAME set.
8692
8693 2010-02-24  Nick Clifton  <nickc@redhat.com>
8694
8695         * config/mep/mep.c: Include gimple.h.
8696         (mep_function_uses_sp): Delete unused function.
8697         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
8698         parameters.  Use unsigned integers to count args.  Return a
8699         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
8700
8701 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8702
8703         PR target/43107
8704         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
8705         greater or equal to nelt instead of 2 * nelt.
8706         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
8707         with nelt - 1.
8708
8709 2010-02-23  Jason Merrill  <jason@redhat.com>
8710
8711         PR debug/42800
8712         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
8713         in cfun->local_decls even if they have register types.
8714
8715         PR c++/42837
8716         * stor-layout.c (place_field): Don't warn about unnecessary
8717         DECL_PACKED if the type is packed.
8718
8719 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
8720
8721         PR target/43139
8722         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
8723         GOTOFF relocs, even when the base reg isn't pic pointer.
8724
8725 2010-02-23  Michael Matz  <matz@suse.de>
8726
8727         PR debug/43077
8728         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
8729         (expand_gimple_basic_block): Generate and use debug temps if there
8730         are debug uses left after the last real use of TERed ssa names.
8731         Unlink debug immediate uses when they are expanded.
8732
8733 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8734
8735         PR 43123
8736         * config/i386/i386.c (override_options): Reorganise to provide
8737         better error messages.
8738
8739 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8740
8741         PR middle-end/43083
8742         * graphite-scop-detection.c (create_single_exit_edge): Move
8743         the call to find_single_exit_edge to....
8744         (create_sese_edges): ...here.  Don't handle multiple edges
8745         exiting the function.
8746         (build_graphite_scops): Don't handle multiple edges
8747         exiting the function.
8748
8749 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8750
8751         PR middle-end/43097
8752         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
8753         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
8754
8755 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
8756
8757         PR middle-end/43026
8758         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
8759
8760 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8761
8762         PR c++/43126
8763         * c-typeck.c (convert_arguments): Print declaration location.
8764         * c-common.c (validate_nargs): Rename as
8765         builtin_function_validate_nargs.
8766         (check_builtin_function_arguments): Update.
8767
8768 2010-02-22  Richard Guenther  <rguenther@suse.de>
8769
8770         PR lto/43045
8771         * tree-inline.c (declare_return_variable): Use the type of
8772         the call stmt lhs if available.
8773
8774 2010-02-22  Duncan Sands  <baldrick@free.fr>
8775
8776         * passes.c (register_pass): Always consider all pass lists when
8777         ref_pass_instance_number is zero.
8778
8779 2010-02-22  Richard Guenther  <rguenther@suse.de>
8780
8781         PR tree-optimization/42749
8782         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
8783         parameter.  Do arithmetic in the original type.
8784         (update_accumulator_with_ops): Likewise.
8785         (adjust_accumulator_values): Adjust.
8786
8787 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8788
8789         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
8790         (QI to BLKmode splitter): New splitter.
8791
8792 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
8793
8794         * config/i386/i386.c (initial_ix86_tune_features): Turn on
8795         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
8796
8797 2010-02-22  Richard Guenther  <rguenther@suse.de>
8798
8799         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
8800
8801 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
8802
8803         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
8804         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
8805         ($(T)crti.o, $(T)crtn.o): Remove rules.
8806
8807 2010-02-21  Tobias Burnus  <burnus@net-b.de>
8808
8809         PR fortran/35259
8810         * doc/invoke.texi (-fassociative-math): Document that this
8811         option is automatically enabled for Fortran.
8812
8813 2010-02-20  David S. Miller  <davem@davemloft.net>
8814
8815         * configure.ac: Test if linker and assembler properly support
8816         GOTDATA_OP relocations.
8817         * configure: Rebuild.
8818         * config.in: Likewise.
8819         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
8820         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
8821         (movsi_high_pic): Likewise.
8822         (movdi_lo_sum_pic): Likewise.
8823         (movdi_high_pic): Likewise.
8824         (movsi_pic_gotdata_op): New pattern.
8825         (movdi_pic_gotdata_op): Likewise.
8826         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
8827         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
8828
8829 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
8830
8831         PR target/43067
8832         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
8833         attribute to ssemul.
8834         (xop_mulv2div2di3_high): Ditto.
8835
8836 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8837
8838         PR c++/35669
8839         * c.opt (Wconversion-null): New option.
8840         * doc/invoke.texi (Wconversion-null): Document.
8841
8842 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8843
8844         * common.opt (Wlarger-than-): Add Undocumented.
8845
8846 2010-02-19  Mike Stump  <mikestump@comcast.net>
8847
8848         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
8849
8850 2010-02-19  Jason Merrill  <jason@redhat.com>
8851
8852         PR target/40332
8853         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
8854         * configure: Likewise.
8855
8856 2010-02-20  Alan Modra  <amodra@gmail.com>
8857
8858         PR middle-end/42344
8859         * cgraph.h (cgraph_make_decl_local): Declare.
8860         * cgraph.c (cgraph_make_decl_local): New function.
8861         (cgraph_make_node_local): Use it.
8862         * cgraphunit.c (cgraph_function_versioning): Likewise.
8863         * ipa.c (function_and_variable_visibility): Likewise.
8864
8865 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8866
8867         PR bootstrap/43121
8868         * except.c (sjlj_emit_function_enter): Don't call
8869         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
8870         directly.
8871         * rtl.h (add_reg_br_prob_note): Remove prototype.
8872
8873 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8874
8875         PR 41779
8876         * c-common.c (conversion_warning): Remove widening conversions
8877         before checking the conversion of integers to reals.
8878
8879 2010-02-19  Mike Stump  <mikestump@comcast.net>
8880
8881         PR middle-end/43125
8882         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
8883
8884         PR objc/43061
8885         * cgraphunit.c (process_function_and_variable_attributes): Check
8886         DECL_PRESERVE_P instead of looking up attribute "used".
8887         * ipa-pure-const.c (check_decl): Likewise.
8888         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
8889         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
8890         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
8891         instead of attribute "used".
8892         * config/sol2-c.c (solaris_pragma_init): Likewise.
8893         (solaris_pragma_fini): Likewise.
8894
8895 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8896
8897         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
8898         Use XCNEW instead of xcalloc.
8899         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
8900         XNEW instead of xmalloc.
8901         (get_fields): Use XNEWVEC instead of xmalloc.
8902
8903         PR debug/43084
8904         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
8905         populate vars array.
8906         (create_new_general_access): For debug stmts just reset value.
8907         (get_stmt_accesses): For accesses within debug stmts just record them
8908         using add_access_to_acc_sites instead of preventing the peeling or
8909         counting them as accesses.
8910
8911         PR middle-end/42233
8912         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
8913
8914 2010-02-19  Richard Guenther  <rguenther@suse.de>
8915
8916         PR tree-optimization/42916
8917         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
8918         instructions.
8919
8920 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
8921
8922         * configure.ac: Replace all uses of changequote in macro arguments
8923         with proper quoting.
8924
8925 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8926
8927         PR middle-end/42233
8928         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
8929
8930 2010-02-19  Richard Guenther  <rguenther@suse.de>
8931
8932         PR tree-optimization/42944
8933         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
8934         test for aliasing with errno.
8935
8936 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
8937
8938         PR middle-end/42233
8939         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
8940         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
8941         * dojump.c: Include output.h.
8942         (inv): New inline function.
8943         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
8944         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
8945         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
8946         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
8947         argument, pass it down to other calls.
8948         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
8949         add REG_BR_PROB note to the conditional jump.
8950         * cfgexpand.c (add_reg_br_prob_note): Removed.
8951         (expand_gimple_cond): Don't call it, add the probability
8952         as last argument to jumpif_1/jumpifnot_1.
8953         * Makefile.in (dojump.o): Depend on output.h.
8954         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
8955         callers.
8956         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
8957         * stmt.c (do_jump_if_equal): Likewise.
8958         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
8959         * loop-unswitch.c (compare_and_jump_seq): Likewise.
8960         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
8961         Likewise.
8962         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
8963         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
8964         jumpifnot_1 callers.
8965         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
8966         callers.
8967         (store_expr): Adjust jumpifnot caller.
8968         (store_constructor): Adjust jumpif caller.
8969
8970         PR middle-end/42233
8971         * gimplify.c (gimple_boolify): For __builtin_expect call
8972         gimple_boolify also on its first argument.
8973
8974 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
8975
8976         * configure.ac (gnu-unique-object): Wrap regexps using [] in
8977         changequote block.
8978         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
8979         * configure: Regenerated.
8980
8981 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8982
8983         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
8984         lang_hooks.types_compatible_p instead of comptypes.
8985
8986 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
8987
8988         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
8989         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
8990         if __prefer_thumb__ is defined.
8991
8992 2010-02-18  Martin Jambor  <mjambor@suse.cz>
8993
8994         PR tree-optimization/43066
8995         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
8996         array with zero-sized element type.
8997
8998 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
8999
9000         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
9001         rtx, allocate struct var_loc_node here and return it to the
9002         caller, and only if it is actually needed.
9003         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
9004         move it earlier and return immediately if it returns NULL.
9005
9006 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
9007
9008         * config/sparc/gas.h: New file.  Restore
9009         TARGET_ASM_NAMED_SECTION to its ELF default.
9010         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
9011         check !HAVE_GNU_AS.
9012         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9013         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
9014         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
9015         after sparc/sysv4.h.
9016
9017 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
9018
9019         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
9020
9021 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
9022
9023         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
9024         patterns from predicated pattern.
9025
9026 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
9027
9028         PR target/43103
9029         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
9030         for insn mnemonic suffix.
9031
9032 2010-02-17  Richard Guenther  <rguenther@suse.de>
9033
9034         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
9035         to loop PHI nodes.
9036
9037 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
9038
9039         PR debug/42918
9040         * caller-save.c (save_call_clobbered_regs): If BB ends with
9041         a DEBUG_INSN, move any notes in between last real insn and the last
9042         DEBUG_INSN after the last DEBUG_INSN.
9043
9044 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9045
9046         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
9047         Fix return type.  Fix argument type.  Explain meaning of return value.
9048
9049 2010-02-16  Richard Guenther  <rguenther@suse.de>
9050
9051         PR tree-optimization/41043
9052         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
9053         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
9054         statements ...
9055         (vrp_visit_phi_node): ... but only for loop PHI nodes.
9056
9057 2010-02-16  Ira Rosen  <irar@il.ibm.com>
9058
9059         PR tree-optimization/43074
9060         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
9061         * tree-vect-loop.c (vect_analyze_loop_operations): Add
9062         vectorizable cycles in hybrid SLP check.
9063         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
9064
9065 2010-02-16  Richard Guenther  <rguenther@suse.de>
9066
9067         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
9068         (true_dependence): If memrefs_conflict_p computes must-alias
9069         trust it.  Move TBAA check after offset-based disambiguation.
9070         (canon_true_dependence): Likewise.
9071
9072 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
9073
9074         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
9075         * doc/invoke.texi: Document it.
9076         * var-tracking.c: Include toplev.h and params.h.
9077         (vt_find_locations): Return bool indicating success.  Compute
9078         hash sizes unconditionally.  Check new parameter, report.
9079         (variable_tracking_main_1): Check vt_find_locations results and
9080         retry.  Renamed from...
9081         (variable_tracking_main): ... this.  New wrapper to preserve
9082         flag_var_tracking_assignments.
9083         * Makefile.in (var-tracking.o): Adjust dependencies.
9084
9085 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
9086             Jakub Jelinek <jakub@redhat.com>
9087
9088         PR target/42854
9089         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
9090         if weak_import attribute is present.
9091         * config/darwin.c (machopic_select_section): Likewise.
9092
9093 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
9094
9095         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
9096         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
9097         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
9098         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
9099
9100         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
9101         types.
9102
9103         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
9104         Fix argument types.
9105
9106         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
9107         Rewrite text to refer to the names.
9108
9109 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
9110
9111         * config/i386/i386-builtin-types.def
9112         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
9113         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
9114         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
9115         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
9116         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
9117         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
9118         IX86_BUILTIN_VPERMIL2PS256.
9119         (MULTI_ARG_4_DF2_DI_I): Defined.
9120         (MULTI_ARG_4_DF2_DI_I1): Defined.
9121         (MULTI_ARG_4_SF2_SI_I): Defined.
9122         (MULTI_ARG_4_SF2_SI_I1): Defined.
9123         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
9124         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
9125         __builtin_ia32_vpermil2ps256.
9126         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9127         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9128         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
9129         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
9130         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
9131         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
9132         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
9133         CODE_FOR_xop_vpermil2v8sf3.
9134         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
9135         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
9136         * config/i386/xopintrin.h (_mm_permute2_pd): New.
9137         (_mm256_permute2_pd): New.
9138         (_mm_permute2_ps): New.
9139         (_mm256_permute2_ps): New.
9140
9141 2010-02-15  Nick Clifton  <nickc@redhat.com>
9142
9143         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
9144         boolean parameters.  Use emit_jump_insn when emitting a pop
9145         instruction containing a return insn.
9146         (push): Use 'true' rather than '1' as second parameter to F.
9147         (h8300_expand_prologue): Likewise.
9148         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
9149         (h8300_expand_epilogue): Likewise.
9150
9151 2010-02-15  Richard Guenther  <rguenther@suse.de>
9152
9153         PR middle-end/43068
9154         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
9155         if that is zero.
9156
9157 2010-02-15  Nick Clifton  <nickc@redhat.com>
9158
9159         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
9160         delta.
9161
9162 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
9163
9164         * intl.c (fake_ngettext): New function.
9165         * intl.h (fake_ngettext): Declare.
9166         (ngettext): Define macro.
9167         * collect2.c (notice_translated): New function.
9168         (main): Use notice_translated and ngettext.
9169         * collect2.h (notice_translated): Declare.
9170
9171 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
9172
9173         * reorg.c (delete_computation): Comment fixes.
9174         * caller-save.c (setup_save_areas): Idem.
9175         * sel-sched-dump.c (dump_lv_set): Idem.
9176         * rtl.def: Idem.
9177
9178 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9179
9180         * config/s390/s390.c (s390_sched_init): New function.
9181         (TARGET_SCHED_INIT): Target hook defined.
9182
9183 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
9184             Jack Howarth  <howarth@bromo.med.uc.edu>
9185             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
9186
9187         PR target/42982
9188         Partial revert of unintended change in fix for PR41605.
9189         * config/darwin.h: Fix typo.
9190         * config/darwin9.h: Same.
9191
9192 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9193
9194         * c-pch.c (pch_init): Clear v.
9195
9196 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9197
9198         PR middle-end/42930
9199         * graphite-scop-detection.c (graphite_can_represent_scev): Call
9200         graphite_can_represent_init for MULT_EXPR.
9201
9202 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9203
9204         PR middle-end/42914
9205         PR middle-end/42530
9206         * graphite-sese-to-poly.c (remove_phi): New.
9207         (translate_scalar_reduction_to_array): Call remove_phi.
9208
9209 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9210
9211         PR middle-end/42771
9212         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
9213         * graphite-clast-to-gimple.h (gloog): Update declaration.
9214         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
9215         * graphite-poly.h (struct poly_bb): Add missing comments.
9216         (struct scop): Add poly_scop_p field.
9217         (POLY_SCOP_P): New.
9218         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
9219         * graphite.c (graphite_transform_loops): Build the polyhedral
9220         representation for each scop before code generation.
9221         * sese.c (rename_variables_in_operand): Removed.
9222         (rename_variables_in_expr): Return the renamed expression.
9223         (rename_sese_parameters): New.
9224         * sese.h (rename_sese_parameters): Declared.
9225
9226 2010-02-11  Richard Guenther  <rguenther@suse.de>
9227
9228         PR tree-optimization/42998
9229         * tree-ssa-pre.c (create_expression_by_pieces): Treat
9230         POINTER_PLUS_EXPR properly.
9231
9232 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
9233             Changpeng Fang  <changpeng.fang@amd.com>
9234
9235         PR middle-end/40886
9236         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
9237         the cost of an IV candidate when the IV is used in a test against zero.
9238
9239         * gcc.dg/tree-ssa/ivopts-3.c: New.
9240
9241 2010-02-11  Richard Guenther  <rguenther@suse.de>
9242
9243         PR lto/41664
9244         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
9245         pointer-vs-decl case by swapping refs.  Handle some cases
9246         of pointer-vs-decl disambiguations more conservatively.
9247         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
9248         to false after expanding.
9249
9250 2010-02-11  Richard Guenther  <rguenther@suse.de>
9251
9252         PR driver/43021
9253         * gcc.c (process_command): Handle LTO file@offset case more
9254         appropriately.
9255
9256 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
9257
9258         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
9259         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
9260         of DEBUG_INSNs.
9261         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
9262
9263         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
9264         if MEM's mode size isn't DWARF2_ADDR_SIZE.
9265         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
9266         Optimize eq/ne comparisons when both arguments are known to be
9267         zero-extended.
9268         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
9269         Don't mask operands unnecessarily if they are known to be already
9270         zero-extended.
9271
9272 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
9273
9274         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
9275         instead of loop.
9276
9277 2010-02-10  Richard Guenther  <rguenther@suse.de>
9278
9279         PR tree-optimization/43017
9280         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
9281         for wrapping signed arithmetic.
9282
9283 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9284
9285         PR debug/43010
9286         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
9287         if no debug info should be emitted for it.
9288
9289 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
9290
9291         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
9292         note when flag_exceptions is set.
9293
9294 2010-02-10  Duncan Sands  <baldrick@free.fr>
9295
9296         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
9297
9298 2010-02-10  Richard Guenther  <rguenther@suse.de>
9299
9300         PR c/43007
9301         * tree.c (get_unwidened): Handle constants.
9302         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
9303
9304 2010-02-10  Martin Jambor  <mjambor@suse.cz>
9305
9306         PR lto/42985
9307         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
9308         check for variable argument counts independently.
9309
9310 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9311
9312         PR target/42841
9313         * config/sh/sh.c (find_barrier): Increase length for non delayed
9314         conditional branches.
9315
9316 2010-02-10  Christian Bruel  <christian.bruel@st.com>
9317
9318         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
9319
9320 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
9321
9322         * builtins.c (set_builtin_user_assembler_name): Also handle
9323         ffs if int is smaller than word.
9324
9325 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
9326
9327         PR middle-end/42973
9328         * ira-conflicts.c (get_dup): Remove.
9329         (process_reg_shuffles): Add new parameter.  Use it as an
9330         additional guard for copy generation.
9331         (add_insn_allocno_copies): Rewrite.
9332
9333 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
9334
9335         * common.opt (fsched2-use-traces): Preserved for backward
9336         compatibility.
9337         * doc/invoke.texi: Remove the documentation about option
9338         -fsched2-use-traces.
9339         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
9340         flag_sched2_use_traces.
9341         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
9342         the backward compatibility flag section.
9343
9344 2010-02-09  Richard Guenther  <rguenther@suse.de>
9345
9346         PR tree-optimization/43008
9347         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
9348         make HEAP variables initialized from global memory if they
9349         are not known builtin functions.
9350         (find_func_aliases): Adjust.
9351
9352 2010-02-09  Richard Guenther  <rguenther@suse.de>
9353
9354         PR tree-optimization/43000
9355         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
9356         arithmetic manually.
9357
9358 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
9359
9360         PR tree-optimization/42931
9361         * tree-loop-linear.c (try_interchange_loops): Don't call
9362         double_int_mul if estimated_loop_iterations failed.
9363
9364 2010-02-08  Martin Jambor  <mjambor@suse.cz>
9365
9366         PR middle-end/42898
9367         * tree-sra.c (build_accesses_from_assign): Do not mark in
9368         should_scalarize_away_bitmap if stmt has volatile ops.
9369         (sra_modify_assign): Do not process assigns piecemeal if if stmt
9370         has volatile ops.
9371
9372 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
9373
9374         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
9375
9376 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
9377
9378         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
9379         before the pattern.
9380
9381 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
9382
9383         PR middle-end/42946
9384         * df-core.c (df_finish_pass): Change type of saved_flags to int.
9385
9386 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9387
9388         PR middle-end/42988
9389         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
9390         to unknown_dependence.
9391         (graphite_legal_transform_dr): Handle the unknown_dependence.
9392         (graphite_carried_dependence_level_k): Same.
9393
9394 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
9395
9396         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
9397
9398 2010-02-07  Richard Guenther  <rguenther@suse.de>
9399
9400         PR middle-end/42991
9401         * expr.c (get_inner_reference): Always initialize *pbitsize.
9402
9403 2010-02-07  Richard Guenther  <rguenther@suse.de>
9404
9405         PR middle-end/42956
9406         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
9407         new ARRAY_REFs on variable size element or minimal index arrays.
9408         Complete.
9409         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
9410         gimple_fold_indirect_ref.
9411
9412 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
9413
9414         PR target/42957
9415         * arm.c (arm_override_options): Just return if the user has specified
9416         an invalid fpu name.
9417
9418 2010-02-03  Jason Merrill  <jason@redhat.com>
9419
9420         PR c++/42870
9421         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
9422         i386_pe_maybe_record_exported_symbol.
9423
9424 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
9425
9426         PR target/42924
9427         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9428         (pa_delegitimize_address): New function.
9429
9430 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
9431
9432         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
9433         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
9434
9435 2010-02-05  Richard Guenther  <rguenther@suse.de>
9436
9437         PR lto/42762
9438         * lto-streamer-in.c (get_resolution): Deal with references
9439         to undefined functions.
9440
9441 2010-02-05  Richard Guenther  <rguenther@suse.de>
9442
9443         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
9444         (fold_const_aggregate_ref): Likewise.
9445         (ccp_fold_stmt): Substitute loads.
9446         (maybe_fold_reference): Verify types before substituting.
9447         Unshare properly.
9448         (fold_gimple_assign): Unshare properly.
9449         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
9450
9451 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
9452
9453         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
9454         for rs6000_gen_cell_microcode.
9455
9456 2010-02-04  Richard Guenther  <rguenther@suse.de>
9457
9458         PR rtl-optimization/42952
9459         * dse.c (const_or_frame_p): Remove MEM handling.
9460
9461 2010-02-04  Nick Clifton  <nickc@redhat.com>
9462
9463         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
9464         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
9465         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
9466         (mn10300_asm_output_mi_thunk): New function.
9467         (mn10300_can_output_mu_thunk): New function.
9468         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
9469         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
9470         (FUNCTION_ARG): Delete incorrect comment.
9471
9472 2010-02-03  Jason Merrill  <jason@redhat.com>
9473
9474         PR c++/40138
9475         * fold-const.c (operand_equal_p): Handle erroneous types.
9476
9477 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9478
9479         * config/h8300/h8300.md (can_delay): Fix attibute condition.
9480
9481 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
9482
9483         PR rtl-optimization/42941
9484         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
9485         of xmalloc.
9486
9487 2010-02-03  Jason Merrill  <jason@redhat.com>
9488
9489         PR c++/35652
9490         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
9491
9492 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
9493
9494         PR debug/42896
9495         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
9496         (cselib_reset_table): Renamed from...
9497         (cselib_reset_table_with_next_value): ... this.
9498         (cselib_get_next_uid): Renamed from...
9499         (cselib_get_next_unknown_value): ... this.
9500         * cselib.c (next_uid): Renamed from...
9501         (next_unknown_value): ... this.
9502         (cselib_clear_table): Adjust.
9503         (cselib_reset_table): Adjust.  Renamed from...
9504         (cselib_reset_table_with_next_value): ... this.
9505         (cselib_get_next_uid): Adjust.  Renamed from...
9506         (cselib_get_next_unknown_value): ... this.
9507         (get_value_hash): Use hash.
9508         (cselib_hash_rtx): Likewise.
9509         (new_cselib_val): Adjust.  Set and dump uid.
9510         (cselib_lookup_mem): Pass next_uid as hash.
9511         (cselib_subst_to_values): Likewise.
9512         (cselib_log_lookup): Dump uid.
9513         (cselib_lookup): Pass next_uid as hash.  Adjust.
9514         (cselib_process_insn): Adjust.
9515         (cselib_init): Initialize next_uid.
9516         (cselib_finish): Adjust.
9517         (dump_cselib_table): Likewise.
9518         * dse.c (canon_address): Dump value uid.
9519         * print-rtl.c (print_rtx): Print value uid.
9520         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
9521         (dvuid): New type.
9522         (dv_uid): New function, sort of renamed from...
9523         (dv_htab_hash): ... this, reimplemented in terms of it and...
9524         (dv_uid2hash): ... this.  New.
9525         (variable_htab_eq): Drop excess assertions.
9526         (tie_break_pointers): Removed.
9527         (canon_value_cmp): Compare uids.
9528         (variable_post_merge_New_vals): Print uids.
9529         (vt_add_function_parameters): Adjust.
9530         (vt_initialize): Reset table.  Adjust.
9531
9532 2010-02-03  Richard Guenther  <rguenther@suse.de>
9533
9534         PR tree-optimization/42944
9535         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
9536         (call_may_clobber_ref_p_1): Likewise.  Properly handle
9537         malloc and calloc clobbering errno.
9538
9539 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
9540
9541         * doc/invoke.texi: Fix name of sched1 dump.
9542
9543         * opts.c (decode_options): Set flag_tree_switch_conversion
9544         only conditionally on optimize >= 2.
9545
9546         * gcse.c: Assorted comment fixes in pass description.
9547
9548 2010-02-03  Anthony Green  <green@moxielogic.com>
9549
9550         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
9551         nop padding in order to maintain alignment of storage location of
9552         target function address.
9553         (moxie_trampoline_init): Store target function address at newly
9554         aligned location.
9555         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
9556         to 32.
9557         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
9558
9559 2010-02-03  Richard Guenther  <rguenther@suse.de>
9560
9561         PR middle-end/42927
9562         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
9563
9564 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9565
9566         * config.gcc: Reenable check for obsolete targets.
9567         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
9568         mips-sgi-irix6.[0-4]*.
9569
9570 2010-02-02  Nick Clifton  <nickc@redhat.com>
9571
9572         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
9573         constant size of 4 as being the same as 0.
9574         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
9575         can take values in the range 0..4.
9576
9577 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
9578
9579         PR java/41991
9580         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
9581         as _darwin10_Unwind_FindEnclosingFunction().
9582         * libgcc-libsystem.ver: New.
9583
9584 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
9585
9586         PR target/41399
9587         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
9588         implicitly set registers.
9589
9590 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
9591
9592         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
9593         (arm_override_options): Allow automatic selection of the thread
9594         pointer register if thumb2.
9595         (legitimize_pic_address): Improve code sequences for Thumb2.
9596         (arm_call_tls_get_addr): Likewise.
9597         (legitimize_tls_address): Likewise.
9598         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
9599         (pic_load_addr_32bit): ... this.  New named pattern.
9600         * thumb2.md (pic_load_addr_thumb2): Delete.
9601         (pic_load_dot_plus_four): Delete.
9602         (tls_load_dot_plus_four): New named pattern.
9603
9604 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9605
9606         PR libgomp/29986
9607         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
9608         Document fix for TLS bug.
9609
9610 2010-01-31  Richard Guenther  <rguenther@suse.de>
9611
9612         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
9613         conservatively correct.
9614
9615 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9616
9617         PR target/42850
9618         Revert:
9619         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9620
9621         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
9622
9623 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9624
9625         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
9626
9627 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
9628
9629         * config.gcc: Adjust order of makefile fragments for mingw targets.
9630
9631 2010-01-31  Richard Guenther  <rguenther@suse.de>
9632
9633         PR middle-end/42898
9634         * gimplify.c (gimplify_init_constructor): For volatile LHS
9635         initialize a temporary.
9636
9637 2010-01-31  Matthias Klose  <doko@ubuntu.com>
9638
9639         * configure.ac: Fix __stack_chk_fail check for cross builds configured
9640         --with-headers
9641         * configure: Regenerate.
9642
9643 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
9644
9645         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
9646         the same alias set and their sizes different constantness.
9647         (aliasing_component_refs_p): Revert 2009-10-24 change.
9648
9649 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9650
9651         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
9652         unused.
9653
9654 2010-01-29  Richard Guenther  <rguenther@suse.de>
9655
9656         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
9657         Assert we successfully updated the call.
9658
9659 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
9660
9661         PR rtl-optimization/42889
9662         * df.h (df_set_bb_dirty_nonlr): New prototype.
9663         * df-core.c (df_set_bb_dirty_nonlr): New function.
9664         * df-scan.c (df_insn_rescan): Call it instead of
9665         df_set_bb_dirty for DEBUG_INSNs.
9666
9667 2010-01-29  Richard Guenther  <rguenther@suse.de>
9668
9669         PR middle-end/37448
9670         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
9671         quadratic behavior in most cases.
9672
9673 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
9674
9675         PR target/42891
9676         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
9677         in the call to gen_x86_movsicc_0_m1.
9678
9679 2010-01-28  Richard Guenther  <rguenther@suse.de>
9680
9681         PR tree-optimization/42871
9682         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
9683
9684 2010-01-28  Richard Guenther  <rguenther@suse.de>
9685
9686         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
9687         into call arguments.
9688
9689 2010-01-28  Richard Guenther  <rguenther@suse.de>
9690
9691         PR middle-end/42883
9692         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
9693         the forwarder if the destination is an EH landing pad.
9694
9695 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
9696
9697         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
9698         block list passed to gimple_duplicate_sese_tail.
9699         (parallelize_loops): Avoid parallelization when the function
9700         has_nonlocal_label.
9701         Avoid parallelization when the preheader is IRREDUCIBLE.
9702         Try to optimize when estimated_loop_iterations_int is unresolved.
9703         Add the loop's location to the dump file.
9704         * tree-cfg.c (add_phi_args_after_redirect): Remove.
9705         (gimple_duplicate_sese_tail): Remove the check for the latch.
9706         Redirect nexits to the exit block.
9707         Remove handling of the incoming edges to the latch.
9708         Redirect the backedge from the copied latch to the exit bb.
9709
9710 2010-01-28  Michael Matz  <matz@suse.de>
9711
9712         PR target/42881
9713         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
9714         Wrap force_reg into a sequence, emit it before user.
9715
9716 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
9717
9718         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
9719         (arm_rev): New.
9720         (arm_legacy_rev): Likewise.
9721         (thumb_legacy_rev): Likewise.
9722
9723 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9724
9725         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
9726         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
9727         on MEM's address failed, try avoid_constant_pool_reference and
9728         recurse if it returned something different.
9729         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
9730         address, try avoid_constant_pool_reference and recurse if it
9731         returned something different.
9732         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
9733         address and avoid_constant_pool_reference returned something
9734         different, don't set have_address.
9735
9736 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
9737
9738         PR debug/42861
9739         * var-tracking.c (val_store): Add modified argument, obey it.
9740         Adjust callers.
9741         (count_uses): Move down logging of main.
9742         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
9743         don't need resolution.
9744         (emit_notes_in_bb): Likewise.
9745
9746 2010-01-27  Richard Guenther  <rguenther@suse.de>
9747
9748         PR middle-end/42878
9749         * tree-inline.c (remap_decl): Delay remapping of SSA name
9750         default definitions until we need them.
9751
9752 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
9753
9754         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
9755         (rs6000_delegitimize_address): New function.
9756
9757         * config/s390/s390.c (s390_delegitimize_address): Call
9758         delegitimize_mem_from_attrs.
9759
9760         PR middle-end/42874
9761         * tree-inline.c (cannot_copy_type_1): Removed.
9762         (copy_forbidden): Don't forbid copying of functions containing
9763         records/unions with variable length fields.
9764
9765 2010-01-27  Christian Bruel  <christian.bruel@st.com>
9766
9767         Revert:
9768         PR target/42841
9769         * config/sh/sh.c (find_barrier): Increase length for non delayed
9770         conditional branches.
9771
9772 2010-01-27  Matthias Klose  <doko@ubuntu.com>
9773
9774         * configure.ac (gnu-unique-object): Fix ldd version check.
9775         * configure: Regenerate.
9776
9777 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9778
9779         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
9780         HAVE_GNU_AS value.
9781         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
9782         Test for HAVE_GNU_AS value.
9783
9784 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9785
9786         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
9787         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
9788         INT64_TYPE): Define.
9789         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
9790         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
9791         INT_LEAST64_TYPE): Define.
9792         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
9793         UINT_LEAST64_TYPE): Define.
9794         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
9795         INT_FAST64_TYPE): Define.
9796         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
9797         UINT_FAST64_TYPE): Define.
9798         (INTMAX_TYPE, UINTMAX_TYPE): Define.
9799         (INTPTR_TYPE, UINTPTR_TYPE): Define.
9800         (SIG_ATOMIC_TYPE): Define.
9801
9802 2010-01-26  Richard Guenther  <rguenther@suse.de>
9803
9804         * df-scan.c (df_scan_set_bb_info): Remove assert.
9805         (df_insn_rescan_debug_internal): Merge asserts.
9806         (df_install_ref): Likewise.
9807         (df_mark_reg): Use bitmap_set_range.
9808         (df_hard_reg_used_p): Remove assert.
9809         (df_hard_reg_used_count): Likewise.
9810
9811 2010-01-26  Richard Guenther  <rguenther@suse.de>
9812
9813         PR rtl-optimization/42685
9814         * web.c (web_main): Ignore DEBUG_INSNs.
9815
9816 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
9817
9818         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
9819
9820         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
9821         Fix types of fndecl and arglist parameters.
9822
9823 2010-01-26  Richard Guenther  <rguenther@suse.de>
9824
9825         PR middle-end/42806
9826         * tree-eh.c (unsplit_eh): Skip debug insns.
9827
9828 2010-01-26  Richard Guenther  <rguenther@suse.de>
9829
9830         PR tree-optimization/42250
9831         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
9832
9833 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
9834
9835         PR fortran/42866
9836         * omp-low.c (expand_omp_sections): Only use single_pred if
9837         l2_bb is single_pred_p.
9838
9839 2010-01-25  Christian Bruel  <christian.bruel@st.com>
9840
9841         PR target/42841
9842         * config/sh/sh.c (find_barrier): Increase length for non delayed
9843         conditional branches.
9844         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
9845
9846 2010-01-24  David S. Miller  <davem@davemloft.net>
9847
9848         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
9849         define if not using GAS.
9850         * config/sparc/sparc.c (sparc_elf_asm_named_section):
9851         Likewise.  Delete SECTION_MERGE code, which is only applicable
9852         when using GAS.
9853
9854 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
9855
9856         PR c++/42748
9857         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
9858         mangling of va_list in system headers.
9859
9860 2010-01-23  Toon Moene  <toon@moene.org>
9861
9862         * tree-predcom.c (combine_chains): Return NULL, not false.
9863
9864 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
9865
9866         * tree-loop-distribution.c (distribute_loop): Fix declaration and
9867         initialization of variable res to agree with return type.
9868
9869 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
9870
9871         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
9872         * tree-sra.c: Add include of expr.h.
9873
9874 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
9875
9876         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
9877         insert the debug stmt on the single non-EH edge from the stmt.
9878
9879 2010-01-22  Richard Henderson  <rth@redhat.com>
9880
9881         PR tree-opt/42833
9882         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
9883         the RHS until after generate_subtree_copies has insertted its
9884         code before the current statement.
9885
9886 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
9887
9888         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
9889
9890         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
9891
9892 2010-01-21  Martin Jambor  <mjambor@suse.cz>
9893
9894         PR tree-optimization/42585
9895         * tree-sra.c (struct access): New field grp_total_scalarization.
9896         (dump_access): Dump the new field.
9897         (should_scalarize_away_bitmap): New variable.
9898         (cannot_scalarize_away_bitmap): Likewise.
9899         (sra_initialize): Allocate new bitmaps.
9900         (sra_deinitialize): Free new bitmaps.
9901         (create_access_1): New function.
9902         (create_access): Parts moved to create_access_1.
9903         (type_consists_of_records_p): New function.
9904         (completely_scalarize_record): Likewise.
9905         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
9906         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
9907         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
9908         access.
9909         (analyze_all_variable_accesses): Completely scalarize small eligible
9910         records.
9911
9912 2010-01-21  Martin Jambor  <mjambor@suse.cz>
9913
9914         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
9915
9916 2010-01-21  Andrew Haley  <aph@redhat.com>
9917
9918         * gcc.c (process_command): Move lang_specific_driver before
9919         setting cc_libexec_prefix.
9920
9921 2010-01-21  Richard Guenther  <rguenther@suse.de>
9922
9923         PR middle-end/19988
9924         * fold-const.c (negate_expr_p): Pretend only negative
9925         real constants are easily negatable.
9926
9927 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
9928             Jason Merrill  <jason@redhat.com>
9929
9930         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
9931         (TYPE_TRANSPARENT_AGGR): this, for union and record.
9932         * calls.c (initialize argument_information): Handle it.
9933         * c-common.c (handle_transparent_union_attribute): Use new name.
9934         * c-decl.c (finish_struct): Ditto.
9935         * c-typeck.c (type_lists_compatible_p): Ditto.
9936         (convert_for_assignment): Use new name and also handle record.
9937         * function.c (aggregate_value_p): Handle it.
9938         (pass_by_reference): Ditto.
9939         (assign_parm_data_types): Ditto.
9940         * print-tree.c (print_node): Ditto.
9941         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
9942         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
9943         * tree.c (first_field): New fn.
9944
9945 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
9946
9947         PR target/42818
9948         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
9949         even when linking statically, for now.
9950
9951 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
9952
9953         PR debug/42715
9954         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
9955         without a cselib val.
9956         (count_uses): Accept MO_VAL_SET with no val on stores.
9957         (add_stores): Likewise.
9958
9959 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9960
9961         * var-tracking.c (check_value_val): Add a compile time assertion.
9962         (dv_is_decl_p): Simplify.
9963         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
9964         gcc_assert if ENABLE_CHECKING.
9965
9966 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
9967
9968         PR debug/42782
9969         * var-tracking.c: Include tree-flow.h.
9970         (mem_dies_at_call): New.
9971         (dataflow_set_preserve_mem_locs): Use it.
9972         (dataflow_set_remove_mem_locs): Likewise.
9973         (dump_var): Renamed from dump_variable.  Adjust all callers.
9974         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
9975         * Makefile.in (var-tracking.o): Adjust deps.
9976
9977 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
9978
9979         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
9980
9981 2010-01-20  Richard Guenther  <rguenther@suse.de>
9982
9983         PR tree-optimization/42717
9984         * tree-ssa-dce.c (get_live_post_dom): Remove.
9985         (forward_edge_to_pdom): Take an arbitrary edge to copy
9986         degenerate PHI args from.
9987         (remove_dead_stmt): Use the first post-dominator even if it
9988         does not contain live statements as redirection destination.
9989
9990 2010-01-20  Richard Guenther  <rguenther@suse.de>
9991
9992         * tree-inline.c (estimate_num_insns): Handle EH builtins.
9993
9994 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
9995
9996         * sel-sched.c (create_speculation_check): Remove set but not used
9997         variable twin.
9998         (try_transformation_cache): Remove set but not used variable ds.
9999         (calculate_privileged_insns): Remove set but not used variables
10000         cur_insn and min_spec_insn.
10001         (find_best_expr): Remove set but not used variable avail_n.
10002         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
10003         variable e.
10004         * cgraphunit.c (assemble_thunk): Remove set but not used variable
10005         false_label.
10006         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
10007         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
10008         new_scop_exit_edge.
10009
10010 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
10011
10012         PR bootstrap/42786
10013         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
10014         cpu types.  Add support for *-sse3 cpu types.
10015         (x86_64-*-*): Ditto.
10016
10017 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10018
10019         PR middle-end/42803
10020         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
10021         argument, call initializer_constant_valid_p_1 instead of
10022         initializer_constant_valid_p, pass CACHE to it, return NULL
10023         immediately if first call returns NULL.
10024         (initializer_constant_valid_p_1): New function.
10025         (initializer_constant_valid_p): Use it.
10026
10027 2010-01-20  Thomas Quinot  <quinot@adacore.com>
10028
10029         * tree.def (PLACEHOLDER_EXPR): Fix comment.
10030
10031 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
10032
10033         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
10034         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
10035         (loc_list_from_tree): Don't handle unsigned division.  Handle
10036         signed modulo using DW_OP_{over,over,div,mul,minus}.
10037         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
10038         modulo instead of signed.
10039
10040 2010-01-20  DJ Delorie  <dj@redhat.com>
10041
10042         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
10043         (Fpa): Pass it
10044         (h8300_emit_stack_adjustment): Propogate it.
10045         (push): Pass it.
10046         (h8300_expand_prologue): Likewise.
10047         (h8300_expand_epilogue): Likewise.
10048
10049 2010-01-19  Michael Matz  <matz@suse.de>
10050
10051         PR tree-optimization/41783
10052         * tree-data-ref.c (toplevel): Include flags.h.
10053         (dump_data_dependence_relation):  Also dump the inputs if the
10054         result will be unknown.
10055         (split_constant_offset_1): Look through some conversions.
10056         * tree-predcom.c (determine_roots_comp): Restart a new chain if
10057         the offset from last element is too large.
10058         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
10059         (reassociate_to_the_same_stmt): Handle vector registers.
10060         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
10061         (e.g. conversions).
10062         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
10063         wide_prolog_niters argument, emit widening instructions.
10064         (vect_do_peeling_for_alignment): Adjust caller, use widened
10065         variant of the iteration cound.
10066         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
10067
10068 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10069
10070         PR target/38697
10071         * config/arm/neon-testgen.m (emit_automatics): New parameter
10072         features. Adjust for Fixed_return_reg feature.
10073         (test_intrinsic): Call emit_automatics with new feature.
10074         * config/arm/neon.ml: Update copyright years.
10075         (features): New Fixed_return_reg feature.
10076         (ops): Update feature for Vget_low.
10077
10078 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
10079
10080         PR tree-optimization/42719
10081         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
10082         stmt uses.
10083
10084         PR debug/42728
10085         * fwprop.c (all_uses_available_at): Return false if def_set dest
10086         is a REG that is used in def_insn.
10087
10088 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
10089
10090         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
10091
10092         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
10093         Add argument names.
10094
10095         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
10096
10097         * target.h (struct gcc_target) <secondary_reload>: Change type
10098         of last argument to secondary_reload_info *.
10099
10100 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
10101
10102         PR target/42774
10103         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
10104         memory references with unaligned offsets.  Remove CQImode handling.
10105         (unaligned_memory_operand): Return 1 for memory references with
10106         unaligned offsets.  Remove CQImode handling.
10107
10108 2010-01-18  Richard Guenther  <rguenther@suse.de>
10109
10110         PR middle-end/39954
10111         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
10112         builtin calls.
10113
10114 2010-01-18  Richard Guenther  <rguenther@suse.de>
10115
10116         PR tree-optimization/42781
10117         * tree-ssa-structalias.c (find_what_var_points_to): Skip
10118         restrict processing only if the original variable was artificial.
10119
10120 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
10121
10122         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
10123         find number of popped argument bytes.
10124
10125         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
10126         Fix the text that describes the return value for invalid insns.
10127
10128         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
10129
10130         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
10131         Clarify what 'cost of the -dependence' is.  Fix quoting.
10132
10133         * toplev.c (default_get_pch_validity): Rename argument to "sz".
10134         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
10135
10136 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
10137
10138         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10139         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
10140
10141 2010-01-17  Richard Guenther  <rguenther@suse.de>
10142
10143         PR middle-end/42248
10144         * function.c (split_complex_args): Take a VEC to modify.
10145         (assign_parms_augmented_arg_list): Build a VEC instead of
10146         a chain of PARM_DECLs.
10147         (assign_parms_unsplit_complex): Take a VEC of arguments.
10148         Do not fixup unmodified parms.
10149         (assign_parms): Deal with the VEC.
10150         (gimplify_parameters): Likewise.
10151
10152 2010-01-17  Richard Guenther  <rguenther@suse.de>
10153
10154         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
10155         node existence check.
10156         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
10157         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
10158         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
10159         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
10160         (gimple_execute_on_growing_pred): Likewise.
10161
10162 2010-01-17  Richard Guenther  <rguenther@suse.de>
10163
10164         PR tree-optimization/42773
10165         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
10166         (compute_antic_aux): Likewise.
10167         (compute_partial_antic_aux): Likewise.
10168
10169 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
10170
10171         PR debug/42767
10172         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
10173         and US_TRUNCATE.
10174
10175 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
10176
10177         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
10178         appearance.
10179
10180         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
10181         Fix markup for strict argument.
10182
10183         (TARGET_SCHED_REORDER2): Fix argument types.
10184
10185         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
10186         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
10187
10188         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
10189         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
10190
10191         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
10192         Add argument name.
10193
10194         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
10195         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
10196         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
10197         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
10198         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
10199
10200         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
10201
10202         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
10203
10204         (TARGET_ASM_RELOC_RW_MASK): Add return type.
10205         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
10206
10207         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
10208
10209         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
10210         Use prototype.
10211
10212         (TARGET_ASM_NAMED_SECTION): Fix argument list.
10213
10214         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
10215         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
10216
10217         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
10218
10219         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
10220
10221         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
10222         referring to it.  Fix language.
10223
10224         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
10225
10226         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
10227
10228         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
10229
10230         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
10231
10232         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
10233         '@var{stream}.  Remove stray 'and'.
10234
10235         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
10236
10237         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
10238
10239         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
10240
10241         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
10242         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
10243
10244         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
10245         Fix description of return value.
10246         Rename argument "sz" to "len."
10247
10248         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
10249         Clarify meaning of 'true' return value.
10250
10251         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
10252
10253         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
10254         rep_mode versus mode_rep.
10255
10256         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
10257
10258         (TARGET_BUILTIN_DECL): Fix name.
10259
10260         (TARGET_COMMUTATIVE_P): Fix type of first argument.
10261
10262         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
10263
10264         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
10265
10266         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
10267
10268         (TARGET_RELAXED_ORDERING): Use @deftypevr.
10269
10270         (TARGET_GET_DRAP_RTX): Note that this is a hook.
10271         Clarify language.
10272
10273         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
10274         Rename argument tm_fn to md_fn.
10275
10276         (TARGET_OPTION_PRINT): Fix argument list.
10277
10278 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
10279
10280         PR target/42664
10281         * config/i386/i386.c (ix86_fixup_binary_operands):
10282         Revert FMA4 fixup of operands.
10283
10284 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10285
10286         PR gcc/42525
10287         * Makefile.in (write_entries_to_file, install-plugin):
10288         Use \012 instead of \n with tr.
10289
10290 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
10291
10292         * configure.ac (HAVE_AS_REF): New C macro.
10293         * configure: Regenerate.
10294         * config.in: Likewise.
10295         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
10296         if HAVE_AS_REF.
10297         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
10298         if HAVE_AS_REF.
10299
10300 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
10301
10302         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
10303
10304         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
10305
10306         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
10307
10308         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
10309
10310         (TARGET_IN_SMALL_DATA_P): Fix argument type.
10311
10312         (TARGET_BINDS_LOCAL_P): Fix argument type.
10313
10314         (TARGET_ASM_FILE_END): Use prototype.
10315
10316         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
10317
10318         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
10319
10320         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
10321
10322         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
10323
10324         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
10325         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
10326
10327         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
10328         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
10329
10330         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
10331         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
10332         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
10333         (TARGET_ADDR_SPACE_CONVERT): Likewise.
10334
10335         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
10336
10337         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
10338
10339         (TARGET_INIT_BUILTINS): Use prototype.
10340
10341         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
10342         Put 'const char *' in braces.  Fix parameter types.
10343         (TARGET_INVALID_CONVERSION): Fix parameter types.
10344         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
10345         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
10346
10347         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
10348         Fix argument type.
10349
10350         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
10351
10352         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
10353
10354 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
10355
10356         * doc/tm.texi (TARGET_HELP): Fix return type.
10357
10358         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
10359         in braces.  Fix argument types.
10360
10361         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
10362
10363         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
10364
10365         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
10366
10367         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
10368         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
10369
10370         (TARGET_MANGLE_TYPE): Fix argument types.
10371
10372         (TARGET_IRA_COVER_CLASSES): Use prototype.
10373
10374         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
10375
10376         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
10377
10378         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
10379
10380         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
10381
10382         (TARGET_CALLEE_COPIES): Fix argument types.
10383
10384         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
10385
10386         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
10387
10388         (TARGET_FUNCTION_VALUE): Fix argument types.
10389
10390         (TARGET_RETURN_IN_MSB): Fix argument type.
10391
10392         (TARGET_RETURN_IN_MEMORY): Fix argument types.
10393
10394         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
10395
10396         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
10397
10398         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
10399         agree with return type.
10400
10401         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
10402
10403 2010-01-15  Jing Yu  <jingyu@google.com>
10404
10405         PR rtl-optimization/42691
10406         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
10407         a pseudo to a constant and are merged, and adjust comments.
10408
10409 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
10410
10411         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
10412
10413 2010-01-15  Richard Guenther  <rguenther@suse.de>
10414
10415         PR middle-end/42739
10416         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
10417         labels of computed or non-local gotos to the destination.
10418         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
10419         landing pad label is the first label.
10420
10421 2010-01-15  Richard Guenther  <rguenther@suse.de>
10422
10423         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
10424
10425 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
10426
10427         PR target/42747
10428         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
10429         to allow generation of the xssqrtdp instruction on power7.
10430         (sqrtdf2_fpr): Ditto.
10431
10432 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10433
10434         PR middle-end/42674
10435         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
10436         functions with noreturn attribute.
10437
10438         PR c++/42608
10439         * varasm.c (declare_weak): Add weak attribute to decl if it
10440         doesn't have one already.
10441         (assemble_external): Only add decls to weak_decls if they also
10442         have weak attribute.
10443
10444 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
10445
10446         * var-tracking.c (var_reg_delete): Don't delete the association
10447         between REGs and values or one-part variables if the register
10448         isn't clobbered.
10449
10450 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10451
10452         PR debug/42657
10453         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
10454         because its first operand is a non-localized variable.
10455
10456 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10457
10458         PR tree-optimization/42706
10459         * tree-sra.c (encountered_recursive_call): New variable.
10460         (encountered_unchangable_recursive_call): Likewise.
10461         (sra_initialize): Initialize both new variables.
10462         (callsite_has_enough_arguments_p): New function.
10463         (scan_function): Call decl and flags check only for IPA-SRA, check
10464         whether there is a recursive call and whether it has enough arguments.
10465         (all_callers_have_enough_arguments_p): New function.
10466         (convert_callers): Look for recursive calls only when
10467         encountered_recursive_call is set.
10468         (ipa_early_sra): Bail out either if
10469         !all_callers_have_enough_arguments_p or
10470         encountered_unchangable_recursive_call.
10471
10472 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10473
10474         * sel-sched.c: Add 2010 to copyright years.
10475         * sel-sched-ir.c: Likewise.
10476         * sel-sched-ir.h: Likewise.
10477
10478 2010-01-14  Martin Jambor  <mjambor@suse.cz>
10479
10480         PR tree-optimization/42714
10481         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
10482         constructors specially.
10483
10484 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10485
10486         * config/i386/drivers-i386.c (detect_caches_intel):
10487         Add l2sizekb parameter and fill in.
10488         (host_detect_local_cpu): Add l2sizekb, fill in.
10489         Add Atom small cache heuristic.
10490
10491 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10492
10493         * config/i386/drivers-i386.c (detect_caches_cpuid4):
10494         Add level3 parameter and fill in.
10495         (detect_caches_intel): Handle level3 cache.
10496
10497 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10498
10499         * config/i386/drivers-i386.c (host_detect_local_cpu):
10500         Fix core duo detection.
10501
10502 2010-01-14  Andi Kleen  <ak@linux.intel.com>
10503
10504         * config/i386/drivers-i386.c (host_detect_local_cpu):
10505         Fix Atom detection.
10506
10507 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10508
10509         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
10510         (rs6000_variable_issue_1): this.  Use...
10511         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
10512
10513 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10514
10515         * sel-sched-ir.c (sel_restore_other_notes): Rename to
10516         sel_restore_notes.  Update all callers.  Call reemit_notes
10517         for all insns.
10518
10519 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10520
10521         PR rtl-optimization/42246
10522         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
10523         loops.
10524
10525 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10526
10527         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
10528         all successors is the same as number of successors in current region.
10529
10530 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10531
10532         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
10533         to rename is not separable.  Otherwise check that its LHS is not NULL.
10534
10535 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10536
10537         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
10538
10539 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10540
10541         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
10542         available registers when failed to discover LHS register class.
10543         Fix indentation.  Update comment.
10544
10545 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10546             Alexander Monakov  <amonakov@ispras.ru>
10547
10548         PR rtl-optimization/42389
10549         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
10550         to can_issue_more.
10551         (advance_state_on_fence): Likewise.
10552         (sel_target_adjust_priority): Print debug output only when
10553         sched_verbose >= 4, not 2.
10554         (get_expr_cost): Do not issue all unique insns on the next cycle.
10555         (fill_insns): Initialize can_issue_more from the value saved
10556         with the fence.
10557         * sel-sched-ir.c (flist_add): New parameter issue_more.
10558         Init FENCE_ISSUE_MORE with it.
10559         (merge_fences): Likewise.
10560         (init_fences): Update call to flist_add.
10561         (add_to_fences, add_clean_fence_to_fences)
10562         (add_dirty_fence_to_fences): Likewise.
10563         (move_fence_to_fences): Update call to merge_fences.
10564         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
10565         sched groups.
10566         * sel-sched-ir.h (struct _fence): New field issue_more.
10567         (FENCE_ISSUE_MORE): New accessor macro.
10568
10569 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10570
10571         PR rtl-optimization/42388
10572         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
10573         that have no predecessors nor successors.  Do not call move_bb_info
10574         for empty blocks outside of current region.
10575
10576 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10577
10578         PR rtl-optimization/42294
10579         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
10580         * sel-sched.c (move_exprs_to_boundary): Transitively add all
10581         originators' originators.
10582
10583 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
10584
10585         PR rtl-optimization/39453
10586         PR rtl-optimization/42246
10587         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
10588         for pipelining_p.
10589         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
10590
10591 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
10592             Alexander Monakov  <amonakov@ispras.ru>
10593
10594         PR middle-end/42245
10595         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
10596         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
10597         argument.  Update all callers.
10598         (tidy_control_flow): ... and here.  Recompute topological order
10599         of basic blocks in region if necessary.
10600         (sel_redirect_edge_and_branch): Change return type.  Return true
10601         if topological order might have been invalidated.
10602         (purge_empty_blocks): Export and move from...
10603         * sel-sched.c (purge_empty_blocks): ... here.
10604         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
10605         (maybe_tidy_empty_bb): Delete prototype.
10606         (purge_empty_blocks): Declare.
10607
10608 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
10609
10610         PR rtl-optimization/42249
10611         * sel-sched.c (try_replace_dest_reg): When chosen register
10612         and original register is the same, do not bail out early, but
10613         still check all original insns for validity of replacing destination
10614         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
10615         in this case.
10616
10617 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
10618
10619         PR c/42721
10620         Port from no-undefined-overflow branch:
10621         2009-03-09  Richard Guenther  <rguenther@suse.de>
10622
10623         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
10624
10625 2010-01-14  Richard Guenther  <rguenther@suse.de>
10626
10627         PR lto/42665
10628         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
10629
10630 2010-01-14  Ira Rosen  <irar@il.ibm.com>
10631
10632         PR tree-optimization/42709
10633         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
10634         as scalar type in creation of constant vector operand.
10635
10636 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10637
10638         PR testsuite/42414
10639         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
10640         (check-parallel-%): Match `testsuite' directory component only
10641         at the end.
10642
10643 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
10644
10645         PR translation/39521
10646         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
10647         strings with _().
10648
10649 2010-01-13  Richard Guenther  <rguenther@suse.de>
10650
10651         PR tree-optimization/42730
10652         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
10653         offset zero.
10654
10655 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
10656
10657         PR target/pr42542
10658         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
10659         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
10660         them signed.
10661
10662 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10663
10664         * config/bfin/libgcc-bfin.ver: Regenerate based on current
10665         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
10666         ___umulsi3_highpart.
10667
10668         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
10669         rather than schedule_insns if the pass is enabled.
10670
10671 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10672
10673         PR tree-optimization/42704
10674         * tree-sra.c (sra_modify_assign): Do not delete assignments to
10675         SSA_NAMEs.
10676
10677 2010-01-13  Martin Jambor  <mjambor@suse.cz>
10678
10679         PR tree-optimization/42703
10680         * tree-sra.c (analyze_access_subtree): Check that we can build a
10681         reference to the original data within the aggregate.
10682
10683 2010-01-13  Richard Guenther  <rguenther@suse.de>
10684
10685         PR tree-optimization/42705
10686         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
10687
10688 2010-01-13  Richard Guenther  <rguenther@suse.de>
10689
10690         PR middle-end/42716
10691         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
10692
10693 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
10694
10695         PR debug/41371
10696         * var-tracking.c (values_to_unmark): New variable.
10697         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
10698         values_to_unmark vector.  Moved body to...
10699         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
10700         instead queue it into values_to_unmark vector.
10701         (vt_find_locations): Free values_to_unmark vector.
10702
10703 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
10704
10705         * config/s390/s390.c (override_options): Set
10706         default of max-pending-list-length to 256
10707
10708 2010-01-13  Richard Guenther  <rguenther@suse.de>
10709
10710         PR lto/42678
10711         * tree-pass.h (PROP_gimple_lcx): New.
10712         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
10713         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
10714         before the final cleanup_eh.
10715         (dump_properties): Dump PROP_gimple_lcx.
10716         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
10717         (tree_lower_complex_O0): Remove.
10718         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
10719         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
10720         tree_lower_complex, schedule TODO_update_ssa.
10721         * lto-streamer-out.c (output_function): Stream the functions
10722         properties.
10723         * lto-streamer-in.c (input_function): Likewise.
10724         (lto_read_body): Do not override them here.
10725
10726 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
10727
10728         PR c/42708
10729         * c-typeck.c (build_c_cast): Fold value cast to union type before
10730         wrapping it in a CONSTRUCTOR.
10731
10732 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10733
10734         PR rtl-optimization/42699
10735         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
10736         involved.
10737
10738 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10739
10740         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10741         SUBTARGET_WARN_UNUSED_SPEC): Move ...
10742         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
10743         SUBTARGET_WARN_UNUSED_SPEC): ... here
10744         * config/mips/iris5.h (LIBGCC_SPEC): Define.
10745
10746 2010-01-12  Julian Brown  <julian@codesourcery.com>
10747
10748         * config/arm/neon-schedgen.ml (Utils): Don't try to
10749         open missing module.
10750         (find_with_result): New.
10751
10752 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
10753
10754         PR debug/42662
10755         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
10756         sharing when canonicalizing ({lt,ge}u (plus a b) b).
10757
10758         PR tree-optimization/42645
10759         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
10760         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
10761         decl_map, set processing_debug_stmt to -1 and return name without
10762         any remapping.
10763
10764 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
10765
10766         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
10767         binutils version, and reword target configuration description.
10768
10769 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10770
10771         * config/avr/avr.h (LINKER_NAME): Remove.
10772
10773 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
10774
10775         PR target/42416
10776         * config/rs6000/rs6000.c (rs6000_override_options): On targets
10777         that support VSX, warn for -mno-altivec if vsx is not disabled,
10778         and disable vsx.
10779
10780 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
10781             Shujing Zhao  <pearly.zhao@oracle.com>
10782
10783         PR translation/42469
10784         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
10785         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
10786         character between option name and help text.
10787         * c.opt (imultilib): Likewise.
10788
10789 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
10790
10791         * lto-streamer-out.c (output_unreferenced_globals): Output static
10792         variables.
10793
10794 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
10795
10796         PR rtl-optimization/42621
10797         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
10798         optimizing for size.
10799         (duplicate_computed_gotos): Remove now-redundant check.
10800
10801 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
10802
10803         PR target/37454
10804         * configure.ac: Save and restore LDFLAGS and LIBS
10805         * configure: Regenerate.
10806
10807 2010-01-10  Richard Guenther  <rguenther@suse.de>
10808
10809         PR middle-end/42667
10810         * builtins.c (fold_builtin_strlen): Add type argument and
10811         convert the resulting length to it.
10812         (fold_builtin_1): Adjust.
10813
10814 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
10815
10816         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
10817         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
10818         1 insn.
10819         (num_insns_constant_wide): Adjust for that change.
10820
10821 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10822
10823         PR debug/42631
10824         * web.c (union_defs): Add used argument, to combine uses of
10825         uninitialized regs.
10826         (entry_register): Adjust type and tests of used argument.
10827         (web_main): Widen used for new use.  Pass it to union_defs.
10828         * df.h (union_defs): Adjust prototype.
10829
10830 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10831
10832         PR debug/42630
10833         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
10834         uses in new incoming argument.  Free body.
10835         (reset_debug_uses_in_loop): New.
10836         (analyze_insn_to_expand_var): Call the latter if the former found
10837         anything.  Fix whitespace.  Reject invalid dest overlaps before
10838         going through all insns in the loop.
10839
10840 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10841
10842         PR debug/42629
10843         * haifa-sched.c (dying_use_p): Debug insns don't count.
10844
10845 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10846
10847         PR middle-end/42363
10848         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
10849         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
10850         (verify_gimple_call): Reject LHS in noreturn calls.
10851
10852 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10853
10854         PR debug/42604
10855         PR debug/42395
10856         * tree-vect-loop-manip.c (adjust_info): New type.
10857         (adjust_vec): New pointer to vector.
10858         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
10859         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
10860         (slpeel_update_phis_for_duplicate_loop): Use them.
10861         (slpeel_update_phi_nodes_for_guard1): Likewise.
10862         (slpeel_update_phi_nodes_for_guard2): Likewise.
10863         (slpeel_tree_peel_loop_to_edge): Likewise.
10864         (vect_update_ivs_after_vectorizer): Likewise.
10865
10866 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10867
10868         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
10869         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
10870
10871 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
10872
10873         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
10874         bogus uninitialized warning.
10875
10876 2010-01-09  Richard Guenther  <rguenther@suse.de>
10877
10878         PR middle-end/42512
10879         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
10880         the evolution is compatible with the initial condition.
10881
10882 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
10883
10884         * gcc.c (process_command): Update copyright notice dates.
10885         * gcov.c (print_version): Likewise.
10886         * gcov-dump.c (print_version): Likewise.
10887         * mips-tfile.c (main): Likewise.
10888         * mips-tdump.c (main): Likewise.
10889
10890 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
10891
10892         PR target/41885
10893         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
10894         (rotlhi3): Delete.
10895         (rotlhi3_8): Delete.
10896         (rotlsi3): Delete.
10897         (rotlsi3_8): Delete.
10898         (rotlsi3_16): Delete.
10899         (rotlsi3_24): Delete.
10900         (rotl<mode>3): New.
10901         (*rotw<mode>3): New.
10902         (*rotb<mode>3): New.
10903         * config/avr/avr.c (avr_rotate_bytes): New function.
10904         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
10905
10906 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
10907
10908         PR target/37454
10909         * configure.ac: Modify -rdynamic check.
10910         * configure: Regenerate.
10911
10912 2010-01-08  DJ Delorie  <dj@redhat.com>
10913
10914         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
10915         register popping order.
10916
10917 2010-01-08  Richard Guenther  <rguenther@suse.de>
10918
10919         PR lto/42528
10920         * c.opt (fsigned-char): Also let LTO handle this option.
10921         (funsigned-char): Likewise.
10922
10923 2010-01-07  Richard Guenther  <rguenther@suse.de>
10924
10925         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
10926         (gimple_op): Likewise.
10927         (gimple_op_ptr): Likewise.
10928         (gimple_assign_set_lhs): Remove gcc_assert.
10929         (gimple_assign_set_rhs1): Likewise.
10930         (gimple_assign_set_rhs2): Likewise.
10931         (gimple_call_set_lhs): Likewise.
10932         (gimple_call_set_fn): Likewise.
10933         (gimple_call_set_fndecl): Likewise.
10934         (gimple_call_fndecl): Likewise.
10935         (gimple_call_return_type): Likewise.
10936         (gimple_call_set_chain): Likewise.
10937         (gimple_call_num_args): Likewise.
10938         (gimple_call_set_arg): Likewise.
10939         (gimple_cond_set_code): Likewise.
10940         (gimple_cond_set_lhs): Likewise.
10941         (gimple_cond_set_rhs): Likewise.
10942         (gimple_cond_set_true_label): Likewise.
10943         (gimple_cond_set_false_label): Likewise.
10944         (gimple_label_set_label): Likewise.
10945         (gimple_goto_set_dest): Likewise.
10946         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
10947         (gimple_debug_bind_get_value): Likewise.
10948         (gimple_debug_bind_get_value_ptr): Likewise.
10949         (gimple_debug_bind_set_var): Likewise.
10950         (gimple_debug_bind_set_value): Likewise.
10951         (gimple_debug_bind_reset_value): Likewise.
10952         (gimple_debug_bind_has_value_p): Likewise.
10953         (gimple_return_retval_ptr): Remove gcc_assert.
10954         (gimple_return_retval): Likewise.
10955         (gimple_return_set_retval): Likewise.
10956         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
10957         (safe_referenced_var_iterator): Remove.
10958         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
10959         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
10960         (fill_referenced_var_vec): Remove.
10961         (first_readonly_imm_use): Remove redundant gcc_assert.
10962         (phi_arg_index_from_use): Combine gcc_asserts.
10963         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
10964         (first_imm_use_stmt): Remove redundant gcc_assert.
10965         * tree-cfg.c (verify_gimple_call): Verify function and chain
10966         operands.  Verify arguments.
10967         (verify_types_in_gimple_stmt): Verify condition code and labels.
10968
10969 2010-01-07  Richard Guenther  <rguenther@suse.de>
10970
10971         PR tree-optimization/42641
10972         * sese.c (rename_map_elt_info): Use the SSA name version, do
10973         not hash pointers.
10974
10975 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
10976
10977         PR tree-optimization/42625
10978         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
10979         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
10980
10981 2010-01-07  Duncan Sands  <baldrick@free.fr>
10982
10983         * Makefile.in (PLUGIN_HEADERS): Add version.h.
10984
10985 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
10986
10987         PR target/42511
10988         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
10989         note itself is not function_invariant_p.
10990
10991 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
10992
10993         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
10994         Do not add the DF_NOTE problem.
10995         * store-motion.c (execute_rtl_store_motion): Likewise.
10996
10997 2010-01-07  Martin Jambor  <mjambor@suse.cz>
10998
10999         PR tree-optimization/42157
11000         * tree-sra.c (compare_access_positions): Stabilize sort if both
11001         accesses have integer types, return zero immediately if they are the
11002         same.
11003
11004 2010-01-06  Richard Henderson  <rth@redhat.com>
11005
11006         PR middle-end/41883
11007         * haifa-sched.c (add_to_note_list): Merge into ...
11008         (concat_note_lists): ... here, and ...
11009         (unlink_other_notes, rm_other_notes): Merge into...
11010         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
11011         NOTE_INSN_EPILOGUE_BEG.
11012
11013 2010-01-06  Richard Guenther  <rguenther@suse.de>
11014
11015         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
11016         not inline regular functions into always-inline functions.
11017
11018 2010-01-06  Nick Clifton  <nickc@redhat.com>
11019
11020         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
11021         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
11022         used together.
11023         (OVERRIDE_OPTIONS): Delete.
11024         (OPTIMIZATION_OPTIONS): Define.
11025         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
11026         * config/rx/rx.c (rx_handle_option): Issue an error message if
11027         -mcpu=rx200 and -fpu are used together.
11028         (rx_set_optimization_options): New function.  Issue an error
11029         message if an optimization attribute attempts to reset the FPU/
11030         math optimization pairing.
11031         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
11032         * config/rx/rx.opt: Set the default to 32-bit doubles.
11033         * config/rx/t-rx: Add multilibs for -nofpu option.
11034         * doc/invoke.texi: Update documentation of RX options.
11035
11036 2010-01-06  Richard Guenther  <rguenther@suse.de>
11037
11038         * tree-ssa-pre.c (name_to_id): New global.
11039         (alloc_expression_id): Simplify SSA name handling.
11040         (lookup_expression_id): Likewise.
11041         (init_pre): Zero name_to_id.
11042         (fini_pre): Free it.
11043
11044 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
11045
11046         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
11047
11048 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
11049
11050         PR target/42542
11051         * config/i386/sse.md (smaxv2di3): New.
11052         (umaxv2di3): Likewise.
11053         (sminv2di3): Likewise.
11054         (uminv2di3): Likewise.
11055
11056 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
11057
11058         PR target/42564
11059         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
11060         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
11061         (legitimize_tls_address): Likewise.
11062         (sparc_tls_referenced_p): Likewise.
11063         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
11064         and adjust calls to legitimize_pic_address.
11065         (legitimate_constant_p) Use sparc_tls_referenced_p.
11066         (legitimate_pic_operand_p): Likewise.
11067         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
11068         (sparc_tls_symbol_ref_1): Delete.
11069         (sparc_tls_referenced_p): Make static, recognize specific patterns.
11070         (legitimize_tls_address): Make static, handle CONST patterns.
11071         (legitimize_pic_address): Make static, remove unused parameter and
11072         adjust recursive calls.
11073         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
11074         and adjust call to legitimize_pic_address.
11075         (sparc_output_mi_thunk): Likewise.
11076
11077 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
11078             H.J. Lu  <hongjiu.lu@intel.com>
11079
11080         PR target/42542
11081         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
11082         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
11083         operands to make them signed.
11084
11085         Revert:
11086         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11087
11088         PR target/42542
11089         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11090         GTU to GT for V4SI and V2DI.
11091
11092         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11093         (umin<mode>3): Removed.
11094         (uminv8hi3): New.
11095         (uminv4si3): Likewise.
11096
11097 2010-01-05  Martin Jambor  <mjambor@suse.cz>
11098
11099         PR tree-optimization/42462
11100         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
11101         current_function_decl to helper functions and macros.
11102
11103 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11104
11105         PR bootstrap/41771
11106         * flags.h: Don't include real.h.
11107         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
11108         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
11109         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
11110         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
11111         * dominance.c: Update copyright.
11112         * gimple.c (walk_gimple_op): Remove inline.
11113         * tree-ssa-reassoc.c: Include real.h.
11114         * Makefile.in (FLAGS_H): Remove $(REAL_H).
11115         (tree-ssa-reassoc.o): Depend on $(REAL_H).
11116
11117 2010-01-05  Nick Clifton  <nickc@redhat.com>
11118
11119         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
11120         register to push into the stack frame when the accumulator has to
11121         be saved during interrupts.
11122
11123 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
11124
11125         * doc/invoke.texi: Remove the documentation about option
11126         -Wunreachable-code.
11127         * common.opt (Wunreachable-code):  Preserved for backward
11128         compatibility.
11129         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
11130         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
11131         the backward compatibility flag section.
11132
11133 2010-01-05  Richard Guenther  <rguenther@suse.de>
11134
11135         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
11136
11137 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
11138
11139         PR other/42611
11140         * cfgexpand.c (expand_one_var): Diagnose too large variables.
11141
11142         PR tree-optimization/42508
11143         * tree-sra.c (convert_callers): Check for recursive call
11144         by comparing cgraph nodes instead of decls.
11145         (modify_function): Call ipa_modify_formal_parameters also
11146         on all same_body aliases.
11147
11148         * cgraphunit.c (cgraph_materialize_all_clones): Compare
11149         cgraph nodes when checking for same_body aliases.
11150
11151 2010-01-05  Richard Guenther  <rguenther@suse.de>
11152
11153         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
11154         allocation and lookup.
11155         (get_or_alloc_expr_for_constant): Likewise.
11156         (phi_translate): Sink allocation.
11157
11158 2010-01-04  Richard Guenther  <rguenther@suse.de>
11159
11160         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
11161         a new entry only if needed.
11162         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
11163         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
11164         hashtable lookup.
11165         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
11166         the result array.
11167         (phi_translate): Handle CONSTANTs early.
11168
11169 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11170
11171         PR tree-optimization/42398
11172         * tree-sra.c (struct access): Removed flag grp_different_types.
11173         (dump_access): Do not dump the removed flag.
11174         (sort_and_splice_var_accesses): Do not set the removed flag.
11175         (sra_modify_expr): Check for type compatibility directly.
11176
11177 2010-01-04  Martin Jambor  <mjambor@suse.cz>
11178
11179         PR tree-optimization/42366
11180         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
11181         edges with variable number of parameters.
11182         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
11183         flag instead of asserting it.
11184         (ipa_read_node_info): Read uses_analysis_done flag.
11185
11186 2010-01-04  Richard Guenther  <rguenther@suse.de>
11187
11188         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
11189         iterative_hash_* as intended.
11190         (vn_reference_compute_hash): Likewise.  Simplify hashing
11191         SSA names.
11192         (vn_reference_lookup_2): Likewise.
11193         (vn_nary_op_compute_hash): Likewise.
11194         (vn_phi_compute_hash): Likewise.
11195         (expressions_equal_p): Remove strange code.
11196         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
11197         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
11198         (bitmap_insert_into_set_1): Take value-id as parameter.
11199         (add_to_value): Pass it.
11200         (bitmap_insert_into_set): Likewise.
11201         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
11202
11203 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
11204
11205         PR driver/42442
11206         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
11207         (do_self_spec): For switches with SWITCH_IGNORE set set also
11208         SWITCH_IGNORE_PERMANENTLY.
11209         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
11210         of SWITCH_IGNORE.
11211
11212 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
11213
11214         * lto-streamer-out.c (output_unreferenced_globals): Output the full
11215         tree of an unreferenced global var.
11216
11217 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11218
11219         PR target/42542
11220         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
11221         GTU to GT for V4SI and V2DI.
11222
11223         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
11224         (umin<mode>3): Removed.
11225         (uminv8hi3): New.
11226         (uminv4si3): Likewise.
11227
11228 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
11229
11230         PR lto/42581
11231         * collect2.c (main): Turn on trace in collect2 if -v is passed
11232         to gcc with LTO.
11233
11234 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
11235
11236         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
11237         description of expression operand.
11238
11239 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
11240
11241         * configure.ac: Add install-html to target_list for Make-hooks.
11242         * configure: Regenerate.
11243         * fortran/Make-lang.in (F95_HTMLFILES): New.
11244         (fortran.html): Use it.
11245         (fortran.install-html): New.
11246         * Makefile.in (install-html): Add lang.install-html.
11247         * java/Make-lang.in (JAVA_HTMLFILES): New.
11248         (java.html): Use it.
11249         (java.install-html): New.
11250         * objc/Make-lang.in (objc.install-html): New.
11251         * objcp/Make-lang.in (obj-c++.install-html): New.
11252         * cp/Make-lang.in (c++.install-html): New.
11253         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
11254         * lto/Make-lang.in (lto.install-html): New.
11255
11256 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11257
11258         PR lto/42520
11259         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
11260
11261 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11262
11263         PR rtl-optimization/41862
11264         * store-motion.c (store_killed_in_insn, compute_store_table,
11265         remove_reachable_equiv_notes, replace_store_insn,
11266         build_store_vectors): Ignore all DEBUG_INSNs.
11267
11268 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
11269
11270         PR lto/41564
11271         * common.opt: Add dumpdir.
11272
11273         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
11274         isn't specified.
11275         (option_map): Add --dumpdir.
11276
11277         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
11278
11279         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
11280
11281         * opts.c (decode_options): Try dump_dir_name first if
11282         dump_base_name isn't an absolute path.
11283         (common_handle_option): Handle OPT_dumpdir.
11284
11285         * toplev.c (dump_dir_name): New.
11286         (print_switch_values): Also ignore -dumpdir.
11287
11288         * toplev.h (dump_dir_name): New.
11289
11290 2010-01-03  Richard Guenther  <rguenther@suse.de>
11291
11292         PR tree-optimization/42589
11293         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
11294         double-word expansion of bswap32.
11295
11296 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
11297
11298         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
11299         with BLOCK_FOR_INSN.
11300         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
11301         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
11302         noce_process_if_block): Likewise.
11303         * gcse.c (compute_local_properties, insert_expr_in_table,
11304         insert_set_in_table, canon_list_insert, find_avail_set,
11305         pre_insert_copy_insn): Likewise.
11306
11307         * basic-block.h (BLOCK_NUM): Move from here...
11308         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
11309
11310 2010-01-03  Richard Guenther  <rguenther@suse.de>
11311
11312         PR tree-optimization/42438
11313         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
11314         contains_may_not_return_call flag.
11315         (BB_MAY_NOTRETURN): New.
11316         (valid_in_sets): Trapping nary operations are not valid
11317         in blocks that may not return.
11318         (insert_into_preds_of_block): Remove check for trapping expressions.
11319         (compute_avail): Compute also BB_MAY_NOTRETURN.
11320
11321 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
11322
11323         * doc/invoke.texi: Add 2010 to copyright years.
11324
11325 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
11326
11327         * config/sparc/sparc.c: Fix formatting nits.
11328
11329 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
11330             Alexander Monakov  <amonakov@ispras.ru>
11331
11332         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
11333
11334 2010-01-02  Richard Guenther  <rguenther@suse.de>
11335
11336         PR middle-end/42577
11337         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
11338         (simplify_switch_using_ranges): Mark to be removed edges
11339         as non-executable.
11340
11341 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11342
11343         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
11344
11345         * collect2.c (scan_libraries): Add missing argument in call to
11346         scan_prog_file.
11347
11348 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
11349
11350         PR target/42448
11351         * config/alpha/predicates.md (aligned_memory_operand): Return false
11352         for CQImode.
11353         (unaligned_memory_operand): Return true for CQImode.
11354         * config/alpha/alpha.c (get_aligned_mem): Assert that location
11355         doesn not cross aligned SImode word boundary.
11356
11357 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
11358
11359         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
11360         Remove.
11361         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
11362         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
11363
11364 2010-01-02  Richard Guenther  <rguenther@suse.de>
11365
11366         PR lto/41597
11367         * toplev.c (compile_file): Emit LTO marker properly.  Change
11368         it to __gnu_lto_v1.
11369         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
11370
11371 2010-01-01  Richard Guenther  <rguenther@suse.de>
11372
11373         PR debug/42455
11374         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
11375
11376 2010-01-01  Richard Guenther  <rguenther@suse.de>
11377
11378         PR c/42570
11379         * c-decl.c (grokdeclarator): For zero-size arrays force
11380         structural equality checks as layout_type does.
11381
11382 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11383
11384         * builtins.c: Update copyright to 2010.
11385
11386 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
11387
11388         PR lto/42531
11389         * lto-streamer-out.c (produce_asm): Revert the last change.
11390         (copy_function): Likewise.
11391
11392         * lto-streamer.c (lto_get_section_name): Skip any leading
11393         asterisk in name.
11394
11395 2010-01-01  Richard Guenther  <rguenther@suse.de>
11396
11397         PR middle-end/42559
11398         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
11399         for LABEL_DECLs.
11400
11401 \f
11402 Copyright (C) 2010 Free Software Foundation, Inc.
11403
11404 Copying and distribution of this file, with or without modification,
11405 are permitted in any medium without royalty provided the copyright
11406 notice and this notice are preserved.