OSDN Git Service

94305fafe46bd9f18b52b5493074d72bbad9bea4
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
2             Jason Merrill  <jason@redhat.com>
3
4         * c-common.c (c_common_reswords): Add nullptr.
5         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
6         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
7         (gen_type_die_with_usage): Likewise.
8         * dbxout.c (dbxout_type): Likewise.
9         * sdbout.c (plain_type_1): Likewise.
10
11 2010-05-06  Jason Merrill  <jason@redhat.com>
12
13         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
14         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
15         ret appropriately.
16         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
17
18         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
19         stripping WITH_SIZE_EXPR.
20         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
21         change.
22
23 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24
25         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
26         list of obsolete configurations.
27         Disabled check for obsolete configurations.
28         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
29         Removed support for previous versions.
30         * config/mips/iris.h: Removed.
31         * config/mips/iris5.h: Removed.
32         * config/mips/iris6.h: Merged old iris.h contents.
33         (TARGET_IRIX): Removed.
34         (DRIVER_SELF_SPECS): Removed mabi=32.
35         (IDENT_ASM_OP): Removed undef.
36         (STARTFILE_SPEC): Removed mabi=32.
37         (ENDFILE_SPEC): Likewise.
38         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
39         (MACHINE_TYPE): Update for IRIX 6.5.
40         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
41         TARGET_IRIX by TARGET_IRIX6.
42         (mips_file_start): Likewise.
43         (mips_output_external): Remove IRIX 5/6 O32 support.
44         (mips_output_function_prologue): Likewise.
45         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
46         TARGET_IRIX6.
47         (TARGET_CPU_CPP_BUILTINS): Likewise.
48         (TARGET_IRIX): Removed.
49         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
50         (MULTILIB_DIRNAMES): Removed 32.
51         (MULTILIB_OSDIRNAMES): Removed ../lib.
52         * doc/install.texi (Prerequisites): Don't reference IRIX before
53         6.5.
54         (Specific, mips-sgi-irix5): Document removal.
55         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI
56         removal.
57         Remove references to older IRIX 6 releases and the O32 ABI.
58
59 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
60
61         * gcc.dg/Wunused-var-8.c: Move to...
62         * c-c++-common/Wunused-var-6.c: ... here.  New test.
63
64         PR bootstrap/43994
65         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
66         instead of DF_REF_REAL_REG.
67
68 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
69
70         PR target/43888
71         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
72         handling to still return true for x64 targets.
73
74 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
75
76         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
77
78 2010-05-06  Jan Hubicka  <jh@suse.cz>
79
80         PR tree-optimization/43791
81         * ipa-inline.c (update_caller_keys): Remove bogus
82         disregard_inline_limits check.
83
84 2010-05-06  Michael Matz  <matz@suse.de>
85
86         PR tree-optimization/43984
87         * tree-ssa-pre.c (inserted_phi_names): Remove.
88         (inserted_exprs): Change to bitmap.
89         (create_expression_by_pieces): Set bits, don't append to vector.
90         (insert_into_preds_of_block): Don't handle inserted_phi_names.
91         (eliminate): Don't look at inserted_phi_names, remove deleted
92         insns from inserted_exprs.
93         (remove_dead_inserted_code): Adjust to use bitmaps instead of
94         vectors.
95         (init_pre, fini_pre): Allocate and free bitmaps.
96         (execute_pre): Insert insns on edges before elimination.
97
98 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
99
100         * tree.c (initializer_zerop): Handle STRING_CST.
101
102 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
103
104         PR 40989
105         * doc/invoke.texi (Wimplicit): Document as C only.
106         * opts.c (common_handle_option): Add argument kind.
107         (handle_option): Rename as read_cmdline_option. Factor out code to...
108         (handle_option): ... here. New.
109         (handle_options): Rename as read_cmdline_options.
110         (decode_options): Update call.
111         (set_option): Use option index instead of option pointer. Classify
112         diagnostics correctly.
113         (enable_warning_as_error): Call handle_option.
114         * opts.h (set_option): Update declaration.
115         (handle_option): Declare.
116         * langhooks.h (struct lang_hooks): Add argument kind to
117         handle_option.
118         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
119         * c-opts.c (set_Wimplicit): Delete.
120         (c_family_lang_mask): New static constant.
121         (c_common_handle_option): Add argument kind. Use handle_option
122         instead of set_Wimplicit.
123         (c_common_post_options): warn_implicit and warn_implicit_int
124         are disabled by default.
125         * c-common.c (warn_implicit): Do not define here.
126         * c-common.h (warn_implicit): Do not declare here.
127         (c_common_handle_option): Update declaration.
128         * lto-opts.c (lto_reissue_options): Update call to set_option.
129
130 2010-05-06  Richard Guenther  <rguenther@suse.de>
131
132         PR tree-optimization/43571
133         * domwalk.c (walk_dominator_tree): Walk the dominator
134         sons in more optimal order.
135
136 2010-05-06  Richard Guenther  <rguenther@suse.de>
137
138         PR tree-optimization/43934
139         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
140         (stmt_cost): Likewise.
141         (extract_true_false_args_from_phi): New helper.
142         (determine_max_movement): For PHI nodes verify we can hoist them
143         and compute their cost.
144         (determine_invariantness_stmt): Handle PHI nodes.
145         (move_computations_stmt): Likewise.  Hoist PHI nodes in
146         if-converted form using COND_EXPRs.
147         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI
148         nodes.
149         (tree_ssa_lim): Likewise.
150         * tree-flow.h (tree_ssa_lim): Adjust prototype.
151         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
152
153 2010-05-06  Richard Guenther  <rguenther@suse.de>
154
155         PR tree-optimization/43987
156         * tree-ssa-structalias.c (could_have_pointers): For possibly
157         address-taken variables force pointers to be recorded.
158         (create_variable_info_for_1): Likewise.
159         (push_fields_onto_fieldstack): Pass in wheter all fields
160         must have pointers.
161         (find_func_aliases): Query types instead of vars whether
162         they contain pointers where appropriate.
163
164 2010-05-06  Jan Hubicka  <jh@suse.cz>
165
166         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
167         (record_reference, mark_address, mark_load, mark_store): Record
168         references.
169         (record_references_in_initializer): Update call of record_references.
170         (rebuild_cgraph_edges): Remove all references before rebuiding.
171         * cgraph.c (cgraph_create_node): Clear ref list.
172         (cgraph_remove_node): Remove references.
173         (dump_cgraph_node): Dump references.
174         (cgraph_clone_node): Clone references.
175         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
176         (struct cgraph_node, varpool_node): Add ref_lst.
177         * ipa-ref.c: New file.
178         * ipa-ref.h: New file.
179         * ipa-ref-inline.h: New file.
180         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
181         (referenced_from_other_partition_p): New function.
182         (lto_output_varpool_node): Take set arugment; call
183         referenced_from_other_partition.
184         (lto_output_ref): New.
185         (add_references): New.
186         (output_refs): New.
187         (output_cgraph): Compute boundary based on references;
188         output refs.
189         (output_varpool): Accept cgraph_node_set argument.
190         (input_ref): New.
191         (input_refs): New.
192         (input_cgraph): Call input_refs.
193         * lto-section-in.c (lto_section_name): Add refs.
194         * Makefile.in: (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
195         (ipa-ref.o): New file.
196         * varpool.c (varpool_node): Clear ipa ref list.
197         (varpool_remove_node): Remove references.
198         (dump_varpool_node): Dump references.
199         (varpool_assemble_decl): Only compile finalized ones.
200         (varpool_extra_name_alias): Initialize ref list.
201         * lto-streamer.c (lto-get_section_name): Add .refs section.
202         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
203         (referenced_from_other_partition_p): Declared.
204
205 2010-05-06  Ira Rosen  <irar@il.ibm.com>
206
207         PR tree-optimization/43901
208         * tree-vect-stmts.c (vectorizable_call): Assert that vector
209         type is not NULL if it's transformation phase, and return
210         FALSE if it's analysis.
211         (vectorizable_conversion, vectorizable_operation, 
212         vectorizable_type_demotion, vectorizable_type_promotion):
213         Likewise.
214
215 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
216
217         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
218         Delete.
219         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
220         New define.
221         * config/mips/mips-protos.h
222         (mips_small_register_classes_for_mode_p): Delete prototype.
223
224 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
225
226         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
227         * config/arm/arm.c (multiple_operation_profitable_p,
228         compute_offset_order): New static functions.
229         (load_multiple_sequence, store_multiple_sequence): Use them.
230         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
231         memory offsets, not register numbers.
232         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
233
234 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
235
236         * stor-layout.c (pending_sizes): Change the type to
237         VEC(tree,gc) *.
238         (get_pending_sizes, put_pending_size, put_pending_sizes):
239         Update the uses of pending_sizes.
240         * c-decl.c (store_parm_decls): Likewise.
241         * c-tree.h (struct c_arg_info): Likewise.
242         * tree.h: Update the prototype for get_pending_sizes and
243         put_pending_sizes.
244
245 2010-05-05  Jason Merrill  <jason@redhat.com>
246
247         PR debug/43370
248         * c-common.c (handle_aligned_attribute): Respect
249         ATTR_FLAG_TYPE_IN_PLACE.
250
251         PR testsuite/43758
252         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
253         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
254         (TARGET_INITIALIZER): Use it.
255         * c-common.c (attribute_takes_identifier_p): Call it.
256         * c-common.h: Update prototype.
257         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
258         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
259
260 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
261
262         PR debug/43950
263         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
264         DW_ID_down_case for Fortran compilation units.
265
266 2010-05-05  Jan Hubicka  <jh@suse.cz>
267
268         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
269         handle aliases.
270
271 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
272
273         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
274         a variable-sized RESULT_DECL.
275
276 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
277
278         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
279
280 2010-05-05  Jason Merrill  <jason@redhat.com>
281
282         PR c++/43787
283         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
284         returns GS_OK.
285         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
286
287 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
288             Jakub Jelinek  <jakub@redhat.com>
289
290         PR debug/43478
291         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
292         (dead_debug_init, dead_debug_finish): New functions.
293         (dead_debug_add, dead_debug_insert_before): Likewise.
294         (df_note_bb_compute): Initialize a dead_debug object, add dead
295         debug uses to it, insert debug bind insns before death insns,
296         reset debug insns that refer to pending uses at the end.
297         * rtl.h (make_debug_expr_from_rtl): New prototype.
298         * varasm.c (make_debug_expr_from_rtl): New function.
299
300 2010-05-05  Jan Hubicka  <jh@suse.cz>
301
302         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
303         (lto_varpool_encoder_new, lto_varpool_encoder_delete, lto_varpool_encoder_encode
304         lto_varpool_encoder_lookup, lto_varpool_encoder_deref, lto_varpool_encoder_size,
305         lto_varpool_encoder_encode_initializer_p,
306         lto_set_varpool_encoder_encode_initializer): New functions.
307         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
308         call output_varpool.
309         (input_varpool_node): Do not always set analyzed.
310         (input_cgraph_1): Return vector of cgraph nodes.
311         (input_varpool_1): Return vector of varpools.
312         (input_cgraph): Free the vectors.
313         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
314         output only initializers needed.
315         (lto_output): Only call output_cgraph.
316         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
317         * lto-section-out.c (lto_new_out_decl_state): Initialize
318         state->varpool_node_encoder.
319         * lto-streamer.h (lto_varpool_encoder_d): New.
320         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.     
321         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
322         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
323         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
324         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
325         Declare.
326         (output_varpool, input_varpool): Remove declarations.
327
328 2010-05-05  Jan Hubicka  <jh@suse.cz>
329
330         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
331         with body can prevail.
332
333 2010-05-05  Jan Hubicka  <jh@suse.cz>
334
335         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
336         size.
337
338 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
339
340         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to
341         dependencies.
342
343         * gengtype.h (erro_at_line): Constify pos argument.
344
345         * gengtype.c: Include hashtab.h.
346         (enum gc_used): Document GC_MAYBE_POINTED_TO.
347         (error_at_line): Constify pos argument.
348         (do_typedef): Initialize p->opt field.
349         (get_file_gtfilename): Fix comment typo.
350         (struct walk_type_data): Constify line field.
351         (get_output_file_for_structure): New function.
352         (write_local_func_for_structure): Constify orig_s argument.
353         Use get_output_file_for_structure.
354         (write_func_for_structure): Use get_output_file_for_structure.
355         (INDENT): New define.
356         (dump_pair, dump_type, dump_type_list, dump_typekind)
357         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
358         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
359         functions.
360         (seen_types): New variable.
361         (main): New variable do_dump.  Process "-d" command line option.
362         Call dump_everything if dump requested.
363
364 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
365
366         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
367         in a temporary instead of invoking the macro multiple times.
368         (track_expr_p): Likewise.
369
370 2010-05-04  Neil Vachharajani <nvachhar@google.com>
371
372         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
373         per new semantics.
374         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
375         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
376         conditions for printing notes.
377         * common.opt (-Wcoverage-mismatch): Allow negative, default to
378         true, update documentation.
379         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
380
381 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
382
383         PR c/43981
384         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
385         on dimen.
386
387 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
388
389         PR target/43799
390         * config/i386/i386.md (sse_prologue_save): Add clobber CC
391         register.
392         (*sse_prologue_save_insn1): Likewise.
393         (SSE prologue save splitter): Likewise.
394
395 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
396
397         * tree.c (free_lang_data_in_one_sizepos): New inline function.
398         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
399         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
400         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
401         all decls.  Call it on DECL_FIELD_OFFSET of fields.
402         (find_decls_types_r): Follow DECL_VALUE_EXPR.
403         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
404
405 2010-05-04  Martin Jambor  <mjambor@suse.cz>
406
407         * tree-sra.c (build_access_from_expr_1): The first parameter type
408         changed to simple tree.
409         (build_access_from_expr): Likewise, gsi parameter was eliminated.
410         (scan_assign_result): Renamed to assignment_mod_result, enum elements
411         renamed as well.
412         (build_accesses_from_assign): Removed all parameters except for a
413         simple gimple statement.  Now returns a simple bool.
414         (scan_function): All non-analysis parts moved to separate functions
415         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
416         parameters and updated both callers.
417         (sra_modify_expr): Removed parameter data.
418         (sra_modify_function_body): New function.
419         (perform_intra_sra): Call sra_modify_function_body to modify the
420         function body.
421         (replace_removed_params_ssa_names): Parameter data changed into
422         adjustments vector.
423         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
424         changed the parameter dont_convert to convert with the opposite
425         meaning.
426         (sra_ipa_modify_assign): Parameter data changed into adjustments
427         vector, return value changed to bool.
428         (ipa_sra_modify_function_body): New function.
429         (sra_ipa_reset_debug_stmts): Updated a comment.
430         (modify_function): Use ipa_sra_modify_function_body to modify function
431         body.
432
433 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
434
435         PR middle-end/43671
436         * alias.c (true_dependence): Handle the same VALUE in x and mem.
437         (canon_true_dependence): Likewise.
438         (write_dependence_p): Likewise.
439
440 2010-05-04  Jan Hubicka  <jh@suse.cz>
441
442         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
443         * cgraphbuild.c: Include ipa-utils.h
444         (record_reference_ctx): New struct.
445         (record_reference): Simplify to work on initializers; not statements.
446         (mark_address, mark_load, mark_store): New.
447         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
448         walk PHI nodes too.
449         (record_references_in_initializer): Update use of record_reference.
450         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
451         walk PHI nodes too.
452
453 2010-05-04  Jan Hubicka  <jh@suse.cz>
454
455         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
456         node will be removed anyway.
457         (lto_varpool_replace_node): Allow also unanalyzed nodes;
458         relink aliases of node into prevailing node.
459         * varpool.c (varpool_remove_node): Remove aliases properly;
460         when removing node, remove all its aliases too; remove DECL_INITIAL
461         of removed node; ggc_free the varpool node.
462
463 2010-05-04  Richard Guenther  <rguenther@suse.de>
464
465         PR tree-optimization/43879
466         * tree-ssa-structalias.c (alias_get_name): Use
467         DECL_ASSEMBLER_NAME if available.
468         (create_function_info_for): Return the varinfo node.
469         (ipa_pta_execute): Associate same-body aliases and extra names
470         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
471
472 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
473
474         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove
475         static.
476
477 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
478
479         PR bootstrap/43964
480         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
481         only if HONOR_REG_ALLOC_ORDER is not defined.
482
483 2010-05-04  Richard Guenther  <rguenther@suse.de>
484
485         PR tree-optimization/43949
486         * tree-vrp.c (extract_range_from_binary_expr): Only handle
487         TRUNC_MOD_EXPR.
488
489 2010-04-26  Jason Merrill  <jason@redhat.com>
490
491         * c.opt (-fstrict-enums): New.
492         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
493
494 2010-05-03  David Ung <davidu@mips.com>
495             James E. Wilson  <wilson@codesourcery.com>
496
497         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
498         emit the trap instruction before the divide for TUNE_74K.
499
500 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
501
502         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
503         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
504         based on the above, for new target hook.
505
506         * hooks.c (hook_bool_mode_true): New generic hook.
507         * hooks.h (hook_bool_mode_true): Add prototype.
508
509         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
510         target hook.
511         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
512         target hook, set to hook_bool_mode_false.
513         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
514         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
515         with targetm.small_register_classes_for_mode_p.
516         (find_reusable_reload): Likewise.
517         (combine_reloads): Likewise.
518         * reload1.c (reload_as_needed): Likewise.
519         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
520         * ifcvt.c (noce_process_if_block, check_cond_move_block,
521         dead_or_predicable): Likewise.
522         * regmove.c (optimize_reg_copy_1): Likewise.
523         * calls.c (prepare_call_address): Likewise.
524         (precompute_register_parameters): Likewise.
525
526         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
527         hook definition.
528         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
529         implementation of the hook that considers all register classes
530         small except for SH64.
531         (sh_override_options): Use the new hook.
532         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
533         Add prototype.
534
535         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
536         hook definition.
537         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
538         implementation of the hook that considers all register classes
539         small for THUMB1.
540         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
541         Add prototype.
542
543         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
544         hook definition.
545         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
546         implementation of the hook that considers all register classes
547         small for MIPS16.
548         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
549         Add prototype.
550
551         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
552         hook definition.
553         * config/m32c/m32c.h: Likewise.
554         * config/pdp11/pdp11.h: Likewise.
555         * config/avr/avr.h: Likewise.
556         * config/xtensa/xtensa.h: Likewise.
557         * config/m68hc11/m68hc11.h: Likewise.
558         * config/mn10300/mn10300.h: Likewise.
559         * config/mcore/mcore.h: Likewise.
560         * config/h8300/h8300.h: Likewise.
561         * config/bfin/bfin.h: Likewise.
562
563         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
564         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
565
566 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
567
568         * double-int.h (tree_to_double_int): Remove macro.
569         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
570         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
571         (tree_to_double_int): New function.
572         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
573         Move ...
574         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
575
576 2010-05-03  Richard Guenther  <rguenther@suse.de>
577
578         PR tree-optimization/43971
579         * tree-ssa-structalias.c (get_constraint_for_1): Fix
580         constraints in the !flag_delete_null_pointer_checks case.
581
582 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
583
584         PR debug/43972
585         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
586         result mode matches original rtl mode.
587
588 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
589
590         PR target/43888
591         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
592
593 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
594
595         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
596         when processing flag options.
597
598 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
599
600         * gcov-iov.c (main): Change format string placeholder
601         from %#08x to 0x%08x.
602         * genchecksum.c (dosum): Change format string placeholder
603         from %#02x to 0x%02x.
604
605 2010-05-02  Richard Guenther  <rguenther@suse.de>
606
607         PR tree-optimization/43879
608         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
609
610 2010-05-02  Bruno Haible  <bruno@clisp.org>
611
612         * doc/extend.texi (Function Attributes): Fix a typo.
613
614 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
615
616         Revert:
617         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
618         placeholder from 0x%x to %#x.
619         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
620         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
621         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
622         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
623         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
624         * config/i386/i386.c (ix86_target_string): Ditto.
625         * config/i386/i386.c (output_pic_addr_const): Ditto.
626         (print_operand): Ditto.
627
628 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
629
630         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
631         placeholder from 0x%x to %#x.
632         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
633         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
634         (ASM_OUTPUT_DEBUG_DATA): Ditto.
635         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
636         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
637         * optc-gen.awk: Ditto.
638         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
639         (HOST_WIDE_INT_PRINT_HEX): Ditto.
640         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
641         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
642
643 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
644
645         * target.h (struct calls): Add function_value_regno_p field.
646         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
647         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
648         * targhooks.c (default_function_value_regno_p): New function.
649         * targhooks.h (default_function_value_regno_p): Declare function.
650         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
651         * builtins.c. (apply_result_size): (Ditto.).
652         * combine.c. (likely_spilled_retval_p): (Ditto.).
653         * mode-switching.c. Include 'target.h'.
654         (create_pre_exit): Use function_value_regno_p hook.
655         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
656         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
657         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
658
659         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
660         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
661         (ix86_function_value_regno_p): Declare as static, change argument
662         type to const unsigned int.
663         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
664
665 2010-05-01  Richard Guenther  <rguenther@suse.de>
666
667         PR tree-optimization/43949
668         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
669         types.
670         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
671
672 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
673
674         * rtl.h (CONST_DOUBLE_P): Define.
675         (rtx_to_double_int): Declare.
676         * emit-rtl.c (rtx_to_double_int): New function.
677         * dwarf2out.c (insert_double): New function.
678         (loc_descriptor, add_const_value_attribute): Clean up, use
679         rtx_to_double_int and insert_double functions.
680
681 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
682
683         * doc/extend.texi (Inline): Add missing return keyword to examples.
684         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
685         "command-line".
686
687 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
688
689         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
690         the variable part of the offset as well.  Use highest_pow2_factor for
691         all alignment checks.
692
693 2010-04-30  Richard Guenther  <rguenther@suse.de>
694
695         PR tree-optimization/43879
696         * tree-ssa-structalias.c (type_could_have_pointers): Functions
697         can have pointers.
698
699 2010-04-30  Jan Hubicka  <jh@suse.cz>
700
701         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
702         varpool.
703         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
704
705 2010-04-30  Jan Hubicka  <jh@suse.cz>
706
707         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
708         New.
709         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
710         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
711         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
712         cgraph_node_set_needs_ltrans_p): Remove.
713
714 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
715
716         * sdbout.c: Include vec.h, do not include varray.h.
717         (deferred_global_decls, sdbout_global_decl,
718         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
719         * toplev.c: Do not include varray.h.
720         (dump_memory_report): Do not dump VARRAY statistics.
721         * gengtype.c (open_base_file): Ignore varray.h.
722         * Makefile.in: Update for abovementioned changes.
723         Remove all traces of varray.c and varray.h.
724         * varray.c: Remove file.
725         * varray.h: Remove file.
726
727 2010-04-30  Jan Hubicka  <jh@suse.cz>
728
729         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
730         references.
731
732 2010-04-30  Jan Hubicka  <jh@suse.cz>
733
734         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
735         needed.
736
737 2010-04-30  Richard Guenther  <rguenther@suse.de>
738
739         * tree-ssa-structalias.c (get_constraint_for_1): Generate
740         constraints for CONSTRUCTOR.
741
742 2010-04-30  Richard Guenther  <rguenther@suse.de>
743
744         PR lto/43946
745         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
746         first after all lowering passes.
747
748 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
749
750         * toplev.c: Include varray.h for statistics dumping.
751         * tree.h: Do not declare varray_head_tag.
752         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
753         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
754         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
755         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
756         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
757         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
758         c-common.c, c-common.h, reg-stack.c, basic-block.h,
759         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
760         include varray.h.
761         * Makefile.in: Update for abovementioned changes.
762
763 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
764
765         PR debug/43942
766         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
767
768 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
769
770         * config/picochip/picochip.c (picochip_legitimize_address): Define.
771         Use this function to do machine-specific conversion.
772         (picochip_legitimize_reload_address): Likewise.
773         (picochip_legitimate_address_p): Check valid base register only if
774         strict.
775         (picochip_check_conditional_copy): Check for modw only if opnd is
776         register.
777         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
778         to call the function in c.
779         * config/picochip/picochip-protos.h
780         (picochip_legitimize_reload_address): Define.
781         * config/picochip/picochip.md (supported_compare1): Define.
782
783 2010-04-30  Jan Hubicka  <jh@suse.cz>
784
785         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
786         (cgraph_global_info): Remove inlined.
787         (LTO_cgraph_tag_names): Remove.
788         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
789         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
790         simplify cgraph tags and document.
791         (lto_output_node): Use only LTO_cgraph_unavail_node and
792         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
793         for_functions_valid, global info, process and output flags.
794         (input_overwrite_node): Initialize estimated stack size and
795         estimated growth.  Do not read flags we no longer store.
796         (input_node): Likewise do not read info no longer stored.
797         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
798         flag.
799
800 2010-04-30  Richard Guenther  <rguenther@suse.de>
801
802         PR tree-optimization/43879
803         * tree-ssa-structalias.c (get_constraint_for_1): Properly
804         handle non-zero initializers.
805
806 2010-04-30  Richard Guenther  <rguenther@suse.de>
807
808         * builtins.c (fold_builtin_1): Delete free (0).
809
810 2010-04-29  Jan Hubicka  <jh@suse.cz>
811
812         * gengtype.c (open_base_files): Add lto-streamer.h
813         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
814         (pass_ipa_cp): GGC collect.
815         * toplev. (compile_file): Do not output symbols.
816         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
817         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
818         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
819         * lto-section-in.c: Include ggc.h
820         (lto_new_in_decl_state): Alloc in GGC.
821         (lto_delete_in_decl_state): Likewise.
822         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
823         Collect.
824
825 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
826
827         PR target/42895
828         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
829         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
830         (HONOR_REG_ALLOC_ORDER): Describe new macro.
831         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
832         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
833         account only if HONOR_REG_ALLOC_ORDER is not defined.
834         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
835         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
836
837 2010-04-29  Jon Grant  <04@jguk.org>
838
839         * collect2.c (vflag): Change type from int to bool.
840         (debug): Likewise.
841         (helpflag): New global bool.
842         (main): Set vflag and debug with boolean, not integer truth values.
843         Accept new "--help" option and output usage text if found.
844         * collect2.h (vflag): Update prototype.
845         (debug): Likewise.
846
847 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
848
849         PR bootstrap/43936
850         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
851
852 2010-04-29  Richard Guenther  <rguenther@suse.de>
853
854         PR bootstrap/43935
855         * plugin.h (invoke_plugin_callbacks): Annotate arguments
856         with ATTRIBUTE_UNUSED.
857
858 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
859
860         PR target/43921
861         * config/i386/i386.c (get_some_local_dynamic_name): Replace
862         INSN_P with NONDEBUG_INSN_P.
863         (distance_non_agu_define): Likewise.
864         (distance_agu_use): Likewise.
865
866 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
867
868         From Dominique d'Humieres <dominiq@lps.ens.fr>
869         PR bootstrap/43858
870         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
871         test_set.
872
873 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
874
875         * plugin.h (invoke_plugin_callbacks): New inline function.
876         * plugin.c (flag_plugin_added): New global flag.
877         (add_new_plugin): Initialize above flag.
878         (invoke_plugin_callbacks): Rename to ...
879         (invoke_plugin_callbacks_full): ... this.
880
881 2010-04-28  Jan Hubicka  <jh@suse.cz>
882
883         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
884         (lto_varpool_replace_node): New.
885         (lto_symtab_resolve_symbols): Resolve varpool nodes.
886         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
887         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
888         * cgraph.h (varpool_node_ptr): New type.
889         (varpool_node_ptr): New vector.
890         (varpool_node_set_def): New structure.
891         (varpool_node_set): New type.
892         (varpool_node_set): New vector.
893         (varpool_node_set_element_def): New structure.
894         (varpool_node_set_element, const_varpool_node_set_element): New types.
895         (varpool_node_set_iterator): New type.
896         (varpool_node): Add prev pointers, add used_from_other_partition,
897         in_other_partition.
898         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
899         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
900         varpool_get_node, varpool_remove_node): Declare.
901         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
902         varpool_node_set_size): New inlines.
903         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
904         * tree-pass.h (varpool_node_set_def): Forward declare.
905         (ipa_opt_pass_d): Summary writting takes vnode sets too.
906         (ipa_write_optimization_summaries): Update prototype.
907         * ipa-cp.c (ipcp_write_summary): Update.
908         * ipa-reference.c (ipa_reference_write_summary): Update.
909         * lto-cgraph.c (lto_output_varpool_node): New static function.
910         (output_varpool): New function.
911         (input_varpool_node): New static function.
912         (input_varpool_1): New function.
913         (input_cgraph): Input varpool.
914         * ipa-pure-const.c (pure_const_write_summary): Update.
915         * lto-streamer-out.c (lto_output): Update, output varpool too.
916         (write_global_stream): Kill WPA hack.
917         (produce_asm_for_decls): Update.
918         (output_alias_pair_p): Handle variables.
919         (output_unreferenced_globals): Output only needed partition of varpool.
920         * ipa-inline.c (inline_write_summary): Update.
921         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
922         cgraph.
923         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
924         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
925         varpool_node_set_new, varpool_node_set_add,
926         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
927         debug_varpool_node_set): New functions.
928         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
929         (execute_one_pass): Process new decls too.
930         (ipa_write_summaries_2): Pass around vsets.
931         (ipa_write_summaries_1): Likewise.
932         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
933         to add.
934         (ipa_write_optimization_summaries_1): Pass around vsets.
935         (ipa_write_optimization_summaries): Likewise.
936         * varpool.c (varpool_get_node): New.
937         (varpool_node): Update doubly linked lists.
938         (varpool_remove_node): New.
939         (dump_varpool_node): More dumping.
940         (varpool_enqueue_needed_node): Update doubly linked lists.
941         (decide_is_variable_needed): Kill ltrans hack.
942         (varpool_finalize_decl): Kill lto hack.
943         (varpool_assemble_decl): Skip decls in other partitions.
944         (varpool_assemble_pending_decls): Update doubly linkes lists.
945         (varpool_empty_needed_queue): Likewise.
946         (varpool_extra_name_alias): Likewise.
947         * lto-streamer.c (lto_get_section_name): Add vars section.
948         * lto-streamer.h (lto_section_type): Update.
949         (output_varpool, input_varpool): Declare.
950
951 2010-04-28  Mike Stump  <mikestump@comcast.net>
952
953         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
954
955 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
956
957         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
958         record or union type with RECORD_OR_UNION_TYPE_P predicate.
959         (lto_input_ts_type_tree_pointers): Likewise.
960         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
961         (lto_output_ts_type_tree_pointers): Likewise.
962
963 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
964
965         Uniquization of constants at the Tree level
966         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
967         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
968         bit to the end.
969         (tree_output_constant_def): Declare.
970         * gimplify.c (gimplify_init_constructor): When using block copy, first
971         uniquize the constant constructor on the RHS.
972         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
973         DECL_IN_CONSTANT_POOL flag.
974         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
975         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
976         constant pool.
977         (assemble_variable): Deal with symbols belonging to the tree constant
978         pool.
979         (get_constant_section): Add ALIGN parameter and simplify.
980         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
981         (assemble_constant_contents): Use the expression of the VAR_DECL.
982         (output_constant_def_contents): Use the alignment of the VAR_DECL.
983         (tree_output_constant_def): New global function.
984         (mark_constant): Use the expression of the VAR_DECL.
985         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
986         its expression.
987         (output_object_block): Likewise and assemble the expression.
988
989 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
990
991         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
992         hash_tree, eq_tree): New tree hash table.
993         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
994         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
995         lto_orig_address_remove): Reimplement.
996
997 2010-04-28  Xinliang David Li  <davidxl@google.com>
998
999         PR c/42643
1000         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
1001         (compute_uninit_opnds_pos): New function.
1002         (is_non_loop_exit_postdominating): New function.
1003         (compute_control_dep_chain): New function.
1004         (find_pdom): New function.
1005         (convert_control_dep_chain_into_preds): New function.
1006         (find_predicates): New function.
1007         (find_control_equiv_block): New function.
1008         (collect_phi_def_edges): New function.
1009         (find_def_preds): New function.
1010         (find_dom): New function.
1011         (dump_predicates): New function.
1012         (get_cmp_code): New function.
1013         (is_value_included_in): New function.
1014         (find_matching_predicate_in_rest_chains): New function.
1015         (use_pred_not_overlap_with_undef_path_pred): New function.
1016         (is_use_properly_guarded): New function.
1017         (normalize_cond_1): New function.
1018         (is_and_or_or): New function.
1019         (normalize_cond): New function.
1020         (is_gcond_subset_of): New function.
1021         (is_subset_of_any): New function.
1022         (is_or_set_subset_of): New function.
1023         (is_and_set_subset_of): New function.
1024         (is_norm_cond_subset_of): New function.
1025         (is_pred_expr_subset_of): New function.
1026         (is_pred_chain_subset_of): New function.
1027         (is_included_in): New function.
1028         (is_superset_of): New function.
1029         (find_uninit_use): New function.
1030         (warn_uninitialized_phi): New function.
1031         (compute_possibly_undefined_names): New function.
1032         (ssa_undefined_value_p): New function.
1033         (execute_late_warn_uninitialized): New function.
1034         * tree-ssa.c (ssa_undefined_value_p): Removed.
1035         (warn_uninit): Changed to extern.
1036         (warn_uninitialized_phi): Removed.
1037         (warn_uninitialized_vars): Changed to extern.
1038         (execute_late_warn_uninitialized): Removed
1039         * tree-flow.h: Add new prototypes.
1040         * timevar.def: Add new time variable.
1041         * Makefile.in: Add new build file.
1042
1043 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
1044
1045         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
1046         type if available.
1047
1048 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1049
1050         PR target/22224
1051         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
1052
1053 2010-04-28  Martin Jambor  <mjambor@suse.cz>
1054
1055         * cgraph.h (struct cgraph_node): New field indirect_calls.
1056         (struct cgraph_indirect_call_info): New type.
1057         (struct cgraph_edge): Removed field indirect_call. New fields
1058         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
1059         (cgraph_create_indirect_edge): Declare.
1060         (cgraph_make_edge_direct): Likewise.
1061         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
1062         * ipa-prop.h (struct ipa_param_call_note): Removed.
1063         (struct ipa_node_params): Removed field param_calls.
1064         (ipa_create_all_structures_for_iinln): Declare.
1065         * cgraph.c: Described indirect edges and uids in initial comment.
1066         (cgraph_add_edge_to_call_site_hash): New function.
1067         (cgraph_edge): Search also among the indirect edges, use
1068         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
1069         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
1070         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
1071         site hash.
1072         (initialize_inline_failed): Assign a reason to indirect edges.
1073         (cgraph_create_edge_1): New function.
1074         (cgraph_create_edge): Moved some functionality to
1075         cgraph_create_edge_1.
1076         (cgraph_create_indirect_edge): New function.
1077         (cgraph_edge_remove_callee): Add an assert checking for
1078         non-indirectness.
1079         (cgraph_edge_remove_caller): Special-case indirect edges.
1080         (cgraph_remove_edge): Likewise.
1081         (cgraph_set_edge_callee): New function.
1082         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
1083         (cgraph_make_edge_direct): New function.
1084         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
1085         the declaration of the call statement matches.
1086         (cgraph_node_remove_callees): Special-case indirect edges.
1087         (cgraph_clone_edge): Likewise.
1088         (cgraph_clone_node): Clone also the indirect edges.
1089         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
1090         indirect_call, dump count of indirect_calls edges.
1091         * ipa-prop.c (iinlining_processed_edges): New variable.
1092         (ipa_note_param_call): Create indirect edges instead of
1093         creating notes.  New parameter node.
1094         (ipa_analyze_call_uses): New parameter node, pass it on to
1095         ipa_note_param_call.
1096         (ipa_analyze_stmt_uses): Likewise.
1097         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
1098         (print_edge_addition_message): Work on edges rather than on notes.
1099         (update_call_notes_after_inlining): Likewise, renamed to
1100         update_indirect_edges_after_inlining.
1101         (ipa_create_all_structures_for_iinln): New function.
1102         (ipa_free_node_params_substructures): Do not free notes.
1103         (ipa_edge_duplication_hook): Propagate bits within
1104         iinlining_processed_edges bitmap.
1105         (ipa_node_duplication_hook): Do not duplicate notes.
1106         (free_all_ipa_structures_after_ipa_cp): Renamed to
1107         ipa_free_all_structures_after_ipa_cp.
1108         (free_all_ipa_structures_after_iinln): Renamed to
1109         ipa_free_all_structures_after_iinln.g
1110         (ipa_write_param_call_note): Removed.
1111         (ipa_read_param_call_note): Removed.
1112         (ipa_write_indirect_edge_info): New function.
1113         (ipa_read_indirect_edge_info): Likewise.
1114         (ipa_write_node_info): Do not stream notes, do stream information
1115         in indirect edges.
1116         (ipa_read_node_info): Likewise.
1117         (lto_ipa_fixup_call_notes): Removed.
1118         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
1119         * ipa-inline.c (pass_ipa_inline): Likewise.
1120         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
1121         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
1122         * tree-inline.c (copy_bb): Removed an unnecessary double check for
1123         is_gimple_call.
1124         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
1125         edges.
1126         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
1127         (output_cgraph): Stream also indirect edges.
1128         (lto_output_edge): Added capability to stream indirect edges.
1129         (input_edge): Likewise.
1130         (input_cgraph_1): Likewise.
1131         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
1132         of indirect edges.
1133
1134 2010-04-28  Richard Guenther  <rguenther@suse.de>
1135
1136         PR tree-optimization/43879
1137         PR tree-optimization/43909
1138         * tree-ssa-structalias.c (struct variable_info): Add
1139         only_restrict_pointers flag.
1140         (new_var_info): Initialize it.  Increment stats.total_vars here.
1141         (create_function_info_for): Do not increment stats.total_vars
1142         here.
1143         (get_function_part_constraint): Fix build with C++.
1144         (insert_into_field_list): Remove.
1145         (push_fields_onto_fieldstack): Properly merge fields.
1146         (create_variable_info_for): Split and simplify.
1147         (create_variable_info_for_1): New piece.
1148         (intra_create_variable_infos): Properly make restrict constraints
1149         from parameters.
1150
1151 2010-04-28  Richard Guenther  <rguenther@suse.de>
1152
1153         PR c++/43880
1154         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
1155
1156 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1157             Jan Hubicka <hubicka@ucw.cz>
1158
1159         * doc/invoke.texi (-Wsuggest-attribute=const,
1160         -Wsuggest-attribute=pure): Document.
1161         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
1162         (function_always_visible_to_compiler_p,
1163         suggest_attribute, warn_function_pure, warn_function_const):
1164         New functions.
1165         (check_call): Improve debug info.
1166         (analyze_function): Do not check availability.
1167         (add_new_function): Check availability.
1168         (propagate): Output warnings.
1169         (skip_function_for_local_pure_const): New function.
1170         (local_pure_const): Use it; output warnings.
1171         * common.opt (Wsuggest-attribute=const,
1172         Wsuggest-attribute=pure): New.
1173
1174 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1175
1176         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
1177         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
1178         or DW_CFA_def_cfa_offset{,_sf}.
1179
1180 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1181
1182         * tree.h: Fix truncated long macros.
1183
1184 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
1185
1186         * collect2.c (TARGET_64BIT): Redefine to target's default.
1187         * tlink.c: Likewise.
1188         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
1189         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
1190         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
1191         for underscoring __USER_LABEL_PREFIX__.
1192         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
1193         (SUB_LINK_ENTRY32): New.
1194         (SUB_LINK_ENTRY64): New.
1195         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
1196         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
1197         (SUB_LINK_ENTRY64): New.
1198         (SUB_LINK_ENTRY): New.
1199         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
1200         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
1201         x64 target is choosen.
1202         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
1203         * configure: Regenerated.
1204         * configure.ac (leading-mingw64-underscores): Option added.
1205
1206 2010-04-27  Jan Hubicka  <jh@suse.cz>
1207
1208         * doc/invoke.texi (-fipa-profile): Document.
1209         * opts.c (decode_options): Enable ipa-profile at -O1.
1210         * timevar.def (TV_IPA_PROFILE): Define.
1211         * common.opt (fipa-profile): Add.
1212         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
1213         flag for clones.
1214         (cgraph_propagate_frequency): Handle only local ones.
1215         * tree-pass.h (pass_ipa_profile): Declare.
1216         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
1217         (pass_ipa_profile): Use TV_IPA_PROFILE.
1218         * ipa.c (ipa_profile): New function.
1219         (gate_ipa_profile): Likewise.
1220         (pass_ipa_profile): New global variable.
1221         * passes.c (pass_ipa_profile): New.
1222
1223 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
1224
1225         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
1226
1227 2010-04-27  Martin Jambor  <mjambor@suse.cz>
1228
1229         PR middle-end/43812
1230         * ipa.c (dissolve_same_comdat_group_list): New function.
1231         (function_and_variable_visibility): Call
1232         dissolve_same_comdat_group_list when comdat group contains external or
1233         newly local nodes.
1234         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
1235         lists are circular and that they contain only DECL_ONE_ONLY nodes.
1236
1237 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
1238
1239         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
1240         (const_hash_1) <VECTOR_CST>: New case.
1241         (compare_constant) <VECTOR_CST>: Likewise.
1242         <ADDR_EXPR>: Deal with LABEL_REFs.
1243         (copy_constant) <VECTOR_CST>: New case.
1244
1245 2010-04-27  Jan Hubicka  <jh@suse.cz>
1246
1247         * cgraph.c (cgraph_propagate_frequency): New function.
1248         * cgraph.h (cgraph_propagate_frequency): Declare.
1249         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
1250         cgraph_propagate_frequency.
1251
1252 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
1253
1254         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
1255
1256 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
1257
1258         PR target/40657
1259         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
1260         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
1261         here to determine which regs to push and how much stack to reserve.
1262
1263 2010-04-27  Jie Zhang  <jie@codesourcery.com>
1264
1265         * doc/gimple.texi (gimple_statement_with_ops): Remove
1266         addresses_taken field.
1267         (gimple_statement_with_memory_ops): Likewise.
1268
1269 2010-04-27  Jan Hubicka  <jh@suse.cz>
1270
1271         * tree-inline.c (eni_inlining_weights): Remove.
1272         (estimate_num_insns): Special case more builtins.
1273
1274 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
1275
1276         PR c/32207
1277         * c-typeck.c (build_binary_op): Move forward check for comparison
1278         pointer with null pointer constant and adjust the diagnostic message.
1279
1280 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
1281
1282         PR lto/42776
1283         * configure.ac (gcc_cv_as_section_has_align): Set if installed
1284         binutils supports extended .section directive needed by LTO, or
1285         warn if older binutils found.
1286         (LTO_BINARY_READER): New AC_SUBST'd variable.
1287         (LTO_USE_LIBELF): Likewise.
1288         * gcc/config.gcc (lto_binary_reader): New target-specific configure
1289         variable.
1290         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
1291         (LTO_USE_LIBELF): Likewise.
1292         * configure: Regenerate.
1293
1294         * collect2.c (is_elf): Rename from this ...
1295         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
1296          object files in addition to ELF-formatted ones.
1297         (scan_prog_file): Caller updated.  Also allow for LTO info marker
1298         symbol to be prefixed or not by an extra underscore.
1299
1300         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
1301         * config/i386/winnt.c: Also #include lto-streamer.h
1302         (i386_pe_asm_named_section): Specify 1-byte section alignment for
1303         LTO named sections.
1304         (i386_pe_asm_output_aligned_decl_common): Add comment.
1305         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
1306
1307 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
1308
1309         PR target/43889
1310         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
1311         Add missing earlyclobber for second alternative.
1312
1313 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
1314
1315         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
1316         bits for artificial defs at the top of the block.
1317         * fwprop.c (single_def_use_enter_block): Don't call it.
1318
1319 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
1320
1321         PR 43715
1322         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
1323         instead of "$gcc_cv_objdump -T".
1324         Use "-undefined dynamic_lookup" on darwin.
1325         * gcc/configure: Regenerate.
1326
1327 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1328
1329         PR c/43893
1330         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
1331
1332 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1333
1334         * c-parser.c (struct c_token): Move location field up.
1335         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
1336         (struct c_declspecs): Convert typespec_word, storage_class, and
1337         default_int_p into bitfields.
1338         (struct c_declarator): Move loc field up.
1339
1340 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
1341
1342         * cfgloop.h (struct loop): Move can_be_parallel field up.
1343         * ipa-prop.h (struct ip_node_params): Move bitfields up.
1344         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
1345         down.
1346         (struct iv_cand): Convert pos field into a bitfield.
1347         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
1348         field up.
1349         (struct _stmt_vec_info): Shuffle fields for better packing.
1350
1351 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1352
1353         * varasm.c (IN_NAMED_SECTION): Remove guard.
1354         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
1355         (IN_NAMED_SECTION_P): ...this.
1356         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
1357         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
1358
1359 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
1360
1361         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
1362         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
1363         of shadowing it.  Fix comments.
1364
1365 2010-04-26  Jan Hubicka  <jh@suse.cz>
1366
1367         * cgraph.c (cgraph_create_node): Set node frequency to normal.
1368         (cgraph_clone_node): Copy function frequency.
1369         * cgraph.h (node_frequency): New enum
1370         (struct cgraph_node): Add.
1371         * final.c (rest_of_clean_state): Update.
1372         * lto-cgraph.c (lto_output_node): Output node frequency.
1373         (input_overwrite_node): Input node frequency.
1374         * tre-ssa-loop-ivopts (computation_cost): Update.
1375         * lto-streamer-out.c (output_function): Do not output function
1376         frequency.
1377         * predict.c (maybe_hot_frequency_p): Update and handle functions
1378         executed once.
1379         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
1380         attribute lookup.
1381         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
1382         (compute_function_frequency): Set noreturn functions to be executed
1383         once.
1384         (choose_function_section): Update.
1385         * lto-streamer-in.c (input_function): Do not input function frequency.
1386         * function.c (allocate_struct_function): Do not initialize function
1387         frequency.
1388         * function.h (function_frequency): Remove.
1389         (struct function): Remove function frequency.
1390         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
1391         (try_update): Update.
1392         * tree-inline.c (initialize_cfun): Do not update function frequency.
1393         * passes.c (pass_init_dump_file): Update.
1394         * i386.c (ix86_compute_frame_layout): Update.
1395         (ix86_pad_returns): Update.
1396
1397 2010-04-26  Jie Zhang  <jie@codesourcery.com>
1398
1399         PR tree-optimization/43833
1400         * tree-vrp.c (range_int_cst_p): New.
1401         (range_int_cst_singleton_p): New.
1402         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
1403         when both operands are constants.  Use range_int_cst_p in
1404         BIT_IOR_EXPR case.
1405
1406 2010-04-26  Jan Hubicka  <jh@suse.cz>
1407
1408         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
1409
1410 2010-04-26  Richard Guenther  <rguenther@suse.de>
1411
1412         PR lto/43080
1413         * gimple.c (gimple_decl_printable_name): Deal gracefully
1414         with a NULL DECL_NAME.
1415
1416 2010-04-26  Richard Guenther  <rguenther@suse.de>
1417
1418         PR lto/42425
1419         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
1420         if emitting debug information and it is either a function
1421         or a namespace decl.
1422
1423 2010-04-26  Ira Rosen  <irar@il.ibm.com>
1424
1425         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
1426         determine if the statement is vectorizable, and a macro to access it.
1427         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1428         Skip statements that can't be vectorized. If the analysis fails,
1429         mark the statement as unvectorizable if vectorizing basic block.
1430         (vect_compute_data_refs_alignment): Likewise.
1431         (vect_verify_datarefs_alignment): Skip statements marked as
1432         unvectorizable. Add print.
1433         (vect_analyze_group_access): Skip statements that can't be
1434         vectorized. If the analysis fails, mark the statement as
1435         unvectorizable if vectorizing basic block.
1436         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
1437         * tree-vect-stmts.c (vectorizable_store): Fix the number of
1438         generated stmts for SLP.
1439         (new_stmt_vec_info): Initialize the new field.
1440         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
1441         statements marked as unvectorizable.
1442
1443 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
1444
1445         * c-common.c (flag_isoc1x): New.
1446         (flag_isoc99): Update comment.
1447         * c-common.h (flag_isoc1x): New.
1448         (flag_isoc99): Update comment.
1449         * c-cppbuiltin.c (builtin_define_float_constants): Also define
1450         __<type>_DECIMAL_DIG__.
1451         * c-opts.c (set_std_c1x): New.
1452         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
1453         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
1454         * c.opt (-std=c1x, -std=gnu1x): New options.
1455         * doc/cpp.texi: Mention -std=c1x.
1456         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
1457         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
1458         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
1459         * doc/standards.texi: Mention C1X.
1460         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
1461         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
1462         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
1463         Define for C1X.
1464
1465 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
1466
1467         * config/i386/gmon-sol2.c (_mcleanup): Change format string
1468         placeholder from 0x%x to %#x.
1469         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
1470         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
1471         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
1472         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
1473         * config/i386/i386.c (ix86_target_string): Ditto.
1474         (output_pic_addr_const): Ditto.
1475         (print_operand): Ditto.
1476
1477 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
1478
1479         * combine.c (find_split_point): Add third argument.  Use it
1480         to find nested multiply-accumulate instructions.  Adjust calls.
1481         (try_combine): Adjust call to find_split_point.
1482
1483 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
1484
1485         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
1486
1487 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
1488
1489         PR tree-optimization/41442
1490         * fold-const.c (merge_truthop_with_opposite_arm): New function.
1491         (fold_binary_loc): Call it.
1492
1493 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1494
1495         * toplev.c (general_init): Set default for fdiagnostics-show-option.
1496         * opts.c (common_handle_option): Allow disabling it.
1497         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
1498
1499 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
1500
1501         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
1502         between modes if both types are integral.
1503
1504 2010-04-23  Richard Guenther  <rguenther@suse.de>
1505
1506         PR tree-optimization/43572
1507         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
1508
1509 2010-04-23  Richard Guenther  <rguenther@suse.de>
1510
1511         PR lto/43455
1512         * tree-inline.c (tree_can_inline_p): Also check compatibility
1513         of return types.
1514
1515 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1516
1517         PR tree-optimization/43846
1518         * tree-sra.c (struct access): New flag grp_assignment_read.
1519         (build_accesses_from_assign): Set grp_assignment_read.
1520         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
1521         (enum mark_read_status): New type.
1522         (analyze_access_subtree): Propagate grp_assignment_read, create
1523         accesses also if both direct_read and root->grp_assignment_read.
1524
1525 2010-04-23  Martin Jambor  <mjambor@suse.cz>
1526
1527         PR middle-end/43835
1528         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
1529         function does not have type attributes.
1530
1531 2010-04-23  Richard Guenther  <rguenther@suse.de>
1532
1533         PR lto/42653
1534         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
1535         of FUNCTION_DECLs.
1536
1537 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1538
1539         * sese.h (create_if_region_on_edge): Remove.
1540
1541         * sese.c (create_if_region_on_edge): Make static.
1542
1543         * tree-inline.c: Do not include ggc.h.
1544
1545         * expr.c: Do not include ggc.h.
1546
1547         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
1548         dependencies.
1549
1550 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1551
1552         PR target/43744
1553         * config/sh/sh.c (find_barrier): Don't emit a constant pool
1554         in the middle of insns for casesi_worker_2.
1555
1556 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
1557
1558         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
1559
1560 2010-04-22  Ira Rosen  <irar@il.ibm.com>
1561
1562         PR tree-optimization/43842
1563         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
1564         loop unrolling in update of exit phis. Fix comment.
1565         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
1566         least two reduction statements in the loop before starting SLP
1567         analysis.
1568
1569 2010-04-22  Nick Clifton  <nickc@redhat.com>
1570
1571         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
1572
1573 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
1574
1575         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
1576         to simplify a + ~a.
1577
1578 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1579
1580         * tree-parloops.c (loop_parallel_p): New argument
1581         parloop_obstack.  Pass it down.
1582         (parallelize_loops): New variable parloop_obstack.  Initialize it,
1583         pass it down, free it.
1584
1585         * tree-loop-linear.c (linear_transform_loops): Pass down
1586         lambda_obstack.
1587
1588         * tree-data-ref.h (lambda_compute_access_matrices): New argument
1589         of type struct obstack *.
1590
1591         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
1592         scratch_obstack.  Initialize it, pass down, free it.
1593
1594         * lambda.h (lambda_loop_new): Remove.
1595         (lambda_matrix_new, lambda_matrix_inverse)
1596         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
1597         argument of type struct obstack *.
1598
1599         * lambda-trans.c (lambda_trans_matrix_new): New argument
1600         lambda_obstack.  Pass it down, use obstack allocation for ret.
1601         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
1602         it down.
1603
1604         * lambda-mat.c (lambda_matrix_get_column)
1605         (lambda_matrix_project_to_null): Remove.
1606         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
1607         allocation for mat.
1608         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
1609         lambda_obstack.
1610
1611         * lambda-code.c (lambda_loop_new): New function.
1612         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
1613         (lambda_compute_auxillary_space, lambda_compute_target_space)
1614         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
1615         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
1616         (build_access_matrix): New argument lambda_obstack.  Use obstack
1617         allocation for am.
1618         (lambda_compute_step_signs, lambda_compute_access_matrices): New
1619         argument lambda_obstack.  Pass it down.
1620
1621 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1622
1623         * optabs.h (expand_widening_mult): Declare.
1624
1625 2010-04-22  Richard Guenther  <rguenther@suse.de>
1626
1627         PR tree-optimization/43845
1628         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
1629         lookup the CALL_EXPR function and arguments.
1630
1631 2010-04-22  Nick Clifton  <nickc@redhat.com>
1632
1633         * config/stormy16/stormy16.c
1634         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
1635         * config/stormy16/stormy16.h: Tidy up formatting.
1636         (DONT_USE_BUILTIN_SETJMP): Remove definition.
1637         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
1638         (ineqbranchsi): Delete pattern.
1639         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
1640         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
1641         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
1642         stormy16-lib2-ucmpsi2.c.
1643
1644 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1645
1646         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
1647         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
1648         extra set merge_set_noclobber, and use it to relax the final test
1649         slightly.
1650         * df.h (df_simulate_find_noclobber_defs): Declare.
1651         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
1652         conditional defs.
1653         (df_simulate_find_noclobber_defs): New function.
1654
1655 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
1656
1657         * config/i386/i386.md: Use {} around multi-line preparation statements.
1658
1659 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1660
1661         * c-tree.h (push_init_level, pop_init_level, set_init_index)
1662         (process_init_element): New argument of type struct obstack *.
1663
1664         * c-typeck.c (push_init_level, pop_init_level, set_designator)
1665         (set_init_index, set_init_label, set_nonincremental_init)
1666         (set_nonincremental_init_from_string, find_init_member)
1667         (output_init_element, output_pending_init_elements)
1668         (process_init_element): New argument braced_init_obstack.  Pass it
1669         down.
1670         (push_range_stack, add_pending_init): New argument
1671         braced_init_obstack.  Use obstack allocation.
1672
1673         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
1674         braced_init_obstack.  Pass it down.
1675         (c_parser_braced_init): New variables ret, braced_init_obstack.
1676         Initialize obstack, pass it down and finally free it.
1677
1678 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
1679
1680         PR middle-end/29274
1681         * tree-pass.h (pass_optimize_widening_mul): Declare.
1682         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
1683         gate_optimize_widening_mul): New static functions.
1684         (pass_optimize_widening_mul): New.
1685         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
1686         <case MULT_EXPR>: Remove support for widening multiplies.
1687         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
1688         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
1689         simplify_gen_unary rather than directly building extensions.
1690         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
1691         WIDEN_MULT_EXPR.
1692         * expmed.c (expand_widening_mult): New function.
1693         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
1694
1695 2010-04-21  Jan Hubicka  <jh@suse.cz>
1696
1697         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
1698         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
1699         * lto-wpa-fixup.c: Remove.
1700         * Makefile.in (lto-wpa-fixup.o): Remove.
1701         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
1702         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
1703         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
1704
1705 2010-04-21  Jan Hubicka  <jh@suse.cz>
1706
1707         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
1708         add write_optimization_summary, read_optimization_summary.
1709         (ipa_write_summaries_of_cgraph_node_set): Remove.
1710         (ipa_write_optimization_summaries): Declare.
1711         (ipa_read_optimization_summaries): Declare.
1712         * ipa-cp.c (pass_ipa_cp): Update.
1713         * ipa-reference.c (pass_ipa_reference): Update.
1714         * ipa-pure-const.c (pass_ipa_pure_const): Update.
1715         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
1716         Update.
1717         * ipa-inline.c (pass_ipa_inline): Update.
1718         * ipa.c (pass_ipa_whole_program): Update.
1719         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
1720         * passes.c (ipa_write_summaries_1): Do not test wpa.
1721         (ipa_write_optimization_summaries_1): New.
1722         (ipa_write_optimization_summaries): New.
1723         (ipa_read_summaries): Do not test ltrans.
1724         (ipa_read_optimization_summaries_1): New.
1725         (ipa_read_optimization_summaries): New.
1726
1727 2010-04-21  Jan Hubicka  <jh@suse.cz>
1728
1729         * lto-cgraph.c (lto_output_node): Do not output comdat groups
1730         for boundary nodes.
1731         (output_cgraph): Do not arrange comdat groups for boundary nodes.
1732
1733 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1734
1735         PR debug/40040
1736         * dwarf2out.c (add_name_and_src_coords_attributes): Add
1737         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
1738
1739 2010-04-21  Jan Hubicka  <jh@suse.cz>
1740
1741         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
1742
1743 2010-04-21  Jan Hubicka  <jh@suse.cz>
1744
1745         * varpool.c (decide_is_variable_needed): Variable is always needed
1746         during ltrans.
1747
1748 2010-04-21  Jan Hubicka  <jh@suse.cz>
1749
1750         * opts.c (decode_options): Enable pure-const pass for whopr.
1751
1752 2010-04-21  Jan Hubicka  <jh@suse.cz>
1753
1754         * cgraph.c (dump_cgraph_node): Dump also assembler name.
1755         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
1756         at WPA dumping.
1757         (cgraph_decide_inlining): Do not expect callee to be removed in all
1758         cases.
1759
1760 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
1761
1762         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
1763
1764 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1765
1766         * config/i386/i386.md (x86_shrd): Add athlon_decode and
1767         amdfam10_decode attributes.
1768
1769 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1770
1771         PR middle-end/43570
1772         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
1773         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
1774         (lower_copyprivate_clauses): Use private var in outer
1775         context instead of original var.  Make sure the types
1776         are correct for VLAs.
1777
1778 2010-04-21  Richard Guenther  <rguenther@suse.de>
1779
1780         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
1781         to non-pointer objects.
1782
1783 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1784
1785         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
1786         last chain entry if it starts with the still current label.
1787         (add_location_or_const_value_attribute): Check that
1788         loc_list->first->next is NULL instead of comparing ->first with ->last.
1789         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
1790         to add_var_loc_to_decl.
1791
1792         * dwarf2out.c (output_call_frame_info): For dw_cie_version
1793         >= 4 add also address size and segment size fields into CIE header.
1794
1795         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
1796         long as address size is the same as sizeof (void *) and
1797         segment size is 0.
1798         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
1799         address size or segment size is unexpected, return DW_EH_PE_omit.
1800         (classify_object_over_fdes): If get_cie_encoding returned
1801         DW_EH_PE_omit, return -1.
1802         (init_object): If classify_object_over_fdes returned -1,
1803         pretend there were no FDEs at all.
1804
1805 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
1806
1807         * config/i386/i386.md (bswap<mode>2): Macroize expander from
1808         bswap{si,di}2 using SWI48 mode iterator.
1809         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
1810         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
1811         set modrm attribute of bswap insn to 0 and remove length attribute.
1812         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
1813         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
1814         set mode attribute to <MODE> and remove length attribute.
1815
1816 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
1817
1818         PR rtl-optimization/43520
1819         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
1820         zero available registers.
1821
1822 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1823
1824         * builtins.c (fold_builtin_cproj): Fold more cases.
1825
1826 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1827
1828         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
1829         (fold_builtin_1): Fold builtin cproj.
1830         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
1831         Use ATTR_CONST_NOTHROW_LIST.
1832
1833 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
1834
1835         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
1836         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
1837         ffsi2_no_cmove for !TARGET_CMOVE.
1838         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
1839         (ffssi2): Remove expander.
1840         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
1841         mode iterator.
1842         (ctz<mode>2): Ditto from ctz{si,di}2.
1843         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
1844         mode iterator.
1845         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
1846         mode iterator.
1847
1848 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1849
1850         * dwarf2out.c (AT_linkage_name): Define.
1851         (clone_as_declaration): Handle DW_AT_linkage_name.
1852         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
1853         of DW_AT_MIPS_linkage_name.
1854         (move_linkage_attr): Likewise.
1855         (dwarf2out_finish): Likewise.
1856
1857 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
1858
1859         PR middle-end/41952
1860         * fold-const.c (fold_comparison): New folding rule.
1861
1862 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
1863
1864         * double-int.h (double_int_setbit): Declare.
1865         * double-int.c (double_int_setbit): New function.
1866         * rtl.h (immed_double_int_const): Declare.
1867         * emit-rtl.c (immed_double_int_const): New function.
1868         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
1869         and immed_double_int_const functions.
1870         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
1871         expand_copysign_bit):  (Ditto.).
1872         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
1873         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
1874         * dojump.c (prefer_and_bit_test): (Ditto.).
1875         * expr.c (convert_modes, reduce_to_bit_field_precision,
1876         const_vector_from_tree): (Ditto.).
1877         * expmed.c (mask_rtx, lshift_value): (Ditto.).
1878
1879 2010-04-20  Jan Hubicka  <jh@suse.cz>
1880
1881         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
1882         (dump_cgraph_node): Dump new flags.
1883         * cgraph.h (struct cgraph_node): Add flags
1884         reachable_from_other_partition and in_other_partition.
1885         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
1886         other partition can not be removed.
1887         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
1888         the other partition must be output; silence sanity checking on
1889         leaking functions bodies from other paritition.
1890         * lto-cgraph.c (reachable_from_other_partition_p): New function.
1891         (lto_output_node): Output new flags; do not sanity check that inline
1892         clones are output; drop lto_forced_extern_inline_p code; do not mock
1893         visibility flags at partition boundaries.
1894         (add_node_to): New function.
1895         (output_cgraph): Use it to sort functions so masters appear before
1896         clones.
1897         (input_overwrite_node): Input new flags.
1898         * passes.c (ipa_write_summaries): Do not call
1899         lto_new_extern_inline_states.
1900         * lto-section-out.c (forced_extern_inline,
1901         lto_new_extern_inline_states lto_delete_extern_inline_states,
1902         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
1903         * lto-streamer.h (lto_new_extern_inline_states,
1904         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
1905         lto_forced_extern_inline_p): Kill.
1906
1907 2010-04-20  Richard Guenther  <rguenther@suse.de>
1908
1909         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
1910         from vars that can have pointers.
1911         (process_constraint): Dump useless constraints.
1912
1913 2010-04-20  Richard Guenther  <rguenther@suse.de>
1914
1915         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
1916         (dump_sa_points_to_info): Remove asserts.
1917         (init_base_vars): nothing_id isn't an escape point nor does it
1918         have pointers.
1919
1920 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1921
1922         * tree.h (TYPE_REF_IS_RVALUE): Define.
1923         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
1924         should_move_die_to_comdat, prune_unused_types_walk): Handle
1925         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
1926         (modified_type_die, gen_reference_type_die): Emit
1927         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
1928         if TYPE_REF_IS_RVALUE and -gdwarf-4.
1929
1930 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1931
1932         PR target/43635
1933         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
1934         calls for -fpic -m31 if they have been sibcall optimized.
1935
1936 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
1937
1938         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
1939         ar.lc fixed and call-used.
1940
1941         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
1942
1943 2010-04-19  Jan Hubicka  <jh@suse.cz>
1944
1945         * opts.c (decode_options): Disable whpr incompatible passes.
1946         * lto/lto.c (lto_1_to_1_map): Skip clones.
1947         (read_cgraph_and_symbols): Do not mark everything as needed.
1948         (do_whole_program_analysis): Do map only after optimizing;
1949         set proper cgraph_state; use passmanager.
1950
1951 2010-04-19  DJ Delorie  <dj@redhat.com>
1952
1953         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
1954         POINTER_PLUS_EXPR and fix them.
1955
1956 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
1957
1958         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
1959         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
1960         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
1961         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
1962         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
1963         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
1964         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
1965         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
1966         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
1967         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
1968         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
1969
1970 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
1971
1972         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
1973         (check_cond_move_block): Likewise.
1974         (cond_move_process_if_block): Likewise.
1975         (noce_find_if_block): Improve formatting.
1976         (find_if_header): Pass 0 to memset and tweak conditions.
1977         (cond_exec_find_if_block): Fix long lines and tweak conditions.
1978
1979 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
1980
1981         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
1982         for -gdwarf-4.
1983
1984         PR middle-end/43337
1985         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
1986         with non-local decl doesn't need chain.
1987
1988 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
1989
1990         * ira-color.c (allocno_reload_assign): Avoid accumulating
1991         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
1992
1993 2010-04-19  Martin Jambor  <mjambor@suse.cz>
1994
1995         * gimple.h (create_tmp_reg): Declare.
1996         * gimplify.c (create_tmp_reg): New function.
1997         (gimplify_return_expr): Use create_tmp_reg.
1998         (gimplify_omp_atomic): Likewise.
1999         (gimple_regimplify_operands): Likewise.
2000         * tree-dfa.c (make_rename_temp): Likewise.
2001         * tree-predcom.c (predcom_tmp_var): Likewise.
2002         (reassociate_to_the_same_stmt): Likewise.
2003         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
2004         (get_replaced_param_substitute): Likewise.
2005         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2006         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2007         * tree-ssa-pre.c (get_representative_for): Likewise.
2008         (create_expression_by_pieces): Likewise.
2009         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
2010         (create_tailcall_accumulator): Likewise.
2011
2012 2010-04-19  Martin Jambor  <mjambor@suse.cz>
2013
2014         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
2015         new_stmt.
2016         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
2017
2018 2010-04-19  Richard Guenther  <rguenther@suse.de>
2019
2020         PR tree-optimization/43796
2021         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
2022         from SCEV in the lattice.
2023         (vrp_visit_phi_node): Dump change.
2024
2025 2010-04-19  Richard Guenther  <rguenther@suse.de>
2026
2027         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
2028         * configure: Re-generated.
2029
2030 2010-04-19  Richard Guenther  <rguenther@suse.de>
2031
2032         PR tree-optimization/43783
2033         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
2034         constant ARRAY_REF operands two and three if possible.
2035
2036 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
2037
2038         PR target/43766
2039         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
2040
2041 2010-04-19  Jie Zhang  <jie@codesourcery.com>
2042
2043         PR target/43662
2044         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
2045
2046 2010-04-19  Ira Rosen  <irar@il.ibm.com>
2047
2048         PR tree-optimization/37027
2049         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
2050         and macro to access it.
2051         (vectorizable_reduction): Add argument.
2052         (vect_get_slp_defs): Likewise.
2053         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
2054         statements for possible use in SLP.
2055         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
2056         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
2057         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
2058         add new argument.
2059         (vectorizable_reduction): Likewise.
2060         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
2061         vect_get_slp_defs.
2062         (vectorizable_type_demotion, vectorizable_type_promotion,
2063         vectorizable_store): Likewise.
2064         (vect_analyze_stmt): Update call to vectorizable_reduction.
2065         (vect_transform_stmt): Likewise.
2066         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
2067         (vect_build_slp_tree): Fix indentation. Check that there are no loads
2068         from different interleaving chains in same node.
2069         (vect_slp_rearrange_stmts): New function.
2070         (vect_supported_load_permutation_p): Allow load permutations for
2071         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
2072         inside SLP nodes if necessary.
2073         (vect_analyze_slp_instance): Handle reductions.
2074         (vect_analyze_slp): Try to build SLP instances originating from groups
2075         of reductions.
2076         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
2077         (vect_get_constant_vectors): Create initial vectors for reductions
2078         according to reduction code. Add new argument.
2079         (vect_get_slp_defs): Add new argument, pass it to
2080         vect_get_constant_vectors.
2081         (vect_schedule_slp_instance): Remove SLP tree root statements.
2082
2083 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
2084
2085         * tree.h (ENUM_IS_SCOPED): Define.
2086         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
2087         for ENUM_IS_SCOPED enums.
2088
2089 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
2090
2091         * fold-const.c (fold_comparison): Use ssizetype.
2092         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2093         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
2094         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
2095         * tree-object-size.c (compute_object_sizes): Use size_type_node.
2096
2097         * tree.h (initialize_sizetypes): Remove parameter.
2098         (build_common_tree_nodes): Remove second parameter.
2099         * stor-layout.c (initialize_sizetypes): Remove parameter.
2100         Always create an unsigned type.
2101         (set_sizetype): Assert that the passed type is unsigned and simplify.
2102         * tree.c (build_common_tree_nodes): Remove second parameter.
2103         Adjust call to initialize_sizetypes.
2104         * c-decl.c (c_init_decl_processing): Remove second argument in call to
2105         build_common_tree_nodes.
2106
2107 2010-04-18  Matthias Klose  <doko@ubuntu.com>
2108
2109         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
2110
2111 2010-04-18  Ira Rosen  <irar@il.ibm.com>
2112
2113         PR tree-optimization/43771
2114         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
2115         load permutation doesn't have gaps.
2116
2117 2010-04-18  Jan Hubicka  <jh@suse.cz>
2118
2119         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
2120         (sse_prologue_save_insn expander): Use new pattern.
2121         (sse_prologue_save_insn1): New pattern and splitter.
2122         (sse_prologue_save_insn): Update to deal also with 64bit aligned
2123         blocks.
2124         * i386.c (setup_incoming_varargs_64): Do not compute jump
2125         destination here.
2126         (ix86_gimplify_va_arg): Update alignment needed.
2127         (ix86_local_alignment): Do not align all local arrays to 128bit.
2128
2129 2010-04-17  Jan Hubicka  <jh@suse.cz>
2130
2131         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
2132
2133 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2134
2135         * arm.md (negdi2): Remove redundant code to force values into a
2136         register.
2137
2138 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2139
2140         * arm/bpabi.S: Add EABI alignment attributes to objects.
2141         * arm/bpabi-v6m.S: Likewise.
2142         * arm/crti.asm: Likewise.
2143         * arm/crtn.asm: Likewise.
2144         * arm/lib1funcs.asm: Likewise.
2145         * arm/libunwind.S: Likewise.
2146
2147 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
2148
2149         * arm-protos.h (tune_params): New structure.
2150         * arm.c (current_tune): New variable.
2151         (arm_constant_limit): Delete.
2152         (struct processors): Add pointer to the tune parameters.
2153         (arm_slowmul_tune): New tuning option.
2154         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
2155         (all_cores): Adjust to pick up the tuning model.
2156         (arm_constant_limit): New function.
2157         (arm_override_options): Select the appropriate tuning model.  Delete
2158         initialization of arm_const_limit.
2159         (arm_split_constant): Use the new constant-limit model.
2160         (arm_rtx_costs): Pick up the current tuning model.
2161         * arm.md (is_strongarm, is_xscale): Delete.
2162         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
2163         for Xscale variant architectures.
2164         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
2165
2166 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2167
2168         * config/arm/arm.c (arm_gen_constant): Remove unused variable
2169         can_shift.
2170         (arm_rtx_costs_1): Remove unused variable extra_cost.
2171         (arm_unwind_emit_set): Use variable offset.
2172         (thumb1_output_casesi): Remove unused variable flags.
2173
2174 2010-04-16  Jeff Law  <law@redhat.com>
2175
2176         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
2177         needing assignment rather than doing a two-phase assignment.  Remove
2178         unused variable 'm'.
2179
2180 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2181
2182         PR bootstrap/43767
2183         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
2184
2185 2010-04-16  Doug Kwan  <dougkwan@google.com>
2186
2187         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
2188         (next_operand_entry_id): New static variable.
2189         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
2190         (add_to_ops_vec): Assigned unique ID to operand entry.
2191         (struct oecount_s): New field ID.
2192         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
2193         (undistribute_ops_list): Assign unique IDs to oecounts.
2194         (init_reassoc): reset next_operand_entry_id.
2195
2196 2010-04-16  Doug Kwan  <dougkwan@google.com>
2197
2198         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
2199         missing left parenthesis.
2200
2201 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
2202
2203         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
2204         *btdi_rex64 using SWI48 mode iterator.
2205         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
2206         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
2207         *jcc_btdi_mask_rex64.
2208
2209 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
2210
2211         * double-int.h (tree_to_double_int): Convert to macro.
2212         * double-int.c (tree_to_double_int): Remove.
2213
2214 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2215
2216         PR debug/43762
2217         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
2218         with want_address 2 and in case a single element list might be
2219         possible, call it again with want_address 0.
2220
2221 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2222
2223         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
2224         case 'W' print operands for HI mode.
2225         * config/h8300/h8300.h (Y0, Y2) : New constraints.
2226         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
2227         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
2228         * config/h8300/predicate.md (bit_register_indirect_operand): New.
2229
2230         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
2231
2232         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
2233         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
2234         #xx:3 and #xx:4 mode.
2235
2236         * config/h8300/h8300.md (inverted load with HImode dest): Add
2237         support for H8300SX.
2238
2239         * config/h8300/predicate.md (bit_operand): Allow immediate values that
2240         satisfy 'U' constraint.
2241
2242 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2243
2244         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
2245         * configure: Regenerate.
2246         * config.in: Regenerate.
2247         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
2248         works.
2249
2250 2010-04-16  Richard Guenther  <rguenther@suse.de>
2251
2252         * tree.h (struct tree_decl_minimal): Move pt_uid ...
2253         (struct tree_decl_common): ... here.
2254         (DECL_PT_UID): Adjust.
2255         (SET_DECL_PT_UID): Likewise.
2256         (DECL_PT_UID_SET_P): Likewise.
2257
2258 2010-04-16  Richard Guenther  <rguenther@suse.de>
2259
2260         PR tree-optimization/43572
2261         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
2262         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
2263         * tree-flow.h (is_call_clobbered): Remove.
2264         * tree-flow-inline.h (is_call_clobbered): Likewise.
2265         * tree-dfa.c (dump_variable): Do not dump call clobber state.
2266         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
2267         (execute_return_slot_opt): Adjust.
2268         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
2269         check for call clobbered vars here.
2270         (find_tail_calls): Move tailcall verification to the
2271         proper place.
2272
2273 2010-04-16  Diego Novillo  <dnovillo@google.com>
2274
2275         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
2276
2277 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2278
2279         PR target/40603
2280         * config/arm/arm.md (cbranchqi4): New pattern.
2281         * config/arm/predicates.md (const0_operand,
2282         cbranchqi4_comparison_operator): New predicates.
2283
2284 2010-04-16  Richard Guenther  <rguenther@suse.de>
2285
2286         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
2287         (dump_gimple_stmt): Likewise.
2288
2289 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
2290
2291         * recog.h (struct recog_data): New field is_operator.
2292         (struct insn_operand_data): New field is_operator.
2293         * recog.c (extract_insn): Set recog_data.is_operator.
2294         * genoutput.c (output_operand_data): Emit code to set the
2295         is_operator field.
2296         * reload.c (find_reloads): Use it rather than testing for an
2297         empty constraint string.
2298
2299         PR target/41514
2300         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
2301         If the previous insn is a cbranchsi4_insn with the same arguments,
2302         omit the compare instruction.
2303
2304         * config/arm/arm.md (addsi3_cbranch): If destination is a high
2305         register, inputs must be low registers and we need a low register
2306         scratch.  Handle alternative 2 like alternative 3.
2307
2308 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
2309
2310         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
2311         don't call get_addr on both.  If one expression is a VALUE and
2312         the other a REG, check VALUE's locs if the REG isn't among them.
2313
2314 2010-04-16  Christian Bruel  <christian.bruel@st.com>
2315
2316         * config/sh/sh.h (sh_frame_pointer_required): New function.
2317         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
2318         (flag_omit_frame_pointer) Set.
2319         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
2320         (rounded_frame_size): Adjust size with outgoing_args_size.
2321         (sh_set_return_address): Must return from stack pointer.
2322         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
2323         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
2324         (ACCUMULATE_OUTGOING_ARGS): Define.
2325         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
2326         * gcc/config/sh/sh.opt: (maccumulate-outgoing-args): New option.
2327
2328 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2329
2330         PR target/43471
2331         * config/sh/sh.c (sh_legitimize_reload_address): Use
2332         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
2333         Remove a unneeded check for offset_base.
2334
2335 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
2336
2337         * configure: Regenerated.
2338
2339 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2340
2341         * config/s390/s390.c (s390_call_save_register_used): Switch back
2342         to HARD_REGNO_NREGS.
2343
2344 2010-04-15  Richard Guenther  <rguenther@suse.de>
2345
2346         * alias.c (alias_set_subset_of): Handle alias-set zero
2347         child properly.
2348
2349 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
2350             Julian Brown  <julian@codesourcery.com>
2351
2352         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
2353         alternatives according to use of high and low regs.
2354         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2355         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
2356         optimizing for size on Thumb-2.
2357
2358 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
2359
2360         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
2361
2362 2010-04-15  Richard Guenther  <rguenther@suse.de>
2363
2364         * tree-ssa-structalias.c (struct variable_info): Add
2365         is_fn_info flag.
2366         (new_var_info): Initialize it.
2367         (dump_constraints): Support printing last added constraints.
2368         (debug_constraints): Adjust.
2369         (dump_constraint_graph): Likewise.
2370         (make_heapvar_for): Check for NULL cfun.
2371         (get_function_part_constraint): New function.
2372         (get_fi_for_callee): Likewise.
2373         (find_func_aliases): Properly implement IPA PTA constraints.
2374         (process_ipa_clobber): New function.
2375         (find_func_clobbers): Likewise.
2376         (insert_into_field_list_sorted): Remove.
2377         (create_function_info_for): Properly allocate vars for IPA mode.
2378         Do not use insert_into_field_list_sorted.
2379         (create_variable_info_for): Properly generate constraints for
2380         global vars in IPA mode.
2381         (dump_solution_for_var): Always dump the solution.
2382         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
2383         (find_what_var_points_to): Adjust.
2384         (pt_solution_set): Change.
2385         (pt_solution_ior_into): New function.
2386         (pt_solution_empty_p): Export.
2387         (pt_solution_includes_global): Adjust.
2388         (pt_solution_includes_1): Likewise.
2389         (pt_solutions_intersect_1): Likewise.
2390         (dump_sa_points_to_info): Check some invariants.
2391         (solve_constraints): Move constraint dumping ...
2392         (compute_points_to_sets): ... here.
2393         (ipa_pta_execute): ... and here.
2394         (compute_may_aliases): Do not re-compute points-to info
2395         locally if IPA info is available.
2396         (ipa_escaped_pt): New global var.
2397         (ipa_pta_execute): Properly implement IPA PTA.
2398         * tree-into-ssa.c (dump_decl_set): Support dumping
2399         decls not in referenced-vars.
2400         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
2401         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
2402         (dump_points_to_solution): Likewise.
2403         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
2404         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
2405         (remap_gimple_stmt): Reset call clobber/use information if necessary.
2406         (copy_decl_to_var): Copy DECL_PT_UID.
2407         (copy_result_decl_to_var): Likewise.
2408         * tree.c (make_node_stat): Initialize DECL_PT_UID.
2409         (copy_node_stat): Copy it.
2410         * tree.h (DECL_PT_UID): New macro.
2411         (SET_DECL_PT_UID): Likewise.
2412         (DECL_PT_UID_SET_P): Likewise.
2413         (struct tree_decl_minimal): Add pt_uid member.
2414         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
2415         (pt_solution_empty_p): Declare.
2416         (pt_solution_set): Adjust.
2417         (ipa_escaped_pt): Declare.
2418         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
2419         * gimple-pretty-print.c (pp_points_to_solution): New function.
2420         (dump_gimple_call): Dump call clobber/use information.
2421         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
2422         * tree-pass.h (TDF_ALIAS): New dump option.
2423         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
2424         * doc/invoke.texi (-fipa-pta): Update documentation.
2425
2426 2010-04-15  Richard Guenther  <rguenther@suse.de>
2427
2428         * Makefile.in (OBJS-common): Add gimple-fold.o.
2429         (gimple-fold.o): New rule.
2430         * tree.h (maybe_fold_offset_to_reference,
2431         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
2432         prototypes ...
2433         * gimple.h: ... here.
2434         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
2435         may_propagate_address_into_dereference): Move prototypes ...
2436         * gimple.h: ... here.
2437         * tree-ssa-ccp.c (get_symbol_constant_value,
2438         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
2439         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
2440         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
2441         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
2442         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
2443         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
2444         gimplify_and_update_call_from_tree): Move ...
2445         * gimple-fold.c: ... here.  New file.
2446         (ccp_fold_builtin): Rename to ...
2447         (gimple_fold_builtin): ... this.
2448         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
2449
2450 2010-04-15  Richard Guenther  <rguenther@suse.de>
2451
2452         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
2453         fit_double_type, force_fit_type_double, add_double_with_sign,
2454         neg_double, mul_double_with_sign, lshift_double, rshift_double,
2455         lrotate_double, rrotate_double, div_and_round_double): Move ...
2456         * double-int.c: ... here.
2457         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
2458         add_double, neg_double, mul_double_with_sign, mul_double,
2459         lshift_double, rshift_double, lrotate_double, rrotate_double,
2460         div_and_round_double): Move prototypes ...
2461         * double-int.h: ... here.
2462
2463 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
2464
2465         PR target/43742
2466         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
2467         matching constraints to ensure inputs match the output.
2468
2469 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
2470
2471         PR target/43742
2472         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
2473         in an input-only operand.
2474
2475 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
2476
2477         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
2478         (double_int_not, double_int_lshift, double_int_rshift): Declare.
2479         (double_int_negative_p): Convert to static inline function.
2480         * double-int.c (double_int_lshift, double_int_lshift): New functions.
2481         (double_int_negative_p): Remove.
2482         * tree.h (lshift_double, rshift_double):
2483         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
2484         * fold-const.c (fold_convert_const_int_from_real,
2485         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
2486         (lshift_double): Change type of arith argument to bool.
2487         (rshift_double): Change type of arith argument to bool. Correct
2488         comment.
2489         * expmed.c (mask_rtx, lshift_value): (Ditto.).
2490
2491 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
2492
2493         PR target/21803
2494         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
2495         at the start and end of the then/else blocks, and omit them from the
2496         conversion.
2497         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
2498         argument; all callers changed.  Pass zero to old_insns_match_p instead.
2499         (flow_find_head_matching_sequence): New function.
2500         (old_insns_match_p): Check REG_EH_REGION notes for calls.
2501         * basic-block.h (flow_find_cross_jump,
2502         flow_find_head_matching_sequence): Declare functions.
2503
2504 2010-04-14  Jason Merrill  <jason@redhat.com>
2505
2506         PR c++/36625
2507         * c-common.c (attribute_takes_identifier_p): New fn.
2508         * c-common.h: Declare it.
2509
2510 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2511
2512         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
2513         splitter condition.
2514         (*udivmod<mode>4): Ditto.
2515
2516 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2517
2518         * config/i386/i386.md (maxmin_int): Rename code attribute from
2519         maxminiprefix and update all users.
2520         (maxmin_float): Ditto from maxminfprefix.
2521         (logic): Ditto from logicprefix.
2522         (absneg_mnemonic): Ditto from absnegprefix.
2523         * config/i386/mmx.md: Update all users of maxminiprefix,
2524         maxminfprefix and logicprefix for rename.
2525         * config/i386/sse.md: Ditto.
2526         * config/i386/sync.md (sync_<code><mode>): Update for
2527         logicprefix rename.
2528
2529 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2530
2531         PR 42966
2532         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
2533         warnings converted to errors.
2534
2535 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2536
2537         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
2538         used insn_type variable.
2539         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
2540         to avoid set-but-not-used warning.
2541
2542 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2543
2544         * df-core.c (df_ref_debug): Change format string placeholder
2545         from 0x%x to %#x.
2546         * dwarf2asm.c (dw2_asm_output_data_raw,
2547         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
2548         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
2549         * dwarf2out.c (output_cfi, output_cfi_directive,
2550         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
2551         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
2552         Ditto.
2553         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
2554         * print-rtl.c (print_rtx): Ditto.
2555
2556 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2557
2558         PR middle-end/42694
2559         * builtins.c (expand_builtin_pow_root): New function to expand pow
2560         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
2561         series of sqrt and cbrt calls under -ffast-math.
2562         (expand_builtin_pow): Call it.
2563
2564 2010-04-14  Michael Matz  <matz@suse.de>
2565
2566         PR tree-optimization/42963
2567         * tree-cfg.c (touched_switch_bbs): New static variable.
2568         (group_case_labels_stmt): New function broken out from ...
2569         (group_case_labels): ... here, use the above.
2570         (start_recording_case_labels): Allocate touched_switch_bbs.
2571         (end_recording_case_labels): Deallocate it, call
2572         group_case_labels_stmt.
2573         (gimple_redirect_edge_and_branch): Remember index of affected BB.
2574
2575 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2576
2577         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
2578         from insn template.
2579
2580 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2581
2582         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
2583
2584 2010-04-13  Jan Hubicka  <jh@suse.cz>
2585
2586         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
2587         of optimized out static functions.
2588         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
2589         cost computation.  Also sanity check for overflows.
2590         (update_caller_keys): Update cgraph_edge_badness call; properly
2591         update fibheap and sanity check that it is up to date.
2592         (add_new_edges_to_heap): Update cgraph_edge_badness.
2593         (cgraph_decide_inlining_of_small_function): Likewise;
2594         add sanity checking that badness in heap is up to date;
2595         improve dumping of reason; Update badness of calls to the
2596         offline copy of function currently inlined; dump badness
2597         of functions not inlined because of unit growth limits.
2598
2599 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2600
2601         PR middle-end/32628
2602         * c-common.c (pointer_int_sum): Disregard overflow that occured only
2603         because of sign-extension change when converting to sizetype here...
2604         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
2605
2606         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
2607         the folding to constants.  Remove redundant final conversion.
2608         (fold_binary) <associate>: Do not associate if the re-association of
2609         constants alone overflows.
2610         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
2611         to the end of the list.
2612         (multiple_of_p) <COND_EXPR>: New case.
2613
2614 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2615
2616         * opt-functions.awk (opt_sanitized_name): New.
2617         (opt_enum): New.
2618         * optc-gen.awk: Use it
2619         * opth-gen.awk: Use it.
2620
2621 2010-04-13  Martin Jambor  <mjambor@suse.cz>
2622
2623         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
2624         (sra_modify_assign): Delete stmts loading dead data even if racc has no
2625         children.  Call replace_uses_with_default_def_ssa_name to handle
2626         SSA_NAES on lhs.
2627
2628 2010-04-13  Michael Matz  <matz@suse.de>
2629
2630         PR middle-end/43730
2631         * builtins.c (expand_builtin_interclass_mathfn): Also create
2632         a register if the predicate doesn't match.
2633
2634 2010-04-13  Diego Novillo  <dnovillo@google.com>
2635
2636         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
2637         * c-pch.c: Include timevar.h.
2638         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
2639         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
2640         * ggc-common.c: Include timevar.h.
2641         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
2642         * timevar.def (TV_PCH_SAVE): Define.
2643         (TV_PCH_CPP_SAVE): Define.
2644         (TV_PCH_PTR_REALLOC): Define.
2645         (TV_PCH_PTR_SORT): Define.
2646         (TV_PCH_RESTORE): Define.
2647         (TV_PCH_CPP_RESTORE): Define.
2648
2649 2010-04-13  Michael Matz  <matz@suse.de>
2650
2651         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
2652         into MINUS_EXPRs.
2653         (can_reassociate_p): New function.
2654         (break_up_subtract_bb, reassociate_bb): Use it.
2655
2656 2010-04-13  Richard Guenther  <rguenther@suse.de>
2657
2658         PR bootstrap/43737
2659         * builtins.c (c_readstr): Fix assert.
2660
2661 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
2662
2663         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
2664         when generating cltd insn.
2665
2666         (*ashl<mode>3_1): Remove special handling for register operand 2.
2667         (*ashlsi3_1_zext): Ditto.
2668         (*ashlhi3_1): Ditto.
2669         (*ashlhi3_1_lea): Ditto.
2670         (*ashlqi3_1): Ditto.
2671         (*ashlqi3_1_lea): Ditto.
2672         (*<shiftrt_insn><mode>3_1): Ditto.
2673         (*<shiftrt_insn>si3_1_zext): Ditto.
2674         (*<shiftrt_insn>qi3_1_slp): Ditto.
2675         (*<rotate_insn><mode>3_1): Ditto.
2676         (*<rotate_insn>si3_1_zext): Ditto.
2677         (*<rotate_insn>qi3_1_slp): Ditto.
2678
2679 2010-04-13  Richard Guenther  <rguenther@suse.de>
2680
2681         * tree-ssa-structalias.c (callused_id): Remove.
2682         (call_stmt_vars): New.
2683         (get_call_vi): Likewise.
2684         (lookup_call_use_vi): Likewise.
2685         (lookup_call_clobber_vi): Likewise.
2686         (get_call_use_vi): Likewise.
2687         (get_call_clobber_vi): Likewise.
2688         (make_transitive_closure_constraints): Likewise.
2689         (handle_const_call): Adjust to do per-call call-used handling.
2690         (handle_pure_call): Likewise.
2691         (find_what_var_points_to): Remove general callused handling.
2692         (init_base_vars): Likewise.
2693         (init_alias_vars): Initialize call_stmt_vars.
2694         (compute_points_to_sets): Process call-used and call-clobbered
2695         vars for call statements.
2696         (delete_points_to_sets): Free call_stmt_vars.
2697
2698 2010-04-13  Richard Guenther  <rguenther@suse.de>
2699
2700         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
2701         Only add RW dependence for dependence distance zero.
2702         Adjust maximal vectorization factor according to dependences.
2703         Move alignment handling ...
2704         (vect_find_same_alignment_drs): ... here.  New function.
2705         (vect_analyze_data_ref_dependences): Adjust.
2706         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
2707         (vect_analyze_data_refs): Adjust minimal vectorization factor
2708         according to data references.
2709         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
2710         dependences before determining the vectorization factor.
2711         Analyze alignment after determining the vectorization factor.
2712         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
2713         dependences before alignment.
2714         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
2715         Adjust prototype.
2716         (vect_analyze_data_refs): Likewise.
2717         (MAX_VECTORIZATION_FACTOR): New define.
2718
2719 2010-04-13  Duncan Sands  <baldrick@free.fr>
2720
2721         * except.h (lang_eh_type_covers): Remove.
2722         * except.c (lang_eh_type_covers): Likewise.
2723
2724 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2725             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2726
2727         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
2728         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
2729         UNITS_PER_LONG where it is ABI relevant.
2730         (s390_return_addr_rtx): Likewise.
2731         (s390_back_chain_rtx): Likewise.
2732         (s390_frame_area): Likewise.
2733         (s390_frame_info): Likewise.
2734         (s390_initial_elimination_offset): Likewise.
2735         (save_gprs): Likewise.
2736         (s390_emit_prologue): Likewise.
2737         (s390_emit_epilogue): Likewise.
2738         (s390_function_arg_advance): Likewise.
2739         (s390_function_arg): Likewise.
2740         (s390_va_start): Likewise.
2741         (s390_gimplify_va_arg): Likewise.
2742         (s390_function_profiler): Likewise.
2743         (s390_optimize_prologue): Likewise.
2744         (s390_rtx_costs): Likewise.
2745         (s390_secondary_reload): Likewise.
2746         (s390_promote_function_mode): Likewise.
2747         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
2748         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
2749         registers available.
2750         (s390_unwind_word_mode): New function.
2751         (s390_function_value): Split 64 bit values into register pair if
2752         used as return value.
2753         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
2754         function call parameters.  Handle parallels.
2755         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
2756         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
2757         (DWARF_CIE_DATA_ALIGNMENT): New macro.
2758         (s390_expand_setmem): Remove unused variable src_addr.
2759         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
2760         deal with 64 bit registers.
2761         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
2762         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
2763         (UNITS_PER_LONG): New macro.
2764         * libjava/include/s390-signal.h: Define extended ucontext
2765         structure containing the upper halfs of the 64 bit registers.
2766
2767 2010-04-13  Simon Baldwin  <simonb@google.com>
2768
2769         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
2770
2771 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
2772
2773         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
2774         rvalue on the RHS if the LHS is of a non-renamable type.
2775         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
2776
2777 2010-04-13  Matthias Klose  <doko@ubuntu.com>
2778
2779         * gcc.c (cc1_options): Handle -iplugindir before processing
2780         the cc1 spec. Only add -iplugindir once.
2781         (cpp_unique_options): Add -iplugindir option if -fplugin* options
2782         found.
2783         * common.opt (iplugindir): Remove `Separate' property, initialize.
2784         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
2785         option.
2786         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
2787         (distclean): Remove plugin dir.
2788         * doc/invoke.texi: Document -iplugindir.
2789
2790 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
2791
2792         * doc/plugins.texi (Loading Plugins): Document short
2793         -fplugin=foo option.
2794         (Plugin API): Mention default_plugin_dir_name function.
2795
2796         * gcc.c (find_file_spec_function): Add new declaration.
2797         (static_spec_func): Use it for "find-file".
2798         (find_file_spec_function): Add new function.
2799         (cc1_options): Add -iplugindir option if -fplugin* options found.
2800
2801         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
2802
2803         * plugin.c (add_new_plugin): Updated comment, and handle short
2804         plugin name.
2805         (default_plugin_dir_name): Added new function.
2806
2807         * common.opt (iplugindir): New option to set the plugin directory.
2808
2809 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
2810
2811         * config/i386/i386.md (any_rotate): New code iterator.
2812         (rotate_insn): New code attribute.
2813         (rotate): Ditto.
2814         (SWIM124): New mode iterator.
2815         (<rotate_insn>ti3): New expander.
2816         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
2817         any_rotate code iterator.
2818         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
2819         using any_rotate code iterator and SWIM124 mode iterator.
2820         (ix86_rotlti3): New insn_and_split pattern.
2821         (ix86_rotrti3): Ditto.
2822         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
2823         ix86_rotl{di,ti}3 patterns.
2824         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
2825         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
2826         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
2827         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
2828         code iterator and SWI mode iterator.
2829         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
2830         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
2831         code iterator.
2832         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
2833         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
2834         (bswap rotatert splitter): Add splitter.
2835         (bswap splitter): Macroize splitter using any_rotate code iterator.
2836         Add insn predicate to split only for TARGET_USE_XCHGB or when
2837         optimizing function for size.
2838
2839 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2840
2841         * config/pa/pa.c (emit_move_sequence): Remove use of
2842         deleted variable flag_argument_noalias.
2843
2844 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2845
2846         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
2847         configurations.
2848         Add to unsupported targets list.
2849         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
2850         sparc*-sun-solaris2.[567]* from target lists.
2851         * configure: Regenerate.
2852         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
2853         removal.
2854         Remove Solaris 7 patch references.
2855         (Specific, sparc-sun-solaris2.7): Removed.
2856         (sparc-sun-solaris2*): Update Solaris 7 example.
2857         (sparc64-*-solaris2*): Likewise.
2858
2859 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2860
2861         * config.build (alpha*-dec-osf4*): Remove.
2862         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
2863         of obsolete configurations.
2864         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
2865         support.
2866         * config/alpha/t-osf4: Renamed to ...
2867         * config/alpha/t-osf5: ... this.
2868         * config/alpha/osf.h: Renamed to ...
2869         * config/alpha/osf5.h: ... this.
2870         Merged old osf5.h contents.
2871         Update comments.
2872         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
2873         (EXTRA_SPECS): Removed.
2874         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
2875         reflect removal of Tru64 UNIX V4.0/V5.0 support.
2876         Document that.
2877
2878 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2879
2880         * doc/contrib.texi (Contributors, Rainer Orth): Update.
2881
2882 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
2883
2884         PR/43702
2885         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
2886         __thiscall convention.
2887
2888 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2889
2890         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
2891         orig_base.
2892         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
2893
2894 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
2895
2896         * function.c (assign_parms_initialize_all): Add unused attribute
2897         to fntype.
2898
2899 2010-04-12  Richard Guenther  <rguenther@suse.de>
2900
2901         * gsstruct.def (GSS_CALL): New.
2902         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
2903         * gimple.h: Include tree-ssa-alias.h.
2904         (struct gimple_statement_call): New.
2905         (union gimple_statement_struct_d): Add gimple_call member.
2906         (gimple_call_reset_alias_info): Declare.
2907         (gimple_call_use_set): New function.
2908         (gimple_call_clobber_set): Likewise.
2909         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
2910         * gimple.c (gimple_call_reset_alias_info): New function.
2911         (gimple_build_call_1): Call it.
2912         * lto-streamer-in.c (input_gimple_stmt): Likewise.
2913         * tree-inline.c (remap_gimple_stmt): Likewise.
2914         (expand_call_inline): Remove callused handling.
2915         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
2916         * tree-dfa.c (dump_variable): Likewise.
2917         * tree-parloops.c (parallelize_loops): Likewise.
2918         * tree-ssa.c (init_tree_ssa): Likewise.
2919         (delete_tree_ssa): Likewise.
2920         * tree-flow-inline.h (is_call_used): Remove.
2921         * tree-flow.h (struct gimple_df): Remove callused member.
2922         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
2923         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
2924         (ref_maybe_used_by_call_p_1): Simplify.
2925         (call_may_clobber_ref_p_1): Likewise.
2926         * tree-ssa-structalias.c (compute_points_to_sets): Set
2927         the call stmt used and clobbered sets.
2928         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
2929         (find_tail_calls): Verify the tail call.
2930
2931 2010-04-12  Richard Guenther  <rguenther@suse.de>
2932
2933         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
2934         single-iteration always-inline inlining.
2935         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
2936         (cgraph_decide_inlining): Do not handle always-inline specially.
2937         (try_inline): Remove always-inline cycle detection special case.
2938         Do not recurse on always-inlines.
2939         (cgraph_early_inlining): Do not iterate if not optimizing.
2940         (cgraph_gate_early_inlining): remove.
2941         (pass_early_inline): Run unconditionally.
2942         (gate_cgraph_decide_inlining): New function.
2943         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
2944         not inlining or optimizing.
2945         (cgraph_decide_inlining_of_small_functions): Also consider
2946         always-inline functions.
2947         (cgraph_default_inline_p): Return true for nodes which should
2948         disregard inline limits.
2949         (estimate_function_body_sizes): Assume zero size and time for
2950         nodes which are marked as disregarding inline limits.
2951         (cgraph_decide_recursive_inlining): Do not perform recursive
2952         inlining on always-inline nodes.
2953
2954 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
2955
2956         PR bootstrap/43699
2957         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
2958         for exprs satisfying handled_component_p.
2959
2960 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
2961
2962         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
2963         non-constant aggregate elements.
2964
2965         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
2966         is a real initialization.
2967
2968 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
2969
2970         PR c/36774
2971         * c-decl.c (start_function): Move forward check for nested function.
2972
2973 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2974
2975         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
2976         * config/sh/sh.c: Include reload.h.
2977         (sh_legitimize_reload_address): New.
2978         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
2979         sh_legitimize_reload_address.
2980
2981 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
2982
2983         * config/sh/sh.md (*movqi_pop): New insn pattern.
2984         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
2985
2986 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
2987
2988         * config/i386/i386.md (any_shiftrt): New code iterator.
2989         (shiftrt_insn): New code attribute.
2990         (shiftrt): Ditto.
2991         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
2992         using any_shiftrt code iterator.
2993         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
2994         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
2995         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
2996         pattern from corresponding peephole2 patterns.
2997         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
2998         using any_shiftrt code iterator.
2999         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
3000         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
3001         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
3002         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
3003         *{ashr,lshr}<mode>3_cmp_zext.
3004         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
3005
3006 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3007
3008         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
3009         scratch register.
3010         (*lshr<mode>3_cconly): Ditto.
3011
3012 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
3013
3014         * config/i386/i386.md (lshr<mode>3): Macroize expander from
3015         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3016         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3017         pattern from *lshr{di,ti}3_1 and corresponding splitters using
3018         DWI mode iterator.
3019         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3020         from corresponding peephole2 patterns.
3021         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
3022         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
3023         and *lshrdi3_1_rex64 using SWI mode iterator.
3024         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
3025         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
3026         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
3027         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
3028         and *lshrdi3_cmp_rex64 using SWI mode iterator.
3029         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
3030         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
3031         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
3032         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
3033         SWI mode iterator.
3034
3035 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
3036
3037         * config/i386/i386.md (ashr<mode>3): Macroize expander from
3038         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
3039         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3040         pattern from *ashr{di,ti}3_1 and corresponding splitters using
3041         DWI mode iterator.
3042         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
3043         from corresponding peephole2 patterns.
3044         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
3045         (ashrsi3_cvt): Rename from ashrsi3_31.
3046         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
3047         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
3048         and x86_64_shift_adj_3 using SWI48 mode iterator.
3049         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
3050         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
3051         and *ashrdi3_1_rex64 using SWI mode iterator.
3052         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
3053         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
3054         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
3055         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
3056         and *ashrdi3_cmp_rex64 using SWI mode iterator.
3057         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
3058         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
3059         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
3060         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
3061         SWI mode iterator.
3062         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
3063         * config/i386/i386.c (ix86_split_ashr): Update for renamed
3064         x86_shift<mode>_adj_3 expanders.
3065
3066 2010-04-10  Wei Guozhi  <carrot@google.com>
3067
3068         PR target/42601
3069         * config/arm/arm.c (arm_pic_static_addr): New function.
3070         (legitimize_pic_address): Call arm_pic_static_addr when it detects
3071         a static symbol.
3072         (arm_output_addr_const_extra): Output expression for new pattern.
3073         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
3074
3075 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
3076
3077         * ira-costs.c (record_reg_classes): Ignore alternatives that are
3078         not enabled.
3079
3080         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
3081         * web.c: Include "insn-config.h" and "recog.h".
3082         (union_match_dups): New function.
3083         (web_main): Call it.
3084         (union_defs): Don't try to recognize match_dups.
3085
3086         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
3087         if doing so would replace the entire pattern.
3088
3089 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3090
3091         PR target/43707
3092         PR target/43709
3093         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
3094         and splitter pattern.  Change splitter operand 1 predicate to
3095         nonmemory_operand.
3096
3097 2010-04-09  Martin Jambor  <mjambor@suse.cz>
3098
3099         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
3100         lattices are addresses of CONST_DECLs with the same initial value.
3101         (ipcp_print_all_lattices): Print values of CONST_DECLs.
3102         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
3103
3104 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
3105             Bernd Schmidt  <bernds@codesourcery.com>
3106
3107         * loop-invariant.c (replace_uses): New static function.
3108         (move_invariant_reg): Use it to ensure we can replace the uses.
3109
3110 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
3111
3112         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
3113         function template.
3114         (picochip_override_options): Enable section anchors only above -O1.
3115         (picochip_reorg): Fixed a couple of build warnings.
3116
3117 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3118
3119         * configure.ac (plugin -rdynamic test): Log result.
3120         * configure: Regenerate.
3121         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
3122         (RDYNAMIC_SPEC): Define.
3123         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
3124
3125 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3126
3127         * configure.ac: Determine Sun ld version numbers.
3128         (comdat_group): Restrict GNU ld version checks to gld.
3129         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
3130         (enable_comdat): Support --enable-comdat.
3131         * configure: Regenerate.
3132         * doc/install.texi (Configuration): Document --enable-comdat.
3133
3134 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3135
3136         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
3137         * config/sol2-gld.h: ... here.
3138         * config.gcc (sparc*-*-solaris2*): Reflect this.
3139         (i[34567]86-*-solaris2*): Use it.
3140
3141 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
3142
3143         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
3144         setup_clocks_p.
3145         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
3146
3147 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3148
3149         PR 42965
3150         * diagnostic.c (diagnostic_initialize): Initialize
3151         some_warnings_are_errors.
3152         (diagnostic_finish): New.
3153         (diagnostic_action_after_output): Call it before exiting.
3154         (diagnostic_report_diagnostic): Do not print message here. Set
3155         some_warnings_are_errors.
3156         * diagnostic.h (diagnostic_context): Delete
3157         issue_warnings_are_errors_message. Add some_warnings_are_errors.
3158         (diagnostic_finish): Declare.
3159         * toplev.c (toplev_main): Call it before exit.
3160
3161 2010-04-09  Jason Merrill  <jason@redhat.com>
3162
3163         PR c++/42623
3164         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
3165         for incomplete type.
3166
3167         PR c++/41788
3168         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
3169         based on a warning flag.
3170
3171 2010-04-09  Richard Guenther  <rguenther@suse.de>
3172
3173         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
3174
3175 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
3176
3177         PR bootstrap/43684
3178         * varasm.c (default_assemble_visibility): Wrap vars that are
3179         set, but unused, by targets without GAS.
3180         * config/rs6000/rs6000.c: (paired_emit_vector_compare):
3181         Remove set, but unused, vars.
3182         (rs6000_legitimize_tls_address): Likewise.
3183         (altivec_expand_dst_builtin): Likewise.
3184         * config/darwin.c (machopic_classify_symbol): Likewise.
3185         (machopic_indirection_name): Likewise.
3186
3187 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
3188
3189         * config/i386/i386.md (DWI): New mode iterator.
3190         (S): New mode attribute.
3191         (shift_operand): Ditto.
3192         (shift_immediate_operand): Ditto.
3193         (ashl_input_operand): Ditto.
3194         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
3195         using SDWIM mode iterator.
3196         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
3197         pattern from *ashl{di,ti}3_1 and corresponding splitters using
3198         DWI mode iterator.
3199         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
3200         from corresponding peephole2 patterns.
3201         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
3202         and x86_64_shift_adj_1 using SWI48 mode iterator.
3203         (x86_shift<mode>_adj_2): Ditto.
3204         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
3205         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
3206         using SWI48 mode iterator.
3207         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
3208         *ashldi3_cmp_rex64 using SWI mode iterator.
3209         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
3210         *ashldi3_cconly_rex64 using SWI mode iterator.
3211         * config/i386/i386.c (ix86_split_ashl): Update for renamed
3212         x86_shift<mode>_adj_{1,2}.
3213         (ix86_split_ashr): Ditto.
3214         (ix86_split_lshr): Ditto.
3215
3216 2010-04-09  Richard Guenther  <rguenther@suse.de>
3217
3218         * target.h (builtin_conversion): Pass in input and output types.
3219         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
3220         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
3221         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
3222         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
3223
3224         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
3225         Handle AVX modes.
3226         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
3227
3228 2010-04-09  Richard Guenther  <rguenther@suse.de>
3229
3230         PR target/43152
3231         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
3232
3233 2010-04-09  Richard Guenther  <rguenther@suse.de>
3234
3235         * tree-vectorizer.h (struct _stmt_vec_info): Document
3236         that vectype is the type of the LHS.
3237         (supportable_widening_operation, supportable_narrowing_operation):
3238         Get both input and output vector types as arguments.
3239         (vect_is_simple_use_1): Declare.
3240         (get_same_sized_vectype): Likewise.
3241         * tree-vect-loop.c (vect_determine_vectorization_factor):
3242         Set STMT_VINFO_VECTYPE to the vector type of the def.
3243         (vectorizable_reduction): Adjust.
3244         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
3245         Adjust.  Specify the output vector type.
3246         (vect_pattern_recog_1): Adjust.
3247         * tree-vect-stmts.c (get_same_sized_vectype): New function.
3248         (vectorizable_call): Adjust.
3249         (vectorizable_conversion): Likewise.
3250         (vectorizable_operation): Likewise.
3251         (vectorizable_type_demotion): Likewise.
3252         (vectorizable_type_promotion): Likewise.
3253         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
3254         the def.
3255         (vect_is_simple_use_1): New function.
3256         (supportable_widening_operation): Get both input and output
3257         vector types.
3258         (supportable_narrowing_operation): Likewise.
3259         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
3260
3261 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
3262
3263         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
3264         __thiscall and _thiscall as predefined macros.
3265         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
3266         thiscall attribute handling.
3267         (ix86_comp_type_attributes): Likewise.
3268         (ix86_function_regparm): Likewise.
3269         (ix86_return_pops_args): Likewise.
3270         (init_cumulative_args): Likewise.
3271         (find_drap_reg): Likewise.
3272         (ix86_static_chain): Likewise.
3273         (x86_this_parameter): Likewise.
3274         (x86_output_mi_thunk): Likewise.
3275         (ix86_attribute_table): Add description for thiscall attribute.
3276         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
3277         * doc/extend.texi: Add documentation for thiscall.
3278
3279 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3280
3281         PR c++/28584
3282         * c.opt (Wint-to-pointer-cast): Available in C++.
3283         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
3284
3285 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
3286
3287         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
3288         * calls.c (expand_call): Pass the function type to aggregate_value_p.
3289         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
3290         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
3291         function type instead.  Reorder and simplify checks.
3292
3293         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
3294
3295 2010-04-08  Jing Yu  <jingyu@google.com>
3296             Zdenek Dvorak  <ook@ucw.cz>
3297
3298         PR tree-optimization/42720
3299         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
3300         loop unswitch conditions here from ...
3301         (tree_unswitch_single_loop): ... here.
3302
3303 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3304
3305         * tree-if-conv.c: Fix comments and simplify logic.
3306
3307 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
3308
3309         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
3310         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
3311         (main_tree_if_conversion): Update call to tree_if_conversion.
3312
3313 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
3314
3315         PR 42485
3316         * doc/invoke.texi (-b,-V): Delete.
3317         * doc/tm.texi: Do not mention -b.
3318         * gcc.c (display_help): Delete -b and -V.
3319         (process_command): Delete -b and -V.
3320         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
3321
3322 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
3323             Wolfgang Gellerich  <gellerich@de.ibm.com>
3324
3325         Implement target hook for loop unrolling
3326         * target.h (loop_unroll_adjust): Add a new target hook function.
3327         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
3328         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
3329         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
3330         (s390_loop_unroll_adjust): Implement the new target hook for s390.
3331         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
3332         target hook.
3333         (decide_unroll_stupid): Likewise.
3334
3335 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3336
3337         PR target/43643
3338         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
3339
3340 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3341
3342         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
3343         (Specific, *-*-solaris2*): Likewise.
3344         Don't prefer Sun as over GNU as.
3345
3346 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
3347
3348         * config/s390/s390.c (override_options): Adjust the z10
3349           defaults for max-unroll-times, max-completely-peeled-insns
3350           and max-completely-peel-times.
3351
3352 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3353
3354         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
3355         instructions for z10.
3356         (s390_expand_setmem): Likewise.
3357         (s390_expand_cmpmem): Likewise.
3358
3359 2010-04-08  Richard Guenther  <rguenther@suse.de>
3360
3361         PR tree-optimization/43679
3362         * tree-ssa-pre.c (eliminate): Only propagate copies.
3363
3364 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3365
3366         PR bootstrap/43681
3367         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
3368         set but not used variable warning.
3369
3370 2010-04-08  Wei Guozhi  <carrot@google.com>
3371
3372         PR target/41653
3373         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
3374         (arm_size_rtx_costs): Call the new function when optimized for size.
3375
3376 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
3377
3378         PR debug/43670
3379         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
3380         op0 is not a MEM, just return NULL instead of assertion
3381         failure.
3382         (discover_nonconstant_array_refs): Don't walk debug stmts.
3383
3384 2010-04-08  Doug Kwan  <dougkwan@google.com>
3385
3386         * configure.ac: Recognize gold and do not use its version number
3387         to test ld features.
3388         * configure: Regenerate.
3389
3390 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
3391
3392         PR middle-end/40815
3393         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
3394         (negate_value): Move code to push elements to broken_up_substracts ...
3395         (eliminate_plus_minus_pair): ... here.  Push operands that have no
3396         negative pair to plus_negates.
3397         (repropagate_negates, init_reassoc, fini_reassoc): Update.
3398
3399 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3400
3401         * doc/install.texi (Configuration): Move description of
3402         --enable-lto, --with-libelf*, --enable-gold from Java section to
3403         general section.
3404
3405         * doc/generic.texi (Working with declarations)
3406         (Function Properties, C and C++ Trees): Fix typos.
3407         * doc/sourcebuild.texi (Top Level): Likewise.
3408
3409 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3410
3411         PR c/18624
3412         * tree.h (DECL_READ_P): Define.
3413         (struct tree_decl_common): Add decl_read_flag.
3414         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
3415         a set but not used warning.
3416         (merge_decls): Merge DECL_READ_P flag.
3417         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
3418         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
3419         * c-common.c (handle_used_attribute, handle_unused_attribute):
3420         Likewise.
3421         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
3422         New prototypes.
3423         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
3424         New functions.
3425         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
3426         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
3427         c_parser_binary_expression, c_parser_cast_expression,
3428         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
3429         Call default_function_array_read_conversion instead of
3430         default_function_array_conversion where needed.
3431         (c_parser_unary_expression, c_parser_conditional_expression,
3432         c_parser_postfix_expression_after_primary, c_parser_initelt):
3433         Likewise.  Call mark_exp_read where needed.
3434         (c_parser_statement_after_labels, c_parser_asm_operands,
3435         c_parser_typeof_specifier, c_parser_sizeof_expression,
3436         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
3437         where needed.
3438         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
3439         New.
3440         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
3441         (warn_unused_but_set_parameter): Default to warn_unused
3442         && extra_warnings.
3443         * doc/invoke.texi: Document -Wunused-but-set-variable and
3444         -Wunused-but-set-parameter.
3445
3446         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
3447         used count variable.
3448         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
3449         when operandN variables aren't used in the body of the expander
3450         or splitter.
3451         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
3452         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
3453         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
3454         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
3455         FOR_EACH_IMM_USE_ON_STMT): Likewise.
3456         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
3457         * tree.c (PROCESS_ARG): Likewise.
3458
3459 2010-04-07  Simon Baldwin  <simonb@google.com>
3460
3461         * diagnostic.h (diagnostic_override_option_index): New macro to
3462         set a diagnostic's option_index.
3463         * c-tree.h (c_cpp_error): Add warning reason argument.
3464         * opts.c (_warning_as_error_callback): New.
3465         (register_warning_as_error_callback): Store callback for
3466         warnings enabled via enable_warning_as_error.
3467         (enable_warning_as_error): Call callback, minor code tidy.
3468         * opts.h (register_warning_as_error_callback): Declare.
3469         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
3470         response to -Werror=.
3471         (c_common_init_options): Register warning_as_error_callback in opts.c.
3472         * common.opt: Add -Wno-cpp option.
3473         * c-common.c (struct reason_option_codes_t): Map cpp warning
3474         reason codes to gcc option indexes.
3475         * (c_option_controlling_cpp_error): New function, lookup the gcc
3476         option index for a cpp warning reason code.
3477         * (c_cpp_error): Add warning reason argument, call
3478         c_option_controlling_cpp_error for diagnostic_override_option_index.
3479         * doc/invoke.texi: Document -Wno-cpp.
3480
3481 2010-04-07  Richard Guenther  <rguenther@suse.de>
3482
3483         * ipa-reference.c (mark_load): Use get_base_address.
3484         (mark_store): Likewise.
3485
3486         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
3487         inserting GIMPLE_NOPs into the IL.
3488         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3489         Explicitly strip handled components and indirect references.
3490
3491         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
3492         folding address expressions.
3493         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
3494         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
3495         operand_equal_p to compare decls.
3496         (ptr_deref_may_alias_decl_p): Likewise.
3497         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
3498         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
3499         Handle reversed comparison ops.
3500         * tree-sra.c (asm_visit_addr): Use get_base_address.
3501         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
3502         * ipa-reference.c (mark_address): Use get_base_address.
3503
3504 2010-04-07  Richard Guenther  <rguenther@suse.de>
3505
3506         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3507         Propagate constants everywhere.
3508
3509 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
3510
3511         PR debug/43516
3512         * tree.c (MAX_INT_CACHED_PREC): Define.
3513         (nonstandard_integer_type_cache): New array.
3514         (build_nonstandard_integer_type): Cache results for precision
3515         <= MAX_INT_CACHED_PREC.
3516
3517 2010-04-07  Richard Guenther  <rguenther@suse.de>
3518
3519         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
3520         -fargument-noalias-global, -fargument-noalias-anything): Remove.
3521         * common.opt: Likewise.
3522         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
3523         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
3524         (nonoverlapping_memrefs_p): Likewise.
3525         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
3526         * opts.c (common_handle_option): Handle OPT_fargument_alias,
3527         OPT_fargument_noalias, OPT_fargument_noalias_anything and
3528         OPT_fargument_noalias_global for backward compatibility.
3529
3530 2010-04-07  Richard Guenther  <rguenther@suse.de>
3531
3532         PR tree-optimization/43270
3533         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
3534         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
3535         * tree-ssa-pre.c (phi_translate_1): Adjust.
3536         (fully_constant_expression): Split out vn_reference handling to ...
3537         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
3538         Fold reads from constant strings.
3539         (vn_reference_lookup): Handle fully constant references.
3540         (vn_reference_lookup_pieces): Likewise.
3541         * Makefile.in (expmed.o-warn): Add -Wno-error.
3542
3543 2010-04-07  Martin Jambor  <mjambor@suse.cz>
3544
3545         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
3546
3547 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
3548
3549         PR driver/41594
3550         * gcc.c: Add -static-libstdc++ to list of recognized options.
3551
3552 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3553
3554         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
3555
3556 2010-04-07  Richard Guenther  <rguenther@suse.de>
3557
3558         PR middle-end/42617
3559         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
3560         bases build simple mem attributes to retain points-to information.
3561
3562 2010-04-07  Richard Guenther  <rguenther@suse.de>
3563
3564         PR middle-end/42617
3565         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
3566         preserve points-to related information.
3567
3568 2010-04-07  Richard Guenther  <rguenther@suse.de>
3569
3570         PR middle-end/42617
3571         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
3572         discard plain indirect references.
3573         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
3574         * tree.c (tree_nop_conversion): Likewise.
3575
3576 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
3577
3578         PR debug/43628
3579         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
3580
3581 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
3582
3583         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
3584         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
3585
3586 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3587
3588         * tree-if-conv.c: Fix indentation and comments.
3589
3590 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3591
3592         * tree-if-conv.c: Sort static functions in topological order.
3593
3594 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
3595
3596         * tree-if-conv.c: Fix indentation and comments.
3597
3598 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3599
3600         PR middle-end/43519
3601         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
3602         lang_hooks.types.type_for_size instead of
3603         build_nonstandard_integer_type.
3604         When converting an unsigned type to signed, double its precision.
3605         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
3606         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
3607         (graphite_create_new_loop_guard): When ub + 1 wraps around,
3608         use lb <= ub.
3609
3610 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3611
3612         PR middle-end/43519
3613         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
3614         POINTER_PLUS_EXPR for pointer types.
3615
3616 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3617
3618         PR middle-end/43519
3619         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
3620         * graphite-clast-to-gimple.c: Include langhooks.h.
3621         (max_signed_precision_type): New.
3622         (max_precision_type): Takes two types as arguments.
3623         (precision_for_value): New.
3624         (precision_for_interval): New.
3625         (gcc_type_for_interval): New.
3626         (gcc_type_for_value): New.
3627         (gcc_type_for_clast_term): New.
3628         (gcc_type_for_clast_red): New.
3629         (gcc_type_for_clast_bin): New.
3630         (gcc_type_for_clast_expr): Split up into several functions.
3631         (gcc_type_for_clast_eq): Rewritten.
3632         (compute_bounds_for_level): New.
3633         (compute_type_for_level_1): New.
3634         (compute_type_for_level): New.
3635         (gcc_type_for_cloog_iv): Removed.
3636         (gcc_type_for_iv_of_clast_loop): Rewritten.
3637         (graphite_create_new_loop): Compute the lower and upper bound types
3638         with gcc_type_for_clast_expr.
3639         (graphite_create_new_loop_guard): Same.
3640         (find_cloog_iv_in_expr): Removed.
3641         (compute_cloog_iv_types_1): Removed.
3642         (compute_cloog_iv_types): Removed.
3643         (gloog): Do not call compute_cloog_iv_types.
3644         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
3645         GBB_CLOOG_IV_TYPES.
3646         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
3647         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
3648         (GBB_CLOOG_IV_TYPES): Removed.
3649
3650 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3651
3652         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
3653         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
3654         (detect_commutative_reduction): Same.
3655
3656 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3657
3658         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
3659         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
3660         argument.
3661         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
3662         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
3663         (rewrite_commutative_reductions_out_of_ssa): Same.
3664         * passes.c (execute_function_todo): Call verify_ssa for every pass
3665         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
3666         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
3667         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
3668         with an extra argument.
3669         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
3670         verify_ssa only when the extra argument is true.
3671         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
3672         with an extra argument.
3673         (tree_transform_and_unroll_loop): Same.
3674
3675 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
3676
3677         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
3678         for all the passes of the LNO having LOOP_CLOSED_SSA.
3679         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
3680         * tree-loop-distribution.c (pass_loop_distribution): Same.
3681         * tree-pass.h (TODO_verify_loops): Removed.
3682         * tree-ssa-loop.c (pass_tree_loop_init): Same.
3683         (pass_lim): Same.
3684         (pass_tree_unswitch): Same.
3685         (pass_predcom): Same.
3686         (pass_vectorize): Same.
3687         (pass_linear_transform): Same.
3688         (pass_graphite_transforms): Same.
3689         (pass_iv_canon): Same.
3690         (pass_complete_unroll): Same.
3691         (pass_complete_unrolli): Same.
3692         (pass_parallelize_loops): Same.
3693         (pass_loop_prefetch): Same.
3694         (pass_iv_optimize): Same.
3695
3696 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
3697
3698         PR middle-end/32824
3699         * passes.c (init_optimization_passes): Move pass_lim before
3700         pass_copy_prop and pass_dce_loop.
3701
3702 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3703
3704         PR target/43667
3705         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
3706         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
3707         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
3708         MULTI_* defines for 4 argument vpermil2p* builtins.
3709
3710 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3711
3712         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
3713         * config/i386/i386.c (x86_maybe_negate_const_int): New.
3714         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
3715         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
3716         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
3717         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
3718         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
3719         Use x86_maybe_negate_const_int to output insn mnemonic.
3720         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
3721         check from instruction predicate.  Update comments.
3722         * config/i386/sync.md (sync_add<mode>): Use
3723         x86_maybe_negate_const_int to output insn mnemonic.
3724
3725 2010-04-06  Jan Hubicka  <jh@suse.cz>
3726
3727         PR tree-optimization/42906
3728         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
3729         IGNORE_SELF argument.  Set visited_control_parents for fully
3730         processed BBs.
3731         (find_obviously_necessary_stmts): Update call of
3732         mark_control_dependent_edges_necessary.
3733         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
3734
3735 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
3736
3737         * config/i386/i386.md: Remove comment about 'e' and 'E'
3738         operand modifier.
3739
3740 2010-04-06  Richard Guenther  <rguenther@suse.de>
3741
3742         PR tree-optimization/43627
3743         * tree-vrp.c (extract_range_from_unary_expr): Widenings
3744         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
3745         not varying.
3746
3747 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
3748
3749         * BASE-VER: Change to 4.6.0.
3750
3751         PR target/43638
3752         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
3753         handling.
3754
3755 2010-04-06  Richard Guenther  <rguenther@suse.de>
3756
3757         PR middle-end/43661
3758         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
3759
3760 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3761
3762         * doc/invoke.texi (Optimize Options): Document that LTO
3763         won't remove object access purely due to incompatible
3764         declarations.
3765
3766 2010-04-04  Matthias Klose  <doko@ubuntu.com>
3767
3768         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
3769         Initialize variable.
3770
3771 2010-04-03  Richard Guenther  <rguenther@suse.de>
3772
3773         PR middle-end/42509
3774         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
3775         require a non-NULL MEM_OFFSET.
3776
3777 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
3778
3779         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
3780         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
3781         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
3782         config/alpha/predicates.md, config/arm/arm.md,
3783         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
3784         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
3785         config/darwin9.h, config/darwin.c, config/darwin.h,
3786         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
3787         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
3788         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
3789         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
3790         config/mips/mips.md, config/mn10300/mn10300.c,
3791         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
3792         config/rs6000/aix.h, config/rs6000/dfp.md,
3793         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
3794         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
3795         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
3796         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
3797         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
3798         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
3799         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
3800         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
3801         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
3802         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
3803         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
3804         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
3805         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
3806         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
3807         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
3808         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
3809         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
3810         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
3811         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
3812         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
3813         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
3814         opt-functions.awk, opth-gen.awk, params.def, passes.c,
3815         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
3816         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
3817         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
3818         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
3819         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
3820         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
3821         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
3822         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3823         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
3824         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
3825         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
3826         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
3827         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
3828         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
3829
3830 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3831
3832         PR other/43620
3833         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
3834         * aclocal.m4: Regenerate.
3835
3836 2010-04-02  Richard Guenther  <rguenther@suse.de>
3837
3838         PR tree-optimization/43629
3839         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
3840         if we have seen a constant value.
3841
3842 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
3843
3844         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
3845
3846 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
3847
3848         PR target/43469
3849         * arm.c (legitimize_tls_address): Adjust call to
3850         gen_tls_load_dot_plus_four.
3851         (arm_note_pic_base): New function.
3852         (arm_cannot_copy_insn_p): Use it.
3853         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
3854         constraint.
3855
3856 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3857
3858         PR bootstrap/43531
3859
3860         Revert:
3861         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3862
3863         * Makefile.in ($(out_object_file)): Depend on
3864         gt-$(basename $(notdir $(out_file))).h.
3865
3866 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
3867
3868         * config.gcc (lm32-*-rtems*): Add t-lm32.
3869
3870 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
3871
3872         * config.gcc: Add lm32-*-rtems*.
3873         * config/lm32/rtems.h: New file.
3874
3875 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
3876
3877         PR target/42609
3878         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
3879
3880 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
3881
3882         * dwarf2out.c (output_compilation_unit_header): For
3883         -gdwarf-4 use version 4 instead of version 3.
3884         (output_line_info): For version 4 and above emit additional
3885         maximum ops per insn header field.
3886         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
3887
3888         * dwarf2out.c (is_c_family, is_java): Remove.
3889         (lower_bound_default): New function.
3890         (add_bound_info, gen_descr_array_type_die): Use it.
3891
3892 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
3893
3894         PR debug/43325
3895         * dwarf2out.c (gen_variable_die): Allow debug info for variable
3896         re-declaration when it happens in a function.
3897
3898 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
3899
3900         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
3901         (cgraph_remove_function_insertion_hook): Same.
3902         (cgraph_call_function_insertion_hooks): Same.
3903
3904 2010-04-01  Richard Guenther  <rguenther@suse.de>
3905
3906         PR middle-end/43614
3907         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
3908         and TREE_THIS_VOLATILE.
3909         (copy_ref_info): Likewise.
3910         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
3911         * tree.c (build6_stat): Ignore side-effects of all but arg5
3912         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
3913         TARGET_MEM_REF.
3914
3915 2010-04-01  Richard Guenther  <rguenther@suse.de>
3916
3917         PR tree-optimization/43607
3918         * ipa-type-escape.c (check_call): Do not access non-existing
3919         arguments.
3920
3921 2010-04-01  Richard Guenther  <rguenther@suse.de>
3922
3923         PR middle-end/43602
3924         Revert
3925         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
3926                     Jack Howarth <howarth@bromo.med.uc.edu>
3927
3928         * tree-profile.c (tree_init_ic_make_global_vars): Make static
3929         variables TLS.
3930
3931 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3932
3933         * doc/install.texi (Prerequisites): Document libelf usability on
3934         IRIX 5/6 and Solaris 2.
3935         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
3936         Update GNU as, GNU ld requirements.
3937         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
3938         Document Sun Studio compiler download.
3939         Update and simplify as, ld recommendations.
3940         (Specific, *-*-solaris2.7): Note obsoletion, removal.
3941
3942 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3943
3944         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
3945         with_tune_32 to pentium4.
3946
3947 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
3948
3949         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
3950
3951 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3952
3953         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
3954         obsoletion, removal.
3955         Update IDO URL.
3956         Document GNU as requirement.
3957         Update configure requirements.
3958         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
3959         Recomment IRIX 6.5.18+.
3960         Document IDF/IDL requirement.
3961         Document GNU as requirement.
3962         Document GNU ld bootstrap failure.
3963         Remove freeware.sgi.com reference.
3964
3965 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3966
3967         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
3968         UNIX V4.0, V5.0 obsoletion, removal.
3969         Remove --with-gc=simple reference.
3970         Update VM requirements during bootstrap.
3971         Remove -oldas bootstrap description.
3972         Update binutils reference.
3973         Remove comparison failure note.
3974
3975 2010-03-31  Richard Guenther  <rguenther@suse.de>
3976             Zdenek Dvorak  <ook@ucw.cz>
3977             Sebastian Pop  <sebastian.pop@amd.com>
3978
3979         PR middle-end/43464
3980         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
3981         with multiple arguments.
3982         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
3983
3984 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
3985
3986         * graphite-dependences.c (print_pddr): Call print_pdr with an
3987         extra argument.
3988         * graphite-poly.c (debug_pdr): Add an extra argument for the
3989         verbosity level.
3990         (print_pdr): Same.
3991         (print_pbb_domain): Same.
3992         (print_pbb): Same.
3993         (print_scop_context): Same.
3994         (print_scop): Same.
3995         (print_cloog): Same.
3996         (debug_pbb_domain): Same.
3997         (debug_pbb): Same.
3998         (print_pdrs): Same.
3999         (debug_pdrs): Same.
4000         (debug_scop_context): Same.
4001         (debug_scop): Same.
4002         (debug_cloog): Same.
4003         (print_scop_params): Same.
4004         (debug_scop_params): Same.
4005         (print_iteration_domain): Same.
4006         (print_iteration_domains): Same.
4007         (debug_iteration_domain): Same.
4008         (debug_iteration_domains): Same.
4009         (print_scattering_function): Same.
4010         (print_scattering_functions): Same.
4011