OSDN Git Service

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