OSDN Git Service

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