OSDN Git Service

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