OSDN Git Service

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