OSDN Git Service

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