OSDN Git Service

* gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-08-21  Olivier Hainque  <hainque@adacore.com>
2
3         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
4         Arrange for the temporary captures of components overlapping the lhs
5         to happen before the lhs is possibly cleared.
6         
7 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
8  
9         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
10         necessary places to pass the correct "number of registers" values
11         to _Unwind_VRS_Pop.
12
13 2006-08-20  Jan Hubicka  <jh@suse.cz>
14
15         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
16         (create_name_tags): Instead of quadratic checking use hashtable.
17         * bitmap.h: Include hashtab.h.
18         (bitmap_hash): Declare.
19         * bitmap.c (bitmap_hash): New function.
20
21 2006-08-20  Jan Hubicka  <jh@suse.cz>
22
23         PR rtl-optimization/28071
24         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
25         twice.
26         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
27         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
28         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
29         cgraph_decide_inlining_incrementally): Update use of
30         cgraph_check_inline_limits.
31         * cgraph.c (edge_hash, edge_eq): New function.
32         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
33         cgraph_edge_remove_caller, cgraph_node_remove_callees,
34         cgraph_remove_node): Maintain call site hash.
35         * cgraph.h (struct cgraph_node): Add call_site_hash.
36         (cgraph_set_call_stmt): New function.
37
38 2006-08-20  Jan Hubicka  <jh@suse.cz>
39
40         PR rtl-optimization/28071
41         * reload1.c (reg_has_output_reload): Turn into regset.
42         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
43         choose_reload_regs, emit_reload_insns): Update to new
44         reg_has_output_reload.
45
46 2006-08-20  Jan Hubicka  <jh@suse.cz>
47
48         PR middle-end/28779
49         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
50         function body sizes.
51         * cgraphunit.c (cgraph_analyze_function): Don't do so.
52
53 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
54
55         PR target/28648 c:
56         * tree.c (handle_dll_attribute): Return early if not a
57         var or function decl.
58
59 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
60
61         PR target/27565
62         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
63         alignment of SPE vector types.
64
65 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
66
67         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
68
69 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
70
71         PR c/28744
72         * cgraph.h (struct cgraph_node): Remove externally_visible
73         bitfield.
74         * cgraphunit.c (process_function_and_variable_attributes): Set
75         local.externally_visible rather than externally_visible.
76
77         PR c/28744
78         * c-common.c (handle_externally_visible_attribute): First look
79         at TREE_CODE and only if it is function or var decl, check for
80         non-public objects.  Don't warn for DECL_EXTERNAL.
81         * cgraphunit.c (process_function_and_variable_attributes): Warn
82         if externally_visible attribute is used on non-public object.
83
84 2006-08-17  Jan Hubicka  <jh@suse.cz>
85
86         PR tree-optimization/27865
87         * reload1.c (forget_marked_reloads): New function.
88         (forget_old_reloads_1): When data are passed, just mark the registers
89         for later removal.
90         (reload_as_needed): Use the new mechanizm.
91
92 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
93
94         PR target/28146
95         * reload.h (reg_equiv_alt_mem_list): New declaration.
96         * reload1.c (reg_equiv_alt_mem_list): New definition.
97         (reload): Initialize it and release it.
98         (delete_output_reload): Use it.
99         * reload.c (push_reg_equiv_alt_mem): New function.
100         (find_reloads_toplev): Call it.
101         (find_reloads_address, find_reloads_address_1): Likewise.
102         (find_reloads_subreg_address): Likewise.
103
104 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
105
106         PR rtl-optimization/28489
107         * sched-ebb.c (begin_schedule_ready): Create basic block
108         at the right place.
109         (advance_target_bb): Skip empty blocks.
110         * haifa-sched.c (bb_note): Make global.
111         * sched-int.h (bb_note): Add prototype.
112
113 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
114
115         PR tree-optimization/27865
116         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
117         for pointer types.
118         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
119         fold_used_pointer, pointer_used_p): New functions.
120         (analyze_scalar_evolution_1): Use fold_used_pointer.
121         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
122         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
123         for pointers.
124
125 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
126
127         PR c++/28573
128         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
129         or the INTEGER_CST.  Fail on a CALL_EXPR. 
130         (fold_offsetof): Pass new argument to fold_offsetof_1.
131         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
132         operand into an INDIRECT_REF. 
133         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
134
135 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
136
137         PR gcov/profile/26570
138         * value-prof.c (static_values): Removed.
139         (tree_find_values_to_profile): Do not set static_values.
140         (find_values_to_profile): Do not free static_values.
141         * profile.c (instrument_values): Do not free the values.
142         (branch_prob): Free the values.
143
144 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
145
146         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
147
148 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
149
150         PR c/27697
151         * c-typeck.c (build_component_ref): Combine qualifiers of
152         structure or union and field.
153
154 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
155
156         PR rtl-optimization/28071
157         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
158         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
159         * tree-into-ssa.c (struct dom_dfsnum): New.
160         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
161         functions.
162         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
163         compute_global_livein.
164         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
165         in phi nodes in the correct blocks.
166
167 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
168
169         PR tree-optimization/28364
170         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
171         correctly.
172         (fold_affine_expr): New function.
173         (may_eliminate_iv): Use fold_affine_expr.
174
175 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
176
177         PR c/27489
178         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
179         Clean up.
180
181 2006-08-16  Mike Stump  <mrs@apple.com>
182
183         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
184         * doc/cppopts.texi (-MD): Likewise.
185
186 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
187
188         PR c/28287
189         * c-common.c (handle_weak_attribute): Ignore and warn if
190         not a FUNCTION_ or VAR_DECL.
191
192 2006-07-15  Mike Stump  <mrs@apple.com>
193
194         PR c/28280
195         * c-parser.c (c_parser_typeof_specifier): Don't use
196         c_finish_expr_stmt, open code desired semantics instead.
197
198 2006-08-15  Nick Clifton  <nickc@redhat.com>
199
200         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
201         fragment to tmake_file only if threads are enabled.
202         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
203         * config/i386/t-gthr-win32: New file. ... here.
204
205 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
206
207         PR c/28649
208         * c-parser.c (c_parser_compound_statement_nostart): Reset
209         parser->error after each statement.
210
211 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
212
213         PR middle-end/28713
214         * omp-low.c (lower_omp_parallel): Convert t to
215         receiver_decl's type.
216         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
217         source before comparison.
218
219         PR middle-end/28724
220         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
221         to itype in assignment to oldival2.
222
223 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
224
225         PR c/27490
226         PR c/27489
227         * c-typeck.c (build_compound_expr): If the second expression
228         is an error mark, then just return an error mark instead of
229         creating a COMPOUND_EXPR.
230
231 2006-07-14  Mike Stump  <mrs@apple.com>
232
233         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
234
235 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
236
237         * c-decl.c, var-tracking.c: Fix comment typos.
238
239 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
240
241         PR rtl-optimization/28634
242         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
243         for floating-point modes unless flag_unsafe_math_optimizations.
244
245 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
246             Andrew Pinski  <pinskia@physics.uc.edu>
247
248         PR c/27184
249         * tree.c (build_array_type): Unify array types with
250         unspecified index_type.
251         * c-decl.c (grokdeclarator): Make sure we do not modify a
252         unified incomplete array type.
253         * c-typeck.c (store_init_value): Create distinct type before
254         filling in the index type in an initializer from a compound
255         literal.
256
257         * c-decl.c (grokdeclarator): Remove code where we copy the
258         array type over.
259
260 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
261
262         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
263         into account for TODO_dump_cgraph.
264         (TODO_update_ssa_no_phi): Likewise.
265         (TODO_update_ssa_full_phi): Likewise.
266         (TODO_update_ssa_only_virtuals): Likewise.
267         (TODO_remove_unused_locals): Likewise.
268         (TODO_set_props): Likewise.
269         (TODO_update_stmt_usage): Likewise.
270
271 2006-08-13  Dirk Mueller  <dmueller@suse.de>
272
273         * c-common.c (strict_aliasing_warning): Fix formatting.
274
275 2006-08-13  Matthias Klose  <doko@debian.org>
276
277         * doc/invoke.texi: Fix spelling errors.
278
279 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
280
281         PR rtl-optimization/23454
282         * reorg.c (relax_delay_slots): Update comment.
283
284 2006-08-11  Richard Guenther  <rguenther@suse.de>
285
286         PR middle-end/28651
287         * simplify-rtx.c (simplify_const_relational_operation):
288         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
289         codes.
290
291 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
292
293         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
294         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
295
296 2006-08-10  Paul Brook  <paul@codesourcery.com>
297
298         * final.c (final_scan_insn): Clear current_insn_predicate before
299         outputting inline asm.
300
301 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
302
303         PR tree-optimization/26197
304         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
305         get_ref_base_and_extent and overlap_subvar to add only relevant
306         subvars as may-aliases.
307         (add_may_alias_for_new_tag): New function, factored out of
308         new_type_alias.
309         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
310         with additional argument.
311         * tree-flow.h (new_type_alias): Takes additional argument.
312
313 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
314
315         * gcov.c (no_data_file): New flag.
316         (read_count_file): Set it if data file not present.  Assume counts
317         zero if not found.
318         (output_lines): Don't name the data file, if there wasn't one.
319
320 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
321
322         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
323         (rs6000_generate_compare): Tweak comments.
324         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
325
326 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
327
328         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
329         (var_debug_decl): New function.
330         (var_reg_set): Follow debug decl link.  Add location even if
331         reg is already known to hold some other variable.
332         (var_mem_set): Follow debug decl link.
333         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
334         decl link.  Delete other known locations of the variable part
335         if requested.
336         (var_reg_delete, var_mem_delete): Delete other known locations
337         of the variable part if requested.
338         (same_variable_part_p): New function.
339         (add_stores): Select MO_COPY when appropriate.
340         (vt_initialize): Handle it.
341         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
342         known locations for MO_SET and MO_CLOBBER.
343         (find_variable_location_part): New function.
344         (set_variable_part, delete_variable_part): Use it.
345         (clobber_variable_part): New function.
346         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
347         decl link.
348
349 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
350
351         PR tree-optimization/26969
352         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
353          with an empty list of PHIs.
354
355 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
356
357         PR target/27827
358
359         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
360         instructions.
361
362 2006-08-06  Andreas Schwab  <schwab@suse.de>
363
364         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
365         string.  Whitespace and comment fixup.
366
367 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
368
369         PR c/28502
370         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
371         argument.
372
373         PR c/27721
374         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
375
376         PR c/28136
377         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
378
379 2006-08-04  Jan Hubicka  <jh@suse.cz>
380
381         PR target/26655
382         PR target/28270
383         * reload.c (push_reload): Patch out the mismatching instruction;
384         return early.
385         (find_reload): Bail out if the instruction was patched out.
386
387 2006-08-04  Jan Hubicka  <jh@suse.cz>
388
389         PR tree-optimization/24888
390         * tree-inline.c (expand_call_inline): Do not re-record variables.
391         (declare_inline_vars): Add variable to unexpanded_var_list.
392
393 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
394             Roger Sayle  <roger@eyesopen.com>
395
396         PR rtl-optimization/26244
397         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
398         inner_const are negative or greater than or equal to the bitsize of
399         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
400         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
401         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
402         CONST0_RTX (mode) when the new shift count is greater than or equal to
403         to the bitsize of the object being shifted and XEXP (y, 0) has no side
404         effects.
405
406 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
407
408         * tree-cfg.c: Fix a comment typo.
409
410 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
411
412         PR c++/28148
413         * varasm.c (output_constant): Give the front end another chance to
414         expand constants, after stripping NOPs.
415
416 2006-08-03  Jan Hubicka  <jh@suse.cz>
417
418         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
419         implementation.
420
421 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
422
423         PR tree-optimization/27770
424         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
425         declaration removed (moved to tree-flow.h).
426         (vect_can_force_dr_alignment_p): Likewise.
427         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
428         (moved from tree-vectorizer.h).
429         (vect_can_force_dr_alignment_p): Likewise.
430         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
431         from outside the vectorizer - in particular from cgraph stage.
432         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
433         the alignment of global arrays when -fsection-anchors is enabled.
434         * cgraphunit.c (cgraph_increase_alignment): New function.
435         (cgraph_optimize): Call cgraph_increase_alignment.
436
437 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
438
439         PR target/27566
440         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
441         not reload a SPE symbol_ref into a lo_sum address.
442
443 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
444
445         PR debug/28063
446         * dwarf2out.c (prune_unused_types_prune): Move call to
447         prune_unused_types_update_strings to cover the parent DIE also.
448
449 2006-08-02  Jan Hubicka  <jh@suse.cz>
450
451         PR gcov/profile/28480
452         * tree-cfg.c (change_bb_for_stmt): New function.
453         (tree_merge_blocks, tree_split_blocks): Use it.
454
455 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
456
457         PR c++/28250
458         PR c++/28257
459         PR c++/28259
460         PR c++/28267
461         * toplev.c (compile_file): Return early on errorcount or sorrycount.
462         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
463         (cgraph_optimize): Likewise.
464
465 2006-08-01  Stuart Hastings  <stuart@apple.com>
466
467         * rtl.h (UINTVAL) New.
468         * config/rs6000/rs6000.c (SMALL_INT) Use it.
469         * testsuite/gcc.dg/20060801-1.c: New.
470         
471 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
472
473         PR debug/23336
474         * c-typeck.c (build_external_type): Mark used enum types.
475         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
476         cfun also.
477         (gen_subprogram_die): Whitespace fix.
478
479 2006-08-01  Jan Hubicka  <jh@suse.cz>
480
481         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
482         bitmap when not needed.
483         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
484         bitmaps.
485
486 2006-08-01  Dirk Mueller  <dmueller@suse.de>
487
488         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
489
490 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
491
492         * Makefile.in: Revert part of previous patch:
493         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
494         and REGS_H.
495
496 2006-07-30  Eric Christopher  <echristo@apple.com>
497
498         PR target/27543
499         * doc/extend.texi (i386 Variable Attributes): Add anchor.
500         (PowerPC Variable Attributes): New section.
501
502 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
503
504         PR target/28126 (partial fix)
505         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
506
507 2006-07-28  Jan Hubicka  <jh@suse.cz>
508
509         PR rtl-optimization/28071
510         * cfgrtl.c (rtl_delete_block): Free regsets.
511         * flow.c (allocate_bb_life_data): Re-use regsets if available.
512
513 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
514
515         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
516         and variables used in dependencies.
517
518 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
519
520         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
521         %fs for -mcmodel=kernel.
522         (stack_tls_protect_test_di): Likewise.
523
524 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
525
526         * Makefile.in: Use mkinstalldirs.
527
528 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
529
530         PR driver/28437
531         * opts-common.c (prune_options): Skip joined switches.
532
533 2006-07-27  Jan Hubicka  <jh@suse.cz>
534
535         PR rtl-optimization/28071
536         * cselib.c (cselib_process_insn): Don't remove useless values too
537         often for very large hashtables.
538
539 2006-07-27  Jan Hubicka  <jh@suse.cz>
540
541         PR rtl-optimization/28071
542         * global.c (greg_obstack): New obstack.
543         (allocate_bb_info): Use it.
544         (free_bb_info): Likewise.
545         (modify_reg_pav): Likewise.
546
547 2006-07-27  Roger Sayle  <roger@eyesopen.com>
548
549         * builtins.c (fold_fixed_mathfn): When long and long long are the
550         same size, canonicalize llceil*, llfloor*, llround* and llrint*
551         functions to their lceil*, lfloor*, lround* and lrint* forms.
552
553 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
554
555         PR gcc/28508
556         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
557         branch.
558         (rev_branch_insn): Likewise.
559
560 2006-07-27  Jan Hubicka  <jh@suse.cz>
561
562         PR rtl-optimization/28071
563         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
564         (reg_set_in_bb, max_reg_computed): New static variables.
565         (regmove_optimize): Free the new array.
566         (fixup_match_1): Update call of reg_is_remote_constant_p.
567
568 2006-07-26  Jan Hubicka  <jh@suse.cz>
569
570         PR tree-optimization/27882
571         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
572         and decl fields.
573         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
574         next pointer
575         (cgraph_analyze_compilation_unit): Likewise.
576         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
577         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
578         (cgraph_early_inlinine): Make order garbage collected.
579         * Makefile.in (gt-ipa-inline): New garbagecollected file.
580
581 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
582
583         * dbxout.c (output_types_sort): Add a comment.
584         (output_used_types): Free the VEC.
585
586 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
587
588         * function.c (reorder_fix_fragments): Delete.
589         (reorder_blocks): Don't call it.
590         (reorder_blocks_1): Put all subblocks under the origin block.
591
592 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
593
594         PR rtl-optimization/27907
595         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
596         FLOAT_TRUNCATE.
597
598 2006-07-25  Roger Sayle  <roger@eyesopen.com>
599
600         PR middle-end/28473
601         * convert.c (convert_to_integer): When transforming (T)foo(x) into
602         bar(x) check that bar's result type can represent all the values of T.
603
604 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
605
606         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
607
608 2006-07-25  Nick Clifton  <nickc@redhat.com>
609
610         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
611         size_lookup[] array.
612         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
613         (ggc_pch_count_object): Likewise.
614         (ggc_pch_alloc_object): Likewise.
615         (ggc_pch_write_object): Likewise.
616         (init_ggc): Do not attempt to initialize entries in the
617         size_lookup[] array for objects whose size is greater than than
618         the length of the array.
619
620 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
621
622         * dbxout.c (output_used_types_helper): Push queued types
623         on a VEC.
624         (output_types_sort): New.
625         (output_used_types): Collect used types on a VEC and sort them
626         before emission.
627
628 2006-07-24  Richard Guenther  <rguenther@suse.de>
629
630         PR middle-end/28463
631         * cgraph.c (cgraph_remove_node): Do not check if dumps
632         are enabled.
633         * cgraphunit.c (cgraph_optimize): Likewise.
634
635 2006-07-24  Jan Hubicka  <jh@suse.cz>
636
637         PR rtl-optimization/28071
638         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
639         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
640         splitting before first stmt.
641
642 2006-07-24  Jan Hubicka  <jh@suse.cz>
643
644         PR rtl-optimization/28071
645         * ipa-inline.c (update_caller_keys): Remove edges that
646         are no longer inline candidates.
647
648 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
649
650         PR debug/27473
651         * dbxout.c (output_used_types_helper, output_used_types): New.
652         (dbxout_symbol): Call output_used_types.
653
654 2006-07-23  Jan Hubicka  <jh@suse.cz>
655
656         PR c/25795
657         PR c++/27369
658         * cgraph.c (cgraph_varpool_nodes): Export.
659         (decide_is_variable_needed): Ignored "used" attribute in
660         unit-at-a-time mode.
661         * cgraph.h (cgraph_varpool_nodes): Declare.
662         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
663         unit-at-a-time mode.
664
665 2006-07-23  Roger Sayle  <roger@eyesopen.com>
666
667         PR target/28247
668         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
669         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
670         the __gthrw form of thr_keycreate.
671         (__gthread_key_delete): Silence the unused argument warning.
672
673 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
674
675         PR debug/25468
676         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
677         Cache the last found '\0' marker to avoid quadratic behavior.
678
679 2006-07-23  Jan Hubicka  <jh@suse.cz>
680
681         * i386.md (subsi_3_zext): Fix output template.
682
683 2006-07-21  Mike Stump  <mrs@apple.com>
684
685         * doc/invoke.texi (C++ Dialect Options): Note that
686         -fvisibility-inlines-hidden doesn't affect explicitly
687         instantiationed inline methods.
688
689 2006-07-20  Roger Sayle  <roger@eyesopen.com>
690
691         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
692         if the target assembler is GNU binutils' gas.
693         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
694         whether to pass GNU gas or native as command line options.
695
696 2006-07-20  Jason Merrill  <jason@redhat.com>
697
698         * tree.c (remove_attribute): New fn.
699         * tree.h: Declare it.
700
701 2006-07-20  Paul Brook  <paul@codesourcery.com>
702
703         PR 27363
704         * cse.c (cse_insn): Add destination addresses to hash table. Check if
705         they are invalidated by this instruction.
706
707 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
708
709         PR target/28427
710         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
711
712 2006-07-20  Eric Christopher  <echristo@apple.com>
713
714         PR target/26877
715         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
716
717 2006-07-19  Eric Christopher  <echristo@apple.com>
718
719         * config/t-slibgcc-darwin (stmp-lipo): Remove.
720         Rewrite dependencies for libgcc_s.1.dylib.
721
722 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
723
724         * except.c (duplicate_eh_regions_1): Clear next_peer.
725
726 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
727
728         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
729         -mlongcall does not guarantee all calls will be long.
730         * doc/extend.texi (long_call/short_call): Document that longcall
731         does not guarantee a long call will be used.
732         (longcall/shortcall): Likewise.
733
734 2006-07-18  Roger Sayle  <roger@eyesopen.com>
735
736         PR middle-end/28283
737         * expmed.c (expand_shift): Additionally check that the shift_cost
738         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
739         before implementing a LSHIFT_EXPR as a sequence of additions.
740         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
741         middle-end that DImode shifts need to be synthesized by expand.
742
743 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
744
745         PR 28410
746         * tree-ssa-operands.c (access_can_touch_variable): Update
747         comment.
748         Return true if ALIAS is .GLOBAL_VAR.
749
750 2006-07-18  David Daney  <ddaney@avtrex.com>
751
752         * gcc.c (display_help): Fix typo in help text.
753
754 2006-07-18  Olivier Hainque  <hainque@adacore.com>
755
756         * tree.h (categorize_ctor_elements): Adjust prototype and add
757         descriptive comment, both in accordance with the interface change
758         described below.
759         * varasm.c (constructor_static_from_elts_p): New function.
760         Whether a constructor node is a valid static constant initializer
761         if all its elements are.
762         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
763         * output.h: Declare it.
764         * expr.c (categorize_ctor_elements_1): Return whether the constructor
765         is a valid constant initializer instead of computing the number of
766         non-constant elements.  Use constructor_static_from_elts_p for this
767         purpose.  Replace the head comment with an indication that this is a
768         helper for categorize_ctor_elements.
769         (categorize_ctor_elements): Same interface change as for the _1
770         helper.  Former head comment from this helper moved here, adjusted to
771         account for the interface changes.
772         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
773         (all_zeros_p): Likewise.
774         * gimplify.c (gimplify_init_constructor): Decide whether we can make
775         static versions of the constructor from the categorize_ctor_elements
776         return value instead of the formerly computed number of non-constant
777         elements.
778
779 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
780
781         * configure: Regenerate.
782         * Makefile.in (build_libsubdir): New configure substitution
783         (build_libobjdir): New variable.
784         (BUILD_LIBIBERTY): Use it.
785
786 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
787
788         PR c/28286
789         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
790
791 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
792
793         PR c/26993
794         * c-common.c (handle_weakref_attribute): Ignore attribute in
795         the same conditions the alias attribute is ignored.
796
797 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
798
799         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
800         (dbxout_begin_prologue): Increment scope_labelno.
801
802 2006-07-17  Richard Henderson  <rth@redhat.com>
803
804         PR 27889
805         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
806         if needed.
807
808 2006-07-17  Roger Sayle  <roger@eyesopen.com>
809             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
810
811         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
812         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
813         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
814         functions such as sbrk, write, etc..  Add function prototypes.
815         Convert function declarations from K&R to ISO C.  Cast pointers
816         to "long" and "unsigned long" instead of "int" and "unsigned int".
817         Convert tokens following #endif into comments.
818
819 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
820
821         * invoke.texi: Remove mention of f77; Reformat table for
822         inline parameter options correctly; mention that -malign-double
823         is default on x86-64 targets.
824
825 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
826
827         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
828         (convert_affine_scev, chrec_convert_aggressive): Use
829         avoid_arithmetics_in_type_p.  Do not check for the subtypes
830         separately.
831
832 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
833
834         PR middle-end/28403
835         * optabs.c (expand_doubleword_shift): Wrap the call to
836         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
837
838 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
839
840         PR middle-end/28402
841         * optabs.c (expand_binop): Pass next_methods rather than methods
842         to expand_doubleword_shift.
843
844 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
845
846         PR other/28251
847         * tree.h (dump_addr): Declare.
848         * print-tree.c (dump_addr): New function.
849         (print_node_brief, print_node): Use it.
850         * print-rtl.c (print_rtx): Likewise.
851         * common.opt (-fdump-noaddr): New option.
852         * doc/invoke.texi (-fdump-noaddr): Document.
853         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
854         (ve_info_hash): Likewise.
855
856 2006-07-13  Andrew Haley  <aph@redhat.com>
857
858         PR tree-optimization/19505
859         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
860         edge leaving this block, make sure that the destination of this
861         block has only one predecessor.
862
863 2006-07-17  Richard Guenther  <rguenther@suse.de>
864
865         PR tree-optimization/28238
866         * tree-inline.c (copy_bb): Check if we produced valid
867         gimple copying and substituting a stmt.  If not, gimplify
868         it.
869
870 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
871
872         * optabs.c (maybe_encapsulate_block): New function extracted from...
873         (emit_libcall_block): ...here.  Invoke it on the block of insns to
874         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
875         (emit_no_conflict_block): Likewise.
876
877 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
878
879         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
880
881 2006-07-15  Roger Sayle  <roger@eyesopen.com>
882
883         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
884         a new NOP_EXPR case of the switch statement.
885
886 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
887
888         PR middle-end/28160
889         * stor-layout.c (place_field): Take the bit field with
890         an excessive size into account in the ms-bitfiled case.
891
892         PR middle-end/28161
893         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
894         the previous bit field.
895
896 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
897
898         PR target/27287
899         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
900
901 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
902
903         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
904         signal frames correctly even when the signal was installed with
905         sa_restorer set.
906
907 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
908
909         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
910         (dbxout_function_end): Use local label LFBB. Remove hook
911         DBX_OUTPUT_NFUN.
912         (dbxout_source_line): Use local label LFBB.
913         (dbxout_block): Likewise.
914         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
915         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
916         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
917         and DBX_OUTPUT_NFUN.
918
919 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
920
921         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
922
923 2006-07-13  Jan Hubicka  <jh@suse.cz>
924
925         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
926         align_variable.
927         * output.h (align_variable): Declare.
928         * varasm.c (align_variable): Export.
929         * value-prof.c (tree_value_profile_transformations): Recompute iterator
930         when basic block changed.
931
932 2006-07-13  Nick Clifton  <nickc@redhat.com>
933
934         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
935         walking the LOG_LINKS chain.
936
937 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
938
939         * doc/invoke.texi (C++ Dialect Options): Explain difference
940         between -fvisibility-inlines-hidden and setting hidden
941         visibility explicitly.
942
943 2006-07-12  Eric Christopher  <echristo@apple.com>
944
945         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
946         (stmp-lipo): Depend on libgcc.a.
947
948 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
949
950         * tree.c: Fix a comment typo.
951
952 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
953
954         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
955         dest.
956         (umulhisi3_r): Likewise.
957
958 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
959
960         PR libstdc++/27878
961         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
962         x < 19, vs wchar_t support.
963
964 2006-07-12  Nick Clifton  <nickc@redhat.com>
965
966         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
967         instead of -isa=sh4.
968
969 2006-07-12  Mike Stump  <mrs@apple.com>
970
971         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
972
973 2006-07-10  Eric Christopher  <echristo@apple.com>
974
975         * config/t-slibgcc-darwin: Rewrite.
976
977 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
978
979         PR bootstrap/20437
980         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
981         dependencies.
982
983 2006-07-08  Matthias Klose  <doko@debian.org>
984
985         * doc/sourcebuild.texi: Fix typo.
986
987 2006-07-07  Mike Stump  <mrs@apple.com>
988
989         * toplev.c (process_options): Don't give -ffunction-sections may
990         affect debugging warning for Mach-O.
991
992 2006-07-07  James E Wilson  <wilson@specifix.com>
993
994         * config/mips/mips.md (cpu): Add sb1a.
995         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
996         addition to sb1.  Adjust comments to clarify SB-1A differences from
997         SB-1.
998         (ir_sb1a_load): New.  Modify bypasses to use it.
999         (ir_sb1a_simple_alu): Likewise.
1000         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
1001         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
1002         (mips_issue_rate): Add PROCESSOR_SB1A.
1003         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
1004         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
1005         (TARGET_SB1): Add PROCESSOR_SB1A check.
1006         (TUNE_SB1): Likewise.
1007
1008         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
1009         * config/mips/mips.c (mips_store_data_bypass_p): New.
1010         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
1011         store_data_bypass_p.
1012
1013 2006-07-08  Paul Brook  <paul@codesourcery.com>
1014
1015         PR target/27991
1016         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
1017
1018 2006-07-07   Richard Guenther  <rguenther@suse.de>
1019
1020         PR middle-end/28268
1021         * tree.h (build_one_cst): Declare.
1022         * tree.c (build_one_cst): New function.
1023         * tree-ssa-math-opts.c (get_constant_one): Remove.
1024         (insert_reciprocals): Use build_one_cst.
1025         * fold-const.c (fold_plusminus_mult): Likewise.
1026
1027 2006-07-07  Roger Sayle  <roger@eyesopen.com>
1028
1029         * pointer-set.c (pointer_set_destroy): Correct whitespace.
1030         * cfgloopanal.c (dump_graph): Likewise.
1031         * dojump.c (discard_pending_stack_adjust): Likewise.
1032         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
1033         Likewise.
1034         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
1035         * function.c (finalize_block_changes): Likewise.
1036         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
1037         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
1038         * rtl.c (dump_rtx_statistics): Likewise.
1039         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
1040         Likewise.
1041         * varray.c (dump_varray_statistics): Likewise.
1042         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1043         decode_decimal64, encode_decimal128, decode_decimal128,
1044         decimal_real_to_decimal): Likewise.
1045
1046 2006-07-07  Richard Guenther  <rguenther@suse.de>
1047
1048         PR tree-optimization/28187
1049         * tree-vrp.c (vrp_operand_equal_p): New function.
1050         (vrp_bitmap_equal_p): Likewise.
1051         (update_value_range): Use them to compare old and new
1052         max and min values.
1053
1054 2006-07-06  Roger Sayle  <roger@eyesopen.com>
1055
1056         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
1057         a default case to switch statement to silence compiler warnings.
1058
1059 2006-07-06  Roger Sayle  <roger@eyesopen.com>
1060
1061         PR target/27968
1062         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
1063         the configured assembler supports the x87's ffreep mnemonic.
1064         * configure: Regenerate.
1065         * config.in: Regenerate.
1066
1067         * config/i386/i386.c (output_387_ffreep): New function.
1068         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
1069         (output_387_reg_move): Likewise.
1070
1071 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
1072
1073         Port to hosts whose 'sort' and 'tail' implementations
1074         treat operands with leading '+' as file names, as POSIX
1075         has required since 2001.  However, make sure the code still
1076         works on pre-POSIX hosts.
1077         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
1078         which says you should use "tail -c +N" rather than "tail +Nc".
1079         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
1080
1081 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
1082
1083         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
1084         argument name.
1085
1086 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
1087
1088         PR target/28150
1089         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
1090         PRE_{INC,DEC} of TFmode.
1091
1092 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
1093             Alan Modra  <amodra@bigpond.net.au>
1094
1095         PR target/28170
1096         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
1097         bounds. Simplify.
1098
1099 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1100
1101         PR target/28285
1102         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
1103         Remove duplicate gtu.
1104
1105 2006-07-05  Jason Merrill  <jason@redhat.com>
1106
1107         PR c++/13983
1108         PR c++/17519
1109         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
1110         * c-common.c (handle_packed_attribute): So don't copy it here.
1111         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
1112
1113 2006-07-05  Mike Stump  <mrs@apple.com>
1114
1115         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
1116
1117 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1118
1119         PR target/26146
1120         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
1121
1122 2006-07-05  Richard Guenther  <rguenther@suse.de>
1123
1124         PR target/28158
1125         * config/i386/i386.md (*negdf2_1): Restrict pattern to
1126         TARGET_SSE2 targets if using SSE math.
1127         (*absdf2_1): Likewise.
1128
1129 2006-07-05  Richard Guenther  <rguenther@suse.de>
1130
1131         PR tree-optimization/28162
1132         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
1133         make sure to convert the operands to the correct type.
1134
1135 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
1136
1137         PR tree-optimization/28218
1138
1139         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
1140         to calculate and free the dominator information.
1141
1142 2006-07-04  Peter O'Gorman  <peter@pogma.com>
1143
1144         * mklibgcc.in: chmod 644 before ranlib during install.
1145
1146 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
1147             J"orn Rennecke <joern.rennecke@st.com>
1148
1149         * configure.ac (.eh_frame data check): Use diff -b.
1150
1151 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1152
1153         PR bootstrap/18058
1154         * Makefile.in (BUILD_RTL): Add build/vec.o.
1155         (build/gencondmd.o): Filter out -fkeep-inline-functions.
1156         (build/genextract): Delete.
1157         (build/genautomata): Likewise.
1158
1159 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
1160
1161         PR target/28207
1162         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
1163         128-bit IBM long doubles for ABI_V4.
1164
1165 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1166
1167         * tree.c (range_in_array_bounds_p): New predicate.
1168         * tree.h (range_in_array_bounds_p): Declare it.
1169         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
1170         return a less conservative answer.
1171         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
1172         and flag 'is_group'.
1173         (IS_ELEMENT_FOR_GROUP): New macro.
1174         (FOR_EACH_ACTUAL_CHILD): Likewise.
1175         (next_child_for_group): New helper function.
1176         (can_completely_scalarize_p): Take into account groups.
1177         (sra_hash_tree): Handle RANGE_EXPR.
1178         (sra_elt_eq): Likewise.
1179         (lookup_element): Be prepared for handling groups.
1180         (is_valid_const_index): Delete.
1181         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
1182         instead of is_valid_const_index.
1183         <ARRAY_RANGE_REF>: New case.
1184         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
1185         is_valid_const_index.
1186         <ARRAY_RANGE_REF>: Do not unconditionally punt.
1187         (scan_dump): Dump info for groups too.
1188         (decide_instantiation_1): Likewise.
1189         (decide_block_copy): Assert that the element is not a group.
1190         Propagate decision to groups.
1191         (generate_one_element_ref): Handle RANGE_EXPR.
1192         (mark_no_warning): Iterate over actual childs.
1193         (generate_copy_inout): Likewise.
1194         (generate_element_copy): Likewise.
1195         (generate_element_zero): Likewise.
1196         (generate_element_init_1): Likewise.
1197         (dump_sra_elt_name): Handle RANGE_EXPR.
1198
1199 2006-07-03  Roger Sayle  <roger@eyesopen.com>
1200
1201         PR tree-optimization/26251
1202         * tree-ssa-threadupdate.c (redirection_block_p): New function.
1203         (thread_block): When optimizing for size refuse to thread jumps
1204         that would require duplication of blocks other than redirection
1205         blocks.
1206
1207 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
1208
1209         * configure.ac: Fix thinko in previous check-in.
1210         * configure: Regenerate.
1211
1212 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
1213
1214         PR other/27063
1215         * configure.ac (for lang...): Simplify nesting of conditionals.
1216         Test subdir_requires for non-enabled languages.  Move processing
1217         of lang_opt_files and lang_tree_fiels below that test.
1218         * configure: Regenerate.
1219         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
1220
1221 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
1222
1223         * doc/gcov.texi (Invoking Gcov): Add a missing word.
1224
1225 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
1226
1227         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
1228         comment typos.
1229
1230 2006-06-29  Jason Merrill  <jason@redhat.com>
1231
1232         PR c++/26905
1233         PR c++/26612
1234         PR c++/27000
1235         PR c++/26984
1236         PR c++/19134
1237         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
1238         * c-common.c (c_determine_visibility): Handle it here.
1239         * c-decl.c (finish_decl): Call c_determine_visibility for
1240         functions, too.
1241         * flags.h (enum symbol_visibility): Sort from most to least visibility.
1242         * tree.h: Likewise.
1243         * varasm.c (default_assemble_visibility): Likewise.
1244         * c-common.c (handle_visibility_attribute): Complain about trying
1245         to give visibility to an already defined class, or trying to change
1246         declared visibility. Always attach the attribute.
1247
1248         PR c++/26905
1249         PR c++/21675
1250         PR c++/17470
1251         * attribs.c (decl_attributes): Ignore type-in-place attributes
1252         once the type has been defined.
1253
1254 2006-06-29  Roger Sayle  <roger@eyesopen.com>
1255
1256         PR middle-end/27428
1257         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
1258         to indicate the cpplib has issued an error message for us.
1259
1260 2006-06-29  Asher Langton  <langton2@llnl.gov>
1261
1262         PR target/25765
1263         * config/i386/i386.c (ix86_output_function_epilogue): Don't
1264         insert a label at the end of an function under Mach-O.
1265
1266 2006-06-29  Eric Christopher  <echristo@apple.com>
1267             Evan Cheng  <evan.cheng@apple.com>
1268
1269         * predicates.md (vector_all_ones_operand): New.
1270         (nonimmediate_or_sse_const_operand): Ditto.
1271         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
1272         * config/i386/i386.c (standard_sse_constant_opcode): Define.
1273         (standard_sse_mode_p): Ditto.
1274         (standard_sse_constant_p): Add case for -1 vector.
1275         (ix86_expand_vector_move): Try to use.
1276         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
1277         Call standard_sse_constant_opcode.
1278         (*movv4sf_internal): Ditto.
1279         (*movv2df_internal): Ditto.
1280
1281 2006-06-29  Roger Sayle  <roger@eyesopen.com>
1282
1283         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
1284         of XEXP to extract the operands of a MATCH_CODE rtx.
1285
1286 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
1287
1288         * tree.c (tree_size): Do not waste tail padding in
1289         struct tree_string and make the size be the same as
1290         build_string will generate.
1291
1292 2006-06-28  Jason Merrill  <jason@redhat.com>
1293
1294         PR c++/27768
1295         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1296         may_aliases already in the tag's annotations to the bitmap.
1297
1298 2006-06-28  Roger Sayle  <roger@eyesopen.com>
1299
1300         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
1301
1302 2006-06-28  Roger Sayle  <roger@eyesopen.com>
1303
1304         * genpreds.c (generate_switch_p): New function.
1305         (add_mode_tests): Push the new mode test down inside an AND expr
1306         if this allows the switch-suitable MATCH_CODE to be near the root.
1307         (write_match_code_switch): New function to write a MATCH_CODE as
1308         a switch statement.
1309         (write_predicate_stmts): New function to write a predicate RTX
1310         expression as a sequence of statements.
1311         (write_one_predicate_function): Use write_predicate_stmts.
1312         (write_tm_constrs_h): Likewise.
1313
1314 2006-06-26  Fred Fish  <fnf@specifix.com>
1315
1316         * config/mips/t-sb1: New file.
1317         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
1318         tmake_file list.
1319
1320 2006-06-26  DJ Delorie  <dj@redhat.com>
1321
1322         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
1323
1324 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
1325             Jayant Sonar  <jayants@kpitcummins.com>
1326             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
1327
1328         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
1329         (subsi3, subsi3_1, subsi3_2): New.
1330         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
1331         * config/m32c/mov.md (SI mov peephole): New.
1332         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
1333         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
1334
1335 2006-06-26  Olivier Hainque  <hainque@adacore.com>
1336
1337         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
1338         a CALL_EXPR target function declaration.
1339
1340 2006-06-26  Richard Guenther  <rguenther@suse.de>
1341
1342         * tree.c (build_string): Do not waste tail padding in
1343         struct tree_string.
1344
1345 2006-06-26  Richard Guenther  <rguenther@suse.de>
1346
1347         * ggc-page.c (init_ggc): Add missing element to size_lookup
1348         table.
1349
1350         Revert
1351         2006-06-23  Richard Guenther  <rguenther@suse.de>
1352
1353         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
1354         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
1355         alignment requests instead.  Add verification code.
1356         Add struct tree_function_decl and struct tree_binfo size to
1357         extra_order_size_table.  Add missing element to size_lookup
1358         table.
1359
1360 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
1361
1362         PR middle-end/28151
1363         * fold-const.c (const_binop): Be prepared for self returning zero.
1364         Simplify code handling complex values.
1365
1366 2006-06-24  Olivier Hainque  <hainque@adacore.com>
1367
1368         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
1369         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
1370         aggregate types.
1371
1372 2006-06-24  Olivier Hainque  <hainque@adacore.com>
1373
1374         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
1375         ARRAY_REF, so have the callback called for the low bound expression.
1376
1377 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
1378
1379         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
1380         * c-typeck.c (c_common_type): Disallow operations on decimal float
1381         types and other float types.
1382         * convert.c (convert_to_real): Don't ignore conversions involving
1383         decimal float types.
1384
1385 2006-06-23  Olivier Hainque  <hainque@adacore.com>
1386
1387         * tree.c (max_int_size_in_bytes): New function, inspired from
1388         code in function.c:assign_temp.
1389         * tree.h (max_int_size_in_bytes): Declare.
1390         * function.c (assign_temp): Use it.
1391         * gimplify.c (create_tmp_var): Relax the assertions on the type
1392         properties, not mandating constant size any more.
1393         (force_constant_size): New static function.
1394         (gimple_add_tmp_var): Use it, forcing variable size to a
1395         constant upper bound if it is not constant on entry.
1396
1397 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
1398
1399         PR target/27789
1400         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
1401         for initialization and setting of one_only flag to ...
1402         (i386_pe_encode_section_info): ...here.
1403         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
1404         Recheck that the symbol has not been defined.
1405
1406 2006-06-23  Richard Guenther  <rguenther@suse.de>
1407
1408         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
1409         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
1410         alignment requests instead.  Add verification code.
1411         Add struct tree_function_decl and struct tree_binfo size to
1412         extra_order_size_table.  Add missing element to size_lookup
1413         table.
1414
1415 2006-06-22  Roger Sayle  <roger@eyesopen.com>
1416             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1417
1418         PR middle-end/28131
1419         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
1420         call to lang_hooks.types.type_for_mode returned NULL_TREE.
1421
1422 2006-06-23  Ben Elliston  <bje@au.ibm.com>
1423
1424         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
1425         negate dn -- manipulate it directly.
1426
1427 2006-06-22  Roger Sayle  <roger@eyesopen.com>
1428             Steven Bosscher  <stevenb.gcc@gmail.com>
1429
1430         PR target/27531
1431         * reload1.c (gen_reload): Call mark_jump_label on the new insns
1432         generated by gen_move_insn to add REG_LABEL notes if necessary.
1433
1434 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
1435
1436         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
1437         (leaf_entry): Remove use of MIN_ESA.
1438
1439 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
1440
1441         PR rtl-optimization/28121
1442         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
1443         the entry edge.
1444
1445 2006-06-21  DJ Delorie  <dj@redhat.com>
1446
1447         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
1448         (TN-16C-A156A/E).
1449         (mulhisi3_r): Likewise.
1450
1451 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
1452
1453         PR middle-end/28034
1454         * coverage.c (coverage_counter_alloc): Leave the index type
1455         unspecified.
1456         (coverage_counter_alloc): Use null arguments for operands 2 and 3
1457         of the ARRAY_REF.
1458
1459 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
1460
1461         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
1462         section from the "Options for Code Generation Conventions".
1463
1464 2006-06-21  Richard Henderson  <rth@redhat.com>
1465
1466         PR target/26347
1467         PR target/27082
1468         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
1469         symbols.
1470         (global_symbolic_operand): Allow weak symbols, even if local_p.
1471
1472 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
1473
1474         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
1475         (find_interesting_uses_address): Punt if above function returns true.
1476
1477 2006-06-21  Richard Guenther  <rguenther@suse.de>
1478
1479         * configure: Regenerated.
1480
1481 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
1482
1483         * config/mips/mips.c (function_arg): Where one part of a
1484         complex argument is in registers and the other part in the stack,
1485         return a REG not a PARALLEL.
1486
1487 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
1488
1489         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
1490         when cross-compiling.  Do not substitute libstdcxx_incdir.
1491         * configure: Regenerated.
1492
1493 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
1494
1495         * varasm.c (mergeable_string_section): Check for embedded NULs and
1496         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
1497         rather than TREE_STRING_LENGTH bytes.
1498
1499 2006-06-21  Richard Guenther  <rguenther@suse.de>
1500
1501         * ggc-page.c (extra_order_size_table): Add var_ann_d,
1502         tree_ssa_name, bitmap_element and phi_node with 4 arguments
1503         sizes.
1504
1505 2006-06-21  Richrad Guenther  <rguenther@suse.de>
1506
1507         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
1508         Limit iteration over the dominators.
1509
1510 2006-06-20  Roger Sayle  <roger@eyesopen.com>
1511
1512         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
1513         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
1514
1515 2006-06-20  Richard Guenther  <rguenther@suse.de>
1516         Michael Matz  <matz@suse.de>
1517
1518         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
1519         function.
1520         * alloc-pool.c (free_alloc_pool_if_empty): New function.
1521         * et-forest.h (et_free_pools): Prototype new function.
1522         * et-forest.c (et_free_tree_force): Free parent occurrence.
1523         (et_free_pools): New function.
1524         * dominance.c (free_dominance_info): Free et-forest alloc
1525         pools.
1526
1527 2006-06-20  Roger Sayle  <roger@eyesopen.com>
1528
1529         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
1530         integer modes, attempt to directly construct an integer constant.
1531
1532         * fold-const.c (native_encode_vector): Determine the size of each
1533         element from the vector type instead of the first vector element.
1534
1535         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
1536         if all of its elements/components are constant.
1537         (build_constructor_from_list): Likewise.
1538
1539 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
1540
1541         PR tree-optimization/27331
1542         * tree-data-ref.c (free_data_ref): New function.
1543         (create_data_ref): Fail if the data reference has unknown access
1544         function.
1545         (free_data_refs): Use free_data_ref.
1546
1547 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
1548
1549         PR middle-end/28075
1550         * tree-inline.c (setup_one_parameter): Strip useless
1551         type conversion before adding it to the IR.
1552         (declare_return_variable): Likewise.
1553
1554 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
1555
1556         PR c/27149
1557         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
1558
1559 2006-06-19  Mike Stump  <mrs@apple.com>
1560
1561         * tree.c (variably_modified_type_p): VM arguments don't make the
1562         type a VM type.
1563
1564 2006-06-19  Richard Guenther  <rguenther@suse.de>
1565
1566         * tree-ssa-pre.c (try_combine_conversion): Strip useless
1567         type conversions after folding.
1568
1569 2006-06-19  Richard Guenther  <rguenther@suse.de>
1570
1571         * ggc-page.c (extra_order_size_tab): Add entries with
1572         size of struct function and basic_block.
1573         (size_lookup): Extend to cover sizes up to 511.
1574         (ggc_alloc_stat): Adjust user.
1575         (ggc_pch_count_object): Likewise.
1576         (ggc_pch_alloc_object): Likewise.
1577         (ggc_pch_write_object): Likewise.
1578
1579 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
1580
1581         * tree-ssa-loop-niter.c (implies_ge_p): New function.
1582         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
1583         correctly.
1584
1585 2006-06-19  Denis Chertykov  <denisc@overta.ru>
1586
1587         * config/avr/libgcc.S : Correct my wrong previous commit.
1588
1589 2006-06-19  Roger Sayle  <roger@eyesopen.com>
1590
1591         PR target/27861
1592         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
1593         have stripped a SUBREG from the shift count, so we may need to
1594         convert_to_mode back to the type's mode before calling make_tree.
1595         Use new_amount instead of amount to avoid expanding a tree twice.
1596
1597 2006-06-19  Richard Guenther  <rguenther@suse.de>
1598
1599         PR middle-end/28045
1600         * fold-const.c (operand_equal_p): Check if the argument types
1601         have the same precision before stripping NOPs.
1602
1603 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
1604
1605         Fix PR tree-optimization/27341
1606         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
1607         statement we get.
1608         * tree-complex.c (pass_lower_complex): Update SMT usage.
1609
1610 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1611
1612         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
1613         Add a new alternative to the constraint strings. Add move of
1614         operand 1 to 3 to the splitter definition.
1615         ("doloop_si_long"): Second contraint alternative removed.
1616
1617 2006-06-08  Anatoly Sokolov <aesok@post.ru>
1618
1619         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
1620         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
1621         __AVR_HAVE_LPMX__.
1622         (AVR_HAVE_MOVW) Define.
1623         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
1624         (ASM_SPEC): Add avr25.
1625         (LINK_SPEC): Add avr25.
1626         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
1627         (base_arch_s): Add new member 'have_movw_lpmx'.
1628         (avr_arch_types): Init 'have_movw_lpmx'.
1629         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
1630         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
1631         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
1632         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
1633         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
1634         AVR_HAVE_MOVW.
1635         (avr_file_start): Do not output '.arh' derective.
1636         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
1637         (__do_copy_data): Use __AVR_HAVE_LPMX__.
1638         * config/avr/avr.md (mcu_enhanced): Delete.
1639         (mcu_have_movw): Define.
1640         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
1641         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
1642         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
1643         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
1644         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
1645         attiny861 and at86rf401 devices.
1646
1647 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
1648
1649         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
1650         of 4096.
1651
1652 2006-06-17  Karl Berry  <karl@gnu.org>
1653
1654         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
1655         doc/gccint.texi, doc/install.texi (@dircategory): Use
1656         "Software development" instead of "Programming", following
1657         the Free Software Directory.
1658
1659 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
1660
1661         * config/i386/i386.c (legitimate_tls_address)
1662         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
1663         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
1664         (*tls_dynamic_gnu2_combine_64): Likewise.
1665
1666 2006-06-16  Richard Guenther  <rguenther@suse.de>
1667
1668         PR middle-end/27116
1669         * fold-const.c (negate_expr_p): Do not introduce undefined
1670         overflow in negating INTEGER_CSTs.
1671         (fold_negate_expr): Rename from negate_expr.  Revert last
1672         change for folding BIT_NOT_EXPR.  Change semantics to
1673         return NULL_TREE for non-simplified negations.  Do not
1674         strip type conversions and unify type handling.
1675         (negate_expr): New function, wrap around fold_negate_expr
1676         but ensure building a tree always.  Strip type conversions
1677         here, fold to result type.
1678         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
1679
1680 2006-06-16  Roger Sayle  <roger@eyesopen.com>
1681
1682         PR middle-end/27802
1683         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
1684         that (would) return their results in stack registers.
1685
1686 2006-06-16  Michael Matz  <matz@suse.de>
1687         Richard Guenther  <rguenther@suse.de>
1688
1689         * fold-const.c (fold_truthop): Only return new tree node if
1690         we canonicalized something.
1691
1692 2006-06-16  Richard Guenther  <rguenther@suse.de>
1693
1694         * function.h (enum function_frequency): Move declaration
1695         out of struct function.
1696         (struct function): Move bool fields and the enum to the bitfield
1697         section.  Reorder elements to avoid padding.  Remove unused
1698         fields left over from the RTL inliner removal.
1699         * function.c (free_after_compilation): Do not zero removed fields.
1700         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
1701         (ipa-type-escape.o): Likewise.
1702
1703 2006-06-16  Richard Guenther  <rguenther@suse.de>
1704
1705         * cgraph.h (struct cgraph_local_info): Turn bool elements
1706         into a bitfield.
1707         (struct cgraph_node): Likewise.
1708         (struct cgraph_varpool_node): Likewise.
1709
1710 2006-06-15  Richard Guenther  <rguenther@suse.de>
1711
1712         * fold-const.c (fold_truth_not_expr): Rename from
1713         invert_truthvalue.  Give it fold_* semantics to avoid
1714         generating garbage.
1715         (invert_truthvalue): New function.  Wrapper around
1716         fold_truth_not_expr.
1717         (optimize_minmax_comparison): Avoid creating garbage.
1718         (fold_unary): Use fold_truth_not_expr for folding
1719         TRUTH_NOT_EXPR.
1720         (fold_ternary): Replace uses of invert_truthvalue with
1721         fold_truth_not_expr where applicable.
1722         * tree.h (fold_truth_not_expr): Prototype.
1723
1724 2006-06-16  Richard Guenther  <rguenther@suse.de>
1725
1726         PR tree-optimization/27781
1727         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
1728         * ipa-pure-const.c (target.h): Include.
1729         (analyze_function): Do not analyze functions that do not
1730         bind locally.
1731
1732 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
1733
1734         PR middle-end/27793
1735         * tree-dfa.c (referenced_vars_dup_list): Remove.
1736         (find_referenced_vars): Remove assert.
1737         (referenced_var_check_and_insert): Replace dup list with assert.
1738         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
1739         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
1740
1741 2006-06-15  Richard Guenther  <rguenther@suse.de>
1742
1743         * tree-ssa-structalias.c (alias_get_name): Avoid creating
1744         extra unused identifiers if not dumping.
1745         (create_variable_info_for): Likewise.
1746
1747 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
1748
1749         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
1750         (derive_constant_upper_bound): Derive more precise upper bound in
1751         common cases.  Return type changed to double_int.
1752         (record_estimate): Reflect the changed return type of
1753         derive_constant_upper_bound.
1754         * double-int.c (double_int_zext, double_int_sext): Fix.
1755
1756 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
1757
1758         * configure.ac (CFLAGS): Get them from the toplevel or from the
1759         configure invocation.
1760         * configure: Regenerate.
1761         * Makefile.in (CFLAGS): Substitute value provided by configure.
1762
1763 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
1764
1765         PR c++/26559
1766         * c-common.h (c_finish_omp_atomic): Adjust declaration.
1767         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
1768         rather than calling add_stmt on it.
1769         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
1770
1771 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
1772
1773         PR middle-end/27959
1774         * reload1.c (reload): Remove registers returned by update_eliminables
1775         from used_spill_regs.
1776
1777 2006-06-13  DJ Delorie  <dj@redhat.com>
1778
1779         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
1780
1781 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
1782
1783         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
1784         html__strip_dir, html__mkdir_p. Enhance install-html target.
1785         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
1786         * configure: Regenerate.
1787
1788 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
1789
1790         * fold-const.c (fold_cond_expr_with_comparison): Check for
1791         Objective-C++ as language in deciding COND_EXPR transformation.
1792
1793 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
1794
1795         PR target/28014:
1796         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
1797         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
1798         * config/sh/lib1funcs.h (SL, SL1): Define.
1799         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
1800         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
1801         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
1802         (OBJS_Os_4_200): New variable.
1803         ($(T)libgcc-Os-4-200.a): Use it.
1804         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
1805         when dividing 1 and/or by 0.
1806
1807 2006-06-13  Roger Sayle  <roger@eyesopen.com>
1808
1809         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
1810         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
1811         * configure: Regenerate.
1812
1813 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
1814
1815         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
1816         for real instruction.
1817
1818 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1819
1820         PR middle-end/26807
1821         * haifa-sched.c (check_cfg): Handle special case.
1822
1823 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1824
1825         PR debug/26754
1826         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
1827         Add debug_info parameter.  Chain the vars to the BLOCK instead
1828         of the BIND_EXPR if debug info are requested for them.
1829         (pop_gimplify_context): Adjust for above change.
1830         (gimple_add_tmp_var): Likewise.
1831         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
1832         Add bool parameter.
1833         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
1834         (convert_local_reference): Likewise.
1835         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
1836         (finalize_nesting_tree_1): Request that debug info be emitted
1837         for debug_var_chain.
1838
1839 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1840
1841         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
1842         for PR target/27863.
1843
1844 2006-06-13  Richard Guenther  <rguenther@suse.de>
1845
1846         PR middle-end/27536
1847         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
1848
1849 2006-06-13  Richard Guenther  <rguenther@suse.de>
1850
1851         PR tree-optimization/27830
1852         * tree-inline.c (copy_body_r): For copying the operand
1853         of an ADDR_EXPR make sure to fold &* afterwards.
1854
1855 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
1856
1857         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
1858         lvalues in the fb_none case with side-effects.
1859
1860 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
1861
1862         * tree-flow.h: Remove the prototype for
1863         compute_phi_arg_on_exit.
1864         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
1865         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
1866         Remove.
1867
1868 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
1869
1870         * builtins.c (expand_builtin_return_addr): Only use
1871         frame_pointer_rtx when count == 0 and we are expanding
1872         __builtin_return_address.
1873
1874 2006-06-12  Fred Fish  <fnf@specifix.com>
1875
1876         * config/mips/mips.c (mips_file_start): Create special section
1877         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
1878
1879 2006-06-11  Eric Christopher  <echristo@apple.com>
1880
1881         PR middle-end/27948
1882         * stor-layout.c (place_field): Remove check for
1883         remaining_in_alignment when aligning at the end of a run.
1884
1885 2006-06-11  Eric Christopher  <echristo@apple.com>
1886
1887         PR 27542
1888         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
1889         pragma.
1890
1891 2006-06-11  Roger Sayle  <roger@eyesopen.com>
1892
1893         PR target/27858
1894         Revert incorrect fix for PR target/27158
1895         2006-05-08  Roger Sayle  <roger@eyesopen.com>
1896         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
1897         of a reg_equiv_constant if the result is a legitimate constant.
1898
1899 2006-06-11  Roger Sayle  <roger@eyesopen.com>
1900
1901         PR target/27158
1902         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
1903         extract a CONST_VECTOR element and interpret it as an integer.
1904         (vspltis_constant): Use const_vector_elt_as_int instead of the
1905         macro CONST_VECTOR_ELT in order to handle FP vector modes.
1906         * config/rs6000/predicates.md (easy_vector_const): Consider
1907         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
1908
1909 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
1910
1911         PR middle-end/27942
1912         * stor-layout.c (update_alignment_for_field): Don't add extra
1913         alignment for packed non-bitfield fields in ms_bitfield_layout_p
1914         code.
1915
1916 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
1917
1918         * config/mips/t-rtems: Add EL/EB multilib variants.
1919
1920 2006-06-09  Mike Stump  <mrs@apple.com>
1921
1922         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
1923
1924 2006-06-09  David Daney  <ddaney@avtrex.com>
1925
1926         * doc/install.texi: Add binutils version recommendation for mips-*-*.
1927
1928 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1929
1930         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
1931
1932 2006-06-09  Richard Guenther  <rguenther@suse.de>
1933
1934         PR tree-optimization/26998
1935         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
1936         of signed types, only TYPE_MIN_VALUE is special, but for both,
1937         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
1938         in this case, as is -fwrapv.
1939
1940 2006-06-08  Mike Stump  <mrs@apple.com>
1941
1942         PR target/26427
1943         * config/darwin.c (darwin_asm_output_anchor): Disable
1944         -fsection-anchors on darwin for now.
1945         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
1946         * rs6000/rs6000.c (optimization_options): Likewise.
1947
1948 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1949
1950         PR target/27421
1951         * config/i386/i386.c (classify_argument): Skip fields with invalid
1952         types in unions.
1953
1954 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
1955
1956         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
1957         (cse_insn): Likewise for the stack_pointer_rtx.
1958
1959 2006-06-08  Roger Sayle  <roger@eyesopen.com>
1960
1961         * tree-ssa-dom.c (record_conditions): Only record "unordered"
1962         conditions from floating point comparisons.
1963
1964 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
1965
1966         PR middle-end/27733
1967         * expmed.c (struct alg_hash_entry): Fix type of field T
1968         to match synth_mult argument.
1969         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
1970
1971 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
1972
1973         PR target/27863
1974         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
1975         block boundaries.
1976
1977 2006-06-08  Richard Guenther  <rguenther@suse.de>
1978
1979         PR middle-end/27116
1980         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
1981         only, if overflow is defined and not trapping.
1982         (negate_expr): Likewise.
1983
1984 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
1985
1986         PR tree-optimization/27872
1987         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
1988         flag on the new exit edge of the unrolled loop.
1989
1990 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
1991
1992         PR rtl-optimization/26449
1993         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
1994
1995 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
1996
1997         PR middle-end/27793
1998         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
1999         referenced_variables with matching DECL_UID's.
2000         (find_referenced_vars): Make sure duplicate list is empty to start.
2001         (referenced_var_p): Remove.
2002         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
2003         Check if var is in the list, and add if needed.  Update the duplicate
2004         list if a different var is in the list with the same DECL_UID.
2005         (add_referenced_var): Call routine to check and insert.
2006         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
2007         * tree-flow.h (referenced_vars_dup_list): External declaration.
2008
2009 2006-06-07  Fred Fish  <fnf@specifix.com>
2010
2011         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
2012         into single entry.
2013
2014 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
2015
2016         PR target/27390
2017         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
2018         the imaginary and real parts of a clobbered register.
2019         Emit insn to set the imaginary part.
2020
2021 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
2022
2023         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
2024         in lieu of unwind-dw2-fde.c.
2025
2026 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2027
2028         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
2029
2030 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
2031
2032         PR target/27842
2033         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
2034         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
2035         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
2036         V4SImode temporaries and operations instead.
2037
2038 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
2039
2040         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
2041         dp-bit.c.
2042
2043 2006-06-06  Mike Stump  <mrs@apple.com>
2044
2045         * Makefile.in: Rename to htmldir to build_htmldir to avoid
2046         installing during build.
2047
2048 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2049
2050         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
2051         value to 0.
2052         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2053         * config/ia64/ia64.c (params.h): New header.
2054         (ia64_optimization_options): New function to adjust parameters.
2055         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
2056         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
2057         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
2058
2059 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
2060
2061         * stor-layout.c (debug_rli): Fix a typo in a debug message.
2062
2063 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
2064
2065         PR target/27051
2066         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
2067
2068 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
2069             Victor Kaplansky  <victork@il.ibm.com>
2070
2071         PR tree-optimization/26360
2072         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
2073         stmts.
2074
2075 2006-06-04  Roger Sayle  <roger@eyesopen.com>
2076             Andrew Pinski  <pinskia@physics.uc.edu>
2077
2078         PR middle-end/27382
2079         * c-common.c (c_common_truthvalue_conversion): Explicitly check
2080         for LABEL_DECL before calling DECL_WEAK.
2081
2082         PR c/27150
2083         * c-typeck.c (build_binary_op): Likewise, explicitly check for
2084         LABEL_DECL and PARM_DECL.
2085
2086 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
2087
2088         PR c/25161
2089         PR c/27020
2090         * c-decl.c (grokdeclarator): Disallow variably modified types at
2091         file scope.  Avoid marking shared array type of constant size as
2092         VLA.
2093
2094 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2095
2096         PR c++/27601
2097         * c-common.c (fold_offsetof_1): Handle static members.
2098
2099 2006-06-04 Eric Christopher <echristo@apple.com>
2100
2101         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
2102         (debug_rli): Output value for remaining_in_alignment.
2103         (update_alignment_for_field): Unconditionalize
2104         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
2105         extra alignment code.
2106         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
2107         ms_bitfield_layout_p code. Rewrite handling of structure fields.
2108         * tree.h (record_layout_info_s): Remove prev_packed.
2109         * doc/extend.texi (ms_struct): Add documentation of format.
2110
2111 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
2112
2113         * tree.h: Declare folding_initializer.
2114         * builtins.c (fold_builtin_constant_p): Give definite answer
2115         if folding inside an initializer.
2116         * fold-const.c: Define folding_initializer.
2117         (START_FOLD_INIT): Save and then set folding_initializer.
2118         (END_FOLD_INIT): Restore folding_initializer.
2119
2120 2006-06-04  Richard Guenther  <rguenther@suse.de>
2121
2122         PR tree-optimization/27039
2123         * fold-const.c (fold_comparison): Handle pointer comparison
2124         again for all comparison codes.  Compare offsets in signed
2125         size type.
2126         (fold_binary): Move code from here.
2127
2128 2006-06-03  Roger Sayle  <roger@eyesopen.com>
2129
2130         PR target/26223
2131         * config/i386/i386.c (construct_container): Split static issued_error
2132         flag into issued_sse_arg_error, issued_sse_ret_error and
2133         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
2134         requires the use of x87 registers and the user explicitly
2135         specified the -mno-80387 command line option.
2136
2137 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
2138
2139         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
2140         HAVE_DECL_SIGALTSTACK.
2141         (MC_FLD): New.
2142         (segv_handler): Use MC_FLD.
2143         * configure.ac: Check for a sigaltstack declaration.
2144         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
2145         * configure: Regenerate.
2146         * config.in: Regenerate.
2147
2148 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
2149
2150         PR other/27850
2151         * Makefile.in (stmp-fixinc): Fix typo.
2152
2153 2006-06-02  Roger Sayle  <roger@eyesopen.com>
2154
2155         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
2156         are type correct.  Clean-up.
2157         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
2158         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
2159
2160 2006-06-01  DJ Delorie  <dj@redhat.com>
2161
2162         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
2163         shift, as we've disabled the "switch" insn that needs it.
2164
2165 2006-06-01  Per Bothner  <bothner@bothner.com>
2166
2167         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
2168         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
2169         * c-ppoutput.c (cb_define): Don't increment line 0.
2170
2171 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
2172
2173         * doc/invoke.texi: Add cpu_type power6.
2174         * config.gcc: Add cpu_type power6.
2175         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
2176         to power5+ with Altivec.
2177         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
2178         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
2179
2180 2006-05-30  Anatoly Sokolov <aesok@post.ru>
2181
2182         * config/avr/avr.h (SET_ASM_OP): Define.
2183
2184 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
2185
2186         * config/bfin/bfin.c: Fix comment typos.
2187
2188 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
2189
2190         PR 25453
2191         * doc/install.texi: Document --enable-bootstrap and
2192         --disable-bootstrap.
2193
2194 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
2195
2196         * doc/install.texi: Document that InfoZIP can replace jar.
2197
2198 2006-05-31  Roger Sayle  <roger@eyesopen.com>
2199
2200         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
2201         isn't available, directly generate the simpler x87 patterns without
2202         the (use (const_int 0)).
2203         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
2204         implementation isn't available.
2205         (*negdf2_1): Likewise.
2206         (*negxf2_1): XF mode negation is always done using the x87.
2207         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
2208
2209 2006-05-31  Roger Sayle  <roger@eyesopen.com>
2210
2211         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
2212         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
2213         cabs(z).
2214         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
2215
2216 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
2217
2218         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
2219         * config/bfin/bfin.c (basic-block.h): Include.
2220         (struct machine_function): New.
2221         (bfin_init_machine_status): New.
2222         (override_options): Initialize init_machine_status.
2223         (bfin_hardware_loop): New.
2224         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
2225         (DEF_VEC_P (loop_info)): New.
2226         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
2227         (struct loop_info): New.
2228         (loop_info): New typedef.
2229         (struct loop_work): New.
2230         (loop_work): New typedef.
2231         (DEF_VEC_O (loop_work)): New.
2232         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
2233         (bfin_dump_loops): New.
2234         (bfin_bb_in_loop): New.
2235         (bfin_scan_loop): New.
2236         (bfin_optimize_loop): New.
2237         (bfin_reorg_loops): New.
2238         (bfin_reorg): Use bfin_reorg_loops.
2239         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
2240         loop registers.
2241         (I_REGNO_P): Simplify.
2242         (DP_REGNO_P, DPREG_P): New macros.
2243         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
2244         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
2245         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
2246         Add LT_REGS, LC_REGS, LB_REGS.
2247         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
2248         'l' for LB_REGS.
2249         (REGNO_REG_CLASS): Deal with loop registers.
2250         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
2251         letters.
2252         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
2253         New constants for loop registers.
2254         (UNSPEC_LSETUP_END): New.
2255         (seq_insns): New define_attr. Set it for appropriate insns.
2256         (movsi_insn): Add alternatives for move from/to
2257         loop count registers.
2258         (doloop_end): New define_expand.
2259         (loop_end): New define_insn.
2260         (define_split for bad doloop_end): New.
2261         (lsetup_with_autoinit): New define_insn.
2262         (lsetup_without_autoinit): New define_insn.
2263         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
2264         * config/bfin/predicates.md (lc_register_operand): New.
2265         (lt_register_operand): New.
2266         (lb_register_operand): New.
2267         (nondp_register_operand): New.
2268         (nondp_reg_or_memory_operand): New.
2269         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
2270
2271 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
2272
2273         * config/bfin/bfin.c (bfin_delegitimize_address): New.
2274         (TARGET_DELEGITIMIZE_ADDRESS): Define.
2275
2276 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
2277
2278         * Makefile.in (CATALOGS): Add po/ prefix.
2279         * configure: Regenerated.
2280
2281 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
2282
2283         PR target/27829
2284         * arm.c (arm_print_operand case 'S'): Validate that the operand is
2285         a shift operand before calling shift_op.  Avoid redundant call of
2286         shift_op.
2287
2288 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
2289             DJ Delorie  <dj@redhat.com>
2290
2291         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
2292         we're inserting is a singlt-bit constant.
2293
2294 2006-05-30  Roger Sayle  <roger@eyesopen.com>
2295
2296         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
2297         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
2298
2299 2006-05-30  Roger Sayle  <roger@eyesopen.com>
2300
2301         PR tree-optimization/23452
2302         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
2303         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
2304         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
2305         complex values and with -ffast-math for FP complex values.
2306
2307 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
2308
2309         * c-common.h: Remove the prototype for yyparse.
2310         * rtl.h: Remove the prototype for init_loop.
2311
2312 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2313
2314         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
2315         calling recog.
2316
2317 2006-05-30  Roger Sayle  <roger@eyesopen.com>
2318
2319         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
2320         and rotate cases.
2321         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
2322         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
2323
2324 2006-05-30  Dirk Mueller  <dmueller@suse.de>
2325
2326         PR c/27273
2327         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
2328         for CONSTANT_CLASS_P expresisons.
2329
2330 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2331
2332         PR c/27718
2333         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
2334
2335 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
2336
2337         PR tree-optimization/27779
2338         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
2339         initial_condition instead of CHREC_LEFT.
2340
2341 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2342
2343         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
2344         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
2345         Make prototypes ISO C90.
2346
2347 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
2348             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
2349
2350         * see.c (see_analyze_one_def): Correct check.
2351         (see_get_extension_data): Check if extension is parallel.
2352         (see_get_extension_reg): Likewise.
2353
2354 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
2355
2356         PR target/27790
2357         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
2358         into register for (code == GTU).
2359
2360 2006-05-29  Roger Sayle  <roger@eyesopen.com>
2361
2362         PR tree-optimization/24964
2363         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
2364         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
2365         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
2366         abs(x)*abs(x) as x*x for scalar floating point modes.
2367
2368 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
2369
2370         PR middle-end/27745
2371         * lambda-code.c (perfect_nestify): Don't copy statements
2372         in the inner loop: move them to the inner loop header.
2373
2374 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
2375
2376         PR 26237
2377         * c-tree.texi: Document OpenMP directives and clauses.
2378
2379 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
2380
2381         * varasm.c (globalize_decl): Fix indentation.
2382
2383 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
2384
2385         PR 26242
2386         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
2387         pass_fre, pass_store_ccp, pass_copy_prop,
2388         pass_store_copy_prop, pass_merge_phi, pass_nrv,
2389         pass_return_slot, pass_object_size, pass_lim,
2390         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
2391         pass_loop_prefetch and pass_stdarg.
2392
2393 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2394
2395         * config/bfin/bfin.opt (mfdpic): New option.
2396         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
2397         (EXTRA_MULTILIB_PARTS): Likewise.
2398         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
2399         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
2400         multilib.
2401         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
2402         (CRT_CALL_STATIC_FUNCTION): New.
2403         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
2404         -shared.
2405         (CRT_CALL_STATIC_FUNCTION): New.
2406         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
2407         FD-PIC moves.
2408         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
2409         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
2410         (initialize_trampoline): Changed to handle FD-PIC code generation.
2411         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
2412         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
2413         (override_options): Disallow -mid-shared-library -mfdpic combination.
2414         Can't do unaligned ops if FD-PIC.
2415         Turn off flag_pic if trying to generate non-id-shared-library
2416         non-fdpic code, since it's not supported.
2417         (bfin_assemble_integer): New function.
2418         (TARGET_ASM_INTEGER): Define.
2419         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
2420         __BFIN_FDPIC__.
2421         * config/bfin/crtn.s: Restore them.
2422         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
2423         if TARGET_FDPIC.
2424         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
2425         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
2426         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
2427         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
2428         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
2429         call-used.
2430         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
2431         FDPIC_REGS and FDPIC_FPTR_REGS.
2432         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
2433         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
2434         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
2435         (load_funcdescsi): New pattern.
2436         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
2437         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
2438         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
2439
2440 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
2441
2442         * gcse.c, rtlanal.c: Remove obsolete comments associated with
2443         loop.c.
2444
2445         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
2446
2447         * tree-flow.h: Remove the prototype for add_type_alias.
2448         * tree-ssa-alias.c (add_type_alias): Remove.
2449
2450 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2451
2452         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
2453         config/fr30/fr30.md, config/i386/i386-interix.h,
2454         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
2455         config/sh/superh64.h, config/v850/v850.c, df-core.c,
2456         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
2457         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
2458         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
2459         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
2460         Follow spelling conventions.
2461         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
2462         Follow spelling conventions.
2463
2464 2006-05-27  Richard Guenther  <rguenther@suse.de>
2465
2466         PR middle-end/27773
2467         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
2468         to produce a constant of value 1 of generic type.
2469
2470 2006-05-27  Dirk Mueller  <dmueller@suse.de>
2471
2472         * cgraphunit.c (decide_is_function_needed): Fix wrong
2473         PR reference.
2474
2475 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
2476
2477         PR rtl-optimization/27661
2478         * reload.c (find_reloads): When reloading a VOIDmode constant
2479         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
2480         use Pmode as mode of the reload register.
2481
2482 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
2483
2484         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
2485         is enabled at -O and above.
2486
2487 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
2488
2489         PR target/27571
2490         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
2491         table data.
2492
2493 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
2494
2495         PR c++/20103
2496         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
2497         for anonymous variables explicitly declared by front ends.
2498
2499 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2500
2501         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
2502         (struct alias_info): Add new field ref_all_symbol_mem_tag.
2503         * tree-ssa-alias.c (compute_may_aliases): If the program contains
2504         ref-all pointers, run a finalization pass for them.
2505         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
2506         (finalize_ref_all_pointers): New function.
2507         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
2508         regular pointer type to a ref-all pointer type.
2509         (get_tmt_for): Return the special memory tag for ref-all pointers.
2510
2511 2006-05-25  Richard Guenther  <rguenther@suse.de>
2512
2513         PR middle-end/27743
2514         * fold-const.c (fold_binary): Do not look at the stripped
2515         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
2516
2517 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2518
2519         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
2520         for LT and GT if the computed range is effectively empty.
2521
2522 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2523
2524         PR target/27627
2525         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
2526         mips_quad_format formats instead of ieee_single_format,
2527         ieee_double_format and ieee_quad_format formats, respectively.
2528
2529 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
2530
2531         PR tree-optimization/27639
2532         PR tree-optimization/26719
2533         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
2534         call to scev_probably_wraps_p.
2535         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
2536         used_in_pointer_arithmetic_p, convert_step): Removed.
2537         (nowrap_type_p): New function.
2538         (scev_probably_wraps_p): Rewritten.
2539         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
2540         chrec_convert if chrec_convert_aggressive might have been used.
2541         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
2542         scev_direction): New functions.
2543         (chrec_convert): Changed to a wrapper over chrec_convert_1.
2544         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
2545         instead of convert_step.
2546         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
2547         (convert_step): Declaration removed.
2548         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
2549
2550 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
2551
2552         * df-core.c: Added to header comments.
2553         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
2554         df_ur_bb_info, df_urec_bb_info): Added comments.
2555         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
2556         urec, ri problems): Fixed header comments.
2557         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
2558         code from df_rd_transfer_function.
2559
2560 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
2561
2562         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
2563         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
2564         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
2565
2566 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
2567
2568         * expr.c (undefined_operand_subword_p): New.
2569         (emit_move_multi_word): Do not generate move from undefined bits
2570         of a paradoxical subreg.
2571
2572 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
2573
2574         PR rtl-optimization/27736
2575         * combine.c (replaced_rhs_value): New variable.
2576         (combine_instructions): Set it.
2577         (distribute_notes): When distributing a note in replaced_rhs_insn,
2578         check whether the value was used in replaced_rhs_value.
2579
2580 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
2581
2582         PR c++/26757
2583         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
2584         add_referenced_var instead of add_referenced_tmp_var.
2585         * tree-complex.c (create_one_component_var): Use add_referenced_var.
2586         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
2587         add_referenced_var.
2588         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
2589         tree_optimize_tail_calls_1): Use add_referenced_var.
2590         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
2591         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
2592         Use add_referenced_var.
2593         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
2594         * gimplify.c (force_gimple_operand): Use add_referenced_var.
2595         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
2596         Use add_referenced_var.
2597         * tree-dfa.c (struct walk_state): Remove.
2598         (find_referenced_vars): Remove walk state and vars_found hash table.
2599         (make_rename_temp): Use add_referenced_var.
2600         (find_vars_r): Pass less parameters to add_referenced_var.
2601         (referenced_var_p): New.  Is var in referenced_var hash table.
2602         (referenced_var_insert): Assert var isn't already in hash table.
2603         (add_referenced_var): Don't need walk_state parameter.  Add var if it
2604         isn't already in the hash table.
2605         (add_referenced_tmp_var): Remove.
2606         (find_new_referenced_vars_1): Use add_referenced_var.
2607         * tree-ssa-pre.c (create_expression_by_pieces,
2608         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
2609         Use add_referenced_var.
2610         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
2611         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
2612         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
2613         add_referenced_var.
2614         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
2615         vect_create_data_ref_ptr, vect_create_destination_var,
2616         vect_init_vector, vect_build_loop_niters,
2617         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
2618         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
2619         Use add_referenced_var.
2620         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
2621         * tree-flow.h (add_referenced_tmp_var): Remove prototype
2622         (add_referenced_var): Add prototype.
2623         * tree-ssa-structalias.c (get_constraint_for,
2624         intra_create_variable_infos): Use add_referenced_var.
2625
2626 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
2627
2628         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
2629         big-endian paradoxical subregs.
2630         * var-tracking.c (struct micro_operation_def): Document that,
2631         for modify micro operations, insn is the subsequent instruction.
2632         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
2633         (var_reg_set, var_mem_set): ... new functions.
2634         (add_stores): Record subsequent insn.
2635         (compute_bb_dataflow): Use new functions for MO_USE.
2636         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
2637         notes after the insn, and modify notes before the insn known
2638         to be the subsequent one.
2639         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
2640
2641 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
2642
2643         PR target/27696
2644         * config/i386/i386.c (ix86_expand_builtin): Use
2645         gen_sse3_monitor64 for TARGET_64BIT.
2646
2647 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
2648
2649         PR rtl-optimization/26375
2650         PR rtl-optimization/26855
2651         * df-problems (df_ru_bb_local_compute_process_def): Removed update
2652         to gen set.
2653         (df_ru_bb_local_compute): Reversed statements and removed bogus
2654         comment explaining why they should be in wrong order.
2655         (df_ru_dump, df_rd_dump): Enhanced debug info.
2656         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
2657         debug info.
2658         * ddg.c (add_deps_for_def): Converted use of reaching defs to
2659         reaching uses and fixed space problem.
2660
2661 2006-05-23  Jan Hubicka  <jh@suse.cz>
2662
2663         * cgraphunit.c (decide_is_function_needed): Also nested functions
2664         and functions declared inline can be optimized out at -O0.
2665
2666 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
2667
2668         * doc/install.texi (Configuration): Remove reference to CrossGCC
2669         FAQ which was gone.
2670         (Building): Ditto.
2671
2672 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
2673
2674         PR target/27266
2675         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
2676         ix86_compare_emitted is non-NULL.
2677
2678 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2679
2680         PR c++/27451
2681         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
2682         clobbers.
2683
2684 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
2685
2686         PR rtl-optimization/25514
2687         * combine.c (replaced_rhs_insn): New variable.
2688         (combine_instructions): Set replaced_rhs_insn when trying to replace
2689         a SET_SRC with a REG_EQUAL note.
2690         (distribute_notes): Use replaced_rhs_insn when determining the live
2691         range of a REG_DEAD register.
2692
2693 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
2694             Anatoly Sokolov <aesok@post.ru>
2695
2696         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
2697         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
2698         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
2699         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
2700         atmega3290, atmega649, atmega6490, atmega406, atmega640,
2701         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
2702         at90usb647, at90usb1286 and at90usb1287 devices.
2703         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2704         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2705
2706 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
2707
2708         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
2709
2710 2006-05-22  Richard Guenther  <rguenther@suse.de>
2711
2712         Revert
2713         2006-01-31  Richard Guenther  <rguenther@suse.de>
2714         Paolo Bonzini  <bonzini@gnu.org>
2715
2716         * doc/install.texi (--disable-libgcc-math): Document.
2717
2718 2006-05-22  Richard Guenther  <rguenther@suse.de>
2719
2720         Revert
2721         2006-01-31  Richard Guenther  <rguenther@suse.de>
2722
2723         * doc/invoke.texi (-msselibm): Document.
2724         * target.h (expand_library_builtin): New target hook.
2725         * builtins.c (expand_builtin): Use expand_library_builtin.
2726         (default_expand_library_builtin): New function.
2727         * gcc.c (LINK_GCC_MATH_SPEC): Define.
2728         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
2729         (link_gcc_math_spec): Declare.
2730         (static_specs): Add link_gcc_math_spec.
2731         * expr.h (default_expand_library_builtin): Declare.
2732         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
2733         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
2734         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
2735         * config/i386/i386.opt (msselibm): New target option.
2736         * config/i386/i386.c (ix86_builtin_function_variants): New array.
2737         (ix86_init_sse_abi_builtins): New function.
2738         (ix86_expand_library_builtin): Likewise.
2739         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
2740         (override_options): Handle error conditions wrt -msselibm.
2741         (ix86_builtins): Add function codes for SSE2 ABI builtins.
2742         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
2743         * doc/extend.texi (__builtin_sse2_*): Document new target specific
2744         builtins.
2745
2746 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2747
2748         PR c/27420
2749         * c-common.c (self_promoting_args_p): Skip erroneous args.
2750
2751         PR c/26818
2752         * c-decl.c (finish_struct): Skip erroneous fields.
2753
2754 2006-05-22  Nick Clifton  <nickc@redhat.com>
2755
2756         * config/cris/cris.opt (march): Remove VarExists attribute.
2757         (max-stackframe=): Likewise.
2758
2759 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
2760
2761         * doc/rtl.texi: Fix a typo.
2762         * see.c: Fix comment typos.
2763
2764         * tree-ssa-structalias.h (alias_info): Remove num_references.
2765
2766 2006-05-21  Mike Stump  <mrs@apple.com>
2767
2768         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
2769         (BAD2): Add.
2770         (darwin_pragma_options): Use BAD instead.
2771         (darwin_pragma_unused): Likewise.
2772         (darwin_pragma_ms_struct): Likewise.
2773
2774 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
2775
2776         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
2777
2778 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
2779
2780         PR rtl-optimization/27671
2781         * simplify-rtx.c (simplify_relational_operation_1): Fix
2782         simplifications of (eq/ne (xor x y) y) and
2783         (eq/ne (xor x y) x).
2784
2785         PR tree-optimization/26622.
2786         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
2787         on arg1.
2788
2789 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
2790
2791         * tree-cfg.c: Prune whitespace.
2792         (debug_tree_cfg): Point to correct header containing the
2793         TDF_* defines.
2794
2795 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
2796
2797         PR middle-end/25776
2798         * cgraphunit.c (verify_cgraph_node): Typo in error message.
2799
2800 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2801
2802         PR middle-end/25776
2803         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
2804         or sorry count is non zero.
2805
2806 2006-05-20  Andreas Schwab  <schwab@suse.de>
2807
2808         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
2809
2810 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
2811             Kenneth Zadeck <zadeck@naturalbridge.com>
2812
2813         PR rtl-optimization/26855
2814
2815         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
2816         multiword refs.
2817         (df_scan_alloc): Added code to properly handle multiword hard
2818         registers and add all_blocks parameter.
2819         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
2820         code to properly handle multiword hard registers.
2821         (df_rescan_blocks): Added code to remove deleted blocks from
2822         bitmap.
2823         (df_ref_create_structure, df_ref_record): Added code to properly
2824         handle subregs.
2825         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
2826         and set DF_REF_PARTIAL.
2827         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
2828         (df_uses_record): Added DF_REF_PARTIAL for subreg.
2829         (df_scan_add_problem): Added flags parameter.
2830         (df_ref_create_structure): Changed switching structure.
2831         (df_bb_refs_record): Fixed case where duplicate artificial refs
2832         were created.  Changed location of flags.
2833         (df_record_entry_block_defs): Added code to make stack pointer
2834         live in entry block.  Refined cases where frame pointer is needed.
2835         Changed location of flags.
2836         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
2837         (df_set_state): Removed function.
2838         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
2839         df_insn_create_insn_record, df_insn_refs_delete,
2840         df_ref_create_structure): Formatting changes.
2841         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
2842         df_delete_basic_block): New function.
2843         (df_init): Changed location of flags.
2844         (df_add_problem): Added flags parameter and the way flags are
2845         processed.
2846         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
2847         debug_df_chain): Improved debugging output.
2848         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
2849         (df_refs_chain_dump): Removed df parameter.
2850         (df_iterative_dataflow): Added consistency check.
2851         (df_prune_to_subcfg): Made public.
2852         (df_analyze_problem): Added blocks_to_init parameter and made
2853         public.
2854         (df_ref_record, df_bb_refs_record, df_mark_reg,
2855          df_record_exit_block_uses): Whitespace changes.
2856         (df_dump): Whitespace changes.
2857         * df.h: Some reordering to remove forward references.
2858         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
2859         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
2860         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
2861         (dataflow.flags): New field.
2862         (df.flag): Deleted field.
2863         (df_alloc_function): Added additional bitmap parameter.
2864         (df_dependent_problem_function): New type.
2865         (df_problem.changeable_flags): New field.
2866         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
2867         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
2868         (df_mw_hardreg): New struct.
2869         (DF_INSN_UID_MWS): New macro.
2870         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
2871         parameter.
2872         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
2873         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
2874         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
2875         (df_set_state): Removed function.
2876         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
2877         * df-problems.c (df_chain_dump): Removed df parameter.
2878         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
2879         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
2880         parameter.
2881         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
2882         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
2883         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
2884         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
2885         DF_REF_MUST_CLOBBER cases.
2886         (df_ru_bb_local_compute_process_def,
2887         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
2888         df_lr_bb_local_compute, df_ur_bb_local_compute,
2889         df_chain_create_bb): Made subreg aware.
2890         (df_ru_bb_local_compute, df_rd_bb_local_compute,
2891         df_lr_bb_local_compute, df_lr_bb_local_compute,
2892         df_chain_create_bb): Cleanup to use proper macros.
2893         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
2894         code to fixup bitvectors.
2895         (df_ri_alloc): Cleared lifetime.
2896         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
2897         df_create_unused_note): New function.
2898         (df_ri_bb_compute, df_ri_compute): Added code to create/update
2899         REG_DEAD and REG_UNUSED notes as well as register information.
2900         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
2901         df_chains_dump): Fixed crash if problem was never run.
2902         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
2903         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
2904         df_ri_add_problem): Processes flags in uniform manner.
2905         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
2906         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
2907         df_rd_dump, df_urec_free_bb_info): Formatting changes.
2908         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
2909         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
2910         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
2911         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
2912         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
2913         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
2914         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
2915         * see.c (see_initialize_data): Ditto.
2916         * final.c (rest_of_clean_state) Added regstack_completed.
2917         * rtl.h (regstack_completed): Ditto.
2918         * reg-stack.c (regstack_completed): Ditto.
2919
2920 2006-05-19  Mike Stump  <mrs@apple.com>
2921
2922         * c-tree.h (default_conversion): Remove.
2923         * c-common.h (default_conversion): Add.
2924
2925 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
2926
2927         * tree-vrp.c (valid_value_p): New function.
2928         (adjust_range_with_scev): Fail if the value of bound is not
2929         simple.
2930
2931 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
2932
2933         * config/mips/linux-unwind.h: Include <asm/unistd.h>
2934         (mips_fallback_frame_state): Use syscall numbers to determine
2935         the appropriate li instruction for the current ABI.  Only use
2936         __NR_sigreturn for o32.
2937
2938 2006-05-19  Nicolas Setton  <setton@adacore.com>
2939
2940         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
2941         * langhooks.c (lhd_dwarf_name): New function.
2942         * langhooks-def.h (lhd_dwarf_name): Declare.
2943         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
2944         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
2945         * ada/misc.c (gnat_dwarf_name): New function.
2946         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
2947
2948 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
2949
2950         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
2951         libgcc2.h.
2952         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
2953         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
2954         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
2955         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
2956         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
2957         determine the size of Wtype, etc.
2958         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
2959         (swfloatfuncs): New variable.
2960         (dwfloatfuncs): Likewise.
2961         (lib2funcs): Remove floating-point conversion functions from
2962         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
2963         the set of conversion routines needed.  Allow entries to specify
2964         an object name, filename and word size.  Update users accordingly.
2965         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
2966         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
2967
2968         Revert:
2969
2970         2006-02-08  Roger Sayle  <roger@eyesopen.com>
2971
2972         PR target/22209
2973         * config/fixtfdi.c: New libgcc source file.
2974         * config/fixunstfdi.c: New source file.
2975         * config/floatditf.c: New source file.
2976         * config/floatunditf.c: New souce file.
2977         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
2978         files above instead of config/mips/_tilib.c.
2979         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
2980
2981 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2982
2983         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
2984         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
2985
2986 2006-05-18  Mike Stump  <mrs@apple.com>
2987
2988         Fix up vla, vm and [*] sematics.
2989
2990         PR c/18740
2991         PR c/7948
2992         PR c/25802
2993         PR c/27673
2994         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
2995         (c_vla_unspec_p): Add.
2996         (c_vla_type_p): Add.
2997         * c-decl.c (struct c_scope): Add had_vla_unspec.
2998         (build_array_declarator): Add support for [*].
2999         (grokdeclarator): Likewise.
3000         (grokparms): Likewise.
3001         (get_parm_info): Likewise.
3002         * c-objc-common.c (c_vla_unspec_p): Likewise.
3003         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
3004         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
3005         typeof when argument is a variably modified type not inside sizeof or alignof.
3006         (c_parser_direct_declarator_inner): Propagate errors.
3007         (c_parser_sizeof_expression): Add support for [*].
3008         (c_parser_parms_declarator): Initialize had_vla_unspec.
3009         (c_parser_parms_list_declarator): Likewise.
3010         * c-typeck.c (c_vla_type_p): Add.
3011         (composite_type): Add support for vla compositing.
3012         (comptypes_internal): Add support for vla compatibility.
3013         (c_expr_sizeof_expr): Evaluate vla arguments.
3014         * tree.c (variably_modified_type_p): Update comment for [*].
3015
3016 2006-05-18  Michael Matz  <matz@suse.de>
3017
3018         PR target/27599
3019         * config.host: Make assignments to host_xmake_file cumulative.
3020         * config.host (*-darwin*): Test $host, not $target.
3021
3022 2006-05-12  Stuart Hastings  <stuart@apple.com>
3023
3024         * config/i386/i386.opt (-mstackrealign): New flag.
3025         * config/i386/i386.c (force_align_arg_pointer): New attribute.
3026         (ix86_handle_cconv_attribute): Emit error when
3027         force_align_arg_pointer attribute collides with too many regparms.
3028         (ix86_function_regparm): Limit regparms when used with
3029         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
3030         Support stack-realigning prologue in non-main functions.  Emit
3031         warning for nested functions under -mstackrealign, emit error for
3032         nested functions with force_align_arg_pointer attribute.
3033         * doc/extend.texi (force_align_arg_pointer): Document it.
3034         * doc/invoke.texi (-mstackrealign): Document it.
3035
3036 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
3037
3038         PR rtl-optimization/27477
3039         * combine.c (try_combine): Don't split a parallel consisting
3040         of two sets into two individual sets if both sets reference
3041         cc0.
3042
3043 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3044
3045         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
3046         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
3047
3048         * doc/options.texi (VarExists): Updated.
3049
3050 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3051
3052         * unwind-dw2.c: Add declarations for uw_update_context and
3053         uw_frame_state_for.
3054         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
3055         detected, advance frame state and context once to skip over stub.
3056
3057 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
3058
3059         PR middle-end/20256
3060         PR middle-end/26435
3061         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
3062         Call rewrite_into_loop_closed_ssa only when something changed.
3063         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
3064         * lambda-code.c (can_convert_to_perfect_nest): Declared.
3065         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
3066         Test for perfect_nest_p here.  Fix formating.
3067         (replace_uses_equiv_to_x_with_y): Fix formating.
3068         (stmt_uses_op): Removed.
3069         (can_convert_to_perfect_nest): Removed loopivs parameter.
3070         Complete the test by checking the scalar dependences.
3071         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
3072         Fix formating.
3073
3074 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3075
3076         PR bootstrap/22541
3077         From Dan Kegel <dank@kegel.com>:
3078         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
3079
3080 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3081
3082         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
3083         if the element type is variably modified without recursing.
3084
3085 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
3086
3087         PR middle-end/27332
3088         * tree-loop-linear.c (try_interchange_loops): Test for
3089         no data dependences.
3090
3091 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
3092
3093         PR tree-optimization/27548
3094         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
3095         range of ssa names that appear on abnormal edges.
3096         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
3097         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
3098
3099 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3100
3101         PR middle-end/27620
3102         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
3103
3104 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
3105
3106         PR middle-end/27415
3107         * tree.h (OMP_PARALLEL_COMBINED): Define.
3108         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
3109         (new_omp_context): Add is_combined_parallel argument.
3110         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
3111         new_omp_context caller.
3112         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3113         Adjust gimplify_scan_omp_clauses callers.
3114         (omp_is_private): Issue errors if iteration variable is firstprivate
3115         or reduction in the current context.
3116         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
3117         on combined parallel workshare constructs.
3118
3119 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
3120
3121         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
3122         (gcc-options.o): New rule.
3123
3124         * optc-gen.awk: Protect variables for gcc-options.o with
3125         #ifdef GCC_DRIVER/#endif.
3126
3127 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
3128
3129         Fix PR tree-optimization/27373
3130         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
3131          (forward_propagate_addr_expr): Update call.
3132
3133 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
3134
3135         * doc/options.texi: Move the Negative option.
3136
3137 2006-05-16  Richard Guenther  <rguenther@suse.de>
3138
3139         PR tree-optimization/22303
3140         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
3141         from STRING_CSTs.
3142         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
3143         ccp_fold did not simplify the statement.
3144
3145 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
3146
3147         PR driver/26885
3148         * Makefile.in (GCC_OBJS): New.
3149         (OBJS-common): Add opts-common.o.
3150         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
3151         (cpp$(exeext)): Likewise.
3152         (gcc.o): Also depend on opts.h.
3153         (opts-common.o): New.
3154
3155         * common.opt (gcoff): Add Negative(gdwarf-2).
3156         (gdwarf-2): Add Negative(gstabs).
3157         (gstabs): Add Negative(gstabs+).
3158         (gstabs+): Add Negative(gvms).
3159         (gvms): Add Negative(gxcoff).
3160         (gxcoff): Add Negative(gxcoff+).
3161         (gxcoff+): Add Negative(gcoff).
3162         * config/i386/i386.opt (m32): Add Negative(m64).
3163         (m64): Add Negative(m32).
3164
3165         * doc/options.texi: Document the Negative option.
3166
3167         * gcc.c: Include "opts.h".
3168         (main): Call prune_options after expandargv.
3169
3170         * optc-gen.awk: Generate common declarations for all flag
3171         variables in options.c. Output the neg_index field.
3172
3173         * opts.c (find_opt): Moved to ...
3174         * opts-common.c: Here. New file.
3175
3176         * opts.h (cl_option): Add a neg_index field.
3177         (find_opt): New.
3178         (prune_options): Likewise.
3179
3180 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
3181
3182         PR middle-end/27573
3183         * omp-low.c (expand_omp_parallel): Don't assert
3184         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
3185         instead search for it.
3186
3187         PR c/27499
3188         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
3189         is signed.
3190
3191 2006-05-16  Andreas Schwab  <schwab@suse.de>
3192
3193         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
3194         defmac.
3195
3196 2006-05-15  Roger Sayle  <roger@eyesopen.com>
3197
3198         PR target/26600
3199         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
3200         integer constants other than zero are only legitimate on TARGET_64BIT.
3201         <CONST_VECTOR> Only zero vectors are legitimate.
3202         (ix86_cannot_force_const_mem): Integral and vector constants can
3203         always be put in the constant pool.
3204
3205 2006-05-16  DJ Delorie  <dj@redhat.com>
3206
3207         * crtstuff.c (__dso_handle): Set section from
3208         TARGET_LBIGCC_SDATA_SECTION if defined.
3209         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
3210         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
3211
3212 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
3213
3214         PR target/27599
3215         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
3216         host_xmake_file.
3217
3218 2006-05-16  Ben Elliston  <bje@au.ibm.com>
3219
3220         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
3221
3222 2006-05-15  Per Bothner  <per@bothner.com>
3223
3224         * tree.c: (last_annotated_node): Use source_locus typedef.
3225         This permits bootstrapping with --enable-mapped-location.
3226
3227 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
3228
3229         PR tree-optimization/26830
3230         * tree-into-ssa.c (struct ssa_name_info): Add age field.
3231         (info_for_ssa_name, current_info_for_ssa_name_age,
3232         blocks_to_update): New variables.
3233         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
3234         (clear_ssa_name_info, initialize_flags_in_bb,
3235         mark_block_for_update): New functions.
3236         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
3237         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
3238         prepare_def_site_for): Use mark_block_for_update.
3239         (mark_def_interesting): Assert that the processed block is marked in
3240         blocks_to_update.  Do not take blocks argument.
3241         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
3242         argument.
3243         (rewrite_update_init_block, rewrite_update_stmt): Only process
3244         blocks with statements to rewrite.
3245         (delete_update_ssa): Do not clear SSA_NAME_AUX.
3246         (update_ssa): Initialize and free blocks_to_update.  Do not
3247         clear flags on statements.  Do not use blocks bitmap.
3248         * tree.h (SSA_NAME_AUX): Removed.
3249         (struct tree_ssa_name): Removed aux field.
3250         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
3251
3252 2006-05-15  Richard Guenther  <rguenther@suse.de>
3253
3254         PR tree-optimization/27603
3255         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
3256         Do computations in original type.
3257
3258 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
3259
3260         * see.c: Code style changes such as redundant paranthesis,
3261         redundant intialization of local variables etc.
3262         (see_main): Declared now as static.
3263         * doc/invoke.texi: Update that -fsee is not enabled by
3264         default at -O3.
3265
3266 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
3267
3268         * omp-low.c (check_omp_nesting_restrictions): New function.
3269         (scan_omp_1): Call it.
3270
3271         PR middle-end/27416
3272         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
3273         construct, return *VAR.
3274
3275 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
3276
3277         PR rtl-optimization/27406
3278         * bt-load.c (migrate_btr_def): Skip the block having abnormal
3279         edges.
3280
3281 2006-05-14  Roger Sayle  <roger@eyesopen.com>
3282
3283         PR rtl-optimization/27538
3284         * combine.c (expand_compound_operation): Call gen_lowpart
3285         before calling simplify_shift_const.
3286
3287 2006-05-14  Roger Sayle  <roger@eyesopen.com>
3288
3289         PR rtl-optimization/22563
3290         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
3291         a fixed width bitfield, always force the intermediates into psuedos.
3292
3293 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
3294
3295         PR 27501
3296         * mkconfig.sh: Use operator = instead of == for test.
3297
3298 2006-05-13  Nick Clifton  <nickc@redhat.com>
3299
3300         * dwarf2out.c (dbx_reg_number): Check return value from
3301         LEAF_REG_REMAP and only use it if it is valid.
3302         (multiple_reg_loc_descriptor): Likewise.
3303
3304 2006-05-13  Richard Guenther  <rguenther@suse.de>
3305
3306         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
3307         host_xmake_file.
3308
3309 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
3310
3311         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
3312         information attached to non-INSNs such as NOTEs.
3313         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
3314
3315 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3316
3317         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
3318         On contraint.
3319         * config/s390/s390.md: Adjust comment describing On constraint.
3320
3321 2006-05-11  Jan Hubicka  <jh@suse.cz>
3322
3323         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
3324         to be output at -O0.
3325
3326 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3327
3328         PR middle-end/27384
3329         * fold-const.c (size_binop): Move sanity check for arguments to
3330         the beginning of the function.
3331
3332         PR middle-end/27488
3333         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
3334         expression.
3335
3336 2006-05-11  Richard Guenther  <rguenther@suse.de>
3337
3338         PR middle-end/27529
3339         * fold-const.c (fold_unary): Handle intermediate conversion
3340         to a pointer type like intermediate conversion to an integer
3341         type in folding of (T1)(T2)var to var.
3342         Match the code to the comment in the final conversion for
3343         (T1)(T2)var to (T1)var regarding to type precision.  Rather
3344         than disallow T1 being of pointer type, assert that both T1
3345         and var are of pointer type or not.  Make sure not to fall
3346         over the frontends lazyness wrt array to pointer decay though.
3347
3348 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
3349
3350         * arm.c (arm_struct_value_rtx): Delete.
3351         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
3352         (arm_init_cumulative_args): Always initialize nregs to zero.
3353
3354 2006-05-10  Richard Guenther  <rguenther@suse.de>
3355
3356         PR tree-optimization/27532
3357         * tree-object-size.c (plus_expr_object_size): Fix typo.
3358
3359 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
3360
3361         PR target/24949
3362         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
3363         ashrdi_const, ashrdi3): Use a scratch register.
3364
3365 2006-05-10  Richard Guenther  <rguenther@suse.de>
3366
3367         PR tree-optimization/27302
3368         * fold-const.c (operand_equal_p): For two comparisons,
3369         try comparison of one comparison code swapped if that yields
3370         the same code.
3371
3372 2006-05-10  Ben Elliston  <bje@au.ibm.com>
3373
3374         * tree-pretty-print.c (pretty_print_string): No need to handle
3375         '\0' as a special character.
3376
3377         * tree.h: Include "hashtab.h".
3378         (iterative_hash_expr): Use hashval_t in its prototype.
3379         * Makefile.in (TREE_H): Add $(HASHTAB_H).
3380
3381 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
3382
3383         PR bootstrap/26872
3384         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
3385         (hppa*64*-*-hpux11*): Ditto.
3386         (hppa[12]*-*-hpux11*): Ditto.
3387
3388 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
3389
3390         PR target/26545
3391         * config/rs6000/aix41.h (TARGET_64BIT): Define.
3392
3393 2006-05-09  Michael Matz  <matz@suse.de>
3394
3395         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
3396         host_extra_gcc_objs and host_xmake_file.
3397         (<*-*-linux*>): Don't overwrite host_xmake_file.
3398         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
3399         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
3400         (host_detect_local_cpu): Declare.
3401         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
3402         * config/i386/i386.c (override_options): Handle -mtune=native
3403         as -mtune=generic.
3404         * config/i386/x-i386: New file.
3405         * config/i386/driver-i386.c: New file.
3406         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
3407         cpu-type "native".
3408
3409 2006-05-09  Dirk Mueller  <dmueller@suse.de>
3410         Richard Guenther  <rguenther@suse.de>
3411
3412         PR middle-end/27498
3413         * fold-const.c (fold_read_from_constant_string): Relax check
3414         for matching types to matching modes.
3415
3416 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
3417
3418         PR rtl-optimization/27335
3419         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
3420         loops.
3421
3422 2006-05-08  Chao-ying Fu  <fu@mips.com>
3423             Richard Sandiford  <richard@codesourcery.com>
3424
3425         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
3426         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
3427         * config/mips/mips.md (UNSPEC_SCC): New constant.
3428         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
3429         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
3430         (mips_emit_compare): Use it.
3431         (mips_expand_vcondv2sf): New function.
3432
3433 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
3434
3435         Fix PR tree-optimization/27093
3436         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
3437         renaming when they become not-used_alone.
3438
3439 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3440
3441         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
3442         relocation and relocation stubs.
3443
3444 2006-05-08  Eric Christopher  <echristo@apple.com>
3445
3446         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
3447         section for ppc.
3448
3449 2006-05-08  Jan Hubicka  <jh@suse.cz>
3450
3451         PR middle-end/24561
3452         * cgraphunit.c (decide_is_function_needed): When not optimizing even
3453         unused static functions are needed.
3454
3455 2006-05-08  Roger Sayle  <roger@eyesopen.com>
3456
3457         PR target/27158
3458         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
3459         of a reg_equiv_constant if the result is a legitimate constant.
3460
3461 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
3462
3463         PR target/27277
3464         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
3465         standard 80387 constants, raise the cost to prevent
3466         compress_float_constant() to generate load from memory.
3467
3468 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
3469
3470         * config/arm/constraints.md (c): Fix a typo.
3471
3472         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
3473         typos.
3474
3475 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
3476
3477         PR target/24879
3478         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
3479         inline function.
3480         (_mm_mwait): Likewise.
3481
3482         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
3483         "mwait".
3484         (sse3_monitor): Make it 32bit only.
3485         (sse3_monitor64): New. 64bit monitor.
3486
3487 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3488
3489         PR target/27421
3490         * config/i386/i386.c (classify_argument): Skip fields with invalid
3491         types.
3492
3493 2006-05-07  Richard Guenther  <rguenther@suse.de>
3494
3495         PR tree-optimization/27409
3496         * tree-ssa-structalias.c (get_constraint_for_component_ref):
3497         Do not try to find zero-sized subvars.
3498
3499 2006-05-07  Richard Guenther  <rguenther@suse.de>
3500
3501         PR tree-optimization/27136
3502         * tree-ssa-loop-niter.c (get_val_for): Correct function
3503         comment, assert requirements.
3504         (loop_niter_by_eval): Stop processing if the iterated
3505         value did not simplify.
3506
3507 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
3508
3509         * opts.c (flag_see): remove&n