OSDN Git Service

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