OSDN Git Service

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