OSDN Git Service

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