OSDN Git Service

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