OSDN Git Service

2006-09-07 Eric Christopher <echristo@apple.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-09-07  Eric Christopher  <echristo@apple.com>
2
3         * config/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Update
4         comment.
5         * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE):
6         Redefine.
7
8 2006-09-07  Geoffrey Keating  <geoffk@apple.com>
9
10         * dwarf2out.c: Remove strange characters from comment above
11         dwarf2out_frame_debug_expr.
12
13 2006-09-07  Eric Christopher  <echristo@apple.com>
14
15         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Move from here...
16         * config/darwin.h: ... to here.
17
18 2006-09-07  H.J. Lu  <hongjiu.lu@intel.com>
19
20         * config/i386/i386.c (x86_partial_flag_reg_stall): New.
21
22         * config/i386/i386.h (x86_partial_flag_reg_stall): New.
23         (TARGET_PARTIAL_FLAG_REG_STALL): New.
24
25         * config/i386/i386.md (*ashldi3_cmp_rex64): Disabled for
26         TARGET_PARTIAL_FLAG_REG_STALL.
27         (*ashldi3_cconly_rex64): Likewise.
28         (*ashlsi3_cmp): Likewise.
29         (*ashlsi3_cconly): Likewise.
30         (*ashlsi3_cmp_zext): Likewise.
31         (*ashlhi3_cmp): Likewise.
32         (*ashlhi3_cconly): Likewise.
33         (*ashlqi3_cmp): Likewise.
34         (*ashlqi3_cconly): Likewise.
35         (*ashrdi3_cmp_rex64): Likewise.
36         (*ashrdi3_cconly_rex64): Likewise.
37         (*ashrsi3_cmp): Likewise.
38         (*ashrsi3_cconly): Likewise.
39         (*ashrsi3_cmp_zext): Likewise.
40         (*ashrhi3_cmp): Likewise.
41         (*ashrhi3_cconly): Likewise.
42         (*ashrqi3_cmp): Likewise.
43         (*ashrqi3_cconly): Likewise.
44         (*lshrdi3_cmp_rex64): Likewise.
45         (*lshrdi3_cconly_rex64): Likewise.
46         (*lshrsi3_cmp): Likewise.
47         (*lshrsi3_cconly): Likewise.
48         (*lshrsi3_cmp_zext): Likewise.
49         (*lshrhi3_cmp): Likewise.
50         (*lshrhi3_cconly): Likewise.
51         (*lshrqi2_cmp): Likewise.
52         (*lshrqi2_cconly): Likewise.
53
54 2006-09-07 Uros Bizjak <uros@kss-loka.si>
55
56         PR target/28946
57         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
58         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
59         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
60         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
61         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
62         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
63         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
64         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
65         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
66         implement only CC setting effects of shift instructions.
67
68 2006-09-07  Martin Michlmayr  <tbm@cyrius.com>
69
70         * doc/contrib.texi: Add myself.
71
72 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
73
74         PR middle-end/28862
75         * stor-layout.c (relayout_decl): Don't zero the alignment if it
76         was set by the user.
77
78 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
79
80         PR target/27117
81         * config/sh/sh.md (divsi_inv_qitable, divsi_inv_hitable): New patterns.
82         (divsi_inv_m1): Use them.
83         (UNSPEC_DIV_INV_TABLE): New constant.
84
85 2006-09-06  James E Wilson  <wilson@specifix.com>
86
87         PR rtl-opt/27883
88         * flow.c (update_life_info): If UPDATE_LIFE_LOCAL and PROP_DEATH_NOTES
89         then call count_or_remove_death_notes.
90
91 2006-09-06  Jason Merrill  <jason@redhat.com>
92
93         PR c++/27371
94         * tree-inline.c (copy_result_decl_to_var): New fn.
95         (declare_return_variable): Use it.  Call declare_inline_vars here.
96         (expand_call_inline): Not here.
97
98 2006-09-06  Diego Novillo  <dnovillo@redhat.com>
99
100         * doc/contrib.texi: Update my entry.
101
102 2006-09-06  Nick Clifton  <nickc@redhat.com>
103
104         * config/frv/frv.h (EXTRA_MEMORY_CONSTRAINT): Define.
105
106 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
107
108         PR tree-opt/28937
109         * tree-flow.h (tree_ssa_unswitch_loops): Return unsigned int.
110         (canonicalize_induction_variables): Likewise.
111         (tree_unroll_loops_completely): Likewise.
112         (tree_ssa_prefetch_arrays): Likewise.
113         (remove_empty_loops): Likewise.
114         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Return
115         TODO_cleanup_cfg instead of directly calling
116         cleanup_tree_cfg_loop.
117         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
118         Likewise.
119         (tree_unroll_loops_completely): Likewise.
120         (remove_empty_loops): Likewise.
121         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
122         * tree-ssa-loop.c (tree_ssa_loop_unswitch): Use the return value
123         of tree_ssa_unswitch_loops.
124         (tree_ssa_loop_ivcanon): Use the return value of
125         canonicalize_induction_variables.
126         (tree_ssa_empty_loop): Use the return value of
127         remove_empty_loops.
128         (tree_complete_unroll): Use the return value of
129         tree_unroll_loops_completely.
130         (tree_ssa_loop_prefetch): Use the return value of
131         tree_ssa_prefetch_arrays.
132         * passes.c (execute_todo): Before Cleanup CFG, set
133         updating_used_alone and after cleanup CFG, call
134         recalculate_used_alone.
135
136 2006-09-05  Andrew Pinski  <pinskia@physics.uc.edu>
137
138         PR tree-opt/28952
139         * tree-vect-transform.c (vectorizable_condition): Move the check
140         for the type after the check for simple condition.
141
142 2006-09-05  J"orn Rennecke  <joern.rennecke@st.com>
143             Kaz Kojima  <kkojima@gcc.gnu.org>
144
145         PR target/28764
146         * mode-switching.c (optimize_mode_switching): Make the destination
147         block of an abnormal edge have no anticipatable mode.  Don't
148         insert mode switching code at the end of the source block of
149         an abnormal edge.
150
151 2006-09-05  Paolo Bonzini  <bonzini@gnu.org>
152
153         PR rtl-optimization/26847
154         * simplify-rtx.c (struct simplify_plus_minus_op_data): Remove ix.
155         (simplify_plus_minus_op_data_cmp): For REGs, break ties on the regno.
156         (simplify_plus_minus): Count n_constants while filling ops.  Replace
157         qsort with insertion sort.  Before going through the array to simplify
158         pairs, sort it.  Delay early exit until after the first sort, exiting
159         only if no swaps occurred.  Simplify pairs in reversed order, without
160         special-casing the first iteration.  Pack ops after simplifying pairs.
161
162 2006-09-05  Anatoly Sokolov <aesok@post.ru>
163
164         * config/avr/avr.c (avr_mcu_types): Add support for at90pwm1 device.
165         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
166         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
167         (avr_rtx_costs): Mark 'outer_code' argument with ATTRIBUTE_UNUSED.
168
169 2006-09-05  Richard Guenther  <rguenther@suse.de>
170
171         PR tree-optimization/28900
172         * tree-if-conv.c (find_phi_replacement_condition): Gimplify
173         compound conditional before creating COND_EXPR condition.
174
175 2006-09-05  Richard Guenther  <rguenther@suse.de>
176
177         PR tree-optimization/28905
178         * tree-vrp.c (fix_equivalence_set): Manually implement
179         !value_ranges_intersect_p to also handle symbolic ranges.
180
181 2006-09-05  Richard Guenther  <rguenther@suse.de>
182
183         PR middle-end/28935
184         * tree-ssa-ccp.c (fold_stmt_r): Make sure to fold the condition
185         of a COND_EXPR.
186
187 2006-09-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
188
189         PR rtl-optimization/27616
190         * cse.c (table_size): New static variable.
191         (new_basic_block): Initialize it to 0.
192         (remove_from_table): Decrement it.
193         (insert): Increment it.
194         (fold_rtx_mem_1): New function, renamed from fold_rtx_mem.
195         (fold_rtx_mem): Enforce a cap on the recursion depth.  Call
196         fold_rtx_mem_1 if under the cap.
197         (fold_rtx) <RTX_COMM_ARITH>: In the associative case, delay a little
198         the lookup of the equivalent expression and test for equality of the
199         first operand of the equivalent expression before in turn looking up
200         an equivalent constant for the second operand.
201
202 2006-09-02  Geoffrey Keating  <geoffk@apple.com>
203
204         Revert this change:
205         2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
206         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
207         pointer, instead of assuming it is possible to derive the
208         correct args size from a call insn.
209
210 2006-09-02  Jakub Jelinek  <jakub@redhat.com>
211
212         PR middle-end/27567
213         * builtins.c (fold_builtin_memcpy, fold_builtin_memmove): Remove.
214         (fold_builtin_mempcpy): Rename to...
215         (fold_builtin_memory_op): ... this.  Optimize one element copy
216         into an assignment.
217         (fold_builtin_memset, fold_builtin_bzero, fold_builtin_bcopy): New
218         functions.
219         (expand_builtin_strcpy, expand_builtin_strncpy): Handle COMPOUND_EXPR.
220         (expand_builtin_memcpy, expand_builtin_mempcpy,
221         expand_builtin_memmove): Likewise.  Use fold_builtin_memory_op.
222         (fold_builtin_1): Handle BUILT_IN_MEMSET, BUILT_IN_BZERO and
223         BUILT_IN_BCOPY.  Use fold_builtin_memory_op for
224         BUILT_IN_MEM{CPY,PCPY,MOVE}.
225
226 2006-09-01  DJ Delorie  <dj@redhat.com>
227
228         * config/m32c/cond.md (cbranch<mode>4): Defer splitting until after reload.
229         (stzx_16): Likewise.
230         ("stzx_24_<mode>"): Likewise.
231         ("stzx_reversed_<mode>"): Likewise, and make mode-specific.
232         ("cmp<mode>_op"): New.
233         (cmp<mode>): Change to expander; just save operands.
234         (b<code>_op): New.
235         (b<code>): Change to expander, emit compare here.
236         (s<code>_op): Change to use split and expander.
237         (s<code>_24_op): Likewise.
238         (s<code>_<mode>): New.
239         (s<code>_<mode>_24): New.
240         (movqicc_<code>_<mode): New.
241         (movhicc_<code>_<mode>): New.
242         (s<code>): New.
243         (s<code>_24): New.
244         * config/m32c/m32c.c (compare_op0, compare_op1): New.
245         (m32c_pend_compare): New.
246         (m32c_unpend_compare): New.
247         (m32c_expand_scc): New.
248         (m32c_expand_movcc): Emit the compare also.
249         * config/m32c/predicates.md (mra_nopp_operand): New.
250
251 2006-09-01  J"orn Rennecke  <joern.rennecke@st.com>
252         Richard Guenther  <rguenther@suse.de>
253         Adam Nemet  <anemet@caviumnetworks.com>
254
255         PR middle-end/27226
256         * builtins.c (get_pointer_alignment): Handle more forms
257         of base addresses that can be used to derive more precise
258         information about alignment.
259
260 2006-09-01  Jason Merrill  <jason@redhat.com>
261
262         PR c++/28899
263         * gimplify.c (gimplify_modify_expr_rhs) [BIND_EXPR]: Handle
264         want_value.
265
266         * gimplify.c (voidify_wrapper_expr): Handle null type.
267
268 2006-09-01  Josh Conner  <jconner@apple.com>
269
270         PR c++/25505
271         * tree-nrv.c (dest_safe_for_nrv_p): New function.
272         (execute_return_slot_opt): Use it.
273
274 2006-08-31  Josh Conner  <jconner@apple.com>
275
276         PR c++/25505
277         * tree-gimple.c (is_gimple_mem_rhs): Recognize functions
278         returning aggregates.
279
280 2006-08-31  Zdenek Dvorak <dvorakz@suse.cz>
281
282         PR tree-optimization/28839
283         * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in
284         blocks in that phi arguments appear.
285
286 2006-08-31  Roger Sayle  <roger@eyesopen.com>
287
288         PR other/22313
289         * dwarf2out.c (add_fde_cfi): Use a set_loc if the current label is
290         NULL, otherwise use an advance_loc4 to adjust relative to the
291         current label.
292         (output_cfi) <DW_CFA_set_loc>: Update the current label.
293         (dwarf2out_switch_text_section): Reset the current label to avoid
294         using advance_loc4 over section boundaries.
295
296 2006-08-31  Andreas Krebbel  <krebbel1@de.ibm.com>
297
298         PR target/24367
299         * config/s390/s390.md ("movsi", "movdi" expander): Accept rtxes like
300         r12 + SYMBOLIC_CONST.
301
302 2006-08-30  Richard Guenther  <rguenther@suse.de>
303
304         * Makefile.in (see.o): Add $(EXPR_H) dependency.
305
306 2006-08-30  Zdenek Dvorak <dvorakz@suse.cz>
307
308         PR rtl-optimization/27735
309         * cfgloopmanip.c (fix_loop_placements, fix_bb_placements, unloop):
310         Add new argument to keep track of whether an irreducible region
311         was affected.  All callers changed.
312         (fix_irreducible_loops): Removed.
313         (remove_path): Call mark_irreducible_loops if EDGE_IRREDUCIBLE_LOOP
314         flags were invalidated.
315
316 2006-08-29  H.J. Lu  <hongjiu.lu@intel.com>
317
318         * config/i386/i386.md (*fop_df_comm_mixed): Match DF operands
319         instead of SF operands.
320         (*fop_df_comm_sse): Likewise.
321         (*fop_df_comm_i387): Likewise.
322         (*fop_df_1_mixed): Likewise.
323         (*fop_df_1_sse): Likewise.
324
325 2006-08-29  Andrew Pinski  <pinskia@physics.uc.edu>
326             J"orn Rennecke  <joern.rennecke@st.com>
327
328         PR tree-optimization/17506
329         * tree-ssa.c (warn_uninit): If warning about a location outside of
330         the current function, note where the variable was declared.
331
332 2006-08-28  Zdenek Dvorak <dvorakz@suse.cz>
333
334         PR tree-optimization/28411
335         * double-int.c (double_int_div): Use double_int_divmod.
336         (double_int_divmod, double_int_sdivmod, double_int_udivmod,
337         double_int_mod, double_int_smod, double_int_umod): New functions.
338         * double-int.h (double_int_divmod, double_int_sdivmod,
339         double_int_udivmod, double_int_mod, double_int_smod, double_int_umod):
340         Declare.
341         * tree-ssa-loop-ivopts.c (constant_multiple_of): Returns the result
342         in double_int.
343         (get_computation_aff, get_computation_cost_at): Handle double_int
344         return type of constant_multiple_of.
345
346 2006-08-28  Kazu Hirata  <kazu@codesourcery.com>
347
348         PR middle-end/26632
349         * convert.c (convert_to_integer): Set TREE_NO_WARNING to 1 on
350         an implicit conversion.
351
352 2006-08-28  Prafulla Thakare  <prafullat@kpitcummins.com>
353
354         * config/h8300/h8300.c (TARGET_DEFAULT_TARGET_FLAGS): New.
355
356 2006-08-27  Roger Sayle  <roger@eyesopen.com>
357
358         * ifcvt.c (cheap_bb_rtx_cost_p): Don't speculatively execute
359         x87 instructions.
360
361 2006-08-27  Kazu Hirata  <kazu@codesourcery.com>
362
363         * config/i386/crtfastmath.c: Fix a comment typo.
364
365 2006-08-26  Roger Sayle  <roger@eyesopen.com>
366
367         * tree.h (CASE_LOW_SEEN, CASE_HIGH_SEEN): New macros for manipulating
368         temporary visit flags on CASE_LABEL_EXPRs.
369         * c-common.c (match_case_to_enum): Add function comment.  Avoid
370         O(N) loop, by looking up both CASE_LOW_SEEN and CASE_HIGH_SEEN.
371         (c_do_switch_warnings):  Reorganize to record CASE_LOW_SEEN and
372         CASE_HIGH_SEEN for enumerated types.  If the switch expression is
373         a constant, only warn if that constant value isn't handled.
374
375 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
376
377         PR c++/24009
378         * input.h (restore_input_file_stack): Declare.
379         (INPUT_FILE_STACK_BITS): Define.
380         * toplev.c (fs_p, input_file_stack_history,
381         input_file_stack_restored, restore_input_file_stack): New.
382         (push_srcloc, pop_srcloc): Check for input_file_stack_tick
383         overflowing INPUT_FILE_STACK_BITS bits.  Save new state of stack.
384         (pop_srcloc): Don't free old state of stack.
385
386 2006-08-26  David Edelsohn  <edelsohn@gnu.org>
387
388         PR target/27544
389         * doc/extend.texi (PowerPC Variable Attributes): Mention altivec.
390         (PowerPC Type Attributes): New.
391
392 2006-08-26  Bob Wilson  <bob.wilson@acm.org>
393
394         * config/xtensa/xtensa.c (function_arg_boundary): New.
395         (function_arg, xtensa_gimplify_va_arg_expr): Limit alignment to
396         STACK_BOUNDARY.
397         * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Move code to new
398         function_arg_boundary function that limits alignment to STACK_BOUNDARY.
399
400 2006-08-26  Jakub Jelinek  <jakub@redhat.com>
401
402         PR middle-end/28683
403         * cfgexpand.c (add_reg_br_prob_note): Check if last has exactly
404         3 following insns.
405
406 2006-08-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
407
408         * flow.c (verify_wide_reg): Use internal_error for consistency failure.
409         (verify_local_live_at_start): Likewise.
410
411 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
412
413         PR c/27893
414         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval,
415         omp_add_variable): Treat sizes as variable whenever not
416         INTEGER_CST.
417
418 2006-08-26  Richard Guenther  <rguenther@suse.de>
419
420         PR middle-end/28814
421         * fold-const.c (fold_binary): Fold temporary to correct
422         type before constructing new comparison.
423
424 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
425
426         PR c/28418
427         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
428         variable again if DECL_SEEN_IN_BIND_EXPR_P.
429
430 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
431
432         PR c/28299
433         * c-decl.c (start_function): Don't try to process prototype
434         information from old declaration that isn't a function.
435
436 2006-08-25  Jan Hubicka  <jh@suse.cz>
437
438         PR target/28621
439         * config/i386/crtfastmath.c (set_fast_math): Force stack alignment.
440
441 2006-08-25  Alan Modra  <amodra@bigpond.net.au>
442
443         PR target/27075
444         * config/rs6000/rs6000.c (print_operand): Only use e500 %y syntax
445         for 8 byte objects.
446
447 2006-08-25  J"orn Rennecke  <joern.rennecke@st.com>
448
449         PR tree-optimization/16876
450         * c-typeck.c (c_convert_parm_for_inlining): Don't take early
451         exit if PARM doesn't match VALUE.
452
453 2006-08-25  Bob Wilson  <bob.wilson@acm.org>
454
455         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Do not emit a
456         literal_prefix directive.
457         (XTENSA_DECLARE_FUNCTION_SIZE): Delete.
458         * config/xtensa/linux.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
459         * config/xtensa/elf.h (ASM_DECLARE_FUNCTION_SIZE): Delete.
460
461 2006-08-25  David Edelsohn  <edelsohn@gnu.org>
462
463         PR target/28753
464         * config/rs6000/rs6000.md (movcc_internal1): Change operand 1
465         predicate to general_operand.  Add 0->y and I->r alternatives.
466
467 2006-08-25  Kazu Hirata  <kazu@codesourcery.com>
468
469         * doc/tm.texi: Fix a typo.
470         * predict.c: Fix comment typos.
471
472 2006-08-25  Nick Clifton  <nickc@redhat.com>
473
474         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
475         assertions of "cpu" and "machine".
476
477 2006-08-24  Andrew Pinski  <pinskia@physics.uc.edu>
478
479         PR tree-opt/28807
480         * tree-ssa-operands.c (access_can_touch_variable): Don't say
481         the access through a base which has an alias set of 0 cannot
482         touch the variable.
483
484 2006-08-24  Bill Wendling  <wendling@apple.com>
485
486         * doc/tm.texi (TARGET_DEFAULT_PACK_STRUCT): Fixed English.
487
488 2006-08-24  Jan Hubicka  <jh@suse.cz>
489
490         * reload1.c (emit_reload_insns): Fix yet another typo in my patch.
491
492 2006-08-24  Jan Hubicka  <jh@suse.cz>
493
494         PR debug/26881
495         * cgraph.c: Fix comments.
496         (cgraph_varpool_mark_needed_node): Mark only variables not already
497         output to file.
498         * cgraphunit.c: Update comments; include gt-cgraphunit.h
499         (cgraph_varpool_assembled_nodes_queue): New static variable.
500         (cgraph_varpool_assemble_decl): Record output decls for debug out code.
501         (cgraph_varpool_output_debug_info): New function.
502         (cgraph_finalize_compilation_unit, cgraph_optimize): Call it.
503         * Makefile.in: Add gt-cgraphunit.h
504
505 2006-08-24  Jan Hubicka  <jh@suse.cz>
506
507         * predict.c (probability_reliable_p): New predicate.
508         (edge_probability_reliable_p, br_prob_note_reliable_p): Likewise.
509         (predict_loops): Do not predict loop exit with less than 2%
510         probability.
511         * basic-block.h (edge_probability_reliable_p,
512         br_prob_note_reliable_p): Declare.
513         * ia64.h (ia64_print_operand): Do not disable on-chip branch
514         prediction when static predictor is not reliable.
515         * rs6000.c (output_cbranch): Likewise.
516
517 2006-08-23  Stuart Hastings  <stuart@apple.com>
518
519         PR 28825
520         * gcc/config/i386/i386.c (ix86_expand_vector_init_duplicate,
521         ix86_expand_vector_init_one_nonzero): Remove TARGET_SSE test.
522
523 2006-08-21  Geoffrey Keating  <geoffk@apple.com>
524
525         PR debug/28692
526         * dwarf2out.c (rtl_for_decl_init): Don't try to create RTL for
527         complex values, nor for generic vector values.
528
529 2006-08-22  Richard Guenther  <rguenther@suse.de>
530
531         PR middle-end/28776
532         * tree-scalar-evolution.c (fold_used_pointer): Add at_stmt
533         parameter.  Convert arguments to arithmetic expression to the
534         chrecs type.
535         (analyze_scalar_evolution_1): Adjust caller.
536
537 2006-08-22  Jan Hubicka  <jh@suse.cz>
538
539         Patch by Paolo Bonzini
540         * reload1.c (emit_reload_insns): Fix incorrect bracketing introduced by
541         my previous patch.
542
543 2006-08-22  Daniel Berlin  <dberlin@dberlin.org>
544
545         PR tree-optimization/28003
546         * tree-ssa-alias.c (compute_may_aliases): Compute call clobbered
547         before grouping aliases.
548
549 2006-08-22  Roger Sayle  <roger@eyesopen.com>
550
551         * config/i386/i386.c (ix86_value_regno): Don't return FIRST_MMX_REG
552         if !TARGET_MMX, and don't return FIRST_SSE_REG if !TARGET_SSE.
553
554 2006-08-21  Jason Merrill  <jason@redhat.com>
555
556         PR c++/27115
557         * gimplify.c (voidify_wrapper_expr): Handle STATEMENT_LIST as a
558         wrapper.  Loop to handle nested wrappers.
559         (gimplify_bind_expr): Remove temp parameter.
560         (gimplify_modify_expr_rhs): Handle CLEANUP_POINT_EXPR, BIND_EXPR
561         and STATEMENT_LIST on the rhs.
562         (gimplify_statement_list): Voidify the STATEMENT_LIST.
563         (gimplify_expr): Pass pre_p to gimplify_statement_list.
564         (gimplify_target_expr): Remove special BIND_EXPR handling.
565
566 2006-08-21  J"orn Rennecke  <joern.rennecke@st.com>
567
568         * config/sh/lib1funcs-Os-4-200.asm: Guard entire file with
569         #if !__SHMEDIA__ .
570
571 2006-08-21  Olivier Hainque  <hainque@adacore.com>
572
573         * gimplify.c (gimplify_init_constructor) <RECORD,UNION,ARRAY types>:
574         Arrange for the temporary captures of components overlapping the lhs
575         to happen before the lhs is possibly cleared.
576
577 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
578
579         * config/arm/pr-support.c (__gnu_unwind_execute): Insert " + 1" in
580         necessary places to pass the correct "number of registers" values
581         to _Unwind_VRS_Pop.
582
583 2006-08-20  Jan Hubicka  <jh@suse.cz>
584
585         * tree-ssa-alias.c (eq_ptr_info, ptr_info_hash): New function.
586         (create_name_tags): Instead of quadratic checking use hashtable.
587         * bitmap.h: Include hashtab.h.
588         (bitmap_hash): Declare.
589         * bitmap.c (bitmap_hash): New function.
590
591 2006-08-20  Jan Hubicka  <jh@suse.cz>
592
593         PR rtl-optimization/28071
594         * tree-optimize.c (tree_rest_of_compilation): Do not remove edges
595         twice.
596         * tree-inline.c (copy_bb): Use cgraph_set_call_stmt.
597         * ipa-inline.c (cgraph_check_inline_limits): Add one_only argument.
598         (cgraph_decide_inlining, cgraph_decide_inlining_of_small_function,
599         cgraph_decide_inlining_incrementally): Update use of
600         cgraph_check_inline_limits.
601         * cgraph.c (edge_hash, edge_eq): New function.
602         (cgraph_edge, cgraph_set_call_stmt, cgraph_create_edge,
603         cgraph_edge_remove_caller, cgraph_node_remove_callees,
604         cgraph_remove_node): Maintain call site hash.
605         * cgraph.h (struct cgraph_node): Add call_site_hash.
606         (cgraph_set_call_stmt): New function.
607
608 2006-08-20  Jan Hubicka  <jh@suse.cz>
609
610         PR rtl-optimization/28071
611         * reload1.c (reg_has_output_reload): Turn into regset.
612         (reload_as_needed, forget_old_reloads_1, forget_marked_reloads,
613         choose_reload_regs, emit_reload_insns): Update to new
614         reg_has_output_reload.
615
616 2006-08-20  Jan Hubicka  <jh@suse.cz>
617
618         PR middle-end/28779
619         * ipa-inline.c (cgraph_decide_inlining, cgraph_early_inlining): Compute
620         function body sizes.
621         * cgraphunit.c (cgraph_analyze_function): Don't do so.
622
623 2006-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
624
625         PR target/28648 c:
626         * tree.c (handle_dll_attribute): Return early if not a
627         var or function decl.
628
629 2006-08-18  Joseph Myers  <joseph@codesourcery.com>
630
631         PR target/27565
632         * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): For SPE, only adjust
633         alignment of SPE vector types.
634
635 2006-08-18  Christophe Jaillet  <christophe.jaillet@wanadoo.fr>
636
637         * tree.c (is_attribute_with_length_p): Remove a duplicated assert.
638
639 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
640
641         PR c/28744
642         * cgraph.h (struct cgraph_node): Remove externally_visible
643         bitfield.
644         * cgraphunit.c (process_function_and_variable_attributes): Set
645         local.externally_visible rather than externally_visible.
646
647         PR c/28744
648         * c-common.c (handle_externally_visible_attribute): First look
649         at TREE_CODE and only if it is function or var decl, check for
650         non-public objects.  Don't warn for DECL_EXTERNAL.
651         * cgraphunit.c (process_function_and_variable_attributes): Warn
652         if externally_visible attribute is used on non-public object.
653
654 2006-08-17  Jan Hubicka  <jh@suse.cz>
655
656         PR tree-optimization/27865
657         * reload1.c (forget_marked_reloads): New function.
658         (forget_old_reloads_1): When data are passed, just mark the registers
659         for later removal.
660         (reload_as_needed): Use the new mechanizm.
661
662 2006-08-17  Alexandre Oliva  <aoliva@redhat.com>
663
664         PR target/28146
665         * reload.h (reg_equiv_alt_mem_list): New declaration.
666         * reload1.c (reg_equiv_alt_mem_list): New definition.
667         (reload): Initialize it and release it.
668         (delete_output_reload): Use it.
669         * reload.c (push_reg_equiv_alt_mem): New function.
670         (find_reloads_toplev): Call it.
671         (find_reloads_address, find_reloads_address_1): Likewise.
672         (find_reloads_subreg_address): Likewise.
673
674 2006-08-17  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
675
676         PR rtl-optimization/28489
677         * sched-ebb.c (begin_schedule_ready): Create basic block
678         at the right place.
679         (advance_target_bb): Skip empty blocks.
680         * haifa-sched.c (bb_note): Make global.
681         * sched-int.h (bb_note): Add prototype.
682
683 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
684
685         PR tree-optimization/27865
686         * tree-vrp.c (adjust_range_with_scev): Do not use TYPE_{MIN,MAX}_VALUE
687         for pointer types.
688         * tree-scalar-evolution.c (fold_used_pointer_cast, pointer_offset_p,
689         fold_used_pointer, pointer_used_p): New functions.
690         (analyze_scalar_evolution_1): Use fold_used_pointer.
691         * tree-chrec.c (convert_affine_scev): Convert no-op casts correctly.
692         * tree-ssa-loop-ivopts.c (generic_type_for): Return integral type
693         for pointers.
694
695 2006-08-17  Paolo Bonzini <bonzini@gnu.org>
696
697         PR c++/28573
698         * c-common.c (fold_offsetof_1): Add an argument and recurse down to it
699         or the INTEGER_CST.  Fail on a CALL_EXPR.
700         (fold_offsetof): Pass new argument to fold_offsetof_1.
701         * c-parser.c (c_parser_postfix_expression): Don't include a NULL
702         operand into an INDIRECT_REF.
703         * c-typeck.c (build_unary_op): Adjust call to fold_offsetof.
704
705 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
706
707         PR gcov/profile/26570
708         * value-prof.c (static_values): Removed.
709         (tree_find_values_to_profile): Do not set static_values.
710         (find_values_to_profile): Do not free static_values.
711         * profile.c (instrument_values): Do not free the values.
712         (branch_prob): Free the values.
713
714 2006-08-16  Naveen.H.S  <naveenh@kpitcummins.com>
715
716         * config/m32c/m32c_lib1.S (__mulsi3): Use only registers for dest.
717
718 2006-08-16  Joseph S. Myers  <joseph@codesourcery.com>
719
720         PR c/27697
721         * c-typeck.c (build_component_ref): Combine qualifiers of
722         structure or union and field.
723
724 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
725
726         PR rtl-optimization/28071
727         * basic-block.h (bb_dom_dfs_in, bb_dom_dfs_out): Declare.
728         * dominance.c (bb_dom_dfs_in, bb_dom_dfs_out): New functions.
729         * tree-into-ssa.c (struct dom_dfsnum): New.
730         (cmp_dfsnum, find_dfsnum_interval, prune_unused_phi_nodes): New
731         functions.
732         (insert_phi_nodes_for): Use prune_unused_phi_nodes instead of
733         compute_global_livein.
734         (prepare_block_for_update, prepare_use_sites_for): Mark the uses
735         in phi nodes in the correct blocks.
736
737 2006-08-16  Zdenek Dvorak <dvorakz@suse.cz>
738
739         PR tree-optimization/28364
740         * tree-ssa-loop-ivopts.c (aff_combination_to_tree): Handle zero
741         correctly.
742         (fold_affine_expr): New function.
743         (may_eliminate_iv): Use fold_affine_expr.
744
745 2006-08-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
746
747         PR c/27489
748         * c-typeck.c (c_start_case): Handle invalid orig_type correctly.
749         Clean up.
750
751 2006-08-16  Mike Stump  <mrs@apple.com>
752
753         * doc/invoke.texi (-Wno-deprecated-declarations): Fixup use of pxref.
754         * doc/cppopts.texi (-MD): Likewise.
755
756 2006-08-15  Danny Smith  <dannysmith@users.sourceforge.net>
757
758         PR c/28287
759         * c-common.c (handle_weak_attribute): Ignore and warn if
760         not a FUNCTION_ or VAR_DECL.
761
762 2006-07-15  Mike Stump  <mrs@apple.com>
763
764         PR c/28280
765         * c-parser.c (c_parser_typeof_specifier): Don't use
766         c_finish_expr_stmt, open code desired semantics instead.
767
768 2006-08-15  Nick Clifton  <nickc@redhat.com>
769
770         * config.gcc (x86-mingw32): Add a gthr-win32.h including makefile
771         fragment to tmake_file only if threads are enabled.
772         * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Move to...
773         * config/i386/t-gthr-win32: New file. ... here.
774
775 2006-08-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
776
777         PR c/28649
778         * c-parser.c (c_parser_compound_statement_nostart): Reset
779         parser->error after each statement.
780
781 2006-08-15  Jakub Jelinek  <jakub@redhat.com>
782
783         PR middle-end/28713
784         * omp-low.c (lower_omp_parallel): Convert t to
785         receiver_decl's type.
786         (expand_omp_parallel): STRIP_NOPS from the MODIFY_EXPR
787         source before comparison.
788
789         PR middle-end/28724
790         * gimplify.c (gimplify_omp_atomic_pipeline): Convert oldival
791         to itype in assignment to oldival2.
792
793 2006-07-14  Andrew Pinski  <pinksia@physics.uc.edu>
794
795         PR c/27490
796         PR c/27489
797         * c-typeck.c (build_compound_expr): If the second expression
798         is an error mark, then just return an error mark instead of
799         creating a COMPOUND_EXPR.
800
801 2006-07-14  Mike Stump  <mrs@apple.com>
802
803         * Makefile.in (LIBGCC_DEPS): Don't depend on LANGUAGES.
804
805 2006-08-14  Kazu Hirata  <kazu@codesourcery.com>
806
807         * c-decl.c, var-tracking.c: Fix comment typos.
808
809 2006-08-14  Richard Sandiford  <richard@codesourcery.com>
810
811         PR rtl-optimization/28634
812         * reorg.c (fill_slots_from_thread): Do not assume A + X - X == A
813         for floating-point modes unless flag_unsafe_math_optimizations.
814
815 2006-08-13  Alexandre Oliva  <aoliva@redhat.com>
816             Andrew Pinski  <pinskia@physics.uc.edu>
817
818         PR c/27184
819         * tree.c (build_array_type): Unify array types with
820         unspecified index_type.
821         * c-decl.c (grokdeclarator): Make sure we do not modify a
822         unified incomplete array type.
823         * c-typeck.c (store_init_value): Create distinct type before
824         filling in the index type in an initializer from a compound
825         literal.
826
827         * c-decl.c (grokdeclarator): Remove code where we copy the
828         array type over.
829
830 2006-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
831
832         * tree-pass.h (TODO_update_ssa): Fix which bit is used to take
833         into account for TODO_dump_cgraph.
834         (TODO_update_ssa_no_phi): Likewise.
835         (TODO_update_ssa_full_phi): Likewise.
836         (TODO_update_ssa_only_virtuals): Likewise.
837         (TODO_remove_unused_locals): Likewise.
838         (TODO_set_props): Likewise.
839         (TODO_update_stmt_usage): Likewise.
840
841 2006-08-13  Dirk Mueller  <dmueller@suse.de>
842
843         * c-common.c (strict_aliasing_warning): Fix formatting.
844
845 2006-08-13  Matthias Klose  <doko@debian.org>
846
847         * doc/invoke.texi: Fix spelling errors.
848
849 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
850
851         PR rtl-optimization/23454
852         * reorg.c (relax_delay_slots): Update comment.
853
854 2006-08-11  Richard Guenther  <rguenther@suse.de>
855
856         PR middle-end/28651
857         * simplify-rtx.c (simplify_const_relational_operation):
858         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
859         codes.
860
861 2006-08-10  Eric Botcazou  <ebotcazou@adacore.com>
862
863         * tree.c (build1_stat): Also propagate the TREE_CONSTANT and
864         TREE_INVARIANT flags for a VIEW_CONVERT_EXPR.
865
866 2006-08-10  Paul Brook  <paul@codesourcery.com>
867
868         * final.c (final_scan_insn): Clear current_insn_predicate before
869         outputting inline asm.
870
871 2006-08-10  Dorit Nuzman  <dorit@il.ibm.com>
872
873         PR tree-optimization/26197
874         * tree-ssa-alias.c (new_type_alias): Takes additional argument. Calls
875         get_ref_base_and_extent and overlap_subvar to add only relevant
876         subvars as may-aliases.
877         (add_may_alias_for_new_tag): New function, factored out of
878         new_type_alias.
879         * tree-vect-transform.c (vect_create_data_ref_ptr): Call new_type_alias
880         with additional argument.
881         * tree-flow.h (new_type_alias): Takes additional argument.
882
883 2006-08-09  Nathan Sidwell  <nathan@codesourcery.com>
884
885         * gcov.c (no_data_file): New flag.
886         (read_count_file): Set it if data file not present.  Assume counts
887         zero if not found.
888         (output_lines): Don't name the data file, if there wasn't one.
889
890 2006-08-09  Eric Botcazou  <ebotcazou@adacore.com>
891
892         * config/rs6000/rs6000.c (print_operand) <D>: Fix comment and adjust.
893         (rs6000_generate_compare): Tweak comments.
894         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Fix comment.
895
896 2006-08-09  Alexandre Oliva  <aoliva@redhat.com>
897
898         * var-tracking.c (enum micro_operation_type): Add MO_COPY.
899         (var_debug_decl): New function.
900         (var_reg_set): Follow debug decl link.  Add location even if
901         reg is already known to hold some other variable.
902         (var_mem_set): Follow debug decl link.
903         (var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
904         decl link.  Delete other known locations of the variable part
905         if requested.
906         (var_reg_delete, var_mem_delete): Delete other known locations
907         of the variable part if requested.
908         (same_variable_part_p): New function.
909         (add_stores): Select MO_COPY when appropriate.
910         (vt_initialize): Handle it.
911         (compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
912         known locations for MO_SET and MO_CLOBBER.
913         (find_variable_location_part): New function.
914         (set_variable_part, delete_variable_part): Use it.
915         (clobber_variable_part): New function.
916         * dwarf2out.c (dwarf2out_var_location): Do not follow debug
917         decl link.
918
919 2006-08-07  Victor Kaplansky <victork@il.ibm.com>
920
921         PR tree-optimization/26969
922         * tree-vect-analyze.c (vect_analyze_loop_form): Add check of latch
923         with an empty list of PHIs.
924
925 2006-08-06  Paolo Bonzini  <bonzini@gnu.org>
926
927         PR target/27827
928
929         * conffig/i386/i386.md: Add peephole2 to avoid "fld %st"
930         instructions.
931
932 2006-08-06  Andreas Schwab  <schwab@suse.de>
933
934         * config/m68k/m68k.c (m68k_output_function_epilogue): Fix format
935         string.  Whitespace and comment fixup.
936
937 2006-08-05  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
938
939         PR c/28502
940         * c-decl.c (validate_proto_after_old_defn): Return false on invalid
941         argument.
942
943         PR c/27721
944         * c-typeck.c (build_modify_expr): Test earlier for non-lvalues.
945
946         PR c/28136
947         * c-parser.c (c_parser_postfix_expression_after_paren_type): Robustify.
948
949 2006-08-04  Jan Hubicka  <jh@suse.cz>
950
951         PR target/26655
952         PR target/28270
953         * reload.c (push_reload): Patch out the mismatching instruction;
954         return early.
955         (find_reload): Bail out if the instruction was patched out.
956
957 2006-08-04  Jan Hubicka  <jh@suse.cz>
958
959         PR tree-optimization/24888
960         * tree-inline.c (expand_call_inline): Do not re-record variables.
961         (declare_inline_vars): Add variable to unexpanded_var_list.
962
963 2006-08-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
964             Roger Sayle  <roger@eyesopen.com>
965
966         PR rtl-optimization/26244
967         * cse.c (fold_rtx): Correctly associate shifts when const_arg1 and/or
968         inner_const are negative or greater than or equal to the bitsize of
969         MODE.  If SHIFT_COUNT_TRUNCATED is false, the values aren't associated.
970         Otherwise, the values are masked using GET_MODE_BITSIZE (mode) - 1.
971         Simplify complicated if statement.  For ASHIFT and LSHIFTRT, return
972         CONST0_RTX (mode) when the new shift count is greater than or equal to
973         to the bitsize of the object being shifted and XEXP (y, 0) has no side
974         effects.
975
976 2006-08-04  Kazu Hirata  <kazu@codesourcery.com>
977
978         * tree-cfg.c: Fix a comment typo.
979
980 2006-08-03  Mark Mitchell  <mark@codesourcery.com>
981
982         PR c++/28148
983         * varasm.c (output_constant): Give the front end another chance to
984         expand constants, after stripping NOPs.
985
986 2006-08-03  Jan Hubicka  <jh@suse.cz>
987
988         * domwalk.c (walk_dominator_tree): Reorganize to non-recursive
989         implementation.
990
991 2006-08-03  Dorit Nuzman  <dorit@il.ibm.com>
992
993         PR tree-optimization/27770
994         * tree-vectorizer.h (get_vectype_for_scalar_type): Function
995         declaration removed (moved to tree-flow.h).
996         (vect_can_force_dr_alignment_p): Likewise.
997         * tree-flow.h (get_vectype_for_scalar_type): New function declaration
998         (moved from tree-vectorizer.h).
999         (vect_can_force_dr_alignment_p): Likewise.
1000         * tree-vectorizer.c (vect_print_dump_info): Allow calling this function
1001         from outside the vectorizer - in particular from cgraph stage.
1002         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Don't increase
1003         the alignment of global arrays when -fsection-anchors is enabled.
1004         * cgraphunit.c (cgraph_increase_alignment): New function.
1005         (cgraph_optimize): Call cgraph_increase_alignment.
1006
1007 2006-08-03  David Edelsohn  <edelsohn@gnu.org>
1008
1009         PR target/27566
1010         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
1011         not reload a SPE symbol_ref into a lo_sum address.
1012
1013 2006-08-02  Daniel Jacobowitz  <dan@codesourcery.com>
1014
1015         PR debug/28063
1016         * dwarf2out.c (prune_unused_types_prune): Move call to
1017         prune_unused_types_update_strings to cover the parent DIE also.
1018
1019 2006-08-02  Jan Hubicka  <jh@suse.cz>
1020
1021         PR gcov/profile/28480
1022         * tree-cfg.c (change_bb_for_stmt): New function.
1023         (tree_merge_blocks, tree_split_blocks): Use it.
1024
1025 2006-08-01  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1026
1027         PR c++/28250
1028         PR c++/28257
1029         PR c++/28259
1030         PR c++/28267
1031         * toplev.c (compile_file): Return early on errorcount or sorrycount.
1032         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
1033         (cgraph_optimize): Likewise.
1034
1035 2006-08-01  Stuart Hastings  <stuart@apple.com>
1036
1037         * rtl.h (UINTVAL) New.
1038         * config/rs6000/rs6000.c (SMALL_INT) Use it.
1039         * testsuite/gcc.dg/20060801-1.c: New.
1040
1041 2006-08-01  Daniel Jacobowitz  <dan@codesourcery.com>
1042
1043         PR debug/23336
1044         * c-typeck.c (build_external_type): Mark used enum types.
1045         * dwarf2out.c (dwarf2out_abstract_function): Save and restore
1046         cfun also.
1047         (gen_subprogram_die): Whitespace fix.
1048
1049 2006-08-01  Jan Hubicka  <jh@suse.cz>
1050
1051         * tree-outof-ssa.c (check_replaceable): Do not allocate def_vars
1052         bitmap when not needed.
1053         * tree-ssa-pre.c (bitmap_set_and, bitmap_set_and_compl): Free temporary
1054         bitmaps.
1055
1056 2006-08-01  Dirk Mueller  <dmueller@suse.de>
1057
1058         * tree-vrp.c (fix_equivalence_set): Avoid bitmap memory leak.
1059
1060 2006-07-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1061
1062         * Makefile.in: Revert part of previous patch:
1063         Replace $(VARRAY_H) by varray.h in definition of BASIC_BLOCK_H
1064         and REGS_H.
1065
1066 2006-07-30  Eric Christopher  <echristo@apple.com>
1067
1068         PR target/27543
1069         * doc/extend.texi (i386 Variable Attributes): Add anchor.
1070         (PowerPC Variable Attributes): New section.
1071
1072 2006-07-30  Atsushi Nemoto  <anemo@mba.ocn.ne.jp>
1073
1074         PR target/28126 (partial fix)
1075         * config/mips/mips.md (tls_get_tp_<mode>): Set can_delay to no.
1076
1077 2006-07-28  Jan Hubicka  <jh@suse.cz>
1078
1079         PR rtl-optimization/28071
1080         * cfgrtl.c (rtl_delete_block): Free regsets.
1081         * flow.c (allocate_bb_life_data): Re-use regsets if available.
1082
1083 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1084
1085         * Makefile.in: Use $(HEADER_H) instead of header.h in dependencies
1086         and variables used in dependencies.
1087
1088 2006-07-27  Arjan van de Ven <arjan@linux.intel.com>
1089
1090         * config/i386/i386.md (stack_tls_protect_set_di) Use %gs rather than
1091         %fs for -mcmodel=kernel.
1092         (stack_tls_protect_test_di): Likewise.
1093
1094 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
1095
1096         * Makefile.in: Use mkinstalldirs.
1097
1098 2006-07-27  H.J. Lu  <hongjiu.lu@intel.com>
1099
1100         PR driver/28437
1101         * opts-common.c (prune_options): Skip joined switches.
1102
1103 2006-07-27  Jan Hubicka  <jh@suse.cz>
1104
1105         PR rtl-optimization/28071
1106         * cselib.c (cselib_process_insn): Don't remove useless values too
1107         often for very large hashtables.
1108
1109 2006-07-27  Jan Hubicka  <jh@suse.cz>
1110
1111         PR rtl-optimization/28071
1112         * global.c (greg_obstack): New obstack.
1113         (allocate_bb_info): Use it.
1114         (free_bb_info): Likewise.
1115         (modify_reg_pav): Likewise.
1116
1117 2006-07-27  Roger Sayle  <roger@eyesopen.com>
1118
1119         * builtins.c (fold_fixed_mathfn): When long and long long are the
1120         same size, canonicalize llceil*, llfloor*, llround* and llrint*
1121         functions to their lceil*, lfloor*, lround* and lrint* forms.
1122
1123 2006-07-27  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1124
1125         PR gcc/28508
1126         * config/m32r/m32r.md (branch_insn): Reduce pc range for short
1127         branch.
1128         (rev_branch_insn): Likewise.
1129
1130 2006-07-27  Jan Hubicka  <jh@suse.cz>
1131
1132         PR rtl-optimization/28071
1133         * regmove.c (reg_is_remote_constant_p): Avoid quadratic behaviour.
1134         (reg_set_in_bb, max_reg_computed): New static variables.
1135         (regmove_optimize): Free the new array.
1136         (fixup_match_1): Update call of reg_is_remote_constant_p.
1137
1138 2006-07-26  Jan Hubicka  <jh@suse.cz>
1139
1140         PR tree-optimization/27882
1141         * cgraph.c (cgraph_remove_node): Clear needed, reachable, next, previous
1142         and decl fields.
1143         * cgraphunit.c (cgraph_reset_node): Expect cgraph_remove_node to kill
1144         next pointer
1145         (cgraph_analyze_compilation_unit): Likewise.
1146         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1147         * ipa-inline.c (cgraph_decide_recursive_inlining): Likewise.
1148         (cgraph_early_inlinine): Make order garbage collected.
1149         * Makefile.in (gt-ipa-inline): New garbagecollected file.
1150
1151 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1152
1153         * dbxout.c (output_types_sort): Add a comment.
1154         (output_used_types): Free the VEC.
1155
1156 2006-07-26  Daniel Jacobowitz  <dan@codesourcery.com>
1157
1158         * function.c (reorder_fix_fragments): Delete.
1159         (reorder_blocks): Don't call it.
1160         (reorder_blocks_1): Put all subblocks under the origin block.
1161
1162 2006-07-26  Zdenek Dvorak <dvorakz@suse.cz>
1163
1164         PR rtl-optimization/27907
1165         * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
1166         FLOAT_TRUNCATE.
1167
1168 2006-07-25  Roger Sayle  <roger@eyesopen.com>
1169
1170         PR middle-end/28473
1171         * convert.c (convert_to_integer): When transforming (T)foo(x) into
1172         bar(x) check that bar's result type can represent all the values of T.
1173
1174 2006-07-25  Zdenek Dvorak <dvorakz@suse.cz>
1175
1176         * tree-chrec.c (chrec_convert_aggressive): Return NULL on failure.
1177
1178 2006-07-25  Nick Clifton  <nickc@redhat.com>
1179
1180         * ggc-page.c (NUM_SIZE_LOOKUP): New constant - the length of the
1181         size_lookup[] array.
1182         (ggc_alloc_stat): Use NUM_SIZE_LOOKUP.
1183         (ggc_pch_count_object): Likewise.
1184         (ggc_pch_alloc_object): Likewise.
1185         (ggc_pch_write_object): Likewise.
1186         (init_ggc): Do not attempt to initialize entries in the
1187         size_lookup[] array for objects whose size is greater than than
1188         the length of the array.
1189
1190 2006-07-25  Daniel Jacobowitz  <dan@codesourcery.com>
1191
1192         * dbxout.c (output_used_types_helper): Push queued types
1193         on a VEC.
1194         (output_types_sort): New.
1195         (output_used_types): Collect used types on a VEC and sort them
1196         before emission.
1197
1198 2006-07-24  Richard Guenther  <rguenther@suse.de>
1199
1200         PR middle-end/28463
1201         * cgraph.c (cgraph_remove_node): Do not check if dumps
1202         are enabled.
1203         * cgraphunit.c (cgraph_optimize): Likewise.
1204
1205 2006-07-24  Jan Hubicka  <jh@suse.cz>
1206
1207         PR rtl-optimization/28071
1208         * tree-cfg.c (tree_split_block): Do not allocate new stmt_list nodes.
1209         * tree-iterator.c (tsi_split_statement_list_before): Do not crash when
1210         splitting before first stmt.
1211
1212 2006-07-24  Jan Hubicka  <jh@suse.cz>
1213
1214         PR rtl-optimization/28071
1215         * ipa-inline.c (update_caller_keys): Remove edges that
1216         are no longer inline candidates.
1217
1218 2006-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
1219
1220         PR debug/27473
1221         * dbxout.c (output_used_types_helper, output_used_types): New.
1222         (dbxout_symbol): Call output_used_types.
1223
1224 2006-07-23  Jan Hubicka  <jh@suse.cz>
1225
1226         PR c/25795
1227         PR c++/27369
1228         * cgraph.c (cgraph_varpool_nodes): Export.
1229         (decide_is_variable_needed): Ignored "used" attribute in
1230         unit-at-a-time mode.
1231         * cgraph.h (cgraph_varpool_nodes): Declare.
1232         * cgraphunit.c (decide_is_function_needed): Ignored "used" attribute in
1233         unit-at-a-time mode.
1234
1235 2006-07-23  Roger Sayle  <roger@eyesopen.com>
1236
1237         PR target/28247
1238         * gthr-solaris.h: Prototype __gthrw forms of thr_self, mutex_init and
1239         mutex_destroy even when !_LIBOOBJC.  Remove duplicate prototype of
1240         the __gthrw form of thr_keycreate.
1241         (__gthread_key_delete): Silence the unused argument warning.
1242
1243 2006-07-23  Steven Bosscher  <steven@gcc.gnu.org>
1244
1245         PR debug/25468
1246         * config/elfos.h (ASM_OUTPUT_ASCII): Remove 'register' marks.
1247         Cache the last found '\0' marker to avoid quadratic behavior.
1248
1249 2006-07-23  Jan Hubicka  <jh@suse.cz>
1250
1251         * i386.md (subsi_3_zext): Fix output template.
1252
1253 2006-07-21  Mike Stump  <mrs@apple.com>
1254
1255         * doc/invoke.texi (C++ Dialect Options): Note that
1256         -fvisibility-inlines-hidden doesn't affect explicitly
1257         instantiationed inline methods.
1258
1259 2006-07-20  Roger Sayle  <roger@eyesopen.com>
1260
1261         * config.gcc (i[34567]86-*-solaris2*): Add usegas.h to $tm_file
1262         if the target assembler is GNU binutils' gas.
1263         * config/i386/sol2-10.h (ASM_SPEC): Check USE_GAS to determine
1264         whether to pass GNU gas or native as command line options.
1265
1266 2006-07-20  Jason Merrill  <jason@redhat.com>
1267
1268         * tree.c (remove_attribute): New fn.
1269         * tree.h: Declare it.
1270
1271 2006-07-20  Paul Brook  <paul@codesourcery.com>
1272
1273         PR 27363
1274         * cse.c (cse_insn): Add destination addresses to hash table. Check if
1275         they are invalidated by this instruction.
1276
1277 2006-07-21  Danny Smith  <dannysmith@users.sourceforge.net>
1278
1279         PR target/28427
1280         * config/i386/cygming.h (MAX_OFILE_ALIGNMENT): Define.
1281
1282 2006-07-20  Eric Christopher  <echristo@apple.com>
1283
1284         PR target/26877
1285         * config/i386/i386.h (OPTION_DEFAULT_SPECS): Reorder.
1286
1287 2006-07-19  Eric Christopher  <echristo@apple.com>
1288
1289         * config/t-slibgcc-darwin (stmp-lipo): Remove.
1290         Rewrite dependencies for libgcc_s.1.dylib.
1291
1292 2006-07-19  Jakub Jelinek  <jakub@redhat.com>
1293
1294         * except.c (duplicate_eh_regions_1): Clear next_peer.
1295
1296 2006-07-17  Nathan Sidwell  <nathan@codesourcery.com>
1297
1298         * doc/invoke.texi (RS/6000 and PowerPC Options): Document that
1299         -mlongcall does not guarantee all calls will be long.
1300         * doc/extend.texi (long_call/short_call): Document that longcall
1301         does not guarantee a long call will be used.
1302         (longcall/shortcall): Likewise.
1303
1304 2006-07-18  Roger Sayle  <roger@eyesopen.com>
1305
1306         PR middle-end/28283
1307         * expmed.c (expand_shift): Additionally check that the shift_cost
1308         is not MAX_COST and that INTVAL(op1) is less than MAX_BITS_PER_WORD
1309         before implementing a LSHIFT_EXPR as a sequence of additions.
1310         * config/sh/sh.c (shift_costs): Return MAX_COST to inform the
1311         middle-end that DImode shifts need to be synthesized by expand.
1312
1313 2006-07-18  Diego Novillo  <dnovillo@redhat.com>
1314
1315         PR 28410
1316         * tree-ssa-operands.c (access_can_touch_variable): Update
1317         comment.
1318         Return true if ALIAS is .GLOBAL_VAR.
1319
1320 2006-07-18  David Daney  <ddaney@avtrex.com>
1321
1322         * gcc.c (display_help): Fix typo in help text.
1323
1324 2006-07-18  Olivier Hainque  <hainque@adacore.com>
1325
1326         * tree.h (categorize_ctor_elements): Adjust prototype and add
1327         descriptive comment, both in accordance with the interface change
1328         described below.
1329         * varasm.c (constructor_static_from_elts_p): New function.
1330         Whether a constructor node is a valid static constant initializer
1331         if all its elements are.
1332         (initializer_constant_valid_p) <CONSTRUCTOR value>: Use it.
1333         * output.h: Declare it.
1334         * expr.c (categorize_ctor_elements_1): Return whether the constructor
1335         is a valid constant initializer instead of computing the number of
1336         non-constant elements.  Use constructor_static_from_elts_p for this
1337         purpose.  Replace the head comment with an indication that this is a
1338         helper for categorize_ctor_elements.
1339         (categorize_ctor_elements): Same interface change as for the _1
1340         helper.  Former head comment from this helper moved here, adjusted to
1341         account for the interface changes.
1342         (mostly_zeros_p): Adjust call to categorize_ctor_elements.
1343         (all_zeros_p): Likewise.
1344         * gimplify.c (gimplify_init_constructor): Decide whether we can make
1345         static versions of the constructor from the categorize_ctor_elements
1346         return value instead of the formerly computed number of non-constant
1347         elements.
1348
1349 2006-07-18  Paolo Bonzini  <bonzini@gnu.org>
1350
1351         * configure: Regenerate.
1352         * Makefile.in (build_libsubdir): New configure substitution
1353         (build_libobjdir): New variable.
1354         (BUILD_LIBIBERTY): Use it.
1355
1356 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1357
1358         PR c/28286
1359         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
1360
1361 2006-07-18  Alexandre Oliva  <aoliva@redhat.com>
1362
1363         PR c/26993
1364         * c-common.c (handle_weakref_attribute): Ignore attribute in
1365         the same conditions the alias attribute is ignored.
1366
1367 2006-07-17  Carlos O'Donell  <carlos@codesourcery.com>
1368
1369         * dbxout.c (dbxout_function_end): Do not increment scope_labelno.
1370         (dbxout_begin_prologue): Increment scope_labelno.
1371
1372 2006-07-17  Richard Henderson  <rth@redhat.com>
1373
1374         PR 27889
1375         * tree-nested.c (create_tmp_var_for): Set DECL_COMPLEX_GIMPLE_REG_P
1376         if needed.
1377
1378 2006-07-17  Roger Sayle  <roger@eyesopen.com>
1379             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1380
1381         * config/i386/gmon-sol2.c: Silence compilation warnings by partially
1382         synchronizing code with config/sparc/gmon-sol2.c.  Remove #if 0
1383         blocks.  #include "tconfig.h" and "tsystem.h" to prototype system
1384         functions such as sbrk, write, etc..  Add function prototypes.
1385         Convert function declarations from K&R to ISO C.  Cast pointers
1386         to "long" and "unsigned long" instead of "int" and "unsigned int".
1387         Convert tokens following #endif into comments.
1388
1389 2006-07-17  Toon Moene  <toon@moene.indiv.nluug.nl>
1390
1391         * invoke.texi: Remove mention of f77; Reformat table for
1392         inline parameter options correctly; mention that -malign-double
1393         is default on x86-64 targets.
1394
1395 2006-07-17  Zdenek Dvorak <dvorakz@suse.cz>
1396
1397         * tree-chrec.c (avoid_arithmetics_in_type_p): New.
1398         (convert_affine_scev, chrec_convert_aggressive): Use
1399         avoid_arithmetics_in_type_p.  Do not check for the subtypes
1400         separately.
1401
1402 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
1403
1404         PR middle-end/28403
1405         * optabs.c (expand_doubleword_shift): Wrap the call to
1406         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
1407
1408 2006-07-17  Richard Sandiford  <richard@codesourcery.com>
1409
1410         PR middle-end/28402
1411         * optabs.c (expand_binop): Pass next_methods rather than methods
1412         to expand_doubleword_shift.
1413
1414 2006-07-17  J"orn Rennecke  <joern.rennecke@st.com>
1415
1416         PR other/28251
1417         * tree.h (dump_addr): Declare.
1418         * print-tree.c (dump_addr): New function.
1419         (print_node_brief, print_node): Use it.
1420         * print-rtl.c (print_rtx): Likewise.
1421         * common.opt (-fdump-noaddr): New option.
1422         * doc/invoke.texi (-fdump-noaddr): Document.
1423         * loop-unroll.c (si_info_hash): Make hash independent of addresses.
1424         (ve_info_hash): Likewise.
1425
1426 2006-07-13  Andrew Haley  <aph@redhat.com>
1427
1428         PR tree-optimization/19505
1429         * tree-cfgcleanup.c (tree_forwarder_block_p): If we have an EH
1430         edge leaving this block, make sure that the destination of this
1431         block has only one predecessor.
1432
1433 2006-07-17  Richard Guenther  <rguenther@suse.de>
1434
1435         PR tree-optimization/28238
1436         * tree-inline.c (copy_bb): Check if we produced valid
1437         gimple copying and substituting a stmt.  If not, gimplify
1438         it.
1439
1440 2006-07-16  Eric Botcazou  <ebotcazou@adacore.com>
1441
1442         * optabs.c (maybe_encapsulate_block): New function extracted from...
1443         (emit_libcall_block): ...here.  Invoke it on the block of insns to
1444         maybe emit REG_LIBCALL/REG_RETVAL notes around the block.
1445         (emit_no_conflict_block): Likewise.
1446
1447 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1448
1449         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
1450
1451 2006-07-15  Roger Sayle  <roger@eyesopen.com>
1452
1453         * tree-gimple.c (is_gimple_stmt): Sink test of IS_EMPTY_STMT into
1454         a new NOP_EXPR case of the switch statement.
1455
1456 2006-07-15  Kaz Kojima  <kkojima@gcc.gnu.org>
1457
1458         PR middle-end/28160
1459         * stor-layout.c (place_field): Take the bit field with
1460         an excessive size into account in the ms-bitfiled case.
1461
1462         PR middle-end/28161
1463         * stor-layout.c (place_field): Use DECL_BIT_FIELD_TYPE of
1464         the previous bit field.
1465
1466 2006-07-14  Eliot Dresselhaus  <eliot@sonic.net>
1467
1468         PR target/27287
1469         * config/rs6000/spe.md (frob_di_df_2): Add m->r alternative.
1470
1471 2006-07-14  Ulrich Weigand  <uweigand@de.ibm.com>
1472
1473         * config/s390/linux-unwind.h (s390_fallback_frame_state): Detect
1474         signal frames correctly even when the signal was installed with
1475         sa_restorer set.
1476
1477 2006-07-14  Carlos O'Donell  <carlos@codesourcery.com>
1478
1479         * dbxout.c (dbxout_begin_prologue): Emit LFBB label at function start.
1480         (dbxout_function_end): Use local label LFBB. Remove hook
1481         DBX_OUTPUT_NFUN.
1482         (dbxout_source_line): Use local label LFBB.
1483         (dbxout_block): Likewise.
1484         (dbx_output_lbrac): Remove hook DBX_OUTPUT_LBRAC.
1485         (dbx_output_rbrac): Remove hook DBX_OUTPUT_RBRAC.
1486         * config/rs6000/linux64.h: Remove DBX_OUTPUT_LBRAC, DBX_OUTPUT_RBRAC,
1487         and DBX_OUTPUT_NFUN.
1488
1489 2006-07-13  Janis Johnson  <janis187@us.ibm.com>
1490
1491         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
1492
1493 2006-07-13  Jan Hubicka  <jh@suse.cz>
1494
1495         * cgraphunit.c (cgraph_varpool_analyze_pending_decls): Call
1496         align_variable.
1497         * output.h (align_variable): Declare.
1498         * varasm.c (align_variable): Export.
1499         * value-prof.c (tree_value_profile_transformations): Recompute iterator
1500         when basic block changed.
1501
1502 2006-07-13  Nick Clifton  <nickc@redhat.com>
1503
1504         * config/sh/sh.c (sh_reorg): Ignore deleted insns whilst
1505         walking the LOG_LINKS chain.
1506
1507 2006-07-12  Geoffrey Keating  <geoffk@apple.com>
1508
1509         * doc/invoke.texi (C++ Dialect Options): Explain difference
1510         between -fvisibility-inlines-hidden and setting hidden
1511         visibility explicitly.
1512
1513 2006-07-12  Eric Christopher  <echristo@apple.com>
1514
1515         * config/t-slibgcc-darwin (SHLIB_LINK): Don't munge stmp-lipo.
1516         (stmp-lipo): Depend on libgcc.a.
1517
1518 2006-07-12  Kazu Hirata  <kazu@codesourcery.com>
1519
1520         * tree.c: Fix a comment typo.
1521
1522 2006-07-12  Naveen.H.S  <naveenh@kpitcummins.com>
1523
1524         * config/m32c/muldiv.md (umulhisi3_c): Use only registers for
1525         dest.
1526         (umulhisi3_r): Likewise.
1527
1528 2006-07-12  Paolo Carlini  <pcarlini@suse.de>
1529
1530         PR libstdc++/27878
1531         * doc/install.texi (mips-sgi-irix6): Add note about IRIX 6.5.x,
1532         x < 19, vs wchar_t support.
1533
1534 2006-07-12  Nick Clifton  <nickc@redhat.com>
1535
1536         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Use -isa=sh4-up
1537         instead of -isa=sh4.
1538
1539 2006-07-12  Mike Stump  <mrs@apple.com>
1540
1541         * protoize.c (edit_fn_definition): Add volatile to clean_text_p.
1542
1543 2006-07-10  Eric Christopher  <echristo@apple.com>
1544
1545         * config/t-slibgcc-darwin: Rewrite.
1546
1547 2006-07-10  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1548
1549         PR bootstrap/20437
1550         * Makefile.in (configure): add missing aclocal.m4 and acinclude.m4
1551         dependencies.
1552
1553 2006-07-08  Matthias Klose  <doko@debian.org>
1554
1555         * doc/sourcebuild.texi: Fix typo.
1556
1557 2006-07-07  Mike Stump  <mrs@apple.com>
1558
1559         * toplev.c (process_options): Don't give -ffunction-sections may
1560         affect debugging warning for Mach-O.
1561
1562 2006-07-07  James E Wilson  <wilson@specifix.com>
1563
1564         * config/mips/mips.md (cpu): Add sb1a.
1565         * config/mips/sb1.md: Modify almost all patterns to accept sb1a in
1566         addition to sb1.  Adjust comments to clarify SB-1A differences from
1567         SB-1.
1568         (ir_sb1a_load): New.  Modify bypasses to use it.
1569         (ir_sb1a_simple_alu): Likewise.
1570         * config/mips/mips.c (mips_cpu_info_table): Add sb1a.
1571         (mips_rtx_cost_data): Add PROCESSOR_SB1A support.
1572         (mips_issue_rate): Add PROCESSOR_SB1A.
1573         (mips_multipass_dfa_lookahead): Use TUNE_SB1 instead of PROCESSOR_SB1.
1574         * config/mips/mips.h (processor_type): Add PROCESSOR_SB1A.
1575         (TARGET_SB1): Add PROCESSOR_SB1A check.
1576         (TUNE_SB1): Likewise.
1577
1578         * config/mips/mips-protos.h (mips_store_data_bypass_p): New.
1579         * config/mips/mips.c (mips_store_data_bypass_p): New.
1580         * config/mips/sb1.md: Use mips_store_data_bypass_p instead of
1581         store_data_bypass_p.
1582
1583 2006-07-08  Paul Brook  <paul@codesourcery.com>
1584
1585         PR target/27991
1586         * config/m68k/m68k.md: Add r-m patterns for 68881 movxf.
1587
1588 2006-07-07   Richard Guenther  <rguenther@suse.de>
1589
1590         PR middle-end/28268
1591         * tree.h (build_one_cst): Declare.
1592         * tree.c (build_one_cst): New function.
1593         * tree-ssa-math-opts.c (get_constant_one): Remove.
1594         (insert_reciprocals): Use build_one_cst.
1595         * fold-const.c (fold_plusminus_mult): Likewise.
1596
1597 2006-07-07  Roger Sayle  <roger@eyesopen.com>
1598
1599         * pointer-set.c (pointer_set_destroy): Correct whitespace.
1600         * cfgloopanal.c (dump_graph): Likewise.
1601         * dojump.c (discard_pending_stack_adjust): Likewise.
1602         * fix-header.c (TARGET_EXTRA_INCLUDE, TARGET_EXTRA_PRE_INCLUDES):
1603         Likewise.
1604         * alloc-pool.c (dump_alloc_pool_statistics): Likewise.
1605         * function.c (finalize_block_changes): Likewise.
1606         * gcc-common.c (ggc_free_overhead, dump_gcc_loc_statistics): Likewise.
1607         * tree-ssa-dce.c (clear_control_dependence_bitmap): Likewise.
1608         * rtl.c (dump_rtx_statistics): Likewise.
1609         * tree-ssa-structalias.c (sort_fieldstack, init_alias_heapvars):
1610         Likewise.
1611         * varray.c (dump_varray_statistics): Likewise.
1612         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
1613         decode_decimal64, encode_decimal128, decode_decimal128,
1614         decimal_real_to_decimal): Likewise.
1615
1616 2006-07-07  Richard Guenther  <rguenther@suse.de>
1617
1618         PR tree-optimization/28187
1619         * tree-vrp.c (vrp_operand_equal_p): New function.
1620         (vrp_bitmap_equal_p): Likewise.
1621         (update_value_range): Use them to compare old and new
1622         max and min values.
1623
1624 2006-07-06  Roger Sayle  <roger@eyesopen.com>
1625
1626         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Add
1627         a default case to switch statement to silence compiler warnings.
1628
1629 2006-07-06  Roger Sayle  <roger@eyesopen.com>
1630
1631         PR target/27968
1632         * configure.ac (HAVE_AS_IX86_FFREEP): On x86 targets check whether
1633         the configured assembler supports the x87's ffreep mnemonic.
1634         * configure: Regenerate.
1635         * config.in: Regenerate.
1636
1637         * config/i386/i386.c (output_387_ffreep): New function.
1638         (output_fp_compare): Use output_387_ffreep to emit ffreep insns.
1639         (output_387_reg_move): Likewise.
1640
1641 2006-07-06  Paul Eggert  <eggert@cs.ucla.edu>
1642
1643         Port to hosts whose 'sort' and 'tail' implementations
1644         treat operands with leading '+' as file names, as POSIX
1645         has required since 2001.  However, make sure the code still
1646         works on pre-POSIX hosts.
1647         * Makefile.in (slowcompare): Port to POSIX 1003.1-2001,
1648         which says you should use "tail -c +N" rather than "tail +Nc".
1649         Fix a bug: the old code incorrectly skipped 15 bytes, not 16.
1650
1651 2006-07-06  Zdenek Dvorak <dvorakz@suse.cz>
1652
1653         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Fix typo in
1654         argument name.
1655
1656 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
1657
1658         PR target/28150
1659         * config/rs6000/rs6000.c (rs6000_legitimate_address): Do not allow
1660         PRE_{INC,DEC} of TFmode.
1661
1662 2006-07-06  David Edelsohn  <edelsohn@gnu.org>
1663             Alan Modra  <amodra@bigpond.net.au>
1664
1665         PR target/28170
1666         * config/rs6000/rs6000.c (insvdi_rshift_rlwimi_p): Correct shiftop
1667         bounds. Simplify.
1668
1669 2006-07-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1670
1671         PR target/28285
1672         * config/alpha/predicates.md (alpha_swapped_comparison_operator):
1673         Remove duplicate gtu.
1674
1675 2006-07-05  Jason Merrill  <jason@redhat.com>
1676
1677         PR c++/13983
1678         PR c++/17519
1679         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
1680         * c-common.c (handle_packed_attribute): So don't copy it here.
1681         * c-decl.c (finish_struct): Don't copy TYPE_ALIGN.
1682
1683 2006-07-05  Mike Stump  <mrs@apple.com>
1684
1685         * doc/invoke.texi (Invoking G++): Clarify prose for g++.
1686
1687 2006-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1688
1689         PR target/26146
1690         * config.gcc: Check with_cpu for i[34567]86--*-solaris2.1[0-9]*.
1691
1692 2006-07-05  Richard Guenther  <rguenther@suse.de>
1693
1694         PR target/28158
1695         * config/i386/i386.md (*negdf2_1): Restrict pattern to
1696         TARGET_SSE2 targets if using SSE math.
1697         (*absdf2_1): Likewise.
1698
1699 2006-07-05  Richard Guenther  <rguenther@suse.de>
1700
1701         PR tree-optimization/28162
1702         * fold-const.c (fold_binary): For (-A) * (-B) -> A * B
1703         make sure to convert the operands to the correct type.
1704
1705 2006-07-04  Paolo Bonzini  <bonzini@gnu.org>
1706
1707         PR tree-optimization/28218
1708
1709         * tree-ssa-math-opts.c (execute_cse_reciprocals): Fix calls
1710         to calculate and free the dominator information.
1711
1712 2006-07-04  Peter O'Gorman  <peter@pogma.com>
1713
1714         * mklibgcc.in: chmod 644 before ranlib during install.
1715
1716 2006-07-04  Andrew Stubbs <andrew.stubbs@st.com>
1717             J"orn Rennecke <joern.rennecke@st.com>
1718
1719         * configure.ac (.eh_frame data check): Use diff -b.
1720
1721 2006-07-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1722
1723         PR bootstrap/18058
1724         * Makefile.in (BUILD_RTL): Add build/vec.o.
1725         (build/gencondmd.o): Filter out -fkeep-inline-functions.
1726         (build/genextract): Delete.
1727         (build/genautomata): Likewise.
1728
1729 2006-07-04  Alan Modra  <amodra@bigpond.net.au>
1730
1731         PR target/28207
1732         * config/rs6000/rs6000.c (function_arg_boundary): Double-word align
1733         128-bit IBM long doubles for ABI_V4.
1734
1735 2006-07-03  Eric Botcazou  <ebotcazou@adacore.com>
1736
1737         * tree.c (range_in_array_bounds_p): New predicate.
1738         * tree.h (range_in_array_bounds_p): Declare it.
1739         * tree-eh.c (tree_could_trap_p) <ARRAY_RANGE_REF>: Use it to
1740         return a less conservative answer.
1741         * tree-sra.c (struct sra_elt): Add new pointer field 'groups'
1742         and flag 'is_group'.
1743         (IS_ELEMENT_FOR_GROUP): New macro.
1744         (FOR_EACH_ACTUAL_CHILD): Likewise.
1745         (next_child_for_group): New helper function.
1746         (can_completely_scalarize_p): Take into account groups.
1747         (sra_hash_tree): Handle RANGE_EXPR.
1748         (sra_elt_eq): Likewise.
1749         (lookup_element): Be prepared for handling groups.
1750         (is_valid_const_index): Delete.
1751         (maybe_lookup_element_for_expr) <ARRAY_REF>: Use in_array_bounds_p
1752         instead of is_valid_const_index.
1753         <ARRAY_RANGE_REF>: New case.
1754         (sra_walk_expr) <ARRAY_REF>: Use in_array_bounds_p instead of
1755         is_valid_const_index.
1756         <ARRAY_RANGE_REF>: Do not unconditionally punt.
1757         (scan_dump): Dump info for groups too.
1758         (decide_instantiation_1): Likewise.
1759         (decide_block_copy): Assert that the element is not a group.
1760         Propagate decision to groups.
1761         (generate_one_element_ref): Handle RANGE_EXPR.
1762         (mark_no_warning): Iterate over actual childs.
1763         (generate_copy_inout): Likewise.
1764         (generate_element_copy): Likewise.
1765         (generate_element_zero): Likewise.
1766         (generate_element_init_1): Likewise.
1767         (dump_sra_elt_name): Handle RANGE_EXPR.
1768
1769 2006-07-03  Roger Sayle  <roger@eyesopen.com>
1770
1771         PR tree-optimization/26251
1772         * tree-ssa-threadupdate.c (redirection_block_p): New function.
1773         (thread_block): When optimizing for size refuse to thread jumps
1774         that would require duplication of blocks other than redirection
1775         blocks.
1776
1777 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
1778
1779         * configure.ac: Fix thinko in previous check-in.
1780         * configure: Regenerate.
1781
1782 2006-07-03  Paolo Bonzini  <bonzini@gnu.org>
1783
1784         PR other/27063
1785         * configure.ac (for lang...): Simplify nesting of conditionals.
1786         Test subdir_requires for non-enabled languages.  Move processing
1787         of lang_opt_files and lang_tree_fiels below that test.
1788         * configure: Regenerate.
1789         * doc/sourcebuild.texi (Front End Config): Document subdir_requires.
1790
1791 2006-07-01  Martin Michlmayr  <tbm@cyrius.com>
1792
1793         * doc/gcov.texi (Invoking Gcov): Add a missing word.
1794
1795 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
1796
1797         * cfgexpand.c, config/i386/i386.c, genpreds.c, tree-cfg.c: Fix
1798         comment typos.
1799
1800 2006-06-29  Jason Merrill  <jason@redhat.com>
1801
1802         PR c++/26905
1803         PR c++/26612
1804         PR c++/27000
1805         PR c++/26984
1806         PR c++/19134
1807         * tree.c (build_decl_stat): Don't hande #pragma visibility here.
1808         * c-common.c (c_determine_visibility): Handle it here.
1809         * c-decl.c (finish_decl): Call c_determine_visibility for
1810         functions, too.
1811         * flags.h (enum symbol_visibility): Sort from most to least visibility.
1812         * tree.h: Likewise.
1813         * varasm.c (default_assemble_visibility): Likewise.
1814         * c-common.c (handle_visibility_attribute): Complain about trying
1815         to give visibility to an already defined class, or trying to change
1816         declared visibility. Always attach the attribute.
1817
1818         PR c++/26905
1819         PR c++/21675
1820         PR c++/17470
1821         * attribs.c (decl_attributes): Ignore type-in-place attributes
1822         once the type has been defined.
1823
1824 2006-06-29  Roger Sayle  <roger@eyesopen.com>
1825
1826         PR middle-end/27428
1827         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
1828         to indicate the cpplib has issued an error message for us.
1829
1830 2006-06-29  Asher Langton  <langton2@llnl.gov>
1831
1832         PR target/25765
1833         * config/i386/i386.c (ix86_output_function_epilogue): Don't
1834         insert a label at the end of an function under Mach-O.
1835
1836 2006-06-29  Eric Christopher  <echristo@apple.com>
1837             Evan Cheng  <evan.cheng@apple.com>
1838
1839         * predicates.md (vector_all_ones_operand): New.
1840         (nonimmediate_or_sse_const_operand): Ditto.
1841         * config/i386/i386-protos.h (standard_sse_constant_opcode): Declare.
1842         * config/i386/i386.c (standard_sse_constant_opcode): Define.
1843         (standard_sse_mode_p): Ditto.
1844         (standard_sse_constant_p): Add case for -1 vector.
1845         (ix86_expand_vector_move): Try to use.
1846         * sse.md (*mov<mode>_internal): Use nonimmediate_or_sse_const_operand.
1847         Call standard_sse_constant_opcode.
1848         (*movv4sf_internal): Ditto.
1849         (*movv2df_internal): Ditto.
1850
1851 2006-06-29  Roger Sayle  <roger@eyesopen.com>
1852
1853         * genpreds.c (write_match_code_switch): Correctly use XSTR instead
1854         of XEXP to extract the operands of a MATCH_CODE rtx.
1855
1856 2006-06-28  Andrew Pinski  <pinskia@gmail.com>
1857
1858         * tree.c (tree_size): Do not waste tail padding in
1859         struct tree_string and make the size be the same as
1860         build_string will generate.
1861
1862 2006-06-28  Jason Merrill  <jason@redhat.com>
1863
1864         PR c++/27768
1865         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add
1866         may_aliases already in the tag's annotations to the bitmap.
1867
1868 2006-06-28  Roger Sayle  <roger@eyesopen.com>
1869
1870         * genpreds.c (write_predicate_stmts) <IOR>: Add missing break.
1871
1872 2006-06-28  Roger Sayle  <roger@eyesopen.com>
1873
1874         * genpreds.c (generate_switch_p): New function.
1875         (add_mode_tests): Push the new mode test down inside an AND expr
1876         if this allows the switch-suitable MATCH_CODE to be near the root.
1877         (write_match_code_switch): New function to write a MATCH_CODE as
1878         a switch statement.
1879         (write_predicate_stmts): New function to write a predicate RTX
1880         expression as a sequence of statements.
1881         (write_one_predicate_function): Use write_predicate_stmts.
1882         (write_tm_constrs_h): Likewise.
1883
1884 2006-06-26  Fred Fish  <fnf@specifix.com>
1885
1886         * config/mips/t-sb1: New file.
1887         * config.gcc (mipsisa64sb1-*-elf*): Add mips/t-sb1 to
1888         tmake_file list.
1889
1890 2006-06-26  DJ Delorie  <dj@redhat.com>
1891
1892         * config/m32c/m32c.c (m32c_print_operand): Fix sign-merging logic.
1893
1894 2006-06-26  Naveen H.S  <naveenh@kpitcummins.com>
1895             Jayant Sonar  <jayants@kpitcummins.com>
1896             Jaydeep Vipradas  <jaydeepv@kpitcummins.com>
1897
1898         * config/m32c/addsub.md (addsi3, addsi3_1, addsi3_2): New.
1899         (subsi3, subsi3_1, subsi3_2): New.
1900         * config/m32c/bitops.md (andsi3, iorsi3, xorsi3): New.
1901         * config/m32c/mov.md (SI mov peephole): New.
1902         * config/m32c/m32.c (m32c_immd_dbl_mov): New.
1903         * config/m32c/m32c-protos.h (m32c_immd_dbl_mov): New.
1904
1905 2006-06-26  Olivier Hainque  <hainque@adacore.com>
1906
1907         * function.c (aggregate_value_p): Honor DECL_BY_REFERENCE on
1908         a CALL_EXPR target function declaration.
1909
1910 2006-06-26  Richard Guenther  <rguenther@suse.de>
1911
1912         * tree.c (build_string): Do not waste tail padding in
1913         struct tree_string.
1914
1915 2006-06-26  Richard Guenther  <rguenther@suse.de>
1916
1917         * ggc-page.c (init_ggc): Add missing element to size_lookup
1918         table.
1919
1920         Revert
1921         2006-06-23  Richard Guenther  <rguenther@suse.de>
1922
1923         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
1924         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
1925         alignment requests instead.  Add verification code.
1926         Add struct tree_function_decl and struct tree_binfo size to
1927         extra_order_size_table.  Add missing element to size_lookup
1928         table.
1929
1930 2006-06-25  Eric Botcazou  <ebotcazou@adacore.com>
1931
1932         PR middle-end/28151
1933         * fold-const.c (const_binop): Be prepared for self returning zero.
1934         Simplify code handling complex values.
1935
1936 2006-06-24  Olivier Hainque  <hainque@adacore.com>
1937
1938         * gimplify.c (gimplify_scalar_mode_aggregate_compare): New function.
1939         (gimplify_expr): Use it for tcc_comparison of operands of non BLKmode
1940         aggregate types.
1941
1942 2006-06-24  Olivier Hainque  <hainque@adacore.com>
1943
1944         * tree-ssa-loop-im.c (for_each_index): Handle ARRAY_RANGE_REF as
1945         ARRAY_REF, so have the callback called for the low bound expression.
1946
1947 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
1948
1949         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
1950         * c-typeck.c (c_common_type): Disallow operations on decimal float
1951         types and other float types.
1952         * convert.c (convert_to_real): Don't ignore conversions involving
1953         decimal float types.
1954
1955 2006-06-23  Olivier Hainque  <hainque@adacore.com>
1956
1957         * tree.c (max_int_size_in_bytes): New function, inspired from
1958         code in function.c:assign_temp.
1959         * tree.h (max_int_size_in_bytes): Declare.
1960         * function.c (assign_temp): Use it.
1961         * gimplify.c (create_tmp_var): Relax the assertions on the type
1962         properties, not mandating constant size any more.
1963         (force_constant_size): New static function.
1964         (gimple_add_tmp_var): Use it, forcing variable size to a
1965         constant upper bound if it is not constant on entry.
1966
1967 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
1968
1969         PR target/27789
1970         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
1971         for initialization and setting of one_only flag to ...
1972         (i386_pe_encode_section_info): ...here.
1973         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
1974         Recheck that the symbol has not been defined.
1975
1976 2006-06-23  Richard Guenther  <rguenther@suse.de>
1977
1978         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
1979         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
1980         alignment requests instead.  Add verification code.
1981         Add struct tree_function_decl and struct tree_binfo size to
1982         extra_order_size_table.  Add missing element to size_lookup
1983         table.
1984
1985 2006-06-22  Roger Sayle  <roger@eyesopen.com>
1986             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1987
1988         PR middle-end/28131
1989         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
1990         call to lang_hooks.types.type_for_mode returned NULL_TREE.
1991
1992 2006-06-23  Ben Elliston  <bje@au.ibm.com>
1993
1994         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
1995         negate dn -- manipulate it directly.
1996
1997 2006-06-22  Roger Sayle  <roger@eyesopen.com>
1998             Steven Bosscher  <stevenb.gcc@gmail.com>
1999
2000         PR target/27531
2001         * reload1.c (gen_reload): Call mark_jump_label on the new insns
2002         generated by gen_move_insn to add REG_LABEL notes if necessary.
2003
2004 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
2005
2006         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
2007         (leaf_entry): Remove use of MIN_ESA.
2008
2009 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
2010
2011         PR rtl-optimization/28121
2012         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
2013         the entry edge.
2014
2015 2006-06-21  DJ Delorie  <dj@redhat.com>
2016
2017         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
2018         (TN-16C-A156A/E).
2019         (mulhisi3_r): Likewise.
2020
2021 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
2022
2023         PR middle-end/28034
2024         * coverage.c (coverage_counter_alloc): Leave the index type
2025         unspecified.
2026         (coverage_counter_alloc): Use null arguments for operands 2 and 3
2027         of the ARRAY_REF.
2028
2029 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
2030
2031         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
2032         section from the "Options for Code Generation Conventions".
2033
2034 2006-06-21  Richard Henderson  <rth@redhat.com>
2035
2036         PR target/26347
2037         PR target/27082
2038         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
2039         symbols.
2040         (global_symbolic_operand): Allow weak symbols, even if local_p.
2041
2042 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
2043
2044         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
2045         (find_interesting_uses_address): Punt if above function returns true.
2046
2047 2006-06-21  Richard Guenther  <rguenther@suse.de>
2048
2049         * configure: Regenerated.
2050
2051 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
2052
2053         * config/mips/mips.c (function_arg): Where one part of a
2054         complex argument is in registers and the other part in the stack,
2055         return a REG not a PARALLEL.
2056
2057 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
2058
2059         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
2060         when cross-compiling.  Do not substitute libstdcxx_incdir.
2061         * configure: Regenerated.
2062
2063 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
2064
2065         * varasm.c (mergeable_string_section): Check for embedded NULs and
2066         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
2067         rather than TREE_STRING_LENGTH bytes.
2068
2069 2006-06-21  Richard Guenther  <rguenther@suse.de>
2070
2071         * ggc-page.c (extra_order_size_table): Add var_ann_d,
2072         tree_ssa_name, bitmap_element and phi_node with 4 arguments
2073         sizes.
2074
2075 2006-06-21  Richrad Guenther  <rguenther@suse.de>
2076
2077         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
2078         Limit iteration over the dominators.
2079
2080 2006-06-20  Roger Sayle  <roger@eyesopen.com>
2081
2082         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
2083         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
2084
2085 2006-06-20  Richard Guenther  <rguenther@suse.de>
2086         Michael Matz  <matz@suse.de>
2087
2088         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
2089         function.
2090         * alloc-pool.c (free_alloc_pool_if_empty): New function.
2091         * et-forest.h (et_free_pools): Prototype new function.
2092         * et-forest.c (et_free_tree_force): Free parent occurrence.
2093         (et_free_pools): New function.
2094         * dominance.c (free_dominance_info): Free et-forest alloc
2095         pools.
2096
2097 2006-06-20  Roger Sayle  <roger@eyesopen.com>
2098
2099         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
2100         integer modes, attempt to directly construct an integer constant.
2101
2102         * fold-const.c (native_encode_vector): Determine the size of each
2103         element from the vector type instead of the first vector element.
2104
2105         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
2106         if all of its elements/components are constant.
2107         (build_constructor_from_list): Likewise.
2108
2109 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
2110
2111         PR tree-optimization/27331
2112         * tree-data-ref.c (free_data_ref): New function.
2113         (create_data_ref): Fail if the data reference has unknown access
2114         function.
2115         (free_data_refs): Use free_data_ref.
2116
2117 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
2118
2119         PR middle-end/28075
2120         * tree-inline.c (setup_one_parameter): Strip useless
2121         type conversion before adding it to the IR.
2122         (declare_return_variable): Likewise.
2123
2124 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
2125
2126         PR c/27149
2127         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
2128
2129 2006-06-19  Mike Stump  <mrs@apple.com>
2130
2131         * tree.c (variably_modified_type_p): VM arguments don't make the
2132         type a VM type.
2133
2134 2006-06-19  Richard Guenther  <rguenther@suse.de>
2135
2136         * tree-ssa-pre.c (try_combine_conversion): Strip useless
2137         type conversions after folding.
2138
2139 2006-06-19  Richard Guenther  <rguenther@suse.de>
2140
2141         * ggc-page.c (extra_order_size_tab): Add entries with
2142         size of struct function and basic_block.
2143         (size_lookup): Extend to cover sizes up to 511.
2144         (ggc_alloc_stat): Adjust user.
2145         (ggc_pch_count_object): Likewise.
2146         (ggc_pch_alloc_object): Likewise.
2147         (ggc_pch_write_object): Likewise.
2148
2149 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
2150
2151         * tree-ssa-loop-niter.c (implies_ge_p): New function.
2152         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
2153         correctly.
2154
2155 2006-06-19  Denis Chertykov  <denisc@overta.ru>
2156
2157         * config/avr/libgcc.S : Correct my wrong previous commit.
2158
2159 2006-06-19  Roger Sayle  <roger@eyesopen.com>
2160
2161         PR target/27861
2162         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
2163         have stripped a SUBREG from the shift count, so we may need to
2164         convert_to_mode back to the type's mode before calling make_tree.
2165         Use new_amount instead of amount to avoid expanding a tree twice.
2166
2167 2006-06-19  Richard Guenther  <rguenther@suse.de>
2168
2169         PR middle-end/28045
2170         * fold-const.c (operand_equal_p): Check if the argument types
2171         have the same precision before stripping NOPs.
2172
2173 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
2174
2175         Fix PR tree-optimization/27341
2176         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
2177         statement we get.
2178         * tree-complex.c (pass_lower_complex): Update SMT usage.
2179
2180 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2181
2182         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"):
2183         Add a new alternative to the constraint strings. Add move of
2184         operand 1 to 3 to the splitter definition.
2185         ("doloop_si_long"): Second contraint alternative removed.
2186
2187 2006-06-08  Anatoly Sokolov <aesok@post.ru>
2188
2189         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
2190         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and
2191         __AVR_HAVE_LPMX__.
2192         (AVR_HAVE_MOVW) Define.
2193         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
2194         (ASM_SPEC): Add avr25.
2195         (LINK_SPEC): Add avr25.
2196         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
2197         (base_arch_s): Add new member 'have_movw_lpmx'.
2198         (avr_arch_types): Init 'have_movw_lpmx'.
2199         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
2200         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
2201         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
2202         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
2203         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use
2204         AVR_HAVE_MOVW.
2205         (avr_file_start): Do not output '.arh' derective.
2206         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
2207         (__do_copy_data): Use __AVR_HAVE_LPMX__.
2208         * config/avr/avr.md (mcu_enhanced): Delete.
2209         (mcu_have_movw): Define.
2210         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
2211         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
2212         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
2213         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
2214         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461,
2215         attiny861 and at86rf401 devices.
2216
2217 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
2218
2219         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
2220         of 4096.
2221
2222 2006-06-17  Karl Berry  <karl@gnu.org>
2223
2224         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
2225         doc/gccint.texi, doc/install.texi (@dircategory): Use
2226         "Software development" instead of "Programming", following
2227         the Free Software Directory.
2228
2229 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
2230
2231         * config/i386/i386.c (legitimate_tls_address)
2232         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
2233         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
2234         (*tls_dynamic_gnu2_combine_64): Likewise.
2235
2236 2006-06-16  Richard Guenther  <rguenther@suse.de>
2237
2238         PR middle-end/27116
2239         * fold-const.c (negate_expr_p): Do not introduce undefined
2240         overflow in negating INTEGER_CSTs.
2241         (fold_negate_expr): Rename from negate_expr.  Revert last
2242         change for folding BIT_NOT_EXPR.  Change semantics to
2243         return NULL_TREE for non-simplified negations.  Do not
2244         strip type conversions and unify type handling.
2245         (negate_expr): New function, wrap around fold_negate_expr
2246         but ensure building a tree always.  Strip type conversions
2247         here, fold to result type.
2248         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
2249
2250 2006-06-16  Roger Sayle  <roger@eyesopen.com>
2251
2252         PR middle-end/27802
2253         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
2254         that (would) return their results in stack registers.
2255
2256 2006-06-16  Michael Matz  <matz@suse.de>
2257         Richard Guenther  <rguenther@suse.de>
2258
2259         * fold-const.c (fold_truthop): Only return new tree node if
2260         we canonicalized something.
2261
2262 2006-06-16  Richard Guenther  <rguenther@suse.de>
2263
2264         * function.h (enum function_frequency): Move declaration
2265         out of struct function.
2266         (struct function): Move bool fields and the enum to the bitfield
2267         section.  Reorder elements to avoid padding.  Remove unused
2268         fields left over from the RTL inliner removal.
2269         * function.c (free_after_compilation): Do not zero removed fields.
2270         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
2271         (ipa-type-escape.o): Likewise.
2272
2273 2006-06-16  Richard Guenther  <rguenther@suse.de>
2274
2275         * cgraph.h (struct cgraph_local_info): Turn bool elements
2276         into a bitfield.
2277         (struct cgraph_node): Likewise.
2278         (struct cgraph_varpool_node): Likewise.
2279
2280 2006-06-15  Richard Guenther  <rguenther@suse.de>
2281
2282         * fold-const.c (fold_truth_not_expr): Rename from
2283         invert_truthvalue.  Give it fold_* semantics to avoid
2284         generating garbage.
2285         (invert_truthvalue): New function.  Wrapper around
2286         fold_truth_not_expr.
2287         (optimize_minmax_comparison): Avoid creating garbage.
2288         (fold_unary): Use fold_truth_not_expr for folding
2289         TRUTH_NOT_EXPR.
2290         (fold_ternary): Replace uses of invert_truthvalue with
2291         fold_truth_not_expr where applicable.
2292         * tree.h (fold_truth_not_expr): Prototype.
2293
2294 2006-06-16  Richard Guenther  <rguenther@suse.de>
2295
2296         PR tree-optimization/27781
2297         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
2298         * ipa-pure-const.c (target.h): Include.
2299         (analyze_function): Do not analyze functions that do not
2300         bind locally.
2301
2302 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
2303
2304         PR middle-end/27793
2305         * tree-dfa.c (referenced_vars_dup_list): Remove.
2306         (find_referenced_vars): Remove assert.
2307         (referenced_var_check_and_insert): Replace dup list with assert.
2308         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
2309         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
2310
2311 2006-06-15  Richard Guenther  <rguenther@suse.de>
2312
2313         * tree-ssa-structalias.c (alias_get_name): Avoid creating
2314         extra unused identifiers if not dumping.
2315         (create_variable_info_for): Likewise.
2316
2317 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
2318
2319         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
2320         (derive_constant_upper_bound): Derive more precise upper bound in
2321         common cases.  Return type changed to double_int.
2322         (record_estimate): Reflect the changed return type of
2323         derive_constant_upper_bound.
2324         * double-int.c (double_int_zext, double_int_sext): Fix.
2325
2326 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
2327
2328         * configure.ac (CFLAGS): Get them from the toplevel or from the
2329         configure invocation.
2330         * configure: Regenerate.
2331         * Makefile.in (CFLAGS): Substitute value provided by configure.
2332
2333 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
2334
2335         PR c++/26559
2336         * c-common.h (c_finish_omp_atomic): Adjust declaration.
2337         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
2338         rather than calling add_stmt on it.
2339         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
2340
2341 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2342
2343         PR middle-end/27959
2344         * reload1.c (reload): Remove registers returned by update_eliminables
2345         from used_spill_regs.
2346
2347 2006-06-13  DJ Delorie  <dj@redhat.com>
2348
2349         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
2350
2351 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
2352
2353         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
2354         html__strip_dir, html__mkdir_p. Enhance install-html target.
2355         * configure.ac: AC_SUBST datarootdir, docdir and htmldir.
2356         * configure: Regenerate.
2357
2358 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
2359
2360         * fold-const.c (fold_cond_expr_with_comparison): Check for
2361         Objective-C++ as language in deciding COND_EXPR transformation.
2362
2363 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
2364
2365         PR target/28014:
2366         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
2367         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
2368         * config/sh/lib1funcs.h (SL, SL1): Define.
2369         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
2370         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
2371         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
2372         (OBJS_Os_4_200): New variable.
2373         ($(T)libgcc-Os-4-200.a): Use it.
2374         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
2375         when dividing 1 and/or by 0.
2376
2377 2006-06-13  Roger Sayle  <roger@eyesopen.com>
2378
2379         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
2380         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
2381         * configure: Regenerate.
2382
2383 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
2384
2385         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
2386         for real instruction.
2387
2388 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2389
2390         PR middle-end/26807
2391         * haifa-sched.c (check_cfg): Handle special case.
2392
2393 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
2394
2395         PR debug/26754
2396         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
2397         Add debug_info parameter.  Chain the vars to the BLOCK instead
2398         of the BIND_EXPR if debug info are requested for them.
2399         (pop_gimplify_context): Adjust for above change.
2400         (gimple_add_tmp_var): Likewise.
2401         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
2402         Add bool parameter.
2403         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
2404         (convert_local_reference): Likewise.
2405         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
2406         (finalize_nesting_tree_1): Request that debug info be emitted
2407         for debug_var_chain.
2408
2409 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2410
2411         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
2412         for PR target/27863.
2413
2414 2006-06-13  Richard Guenther  <rguenther@suse.de>
2415
2416         PR middle-end/27536
2417         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
2418
2419 2006-06-13  Richard Guenther  <rguenther@suse.de>
2420
2421         PR tree-optimization/27830
2422         * tree-inline.c (copy_body_r): For copying the operand
2423         of an ADDR_EXPR make sure to fold &* afterwards.
2424
2425 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
2426
2427         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
2428         lvalues in the fb_none case with side-effects.
2429
2430 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
2431
2432         * tree-flow.h: Remove the prototype for
2433         compute_phi_arg_on_exit.
2434         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
2435         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
2436         Remove.
2437
2438 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
2439
2440         * builtins.c (expand_builtin_return_addr): Only use
2441         frame_pointer_rtx when count == 0 and we are expanding
2442         __builtin_return_address.
2443
2444 2006-06-12  Fred Fish  <fnf@specifix.com>
2445
2446         * config/mips/mips.c (mips_file_start): Create special section
2447         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
2448
2449 2006-06-11  Eric Christopher  <echristo@apple.com>
2450
2451         PR middle-end/27948
2452         * stor-layout.c (place_field): Remove check for
2453         remaining_in_alignment when aligning at the end of a run.
2454
2455 2006-06-11  Eric Christopher  <echristo@apple.com>
2456
2457         PR 27542
2458         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
2459         pragma.
2460
2461 2006-06-11  Roger Sayle  <roger@eyesopen.com>
2462
2463         PR target/27858
2464         Revert incorrect fix for PR target/27158
2465         2006-05-08  Roger Sayle  <roger@eyesopen.com>
2466         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2467         of a reg_equiv_constant if the result is a legitimate constant.
2468
2469 2006-06-11  Roger Sayle  <roger@eyesopen.com>
2470
2471         PR target/27158
2472         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
2473         extract a CONST_VECTOR element and interpret it as an integer.
2474         (vspltis_constant): Use const_vector_elt_as_int instead of the
2475         macro CONST_VECTOR_ELT in order to handle FP vector modes.
2476         * config/rs6000/predicates.md (easy_vector_const): Consider
2477         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
2478
2479 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2480
2481         PR middle-end/27942
2482         * stor-layout.c (update_alignment_for_field): Don't add extra
2483         alignment for packed non-bitfield fields in ms_bitfield_layout_p
2484         code.
2485
2486 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
2487
2488         * config/mips/t-rtems: Add EL/EB multilib variants.
2489
2490 2006-06-09  Mike Stump  <mrs@apple.com>
2491
2492         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
2493
2494 2006-06-09  David Daney  <ddaney@avtrex.com>
2495
2496         * doc/install.texi: Add binutils version recommendation for mips-*-*.
2497
2498 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2499
2500         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
2501
2502 2006-06-09  Richard Guenther  <rguenther@suse.de>
2503
2504         PR tree-optimization/26998
2505         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
2506         of signed types, only TYPE_MIN_VALUE is special, but for both,
2507         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
2508         in this case, as is -fwrapv.
2509
2510 2006-06-08  Mike Stump  <mrs@apple.com>
2511
2512         PR target/26427
2513         * config/darwin.c (darwin_asm_output_anchor): Disable
2514         -fsection-anchors on darwin for now.
2515         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
2516         * rs6000/rs6000.c (optimization_options): Likewise.
2517
2518 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2519
2520         PR target/27421
2521         * config/i386/i386.c (classify_argument): Skip fields with invalid
2522         types in unions.
2523
2524 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
2525
2526         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
2527         (cse_insn): Likewise for the stack_pointer_rtx.
2528
2529 2006-06-08  Roger Sayle  <roger@eyesopen.com>
2530
2531         * tree-ssa-dom.c (record_conditions): Only record "unordered"
2532         conditions from floating point comparisons.
2533
2534 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
2535
2536         PR middle-end/27733
2537         * expmed.c (struct alg_hash_entry): Fix type of field T
2538         to match synth_mult argument.
2539         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
2540
2541 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2542
2543         PR target/27863
2544         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
2545         block boundaries.
2546
2547 2006-06-08  Richard Guenther  <rguenther@suse.de>
2548
2549         PR middle-end/27116
2550         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
2551         only, if overflow is defined and not trapping.
2552         (negate_expr): Likewise.
2553
2554 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
2555
2556         PR tree-optimization/27872
2557         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
2558         flag on the new exit edge of the unrolled loop.
2559
2560 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
2561
2562         PR rtl-optimization/26449
2563         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
2564
2565 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
2566
2567         PR middle-end/27793
2568         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
2569         referenced_variables with matching DECL_UID's.
2570         (find_referenced_vars): Make sure duplicate list is empty to start.
2571         (referenced_var_p): Remove.
2572         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
2573         Check if var is in the list, and add if needed.  Update the duplicate
2574         list if a different var is in the list with the same DECL_UID.
2575         (add_referenced_var): Call routine to check and insert.
2576         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
2577         * tree-flow.h (referenced_vars_dup_list): External declaration.
2578
2579 2006-06-07  Fred Fish  <fnf@specifix.com>
2580
2581         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
2582         into single entry.
2583
2584 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
2585
2586         PR target/27390
2587         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
2588         the imaginary and real parts of a clobbered register.
2589         Emit insn to set the imaginary part.
2590
2591 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
2592
2593         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
2594         in lieu of unwind-dw2-fde.c.
2595
2596 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2597
2598         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
2599
2600 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
2601
2602         PR target/27842
2603         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
2604         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
2605         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
2606         V4SImode temporaries and operations instead.
2607
2608 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
2609
2610         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
2611         dp-bit.c.
2612
2613 2006-06-06  Mike Stump  <mrs@apple.com>
2614
2615         * Makefile.in: Rename to htmldir to build_htmldir to avoid
2616         installing during build.
2617
2618 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
2619
2620         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
2621         value to 0.
2622         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
2623         * config/ia64/ia64.c (params.h): New header.
2624         (ia64_optimization_options): New function to adjust parameters.
2625         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
2626         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
2627         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
2628
2629 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
2630
2631         * stor-layout.c (debug_rli): Fix a typo in a debug message.
2632
2633 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
2634
2635         PR target/27051
2636         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
2637
2638 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
2639             Victor Kaplansky  <victork@il.ibm.com>
2640
2641         PR tree-optimization/26360
2642         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
2643         stmts.
2644
2645 2006-06-04  Roger Sayle  <roger@eyesopen.com>
2646             Andrew Pinski  <pinskia@physics.uc.edu>
2647
2648         PR middle-end/27382
2649         * c-common.c (c_common_truthvalue_conversion): Explicitly check
2650         for LABEL_DECL before calling DECL_WEAK.
2651
2652         PR c/27150
2653         * c-typeck.c (build_binary_op): Likewise, explicitly check for
2654         LABEL_DECL and PARM_DECL.
2655
2656 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
2657
2658         PR c/25161
2659         PR c/27020
2660         * c-decl.c (grokdeclarator): Disallow variably modified types at
2661         file scope.  Avoid marking shared array type of constant size as
2662         VLA.
2663
2664 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2665
2666         PR c++/27601
2667         * c-common.c (fold_offsetof_1): Handle static members.
2668
2669 2006-06-04 Eric Christopher <echristo@apple.com>
2670
2671         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
2672         (debug_rli): Output value for remaining_in_alignment.
2673         (update_alignment_for_field): Unconditionalize
2674         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
2675         extra alignment code.
2676         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
2677         ms_bitfield_layout_p code. Rewrite handling of structure fields.
2678         * tree.h (record_layout_info_s): Remove prev_packed.
2679         * doc/extend.texi (ms_struct): Add documentation of format.
2680
2681 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
2682
2683         * tree.h: Declare folding_initializer.
2684         * builtins.c (fold_builtin_constant_p): Give definite answer
2685         if folding inside an initializer.
2686         * fold-const.c: Define folding_initializer.
2687         (START_FOLD_INIT): Save and then set folding_initializer.
2688         (END_FOLD_INIT): Restore folding_initializer.
2689
2690 2006-06-04  Richard Guenther  <rguenther@suse.de>
2691
2692         PR tree-optimization/27039
2693         * fold-const.c (fold_comparison): Handle pointer comparison
2694         again for all comparison codes.  Compare offsets in signed
2695         size type.
2696         (fold_binary): Move code from here.
2697
2698 2006-06-03  Roger Sayle  <roger@eyesopen.com>
2699
2700         PR target/26223
2701         * config/i386/i386.c (construct_container): Split static issued_error
2702         flag into issued_sse_arg_error, issued_sse_ret_error and
2703         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
2704         requires the use of x87 registers and the user explicitly
2705         specified the -mno-80387 command line option.
2706
2707 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
2708
2709         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
2710         HAVE_DECL_SIGALTSTACK.
2711         (MC_FLD): New.
2712         (segv_handler): Use MC_FLD.
2713         * configure.ac: Check for a sigaltstack declaration.
2714         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
2715         * configure: Regenerate.
2716         * config.in: Regenerate.
2717
2718 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
2719
2720         PR other/27850
2721         * Makefile.in (stmp-fixinc): Fix typo.
2722
2723 2006-06-02  Roger Sayle  <roger@eyesopen.com>
2724
2725         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
2726         are type correct.  Clean-up.
2727         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
2728         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
2729
2730 2006-06-01  DJ Delorie  <dj@redhat.com>
2731
2732         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
2733         shift, as we've disabled the "switch" insn that needs it.
2734
2735 2006-06-01  Per Bothner  <bothner@bothner.com>
2736
2737         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
2738         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
2739         * c-ppoutput.c (cb_define): Don't increment line 0.
2740
2741 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
2742
2743         * doc/invoke.texi: Add cpu_type power6.
2744         * config.gcc: Add cpu_type power6.
2745         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
2746         to power5+ with Altivec.
2747         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
2748         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
2749
2750 2006-05-30  Anatoly Sokolov <aesok@post.ru>
2751
2752         * config/avr/avr.h (SET_ASM_OP): Define.
2753
2754 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
2755
2756         * config/bfin/bfin.c: Fix comment typos.
2757
2758 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
2759
2760         PR 25453
2761         * doc/install.texi: Document --enable-bootstrap and
2762         --disable-bootstrap.
2763
2764 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
2765
2766         * doc/install.texi: Document that InfoZIP can replace jar.
2767
2768 2006-05-31  Roger Sayle  <roger@eyesopen.com>
2769
2770         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
2771         isn't available, directly generate the simpler x87 patterns without
2772         the (use (const_int 0)).
2773         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
2774         implementation isn't available.
2775         (*negdf2_1): Likewise.
2776         (*negxf2_1): XF mode negation is always done using the x87.
2777         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
2778
2779 2006-05-31  Roger Sayle  <roger@eyesopen.com>
2780
2781         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
2782         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
2783         cabs(z).
2784         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
2785
2786 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
2787
2788         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
2789         * config/bfin/bfin.c (basic-block.h): Include.
2790         (struct machine_function): New.
2791         (bfin_init_machine_status): New.
2792         (override_options): Initialize init_machine_status.
2793         (bfin_hardware_loop): New.
2794         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
2795         (DEF_VEC_P (loop_info)): New.
2796         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
2797         (struct loop_info): New.
2798         (loop_info): New typedef.
2799         (struct loop_work): New.
2800         (loop_work): New typedef.
2801         (DEF_VEC_O (loop_work)): New.
2802         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
2803         (bfin_dump_loops): New.
2804         (bfin_bb_in_loop): New.
2805         (bfin_scan_loop): New.
2806         (bfin_optimize_loop): New.
2807         (bfin_reorg_loops): New.
2808         (bfin_reorg): Use bfin_reorg_loops.
2809         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
2810         loop registers.
2811         (I_REGNO_P): Simplify.
2812         (DP_REGNO_P, DPREG_P): New macros.
2813         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
2814         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
2815         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
2816         Add LT_REGS, LC_REGS, LB_REGS.
2817         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
2818         'l' for LB_REGS.
2819         (REGNO_REG_CLASS): Deal with loop registers.
2820         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
2821         letters.
2822         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
2823         New constants for loop registers.
2824         (UNSPEC_LSETUP_END): New.
2825         (seq_insns): New define_attr. Set it for appropriate insns.
2826         (movsi_insn): Add alternatives for move from/to
2827         loop count registers.
2828         (doloop_end): New define_expand.
2829         (loop_end): New define_insn.
2830         (define_split for bad doloop_end): New.
2831         (lsetup_with_autoinit): New define_insn.
2832         (lsetup_without_autoinit): New define_insn.
2833         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
2834         * config/bfin/predicates.md (lc_register_operand): New.
2835         (lt_register_operand): New.
2836         (lb_register_operand): New.
2837         (nondp_register_operand): New.
2838         (nondp_reg_or_memory_operand): New.
2839         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
2840
2841 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
2842
2843         * config/bfin/bfin.c (bfin_delegitimize_address): New.
2844         (TARGET_DELEGITIMIZE_ADDRESS): Define.
2845
2846 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
2847
2848         * Makefile.in (CATALOGS): Add po/ prefix.
2849         * configure: Regenerated.
2850
2851 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
2852
2853         PR target/27829
2854         * arm.c (arm_print_operand case 'S'): Validate that the operand is
2855         a shift operand before calling shift_op.  Avoid redundant call of
2856         shift_op.
2857
2858 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
2859             DJ Delorie  <dj@redhat.com>
2860
2861         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
2862         we're inserting is a singlt-bit constant.
2863
2864 2006-05-30  Roger Sayle  <roger@eyesopen.com>
2865
2866         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
2867         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
2868
2869 2006-05-30  Roger Sayle  <roger@eyesopen.com>
2870
2871         PR tree-optimization/23452
2872         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
2873         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
2874         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
2875         complex values and with -ffast-math for FP complex values.
2876
2877 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
2878
2879         * c-common.h: Remove the prototype for yyparse.
2880         * rtl.h: Remove the prototype for init_loop.
2881
2882 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2883
2884         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
2885         calling recog.
2886
2887 2006-05-30  Roger Sayle  <roger@eyesopen.com>
2888
2889         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
2890         and rotate cases.
2891         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
2892         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
2893
2894 2006-05-30  Dirk Mueller  <dmueller@suse.de>
2895
2896         PR c/27273
2897         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
2898         for CONSTANT_CLASS_P expresisons.
2899
2900 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2901
2902         PR c/27718
2903         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
2904
2905 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
2906
2907         PR tree-optimization/27779
2908         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
2909         initial_condition instead of CHREC_LEFT.
2910
2911 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
2912
2913         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
2914         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
2915         Make prototypes ISO C90.
2916
2917 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
2918             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
2919
2920         * see.c (see_analyze_one_def): Correct check.
2921         (see_get_extension_data): Check if extension is parallel.
2922         (see_get_extension_reg): Likewise.
2923
2924 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
2925
2926         PR target/27790
2927         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
2928         into register for (code == GTU).
2929
2930 2006-05-29  Roger Sayle  <roger@eyesopen.com>
2931
2932         PR tree-optimization/24964
2933         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
2934         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
2935         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
2936         abs(x)*abs(x) as x*x for scalar floating point modes.
2937
2938 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
2939
2940         PR middle-end/27745
2941         * lambda-code.c (perfect_nestify): Don't copy statements
2942         in the inner loop: move them to the inner loop header.
2943
2944 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
2945
2946         PR 26237
2947         * c-tree.texi: Document OpenMP directives and clauses.
2948
2949 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
2950
2951         * varasm.c (globalize_decl): Fix indentation.
2952
2953 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
2954
2955         PR 26242
2956         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
2957         pass_fre, pass_store_ccp, pass_copy_prop,
2958         pass_store_copy_prop, pass_merge_phi, pass_nrv,
2959         pass_return_slot, pass_object_size, pass_lim,
2960         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
2961         pass_loop_prefetch and pass_stdarg.
2962
2963 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2964
2965         * config/bfin/bfin.opt (mfdpic): New option.
2966         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
2967         (EXTRA_MULTILIB_PARTS): Likewise.
2968         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
2969         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
2970         multilib.
2971         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
2972         (CRT_CALL_STATIC_FUNCTION): New.
2973         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
2974         -shared.
2975         (CRT_CALL_STATIC_FUNCTION): New.
2976         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
2977         FD-PIC moves.
2978         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
2979         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
2980         (initialize_trampoline): Changed to handle FD-PIC code generation.
2981         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
2982         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
2983         (override_options): Disallow -mid-shared-library -mfdpic combination.
2984         Can't do unaligned ops if FD-PIC.
2985         Turn off flag_pic if trying to generate non-id-shared-library
2986         non-fdpic code, since it's not supported.
2987         (bfin_assemble_integer): New function.
2988         (TARGET_ASM_INTEGER): Define.
2989         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
2990         __BFIN_FDPIC__.
2991         * config/bfin/crtn.s: Restore them.
2992         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
2993         if TARGET_FDPIC.
2994         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
2995         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
2996         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
2997         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
2998         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
2999         call-used.
3000         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
3001         FDPIC_REGS and FDPIC_FPTR_REGS.
3002         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
3003         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
3004         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
3005         (load_funcdescsi): New pattern.
3006         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
3007         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
3008         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
3009
3010 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
3011
3012         * gcse.c, rtlanal.c: Remove obsolete comments associated with
3013         loop.c.
3014
3015         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
3016
3017         * tree-flow.h: Remove the prototype for add_type_alias.
3018         * tree-ssa-alias.c (add_type_alias): Remove.
3019
3020 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
3021
3022         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
3023         config/fr30/fr30.md, config/i386/i386-interix.h,
3024         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
3025         config/sh/superh64.h, config/v850/v850.c, df-core.c,
3026         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
3027         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
3028         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
3029         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
3030         Follow spelling conventions.
3031         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
3032         Follow spelling conventions.
3033
3034 2006-05-27  Richard Guenther  <rguenther@suse.de>
3035
3036         PR middle-end/27773
3037         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
3038         to produce a constant of value 1 of generic type.
3039
3040 2006-05-27  Dirk Mueller  <dmueller@suse.de>
3041
3042         * cgraphunit.c (decide_is_function_needed): Fix wrong
3043         PR reference.
3044
3045 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
3046
3047         PR rtl-optimization/27661
3048         * reload.c (find_reloads): When reloading a VOIDmode constant
3049         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
3050         use Pmode as mode of the reload register.
3051
3052 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3053
3054         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
3055         is enabled at -O and above.
3056
3057 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3058
3059         PR target/27571
3060         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
3061         table data.
3062
3063 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
3064
3065         PR c++/20103
3066         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
3067         for anonymous variables explicitly declared by front ends.
3068
3069 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3070
3071         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
3072         (struct alias_info): Add new field ref_all_symbol_mem_tag.
3073         * tree-ssa-alias.c (compute_may_aliases): If the program contains
3074         ref-all pointers, run a finalization pass for them.
3075         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
3076         (finalize_ref_all_pointers): New function.
3077         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
3078         regular pointer type to a ref-all pointer type.
3079         (get_tmt_for): Return the special memory tag for ref-all pointers.
3080
3081 2006-05-25  Richard Guenther  <rguenther@suse.de>
3082
3083         PR middle-end/27743
3084         * fold-const.c (fold_binary): Do not look at the stripped
3085         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
3086
3087 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3088
3089         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
3090         for LT and GT if the computed range is effectively empty.
3091
3092 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3093
3094         PR target/27627
3095         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
3096         mips_quad_format formats instead of ieee_single_format,
3097         ieee_double_format and ieee_quad_format formats, respectively.
3098
3099 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
3100
3101         PR tree-optimization/27639
3102         PR tree-optimization/26719
3103         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
3104         call to scev_probably_wraps_p.
3105         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
3106         used_in_pointer_arithmetic_p, convert_step): Removed.
3107         (nowrap_type_p): New function.
3108         (scev_probably_wraps_p): Rewritten.
3109         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
3110         chrec_convert if chrec_convert_aggressive might have been used.
3111         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
3112         scev_direction): New functions.
3113         (chrec_convert): Changed to a wrapper over chrec_convert_1.
3114         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
3115         instead of convert_step.
3116         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
3117         (convert_step): Declaration removed.
3118         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
3119
3120 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
3121
3122         * df-core.c: Added to header comments.
3123         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
3124         df_ur_bb_info, df_urec_bb_info): Added comments.
3125         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
3126         urec, ri problems): Fixed header comments.
3127         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
3128         code from df_rd_transfer_function.
3129
3130 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
3131
3132         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
3133         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
3134         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
3135
3136 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
3137
3138         * expr.c (undefined_operand_subword_p): New.
3139         (emit_move_multi_word): Do not generate move from undefined bits
3140         of a paradoxical subreg.
3141
3142 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
3143
3144         PR rtl-optimization/27736
3145         * combine.c (replaced_rhs_value): New variable.
3146         (combine_instructions): Set it.
3147         (distribute_notes): When distributing a note in replaced_rhs_insn,
3148         check whether the value was used in replaced_rhs_value.
3149
3150 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
3151
3152         PR c++/26757
3153         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
3154         add_referenced_var instead of add_referenced_tmp_var.
3155         * tree-complex.c (create_one_component_var): Use add_referenced_var.
3156         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
3157         add_referenced_var.
3158         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
3159         tree_optimize_tail_calls_1): Use add_referenced_var.
3160         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
3161         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
3162         Use add_referenced_var.
3163         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
3164         * gimplify.c (force_gimple_operand): Use add_referenced_var.
3165         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
3166         Use add_referenced_var.
3167         * tree-dfa.c (struct walk_state): Remove.
3168         (find_referenced_vars): Remove walk state and vars_found hash table.
3169         (make_rename_temp): Use add_referenced_var.
3170         (find_vars_r): Pass less parameters to add_referenced_var.
3171         (referenced_var_p): New.  Is var in referenced_var hash table.
3172         (referenced_var_insert): Assert var isn't already in hash table.
3173         (add_referenced_var): Don't need walk_state parameter.  Add var if it
3174         isn't already in the hash table.
3175         (add_referenced_tmp_var): Remove.
3176         (find_new_referenced_vars_1): Use add_referenced_var.
3177         * tree-ssa-pre.c (create_expression_by_pieces,
3178         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
3179         Use add_referenced_var.
3180         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
3181         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
3182         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
3183         add_referenced_var.
3184         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
3185         vect_create_data_ref_ptr, vect_create_destination_var,
3186         vect_init_vector, vect_build_loop_niters,
3187         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
3188         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
3189         Use add_referenced_var.
3190         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
3191         * tree-flow.h (add_referenced_tmp_var): Remove prototype
3192         (add_referenced_var): Add prototype.
3193         * tree-ssa-structalias.c (get_constraint_for,
3194         intra_create_variable_infos): Use add_referenced_var.
3195
3196 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
3197
3198         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
3199         big-endian paradoxical subregs.
3200         * var-tracking.c (struct micro_operation_def): Document that,
3201         for modify micro operations, insn is the subsequent instruction.
3202         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
3203         (var_reg_set, var_mem_set): ... new functions.
3204         (add_stores): Record subsequent insn.
3205         (compute_bb_dataflow): Use new functions for MO_USE.
3206         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
3207         notes after the insn, and modify notes before the insn known
3208         to be the subsequent one.
3209         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
3210
3211 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
3212
3213         PR target/27696
3214         * config/i386/i386.c (ix86_expand_builtin): Use
3215         gen_sse3_monitor64 for TARGET_64BIT.
3216
3217 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
3218
3219         PR rtl-optimization/26375
3220         PR rtl-optimization/26855
3221         * df-problems (df_ru_bb_local_compute_process_def): Removed update
3222         to gen set.
3223         (df_ru_bb_local_compute): Reversed statements and removed bogus
3224         comment explaining why they should be in wrong order.
3225         (df_ru_dump, df_rd_dump): Enhanced debug info.
3226         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
3227         debug info.
3228         * ddg.c (add_deps_for_def): Converted use of reaching defs to
3229         reaching uses and fixed space problem.
3230
3231 2006-05-23  Jan Hubicka  <jh@suse.cz>
3232
3233         * cgraphunit.c (decide_is_function_needed): Also nested functions
3234         and functions declared inline can be optimized out at -O0.
3235
3236 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
3237
3238         * doc/install.texi (Configuration): Remove reference to CrossGCC
3239         FAQ which was gone.
3240         (Building): Ditto.
3241
3242 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
3243
3244         PR target/27266
3245         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
3246         ix86_compare_emitted is non-NULL.
3247
3248 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3249
3250         PR c++/27451
3251         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
3252         clobbers.
3253
3254 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
3255
3256         PR rtl-optimization/25514
3257         * combine.c (replaced_rhs_insn): New variable.
3258         (combine_instructions): Set replaced_rhs_insn when trying to replace
3259         a SET_SRC with a REG_EQUAL note.
3260         (distribute_notes): Use replaced_rhs_insn when determining the live
3261         range of a REG_DEAD register.
3262
3263 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
3264             Anatoly Sokolov <aesok@post.ru>
3265
3266         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
3267         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
3268         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
3269         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
3270         atmega3290, atmega649, atmega6490, atmega406, atmega640,
3271         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
3272         at90usb647, at90usb1286 and at90usb1287 devices.
3273         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
3274         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
3275
3276 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
3277
3278         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
3279
3280 2006-05-22  Richard Guenther  <rguenther@suse.de>
3281
3282         Revert
3283         2006-01-31  Richard Guenther  <rguenther@suse.de>
3284         Paolo Bonzini  <bonzini@gnu.org>
3285
3286         * doc/install.texi (--disable-libgcc-math): Document.
3287
3288 2006-05-22  Richard Guenther  <rguenther@suse.de>
3289
3290         Revert
3291         2006-01-31  Richard Guenther  <rguenther@suse.de>
3292
3293         * doc/invoke.texi (-msselibm): Document.
3294         * target.h (expand_library_builtin): New target hook.
3295         * builtins.c (expand_builtin): Use expand_library_builtin.
3296         (default_expand_library_builtin): New function.
3297         * gcc.c (LINK_GCC_MATH_SPEC): Define.
3298         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
3299         (link_gcc_math_spec): Declare.
3300         (static_specs): Add link_gcc_math_spec.
3301         * expr.h (default_expand_library_builtin): Declare.
3302         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3303         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
3304         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
3305         * config/i386/i386.opt (msselibm): New target option.
3306         * config/i386/i386.c (ix86_builtin_function_variants): New array.
3307         (ix86_init_sse_abi_builtins): New function.
3308         (ix86_expand_library_builtin): Likewise.
3309         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
3310         (override_options): Handle error conditions wrt -msselibm.
3311         (ix86_builtins): Add function codes for SSE2 ABI builtins.
3312         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
3313         * doc/extend.texi (__builtin_sse2_*): Document new target specific
3314         builtins.
3315
3316 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3317
3318         PR c/27420
3319         * c-common.c (self_promoting_args_p): Skip erroneous args.
3320
3321         PR c/26818
3322         * c-decl.c (finish_struct): Skip erroneous fields.
3323
3324 2006-05-22  Nick Clifton  <nickc@redhat.com>
3325
3326         * config/cris/cris.opt (march): Remove VarExists attribute.
3327         (max-stackframe=): Likewise.
3328
3329 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
3330
3331         * doc/rtl.texi: Fix a typo.
3332         * see.c: Fix comment typos.
3333
3334         * tree-ssa-structalias.h (alias_info): Remove num_references.
3335
3336 2006-05-21  Mike Stump  <mrs@apple.com>
3337
3338         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
3339         (BAD2): Add.
3340         (darwin_pragma_options): Use BAD instead.
3341         (darwin_pragma_unused): Likewise.
3342         (darwin_pragma_ms_struct): Likewise.
3343
3344 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
3345
3346         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
3347
3348 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
3349
3350         PR rtl-optimization/27671
3351         * simplify-rtx.c (simplify_relational_operation_1): Fix
3352         simplifications of (eq/ne (xor x y) y) and
3353         (eq/ne (xor x y) x).
3354
3355         PR tree-optimization/26622.
3356         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
3357         on arg1.
3358
3359 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3360
3361         * tree-cfg.c: Prune whitespace.
3362         (debug_tree_cfg): Point to correct header containing the
3363         TDF_* defines.
3364
3365 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
3366
3367         PR middle-end/25776
3368         * cgraphunit.c (verify_cgraph_node): Typo in error message.
3369
3370 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
3371
3372         PR middle-end/25776
3373         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
3374         or sorry count is non zero.
3375
3376 2006-05-20  Andreas Schwab  <schwab@suse.de>
3377
3378         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
3379
3380 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
3381             Kenneth Zadeck <zadeck@naturalbridge.com>
3382
3383         PR rtl-optimization/26855
3384
3385         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
3386         multiword refs.
3387         (df_scan_alloc): Added code to properly handle multiword hard
3388         registers and add all_blocks parameter.
3389         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
3390         code to properly handle multiword hard registers.
3391         (df_rescan_blocks): Added code to remove deleted blocks from
3392         bitmap.
3393         (df_ref_create_structure, df_ref_record): Added code to properly
3394         handle subregs.
3395         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
3396         and set DF_REF_PARTIAL.
3397         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
3398         (df_uses_record): Added DF_REF_PARTIAL for subreg.
3399         (df_scan_add_problem): Added flags parameter.
3400         (df_ref_create_structure): Changed switching structure.
3401         (df_bb_refs_record): Fixed case where duplicate artificial refs
3402         were created.  Changed location of flags.
3403         (df_record_entry_block_defs): Added code to make stack pointer
3404         live in entry block.  Refined cases where frame pointer is needed.
3405         Changed location of flags.
3406         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
3407         (df_set_state): Removed function.
3408         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
3409         df_insn_create_insn_record, df_insn_refs_delete,
3410         df_ref_create_structure): Formatting changes.
3411         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
3412         df_delete_basic_block): New function.
3413         (df_init): Changed location of flags.
3414         (df_add_problem): Added flags parameter and the way flags are
3415         processed.
3416         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
3417         debug_df_chain): Improved debugging output.
3418         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
3419         (df_refs_chain_dump): Removed df parameter.
3420         (df_iterative_dataflow): Added consistency check.
3421         (df_prune_to_subcfg): Made public.
3422         (df_analyze_problem): Added blocks_to_init parameter and made
3423         public.
3424         (df_ref_record, df_bb_refs_record, df_mark_reg,
3425          df_record_exit_block_uses): Whitespace changes.
3426         (df_dump): Whitespace changes.
3427         * df.h: Some reordering to remove forward references.
3428         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
3429         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
3430         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
3431         (dataflow.flags): New field.
3432         (df.flag): Deleted field.
3433         (df_alloc_function): Added additional bitmap parameter.
3434         (df_dependent_problem_function): New type.
3435         (df_problem.changeable_flags): New field.
3436         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
3437         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
3438         (df_mw_hardreg): New struct.
3439         (DF_INSN_UID_MWS): New macro.
3440         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
3441         parameter.
3442         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
3443         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
3444         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
3445         (df_set_state): Removed function.
3446         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
3447         * df-problems.c (df_chain_dump): Removed df parameter.
3448         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
3449         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
3450         parameter.
3451         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
3452         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
3453         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
3454         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
3455         DF_REF_MUST_CLOBBER cases.
3456         (df_ru_bb_local_compute_process_def,
3457         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
3458         df_lr_bb_local_compute, df_ur_bb_local_compute,
3459         df_chain_create_bb): Made subreg aware.
3460         (df_ru_bb_local_compute, df_rd_bb_local_compute,
3461         df_lr_bb_local_compute, df_lr_bb_local_compute,
3462         df_chain_create_bb): Cleanup to use proper macros.
3463         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
3464         code to fixup bitvectors.
3465         (df_ri_alloc): Cleared lifetime.
3466         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
3467         df_create_unused_note): New function.
3468         (df_ri_bb_compute, df_ri_compute): Added code to create/update
3469         REG_DEAD and REG_UNUSED notes as well as register information.
3470         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
3471         df_chains_dump): Fixed crash if problem was never run.
3472         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
3473         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
3474         df_ri_add_problem): Processes flags in uniform manner.
3475         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
3476         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
3477         df_rd_dump, df_urec_free_bb_info): Formatting changes.
3478         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
3479         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
3480         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
3481         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
3482         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
3483         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
3484         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
3485         * see.c (see_initialize_data): Ditto.
3486         * final.c (rest_of_clean_state) Added regstack_completed.
3487         * rtl.h (regstack_completed): Ditto.
3488         * reg-stack.c (regstack_completed): Ditto.
3489
3490 2006-05-19  Mike Stump  <mrs@apple.com>
3491
3492         * c-tree.h (default_conversion): Remove.
3493         * c-common.h (default_conversion): Add.
3494
3495 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
3496
3497         * tree-vrp.c (valid_value_p): New function.
3498         (adjust_range_with_scev): Fail if the value of bound is not
3499         simple.
3500
3501 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
3502
3503         * config/mips/linux-unwind.h: Include <asm/unistd.h>
3504         (mips_fallback_frame_state): Use syscall numbers to determine
3505         the appropriate li instruction for the current ABI.  Only use
3506         __NR_sigreturn for o32.
3507
3508 2006-05-19  Nicolas Setton  <setton@adacore.com>
3509
3510         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
3511         * langhooks.c (lhd_dwarf_name): New function.
3512         * langhooks-def.h (lhd_dwarf_name): Declare.
3513         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
3514         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
3515         * ada/misc.c (gnat_dwarf_name): New function.
3516         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
3517
3518 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
3519
3520         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
3521         libgcc2.h.
3522         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
3523         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
3524         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
3525         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
3526         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
3527         determine the size of Wtype, etc.
3528         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
3529         (swfloatfuncs): New variable.
3530         (dwfloatfuncs): Likewise.
3531         (lib2funcs): Remove floating-point conversion functions from
3532         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
3533         the set of conversion routines needed.  Allow entries to specify
3534         an object name, filename and word size.  Update users accordingly.
3535         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
3536         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
3537
3538         Revert:
3539
3540         2006-02-08  Roger Sayle  <roger@eyesopen.com>
3541
3542         PR target/22209
3543         * config/fixtfdi.c: New libgcc source file.
3544         * config/fixunstfdi.c: New source file.
3545         * config/floatditf.c: New source file.
3546         * config/floatunditf.c: New souce file.
3547         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
3548         files above instead of config/mips/_tilib.c.
3549         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
3550
3551 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3552
3553         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
3554         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
3555
3556 2006-05-18  Mike Stump  <mrs@apple.com>
3557
3558         Fix up vla, vm and [*] sematics.
3559
3560         PR c/18740
3561         PR c/7948
3562         PR c/25802
3563         PR c/27673
3564         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
3565         (c_vla_unspec_p): Add.
3566         (c_vla_type_p): Add.
3567         * c-decl.c (struct c_scope): Add had_vla_unspec.
3568         (build_array_declarator): Add support for [*].
3569         (grokdeclarator): Likewise.
3570         (grokparms): Likewise.
3571         (get_parm_info): Likewise.
3572         * c-objc-common.c (c_vla_unspec_p): Likewise.
3573         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
3574         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
3575         typeof when argument is a variably modified type not inside sizeof or alignof.
3576         (c_parser_direct_declarator_inner): Propagate errors.
3577         (c_parser_sizeof_expression): Add support for [*].
3578         (c_parser_parms_declarator): Initialize had_vla_unspec.
3579         (c_parser_parms_list_declarator): Likewise.
3580         * c-typeck.c (c_vla_type_p): Add.
3581         (composite_type): Add support for vla compositing.
3582         (comptypes_internal): Add support for vla compatibility.
3583         (c_expr_sizeof_expr): Evaluate vla arguments.
3584         * tree.c (variably_modified_type_p): Update comment for [*].
3585
3586 2006-05-18  Michael Matz  <matz@suse.de>
3587
3588         PR target/27599
3589         * config.host: Make assignments to host_xmake_file cumulative.
3590         * config.host (*-darwin*): Test $host, not $target.
3591
3592 2006-05-12  Stuart Hastings  <stuart@apple.com>
3593
3594         * config/i386/i386.opt (-mstackrealign): New flag.
3595         * config/i386/i386.c (force_align_arg_pointer): New attribute.
3596         (ix86_handle_cconv_attribute): Emit error when
3597         force_align_arg_pointer attribute collides with too many regparms.
3598         (ix86_function_regparm): Limit regparms when used with
3599         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
3600         Support stack-realigning prologue in non-main functions.  Emit
3601         warning for nested functions under -mstackrealign, emit error for
3602         nested functions with force_align_arg_pointer attribute.
3603         * doc/extend.texi (force_align_arg_pointer): Document it.
3604         * doc/invoke.texi (-mstackrealign): Document it.
3605
3606 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
3607
3608         PR rtl-optimization/27477
3609         * combine.c (try_combine): Don't split a parallel consisting
3610         of two sets into two individual sets if both sets reference
3611         cc0.
3612
3613 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
3614
3615         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
3616         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
3617
3618         * doc/options.texi (VarExists): Updated.
3619
3620 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3621
3622         * unwind-dw2.c: Add declarations for uw_update_context and
3623         uw_frame_state_for.
3624         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
3625         detected, advance frame state and context once to skip over stub.
3626
3627 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
3628
3629         PR middle-end/20256
3630         PR middle-end/26435
3631         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
3632         Call rewrite_into_loop_closed_ssa only when something changed.
3633         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
3634         * lambda-code.c (can_convert_to_perfect_nest): Declared.
3635         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
3636         Test for perfect_nest_p here.  Fix formating.
3637         (replace_uses_equiv_to_x_with_y): Fix formating.
3638         (stmt_uses_op): Removed.
3639         (can_convert_to_perfect_nest): Removed loopivs parameter.
3640         Complete the test by checking the scalar dependences.
3641         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
3642         Fix formating.
3643
3644 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3645
3646         PR bootstrap/22541
3647         From Dan Kegel <dank@kegel.com>:
3648         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
3649
3650 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
3651
3652         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
3653         if the element type is variably modified without recursing.
3654
3655 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
3656
3657         PR middle-end/27332
3658         * tree-loop-linear.c (try_interchange_loops): Test for
3659         no data dependences.
3660
3661 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
3662
3663         PR tree-optimization/27548
3664         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
3665         range of ssa names that appear on abnormal edges.
3666         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
3667         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
3668
3669 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
3670
3671         PR middle-end/27620
3672         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
3673
3674 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
3675
3676         PR middle-end/27415
3677         * tree.h (OMP_PARALLEL_COMBINED): Define.
3678         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
3679         (new_omp_context): Add is_combined_parallel argument.
3680         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
3681         new_omp_context caller.
3682         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
3683         Adjust gimplify_scan_omp_clauses callers.
3684         (omp_is_private): Issue errors if iteration variable is firstprivate
3685         or reduction in the current context.
3686         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
3687         on combined parallel workshare constructs.
3688
3689 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
3690
3691         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
3692         (gcc-options.o): New rule.
3693
3694         * optc-gen.awk: Protect variables for gcc-options.o with
3695         #ifdef GCC_DRIVER/#endif.
3696
3697 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
3698
3699         Fix PR tree-optimization/27373
3700         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
3701          (forward_propagate_addr_expr): Update call.
3702
3703 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
3704
3705         * doc/options.texi: Move the Negative option.
3706
3707 2006-05-16  Richard Guenther  <rguenther@suse.de>
3708
3709         PR tree-optimization/22303
3710         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
3711         from STRING_CSTs.
3712         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
3713         ccp_fold did not simplify the statement.
3714
3715 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
3716
3717         PR driver/26885
3718         * Makefile.in (GCC_OBJS): New.
3719         (OBJS-common): Add opts-common.o.
3720         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
3721         (cpp$(exeext)): Likewise.
3722         (gcc.o): Also depend on opts.h.
3723         (opts-common.o): New.
3724
3725         * common.opt (gcoff): Add Negative(gdwarf-2).
3726         (gdwarf-2): Add Negative(gstabs).
3727         (gstabs): Add Negative(gstabs+).
3728         (gstabs+): Add Negative(gvms).
3729         (gvms): Add Negative(gxcoff).
3730         (gxcoff): Add Negative(gxcoff+).
3731         (gxcoff+): Add Negative(gcoff).
3732         * config/i386/i386.opt (m32): Add Negative(m64).
3733         (m64): Add Negative(m32).
3734
3735         * doc/options.texi: Document the Negative option.
3736
3737         * gcc.c: Include "opts.h".
3738         (main): Call prune_options after expandargv.
3739
3740         * optc-gen.awk: Generate common declarations for all flag
3741         variables in options.c. Output the neg_index field.
3742
3743         * opts.c (find_opt): Moved to ...
3744         * opts-common.c: Here. New file.
3745
3746         * opts.h (cl_option): Add a neg_index field.
3747         (find_opt): New.
3748         (prune_options): Likewise.
3749
3750 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
3751
3752         PR middle-end/27573
3753         * omp-low.c (expand_omp_parallel): Don't assert
3754         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
3755         instead search for it.
3756
3757         PR c/27499
3758         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
3759         is signed.
3760
3761 2006-05-16  Andreas Schwab  <schwab@suse.de>
3762
3763         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
3764         defmac.
3765
3766 2006-05-15  Roger Sayle  <roger@eyesopen.com>
3767
3768         PR target/26600
3769         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
3770         integer constants other than zero are only legitimate on TARGET_64BIT.
3771         <CONST_VECTOR> Only zero vectors are legitimate.
3772         (ix86_cannot_force_const_mem): Integral and vector constants can
3773         always be put in the constant pool.
3774
3775 2006-05-16  DJ Delorie  <dj@redhat.com>
3776
3777         * crtstuff.c (__dso_handle): Set section from
3778         TARGET_LBIGCC_SDATA_SECTION if defined.
3779         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
3780         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
3781
3782 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
3783
3784         PR target/27599
3785         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
3786         host_xmake_file.
3787
3788 2006-05-16  Ben Elliston  <bje@au.ibm.com>
3789
3790         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
3791
3792 2006-05-15  Per Bothner  <per@bothner.com>
3793
3794         * tree.c: (last_annotated_node): Use source_locus typedef.
3795         This permits bootstrapping with --enable-mapped-location.
3796
3797 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
3798
3799         PR tree-optimization/26830
3800         * tree-into-ssa.c (struct ssa_name_info): Add age field.
3801         (info_for_ssa_name, current_info_for_ssa_name_age,
3802         blocks_to_update): New variables.
3803         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
3804         (clear_ssa_name_info, initialize_flags_in_bb,
3805         mark_block_for_update): New functions.
3806         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
3807         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
3808         prepare_def_site_for): Use mark_block_for_update.
3809         (mark_def_interesting): Assert that the processed block is marked in
3810         blocks_to_update.  Do not take blocks argument.
3811         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
3812         argument.
3813         (rewrite_update_init_block, rewrite_update_stmt): Only process
3814         blocks with statements to rewrite.
3815         (delete_update_ssa): Do not clear SSA_NAME_AUX.
3816         (update_ssa): Initialize and free blocks_to_update.  Do not
3817         clear flags on statements.  Do not use blocks bitmap.
3818         * tree.h (SSA_NAME_AUX): Removed.
3819         (struct tree_ssa_name): Removed aux field.
3820         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
3821
3822 2006-05-15  Richard Guenther  <rguenther@suse.de>
3823
3824         PR tree-optimization/27603
3825         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
3826         Do computations in original type.
3827
3828 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
3829
3830         * see.c: Code style changes such as redundant paranthesis,
3831         redundant intialization of local variables etc.
3832         (see_main): Declared now as static.
3833         * doc/invoke.texi: Update that -fsee is not enabled by
3834         default at -O3.
3835
3836 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
3837
3838         * omp-low.c (check_omp_nesting_restrictions): New function.
3839         (scan_omp_1): Call it.
3840
3841         PR middle-end/27416
3842         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
3843         construct, return *VAR.
3844
3845 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
3846
3847         PR rtl-optimization/27406
3848         * bt-load.c (migrate_btr_def): Skip the block having abnormal
3849         edges.
3850
3851 2006-05-14  Roger Sayle  <roger@eyesopen.com>
3852
3853         PR rtl-optimization/27538
3854         * combine.c (expand_compound_operation): Call gen_lowpart
3855         before calling simplify_shift_const.
3856
3857 2006-05-14  Roger Sayle  <roger@eyesopen.com>
3858
3859         PR rtl-optimization/22563
3860         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
3861         a fixed width bitfield, always force the intermediates into psuedos.
3862
3863 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
3864
3865         PR 27501
3866         * mkconfig.sh: Use operator = instead of == for test.
3867
3868 2006-05-13  Nick Clifton  <nickc@redhat.com>
3869
3870         * dwarf2out.c (dbx_reg_number): Check return value from
3871         LEAF_REG_REMAP and only use it if it is valid.
3872         (multiple_reg_loc_descriptor): Likewise.
3873
3874 2006-05-13  Richard Guenther  <rguenther@suse.de>
3875
3876         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
3877         host_xmake_file.
3878
3879 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
3880
3881         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
3882         information attached to non-INSNs such as NOTEs.
3883         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
3884
3885 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
3886
3887         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
3888         On contraint.
3889         * config/s390/s390.md: Adjust comment describing On constraint.
3890
3891 2006-05-11  Jan Hubicka  <jh@suse.cz>
3892
3893         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
3894         to be output at -O0.
3895
3896 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3897
3898         PR middle-end/27384
3899         * fold-const.c (size_binop): Move sanity check for arguments to
3900         the beginning of the function.
3901
3902         PR middle-end/27488
3903         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
3904         expression.
3905
3906 2006-05-11  Richard Guenther  <rguenther@suse.de>
3907
3908         PR middle-end/27529
3909         * fold-const.c (fold_unary): Handle intermediate conversion
3910         to a pointer type like intermediate conversion to an integer
3911         type in folding of (T1)(T2)var to var.
3912         Match the code to the comment in the final conversion for
3913         (T1)(T2)var to (T1)var regarding to type precision.  Rather
3914         than disallow T1 being of pointer type, assert that both T1
3915         and var are of pointer type or not.  Make sure not to fall
3916         over the frontends lazyness wrt array to pointer decay though.
3917
3918 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
3919
3920         * arm.c (arm_struct_value_rtx): Delete.
3921         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
3922         (arm_init_cumulative_args): Always initialize nregs to zero.
3923
3924 2006-05-10  Richard Guenther  <rguenther@suse.de>
3925
3926         PR tree-optimization/27532
3927         * tree-object-size.c (plus_expr_object_size): Fix typo.
3928
3929 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
3930
3931         PR target/24949
3932         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
3933         ashrdi_const, ashrdi3): Use a scratch register.
3934
3935 2006-05-10  Richard Guenther  <rguenther@suse.de>
3936
3937         PR tree-optimization/27302
3938         * fold-const.c (operand_equal_p): For two comparisons,
3939         try comparison of one comparison code swapped if that yields
3940         the same code.
3941
3942 2006-05-10  Ben Elliston  <bje@au.ibm.com>
3943
3944         * tree-pretty-print.c (pretty_print_string): No need to handle
3945         '\0' as a special character.
3946
3947         * tree.h: Include "hashtab.h".
3948         (iterative_hash_expr): Use hashval_t in its prototype.
3949         * Makefile.in (TREE_H): Add $(HASHTAB_H).
3950
3951 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
3952
3953         PR bootstrap/26872
3954         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
3955         (hppa*64*-*-hpux11*): Ditto.
3956         (hppa[12]*-*-hpux11*): Ditto.
3957
3958 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
3959
3960         PR target/26545
3961         * config/rs6000/aix41.h (TARGET_64BIT): Define.
3962
3963 2006-05-09  Michael Matz  <matz@suse.de>
3964
3965         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
3966         host_extra_gcc_objs and host_xmake_file.
3967         (<*-*-linux*>): Don't overwrite host_xmake_file.
3968         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
3969         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
3970         (host_detect_local_cpu): Declare.
3971         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
3972         * config/i386/i386.c (override_options): Handle -mtune=native
3973         as -mtune=generic.
3974         * config/i386/x-i386: New file.
3975         * config/i386/driver-i386.c: New file.
3976         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
3977         cpu-type "native".
3978
3979 2006-05-09  Dirk Mueller  <dmueller@suse.de>
3980         Richard Guenther  <rguenther@suse.de>
3981
3982         PR middle-end/27498
3983         * fold-const.c (fold_read_from_constant_string): Relax check
3984         for matching types to matching modes.
3985
3986 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
3987
3988         PR rtl-optimization/27335
3989         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
3990         loops.
3991
3992 2006-05-08  Chao-ying Fu  <fu@mips.com>
3993             Richard Sandiford  <richard@codesourcery.com>
3994
3995         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
3996         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
3997         * config/mips/mips.md (UNSPEC_SCC): New constant.
3998         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
3999         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
4000         (mips_emit_compare): Use it.
4001         (mips_expand_vcondv2sf): New function.
4002
4003 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
4004
4005         Fix PR tree-optimization/27093
4006         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
4007         renaming when they become not-used_alone.
4008
4009 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4010
4011         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
4012         relocation and relocation stubs.
4013
4014 2006-05-08  Eric Christopher  <echristo@apple.com>
4015
4016         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
4017         section for ppc.
4018
4019 2006-05-08  Jan Hubicka  <jh@suse.cz>
4020
4021         PR middle-end/24561
4022         * cgraphunit.c (decide_is_function_needed): When not optimizing even
4023         unused static functions are needed.
4024
4025 2006-05-08  Roger Sayle  <roger@eyesopen.com>
4026
4027         PR target/27158
4028         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
4029         of a reg_equiv_constant if the result is a legitimate constant.
4030
4031 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
4032
4033         PR target/27277
4034         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
4035         standard 80387 constants, raise the cost to prevent
4036         compress_float_constant() to generate load from memory.
4037
4038 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
4039
4040         * config/arm/constraints.md (c): Fix a typo.
4041
4042         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
4043         typos.
4044
4045 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
4046
4047         PR target/24879
4048         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
4049         inline function.
4050         (_mm_mwait): Likewise.
4051
4052         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
4053         "mwait".
4054         (sse3_monitor): Make it 32bit only.
4055         (sse3_monitor64): New. 64bit monitor.
4056
4057 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4058
4059         PR target/27421
4060         * config/i386/i386.c (classify_argument): Skip fields with invalid
4061         types.
4062
4063 2006-05-07  Richard Guenther  <rguenther@suse.de>
4064
4065         PR tree-optimization/27409
4066         * tree-ssa-structalias.c (get_constraint_for_component_ref):
4067         Do not try to find zero-sized subvars.
4068
4069 2006-05-07  Richard Guenther  <rguenther@suse.de>
4070
4071         PR tree-optimization/27136
4072         * tree-ssa-loop-niter.c (get_val_for): Correct function
4073         comment, assert requirements.
4074         (loop_niter_by_eval): Stop processing if the iterated
4075         value did not simplify.
4076
4077 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
4078
4079         * opts.c (flag_see): remove its setting at -O3.
4080
4081 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
4082
4083         * genpeep.c (main): Make insn-peep.c depend on flags.h.
4084         * arm/constraints.md: New file.
4085         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
4086         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
4087         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
4088         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
4089         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
4090         (EXTRA_MEMORY_CONSTRAINT): Likewise.
4091         * arm.md: Include constraints.md.
4092         (thumb_movsi_insn): Use satisfies_constraint_J.
4093         (movhi, movqi): Use satisfies_constraint_I.
4094
4095 2006-04-29 Anatoly Sokolov <aesok@post.ru>
4096
4097         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
4098         for atmeg a645 device.
4099
4100 2006-05-06   Richard Guenther  <rguenther@suse.de>
4101
4102         PR tree-optimization/27151
4103         * tree-vect-transform.c (vectorizable_condition): Punt on
4104         values that have a different type than the condition.
4105
4106 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
4107
4108         PR/21391
4109         * c-parser.c (c_parser_cast_expression): Only insert casts into
4110         hash table if pointer.
4111         * function.c (used_types_insert_helper): Rename from
4112         used_types_insert.
4113         (used_types_insert): Call used_types_insert_helper.
4114         * function.h (used_types_insert): Accept only one argument.
4115
4116 2006-05-05  David Edelsohn  <edesohn@gnu.org>
4117
4118         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
4119         scratch with output modifier.
4120
4121 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
4122
4123         PR target/26481
4124         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
4125         with output modifier.
4126
4127 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
4128
4129         PR target/26765
4130         * config/mips/mips.c (mips_symbolic_address_p): Return true
4131         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
4132         SYMBOL_GOTTPREL, and SYMBOL_TLS.
4133
4134 2006-05-04  Richard Guenther  <rguenther@suse.de>
4135
4136         PR tree-optimization/14287
4137         PR tree-optimization/14844
4138         PR tree-optimization/19792
4139         PR tree-optimization/21608
4140         PR tree-optimization/27090
4141         * tree-ssa-pre.c (try_combine_conversion): New function.
4142         (compute_avail): After constructing the value-handle
4143         expression, use try_combine_conversion to combine NOP_EXPRs
4144         with previous value-handle expressions and use the result if it
4145         is available.
4146
4147 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
4148
4149         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
4150
4151 2006-05-04  Jan Hubicka  <jh@suse.cz>
4152
4153         PR middle-end/25962
4154         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
4155
4156 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
4157
4158         * config/bfin/predicates.md (const01_rtx): Tell generator programs
4159         that this only matches CONST_INTs.  All users changed to VOIDmode
4160         operands.
4161
4162         * config/bfin/bfin.c: Include "optabs.h".
4163         (bfin_rtx_costs): Some costs for vector operations, to allow combine
4164         to do more work.
4165         (enum bfin_builtins): Add a number of fractional and vector builtins.
4166         (bfin_init_builtins): Likewise.
4167         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
4168         (safe_vector_operand, bfin_expand_binop_builtin,
4169         bfin_expand_unop_builtin): New functions.
4170         (bfin_expand_builtin): Handle the new builtins.
4171         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
4172         __ADSPBLACKFIN__.
4173
4174 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
4175
4176         * see.c: New file.
4177         * Makefile.in (OBJS-common): Add see.o.
4178         (see.o): Add dependencies.
4179         * common.opt (fsee): New flag for the see optimization was added.
4180         * opts.c (flag_see): Initialized.
4181         * passes.c (init_optimization_passes, pass_see): New pass.
4182         * rtl.h (see_main): Declaration as extern.
4183         * timevar.def (TV_SEE): New.
4184         * tree-pass.h (pass_see): Declaration as extern.
4185         * invoke.texi (-fsee): Document.
4186         * recog.c (validate_simplify_insn): New function.
4187         * recog.h (validate_simplify_insn): Declaration as extern.
4188         * df-problems.c (df_chain_dump): Check for NULL.
4189
4190 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
4191             Daniel Berlin  <dberlin@dberlin.org>
4192
4193         * cfgrtl.c (insert_insn_bb_end_new): New function.
4194         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
4195
4196 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
4197
4198         * df.h (struct web_entry): Moved from web.c.
4199         (union_defs): Declaration as extern.
4200         (unionfind_root): Likewise.
4201         (unionfind_union): Likewise.
4202         * web.c (struct web_entry): Moved to df.h.
4203         (unionfind_root): Remove static declaration.
4204         (unionfind_union): Likewise.
4205         (union_defs): Likewise and generalize to use callback function.
4206         (web_main): Update arguments for union_defs function call.
4207
4208 2006-05-04  Richard Guenther  <rguenther@suse.de>
4209
4210         PR tree-optimization/26447
4211         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
4212         produce SSA_NAME copies before the store stmt to avoid
4213         breaking exception handling.
4214
4215 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
4216
4217         PR middle-end/27388
4218         * gimplify.c (omp_is_private): If var is shared in some outer context,
4219         return false instead of true.  Stop searching on parallel context
4220         boundary.
4221
4222 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
4223
4224         PR java/8260
4225         * coverage.c: Use get_gcov_unsigned_t() instead of
4226         unsigned_type_node all over.
4227
4228 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
4229
4230         PR tree-optimization/27381
4231         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
4232         maintain the same immediate_use links.
4233         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
4234         node rather than segfaulting.
4235
4236 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
4237
4238         PR fortran/27395
4239         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
4240         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
4241         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
4242
4243 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
4244
4245         Fix PR tree-optimization/26626
4246         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
4247         always.
4248         * tree-ssa-operands.c (access_can_touch_variable): Allow
4249         typecasting through union pointers.
4250
4251 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4252
4253         PR c++/26943
4254         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
4255         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
4256         to find if var will be a global variable even in the nested context.
4257         (omp_copy_decl): Only check for global variable at the end, it might
4258         be overridden in outer contexts.
4259         (scan_sharing_clauses): For global variables don't create a field.
4260         (lower_rec_input_clauses): Do nothing for global shared variables.
4261         Emit a barrier at the end of ILIST if there were any decls in both
4262         firstprivate and lastprivate clauses.
4263         (lower_send_clauses): Do nothing for global variables except for
4264         COPYIN.
4265
4266 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
4267
4268         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
4269         of the correct signedness is returned.
4270
4271 2006-05-02  Jeff Law  <law@redhat.com>
4272
4273         PR tree-optimization/27364
4274         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
4275         multiply expressions.
4276
4277 2006-05-02  Tom Tromey  <tromey@redhat.com>
4278
4279         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
4280
4281 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
4282
4283         PR target/27387
4284         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
4285         -mthumb -fPIC are used.
4286
4287 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
4288             Joshua Kinard  <kumba@gentoo.org>
4289
4290         PR target/25871
4291         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
4292         with 64-bit pointers.
4293
4294 2006-05-02  Paul Brook  <paul@codesourcery.com>
4295
4296         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
4297         and pool overlap.
4298         (create_fix_barrier): Check that a suitable barrier location is
4299         found.
4300         (arm_reorg): Include ftmp->address in allowable range of addresses.
4301
4302 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
4303
4304         PR ada/27366
4305         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
4306         on Cygwin.
4307
4308 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
4309
4310         PR middle-end/27337
4311         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
4312         around RESULT_DECL for result passed by reference.
4313         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
4314         * omp-low.c (use_pointer_for_field): Don't look at
4315         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
4316         (scan_omp_1): Call remap_decl on RESULT_DECLs.
4317         (lower_rec_input_clauses): Don't allocate VLA memory for the second
4318         time or var for passing by reference for
4319         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
4320         TREE_ADDRESSABLE variables when passing by reference.
4321
4322         * omp-low.c (dump_omp_region): Fix output formatting.
4323
4324         PR middle-end/27328
4325         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
4326         (expand_omp_parallel): Likewise.
4327         * tree-cfg.c (move_sese_region_to_fn): Likewise.
4328
4329         PR middle-end/27325
4330         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
4331         on statement list containing also constructors and destructors.
4332         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
4333
4334         PR middle-end/27310
4335         * except.c (duplicate_eh_regions): Fix clearing of
4336         cfun->eh->region_array entries.
4337
4338 2006-05-01  DJ Delorie  <dj@redhat.com>
4339
4340         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
4341         build!=host.
4342         (gcc_cv_objdump): Likewise.
4343         * configure: Regenerated.
4344
4345 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
4346
4347         PR target/27374
4348         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
4349         templates for case 3 and 4.
4350
4351 2006-05-01  DJ Delorie  <dj@redhat.com>
4352
4353         * vec.c: Include bconfig.h when appropriate.
4354         * Makefile.in (build/vec.o): Adjust dependencies.
4355         * mkconfig.sh: Make sure config.h isn't used for build machine
4356         compiles.
4357
4358 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4359
4360         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
4361         variables.
4362         (mark_phi_for_rewrite): New function.
4363         (insert_phi_nodes_for, mark_use_interesting): Call
4364         mark_phi_for_rewrite.
4365         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
4366         (update_ssa): Initialize and free phis_to_rewrite.
4367
4368 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4369
4370         PR rtl-optimization/27291
4371         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
4372         folded to a constant.
4373
4374 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4375
4376         PR tree-optimization/27283
4377         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
4378         not whole # of iteration descriptions.
4379         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
4380         uses abnormal ssa name.
4381         (niter_for_single_dom_exit): Ditto.
4382         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
4383         return just the number of iterations.
4384
4385 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
4386
4387         PR tree-optimization/27144
4388         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
4389         (record_estimate): Only record constant upper bound.
4390         (infer_loop_bounds_from_undefined): Call
4391         compute_estimated_nb_iterations just once.
4392         (proved_non_wrapping_p): Renamed to ...
4393         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
4394         (convert_step_widening, scev_probably_wraps_p): Call
4395         n_of_executions_at_most instead of proved_non_wrapping_p.
4396         (substitute_in_loop_info): Do not replace values in bounds.
4397         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
4398         comments.
4399
4400 2006-05-01  Richard Henderson  <rth@redhat.com>
4401
4402         PR c/27358
4403         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
4404         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
4405         CPP_PRAGMA.
4406
4407 2006-05-01  Roger Sayle  <roger@eyesopen.com>
4408
4409         * c-typeck.c (parser_build_binary_op): Don't call the function
4410         unsigned_conversion_warning to spot operand/result type overflow.
4411         (build_binary_op): Instead, call convert_and_check instead of
4412         convert to report the problem when the operands are promoted.
4413         * c-common.c (unsigned_conversion_warning): Make static.
4414         * c-common.h (unsigned_conversion_warning): Delete prototype.
4415
4416 2006-05-01  Richard Guenther  <rguenther@suse.de>
4417
4418         PR tree-optimization/26726
4419         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
4420         problem ...
4421         (find_interesting_uses_address): ... we work around here
4422         by folding INDIRECT_REFs in the substituted base.
4423
4424 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
4425
4426         * omp-low.c (dump_omp_region): Add newlines.
4427
4428 2006-04-30  Roger Sayle  <roger@eyesopen.com>
4429
4430         * common.opt (Woverflow): New command line option.
4431         * c-common.c (constant_expression_warning): Check warn_overflow.
4432         (overflow_waring): Pass OPT_Woverflow to warning.
4433         (unsigned_conversion_warning): Likewise.
4434         (convert_and_check): Likewise.
4435         * doc/invoke.texi: Document new command line option.
4436
4437 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
4438
4439         * config/rs6000/rs6000.c (rs6000_override_options): Enable
4440         TARGET_NO_FP_IN_TOC for section anchors.
4441         (optimization_options): Enable section anchors for all
4442         non-"Objective" languages.
4443
4444 2006-04-28  Eric Christopher  <echristo@apple.com>
4445
4446         * config/darwin-c.c (darwin_ms_struct): Move this
4447         (darwin_set_default_type_attributes): and this...
4448         * config/darwin.c: ... here.
4449         * config/darwin.h (darwin_ms_struct): Declare.
4450
4451 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
4452
4453         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
4454
4455 2006-04-28  Roger Sayle  <roger@eyesopen.com>
4456
4457         PR c/25309
4458         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
4459         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
4460         an unsigned HOST_WIDE_INT.
4461         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
4462         array index.
4463         (really_start_incremental_init): No need to call convert because
4464         bitsize_zero_node is already of type bitsizetype.
4465         (push_init_level): Extract the value of constructor_index as an
4466         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
4467         (process_init_element): Likewise.
4468
4469 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
4470
4471         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
4472         value before passing to make_relative_prefix.
4473
4474 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
4475
4476         PR middle-end/27260
4477         * builtins.c (expand_builtin_memset): Expand val in original mode.
4478
4479 2006-04-27  Eric Christopher  <echristo@apple.com>
4480
4481         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
4482         with #ifndef/#endif.
4483         * config/darwin-c.c (darwin_ms_struct): New.
4484         (darwin_pragma_ms_struct): Ditto.
4485         (darwin_set_default_type_attributes): Ditto.
4486         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
4487         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
4488         Register ms_struct pragma.
4489         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
4490         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
4491         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
4492         darwin_set_default_type_attributes if TARGET_MACHO.
4493
4494 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
4495
4496         PR tree-optimization/26854
4497         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
4498         * doc/tree-ssa.texi: Update immuse iterator documentation.
4499         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
4500         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
4501         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
4502         first_safe_imm_use, next_safe_imm_use): Remove.
4503         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
4504         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
4505         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
4506         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
4507         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
4508         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
4509         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
4510         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
4511         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
4512         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
4513         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
4514         (perfect_nestify): Use new iterator.
4515         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
4516         iterator.
4517         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
4518         (next_imm_name): New field in struct immediate_use_iterator_d.
4519         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
4520         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
4521         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
4522         * tree-cfg.c (replace_uses_by): Use new iterator.
4523         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
4524         * tree-ssa-operands.c (correct_use_link): Remove.
4525         (finalize_ssa_use_ops): No longer call correct_use_link.
4526
4527 2006-04-27  Stuart Hastings  <stuart@apple.com>
4528
4529         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
4530         * config/t-darwin (crt3.o): Use it.
4531         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
4532         'pmode', use Pmode instead of SImode for SYMBOL_REF.
4533         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
4534         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
4535         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
4536         support.
4537
4538 2006-04-27  Roger Sayle  <roger@eyesopen.com>
4539
4540         * expmed.c (store_fixed_bit_field): If we're not optimizing for
4541         size, force the intermediate into a new pseudo rather instead of
4542         performing both a bitwise AND and a bitwise IOR in memory.
4543
4544 2006-04-27  Richard Guenther  <rguenther@suse.de>
4545
4546         PR rtl-optimization/26685
4547         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
4548         this one "max-flow-memory-locations".
4549
4550 2006-04-27  Richard Guenther  <rguenther@suse.de>
4551
4552         PR tree-optimization/25148
4553         * tree-vrp.c (compare_values): Remove code dealing with
4554         comparisons against type min/max value.  Honour overflow
4555         and negative constants in code dealing with comparisons
4556         of plus and minus expressions.
4557         (value_inside_range): Use fold_binary with LE_EXPR and
4558         GE_EXPR rather than compare_values.
4559
4560 2006-04-27  Dirk Mueller  <dmueller@suse.de>
4561
4562         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
4563         prototype for SSE.
4564
4565 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
4566
4567         * basic-block.h (safe_insert_insn_on_edge): Removed.
4568         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
4569
4570 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
4571             Paolo Bonzini  <bonzini@gnu.org>
4572
4573         PR middle-end/27282
4574         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
4575         (simplify_and_const_int): Same.
4576
4577 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
4578
4579         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
4580
4581 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
4582
4583         PR c/26171
4584         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
4585         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
4586         cgraph_global_info_ready.
4587
4588         PR middle-end/26913
4589         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
4590
4591         PR c/25996
4592         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
4593         either decl or init is error_mark_node.
4594
4595         PR middle-end/25989
4596         * tree-flow.h (struct omp_region): Add sched_kind.
4597         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
4598         instead of extracting omp for data.
4599         (expand_omp_for): Save extracted sched_kind.
4600
4601 2006-04-25  Roger Sayle  <roger@eyesopen.com>
4602
4603         * expmed.c (store_bit_field): Also check whether the bitsize is
4604         valid for the machine's "insv" instruction before moving the
4605         target into a pseudo for use with the insv.
4606         * config/i386/predicates.md (const8_operand): New predicate.
4607         * config/i386/i386.md (extv, extzv, insv): Use the new
4608         const8_operand predicate where appropriate.
4609
4610 2006-04-25  DJ Delorie  <dj@redhat.com>
4611
4612         * doc/install.texi (Specific): Clarify that this is not a list of
4613         supported hosts or targets.
4614
4615 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
4616
4617         PR rtl-optimization/26725
4618         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
4619         block's BB_DIRTY flag.
4620
4621 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
4622
4623         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
4624         are no branches.
4625
4626         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
4627         to print an integer.
4628
4629 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
4630
4631         * varasm.c (align_variable): New function.
4632         (get_block_for_decl): Apply align_variable to DECL before
4633         calculating section information.
4634         (assemble_variable): Split out alignment computation.
4635
4636 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
4637
4638         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
4639         machines.
4640
4641 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
4642
4643         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
4644         MODE_PARTIAL_INT mode.
4645         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
4646         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
4647         for CONST_INTs.
4648         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
4649         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
4650         V2PDImode.
4651         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
4652         New predicates.
4653         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
4654         New constants.
4655         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
4656         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
4657         MACFLAG_IH): Likewise.
4658         (movstricthi_1): Renamed from "*movstricthi".
4659         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
4660         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
4661         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
4662         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
4663         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
4664         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
4665         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
4666         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
4667         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
4668         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
4669         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
4670         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
4671         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
4672         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
4673         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
4674
4675         * doc/rtl.texi (ss_ashift): Improve wording.
4676
4677 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
4678
4679         * dwarf2out.c (verify_marks_clear): New.
4680         (prune_unused_types): Call verify_marks_clear initially, not
4681         prune_unmark_dies.
4682
4683 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
4684
4685         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
4686         * doc/rtl.texi: Document them.
4687         * simplify-rtx.c (simplify_unary_operation,
4688         simplify_binary_operation_1): Don't abort when we see them.
4689
4690 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
4691
4692         Revert:
4693         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
4694         * configure.ac: Completely disregard languages that are not
4695         enabled.
4696         * configure: Regenerated.
4697
4698 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
4699         Richard Guenther  <rguenther@suse.de>
4700
4701         PR tree-optimization/27236
4702         * tree-inline.c (copy_body_r): Make sure to copy
4703         TREE_THIS_VOLATILE flag.
4704
4705 2006-04-24  Richard Guenther  <rguenther@suse.de>
4706
4707         PR middle-end/26869
4708         * tree-complex.c (update_parameter_components): Don't handle
4709         unused parameters which have no default def.
4710
4711 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
4712         Richard Guenther  <rguenther@suse.de>
4713
4714         PR tree-optimization/27218
4715         * tree-inline.c (expand_call_inline): Strip useless type
4716         conversions for the return slot address.
4717
4718 2006-04-24  Richard Guenther  <rguenther@suse.de>
4719
4720         * cfgloop.h (struct loops): Remove unused field array.  Reorder
4721         state after num.
4722         (LOOP_PREFETCH): Remove.
4723
4724 2006-04-24  Richard Guenther  <rguenther@suse.de>
4725
4726         PR tree-optimization/22525
4727         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
4728         variable, adjust types of generated expressions.
4729
4730 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
4731
4732         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
4733         (tree-vect-patterns.o): Likewise.
4734         (jump.o): Likewise.
4735         (cselib.o): Likewise.
4736         (loop-doloop.o): Likewise.
4737         (regclass.o): Likewise.
4738         (reload1.o): Likewise.
4739         (explow.o): Replace target.h with $(TARGET_H).
4740         (ipa-prop.o): Likewise.
4741         (ipa-cp.o): Likewise.
4742         (ipa-inline.o): Likewise.
4743         (reorg.o): Likewise.
4744         (reg-stack.o): Likewise.
4745
4746 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4747
4748         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
4749
4750 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
4751
4752         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
4753
4754         * configure.ac: Completely disregard languages that are not
4755         enabled.
4756         * configure: Regenerated.
4757
4758         PR c++/26534
4759         * c-common.h (c_build_bitfield_integer_type): Declare.
4760         * c-decl.c (c_build_bitfield_integer_type): Move to ...
4761         * c-common.c (c_build_bitfield_integer_type): ... here.
4762
4763 2006-04-23  Roger Sayle  <roger@eyesopen.com>
4764
4765         PR target/21283
4766         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
4767         a SImode SUBREG of a floating point register after no_new_pseudos.
4768
4769 2006-04-23  Roger Sayle  <roger@eyesopen.com>
4770
4771         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
4772         identify potentially eliminable registers to additionally catch
4773         VIRTUAL_INCOMING_ARGS_REGNUM.
4774         (addsi3): Update the conditions on when to use addsi_small_int.
4775
4776 2006-04-23  Roger Sayle  <roger@eyesopen.com>
4777
4778         PR target/16641
4779         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
4780         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
4781         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
4782
4783 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4784
4785         * fold-const.c (range_predecessor): Use operand_equal_p
4786         as the predicate for equality.
4787         (range_successor): Likewise.
4788
4789 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
4790
4791         Revert:
4792         * config/soft-fp/op-common.h: Fix a typo.
4793
4794 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
4795
4796         PR libmudflap/26864
4797         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
4798         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
4799
4800 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
4801
4802         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
4803         Fix comment typos.
4804         * doc/tm.texi: Fix a typo.
4805
4806 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
4807
4808         * dwarf2out.c (struct die_struct): Document that die_sib makes
4809         a circular linked list.
4810         (FOR_EACH_CHILD): New.
4811         (reverse_die_lists): Delete.
4812         (reverse_all_dies): Delete.
4813         (add_dwarf_attr): Correct documentation.
4814         (remove_child_with_prev): New.
4815         (remove_child_TAG): Update for change to die_struct, use
4816         remove_child_with_prev.
4817         (add_child_die): Update for change to die_struct.
4818         (splice_child_die): Use remove_child_with_prev and add_child_die.
4819         (print_die): Use FOR_EACH_CHILD.
4820         (die_checksum): Likewise.
4821         (assign_symbol_names): Likewise.
4822         (output_location_lists): Likewise.
4823         (build_abbrev_table): Likewise.
4824         (calc_die_sizes): Likewise.
4825         (mark_dies): Likewise.
4826         (unmark_dies): Likewise.
4827         (unmark_all_dies): Likewise.
4828         (output_die): Likewise.
4829         (prune_unused_types_mark): Likewise.
4830         (prune_unused_types_walk): Likewise.
4831         (same_die_p): Update for change to die_struct.
4832         (break_out_includes): Likewise.
4833         (prune_unused_types_prune): Likewise.
4834         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
4835         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
4836         it's already clear.
4837         (dwarf2out_finish): Don't call reverse_all_dies.
4838
4839 2006-04-21  Eric Christopher  <echristo@apple.com>
4840
4841         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
4842         in comments and function names.
4843
4844 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4845
4846         PR c/25875
4847         * c-typeck.c (digest_init): Robustify.
4848
4849         * c-typeck.c (pop_init_level): Simplify.
4850
4851 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
4852
4853         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
4854
4855 2006-04-21  Paul Brook  <paul@codesourcery.com>
4856
4857         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
4858         hardware floating point.
4859
4860 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
4861
4862         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
4863         NON_FLOAT_REGS.
4864
4865 2006-04-21  Nick Clifton  <nickc@redhat.com>
4866
4867         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
4868         OPT_EXTRA_PARTS.
4869
4870 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
4871
4872         PR target/27230
4873         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
4874         C++ lang type in traceback table for Objective-C++.
4875
4876         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
4877
4878 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
4879
4880         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
4881
4882 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4883
4884         PR mudflap/26789
4885         * tree-mudflap.c (mudflap_finish_file): Skip function when there
4886         were errors.  Remove check for erroneous objects.
4887
4888 2006-04-20  Jeff Law  <law@redhat.com>
4889
4890         PR tree-optimization/26854
4891         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
4892         checking for zero or one use.
4893         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
4894         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
4895         * tree-ssa-reassoc.c (negate_value): Similarly.
4896         (reassociate_bb): Similarly.
4897
4898 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
4899
4900         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
4901         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
4902         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
4903
4904 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
4905
4906         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
4907         fp regs if the last fp arg doesn't fit in regs.
4908
4909 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
4910
4911         PR target/27182
4912         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
4913         that the last insn has the REG_INC note.
4914
4915 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
4916             Nathan Sidwell  <nathan@codesourcery.com>
4917
4918         PR c/26774
4919         * stor-layout.c (update_alignment_for_field): Do not align
4920         ERROR_MARK nodes.
4921         (place_union_field): Place union field at the start of the union.
4922         (place_field): Move ERROR_MARK check later, and use the current
4923         allocation position to maintain monotonicity.
4924
4925 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
4926
4927         * dominance.c: Include timevar.h.
4928         (calculate_dominance_info): Use TV_DOMINANCE.
4929         * timevar.def (TV_DOMINANCE): New timevar.
4930         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
4931
4932 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
4933
4934         PR rtl-optimization/14261
4935         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
4936         move would be an INSV insn.
4937         (noce_process_if_block): Don't optimize if the destination is a
4938         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
4939
4940 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
4941
4942         * config/s390/s390.md: Add comments with the instructions emitted
4943         by an insn pattern if macros are used.
4944
4945 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
4946
4947         PR rtl-optimization/26026
4948         * fold-const.c (fold_binary): Optimize div and mod where the divisor
4949         is a known power of two shifted left a variable amount.
4950
4951 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
4952
4953         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
4954         to hash table twice when the debug_str section has SECTION_MERGE.
4955
4956 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
4957
4958         * config/soft-fp: New directory.  From glibc.
4959         * config/soft-fp/t-softfp: New.
4960         * config/soft-fp/README: New.
4961         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
4962         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
4963         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
4964         (LIBGCC_DEPS): Add $(SFP_MACHINE).
4965         * config.gcc: Use rs6000/t-fprules-fpbit or
4966         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
4967         rs6000/t-fprules.
4968         * config/rs6000/sfp-machine.h: New.  Based on glibc.
4969         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
4970         New.
4971         * config/rs6000/t-fprules: Remove fp-bit rules.
4972         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
4973         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
4974         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
4975         (softfp_wrap_start, softfp_wrap_end): New.
4976
4977 2006-04-18  DJ Delorie  <dj@redhat.com>
4978
4979         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
4980
4981 2006-04-18  Devang Patel  <dpatel@apple.com>
4982
4983         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
4984
4985 2006-04-18  Nick Clifton  <nickc@redhat.com>
4986
4987         * config/sh/t-symbian: Add rule to build sh-c.o
4988         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
4989         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
4990         (sh_symbian_encode_section_info): Likewise.
4991
4992 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
4993
4994         * builtins.c (expand_builtin_strcmp): Cover label definition of
4995         do_libcall with HAVE_cmpstrnsi.
4996
4997 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
4998
4999         * function.c (temp_slots_at_level, max_slot_level): Use VEC
5000         instead of VARRAY.
5001         * function.h (temp_slot_p): New.
5002         (function): Change the type of x_used_temp_slots to
5003         VEC(temp_slot_p,gc) *.
5004
5005 2006-04-18  Nick Clifton  <nickc@redhat.com>
5006
5007         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
5008         flag_strength_reduce.
5009
5010         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
5011
5012 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
5013
5014         PR target/27117
5015
5016         Partial revert of revision 112637
5017         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
5018                     Dale Johannesen  <dalej@apple.com>
5019
5020         PR target/19653
5021         * regclass.c (struct reg_pref): Update documentation.
5022         (regclass): Set prefclass to NO_REGS if memory is the best option.
5023         (record_reg_classes): Cope with a prefclass set to NO_REGS.
5024
5025 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
5026
5027         PR tree-optimization/26821
5028         * tree-ssa-math-opts.c (get_constant_one): New.
5029         (insert_reciprocals): Use it.
5030
5031 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
5032
5033         * dwarf2out.c (free_AT): Delete.
5034         (remove_AT): Update string ref counts.
5035         (remove_child_TAG): Don't call free_die.
5036         (free_die): Delete.
5037         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
5038         or DW_TAG_GNU_EINCL.
5039         (prune_unused_types_walk_attribs): Reset string refcounts.
5040         (prune_unused_types_update_strings): New.
5041         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
5042         call free_die.  Do call prune_unused_types_update_strings.
5043         (prune_unused_types): Empty debug_str_hash.
5044
5045 2006-04-17  Roger Sayle  <roger@eyesopen.com>
5046
5047         * expr.c (expand_assignment): Optimize away no-op moves where the
5048         source and destination are equal and have no side-effects.
5049
5050 2006-04-17  Richard Guenther  <rguenther@suse.de>
5051
5052         PR target/26826
5053         * reload.c (push_reload): Guard calls to get_secondary_mem
5054         for memory subregs.
5055
5056 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
5057
5058         * alias.c (reg_base_value, old_reg_base_value): Change the
5059         type to VEC(rtx,gc) *.
5060         (REG_BASE_VALUE, find_base_value, record_set,
5061         init_alias_analysis): Use VEC instead of VARRAY.
5062
5063         * alias.c (alias_sets): Change the type to
5064         VEC(alias_set_entry,gc) *.
5065         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
5066         VEC instead of VARRAY.
5067         (last_alias_set): Remove.
5068
5069         * cgraph.h (cgraph_edge_p): New.
5070         Update the prototype of cgraph_function_versioning.
5071         * cgraphunit.c (cgraph_copy_node_for_versioning,
5072         cgraph_function_versioning): Use VEC instead of VARRAY.
5073         * ipa-cp.c (ipcp_insert_stage): Likewise.
5074
5075 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5076
5077         PR target/26961
5078         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
5079         "A op B" or "A op C", we may need to convert A to the type of B and C.
5080
5081 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
5082
5083         * target.h (struct gcc_target): Add mode_rep_extended.
5084         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
5085         (init_num_sign_bit_copies_in_rep): Initialize it using
5086         mode_rep_extended.
5087         (truncate_to_mode): Use it.
5088         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
5089         * targhooks.h (default_mode_rep_extended): Declare it.
5090         * targhooks.c (default_mode_rep_extended): Define it.
5091         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
5092         default_mode_rep_extended.
5093         (TARGET_INITIALIZER): Include it.
5094         * doc/tm.texi (Misc): Document it.
5095         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
5096         (mips_truncated_to_mode): New function.
5097
5098 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5099
5100         PR middle-end/25474
5101         * expr.c (compress_float_constant): Copy the narrow constant into
5102         a new pseudo before extending it to its final width.
5103
5104 2006-04-16  Roger Sayle  <roger@eyesopen.com>
5105             Andrew Pinski  <pinskia@gcc.gnu.org>
5106             Dale Johannesen  <dalej@apple.com>
5107
5108         PR target/24076
5109         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
5110         special case code to implement V8HImode and V16QImode with SSE2.
5111
5112 2006-04-15  Roger Sayle  <roger@eyesopen.com>
5113
5114         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
5115         trees are constructed with a suitable tree type.
5116
5117 2006-04-15  Roger Sayle  <roger@eyesopen.com>
5118
5119         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
5120         (integer_onep): Likewise.
5121         (integer_all_onesp): Likewise.
5122         (integer_pow2p): Likewise.
5123         (integer_nonzerop): Likewise.
5124         (real_zerop): Likewise.
5125         (real_onep): Likewise.
5126         (real_twop): Likewise.
5127         (real_minus_onep): Likewise.
5128         (int_size_in_bytes): Likewise.
5129         (host_integerp): Likewise.
5130
5131 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
5132
5133         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
5134         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
5135         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
5136
5137         * tree-ssa-structalias.h (alias_info): Remove num_references.
5138
5139 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5140
5141         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
5142         (output_bvb patterns): Likewise.
5143         * pa.c (output_bb): Use 'bb' insn for long branch case.
5144         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
5145         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
5146         1.  Correct length operand for alternatives 1 and 2.
5147         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
5148         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
5149
5150 2006-04-14  Roger Sayle  <roger@eyesopen.com>
5151
5152         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
5153         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
5154         were accidentally reverted by r112959.
5155
5156 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
5157
5158         PR middle-end/26823
5159         * except.h (eh_region_outermost): New prototype.
5160         * except.c (eh_region_outermost): New function.
5161         * tree-cfg.c (find_outermost_region_in_block): Use it.
5162
5163 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
5164
5165         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
5166         of VARRAY.
5167         * reload1.c (reg_equiv_memory_loc_varray): Rename to
5168         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
5169         (init_reload, reload): Use VEC instead of VARRAY.
5170         * reload.h: Update the prototype for
5171         reg_equiv_memory_loc_varray.
5172
5173 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
5174             Eric Botcazou  <ebotcazou@libertysurf.fr>
5175
5176         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
5177         register save area.
5178
5179 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
5180
5181         PR middle-end/27134
5182         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
5183         to expand fallback builtin function call.
5184
5185 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
5186
5187         PR middle-end/27095
5188         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
5189         and emit libcall here in case the builtin fails.
5190         (expand_builtin_strcmp): Always emit the libcall here on failure.
5191
5192 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
5193
5194         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
5195         * flow.c (reg_n_info): Change the type to
5196         VEC(reg_info_p,heap) *.
5197         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
5198         instead of VARRAY.
5199         * regs.h (reg_info_p): New.
5200         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
5201         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
5202         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
5203         instead of VARRAY.
5204
5205 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
5206
5207         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
5208         defaulting to 100.
5209         * params.h (MAX_SCHED_READY_INSNS): New macro.
5210         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
5211         past MAX_SCHED_READY_INSNS during the first scheduling pass.
5212         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
5213         the ready list for 1 cycle during the first scheduling pass.
5214         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
5215
5216 2006-04-13  Richard Henderson  <rth@redhat.com>
5217
5218         PR libgomp/26651
5219         * gimple-low.c (lower_omp_directive): Remove dead code.
5220         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
5221         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
5222         * omp-low.c (struct omp_region): Move to tree-flow.h.
5223         (root_omp_region): Export.
5224         (omp_regions, lookup_omp_region): Remove.
5225         (determine_parallel_type): Update for struct omp_region changes.
5226         (dump_omp_region): Dump regions with block numbers.
5227         (new_omp_region): Take type and block instead of stmt; malloc
5228         instead of ggc.
5229         (free_omp_region_1, free_omp_regions): New.
5230         (expand_parallel_call): Take entry_stmt as argument; update for
5231         changes to omp_region.
5232         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
5233         (remove_exit_barriers): New.
5234         (expand_omp_parallel): Update for struct omp_region changes.
5235         (expand_omp_synch): Likewise.
5236         (expand_omp): Likewise.
5237         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
5238         (expand_omp_for_static_chunk): Likewise.
5239         (expand_omp_for): Likewise.
5240         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
5241         (expand_omp_sections): Similarly, with GOMP_sections_end.
5242         (expand_omp_single): New.
5243         (build_omp_regions_1): Update for OMP_CONTINUE.
5244         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
5245         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
5246         OMP_SECTIONS_SECTIONS.
5247         (lower_omp_single_simple): Don't emit barrier here.
5248         (lower_omp_single_copy): Likewise.
5249         (lower_omp_single): Fix bindings, and lower to straightline now.
5250         (lower_omp_master, lower_omp_ordered): Likewise.
5251         (lower_omp_critical): Likewise.
5252         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
5253         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
5254         omp edges, free it afterward.
5255         (make_omp_sections_edges): Remove.
5256         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
5257         (move_stmt_r): Handle OMP_CONTINUE.
5258         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
5259         statement pointers to basic blocks.  Add type member.
5260         (root_omp_region, new_omp_region, free_omp_regions): Declare.
5261         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
5262         * tree-inline.c (estimate_num_insns_1): Likewise.
5263         * tree-pretty-print.c (dump_generic_node): Likewise.
5264         * tree-ssa-operands.c (get_expr_operands): Likewise.
5265         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
5266         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
5267         (OMP_CONTINUE): New.
5268         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
5269         (OMP_SECTIONS_SECTIONS): Remove.
5270         (OMP_SECTION_LAST): New.
5271         (OMP_RETURN_NOWAIT): New.
5272
5273 2006-04-13  Roger Sayle  <roger@eyesopen.com>
5274
5275         * fold-const.c (native_encode_vector, native_interpret_real):
5276         Correct obvious mistakes in the previous check-in.
5277
5278 2006-04-13  Roger Sayle  <roger@eyesopen.com>
5279
5280         * fold-const.c (native_encode_expr): New function to encode
5281         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
5282         or VECTOR_CST into a specified buffer.
5283         (native_encode_int): New function.
5284         (native_encode_real): New function.
5285         (native_encode_complex): New function.
5286         (native_encode_vector): New function.
5287         (native_interpret_expr): Inverse of native_encode_expr to convert
5288         a target representation into an INTEGER_CST, REAL_CST etc...
5289         (native_interpret_int): New function.
5290         (native_interpret_real): New function.
5291         (native_interpret_complex): New function.
5292         (native_interpret_vector): New function.
5293         (fold_view_convert_expr): New function to constant fold/evaluate
5294         a VIEW_CONVERT_EXPR of a suitable constant expression.
5295         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
5296         Change call of build1 to fold_build1 when constructing a
5297         VIEW_CONVERT_EXPR.
5298
5299 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
5300             Ulrich Weigand  <uweigand@de.ibm.com>
5301
5302         PR target/27006
5303         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
5304         to be even.
5305
5306 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
5307
5308         PR target/26459
5309         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
5310         optimize to lo_sum for DFmode if !TARGET_FPRS.
5311
5312 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
5313
5314         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
5315         delete_alias_info, compute_flow_sensitive_aliasing,
5316         group_aliases): Use VEC instead of VARRAY.
5317         * tree-ssa-structalias.c (update_alias_info): Likewise.
5318         * tree-ssa-structalias.h (alias_info): Change the type of
5319         processed_ptrs to VEC(tree,heap) *.
5320
5321 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
5322
5323         PR target/27060
5324         * config/sh/lib1funcs.h: New file, broken out of:
5325         * config/sh/lib1funcs.asm.
5326         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
5327         New macros.
5328         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
5329         * config/sh/lib1funcs-Os-4-200.asm: New file.
5330         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
5331         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
5332         (EXTRA_MULTILIB_PARTS): Include it.
5333         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
5334         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
5335         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
5336         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
5337         TARGET_SH2.
5338
5339 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
5340
5341         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
5342         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
5343         tpa_compact, root_var_init, type_var_init): Use VEC instead of
5344         VARRAY.
5345         * tree-ssa-live.h: Include vecprim.h.
5346         (tree_partition_associator_d): Change the type of
5347         first_partition to VEC(int,heap) *.
5348         (tpa_first_partition): Use VEC instead of VARRAY.
5349
5350         * Makefile.in (GTFILES): Move functions.h after tree.h.
5351         * function.c (reset_block_changes, record_block_change,
5352         check_block_change, free_block_changes): Use VEC instead of
5353         VARRAY.
5354         * function.h (function): Change the type of
5355         ib_boundaries_block to VEC(tree,gc) *.
5356         * tree-inline.c (copy_cfg_body): Initialize
5357         ib_boundaries_block to NULL instead of (varray_type) 0.
5358
5359 2006-04-12  Roger Sayle  <roger@eyesopen.com>
5360
5361         * expr.c (emit_group_store): Correct operand order in call to
5362         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
5363         a SUBREG_BYTE of zero.
5364
5365 2006-04-12  Richard Guenther  <rguenther@suse.de>
5366
5367         * profile.c (compute_branch_probabilities): Remove code
5368         encapsulated in !ir_type (), which are remanents of the
5369         removed RTL profiling code.
5370         * rtl-profile.c: Remove.
5371
5372 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
5373
5374         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
5375         magic NULL_RTX comment.
5376         (function_arg): Store entire fp arg to mem if any part should go
5377         on stack.
5378         (rs6000_arg_partial_bytes): Adjust for above change.
5379
5380 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5381
5382         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
5383         if it hasn't been initialized by dwarf2out_init.
5384
5385 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
5386
5387         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
5388         symbolic constants in branch patterns.
5389
5390 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5391
5392         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
5393
5394 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
5395
5396         PR rtl-optimization/27073
5397         * gcse.c (try_replace_reg): Revert last change.  Continue to search
5398         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
5399         on the former.
5400
5401 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
5402
5403         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
5404         aggregate types other than record and union types.
5405         (function_arg): Likewise.
5406         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
5407         small arrays.
5408         (function_value): In 64-bit mode, return objects that require it
5409         in FP registers.
5410
5411 2006-04-11  Roger Sayle  <roger@eyesopen.com>
5412
5413         * dwarf2out.c (premark_used_types): Remove problematic prototype.
5414
5415 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
5416
5417         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
5418
5419 2006-04-03  Jeff Law  <law@redhat.com>
5420
5421         PR/27087
5422         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
5423         alias information too.
5424
5425 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
5426
5427         * Makefile.in (gcc-cross): Add $(exeext) to target name.
5428
5429 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>
5430
5431         PR/21391
5432         * dwarf2out.c (struct die_struct): Add die_perennial_p field.
5433         (premark_used_types_helper): New.
5434         (premark_used_types): New.
5435         (gen_subprogram_die): Call premark_used_types.
5436         (prune_unused_types_walk): Do not prune perennial dies.
5437         * function.c (used_types_insert): New.
5438         * function.h (struct function): Add used_types_hash field.
5439         (used_types_insert): Add prototype.
5440         * Makefile.in (FUNCTION_H): Depend on HASHTAB_H.
5441         * c-parser.c (c_parser_cast_expression): Save casted types in used
5442         types hash table.
5443
5444 2006-04-11  Mark Mitchell  <mark@codesourcery.com>
5445
5446         PR target/26459
5447         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Test
5448         rs6000_explicit_options.float_gprs.
5449
5450 2006-04-10  Roger Sayle  <roger@eyesopen.com>
5451
5452         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Renamed
5453         from ix86_expand_vector_init_low_nonzero.  Take an additional
5454         one_var argument indicating which element is non-zero.  Support
5455         one_var != 0 for V4SFmode and V4SImode by permuting the result.
5456         (ix86_expand_vector_init): Call ix86_expand_vector_init_one_nonzero
5457         with one_var instead of ix86_expand_vector_init_low_nonzero.
5458
5459 2006-04-10  Kazu Hirata  <kazu@codesourcery.com>
5460
5461         * Makefile.in (tree-into-ssa.o, tree-outof-ssa.o,
5462         tree-ssa-live.o, tree-ssa-alias.o, function.o, df-problems.o,
5463         global.o, cfglayout.o, lambda-code.o, reg-stack.o,
5464         build/genextract.o): Depend on vecprim.h.
5465         * cfglayout.c, df-problems.c, function.c, genextract.c,
5466         global.c, lambda-code.c, reg-stack.c, tree-into-ssa.c,
5467         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Include
5468         vecprim.h.
5469         * vecprim.h: New.
5470
5471 2006-04-10  Geoffrey Keating  <geoffk@apple.com>
5472
5473         * dwarf2out.c (struct dw_attr_struct): Remove dw_attr_next.
5474         Declare VECs of this type.
5475         (struct die_struct): Make field die_attr a VEC of dw_attr_struct.
5476         (remove_children): Delete.
5477         (add_dwarf_attr): Use VEC routines.
5478         (add_AT_flag): Update for changes to add_dwarf_attr.
5479         (add_AT_int): Likewise.
5480         (add_AT_unsigned): Likewise.
5481         (add_AT_long_long): Likewise.
5482         (add_AT_vec): Likewise.
5483         (add_AT_string): Likewise.
5484         (add_AT_die_ref): Likewise.
5485         (add_AT_fde_ref): Likewise.
5486         (add_AT_loc): Likewise.
5487         (add_AT_loc_list): Likewise.
5488         (add_AT_addr): Likewise.
5489         (add_AT_lbl_id): Likewise.
5490         (add_AT_lineptr): Likewise.
5491         (add_AT_macptr): Likewise.
5492         (add_AT_offset): Likewise.
5493         (add_AT_range_list): Likewise.
5494         (get_AT): Use VEC_iterate.
5495         (remove_AT): Use VEC_ordered_remove.
5496         (free_die): Fold remove_children into here; have it use VEC_iterate.
5497         (print_die): Use VEC_iterate on attrs.
5498         (reverse_die_lists): Don't reverse attr lists.
5499         (die_checksum): Use VEC_iterate on attrs.
5500         (same_die_p): Likewise.
5501         (output_location_lists): Likewise.
5502         (build_abbrev_table): Likewise.
5503         (size_of_die): Likewise.
5504         (unmark_all_dies): Likewise.
5505         (output_abbrev_section): Likewise.
5506         (output_die): Likewise.
5507         (prune_unused_types_walk_attribs): Likewise.
5508
5509 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5510
5511         * doc/install.texi (*-*-solaris2*): Point to the configure page.
5512
5513 2006-04-10  Jakub Jelinek  <jakub@redhat.com>
5514
5515         PR debug/27057
5516         * dwarf2out.c (is_symbol_die): Return true also for namespaces.
5517
5518 2006-04-09  Roger Sayle  <roger@eyesopen.com>
5519
5520         * expr.c (store_constructor): Don't bother clearing target if
5521         we're about to assign a vector to it using vec_init_optab.
5522
5523 2006-04-10 Daniel Berlin  <dberlin@dberlin.org>
5524
5525         * tree-ssa-alias.c (lhs_may_store_to): New function.
5526         (recalculate_used_alone): Handle LHS of calls.
5527
5528 2006-04-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5529
5530         PR target/27034
5531         PR target/26508
5532         * config.gcc (hppa*64*-*-hpux11*): Add 'libgcc_stub.a' to extra_parts.
5533         * pa64-hpux.h (LIB_SPEC): Correct typo.  Don't append milli.a.
5534         (LINK_GCC_C_SEQUENCE_SPEC): Define.  Append milli.a here.
5535         (PA_CXA_FINALIZE_STUB, PA_JV_REGISTERCLASSES_STUB): Delete defines.
5536         (PA_INIT_FINI_HACK): Rename to PA_CRTBEGIN_HACK.
5537         (PA_CRTBEGIN_HACK): Ensure __do_global_ctors_aux is placed in text
5538         section.  Delete PA_CXA_FINALIZE_STUB and PA_JV_REGISTERCLASSES_STUB
5539         stubs.  Add ".align 8" directives before all ".dword" directives.
5540         (GTHREAD_USE_WEAK): Revise comment.
5541         (TARGET_ATTRIBUTE_WEAK): Define.
5542         * pa/t-pa64 (LIBGCCSTUB_OBJS): Add new rules for stublib.c, rfi-stub.o,
5543         dfi-stub.o, cxaf-stub.o and jvrc-stub.o.
5544         * stublib.c: New file.
5545
5546         PR target/26743
5547         PR target/11254
5548         PR target/10274
5549         * pa.md (cbranch patterns): Revise arguments used in calls to
5550         output_cbranch, output_bb and output_bvd.  Add long branch length
5551         attributes.
5552         (fbranch patterns): Handle long branches.
5553         (jump): Revise length check.  Revise arguments for output_lbranch call.
5554         Add long branch length attributes.
5555         (decrement_and_branch_until_zero): Add long branch length attributes.
5556         (output_movb, output_parallel_addb and output_parallel_movb patterns):
5557         Likewise.  Revise arguments for output_parallel_addb and
5558         output_parallel_movb calls.
5559         * pa-protos.h (output_cbranch, output_lbranch, output_bb, output_bvb,
5560         output_parallel_movb and output_parallel_addb): Update prototypes.
5561         * pa.c (output_cbranch): Revise arguments.  Correct handling of
5562         nullification in long branches.
5563         (output_lbranch): Add new argument to control extraction of delay
5564         instruction.
5565         (output_bb): Handle long branches.
5566         (output_bvb, output_dbra, output_movb, output_parallel_movb,
5567         output_parallel_addb): Likewise.
5568
5569 2006-04-09  Richard Sandiford  <richard@codesourcery.com>
5570
5571         PR rtl-optimization/27073
5572         * gcse.c (try_replace_reg): Just propagate into REG_EQUAL notes,
5573         not REG_EQUIVs.
5574
5575 2006-04-08  Daniel Berlin  <dberlin@dberlin.org>
5576
5577         * tree.h (tree_memory_tag): Add old_used_alone.
5578         (SMT_OLD_USED_ALONE): New macro.
5579         * tree-ssa-alias.c (recalculate_used_alone): Stop
5580         marking things for renaming unnecessarily.
5581
5582 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
5583
5584         * builtins.c, config/arm/arm.c, config/i386/cygwin.h,
5585         config/i386/i386.c, config/ia64/ia64.c, config/s390/fixdfdi.h,
5586         config/sh/sh.c, config/sh/sh.h, df-scan.c, except.c,
5587         haifa-sched.c, optabs.c, rtl.h, sched-deps.c, sched-int.h,
5588         sched-rgn.c, tree-inline.h, tree-ssa-dom.c,
5589         tree-ssa-loop-prefetch.c, tree-ssa-operands.c,
5590         tree-vect-patterns.c, tree-vrp.c: Fix comment typos.  Follow
5591         spelling convensions.
5592         * config/ia64/ia64.opt, doc/contrib.texi, doc/invoke.texi,
5593         doc/passes.texi, doc/tm.texi, doc/tree-ssa.texi: Fix comment
5594         typos.  Follow spelling conventions.
5595
5596 2006-04-07  DJ Delorie  <dj@redhat.com>
5597
5598         * config/m32c/m32c.c (m32c_function_arg): Structures are always
5599         passed on the stack.
5600         (m32c_init_cumulative_args): When a function returns a structure,
5601         always pass the pointer to that return area on the stack.
5602         (m32c_function_arg_advance): Don't increment the parameter number
5603         if we're processing the returned structure pointer.
5604         (pushm_info): Reverse order of registers.
5605
5606 2006-04-07  Sebastian Pop  <pop@cri.ensmp.fr>
5607
5608         * tree-ssa-loop-niter.c (inverse, number_of_iterations_ne,
5609         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
5610         number_of_iterations_le, number_of_iterations_cond, find_loop_niter,
5611         estimate_numbers_of_iterations_loop): Use build_int_cst instead of
5612         build_int_cst_type.
5613         * tree-chrec.c (chrec_fold_multiply_poly_poly,
5614         chrec_fold_multiply): Same.
5615         * tree-ssa-loop-ivopts.c (strip_offset_1, force_expr_to_var_cost,
5616         force_expr_to_var_cost): Same.
5617         * tree-mudflap.c (mf_xform_derefs_1): Same.
5618         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Same.
5619
5620 2006-04-07  David Edelsohn  <edelsohn@gnu.org>
5621
5622         * config/rs6000/rs6000.c (rs6000_rtx_costs) <CONST_DOUBLE>: Do not
5623         treat CONST_DOUBLE as INTVAL.  and64_2_operands require an extra
5624         insn.
5625
5626 2006-04-07  Jan Hubicka  <jh@suse.cz>
5627
5628         * ipa-inline.c (cgraph_early_inlining): Collect garbage.
5629
5630 2006-04-07  Richard Guenther  <rguenther@suse.de>
5631
5632         PR tree-optimization/26135
5633         * tree-ssa-copy.c (stmt_may_generate_copy): Handle memory
5634         loads for store copy-prop.
5635         (copy_prop_visit_stmt): Likewise.
5636
5637 2006-04-05  Robert Millan  <robertmh@gnu.org>
5638
5639         * config/i386/linux.h: Add a comment to mark macros that are
5640         being overriden in config/k*bsd-gnu.h.
5641         * config/kfreebsd-gnu.h: Redefine GLIBC_DYNAMIC_LINKER instead of
5642         DYNAMIC_LINKER.
5643         * config/knetbsd-gnu.h: Ditto.
5644
5645 2006-04-06  Jan Hubicka  <jh@suse.cz>
5646
5647         PR profile/20815
5648         PR profile/26399
5649         * coverage.c (coverage_checksum_string): Reorganize loop to not read
5650         after buffer.
5651
5652 2006-04-06  Mike Stump  <mrs@apple.com>
5653
5654         * builtins.c (expand_builtin_longjmp):Use #ifdef instead of #if
5655         for HAVE_nonlocal_goto to be consistent.
5656         (expand_builtin_nonlocal_goto): Likewise.
5657         (expand_builtin_strcmp): Use #ifdef instead of #if
5658         for HAVE_cmpstrnsi to be consistent.
5659
5660 2006-04-05  DJ Delorie  <dj@redhat.com>
5661
5662         * config/m32c/m32c.h (INCOMING_FRAME_SP_OFFSET): Adjust for m16c
5663         vs m32c.
5664
5665 2006-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
5666
5667         * config/bfin/bfin.c (bfin_legitimate_address_p): Disallow
5668         got-relative addressing for anything but SImode.
5669
5670         * config/bfin/lib1funcs.asm (modsi): P1/P2 can be call-clobbered
5671         even if the calling function doesn't modify them.
5672
5673 2006-04-05  Richard Guenther  <rguenther@suse.de>
5674
5675         PR tree-optimization/26919
5676         * ipa-inline.c (cgraph_decide_inlining_incrementally): Fix argument
5677         to cgraph_estimate_size_after_inlining.
5678
5679 2006-04-05  Alan Modra  <amodra@bigpond.net.au>
5680
5681         * reload.c (find_dummy_reload): Fix typo in 2006-04-03 change.
5682
5683 2006-04-05  Sebastian Pop  <pop@cri.ensmp.fr>
5684
5685         PR tree-optimization/26996
5686         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Don't analyze
5687         VECTOR_TYPE variables.
5688
5689 2006-04-05  Richard Guenther  <rguenther@suse.de>
5690
5691         PR tree-optimization/26763
5692         * fold-const.c (fold_comparison): Move folding of
5693         PTR + CST CMP PTR + CST ...
5694         (fold_binary): ... here.  Fold only for EQ_EXPR and NE_EXPR.
5695
5696 2006-04-05  Gerald Pfeifer  <gerald@pfeifer.com>
5697
5698         * doc/install.texi (Prerequisites): Refine some wording on
5699         bootstrapping and ksh.
5700         Move the version numbers of DejaGnu here from the testing section
5701         and fix casing of names.
5702         Fix markup and clarify wording for autogen requirements.
5703         Refer to GCJ instead of just java.
5704         Refer to SVN instead of CVS.
5705         Describe diffutils as useful instead of necessary.
5706         (Downloading the source): Refer to SVN instead of CVS.
5707         Adjust a link to our web site accordingly.
5708         (Configuration): Fix casing of Bison.
5709         (Building): Refer to SVN instead of CVS.
5710         Fix a sentence on the use of Bison and remove duplicate (and
5711         incorrect) version number of Bison requirement.
5712         Remove one redundant list of packages needed for building.
5713         (Specific): Avoid reference to CVS.
5714
5715 2006-04-04  Eric Christopher  <echristo@apple.com>
5716
5717         * config/rs6000/rs6000.c (TARGET_MS_BITFIELD_LAYOUT_P): Define.
5718         (TARGET_USE_MS_BITFIELD_LAYOUT): Ditto.
5719         (rs6000_handle_struct_attribute): New.
5720         (rs6000_ms_bitfield_layout_p): Ditto.
5721
5722 2006-04-04  Geoffrey Keating  <geoffk@apple.com>
5723
5724         * config/darwin-crt3.c (atexit): Pass &__dso_handle rather than
5725         NULL for dso parameter to atexit_common.
5726
5727 2006-04-04  Eric Christopher  <echristo@apple.com>
5728
5729         * config/i386/i386.c (machopic_output_stub): Output \t
5730         between instructions and operands.
5731
5732 2006-04-04  David Edelsohn  <edelsohn@gnu.org>
5733
5734         * config/rs6000/rs6000.c (num_insns_constant_wide): Change
5735         satisfies_constraint_[IL] to explicit tests on value.
5736
5737 2006-04-04  Sebastian Pop  <pop@cri.ensmp.fr>
5738
5739         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
5740         set_nb_iterations_in_loop): Use build_int_cst instead of
5741         build_int_cst_type.
5742         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Use
5743         build_int_cst instead of convert.
5744
5745 2006-04-04  Carlos O'Donell  <carlos@codesourcery.com>
5746
5747         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document
5748         new value 2 for incoming.
5749         * function.c (expand_function_start): Call struct_value_rtx
5750         with incoming as 2.
5751         * config/sparc/sparc.md: Comment updated_return.
5752         * config/sparc/sparc.opt: Add -mstd-struct-return option.
5753         * config/sparc/sparc.c (sparc_struct_value_rtx): Use standard
5754         struct return if sparc_std_struct_return and incoming is 2.
5755         (print_operand): Do not adjust return if
5756         sparc_std_struct_return.
5757
5758 2006-04-04  Roger Sayle  <roger@eyesopen.com>
5759
5760         * builtins.c (fold_builtin_sprintf): Use fold_convert instead of
5761         convert in the middle-end.
5762         * expr.c (store_expr, store_constructor, get_inner_reference,
5763         expand_expr_real_1, string_constant, try_casesi, try_tablejump):
5764         Likewise.
5765         * tree.c (build_range_type): Likewise.
5766
5767 2006-04-04  Tom Tromey  <tromey@redhat.com>
5768
5769         * doc/install.texi (Prerequisites): Mention jar.
5770
5771 2006-04-04  Daniel Berlin  <dberlin@dberlin.org>
5772
5773         * doc/tree-ssa.texi (Preserving the virtual ssa form): New
5774         subsection.
5775
5776 2006-04-04  Matthias Klose  <doko@debian.org>
5777
5778         * Makefile.in (unprotoize.o): Same dependencies as for protoize.o.
5779         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
5780         strings.
5781
5782 2006-04-03  Geoffrey Keating  <geoffk@apple.com>
5783
5784         * doc/extend.texi (Function Attributes): Rewrite visibility
5785         attribute documentation.
5786         * doc/invoke.texi (C++ Dialect Options): Rewrite
5787         -fvisibility-inlines-hidden documentation to describe something
5788         entirely different, although in practise compatible.
5789         (Code Gen Options): Warn about system headers in -fvisibility=
5790         documentation.
5791
5792         * doc/extend.texi (Other Builtins): Document that
5793         __builtin_nan is a compile-time constant only when its argument
5794         is valid.
5795
5796 2006-04-03  Adam Nemet  <anemet@caviumnetworks.com>
5797
5798         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: When
5799         trying to remove TRUNCATE check if all bits outside the new mode
5800         are identical to the sign bit.
5801
5802 2006-04-03  Jeff Law  <law@redhat.com>
5803
5804         * tree-ssa-dom.c (propagate_rhs_into_lhs): Avoid useless folding
5805         and operand scanning in some common cases.
5806
5807 2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
5808             Dale Johannesen  <dalej@apple.com>
5809
5810         PR target/19653
5811         * regclass.c (struct reg_pref): Update documentation.
5812         (regclass): Set prefclass to NO_REGS if memory is the best option.
5813         (record_reg_classes): Cope with a prefclass set to NO_REGS.
5814         * reload.c (find_reloads): Take PREFERRED_OUTPUT_RELOAD_CLASS
5815         into account.  For non-registers, equate an empty preferred
5816         reload class to a `!' in the constraint; move the if clause to
5817         do so after those that reject the insn.
5818         (push_reload): Allow PREFERRED_*_RELOAD_CLASS to liberally
5819         return NO_REGS.
5820         (find_dummy_reload): Likewise.
5821         * doc/tm.texi (Register Classes): Document what it means
5822         if PREFERRED_*_RELOAD_CLASS return NO_REGS.
5823         * config/i386/i386.c (ix86_preferred_reload_class): Force
5824         using SSE registers (and return NO_REGS for floating-point
5825         constants) if math is done with SSE.
5826         (ix86_preferred_output_reload_class): New.
5827         * config/i386/i386-protos.h (ix86_preferred_output_reload_class): New.
5828         * config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): New.
5829         * config/i386/i386.md: Remove # register preferences.
5830
5831 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
5832
5833         PR bootstrap/26992
5834         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
5835         chrec_is_positive, set_nb_iterations_in_loop): Use a variable for
5836         the type of nb_iter.
5837         (instantiate_parameters_1): Convert the operands before calling
5838         chrec_fold_minus, chrec_fold_plus, or chrec_fold_multiply.
5839         * tree-data-ref.c (can_use_analyze_subscript_affine_affine): Same.
5840
5841 2006-04-02  Roger Sayle  <roger@eyesopen.com>
5842
5843         * builtins.c (dummy_object): Use build_int_cst instead of convert.
5844         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use fold_convert
5845         instead of convert.
5846         * dojump.c (do_jump): Likewise.
5847         * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE, ARGS_SIZE_TREE): Likewise.
5848         * gimplify.c (gimple_boolify, gimplify_init_constructor,
5849         gimplify_boolean_expr): Likewise.
5850         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5851         * varasm.c (array_size_for_constructor): Likewise.
5852         * tree-object-size.c (compute_object_offset): Likewise.
5853
5854 2006-04-02  Roger Sayle  <roger@eyesopen.com>
5855
5856         PR middle-end/26977
5857         * expr.c (emit_group_store): Check whether simplify_gen_subreg returns
5858         NULL_RTX, indicating it couldn't create a valid paradoxical subreg.
5859
5860 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
5861
5862         PR tree-optimization/26939
5863         * tree-chrec.c (chrec_merge): Use eq_evolutions_p.
5864
5865 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
5866
5867         * tree-scalar-evolution.c (add_to_evolution_1): Pass an extra argument
5868         at_stmt.  Convert the type of operands before calling
5869         build_polynomial_chrec.
5870         (add_to_evolution): Pass an extra argument at_stmt.  Adjust the call to
5871         add_to_evolution_1.
5872         (follow_ssa_edge_in_rhs): Adjust call to add_to_evolution.
5873         (instantiate_parameters_1): Convert the type of operands before calling
5874         build_polynomial_chrec.
5875         * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly,
5876         chrec_fold_multiply_poly_poly, chrec_replace_initial_condition,
5877         reset_evolution_in_loop): Insert asserts to check the types of the
5878         operands.
5879         (chrec_type): Moved...
5880         (eq_evolutions_p): Use operand_equal_p.
5881         * tree-chrec.h (build_polynomial_chrec): Insert an assert to check
5882         the types of the operands.
5883         (chrec_type): ...here.
5884         * tree-data-ref.c (create_data_ref): Convert the operands before
5885         calling chrec_replace_initial_condition.
5886         (same_access_functions, analyze_subscript_affine_affine,
5887         analyze_miv_subscript, all_chrecs_equal_p): Use eq_evolutions_p.
5888         (compute_subscript_distance, analyze_ziv_subscript,
5889         analyze_siv_subscript_cst_affine, compute_overlap_steps_for_affine_1_2,
5890         analyze_miv_subscript): Convert the operands before calling
5891         chrec_fold_minus or chrec_fold_plus.
5892
5893 2006-04-02  Sebastian Pop  <pop@cri.ensmp.fr>
5894
5895         * tree-data-ref.c (compute_all_dependences): Use a pointer to
5896         the dependence_relations vector.
5897         (compute_data_dependences_for_loop): Adjust call to
5898         compute_all_dependences.
5899
5900 2006-04-01  Roger Sayle  <roger@eyesopen.com>
5901             Richard Henderson  <rth@redhat.com>
5902
5903         * gimplify.c (gimplify_scan_omp_clauses) <OMP_CLAUSE_IF>: Call
5904         gimple_boolify on the condition before calling gimplify_expr.
5905
5906 2006-03-31  Bob Wilson  <bob.wilson@acm.org>
5907
5908         * config/xtensa/lib1funcs.asm: Rename abi_entry/abi_return macros
5909         to leaf_entry/leaf_return.  Change leaf_entry to add 16 bytes to
5910         the frame size.  Update to use the new macros.
5911         * config/xtensa/ieee754-sf.S: Use new leaf_entry/leaf_return macros.
5912         * config/xtensa/ieee754-df.S: Likewise.
5913
5914 2006-03-31  Richard Henderson  <rth@redhat.com>
5915
5916         * tree-cfg.c (make_ctrl_stmt_edges, make_exit_edges): Merge into...
5917         (make_edges): ... here.  Control fallthru creation with a local
5918         variable.  Do not play with fake edges.
5919         (make_omp_sections_edges): Don't set EDGE_ABNORMAL.
5920         (make_goto_expr_edges): Don't play with fake edges.  Make for_call
5921         a boolean.
5922
5923 2006-04-01  Joseph S. Myers  <joseph@codesourcery.com>
5924
5925         * dwarf2.h (DW64_CIE_ID): Define.
5926         * dwarf2out.c (DWARF_CIE_ID): Define.
5927         (output_call_frame_info): Output 0xffffffff before standard 8-byte
5928         length header.  Use DWARF_CIE_ID.
5929         (value_format): Use DW_FORM_data4 or DW_FORM_data8 for
5930         dw_val_class_loc_list depending on DWARF_OFFSET_SIZE.
5931
5932 2006-03-31  Kaz Kojima  <kkojima@gcc.gnu.org>
5933
5934         * config/sh/linux-atomic.asm: New file.
5935         * config/sh/t-linux (LIB2FUNCS_EXTRA): Add linux-atomic.asm.
5936
5937 2006-03-31  DJ Delorie  <dj@redhat.com>
5938
5939         * config/m32c/cond.md: Set condition flags properly throughout.
5940         * config/m32c/minmax.md: Likewise.
5941         * config/m32c/prologue.md: Likewise.
5942         * config/m32c/bitops.md: Likewise.
5943         * config/m32c/muldiv.md: Likewise.
5944         * config/m32c/mov.md: Likewise.
5945         * config/m32c/addsub.md: Likewise.
5946         * config/m32c/m32c.md: Likewise.
5947         * config/m32c/jump.md: Likewise.
5948         * config/m32c/shift.md: Likewise.
5949
5950         * config/m32c/cond.md (cmp<mode>): Call m32c_output_compare to
5951         conditionally output the pattern for this.
5952         * config/m32c/m32c.c (flags_needed_for_conditional): New.
5953         (m32c_compare_redundant): New.
5954         (m32c_output_compare): New.
5955         * config/m32c/m32c-protos.h (m32c_output_compare): New.
5956
5957         * config/m32c/m32c.c (m32c_prepare_shift): Fix logic to clobber
5958         dest, not src.  Allow other 4-byte modes.
5959
5960 2006-03-30  Denis Chertykov  <denisc@overta.ru>
5961
5962         * doc/md.texi: Refer to avr/constraints.md instead of
5963         avr/avr.h.
5964
5965 2006-03-30  Roger Sayle  <roger@eyesopen.com>
5966
5967         * expr.c (emit_group_store): Make BYTEPOS a HOST_WIDE_INT to
5968         signed vs. unsigned comparison failures on some hosts.
5969
5970 2006-03-31  Alan Modra  <amodra@bigpond.net.au>
5971
5972         PR target/26459
5973         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Limit 2003-12-08
5974         change to FLOAT_REGS.
5975
5976         * config/rs6000/rs6000.c (rs6000_explicit_options): Add ieee.
5977         (rs6000_override_options): Use it.
5978         (rs6000_handle_option): Set it.  Set rs6000_explicit_options.abi
5979         only for -mabi=spe/no-spe and -mabi=altivec.
5980
5981 2006-03-30  Geoffrey Keating  <geoffk@apple.com>
5982
5983         * config/darwin.h (LINK_COMMAND_SPEC): Don't try to protect %S with
5984         !Zdynamiclib.
5985
5986 2006-03-30  Carlos O'Donell  <carlos@codesourcery.com>
5987
5988         * Makefile.in: Rename docdir to gcc_docdir.
5989
5990 2006-03-30  Roger Sayle  <roger@eyesopen.com>
5991
5992         PR target/17959
5993         * expr.c (emit_group_store): Optimize group stores into a pseudo
5994         register by using a paradoxical subreg to initialize the destination
5995         if the first or last member of the group specifies a "low part".
5996
5997 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
5998
5999         PR target/26734
6000         * rtl.def (DEPS_LIST): Change type of the second operand to 'int'.
6001         * target.h (struct gcc_target.speculate_insn): Change type of the
6002         second parameter to 'int'.
6003         * lists.c (alloc_DEPS_LIST): Change signature.  Update reference to
6004         the second operand of the DEPS_LIST.
6005         (copy_DEPS_LIST_list): Update reference to the second operand of the
6006         DEPS_LIST.
6007         * rtl.h (alloc_DEPS_LIST): Update signature.
6008         * sched-int.h (ds_t): Change typedef to 'int'.
6009         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6010
6011 2006-03-30  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6012
6013         * haifa-sched.c (try_ready): Change condition to restore
6014         non-speculative pattern of the instruction.
6015         (process_insn_depend_be_in_spec): Code to keep probability of the
6016         speculative dependence non-decreasing.
6017
6018 2006-03-30  Jie Zhang  <jie.zhang@analog.com>
6019
6020         * config/bfin/bfin.c (single_move_for_strmov): Renamed to...
6021         (single_move_for_movmem): ... this. Also change all uses.
6022         (bfin_expand_strmov): Renamed to...
6023         (bfin_expand_movmem): ... this. Also change all uses.
6024         * config/bfin/bfin.md (movstrsi): Renamed to...
6025         (movstrsi): ...this.
6026
6027 2006-03-30  Paolo Bonzini  <bonzini@gnu.org>
6028
6029         PR tree-optimization/26830
6030
6031         * tree-ssa-copy.c (copy_prop_visit_assignment): Do not check loop depth.
6032         (copy_prop_visit_stmt): Remove write-only variable ann.
6033         (init_copy_prop): Check variable loop depth here.  Do not simulate
6034         memory-tag and virtual operand PHIs except for store copy prop.
6035
6036 2006-03-30  Richard Guenther  <rguenther@suse.de>
6037
6038         * config/i386/i386.c: Remove builtins for SSE2 ABI intrinsic
6039         variants with double arguments.
6040
6041 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
6042
6043         * genpreds.c (write_tm_constrs_h): Delete variable p.
6044         * genconditions.c (write_header): Add tm-constrs.h to included
6045         headers.
6046         * genpeep.c (main): Add toplev.h to included headers.
6047         * Makefile.in (build/gencondmd.o): Add tm-constrs.h dependency.
6048         (build/genpeep.o): Add toplev.h dependency.
6049         * config/rs6000/constraints.md: Add "W" constraint.
6050
6051 2006-03-29  Roger Sayle  <roger@eyesopen.com>
6052
6053         * stor-layout.c (mode_for_size_tree): Remove restiction on type
6054         sizes by correctly testing whether the size fits a host integer.
6055         (initialize_sizetypes): Use set_min_and_max_values_for_integral_type
6056         to correctly set TYPE_MIN_VALUE and TYPE_MAX_VALUE to the full
6057         SImode range for the default sizetype and bitsizetype.
6058
6059 2006-03-29  Roger Sayle  <roger@eyesopen.com>
6060
6061         * convert.c (convert_to_pointer): Preserve the TREE_OVERFLOW
6062         and TREE_CONSTANT_OVERFLOW bits of the argument.  Return
6063         quickly if the argument is already of the correct type.
6064         Call fold_build1 instead of build1.  Tidy up blank lines.
6065
6066 2006-03-29  David Edelsohn  <edelsohn@gnu.org>
6067
6068         * genemit.c (main): Add tm-constrs.h to included headers.
6069         * genoutput.c (output_prologue): Add tm-constrs.h to included headers.
6070         * genpeep.c (main): Add tm-constrs.h to included headers.
6071         * genpreds.c (write_satisfies_constraint_fns): Rename to ...
6072         (write_tm_constrs_h): this and write complete file.
6073         (write_tm_preds_h): Do not emit satisfies_constraint fns.
6074         (write_insn_preds_c): Add tm-constrs.h to included headers.
6075         (gen_constrs): New variable.
6076         (parse_option): Parse "-c".
6077         (main): Invoke write_tm_constrs_h.
6078         * genrecog.c (write_header): Add tm-constrs.h to included headers.
6079         * Makefile.in (STAGECOPYSTUFF): Add tm-constrs.h.
6080         (object_out_file): Add tm-constrs.h dependency.
6081         (insn-emit.o): Same.
6082         (insn-output.o): Same.
6083         (insn-peep.o): Same.
6084         (insn-preds.o): Same.
6085         (insn-recog.o): Same.
6086         (tm-constsr.h): New target.
6087         (s-constrs-h): New target.
6088
6089         * config/rs6000/constraints.md: New file.
6090         * config/rs6000/rs6000.c: Include tm-constrs.h.
6091         (num_insn_constant_wide): Convert to satisfies_constraint.
6092         (rs6000_rtx_costs): Convert to satisfies_constraint.
6093         * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Delete.
6094         (CONST_OK_FOR_LETTER_P): Delete.
6095         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6096         (EXTRA_CONSTRAINT): Delete.
6097         (EXTRA_MEMORY_CONSTRAINT): Delete.
6098         (EXTRA_ADDRESS_CONSTRAINT): Delete.
6099         * config/rs6000/predicates.md: Convert to satisfies_constraint.
6100         * config/rs6000/rs6000.md: Include constraints.md.  Convert to
6101         satisfies_constraint.
6102
6103         * config/i386/i386.c: Include tm-constrs.h.
6104
6105 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
6106
6107         * tree-loop-linear.c (compute_data_dependences_for_loop): Adjust calls.
6108         * tree-data-ref.c (find_data_references_in_loop,
6109         compute_data_dependences_for_loop): Use pointers to VEC.
6110         (analyze_all_data_dependences): Adjust calls.
6111         * tree-data-ref.h (find_data_references_in_loop,
6112         compute_data_dependences_for_loop): Adjust declarations.
6113         * tree-vect-analyze.c (vect_analyze_data_refs): Adjust call to
6114         compute_data_dependences_for_loop.
6115
6116 2006-03-29  Paul Brook  <paul@codesourcery.com>
6117
6118         * config/arm/vfp.md (movsf_vfp): Disparage w<->r alternatives.
6119         (movdf_vfp): Ditto.
6120
6121 2006-03-29  Sebastian Pop  <pop@cri.ensmp.fr>
6122
6123         PR tree-optimization/26859
6124         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Avoid
6125         division by zero.
6126         (convert_step): Remove TREE_OVERFLOW and TREE_CONSTANT_OVERFLOW flags
6127         for the step after fold_convert.
6128
6129 2006-03-29  Paul Brook  <paul@codesourcery.com>
6130
6131         * reload1.c (choose_reload_regs): Check for all RTX_AUTOINC operators.
6132         (inc_for_reload): Handle PRE_MODIFY and POST_MODIFY addresses.
6133
6134 2006-03-29  Paul Brook  <paul@codesourcery.com>
6135
6136         PR middle-end/23623
6137         * targhooks.c (default_narrow_bitfield): New fuction.
6138         * targhooks.h (default_narrow_bitfield): add prototype.
6139         * target.h (gcc_target): Add narrow_volatile_bitfield.
6140         * target-def.h (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6141         * stor-layout.c (get_best_mode): Use targetm.narrow_volatile_bitfield.
6142         * doc/tm.texi: Document TARGET_NARROW_VOLATILE_BITFIELDS.
6143         * config/arm/arm.c (TARGET_NARROW_VOLATILE_BITFIELD): Define.
6144
6145 2006-03-29  Andreas Krebbel  <krebbel1@de.ibm.com>
6146
6147         * config.gcc (s390-*-linux-*, s390x-*-linux*): Add t-dfprules to
6148         tmake_file.
6149         * config/s390/s390.c (S390_scalar_mode_supported_p): New function.
6150         (NR_C_MODES): Add TDmode, DDmode and SDmode.
6151         (s390_output_pool_entry, ): Accept MODE_DECIMAL_FLOAT.
6152         (s390_hard_regno_mode_ok): Disallow TDmode in integer regs.
6153         (s390_function_arg_float): Allow SDmode and DDmode values to be
6154         passed in floating point registers.
6155         (s390_function_arg_integer, s390_function_value): Replace MODE_FLOAT
6156         check with SCALAR_FLOAT_MODE_P.
6157         (TARGET_SCALAR_MODE_SUPPORTED_P): Define target macro.
6158
6159 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
6160
6161         PR tree-optimization/25985
6162         * tree-ssa-loop-niter.c (number_of_iterations_le,
6163         number_of_iterations_ne): Make comments more precise.
6164         (number_of_iterations_cond): Add only_exit argument.  Use the
6165         fact that signed variables do not overflow only when only_exit
6166         is true.
6167         (loop_only_exit_p): New.
6168         (number_of_iterations_exit): Pass result of loop_only_exit_p to
6169         number_of_iterations_cond.
6170
6171 2006-03-28  Zdenek Dvorak <dvorakz@suse.cz>
6172
6173         PR tree-optimization/26643
6174         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not handle
6175         bit_field_refs.
6176
6177 2006-03-28  Kaz Kojima  <kkojima@gcc.gnu.org>
6178
6179         * config/sh/sh.md (udivsi3_i4_int): Clobber MACH_REG and MACL_REG.
6180         (divsi3_i4_int): Likewise.
6181
6182 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6183
6184         * expr.c (emit_group_store): Only create a new pseudo reg if the
6185         quantity it needs to hold isn't already a suitable pseudo.
6186
6187 2006-03-28  Jeff Law  <law@redhat.com>
6188
6189         * timevar.def (TV_TREE_PHI_CPROP): New timevar.
6190         * tree-ssa-dom.c (pass_phi_only_cprop): Use it.
6191
6192 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6193
6194         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & Y) ^ Y as
6195         the equivalent ~X & Y, and the symmetry related transformations.
6196         (fold_binary) <BIT_AND_EXPR>: Similarly, fold (X ^ Y) & Y as
6197         ~X & Y, and symmetry related transforms.
6198
6199 2006-03-28  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6200
6201         Revert my 2006-03-27 patches.
6202
6203 2006-03-28  Roger Sayle  <roger@eyesopen.com>
6204
6205         * fold-const.c (fold_unary) <NOP_EXPR>: Fold (T1)(~(T2)X) as
6206         ~(T1)X, when T1 and T2 are integer types of the same precision
6207         and (T2)X isn't an extension.
6208
6209 2006-03-28  Jeff Law  <law@redhat.com>
6210
6211         PR tree-optimization/26796
6212         * tree-ssa-dom.c (propagate_rhs_into_lhs): Queue blocks which
6213         need EH edge cleanups rather than purging them immediately.
6214         (eliminate_degenerate_phis): Handle queued EH cleanups.
6215
6216 2006-03-28  Daniel Berlin  <dberlin@dberlin.org>
6217
6218         * tree-ssa-alias.c (create_sft): Initially inherit TREE_ADDRESSABLE
6219         from parent_var.
6220
6221 2006-03-27  Roger Sayle  <roger@eyesopen.com>
6222
6223         PR middle-end/22524
6224         * fold-const.c (fold_binary) <MINUS_EXPR>: Call fold_convert to
6225         cast BIT_NOT_EXPR operand to the correct type.
6226
6227 2006-03-27  Sebastian Pop  <pop@cri.ensmp.fr>
6228
6229         * tree-loop-linear.c: Don't include varray.h.
6230         (gather_interchange_stats, try_interchange_loops,
6231         linear_transform_loops): Use VEC instead of VARRAY.
6232         * lambda-mat.c: Don't include varray.h.
6233         * tree-chrec.c: Same.
6234         * lambda-trans.c: Same.
6235         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info): Use
6236         VEC instead of VARRAY.
6237         * tree-vectorizer.h: Idem.
6238         * tree-data-ref.c (dump_data_references,
6239         dump_data_dependence_relations, dump_dist_dir_vectors, dump_ddrs,
6240         initialize_data_dependence_relation, finalize_ddr_dependent,
6241         compute_all_dependences, find_data_references_in_loop,
6242         compute_data_dependences_for_loop, analyze_all_data_dependences,
6243         free_dependence_relation, free_dependence_relations,
6244         free_data_refs): Idem.
6245         * tree-data-ref.h (data_reference_p, subscript_p): New.
6246         (data_dependence_relation, DDR_SUBSCRIPT, DDR_NUM_SUBSCRIPTS): Use
6247         VEC instead of VARRAY.
6248         (DDR_SUBSCRIPTS_VECTOR_INIT): Removed.
6249         (find_data_references_in_loop, compute_data_dependences_for_loop,
6250         dump_ddrs, dump_dist_dir_vectors, dump_data_references,
6251         dump_data_dependence_relations, free_dependence_relations,
6252         free_data_refs): Adjust declaration.
6253         (lambda_transform_legal_p): Move declaration here...
6254         * tree-vect-analyze.c (vect_analyze_data_ref_dependences,
6255         vect_compute_data_refs_alignment, vect_verify_datarefs_alignment,
6256         vect_enhance_data_refs_alignment, vect_analyze_data_ref_accesses,
6257         vect_analyze_data_refs): Use VEC instead of VARRAY.
6258         * lambda.h (lambda_transform_legal_p): ...from here.
6259         * lambda-code.c (lambda_transform_legal_p): Use VEC instead of VARRAY.
6260         * tree-vect-transform.c (vect_update_inits_of_drs): Idem.
6261         * Makefile.in (tree-loop-linear.o, lambda-mat.o, lambda-trans.o,
6262         tree-chrec.o): Don't depend on VARRAY_H.
6263
6264 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6265
6266         * rtl.def (Copyright): Update date.
6267         (DEPS_LIST): Change type of the second operand to 'int'.
6268         * target.h (Copyright): Update date.
6269         (struct gcc_target.speculate_insn): Change type of the second parameter
6270         to 'int'.
6271         * lists.c (Copyright): Update date.
6272         (alloc_DEPS_LIST): Change signature.  Update reference to the second
6273         operand of the DEPS_LIST.
6274         (copy_DEPS_LIST_list): Update reference to the second operand of the
6275         DEPS_LIST.
6276         * rtl.h (Copyright): Update date.
6277         (alloc_DEPS_LIST): Update signature.
6278         * sched-int.h (Copyright): Update date.
6279         (ds_t): Change typedef to 'int'.
6280         (DEP_STATUS, BITS_PER_DEP_STATUS): Update.
6281
6282 2006-03-27  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6283
6284         * haifa-sched.c (Copyright): Update date.
6285         (try_ready): Change condition to restore non-speculative pattern
6286         of the instruction.
6287         (process_insn_depend_be_in_spec): Code to keep probability of the
6288         speculative dependence non-decreasing.
6289
6290 2006-03-27  Bernd Schmidt  <bernd.schmidt@analog.com>
6291
6292         * regrename.c (replace_oldest_value_addr): Initialize a variable to
6293         shut up the compiler.
6294
6295 2006-03-27  J"orn Rennecke <joern.rennecke@st.com>
6296
6297         * config/sh/t-sh ($(T)libic_invalidate_array_4-100.a): Fix rule
6298         to use lib prefix for target.
6299         ($(T)libic_invalidate_array_4-200.a): Likewise.
6300         ($(T)libic_invalidate_array_4a.a): Likewise.
6301
6302 2006-03-27  Andrew Stubbs <andrew.stubbs@st.com>
6303             J"orn Rennecke <joern.rennecke@st.com>
6304
6305         * superh.opt: New file.
6306         * sh.c (boardtype, osruntime): Remove.
6307         * superh.h (SUBTARGET_OPTIONS): Remove.
6308         * config.gcc (sh*-superh-elf): Add sh/superh.opt to extra_options.
6309
6310         * config.gcc (sh*-*-*): Don't use c-c ranges for tr.  Quote sed
6311         arguments with ^ and/or [].
6312
6313         * config.gcc (sh-*-*): Add quoting to account for quirk of
6314         Solaris /bin/sh.
6315         Replace == with = in enable_incomplete_targets test.
6316
6317         * config/sh/superh.h (SUBTARGET_LINK_SPEC): Replace LITTLE_ENDIAN_BIT
6318         with MASK_LITTLE_ENDIAN.
6319
6320         * config.gcc (sh*-superh-elf): Add sh/superh.h to tm_file.
6321         * config/sh/sh.opt: Added to some comments.
6322         * config/sh/superh.h: Removed some chaff.
6323
6324         * config/sh/sh.opt: Add m4-[1234]00* options.
6325         * config/sh/sh.c (sh_handle_option): Likewise.
6326         * config/sh/t-sh (IC_EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Define.
6327         (ic_invalidate_array_4-100.o): New rule.
6328         ($(T)libic_invalidate_array_4-100.a): Likewise.
6329         (ic_invalidate_array_4-200.o): Likewise.
6330         ($(T)libic_invalidate_array_4-200.a): Likewise.
6331         (ic_invalidate_array_4a.o): Likewise.
6332         ($(T)libic_invalidate_array_4a.a): Likewise.
6333         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Add IC_EXTRA_PARTS.
6334         * config/sh/embed-elf.h (LIBGCC_SPEC): Add clauses for m4-100*,
6335         m4-200*, and m4a*.
6336         * config/sh/crt1.asm: Merged in profiling code.
6337         * config/sh/superh.h (STARTFILE_SPEC): Override.
6338         * config/sh/t-superh: Override EXTRA_MULTILIB_PARTS.
6339         Add rules for $(T)crt1-mmu.o, $(T)gcrt1-mmu.o and $(T)gcrt1.o.
6340         * config.gcc (sh*-superh-elf): Add t-superh to tmake_file.
6341
6342         * t-sh (MULTILIB_MATCHES): Add sh4-[1245]00* variants.
6343         * config/sh/t-superh: Removed now-redundant MULTILIB_OPTIONS /
6344         MULTILIB_DIRNAMES / MULTILIB_MATCHES settings.
6345
6346         * sh.opt (mpretend-cmove): New option.
6347         * sh.h (OPERRIDE_OPTIONS): Switch it off if not TARGET_SH1.
6348         * sh.md (movsicc_t_false, movsicc_t_tru): New patterns.
6349         (movsicc): Add TARGET_PRETEND_CMOVE code.
6350
6351 2006-03-27  Andreas Krebbel  <krebbel1@de.ibm.com>
6352
6353         * config/s390/s390-protos.h (s390_hard_regno_mode_ok,
6354         s390_class_max_nregs): New function prototypes.
6355         * config/s390/s390.c (REGNO_PAIR_OK): New macro.
6356         (s390_hard_regno_mode_ok, s390_class_max_nregs): New functions.
6357         * config/s390/s390.h (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK,
6358         CLASS_MAX_NREGS): Macro bodies replaced by function calls.
6359
6360 2006-03-26  Geoffrey Keating  <geoffk@apple.com>
6361
6362         * dwarf2out.c (add_location_or_const_value_attribute): Call
6363         tree_add_const_value_attribute if nothing else works.
6364         (reference_to_unused): New.
6365         (rtl_for_decl_init): Use reference_to_unused to decide whether
6366         to output an initializer.
6367
6368 2006-03-27  Alan Modra  <amodra@bigpond.net.au>
6369
6370         PR target/26459
6371         * config/rs6000/rs6000.md (DF reg move peephole): Prevent
6372         peephole removing spe frob_di_df_2.
6373
6374 2006-03-26  Sebastian Pop  <pop@cri.ensmp.fr>
6375
6376         * tree-data-ref.c: Rename DDR_SIZE_VECT to DDR_NB_LOOPS.
6377         (subscript_dependence_tester_1): Declared.
6378         (print_dir_vectors, print_dist_vectors): New.
6379         (debug_data_dependence_relation): New.
6380         (dump_data_dependence_relation): Print more details.
6381         (initialize_data_dependence_relation): Initialize DDR_LOOP_NEST.
6382         (analyze_subscript_affine_affine): Don't ICE when gcd_alpha_beta is 0.
6383         (save_dist_v, save_dir_v, add_outer_distances,
6384         build_classic_dist_vector_1): New.
6385         (build_classic_dist_vector): Rewrite to work on DDR_LOOP_NEST.
6386         Don't test for lambda_vector_lexico_pos.
6387         (same_access_functions, add_multivariate_self_dist,
6388         add_other_self_distances, dir_from_dist): New.
6389         (build_classic_dir_vector): Replace implementation almost identical to
6390         build_classic_dist_vector with a walk of DDR_DIST_VECTS with a call to
6391         dir_from_dist.
6392         (subscript_dependence_tester_1): New.
6393         (subscript_dependence_tester): Handle the lexicographically negative
6394         distance vectors by recomputing the dependence relation.
6395         (compute_affine_dependence): Remove parameter loop_nest_depth.
6396         (compute_self_dependence): Don't call compute_subscript_distance.
6397         (compute_all_dependences): Remove parameters nb_loops, loop_nest_depth.
6398         Add a parameter for the loop_nest.
6399         (find_loop_nest_1, find_loop_nest): New.
6400         (compute_data_dependences_for_loop): Compute the loop nest, and give
6401         up if the nest is not well formed.
6402         * tree-data-ref.h (loop_p): New.
6403         (struct data_dependence_relation): Replace size_vect field with
6404         loop_nest, a vec of loops.
6405         (DDR_SIZE_VECT): Renamed DDR_NB_LOOPS.
6406         (DDR_LOOP_NEST): New.
6407         (print_dir_vectors, print_dist_vectors,
6408         debug_data_dependence_relation): Declared.
6409         (index_in_loop_nest): New.
6410         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Use
6411         DDR_LOOP_NEST and index_in_loop_nest to determine the dependence
6412         distance.
6413
6414 2006-03-25  Adam Nemet  <anemet@caviumnetworks.com>
6415
6416         * simplify-rtx.c (simplify_relational_operation): Call
6417         simplify_relational_operation_1 even if mode is VOIDmode.
6418
6419 2006-03-25  Daniel Berlin  <dberlin@dberlin.org>
6420
6421         PR tree-optimization/26804
6422         * tree.h (DECL_CALL_CLOBBERED): New macro.
6423         (tree_decl_common): Add call_clobbered_flag.
6424         * tree-flow-inline.h (is_call_clobbered): Use DECL_CALL_CLOBBERED.
6425         (mark_call_clobbered): Set DECL_CALL_CLOBBERED.
6426         (clear_call_clobbered): Clear DECL_CALL_CLOBBERED.
6427         (mark_non_addressable): Ditto.
6428         * tree-ssa.c (verify_call_clobbered): New function.
6429         (verify_alias_info): Use it.
6430         * tree-pass.h (pass_reset_cc_flags): New prototype.
6431         * tree-ssa-alias.c (pass_reset_cc_flags): New structure.
6432         (reset_cc_flags): New function.
6433         * passes.c (init_optimization_passes): Call reset_cc_flags after
6434         initializing referenced_vars.
6435
6436 2006-03-25  Uros Bizjak  <uros@kss-loka.si>
6437             Roger Sayle  <roger@eyesopen.com>
6438
6439         PR middle-end/26717
6440         * fold-const.c (fold_binary) [RDIV_EXPR]: Do not optimize A / A
6441         to 1.0 for non-real operands. Implement A / A optimization for
6442         complex operands.
6443
6444 2006-03-25  H.J. Lu  <hongjiu.lu@intel.com>
6445
6446         * config/i386/i386.c (size_cost): Correct the comment for
6447         cost of storing fp registers.
6448         (i386_cost): Likewise.
6449         (i486_cost): Likewise.
6450         (pentium_cost): Likewise.
6451         (pentiumpro_cost): Likewise.
6452         (k6_cost): Likewise.
6453         (athlon_cost): Likewise.
6454         (k8_cost): Likewise.
6455         (pentium4_cost): Likewise.
6456         (nocona_cost): Likewise.
6457         (generic64_cost): Likewise.
6458         (generic32_cost): Likewise.
6459
6460 2006-03-24  Denis Chertykov  <denisc@overta.ru>
6461
6462         * config/avr/avr-protos.h (extra_constraint): Delete.
6463         (extra_constraint_Q): New declaration.
6464         * config/avr/constraints.md: New file.
6465         * config/avr/avr.md: Include it.
6466         (REG_X, REG_Y, REG_Z, REG_W): New constants.
6467         (TMP_REGNO, ZERO_REGNO): Likewise.
6468         (UNSPEC_STRLEN, UNSPEC_INDEX_JMP): Likewise.
6469         * config/avr/avr.c (avr_reg_class_from_letter): Delete.
6470         (extra_constraint): Delete.
6471         (extra_constraint_Q): Test for memory constraint 'Q'.
6472         * config/avr/avr.h (REG_X,REG_Y,REG_Z,REG_W): Delete.
6473         (REG_CLASS_FROM_LETTER): Delete.
6474         (CONST_OK_FOR_LETTER_P): Delete.
6475         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
6476         (EXTRA_CONSTRAINT): Delete.
6477         (TMP_REGNO): Delete.
6478         (ZERO_REGNO): Delete.
6479
6480 2006-03-24  Jeff Law  <law@redhat.com>
6481
6482         * tree-ssa-dom.c (propagate_rhs_into_lhs): Don't call update_stmt
6483         directly.  Call mark_new_vars_to_rename slightly earlier.
6484
6485 2006-03-24  Geoffrey Keating  <geoffk@apple.com>
6486
6487         * dwarf2out.c (is_c_family): Understand new DWARF3 language types.
6488         (is_cxx): Likewise.
6489         (gen_compile_unit_die): Use new language types for Objective-C and
6490         Objective-C++.
6491         (dwarf2out_decl): Use is_cxx rather than testing explicitly against
6492         DW_LANG_C_plus_plus.
6493
6494         PR 26793
6495         * config/t-darwin (crt3.o): Work around bug 26840.
6496         * config/darwin-crt3.c: Rewrite.
6497         * config/darwin.h (STARTFILE_SPEC): Don't use -l for crt3.o.
6498
6499 2006-03-24  Carlos O'Donell  <carlos@codesourcery.com>
6500
6501         * doc/invoke.texi: Document -femit-class-debug-always
6502         * common.opt: Add -femit-class-debug-always.
6503
6504 2006-03-24  Andreas Krebbel  <krebbel1@de.ibm.com>
6505
6506         * config/s390/s390.c (s390_decompose_address): Allow SImode for
6507         index and base register.
6508         (s390_expand_plug_operand, legitimate_address_p, preferred_la_operand_p,
6509         print_operand_address, print_operand): Replaced REG_OK_FOR_BASE_STRICT_P
6510         with REGNO_OK_FOR_BASE_P and REG_OK_FOR_INDEX_STRICT_P with
6511         REGNO_OK_FOR_INDEX_P.
6512         * config/s390/s390.h (REGNO_OK_FOR_INDEX_P): Replaced check with
6513         ADDR_REGNO_P.
6514         (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P,
6515         REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P, REG_OK_FOR_INDEX_P,
6516         REG_OK_FOR_BASE_P): Definitions removed.
6517
6518 2006-03-24  Jakub Jelinek  <jakub@redhat.com>
6519
6520         PR middle-end/26611
6521         * gimplify.c (gimplify_bind_expr): Only call omp_add_variable on
6522         non-global variables that don't have DECL_SEEN_IN_BIND_EXPR_P bit
6523         set yet or weren't marked as local yet.
6524
6525 2006-03-24  Bernd Schmidt  <bernd.schmidt@analog.com>
6526
6527         * regrename.c (scan_rtx_address): Initialize a variable to shut up
6528         the compiler.
6529
6530 2006-03-24  Eric Botcazou  <ebotcazou@adacore.com>
6531
6532         * config/rs6000/rs6000-protos.h (rs6000_offsettable_memref_p): Declare.
6533         (rs6000_legitimate_small_data_p): Delete.
6534         * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New predicate.
6535         (rs6000_legitimate_small_data_p): Rename to legitimate_small_data_p
6536         and make static.  Add forward declaration.  Update uses.
6537         (rs6000_split_multireg_move): Use rs6000_offsettable_memref_p instead
6538         of offsettable_memref_p.
6539         * config/rs6000/rs6000.md (movdf_hardfloat32): Revert 2005-08-23 fix.
6540         Use rs6000_offsettable_memref_p instead of a less accurate predicate.
6541
6542 2006-03-24  Jeff Law  <law@redhat.com>
6543
6544         * tree-ssa-dom.c (propagate_rhs_into_lhs): Temporarily work
6545         around bug in immediate-use iterator.
6546
6547 2006-03-24  Alan Modra  <amodra@bigpond.net.au>
6548
6549         PR target/26607
6550         * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__
6551         or __LITTLE_ENDIAN__.
6552
6553 2006-03-23  J"orn Rennecke <joern.rennecke@st.com>
6554
6555         * config/sh/divtab-sh4.c, config/sh/divcost-analysis: New files.
6556         * config/sh/lib1funcs.asm (div_table): Add !__SH5__ variant.
6557         * config/sh/t-sh (LIB1ASMFUNCS): Add _div_table.
6558         * config/sh/sh.opt (mdiv=): Amend description.
6559         * config/sh/sh.h (TARGET_DIVIDE_CALL_DIV1): New macro.
6560         (TARGET_DIVIDE_CALL_FP, TARGET_DIVIDE_CALL_TABLE): Likewise.
6561         (sh_divide_strategy_e): Add new members SH_DIV_CALL_DIV1,
6562         SH_DIV_CALL_FP, SH_DIV_CALL_TABLE and SH_DIV_INTRINSIC.
6563         (OVERRIDE_OPTIONS): Also process sh_div_str for TARGET_SH1.
6564         Calculate sh_divsi3_libfunc using TARGET_DIVIDE_* macros.
6565         * config/sh/sh.md (udivsi3_i4_int, divsi3_i4_int): New patterns.
6566         (udivsi3, divsi3): Use them.  Check TARGET_DIVIDE_CALL_TABLE /
6567         TARGET_DIVIDE_CALL_FP.
6568
6569 2006-03-23  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
6570
6571         * haifa-sched.c (choose_ready): Fix type of the local variable.
6572         Move local variables.  Add comment.
6573         (check_reg_live): Change signature.  Make callable from debugger.
6574         * sched-int.h (check_reg_live): Update signature.
6575         * sched-ebb.c (check_reg_live): Update parameters.
6576         * sched-rgn.c (check_reg_live): Ditto.
6577         (region_head_or_leaf_p): Check pointer before dereferencing.
6578         * config/ia64/ia64.c (ia64_set_sched_flags): Disable data speculation
6579         before reload on optimization levels below 1.
6580
6581 2006-03-23  Richard Henderson  <rth@redhat.com>
6582
6583         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
6584         tls symbols.
6585
6586         PR target/26347
6587         * config/alpha/predicates.md (local_symbolic_operand): Reject
6588         weak symbols.
6589
6590 2006-03-23  Andrew Pinski  <pinskia@physics.uc.edu>
6591
6592         PR tree-opt/26795
6593         * tree-ssa-pre.c (create_value_expr_from): Don't reject
6594         expressions which have overflowed constants.
6595
6596 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
6597
6598         * cse.c (cse_end_of_basic_block): Do not check for LOOP_END note.
6599
6600 2006-03-23  Zdenek Dvorak <dvorakz@suse.cz>
6601
6602         * cfgloopmanip.c (create_loop_notes): Removed.
6603         * final.c (final_scan_insn): Do not handle loop notes.
6604         * jump.c (squeeze_notes): Ditto.
6605         * cfglayout.c (skip_insns_after_block,
6606         duplicate_insn_chain): Ditto.
6607         * cfgcleanup.c (rest_of_handle_jump2): Do not call
6608         create_loop_notes.
6609         * cfgloop.h (create_loop_notes): Declaration removed.
6610
6611 2006-03-23  Richard Sandiford  <richard@codesourcery.com>
6612
6613         * varasm.c (output_constant_pool): Restore fnname and fndecl
6614         arguments.
6615         (assemble_start_function): Adjust call accordingly.
6616         (assemble_end_function): Likewise.
6617
6618 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6619
6620         PR mudflap/26789
6621         * tree-mudflap.c (mudflap_finish_file): Skip erroneous objects.
6622
6623         PR mudflap/26790
6624         * tree-mudflap.c (mf_xform_derefs_1): Return early on error_mark_node.
6625
6626 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
6627
6628         PR driver/22600
6629         * system.h (ICE_EXIT_CODE): New macro.
6630         * diagnostic.c (diagnostic_count_diagnostic): Exit with ICE_EXIT_CODE.
6631         (diagnostic_action_after_output): Likewise.
6632         * gcc.c (fatal_ice): New function.
6633         (execute): Use it instead of fatal.
6634         (fancy_abort): Likewise.
6635         * doc/invoke.texi (-pass-exit-codes): Document return code for ICEs.
6636
6637 2006-03-22  Jeff Law  <law@redhat.com>
6638
6639         * loop-unroll.c (analyze_iv_to_split_insn): Handle
6640         iv_analyze_result returning false.
6641
6642 2006-03-22  Jie Zhang  <jie.zhang@analog.com>
6643
6644         * config/bfin/bfin.h (ASM_FORMAT_PRIVATE_NAME): Remove.
6645
6646 2006-03-22  Richard Henderson  <rth@redhat.com>
6647
6648         PR middle-end/26084
6649         * except.c (duplicate_eh_regions_0): New.
6650         (duplicate_eh_region_1): Duplicate the children of the node as
6651         well as the node itself.  Link them up properly.
6652         (duplicate_eh_region_2): Merge into ...
6653         (duplicate_eh_regions): ... here.  Take copy_region argument, and
6654         copy only a sub-tree if asked.  Simplify copying and fixup.
6655         (eh_region_outer_p): New.
6656         * except.h (duplicate_eh_regions): Update decl.
6657         (eh_region_outer_p): Declare.
6658         * omp-low.c (lower_omp_single): Fix eh region placement wrt OMP_RETURN.
6659         (lower_omp_master): Likewise.
6660         (lower_omp_ordered): Likewise.
6661         * tree-cfg.c (struct move_stmt_d): Add new_label_map.
6662         (move_stmt_r): Use it to remap labels.  Handle recursion vs
6663         remap_decls_p properly.
6664         (move_block_to_fn): Pass in new_label_map.  Remap RESX_EXPR.
6665         (find_outermost_region_in_block): New.
6666         (new_label_mapper): New.
6667         (move_sese_region_to_fn): Copy eh information to the new function
6668         properly.
6669         * tree-inline.c (copy_cfg_body): Update for new duplicate_eh_regions
6670         argument.
6671         * tree-pretty-print.c (dump_generic_node): Dump RESX_EXPR region
6672         number.
6673
6674 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
6675
6676         * doc/md.texi (-mshared): Mention that -mshared code can be linked
6677         into shared libraries.
6678
6679 2006-03-22  Richard Sandiford  <richard@codesourcery.com>
6680
6681         * doc/md.texi: Refer to i386/constraints.md instead of
6682         i386/predicates.md.
6683         * config/i386/constraints.md: New file, extracted from...
6684         * config/i386/predicates.md: ...here.
6685         * config/i386/i386.md: Include constraints.md.
6686
6687 2006-03-21  Jason Merrill  <jason@redhat.com>
6688
6689         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
6690
6691         PR middle-end/20297
6692         * expr.c (init_block_move_fn): Force default visibility.
6693         (init_block_clear_fn): Likewise.
6694         * builtins.c (expand_builtin_fork_or_exec): Likewise.
6695         * targhooks.c (default_external_stack_protect_fail): Likewise.
6696
6697 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
6698
6699         * config/mips/predicates.md (const_call_insn_operand): Allow direct
6700         calls to locally-defined functions if TARGET_ABSOLUTE_ABICALLS.
6701         * config/mips/mips.md (jal_macro): Test TARGET_ABSOLUTE_ABICALLS.
6702         Use TARGET_OLDABI instead of !TARGET_NEWABI.
6703         (loadgp): Use mips_current_loadgp_style.
6704         (loadgp_noshared): New pattern.
6705         (sibcall_internal): Use MIPS_CALL.
6706         (sibcall_value_internal): Likewise.
6707         (sibcall_value_multiple_internal): Likewise.
6708         (call_internal): Likewise.
6709         (call_value_internal): Likewise.
6710         (call_value_multiple_internal): Likewise.
6711         (call_split): Use MIPS_CALL and add an 'S' constraint.
6712         (call_value_split): Likewise.
6713         (call_value_multiple_split): Likewise.
6714         * config/mips/mips.opt (-mabicalls): Tweak docstring.
6715         (-mshared): New option.
6716         * config/mips/mips-protos.h (mips_loadgp_style): New enum.
6717         (mips_current_loadgp_style): Declare.
6718         * config/mips/mips.c (mips_classify_symbol): Avoid using
6719         SYMBOL_GOT_LOCAL if TARGET_ABSOLUTE_ABICALLS.  Use SYMBOL_GENERAL
6720         rather than SYMBOL_GOT_GLOBAL for locally-binding symbols if
6721         TARGET_ABSOLUTE_ABICALLS.
6722         (override_options): Adjust comments.  Improve the warning that is
6723         issued when -mabicalls and -G are used together.
6724         (mips_file_start): Remove comment.
6725         (mips_current_loadgp_style): New function.
6726         (mips_gnu_local_gp): New variable.
6727         (mips_emit_loadgp): Use mips_current_loadgp_style.  Handle
6728         LOADGP_ABSOLUTE.
6729         (mips_output_function_prologue): Use mips_current_laodgp_style.
6730         (mips_expand_prologue): Call mips_emit_loadgp before emitting
6731         the cprestore instruction.
6732         (mips_extra_live_on_entry): Fix reversed test.  Don't make $25
6733         live for TARGET_ABSOLUTE_ABICALLS.
6734         * config/mips/mips.h (TARGET_ABSOLUTE_ABICALLS): New macro.
6735         (ASM_SPEC): Pass down -mshared and -mno-shared.
6736         (MIPS_CALL): New macro.
6737         * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove __ABICALLS__
6738         definition.
6739         * doc/invoke.texi (-mabicalls): Update documentation.
6740         (-mshared): Document.
6741
6742 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
6743
6744         * config/ia64/unwind-hpux.c: New file.
6745         * config/ia64/t-hpux: Add unwind-hpux.c to libgcc.
6746
6747 2006-03-21  Steve Ellcey  <sje@cup.hp.com>
6748
6749         PR libgomp/26384
6750         * config/pa/pa64-hpux.h (LIB_SPEC): Fix for -mt and -pthread options.
6751
6752 2006-03-21  Jeff Law  <law@redhat.com>
6753
6754         * tree-vrp.c (extract_range_from_unary_expr): Derive ranges for
6755         type conversions of a VR_VARYING source to a wider type.
6756
6757 2006-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
6758
6759         * config.gcc (i[34567]86-*-solaris2*): Add config/sol2-10.h to
6760         tm_file on Solaris 10 and later.
6761         (sparc64-*-solaris2*): Likewise.
6762         (sparc-*-solaris2*): Likewise.
6763         * config/sol26.h: Rename to config/sol2-6.h.
6764         * config/sol2-10.h: New file.
6765
6766 2006-03-21  Andrew Pinski  <pinskia@physics.uc.edu>
6767
6768         PR tree-opt/26781
6769         * tree-ssa-pre.c (create_component_ref_by_pieces):
6770         Handle STRING_CST.
6771
6772 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
6773
6774         PR c++/26690
6775         * tree.c (get_callee_fndecl): If CALL is error_mark_node,
6776         return it immediately.
6777
6778 2006-03-21  Michael Matz  <matz@suse.de>
6779
6780         * genautomata.c (<struct state>, num_out_arcs, presence_signature):
6781         New members.
6782         (remove_arc, add_arc): Update num_out_arcs member.
6783         (set_out_arc_insns_equiv_num): Returns nothing instead of number
6784         of out arcs.
6785         (cache_presence): New function.
6786         (compare_states_for_equiv): New function.
6787         (state_is_differed): Don't take number of outargs, adjust callers.
6788         Use new invariant for speeding up.
6789         (init_equiv_class): Create initial classes based on sorted
6790         input.
6791         (partition_equiv_class): Don't track out_arcs_num.
6792         (evaluate_equiv_classes): Call cache_presence on all states and
6793         sort them.
6794
6795 2006-03-21  Bernd Schmidt  <bernd.schmidt@analog.com>
6796
6797         * config/bfin/bfin-protos.h (bfin_dsp_memref_p): Declare.
6798         * config/bfin/bfin.c (bfin_dsp_memref_p): New function.
6799         (bfin_valid_reg_p): Test for pseudos explicitly and use only
6800         REGNO_MODE_CODE_OK_FOR_BASE_P.  New args MODE and OUTER_CODE; all
6801         callers changed.
6802         * config/bfin/bfin.h (PREG_P): Use P_REGNO_P.
6803         (IREG_P, P_REGNO_P, I_REGNO_P): New macros.
6804         (enum reg_class, REG_CLASS_CONTENTS): Add IPREGS.
6805         (BASE_REG_CLASS, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
6806         REGNO_OK_FOR_BASE_STRICT_P, REGNO_OK_FOR_BASE_NONSTRICT_P): Delete
6807         macros.
6808         (IREG_POSSIBLE_P, MODE_CODE_BASE_REG_CLASS,
6809         REGNO_MODE_CODE_OK_FOR_BASE_P): New macros.
6810         (REGNO_REG_CLASS): ARGP is in PREGS.
6811         * config/bfin/bfin.md (movhi_insn): Allow for addresses containing
6812         IREGS.
6813         (zero_extendhisi2, extendhisi2): Likewise; changed to define_and_split
6814         to deal with those addresses.
6815         * addresses.h: New file.
6816         * caller-save.c: Include "addresses.h".
6817         (init_caller_save): Use new base_reg_class function.
6818         * rtl-factoring.c: Include "addresses.h".
6819         (recompute_gain_for_pattern_seq): Use new function ok_for_base_p_1.
6820         * recog.c: Include "addresses.h".
6821         (preprocess_constraints): Use new base_reg_class function.
6822         * regrename.c: Include "addresses.h".
6823         (scan_rtx_address): Use new regno_ok_for_base_p and base_reg_class
6824         functions.  Keep track of a new var INDEX_CODE to compute valid
6825         classes.
6826         (replace_oldest_value_addr): Likewise.
6827         (replace_oldest_value_mem): Use base_reg_class.
6828         * reload.c: Include "addresses.h".
6829         (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Delete macros.
6830         (find_reloads): Use new base_reg_class function.
6831         (find_reloads_address): Likewise; also use regno_ok_for_base_p.
6832         (find_reloads_address_1): Likewise. New args OUTER_CODE and INDEX_CODE;
6833         all callers and prototype changed.
6834         * reload1.c: Include "addresses.h".
6835         (maybe_fix_stack_asms): Use base_reg_class.
6836         * regclass.c: Include "addresses.h".
6837         (ok_for_index_p_nonstrict, ok_for_base_p_nonstrict): New functions.
6838         (init_reg_autoinc): Use new base_reg_class function.
6839         (record_reg_classes): Likewise.
6840         (record_address_regs): Delete arg CLASS; add args CONTEXT, MODE,
6841         OUTER_CODE and INDEX_CODE.  All callers and prototype changed.
6842         Use new args to compute necessary class.
6843
6844         * Makefile.in (regclass.o, reload.o, reload1.o, caller-save.o, recog.o,
6845         regrename.o, rtl-factoring.o): Update dependencies.
6846         * doc/tm.texi (MODE_CODE_BASE_REG_CLASS): Document.
6847         (REGNO_MODE_CODE_OK_FOR_BASE_P): Likewise.
6848         (REG_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_REG_BASE_P,
6849         REG_OK_FOR_INDEX_P): Delete documentation.
6850
6851 2006-03-21  Alexey Starovoytov  <alexey.starovoytov@sun.com>
6852
6853         * config.gcc (sparc-*-solaris2*): Change the default CPU setting
6854         from V7 to V9 for Solaris 7 and above.
6855
6856 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
6857
6858         * doc/invoke.texi: Document new flag -fargument-noalias-anything.
6859         * tree-ssa-alias.c (may_alias_p): If flag_argument_noalias > 2,
6860         argument pointers may not alias any other storage.
6861         * common.opt: Define option -fargument-noalias-anything.
6862         * tree-ssa-structalias.c (intra_create_variable_infos): Fortran
6863         alias semantics is specified by flag_argument_noalias > 2.
6864
6865 2006-03-20  Jeff Law  <law@redhat.com>
6866
6867         * tree-pass.h (pass_phi_only_copy_prop): Delete.
6868         (pass_phi_only_cprop): Declare.
6869         * passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
6870         with phi_only_cprop
6871         * tree-ssa-dom.c (degenerate_phi_result): New function.
6872         (remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
6873         (get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
6874         (eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
6875         (eliminate_degenerate_phis): Likewise.
6876         (pass_phi_only_cprop): New pass descriptor.
6877         * tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
6878         support code.  Callers updated.
6879         (execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
6880         (store_copy_prop): Likewise.
6881         (do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
6882
6883 2006-03-20  Jason Merrill  <jason@redhat.com>
6884
6885         PR c++/21764
6886         * c-pragma.c (visstack): Move out of handle_pragma_visibility.
6887         (push_visibility, pop_visibility): Likewise.
6888         * c-pragma.h: Declare them.
6889
6890 2006-03-20  Kaz Kojima  <kkojima@gcc.gnu.org>
6891
6892         * config/sh/sh.c (untangle_mova): Initialize n_addr and n_target.
6893
6894         * config/sh/sh.c (find_regmode_weight): Change the type of the first
6895         parameter and use get_ebb_head_tail.
6896         (sh_md_init_global): Adjust uses of find_regmode_weight.
6897
6898 2006-03-20  Steven Bosscher  <stevenb.gcc@gmail.com>
6899
6900         * function.h (struct function) <x_tail_recursion_reentry>:
6901         Rename to x_stack_check_probe_note.
6902         (tail_recursion_reentry): Rename to stack_check_probe_note.
6903         * function.c: Replace tail_recursion_reentry with
6904         stack_check_probe_note everywhere.
6905         (expand_function_start): Only emit a note for
6906         stack_check_probe_note with -fstack-protect.
6907         * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes.
6908
6909         * emit-rtl.c (remove_unnecessary_notes): Remove.
6910         (pass_remove_unnecessary_notes): Remove.
6911         * rtl.h (remove_unnecessary_notes): Remove prototype.
6912         * final.c (final_start_function): Don't call remove_unnecessary_notes.
6913         * tree-pass.h (pass_remove_unnecessary_notes): Remove.
6914         * passes.c (pass_remove_unnecessary_notes): Don't run it.
6915
6916 2006-03-20  Andrew Pinski  <pinskia@physics.uc.edu>
6917
6918         PR tree-opt/26629
6919         * tree-ssa-pre (phi_translate): Handle ARRAY_REF's operands.
6920         (valid_in_set): Handle ARRAY_REF.
6921         Change "if min_variant or VH" to asserts.
6922         (create_component_ref_by_pieces): Handle ARRAY_REF.
6923         (create_expression_by_pieces): Likewise.
6924         (can_PRE_operation): ARRAY_REFs can now be PRE'd.
6925
6926 2006-03-20  David Edelsohn  <edelsohn@gnu.org>
6927
6928         * genpreds.c (write_insn_extra_address_constraint): Argument `c'
6929         is operand of switch, not str[0].
6930
6931 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
6932
6933         * config/rs6000/rs6000.c (rs6000_handle_option): Use
6934         TARGET_NO_FP_IN_TOC inside #ifdef TARGET_USES_SYSV4_OPT too.
6935
6936 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
6937
6938         * genpreds.c (write_tm_preds_h): Add semicolon and newline at
6939         end of insn_extra_address_constraint declaration.
6940
6941 2006-03-19  David Edelsohn  <edelsohn@gnu.org>
6942
6943         * config/rs6000/rs6000.opt (no-fp-in-toc): Use Var not Mask.
6944         (no-sum-in-toc): Same.
6945         * config/rs6000/rs6000.c (rs6000_handle_option): Use new
6946         variables.
6947         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set
6948         NO_FP_IN_TOC for -fPIC instead of mask.
6949
6950         * config/rs6000/t-aix43 (T_ADAFLAGS): Delete.
6951         (BOOT_LDFLAGS): Delete.
6952         (LDFLAGS): Delete.
6953         * config/rs6000/t-aix52: Same.
6954
6955         * config/rs6000/rs6000.md (store_multiple_power): Delete.
6956         (stmsi[345678]_power): New.
6957
6958 2006-03-17  Steve Ellcey  <sje@cup.hp.com>
6959
6960         * config/ia64/ia64.opt: Add empty line to end of file.
6961
6962 2006-03-17  Richard Guenther  <rguenther@suse.de>
6963
6964         PR middle-end/26721
6965         * builtins.c (get_pointer_alignment): For component style references
6966         adjust alignment to the component type alignment.  Make sure
6967         to adjust alignment for component access of constants.
6968
6969 2006-03-17  David Edelsohn  <edelsohn@gnu.org>
6970
6971         * config/rs6000/rs6000.md (strlensi): Emit barrier after
6972         unconditional jump.
6973
6974 2006-03-17  Paul Brook  <paul@codesourcery.com>
6975
6976         * doc/install.texi: Docuemnt --with-mode.
6977         * config.gcc: Add --with-mode for arm*-*-*.
6978         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "mode".
6979
6980 2006-03-17  J"orn Rennecke <joern.rennecke@st.com>
6981
6982         * sh.c (max_labelno_before_reorg): New variable.
6983         (sh_reorg): Initialize it.
6984         (find_barrier): Check max_labelno_before_reorg before using
6985         label_to_alignment.  Take length of explicit alignment insns
6986         into account.  When seeing a UNSPECV_CONST_END, return it.
6987
6988         * sh.c (fixup_mova): Set mode of affected label to QImode.
6989         (untangle_mova): New function.
6990         (find_barrier): Use it.  Check mode of label before decrementing
6991         num_mova.
6992         (sh_reorg): Likewise.
6993         Set mode of all insns back to VOIDmode.
6994
6995         * sh.c (MOVA_LABELREF): New macro.
6996         (mova_p, fixup_mova, sh_reorg): Use it.
6997         (find_barrier, sh_reorg): Don't count num_mova back to 0 unless
6998         ADDR_DIFF_VEC matches mova.
6999
7000 2006-03-17  Steven Bosscher  <stevenb.gcc@gmail.com>
7001
7002         * dwarf2asm.c (dw2_asm_output_offset): Mark 'base' argument
7003         with ATTRIBUTE_UNUSED.
7004
7005 2006-03-17  Alexandre Oliva  <aoliva@redhat.com>
7006
7007         * dwarf2out.c (dwarf2out_stack_adjust): Always track the stack
7008         pointer, instead of assuming it is possible to derive the
7009         correct args size from a call insn.
7010
7011 2006-03-16  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7012
7013         * rtl.h (CONST_INT_P): Define.
7014         * config/vax/vax.c (print_operand_address): Use CONST_INT_P()
7015         instead of GET_CODE(x) == CONST_INT.
7016         (vax_rtx_costs): Likewise.
7017         (vax_output_int_move): Likewise.
7018         (vax_output_int_add): Likewise.
7019         (legitimate_constant_address_p): Likewise.
7020         (index_term_p): Likewise.
7021         * config/vax/vax.h (PRINT_OPERAND): Likewise.
7022         * config/vax/vax.md (and<mode>3): Likewise.
7023         (ashrsi3): Likewise.
7024         (extv): Likewise.
7025         (movstricthi): Likewise.
7026         (movstrictqi): Likewise.
7027         (rotrsi3): Likewise.
7028         (five unnamed insns): Likewise.
7029
7030 2006-03-16  Geoffrey Keating  <geoffk@apple.com>
7031
7032         * doc/tm.texi (SDB and DWARF): Add extra parameter to
7033         ASM_OUTPUT_DWARF_OFFSET.  Use @var to indicate metavariables.
7034         * dwarf2asm.h (dw2_asm_output_offset): Add section parameter.
7035         * dwarf2asm.c (dw2_asm_output_offset): Add base section parameter.
7036         Pass to ASM_OUTPUT_DWARF_OFFSET.
7037         * dwarf2out.c (debug_frame_section): New.
7038         (output_call_frame_info): Use debug_frame_section.  Pass it to
7039         dw2_asm_output_offset.
7040         (output_die): Pass appropriate section to dw2_asm_output_offset.
7041         (output_compilation_unit_header): Likewise.
7042         (output_pubnames): Likewise.
7043         (output_aranges): Likewise.
7044         (enum dw_val_class): Break dw_val_class_lbl_offset into
7045         dw_val_class_lineptr and dw_val_class_macptr.
7046         (add_AT_lbl_offset): Delete.
7047         (add_AT_lineptr): New.
7048         (add_AT_macptr): New.
7049         (AT_lbl): Expect a lineptr or macptr.
7050         (print_die): Handle dw_val_class_lineptr and dw_val_class_macptr.
7051         (attr_checksum): Likewise.
7052         (same_dw_val_p): Likewise.
7053         (size_of_die): Likewise.
7054         (value_format): Likewise.
7055         (output_die): Likewise.
7056         (dwarf2out_finish): Call add_AT_lineptr and add_AT_macptr instead of
7057         add_AT_lbl_offset.
7058         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7059         * config/i386/i386.c (x86_file_start): Call darwin_file_start.
7060         * config/darwin-protos.h (darwin_file_start): New.
7061         (darwin_asm_output_dwarf_offset): New.
7062         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add extra parameter.
7063         * config/rs6000/rs6000.c (rs6000_darwin_file_start): Call
7064         darwin_file_start.
7065         * config/darwin.c (darwin_emit_unwind_label): Don't output label
7066         if not EH section; simplify.
7067         (darwin_file_start): New.
7068         (darwin_asm_output_dwarf_offset): New.
7069         * config/darwin.h (DEBUG_FRAME_SECTION): In __DWARF segment,
7070         mark as 'debug'.
7071         (DEBUG_INFO_SECTION): Likewise.
7072         (DEBUG_ABBREV_SECTION): Likewise.
7073         (DEBUG_ARANGES_SECTION): Likewise.
7074         (DEBUG_MACINFO_SECTION): Likewise.
7075         (DEBUG_LINE_SECTION): Likewise.
7076         (DEBUG_LOC_SECTION): Likewise.
7077         (DEBUG_PUBNAMES_SECTION): Likewise.
7078         (DEBUG_STR_SECTION): Likewise.
7079         (DEBUG_RANGES_SECTION): Likewise.
7080         (FRAME_BEGIN_LABEL): Must start with 'L' in debug section.
7081         (ASM_OUTPUT_DWARF_OFFSET): New.
7082
7083 2006-03-16  Joseph S. Myers  <joseph@codesourcery.com>
7084
7085         * config.gcc (tm_defines): Always add to previous value rather
7086         than replacing it.
7087
7088 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
7089
7090         * config/mips/predicates.md (splittable_const_int_operand): New,
7091         split from move_operand.
7092         (splittable_symbolic_operand): New.
7093         (move_operand): Add commentary.  Use splittable_const_int_operand.
7094         Inline mips_atomic_symbolic_constant_p.
7095         * config/mips/mips.md: Add combine splitters for handling moves
7096         of splittable_const_int_operands and splittable_symbolic_operands.
7097         * config/mips/mips-protos.h (mips_atomic_symbolic_constant_p): Delete.
7098         (mips_split_symbol): Declare.
7099         (mips_move_integer): Declare.
7100         * config/mips/mips.c (mips_split_p): Make global.
7101         (TARGET_MIN_ANCHOR_OFFSET): Override default.
7102         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
7103         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
7104         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Likewise.
7105         (mips_offset_within_object_p): Handle block symbols.
7106         (mips_atomic_symbolic_constant_p): Delete.
7107         (mips_cannot_force_const_mem): Return false for constants that
7108         mips_legitimize_move can handle.
7109         (mips_use_blocks_for_constant_p): New function.
7110         (mips_split_symbol): Make global.
7111         (mips_move_integer): Likewise.  Add a temporary register argument.
7112         (mips_legitimize_const_move): Use splittable_const_int_operand and
7113         splittable_symbolic_operand.
7114         (mips_use_anchors_for_symbol_p): New function.
7115         * config/mips/mips.h: Protect externs with !USED_FOR_TARGET.
7116         (mips_split_p): Declare.
7117
7118 2006-03-16  Richard Sandiford  <richard@codesourcery.com>
7119
7120         * config.gcc (mips64*-*-linux*): Keep existing tm_defines.
7121         (mips*-*-linux*): Likewise.
7122
7123 2006-03-16  Roger Sayle  <roger@eyesopen.com>
7124             Daniel Speyer  <dspeyer@wam.umd.edu>
7125
7126         PR middle-end/18259
7127         * tree-dump.c (dump_real): New function.
7128         (dequeue_and_dump) <REAL_CST>: Use it to dump FP constants.
7129         * Makefile.in (REAL_H): New macro for dependencies on real.h.
7130         (tree-dump.o): Add $(REAL_H) to the dependencies.
7131
7132 2006-03-16  Roger Sayle  <roger@eyesopen.com>
7133
7134         PR middle-end/21781
7135         * real.c (real_from_string): If the mantissa is zero, don't bother
7136         parsing the exponent as the result should always be zero.
7137
7138 2006-03-16  Andreas Krebbel  <krebbel1@de.ibm.com>
7139
7140         * simplify-rtx.c (simplify_plus_minus): Simplify within CONST terms.
7141
7142 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7143
7144         * config/ia64/ia64.c (stops_p): Added explicit initialization.
7145         (ia64_first_cycle_multipass_dfa_lookahead_guard_spec,
7146         ia64_h_i_d_extended, ia64_set_sched_flags, ia64_speculate_insn,
7147         ia64_needs_block_p, ia64_gen_check, ia64_sched_init_global,
7148         ia64_sched_finish_global): New static functions to implement
7149         hooks from gcc_target.sched.
7150         (spec_check_no, max_uid, pending_data_specs): New static variables.
7151         (ia64_mode_to_int, ia64_gen_spec_insn, ia64_spec_check_p,
7152         ia64_spec_check_src_p): New static functions.
7153         (ia64_adjust_cost): Renamed to ia64_adjust_cost_2.
7154         (TARGET_SCHED_ADJUST_COST): Removed.
7155         (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_INIT_GLOBAL,
7156         TARGET_SCHED_FINISH_GLOBAL, TARGET_SCHED_H_I_D_EXTENDED,
7157         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7158         TARGET_SCHED_GEN_CHECK,
7159         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7160         TARGET_SCHED_SET_SCHED_FLAGS): New macros.
7161         (update_set_flags, group_barrier_needed, set_src_needs_barrier):
7162         Fixed to handle speculation checks.
7163         (rtx_needs_barrier): Fixed to handle speculative loads and
7164         their checks.
7165         (ia64_variable_issue): Added code to count speculative loads and their
7166         checks.
7167         (ia64_first_cycle_multipass_dfa_lookahead_guard): Fixed to handle
7168         speculative loads.
7169         (enum SPEC_MODES, enum SPEC_GEN_LD_MAP, SPEC_GEN_CHECK_OFFSET):
7170         New enumerations.
7171         (SPEC_GEN_EXTEND_OFFSET, SPEC_N, SPEC_GEN_CHECK_MUTATION_OFFSET):
7172         New constants.
7173         (ia64_ld_address_bypass_p): Fixed to handle speculative loads.
7174         (ia64_reorg): Reset stops_p to NULL after it is freed.
7175         * config/ia64/ia64.md (UNSPEC_LDA, UNSPEC_LDS, UNSPEC_LDSA,
7176         UNSPEC_LDCCLR, UNSPEC_CHKACLR, UNSPEC_CHKS): New constants.
7177         (itanium_class): chk_s renamed to chk_s_i.  New constants: chk_s_f,
7178         chk_a.
7179         (data_speculative, control_speculative, check_load): New attributes.
7180         (mov<mode>_advanced, mov<mode>_speculative,
7181         mov<mode>_speculative_advanced, zero_extend<mode>di2_advanced,
7182         zero_extend<mode>di2_speculative,
7183         zero_extend<mode>di2_speculative_advanced): New patterns for
7184         data and control speculative loads.
7185         (mov<mode>_clr, zero_extend<mode>di2_clr): New patterns for
7186         check loads.
7187         (advanced_load_check_clr_<mode>, speculation_check_<mode>):
7188         New pattern for data and control speculation checks.
7189         (MODE, MODE_FOR_EXTEND, output_a, output_s, output_sa, output_c_clr,
7190         ld_reg_constr, ldc_reg_constr, chk_reg_constr, mem_constr,
7191         reg_pred_prefix, ld_class, chka_class, chks_class, attr_yes):
7192         Auxiliary definitions for the patterns.
7193         * config/ia64/itanium1.md (1_fldc, 1_fldpc, 1_ldc, 1_chk_s_f, 1_chk_a,
7194         1b_fldc, 1b_fldpc, 1b_ldc, 1b_chk_s_f, 1b_chk_a): New resource
7195         constraints.
7196         (1_fld, 1_fldp, 1_ld, 1b_fld, 1b_fldp, 1b_ld): Add a condition
7197         for speculation.
7198         (1_chk_s, 1b_chk_s): Renamed to 1_chk_s_i, 1b_chk_s_i.
7199         * config/ia64/itanium2.md (2_flda, 2_fldc, 2_fldpc, 2_ldc, 2_chk_s_f,
7200         2_chk_a, 2b_flda, 2b_fldc, 2b_fldpc, 2b_ldc, 2b_chk_s_f, 2b_chk_a):
7201         New resource constraints.
7202         (2_fld, 2_fldp, 2_ld, 2b_fld, 2b_fldp, 2b_ld): Add a condition
7203         for speculation.
7204         (2_chk_s, 2b_chk_s): Renamed to 2_chk_s_i, 2b_chk_s_i.
7205         * config/ia64/ia64.opt (msched-br-data-spec, msched-ar-data-spec,
7206         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7207         msched-in-control-spec, msched-ldc, msched-control-ldc,
7208         msched-spec-verbose, msched-prefer-non-data-spec-insns,
7209         msched-prefer-non-control-spec-insns,
7210         msched-count-spec-in-critical-path): New flags to tune speculative
7211         scheduling.
7212         * doc/invoke.texi (msched-br-data-spec, msched-ar-data-spec,
7213         msched-control-spec, msched-br-in-data-spec, msched-ar-in-data-spec,
7214         msched-in-control-spec, msched-ldc, msched-control-ldc,
7215         msched-spec-verbose, msched-prefer-non-data-spec-insns,
7216         msched-prefer-non-control-spec-insns,
7217         msched-count-spec-in-critical-path): Document new flags.
7218
7219 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7220
7221         * target.h (struct spec_info_def): New opaque declaration.
7222         (struct gcc_target.sched): New fields: adjust_cost_2, h_i_d_extended,
7223         speculate_insn, needs_block_p, gen_check,
7224         first_cycle_multipass_dfa_lookahead_guard_spec, set_sched_flags.
7225         * target-def.h (TARGET_SCHED_ADJUST_COST_2,
7226         TARGET_SCHED_H_I_D_EXTENDED, TARGET_SCHED_SPECULATE_INSN,
7227         TARGET_SCHED_NEEDS_BLOCK_P, TARGET_SCHED_GEN_CHECK,
7228         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7229         TARGET_SCHED_SET_SCHED_FLAGS): New macros to initialize fields in
7230         gcc_target.sched.
7231         (TARGET_SCHED): Use new macros.
7232         * rtl.h (copy_DEPS_LIST_list): New prototype.
7233         * sched-int.h (struct sched_info): Change signature of new_ready field,
7234         adjust all initializations. New fields: add_remove_insn,
7235         begin_schedule_ready, add_block, advance_target_bb, fix_recovery_cfg,
7236         region_head_or_leaf_p.
7237         (struct spec_info_def): New structure declaration.
7238         (spec_info_t): New typedef.
7239         (struct haifa_insn_data): New fields: todo_spec, done_spec, check_spec,
7240         recovery_block, orig_pat.
7241         (glat_start, glat_end): New variables declaraions.
7242         (TODO_SPEC, DONE_SPEC, CHECK_SPEC, RECOVERY_BLOCK, ORIG_PAT):
7243         New access macros.
7244         (enum SCHED_FLAGS): New constants: SCHED_RGN, SCHED_EBB,
7245         DETACH_LIFE_INFO, USE_GLAT.
7246         (enum SPEC_SCHED_FLAGS): New enumeration.
7247         (NOTE_NOTE_BB_P): New macro.
7248         (extend_dependency_caches, xrecalloc, unlink_bb_notes, add_block,
7249         attach_life_info, debug_spec_status, check_reg_live): New functions.
7250         (get_block_head_tail): Change signature to get_ebb_head_tail, adjust
7251         all uses in ddg.c, modulo-sched.c, haifa-sched.c, sched-rgn.c,
7252         sched-ebb.c
7253         (get_dep_weak, ds_merge): Prototype functions from sched-deps.c .
7254         * ddg.c (get_block_head_tail): Adjust all uses.
7255         * modulo-sched.c (get_block_head_tail): Adjust all uses.
7256         (sms_sched_info): Initialize new fields.
7257         (contributes_to_priority): Removed.
7258         * haifa-sched.c (params.h): New include.
7259         (get_block_head_tail): Adjust all uses.
7260         (ISSUE_POINTS): New macro.
7261         (glat_start, glat_end): New global variables.
7262         (spec_info_var, spec_info, added_recovery_block_p, nr_begin_data,
7263         nr_be_in_data, nr_begin_control, nr_be_in_control, bb_header,
7264         old_last_basic_block, before_recovery, current_sched_info_var,
7265         rgn_n_insns, luid): New static variables.
7266         (insn_cost1): New function.  Move logic from insn_cost to here.
7267         (find_insn_reg_weight1): New function.  Move logic from
7268         find_insn_reg_weight to here.
7269         (reemit_notes, move_insn, max_issue): Change signature.
7270         (move_insn1): Removed.
7271         (extend_h_i_d, extend_ready, extend_global, extend_all, init_h_i_d,
7272         extend_bb): New static functions to support extension of scheduler's
7273         data structures.
7274         (generate_recovery_code, process_insn_depend_be_in_spec,
7275         begin_speculative_block, add_to_speculative_block,
7276         init_before_recovery, create_recovery_block, create_check_block_twin,
7277         fix_recovery_deps): New static functions to support
7278         generation of recovery code.
7279         (fix_jump_move, find_fallthru_edge, dump_new_block_header,
7280         restore_bb_notes, move_block_after_check, move_succs): New static
7281         functions to support ebb scheduling.
7282         (init_glat, init_glat1, attach_life_info1, free_glat): New static
7283         functions to support handling of register live information.
7284         (associate_line_notes_with_blocks, change_pattern, speculate_insn,
7285         sched_remove_insn, clear_priorities, calc_priorities, bb_note,
7286         add_jump_dependencies): New static functions.
7287         (check_cfg, has_edge_p, check_sched_flags): New static functions for
7288         consistancy checking.
7289         (debug_spec_status): New function to call from debugger.
7290         (priority): Added code to handle speculation checks.
7291         (rank_for_schedule): Added code to distinguish speculative instructions.
7292         (schedule_insn): Added code to handle speculation checks.
7293         (unlink_other_notes, rm_line_notes, restore_line_notes, rm_other_notes):
7294         Fixed to handle ebbs.
7295         (move_insn): Added code to handle ebb scheduling.
7296         (max_issue): Added code to use ISSUE_POINTS of instructions.
7297         (choose_ready): Added code to choose between speculative and
7298         non-speculative instructions.
7299         (schedule_block): Added code to handle ebb scheduling and scheduling of
7300         speculative instructions.
7301         (sched_init): Initialize new variables.
7302         (sched_finish): Free new variables.  Print statistics.
7303         (try_ready): Added code to handle speculative instructions.
7304         * lists.c (copy_DEPS_LIST_list): New function.
7305         * sched-deps.c (extend_dependency_caches): New function.  Move logic
7306         from create_dependency_caches to here.
7307         (get_dep_weak, ds_merge): Make global.
7308         * genattr.c (main): Code to output prototype for
7309         dfa_clear_single_insn_cache.
7310         * genautomata.c (DFA_CLEAR_SINGLE_INSN_CACHE_FUNC_NAME): New macros.
7311         (output_dfa_clean_insn_cache_func): Code to output
7312         dfa_clear_single_insn_cache function.
7313         * sched-ebb.c (target_n_insns): Remove.  Adjust all users to use
7314         n_insns.
7315         (can_schedule_ready_p, fix_basic_block_boundaries, add_missing_bbs):
7316         Removed.
7317         (n_insns, dont_calc_deps, ebb_head, ebb_tail, last_bb):
7318         New static variables.
7319         (begin_schedule_ready, add_remove_insn, add_block1, advance_target_bb,
7320         fix_recovery_cfg, ebb_head_or_leaf_p): Implement hooks from
7321         struct sched_info.
7322         (ebb_sched_info): Initialize new fields.
7323         (get_block_head_tail): Adjust all uses.
7324         (compute_jump_reg_dependencies): Fixed to use glat_start.
7325         (schedule_ebb): Code to remove unreachable last block.
7326         (schedule_ebbs): Added code to update register live information.
7327         * sched-rgn.c (region_sched_info): Initialize new fields.
7328         (get_block_head_tail): Adjust all uses.
7329         (last_was_jump): Removed.  Adjust users.
7330         (begin_schedule_ready, add_remove_insn, insn_points, extend_regions,
7331         add_block1, fix_recovery_cfg, advance_target_bb, region_head_or_leaf_p):
7332         Implement new hooks.
7333         (check_dead_notes1): New static function.
7334         (struct region): New fields: dont_calc_deps, has_real_ebb.
7335         (RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB): New access macros.
7336         (BB_TO_BLOCK): Fixed to handle EBBs.
7337         (EBB_FIRST_BB, EBB_LAST_BB): New macros.
7338         (ebb_head): New static variable.
7339         (debug_regions, contributes_to_priority): Fixed to handle EBBs.
7340         (find_single_block_regions, find_rgns, find_more_rgns): Initialize
7341         new fields.
7342         (compute_dom_prob_ps): New assertion.
7343         (check_live_1, update_live_1): Fixed to work with glat_start instead of
7344         global_live_at_start.
7345         (init_ready_list): New assertions.
7346         (can_schedule_ready_p): Split update code to begin_schedule_ready.
7347         (new_ready): Add support for BEGIN_CONTROL speculation.
7348         (schedule_insns): Fixed code that updates register live information
7349         to handle EBBs.
7350         (schedule_region): Fixed to handle EBBs.
7351         (init_regions): Use extend_regions and check_dead_notes1.
7352         * params.def (PARAM_MAX_SCHED_INSN_CONFLICT_DELAY,
7353         PARAM_SCHED_SPEC_PROB_CUTOFF): New parameters.
7354         * doc/tm.texi (TARGET_SCHED_ADJUST_COST_2, TARGET_SCHED_H_I_D_EXTENDED,
7355         TARGET_SCHED_SPECULATE_INSN, TARGET_SCHED_NEEDS_BLOCK_P,
7356         TARGET_SCHED_GEN_CHECK,
7357         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC,
7358         TARGET_SCHED_SET_SCHED_FLAGS): Document.
7359         * doc/invoke.texi (max-sched-insn-conflict-delay,
7360         sched-spec-prob-cutoff): Document.
7361
7362 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7363
7364         * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
7365         inter_tick, queue_index.
7366         (struct sched_info): Change signature of init_ready_list field.
7367         Adjust all initializations.
7368         (RESOLVED_DEPS): New access macro.
7369         (ready_add): Remove prototype.
7370         (try_ready): Add prototype.
7371         * sched-rgn.c (init_ready_list): Use try_ready.
7372         (schedule_region): Initialize
7373         current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
7374         * sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
7375         (init_ready_list): Use try_ready.
7376         (schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
7377         * lists.c (remove_list_elem): Remove `static'.
7378         (remove_free_INSN_LIST_elem): New function.
7379         * rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
7380         * haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
7381         (INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
7382         New constants.
7383         (readyp): New variable.
7384         (queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
7385         change_queue_index, resolve_dep): New static functions.
7386         (try_ready): New function.  Adjust callers in sched-rgn.c and
7387         sched-ebb.c to use it instead of ready_add.
7388         (clock_var): Move at the begining of file.
7389         (rank_for_schedule): Fix typo.
7390         (queue_insn): Add assertion.  Handle QUEUE_INDEX.
7391         (ready_lastpos): Enforce assertion.
7392         (ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
7393         update all callers.
7394         (ready_remove_first, ready_remove): Handle QUEUE_INDEX.
7395         (schedule_insn): Rewrite to use try_ready and resolve_dep.
7396         (queue_to_ready): Use free_INSN_LIST_list.
7397         (early_queue_to_ready): Fix typo.
7398         (schedule_block): Init readyp.  Move init_ready_list call after the
7399         initialization of clock_var.  Fix error in rejecting insn by
7400         targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
7401         that previously corrected INSN_TICKs.  Add code for handling
7402         QUEUE_INDEX.
7403         (set_priorities): Fix typo.
7404         (sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
7405         Clarify comment and code that keeps current_sched_info->next_tail
7406         non-null.
7407
7408 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7409
7410         * sched-rgn.c (extend_rgns): New static function.
7411         (find_rgns): Use it.
7412         (gather_region_statistics, print_region_statistics): New static
7413         functions.
7414         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): New parameter.
7415         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
7416
7417 2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
7418             Andrey Belevantsev <abel@ispras.ru>
7419
7420         * ddg.c (build_intra_loop_deps): Adjust add_forward_dependence call.
7421         * lists.c (unused_deps_list): New variable.
7422         (free_list): Add assertions to verify the proper distinguishing
7423         between INSN_LISTs and DEPS_LISTs.
7424         (find_list_elem, remove_list_elem, remove_list_node): New static
7425         functions.
7426         (alloc_DEPS_LIST, free_DEPS_LIST, free_DEPS_LIST_node,
7427         remove_free_INSN_LIST_elem, remove_free_DEPS_LIST_elem,
7428         remove_free_INSN_LIST_node, remove_free_DEPS_LIST_node): New functions.
7429         (alloc_INSN_LIST): Assert that the list we're working on is indeed
7430         an INSN_LIST.
7431         (free_INSN_LIST_node): Likewise.
7432         * modulo-sched.c (current_sched_info): Initialize flags field.
7433         * reg-notes.def: Exchange DEP_ANTI and DEP_OUTPUT.
7434         * rtl.def (DEPS_LIST): Define.
7435         * rtl.h: Declare new functions from lists.c.
7436         * sched-deps.c (spec_dependency_cache): New static variable.
7437         (maybe_add_or_update_back_dep_1, add_back_dep): New static functions.
7438         (add_dependence): Change return type to void.  Move the logic to ...
7439         (add_or_update_back_dep_1): ... here.  Handle speculative dependencies.
7440         (delete_all_dependences): Add comment about forward_dependency_cache.
7441         Handle spec_dependency_cache.  Handle DEPS_LISTs.
7442         (fixup_sched_groups): Clarify the change of priority of output
7443         and anti dependencies.
7444         (sched_analyze_2): Adjust add_dependence calls to create data
7445         speculative dependence.
7446         (add_forward_dependence): Renamed to add_forw_dep, change prototype.
7447         Adjust all callers.  Handle DEPS_LISTS.
7448         (compute_forward_dependences): Use add_forw_dep.  Sort LOG_LINKs in
7449         presence of speculation.
7450         (init_dependency_caches, free_dependency_caches):
7451         Handle spec_dependency_cache.
7452         (adjust_add_sorted_back_dep, adjust_back_add_forw_dep, delete_forw_dep,
7453         estimate_dep_weak, get_dep_weak, ds_merge, check_dep_status):
7454         New static functions.
7455         (add_or_update_back_dep, add_or_update_back_forw_dep,
7456         add_back_forw_dep, delete_back_forw_dep): New functions.
7457         * sched-int.h (ds_t, dw_t): New typedefs.
7458         (struct sched_info): Add new field flags.
7459         (struct haifa_insn_data): Add new bitfield has_internal_dep.
7460         Prototype new sched-deps.c functions.
7461         (HAS_INTERNAL_DEP, DEP_STATUS): New access macros.
7462         (BITS_PER_DEP_STATUS, BITS_PER_DEP_WEAK, DEP_WEAK_MASK, MAX_DEP_WEAK,
7463         MIN_DEP_WEAK, NO_DEP_WEAK, UNCERTAIN_DEP_WEAK, BEGIN_DATA, BE_IN_DATA,
7464         BEGIN_CONTROL, BE_IN_CONTROL, BEGIN_SPEC, DATA_SPEC, CONTROL_SPEC,
7465         SPECULATIVE, BE_IN_SPEC, FIRST_SPEC_TYPE, LAST_SPEC_TYPE,
7466         SPEC_TYPE_SHIFT, DEP_TRUE, DEP_OUTPUT, DEP_ANTI, DEP_TYPES, HARD_DEP):
7467         New constants.
7468         (enum SPEC_TYPES_OFFSETS, enum DEPS_ADJUST_RESULT, enum SCHED_FLAGS):
7469         New enums.
7470         * sched-rgn.c (current_sched_info): Initialize flags field.
7471         (schedule_insns): Initialize current_sched_info before the sched_init
7472         call.
7473         * sched-ebb.c (current_sched_info): Initialize flags field.
7474         (add_deps_for_risky_insns): Use control_flow_insn_p instead of JUMP_P.
7475         Call add_or_update_back_dep instead of add_dependence.
7476         Create control speculative dependencies.
7477         (schedule_insns): Initialize current_sched_info before the sched_init
7478         call.
7479
7480 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
7481
7482         * config/sh/linux-unwind.h (shmedia_fallback_frame_state): Set
7483         fs->signal_frame.
7484         (sh_fallback_frame_state): Likewise.
7485
7486 2006-03-15  Geoffrey Keating  <geoffk@apple.com>
7487
7488         * config.gcc (*-*-darwin*): Don't build crt2.o for all Darwin ports.
7489         Do switch on default_use_cxa_atexit.
7490         (powerpc*-*-darwin*): Build crt2.o on powerpc.
7491         * config/darwin-crt3.o: New.
7492         * config/darwin.h (LINK_SPEC): If -shared-libgcc, make linker default
7493         to 10.3.  Pass '-multiply_defined suppress' if crt3.o is in use.
7494         (STARTFILE_SPEC): Add crt3.o when -shared-libgcc and appropriate
7495         OS version.
7496         * config/rs6000/t-darwin: Move crt2.o building to here.
7497         * config/rs6000/darwin.h (C_COMMON_OVERRIDE_OPTIONS): Update
7498         Mac OS version for using __cxa_get_exception_ptr.  Don't test versions
7499         of __cxa_atexit.
7500
7501 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7502
7503         * config/vax/vax.c (nonindexed_address_p): Change logical negation
7504         from '! xxx' to '!xxx' for coding-style conformance.
7505         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Likewise.
7506         (EXTRA_CONSTRAINT): Likewise.
7507         * config/vax/vax.md (four unnamed insns): Likewise.
7508
7509 2006-03-15  Paul Brook  <paul@codesourcery.com>
7510
7511         * config/arm/arm.c (minipool_pad): New.
7512         (add_minipool_forward_ref): Include pool alignment padding in address
7513         calculation.
7514         (push_minipool_fix): Set minipool_pad.
7515         (minipool_pad): Ditto.
7516
7517 2006-03-15  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7518
7519         * config/vax/vax.c (split_quadword_operands): Use MEM_P()
7520         instead of GET_CODE() == MEM and REG_P() instead of
7521         GET_CODE() == REG.
7522         (print_operand_address): Likewise.
7523         (vax_address_cost): Likewise.
7524         (vax_rtx_costs): Likewise.
7525         (vax_notice_update_cc): Likewise.
7526         (vax_output_int_add): Likewise.
7527         (INDEX_REGISTER_P): Likewise.
7528         (BASE_REGISTER_P): Likewise.
7529         (nonindexed_address_p): Likewise.
7530         (vax_mode_dependent_address_p): Likewise.
7531         * config/vax/vax.h (EXTRA_CONSTRAINT): Likewise.
7532         (PRINT_OPERAND): Likewise.
7533         * config/vax/vax.md (ashlsi3): Likewise.
7534         (ashlsi3): Likewise.
7535         (some more unnamed insns): Likewise.
7536
7537 2006-03-15  Kazu Hirata  <kazu@codesourcery.com>
7538
7539         * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Make it an
7540         iterator-style macro.
7541         (mark_control_dependent_edges_necessary): Update the use of
7542         EXECUTE_IF_CONTROL_DEPENDENT.
7543
7544 2006-03-15  J"orn Rennecke <joern.rennecke@st.com>
7545
7546         * config/sh/predicates.md (cache_address_operand): Special.
7547         (ua_address_operand): Likewise.
7548
7549 2006-03-15  Zdenek Dvorak <dvorakz@suse.cz>
7550
7551         * haifa-sched.c (unlink_other_notes, reemit_notes): Do not handle
7552         loop notes.
7553         * sched-deps.c (sched_analyze_insn, sched_analyze): Ditto.
7554
7555 2006-03-15  Andreas Schwab  <schwab@suse.de>
7556
7557         * gensupport.c (identify_predicable_attribute): Don't free p_false
7558         when it is still in use.
7559
7560 2006-03-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
7561
7562         * config.gcc (default with_cpu setting) <sparc*-*-*>: Do not modify
7563         the default setting here.
7564
7565 2006-03-14  Steven Bosscher  <stevenb.gcc@gmail.com>
7566
7567         * tree-pass.h (pass_cfg): Remove.
7568         * alias.c (rest_of_handle_cfg, pass_cfg): Remove.
7569         * passes.c (pass_cfg): Don't run it.
7570
7571 2006-03-14  Kazu Hirata  <kazu@codesourcery.com>
7572
7573         * Makefile.in (reg-stack.o): Don't depend on gt-reg-stack.h.
7574         * reg-stack.c (stack_regs_mentioned_data): Change the type to
7575         VEC(char,heap) *.
7576         (stack_regs_mentioned): Update the uses of
7577         stack_regs_mentioned_data.  Don't access the array beyond its
7578         end.
7579         (reg_to_stack): Update the uses of stack_regs_mentioned_data.
7580         Don't include gt-reg-stack.h.
7581
7582         * config/bfin/bfin.h (UNALIGNED_WORD_ASM_OP): Remove.
7583         * system.h (UNALIGNED_WORD_ASM_OP): Poison.
7584
7585         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): Remove.
7586
7587         PR middle-end/26684
7588         * reg-stack.c (stack_regs_mentioned_data): Put it undef #ifdef
7589         STACK_REGS.
7590
7591 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7592
7593         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
7594
7595 2006-03-14  Richard Guenther  <rguenther@suse.de>
7596
7597         PR tree-optimization/26672
7598         * tree-ssa-propagate.c (set_rhs): Don't walk DEFs if not in
7599         SSA form.
7600
7601 2006-03-14  Richard Guenther  <rguenther@suse.de>
7602
7603         PR tree-optimization/26667
7604         * ipa-inline.c (cgraph_check_inline_limits): Walk the correct
7605         node for the callees.  Always allow inlining if it will shrink
7606         the function size.
7607
7608 2006-03-14  Richard Guenther  <rguenther@suse.de>
7609
7610         PR middle-end/26659
7611         * builtins.c (get_pointer_alignment): Prefer alignment
7612         information from decls over that from types.
7613
7614 2006-03-14  Andrew Pinski  <pinskia@physics.uc.edu>
7615
7616         PR target/26657
7617         * config/darwin.h (LINK_COMMAND_SPEC): Handle -fopenmp.
7618
7619 2006-03-14  Joseph S. Myers  <joseph@codesourcery.com>
7620
7621         * config/rs6000/rs6000.opt (mdlmzb): New option.
7622         (msched-prolog, msched-epilog): Use Var not Mask.
7623         * doc/invoke.texi (-mdlmzb): Document.
7624         * config/rs6000/rs6000.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
7625         MASK_SCHED_PROLOG.
7626         (rs6000_override_options): Enable -mdlmzb for 405 and 440.
7627         * config/rs6000/rs6000.md: Add dlmzb support for 405 and 440.
7628
7629 2006-03-13  Uttam Pawar  <uttamp@us.ibm.com>
7630
7631         PR rtl-optimization/25739
7632         * bt-load.c (augment_live_range): Free tos pointer.
7633
7634         * gensupport.c (identify_predicable_attribute): Free
7635         p_false pointer.
7636         * gcov.c (create_file_names): Free name pointer.
7637
7638 2006-03-13  Roger Sayle  <roger@eyesopen.com>
7639
7640         PR middle-end/26557
7641         * stmt.c (emit_case_nodes): Handle the case where the index is a
7642         CONST_INT, where the comparison mode is specified by the index type.
7643
7644 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7645
7646         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
7647         is defined.
7648
7649 2006-03-13  Richard Sandiford  <richard@codesourcery.com>
7650
7651         * config/mips/mips.md (*branch_fp): Use %Z2 for the condition.
7652         (*branch_fp_inverted): Likewise.
7653
7654 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
7655
7656         PR middle-end/25989
7657         * omp-low.c (expand_omp_for_generic): Mark istart0
7658         and iend0 as addressable.
7659
7660 2006-03-13  Jie Zhang  <jie.zhang@analog.com>
7661
7662         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
7663
7664 2006-03-13  Jeff Law  <law@redhat.com>
7665
7666         * tree-vrp.c (stmt_interesting_for_vrp): Some statements with
7667         virtual operands are interesting.
7668         (vrp_visit_stmt): Corresponding changes.
7669
7670 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
7671
7672         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
7673         of RETS.
7674         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
7675         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
7676         * config/bfin/crti.S: Use it instead of __PIC__.
7677         * config/bfin/crtn.S: Likewise.
7678
7679         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
7680         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
7681         not if flag_pic.
7682         Lose 'G' modifier for call operand.
7683         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
7684         recognize 'G' modifier.
7685
7686 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
7687
7688         PR middle-end/18859
7689         * gimplify.c (gimplify_switch_expr): Discard empty ranges.
7690         * stmt.c (expand_case): Likewise.
7691
7692 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
7693
7694         PR rtl-optimization/26254
7695         * loop-invariant.c (seq_insns_valid_p): New function.
7696         (move_invariant_reg): Only emit new code if it is valid.
7697
7698 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
7699
7700         * cfgrtl.c (last_loop_beg_note, back_edge_of_syntactic_loop_p):
7701         Removed.
7702         (force_nonfallthru_and_redirect): Do not use last_loop_beg_note.
7703         (rtl_split_edge): Do not use back_edge_of_syntactic_loop_p.
7704         (commit_one_edge_insertion): Do not look for loop notes.
7705
7706 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
7707
7708         * jump.c (follow_jumps): Do not check for loop notes.  Move check for
7709         flag_test_coverage out of loop.
7710
7711 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
7712
7713         * final.c (shorten_branches): Remove outdated comment, and turn
7714         the if branch that guards it to continue.
7715
7716 2006-03-13  Zdenek Dvorak <dvorakz@suse.cz>
7717
7718         * cfgloop.c (flow_loop_dump): Do not dump loop->invalid field.
7719         * cfgloop.h (struct loop): Remove unused fields.
7720
7721 2006-03-13  Kazu Hirata  <kazu@codesourcery.com>
7722
7723         * doc/invoke.texi (-fdump-rtl-loop): Remove.
7724         (-dL, -fdump-rtl-loop2): Update the dump file names
7725
7726         * doc/invoke.texi: Update dump file names.
7727
7728 2006-03-12  Steven Bosscher  <stevenb.gcc@gmail.com>
7729
7730         * predict.c (estimate_probability): Remove.
7731         * profile.c (rest_of_handle_branch_prob, pass_branch_prob): Remove.
7732         * basic-block.h (estimate_probability): Remove prototype.
7733         * passes.c (finish_optimization_passes): Dump branch prediction or
7734         profiling heuristics to the .profile tree dump.
7735         (init_optimization_passes): Unqueue pass_branch_prob.
7736
7737         * doc/invoke.texi (-fdump-rtl-bp): Remove.
7738
7739 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
7740
7741         * rtl.def (LABEL_REF): Remove the field for LABEL_NEXTREF.
7742         * rtl.h (LABEL_NEXTREF): Remove field accessor.
7743
7744 2006-03-11  Eric Botcazou  <ebotcazou@adacore.com>
7745
7746         * function.h (frame_offset_overflow): Declare.
7747         * function.c (frame_offset_overflow): New function.
7748         (assign_stack_local_1): Call it to detect that the offset overflows.
7749         * cfgexpand.c (alloc_stack_frame_space): Likewise.
7750
7751 2006-03-11  Steven Bosscher  <stevenb.gcc@gmail.com>
7752
7753         * config/sh/sh.c: Include alloc-pool.h.
7754         (label_ref_list_pool): New alloc pool.
7755         (label_ref_list_t): New type for lists of labels.
7756         (struct pool_node): Make wend a label_ref_list_t.
7757         (add_constant): Use the new type, eradicate LABEL_NEXTREF
7758         references.
7759         (dump_table): Likewise.
7760         (sh_reorg): Set up the alloc pool before using add_constant and
7761         dump_table, and destroy it when finishing.
7762
7763 2006-03-11  Richard Sandiford  <richard@codesourcery.com>
7764
7765         * config/mips/mips.c: Remove redundant comment.
7766
7767 2006-03-10  Jason Merrill  <jason@redhat.com>
7768
7769         PR c/26004
7770         * gimplify.c (gimplify_modify_expr_rhs): Don't do return slot opt if
7771         the target was declared 'register'.
7772
7773 2006-03-10  Adam Nemet  <anemet@caviumnetworks.com>
7774
7775         * genpreds.c (write_insn_constraint_len): Change definition of
7776         insn_constraint_len to return size_t to match the declaration.
7777
7778 2006-03-10  DJ Delorie  <dj@redhat.com>
7779
7780         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Bit numbers
7781         start at zero.
7782         (m32c_expand_insv): Fix test for an AND mask.
7783
7784 2006-03-10  Richard Guenther  <rguenther@suse.de>
7785
7786         PR middle-end/26565
7787         * builtins.c (get_pointer_alignment): Handle component
7788         references for field alignment.
7789
7790 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
7791
7792         * config.gcc (sh*-superh-elf, sh*elf (newlib)): Use newlib.h
7793         when building with libgloss.
7794         (sh*elf): Implement --without-fp option.
7795         (sh64-superh-linux*): Don't multilib.
7796
7797 2006-03-10  J"orn Rennecke <joern.rennecke@st.com>
7798
7799         * struct-equiv.c (rtx_equiv_p): Fix POST_MODIFY case.
7800
7801 2006-03-09  Andrew Pinski  <pinskia@physics.uc.edu>
7802
7803         * tree-ssa-phiopt.c (tree_ssa_phiopt): Add cfgchanged variable.
7804         Set it when one of the replacement functions returned true.
7805         Return TODO_cleanup_cfg if cfgchanged is true.
7806         (pass_phiopt) <todo_flags_finish>: Remove TODO_cleanup_cfg.
7807
7808 2006-03-09  Adam Nemet  <anemet@caviumnetworks.com>
7809
7810         * combine.c (simplify_shift_const_1): Use gen_lowpart_or_truncate
7811         instead of gen_lowpart.
7812
7813 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
7814
7815         * config/mips/mips-protos.h (mips_output_conditional_branch): Change
7816         interface.
7817         (mips_output_order_conditional_branch): Declare.
7818         * config/mips/mips.h (MIPS_BRANCH): New macro.
7819         * config/mips/mips.c (gen_conditional_branch): Use VOIDmode
7820         for the comparison.  Use gen_condjump.
7821         (mips_output_conditional_branch): Rework interface to take the
7822         asm templates for a direct branch and the inverse of a direct branch.
7823         (mips_output_order_conditional_branch): New function.
7824         (mips_builtin_branch_and_move): New function.
7825         (mips_expand_builtin_compare): Use it.  Use VOIDmode for the
7826         branch condition.  Use gen_single_cc as the condition for
7827         __builtin_mips_upper_* or __builtin_mips_lower_*.
7828         (mips_expand_builtin_bposge): Use mips_builtin_branch_and_move.
7829         Use VOIDmode for the branch condition.
7830         * config/mips/predicates.md (order_operator): New predicate.
7831         * config/mips/mips.md (UNSPEC_SINGLE_CC): New constant.
7832         (branch_fp): Rename to...
7833         (*branch_fp): ...this.  Remove mode from comparison operator.
7834         Use new mips_output_conditional_branch interface.
7835         (branch_fp_inverted): Rename to...
7836         (*branch_fp_inverted): ...this and update as for *branch_fp.
7837         (*branch_zero<mode>): Rename to...
7838         (*branch_order<mode>): ...this.  Remove mode from comparison operator.
7839         Use mips_output_order_conditional_branch.  Only accept ordered
7840         comparisons.
7841         (*branch_zero<mode>_inverted): Rename to...
7842         (*branch_order<mode>_inverted): ...this and update as for
7843         *branch_order<mode>.
7844         (*branch_equality<mode>): Accept zero as the second operand to
7845         the equality operator.  Use the new mips_output_conditional_branch
7846         interface.
7847         (*branch_equality<mode>_inverted): Likewise.
7848         (condjump): New expander.
7849         * config/mips/mips-dsp.md (mips_bposge): Remove mode from comparison
7850         operator.
7851         * config/mips/mips-ps-3d.md (bc1any4t, bc1any4f): Likewise.
7852         (bc1any2t, bc1any2f): Likewise.
7853         (single_cc): New expander.
7854         (*branch_upper_lower, *branch_upper_lower_inverted): New patterns.
7855
7856 2006-03-09  Richard Sandiford  <richard@codesourcery.com>
7857
7858         * doc/md.texi: Update documentation of MIPS constraints.
7859         * config/mips/constraints.md: New file.
7860         * config/mips/mips.md: Include it.
7861         * config/mips/mips.c (mips_char_to_class): Delete.
7862         (override_options): Don't initialize mips_char_to_class.
7863         * config/mips/mips.h (mips_char_to_class): Delete.
7864         (REG_CLASS_FROM_LETTER): Delete.
7865         (CONST_OK_FOR_LETTER_P): Delete.
7866         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
7867         (EXTRA_CONSTRAINT_Y): Delete.
7868         (EXTRA_CONSTRAINT_STR): Delete.
7869         (CONSTRAINT_LEN): Delete.
7870         (EXTRA_MEMORY_CONSTRAINT): Delete.
7871
7872 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
7873
7874         * tree-cfg.c (move_block_to_fn): Remove the statements from the
7875         original fn's eh regions.
7876
7877 2006-03-09  Eric Botcazou  <ebotcazou@adacore.com>
7878
7879         * fold-const.c (build_range_check): Make sure to use a valid type to
7880         apply the "(c>=low) && (c<=high) into (c-low>=0) && (c-low<=high-low)"
7881         transformation.
7882
7883         (range_predecessor): New static function.
7884         (range_successor): Likewise.
7885         (merge_ranges): Use them to compute predecessors and successors of
7886         range bounds.
7887
7888 2006-03-09  Roger Sayle  <roger@eyesopen.com>
7889
7890         PR middle-end/26561
7891         * fold-const.c (fold_div_compare): When optimizing X/C1 op C2 as
7892         X op C3, consider whether C3 overflows towards +Inf or -Inf.
7893
7894 2006-03-08  DJ Delorie  <dj@redhat.com>
7895
7896         * config/m32c/addsub.md (addqi3): Disparage a0/a1.
7897         (addpsi3): Expand to include memory operands.  Remove
7898         reload-specific splits.
7899         * config/m32c/bitops.md (bset_qi, bset_hi, bclr_qi): New.
7900         (andqi3_16, andhi3_16, iorqi3_16, iorhi3_16): New.
7901         (andqi3_24, andhi3_24, iorqi3_24, iorhi3_24): New.
7902         (andqi3, andhi3, iorqi3, iorhi3): Convert to expanders.
7903         (shift1_qi, shift1_hi, insv): New.
7904         * config/m32c/cond.md (cbranchqi4, cbranchhi4): Remove.
7905         (cbranch<mode>4, stzx_16, stzx_24_<mode>, stzx_reversed,
7906         cmp<mode>, b<code>, s<code>, s<code>_24, movqicc, movhicc,
7907         cond_to_int): New.
7908         * config/m32c/m32c-protos.h: Update as needed.
7909         * config/m32c/m32c.c (m32c_reg_class_from_constraint): Don't
7910         default the Rcr, Rcl, Raw, and Ral constraints.  Add Ra0 and Ra1.
7911         Fail for unrecognized R* constraints.
7912         (m32c_cannot_change_mode_class): Be more picky about pseudos.
7913         (m32c_const_ok_for_constraint_p): Add Imb, Imw, and I00.
7914         (m32c_extra_constraint_p2): Allow (mem (plus (plus fb int) int)).
7915         Add Sp constraint.
7916         (m32c_init_libfuncs): New.
7917         (m32c_legitimate_address_p): Add debug wrapper.
7918         (m32c_rtx_costs): New.
7919         (m32c_address_cost): New.
7920         (conversions): Add 'B' prefix.
7921         (m32c_print_operand): 'h' and 'H' pick lower and upper halves of
7922         operands, or word regnames for QI operands.  'B' prints bit
7923         position.
7924         (m32c_expand_setmemhi): New.
7925         (m32c_expand_movmemhi): New.
7926         (m32c_expand_movstr): New.
7927         (m32c_expand_cmpstr): New.
7928         (m32c_prepare_shift): Shift counts are limited to 16 bits at a time.
7929         (m32c_expand_neg_mulpsi3): Handle non-ints.
7930         (m32c_cmp_flg_0): New.
7931         (m32c_expand_movcc): New.
7932         (m32c_expand_insv): New.
7933         (m32c_scc_pattern): New.
7934         * config/m32c/m32c.h (reg classes): Add AO_REGS and A1_REGS.  Take
7935         a0/a1 out of SIregs.
7936         (STORE_FLAG_VALUE): New.
7937         * config/m32c/m32c.md: Add unspecs for string moves.  Define various mode and
7938         code macros.
7939         (no_insn): New.
7940         * config/m32c/mov.md: Make constraints more liberal.
7941         (zero_extendqihi2): Optimize r0/r1 case.
7942         * config/m32c/muldiv.md (mulpsi3): Check for intvals.
7943         * config/m32c/predicates.md (m32c_any_operand): New.
7944         (m32c_nonimmediate_operand): New.
7945         (m32c_hl_operand): New.
7946         (m32c_r3_operand): New.
7947         (ap_operand): New.
7948         (ma_operand): New.
7949         (memsym_operand): New.
7950         (memimmed_operand): New.
7951         (a_qi_operand): New.
7952         (m32c_eqne_operator): New.
7953         (m32c_1bit8_operand): New.
7954         (m32c_1bit16_operand): New.
7955         (m32c_1mask8_operand): New.
7956         (m32c_1mask16_operand): New.
7957         * config/m32c/blkmov.md: New file.
7958         * config/m32c/t-m32c (MD_FILES): Add blkmov.
7959
7960 2006-03-08  Andreas Tobler  <a.tobler@schweiz.ch>
7961
7962         * dwarf2out.c (expand_builtin_dwarf_sp_column): Make dwarf_regnum
7963         unsigned to fix signed/unsigned comparison issue in
7964         DWARF2_FRAME_REG_OUT.
7965         (expand_builtin_init_dwarf_reg_sizes): Make i unsigned to fix signed/
7966         unsigned comparison issue in DWARF2_FRAME_REG_OUT.
7967
7968         * tree-ssa-operands.c (finalize_ssa_def_ops): Move the declaration
7969         of ptr into the ENABLE_CHECKING section.
7970
7971 2006-03-08  Jeff Law  <law@redhat.com>
7972
7973         * tree-vrp.c (infer_value_range): Only count pointer uses
7974         and dereferences if -fdelete-null-pointer-checks is enabled.
7975
7976         * tree-vrp.c (find_assert_locations): Infer value ranges for
7977         single use pointers, but do not create ASSERT_EXPRs for them.
7978         When a non-null range is inferred for a pointer, backwards
7979         propagate that range to other equivalent pointers through the
7980         use-def chain.
7981
7982 2006-03-08  Paolo Bonzini  <bonzini@gnu.org>
7983
7984         PR bootstrap/26500
7985         * Makefile.in (dvi, html, install-info): Invoke the corresponding
7986         language hook targets.
7987         * ada/Make-lang.in, cp/Make-lang.in, objc/Make-lang.in,
7988         objcp/Make-lang.in: Create stub rules for dvi, html, install-info
7989         if language hook targets were missing.
7990
7991 2006-03-07  Zdenek Dvorak <dvorakz@suse.cz>
7992
7993         * tree-ssa-opfinalize.h: Removed.
7994         * Makefile.in (tree-ssa-operands.o): Remove tree-ssa-opfinalize.h
7995         dependency.
7996         * tree-ssa-operands.c: Do not include tree-ssa-opfinalize.h.
7997         (ALLOC_OPTYPE, APPEND_OP_AFTER, MOVE_HEAD_AFTER, MOVE_HEAD_TO_FREELIST,
7998         INITIALIZE_USE, add_def_op, add_use_op, add_vuse_op, add_maydef_op,
7999         add_mustdef_op, finalize_ssa_def_ops, finalize_ssa_use_ops,
8000         finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
8001         finalize_ssa_v_must_def_ops): New.
8002
8003 2006-03-07  Kenneth Zadeck <zadeck@naturalbridge.com>
8004
8005         * df-scan.c: (df_bb_refs_record): Fix obvious typo with wrong
8006         block as parameter.
8007
8008 2006-03-07  Geoffrey Keating  <geoffk@apple.com>
8009
8010         * varasm.c (assemble_end_function): Say that 'fnname' is unused.
8011
8012         * config/i386/i386.c (ix86_delegitimize_address): Handle Darwin
8013         addresses with offsets; reorganize.
8014
8015         * dwarf2out.c (DWARF2_FRAME_REG_OUT): Move up in file.
8016         (expand_builtin_dwarf_sp_column): Call DWARF2_FRAME_REG_OUT.
8017         (expand_builtin_init_dwarf_reg_sizes): Likewise.
8018
8019 2006-03-08  David Billinghurst <David.Billinghurst@riotinto.com>
8020
8021         PR target/26588
8022         * config/i386/cygwin.h (GOMP_SELF_SPECS): Define.
8023
8024 2006-03-08  Ben Elliston  <bje@au.ibm.com>
8025
8026         * config/fp-bit.h (CMPtype): Typedef to a word mode integer.
8027
8028 2006-03-07  Aldy Hernandez  <aldyh@redhat.com>
8029
8030         PR gomp/26238
8031         * doc/passes.texi (Tree-SSA passes): Document omp lowering and
8032         expansion.
8033
8034 2006-03-07  Richard Guenther  <rguenther@suse.de>
8035
8036         PR tree-optimization/26587
8037         * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.
8038
8039 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
8040
8041         * varasm.c (assemble_variable): Fix setting of DECL_IN_TEXT_SECTION.
8042
8043 2006-03-07  Richard Sandiford  <richard@codesourcery.com>
8044
8045         * hooks.c (hook_bool_mode_rtx_true): New function.
8046         * hooks.h (hook_bool_mode_rtx_true): Declare.
8047         * toplev.c (compile_file): Call output_shared_constant_pool.
8048         * varasm.c (shared_constant_pool): New variable.
8049         (assemble_start_function, assemble_end_function): Remove arguments
8050         from call to output_constant_pool.
8051         (create_constant_pool): New function, split out from...
8052         (init_varasm_status): ...here.
8053         (force_const_mem): Choose between the shared and per-function constant
8054         pools.  Set current_function_uses_const_pool when reusing old entries
8055         as well as when creating new ones.
8056         (mark_constant): Ignore data argument.
8057         (mark_constants): Remove pool argument.
8058         (mark_constant_pool): Likewise.  Use current_function_uses_const_pool
8059         to decide whether the function uses a constant pool.
8060         (output_constant_pool_contents): New function, split out from...
8061         (output_constant_pool): ...here.
8062         (output_shared_constant_pool): New function.
8063         (init_varasm_once): Initialize shared_constant_pool.
8064         * output.h (output_constant_pool): Delete.
8065         (output_shared_constant_pool): Declare.
8066         * config/s390/s390-protos.h (s390_output_constant_pool): Delete.
8067         * config/i386/i386.c (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Override.
8068
8069 2006-03-06  Nick Clifton  <nickc@redhat.com>
8070
8071         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove reference to
8072         flag_strength_reduce.
8073
8074 2006-03-06  Ben Elliston  <bje@au.ibm.com>
8075
8076         * config.gcc: Add t-dfprules to $tmake_file for i*86-*-linux* and
8077         x86_64-*-linux* configurations.
8078
8079         * config/dfp-bit.h (CMPtype): Typedef to a word mode integer.
8080         (LIBGCC2_WORDS_BIG_ENDIAN): Define.
8081
8082 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8083
8084         * tree-ssa-threadupdate.c (rediscover_loops_after_threading):
8085         Remove.
8086         * basic-block.h: Remove the extern for
8087         rediscover_loops_after_threading.
8088
8089         * cfgloop.c (cancel_loop): Make it static.
8090         * cfgloop.h: Remove the prototype for cancel_loop.
8091
8092         * flow.c (recompute_reg_usage): Make it static.
8093         * rtl.h: Remove the prototype for recompute_reg_usage.
8094
8095         * function.c (use_return_register): Make it static.
8096         * function.h: Remove the prototype.
8097
8098 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8099
8100         * recog.c (volatile_mem_p, validate_change_maybe_volatile):
8101         Remove.
8102         * recog.h: Remove the prototype for
8103         validate_change_maybe_volatile.
8104
8105 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8106
8107         * rtlanal.c (replace_reg): Remove.
8108         * rtl.h: Remove the prototype for replace_reg.
8109
8110 2006-03-05  Kazu Hirata  <kazu@codesourcery.com>
8111
8112         * regclass.c (reg_scan_update): Remove.
8113         (reg_scan_mark_refs): Remove the last argument.
8114         * rtl.h: Remove the prototype for reg_scan_update.
8115
8116 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8117
8118         * builtins.c, c-pragma.h, c-typeck.c, cgraph.c, cgraphunit.c,
8119         combine.c, common.opt, config/dfp-bit.c, config/i386/i386.c,
8120         config/m68k/m68k.c, config/m68k/m68k.md, config/mt/mt.c,
8121         config/mt/mt.h, config/s390/s390.md, df-core.c, df-problems.c,
8122         df-scan.c, df.h, diagnostic.c, expr.c, function.h, gimplify.c,
8123         loop-invariant.c, omp-low.c, opts.c, passes.c,
8124         rtl-factoring.c, rtlanal.c, struct-equiv.c, tree-cfgcleanup.c,
8125         tree-ssa-loop-niter.c, tree-ssa-loop-prefetch.c,
8126         tree-ssa-structalias.c, tree-ssa-threadedge.c,
8127         tree-ssa-threadupdate.c, tree-vect-patterns.c,
8128         tree-vect-transform.c, tree-vectorizer.h, tree-vrp.c,
8129         unwind-dw2.c: Fix comment typos.  Follow spelling conventions.
8130
8131 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8132
8133         * dwarf2out.c (dwarf2out_add_library_unit_info): Remove.
8134         * dwarf2out.h: Remove the prototype for
8135         dwarf2out_add_library_unit_info.
8136
8137 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8138
8139         * tree.c (add_var_to_bind_expr): Remove.
8140         * tree.h: Remove the prototype for add_var_to_bind_expr.
8141
8142 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8143
8144         * regclass.c (n_non_fixed_regs): Remove.
8145         (init_reg_sets_1, globalize_reg): Remove all uses of
8146         n_non_fixed_regs.
8147         * hard-reg-set.h: Remove the extern for n_non_fixed_regs.
8148
8149 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8150
8151         * rtlanal.c (insns_safe_to_move_p): Remove.
8152         * rtl.h: Remove the prototype for insns_safe_to_move_p.
8153
8154 2006-03-04  Kazu Hirata  <kazu@codesourcery.com>
8155
8156         * expmed.c (expand_mult_add): Remove.
8157         * expr.h: Remove the prototype for expand_mult_add.
8158
8159 2006-03-04  Jakub Jelinek  <jakub@redhat.com>
8160
8161         * unwind-dw2.h (_Unwind_FrameState): Add REG_SAVED_VAL_OFFSET
8162         and REG_SAVED_VAL_EXP constants.
8163         * unwind-dw2.c (struct _Unwind_Context): Add by_value array.
8164         (_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
8165         Handle regs stored by value.
8166         (_Unwind_SetGRValue, _Unwind_GRByValue): New functions.
8167         (execute_cfa_program): Handle DW_CFA_val_offset,
8168         DW_CFA_val_offset_sf and DW_CFA_val_expression.
8169         (uw_update_context_1): Handle REG_SAVED_REG with regs stored by
8170         value specially.  Handle REG_SAVED_VAL_OFFSET and REG_SAVED_VAL_EXP.
8171         (uw_install_context_1): Handle target regs stored by value.
8172
8173 2006-03-03  Daniel Berlin  <dberlin@dberlin.org>
8174
8175         * tree-sra.c (tree_sra): Return todoflags;
8176         (generate_one_element): Set TODO_update_smt_usage if needed.
8177         (pass_sra): Remove TODO_update_smt_usage.
8178         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Add some
8179         parameter.
8180         (tree_ssa_forward_propagate_single_use_vars): Return
8181         TODO_update_smt_usage if we need to update SMT usage.
8182         (pass_forwprop): Remove TODO_update_smt_usage.
8183
8184 2006-03-03  Diego Novillo  <dnovillo@redhat.com>
8185
8186         * tree-ssa-operands.c: Tidy whitespace.  Fix spelling.
8187         (correct_use_link): Remove reference to get_stmt_operands.
8188         (update_stmt_operands): Likewise.
8189         (get_modify_expr_operands): New function factored out of
8190         parse_ssa_operands and get_expr_operands.
8191         Try to create V_MUST_DEFs for LHS by default.
8192         (get_expr_operands) <case MODIFY_EXPR>: Call
8193         get_modify_expr_operands.
8194         <case ARRAY_RANGE_REF>: Handle together with ARRAY_REF.
8195         <case BIT_FIELD_REF>: Clear opf_kill_def from FLAGS.
8196         (parse_ssa_operands) <case MODIFY_EXPR>: Call
8197         get_modify_expr_operands.
8198
8199 2006-03-03  Kazu Hirata  <kazu@codesourcery.com>
8200
8201         * tree-dfa.c (referenced_var_lookup_if_exists): Remove.
8202         * tree-flow.h: Remove the prototype for
8203         referenced_var_lookup_if_exists.
8204
8205 2006-03-03  Steve Ellcey  <sje@cup.hp.com>
8206
8207         PR rtl-optimization/26345
8208         PR target/19061
8209         * config/ia64/predicates.md (basereg_operand): Don't look in subregs.
8210
8211 2006-03-03  Roger Sayle  <roger@eyesopen.com>
8212
8213         PR tree-optimization/26524
8214         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Use
8215         fold_convert to create a constant of the appropriate type.
8216
8217 2006-03-03  Richard Sandiford  <richard@codesourcery.com>
8218
8219         * doc/tm.texi: Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8220         SYMBOL_REF_IN_BLOCK_P.
8221         * doc/rtl.texi: Likewise.  Refer to SYMBOL_FLAG_HAS_BLOCK_INFO instead
8222         of SYMBOL_FLAG_IN_BLOCK.
8223         * gengtype.c (adjust_field_rtx_def): Use SYMBOL_REF_HAS_BLOCK_INFO_P
8224         instead of SYMBOL_REF_IN_BLOCK_P.
8225         * explow.c (use_anchored_address): Likewise.
8226         * rtl.c (rtx_size): Likewise.
8227         * varasm.c (create_block_symbol): Set SYMBOL_FLAG_HAS_BLOCK_INFO
8228         instead of SYMBOL_FLAG_IN_BLOCK.
8229         (make_decl_rtl): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8230         SYMBOL_REF_IN_BLOCK_P.
8231         (assemble_variable): Likewise.
8232         (output_constant_def_contents): Likewise.
8233         (output_constant_pool): Likewise.
8234         (default_encode_section_info): Preserve SYMBOL_FLAG_HAS_BLOCK_INFO
8235         instead of SYMBOL_FLAG_IN_BLOCK.
8236         * rtl.h (block_symbol): Refer to SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8237         SYMBOL_REF_IN_BLOCK_P.
8238         (SYMBOL_REF_BLOCK): Likewise.
8239         (SYMBOL_REF_OFFSET): Likewise.
8240         (BLOCK_SYMBOL_CHECK): Use SYMBOL_REF_HAS_BLOCK_INFO_P instead of
8241         SYMBOL_REF_IN_BLOCK_P.
8242         (SYMBOL_FLAG_IN_BLOCK): Replace with...
8243         (SYMBOL_FLAG_HAS_BLOCK_INFO): ...this.
8244         (SYMBOL_REF_IN_BLOCK_P): Replace with...
8245         (SYMBOL_REF_HAS_BLOCK_INFO_P): ...this.
8246
8247 2006-03-03  Jakub Jelinek  <jakub@redhat.com>
8248
8249         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Fix pasto.
8250
8251 2006-03-02  Roger Sayle  <roger@eyesopen.com>
8252
8253         * simplify-rtx.c (simplify_unary_operation): When simplifying
8254         (neg (lt X 0)) into (ashiftrt X C) or (lshiftrt X C), make sure
8255         that we perform the right shift in the appropriate mode, and
8256         then extend or truncate the result to requested mode.
8257
8258 2006-03-03  Zdenek Dvorak <dvorakz@suse.cz>
8259
8260         * gengtype.c (main): Handle double_int type.
8261         * tree.h (struct tree_int_cst): Make type of int_cst double_int.
8262         * double-int.c: New file.
8263         * double-int.h: New file.
8264         * system.h: Include doubleint.h.
8265         * Makefile.in (SYSTEM_H): Include double-int.h.
8266         (double-int.o): Add.
8267
8268 2006-03-03  Joseph S. Myers  <joseph@codesourcery.com>
8269
8270         PR bootstrap/26478
8271         * Makefile.in (stmp-int-hdrs): Remove include/unwind.h before
8272         copying over it.
8273
8274 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8275
8276         * tree-vrp.c (remove_range_assertions): Do not update statements
8277         unnecessarily.
8278
8279 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8280
8281         * cse.c (rest_of_handle_cse): Do not pass CLEANUP_PRE_LOOP to cfg
8282         cleanup.
8283         * gcse.c (rest_of_handle_gcse): Ditto.
8284         * except.c (gate_handle_eh): Ditto.
8285         * cfgcleanup.c (rest_of_handle_jump2): Ditto.
8286         * basic-block.h (CLEANUP_PRE_LOOP): Remove.
8287
8288 2006-03-02  Eric Christopher  <echristo@apple.com>
8289
8290         * config/i386/i386.c (machopic_output_stub): Add indirection to
8291         jump.
8292
8293 2006-03-02  Zdenek Dvorak <dvorakz@suse.cz>
8294
8295         * loop.c: Removed.
8296
8297 2006-03-02  David S. Miller  <davem@sunset.davemloft.net>
8298
8299         Sun Niagara specific optimizations.
8300         * config.gcc: Recognize niagara as target.
8301         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Mention Niagara.
8302         (TARGET_CPU_niagara): Define.
8303         (CPP_CPU64_DEFAULT_SPEC): Define __sparc_v9__ for Niagara.
8304         (ASM_CPU64_DEFAULT_SPEC): Pass -Av9b for Niagara.
8305         (CPP_CPU_SPEC): Handle -mcpu=niagara.
8306         (ASM_CPU_SPEC): Likewise.
8307         (PROCESSOR_NIAGARA): New enum entry.
8308         (REGISTER_MOVE_COST): Handle Niagara.
8309         (BRANCH_COST, PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): Likewise.
8310         * config/sparc/sparc.c (niagara_costs): New processor_costs entry.
8311         (sparc_override_options): Recognize "niagara", set appropriate
8312         default MASK_* values for it, and align functions to 32-bytes
8313         by default just like ULTRASPARC/ULTRASPARC3.
8314         (sparc_initialize_trampoline): Handle niagara like ultrasparc.
8315         (sparc64_initialize_trampoline): Likewise.
8316         (sparc_use_sched_lookahead): Use zero for niagara.
8317         (sparc_issue_rate): Use one for niagara.
8318         * config/sparc/niagara.md: New file.
8319         * config/sparc/sparc.md: Include it.
8320         * config/sparc/sol2-bi.h (CPP_CPU64_DEFAULT_SPEC,
8321         ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Set appropriately
8322         when default cpu is niagara.
8323         (CPP_CPU_SPEC): Handle -mcpu=niagara.
8324         (ASM_CPU_SPEC): Likewise.
8325         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Set appropriately
8326         when default cpu is niagara.
8327         (ASM_CPU_SPEC): Handle -mcpu=niagara.
8328         * config/sparc/linux64.h: Handle a default of TARGET_CPU_niagara
8329         just like v9/ultrasparc/ultrasparc3.
8330         * doc/invoke.texi: Add documentation for "niagara" and improve
8331         existing documentation for ultrasparc variants.
8332
8333 2006-03-02  Diego Novillo  <dnovillo@redhat.com>
8334
8335         * tree-ssa-operands.c (update_stmt_operands): Update documentation.
8336
8337 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
8338
8339         * doc/tm.texi (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Document.
8340         (ASM_OUTPUT_BSS): Describe the two ways of handling global BSS,
8341         and say that only one is needed.
8342         * doc/rtl.texi (SYMBOL_REF_BLOCK): Say that the block can be null.
8343         * target.h (have_switchable_bss_sections): New hook.
8344         * explow.c (use_anchored_address): Check that the symbol is in a block.
8345         * varasm.c (tls_comm_section, comm_section, lcomm_section)
8346         (bss_noswitch_section): New variables.
8347         (get_unnamed_section): Add SECTION_UNNAMED to the flags.
8348         (get_noswitch_section): New function.
8349         (get_block_for_section): Allow SECT to be null.
8350         (unlikely_text_section_p): Use SECTION_STYLE.
8351         (bss_initializer_p): New function.
8352         (get_variable_section): Move earlier in file.  Take a new argument,
8353         prefer_noswitch_p.  Move bss checks from assemble_variable to here.
8354         Return one of the new *_sections in such cases.
8355         (get_block_for_decl): New function, extracting some logic from
8356         use_blocks_for_decl_p.
8357         (change_symbol_section): Remove in favor of...
8358         (change_symbol_block): ...this new function.
8359         (use_blocks_for_decl_p): Remove checks now performed by
8360         get_block_for_decl.
8361         (make_decl_rtl): Use change_symbol_block and get_block_for_decl.
8362         (ASM_EMIT_LOCAL, ASM_EMIT_BSS, ASM_EMIT_COMMON): Delete in favor of...
8363         (emit_local, emit_bss, emit_common): ...these new functions.
8364         Return true if the alignment was honored.
8365         (emit_tls_common): New function.
8366         (asm_emit_uninitialised): Delete.
8367         (assemble_variable_noswitch): New function, split out from...
8368         (assemble_variable): ...here.  Don't make decisions about common
8369         variables here.  Globalize all public decls that go into non-common
8370         sections.  Check whether SYMBOL_REF_BLOCK is null.
8371         (output_constant_def_contents): Check whether SYMBOL_REF_BLOCK is null.
8372         (output_constant_pool): Likewise.
8373         (init_varasm_once): Initialize the new section variables.
8374         (have_global_bss_p): New function.
8375         (categorize_decl_for_section): Use bss_initializer_p.
8376         (switch_to_section): Use SECTION_STYLE.  Abort for SECTION_NOSWITCH.
8377         (place_block_symbol): Assert that the symbol must be in a block.
8378         * target-def.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): New macro.
8379         (TARGET_INITIALIZER): Include it.
8380         * rtl.h (SYMBOL_REF_BLOCK): Document the null alternative.
8381         * output.h (SECTION_STYLE_MASK, SECTION_COMMON): New macros.
8382         (SECTION_MACH_DEP): Bump by two.
8383         (SECTION_UNNAMED, SECTION_NOSWITCH): New macros.
8384         (unnamed_section): Mention SECTION_UNNAMED in comment.
8385         (named_section): Likewise SECTION_NAMED.
8386         (noswitch_section_callback): New type.
8387         (noswitch_section): New structure.
8388         (section): Add a noswitch_section alternative.
8389         (SECTION_STYLE): New macro.
8390         (tls_comm_section, comm_section, lcomm_section): Declare.
8391         (bss_noswitch_section, have_global_bss_p): Declare.
8392         * config/elfos.h (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8393         * config/iq2000/iq2000.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8394         Override.
8395         * config/v850/v850.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Override.
8396         * config/stormy16/stormy16.c (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS):
8397         Override.
8398
8399 2006-03-02  Daniel Berlin <dberlin@dberlin.org>
8400
8401         * tree-vrp.c (execute_vrp): Return value.
8402         * regrename.c (rest_of_handle_regrename): Ditto.
8403         * tree-into-ssa.c (rewrite_into_ssa): Ditto.
8404         * tree-complex.c (tree_lower_complex): Ditto.
8405         (tree_lower_complex_O0): Ditto.
8406         * tracer.c (rest_of_handle_tracer): Ditto.
8407         * postreload-gcse.c (rest_of_handle_gcse2): Ditto.
8408         * postreload.c (rest_of_handle_postreload): Ditto.
8409         * tree-tailcall.c (execute_tail_recursion): Ditto.
8410         (execute_tail_calls): Ditto.
8411         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
8412         * tree.h (init_function_for_compilation): Ditto.
8413         * ipa-cp.c (ipcp_driver): Ditto.
8414         * tree-scalar-evolution.c (scev_const_prop): Ditto.
8415         * tree-scalar-evolution.h (scev_const_prop): Ditto.
8416         * final.c (compute_alignments): Ditto.
8417         (rest_of_handle_final): Ditto.
8418         (rest_of_handle_shorten_branches): Ditto.
8419         (rest_of_clean_state): Ditto.
8420         * omp-low.c (execute_expand_omp): Ditto.
8421         (execute_lower_omp): Ditto.
8422         * tree-ssa-dse.c (tree_ssa_dse): Ditto.
8423         * ipa-reference.c (static_execute): Ditto.
8424         * tree-ssa-uncprop.c (tree_ssa_uncprop): Ditto.
8425         * reorg.c (rest_of_handle_delay_slots): Ditto.
8426         (rest_of_handle_machine_reorg): Ditto.
8427         * cgraphunit.c (rebuild_cgraph_edges): Ditto.
8428         * flow.c (recompute_reg_usage): Ditto.
8429         (rest_of_handle_remove_death_notes): Ditto.
8430         (rest_of_handle_life): Ditto.
8431         (rest_of_handle_flow2): Ditto.
8432         * tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
8433         * tree-ssa-ccp.c (do_ssa_ccp): Ditto.
8434         (do_ssa_store_ccp): Ditto.
8435         (execute_fold_all_builtins): Ditto.
8436         * mode-switching.c (rest_of_handle_mode_switching): Ditto.
8437         * modulo-sched.c (rest_of_handle_sms): Ditto.
8438         * ipa-pure-const.c (static_execute): Ditto.
8439         * cse.c (rest_of_handle_cse): Ditto.
8440         (rest_of_handle_cse2): Ditto.
8441         * web.c (rest_of_handle_web): Ditto.
8442         * tree-stdarg.c (execute_optimize_stdarg): Ditto.
8443         * tree-ssa-math-opts.c (execute_cse_reciprocals): Ditto.
8444         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Ditto.
8445         * tree-nrv.c (tree_nrv): Ditto.
8446         (execute_return_slot_opt): Ditto.
8447         * tree-ssa-alias.c (compute_may_aliases): Ditto.
8448         (create_structure_vars): Ditto.
8449         * loop-init.c (rtl_loop_init): Ditto.
8450         (rtl_loop_done): Ditto.
8451         (rtl_move_loop_invariants): Ditto.
8452         (rtl_unswitch): Ditto.
8453         (rtl_unroll_and_peel_loops): Ditto.
8454         (rtl_doloop): Ditto.
8455         * gimple-low.c (lower_function_body): Ditto.
8456         (mark_used_blocks): Ditto.
8457         * tree-ssa-sink.c (execute_sink_code): Ditto.
8458         * ipa-inline.c (cgraph_decide_inlining): Ditto.
8459         (cgraph_early_inlining): Ditto.
8460         * global.c (rest_of_handle_global_alloc): Ditto.
8461         * jump.c (cleanup_barriers): Ditto.
8462         (purge_line_number_notes): Ditto.
8463         * ifcvt.c (rest_of_handle_if_conversion): Ditto.
8464         (rest_of_handle_if_after_reload): Ditto.
8465         * tree-ssa-loop.c (tree_ssa_loop_init): Ditto.
8466         (tree_ssa_loop_im): Ditto.
8467         (tree_ssa_loop_unswitch): Ditto.
8468         (tree_vectorize): Ditto.
8469         (tree_linear_transform): Ditto.
8470         (tree_ssa_loop_ivcanon): Ditto.
8471         (tree_ssa_empty_loop): Ditto.
8472         (tree_ssa_loop_bounds): Ditto.
8473         (tree_complete_unroll): Ditto.
8474         (tree_ssa_loop_prefetch): Ditto.
8475         (tree_ssa_loop_ivopts): Ditto.
8476         (tree_ssa_loop_done): Ditto.
8477         * predict.c (tree_estimate_probability): Ditto.
8478         * recog.c (split_all_insns_noflow): Ditto.
8479         (rest_of_handle_peephole2): Ditto.
8480         (rest_of_handle_split_all_insns): Ditto.
8481         * tree-eh.c (lower_eh_constructs): Ditto.
8482         * regmove.c (rest_of_handle_regmove): Ditto.
8483         (rest_of_handle_stack_adjustments): Ditto.
8484         * local-alloc.c (rest_of_handle_local_alloc): Ditto.
8485         * function.c (instantiate_virtual_regs): Ditto.
8486         (init_function_for_compilation): Ditto.
8487         (rest_of_handle_check_leaf_regs): Ditto.
8488         * gcse.c (rest_of_handle_jump_bypass): Ditto.
8489         (rest_of_handle_gcse): Ditto.
8490         * ipa-type-escape.c (type_escape_execute): Ditto.
8491         * alias.c (rest_of_handle_cfg): Ditto.
8492         * tree-if-conv.c (main_tree_if_conversion): Ditto.
8493         * profile.c (rest_of_handle_branch_prob): Ditto.
8494         * tree-ssa-phiopt.c (tree_ssa_phiopt): Ditto.
8495         * rtl-factoring.c (rest_of_rtl_seqabstr): Ditto.
8496         * bt-load.c (rest_of_handle_branch_target_load_optimize): Ditto
8497         * tree-dfa.c (find_referenced_vars): Ditto.
8498         * except.c (set_nothrow_function_flags): Ditto.
8499         (convert_to_eh_region_ranges): Ditto.
8500         (rest_of_handle_eh): Ditto.
8501         * emit-rtl.c (unshare_all_rtl): Ditto.
8502         (remove_unnecessary_notes): Ditto.
8503         * except.h (set_nothrow_function_flags): Ditto.
8504         (convert_to_eh_region_ranges): Ditto.
8505         * cfgexpand.c (tree_expand_cfg): Ditto.
8506         * tree-cfgcleanup.c (merge_phi_nodes): Ditto.
8507         * tree-ssa-pre.c (do_pre): Ditto.
8508         (execute_fre): Ditto.
8509         * cfgcleanup.c (rest_of_handle_jump): Ditto.
8510         (rest_of_handle_jump2): Ditto.
8511         * tree-sra.c (tree_sra): Ditto.
8512         * tree-mudflap.c (execute_mudflap_function_ops): Ditto.
8513         (execute_mudflap_function_decls): Ditto.
8514         * tree-ssa-copy.c (do_copy_prop): Ditto.
8515         (do_store_copy_prop): Ditto.
8516         * ipa-prop.h (ipcp_driver): Ditto.
8517         * cfglayout.c (insn_locators_initialize): Ditto.
8518         * tree-ssa-forwprop.c
8519         (tree_ssa_forward_propagate_single_use_vars): Ditto.
8520         * cfglayout.h (insn_locators_initialize): Ditto.
8521         * tree-ssa-dce.c (tree_ssa_dce): Ditto.
8522         * tree-ssa.c (execute_early_warn_uninitialized): Ditto.
8523         (execute_late_warn_uninitialized): Ditto.
8524         * rtl.h (cleanup_barriers): Ditto.
8525         (split_all_insns_noflow): Ditto.
8526         (purge_line_number_notes): Ditto.
8527         (unshare_all_rtl): Ditto.
8528         (remove_unnecessary_notes): Ditto.
8529         (recompute_reg_usage): Ditto.
8530         (variable_tracking_main): Ditto.
8531         * integrate.c (emit_initial_value_sets): Ditto.
8532         * integrate.h (emit_initial_value_sets): Ditto.
8533         * tree-optimize.c (execute_free_datastructures): Ditto
8534         (execute_free_cfg_annotations): Ditto.
8535         (execute_fixup_cfg): Ditto.
8536         (execute_cleanup_cfg_pre_ipa): Ditto.
8537         (execute_cleanup_cfg_post_optimizing): Ditto.
8538         (execute_init_datastructures): Ditto.
8539         * tree-object-size.c (compute_object_sizes): Ditto.
8540         * combine.c (rest_of_handle_combine): Ditto.
8541         * tree-outof-ssa.c (rewrite_out_of_ssa): Ditto.
8542         * bb-reorder.c (duplicate_computed_gotos): Ditto.
8543         (rest_of_handle_reorder_blocks): Ditto.
8544         (rest_of_handle_partition_blocks): Ditto.
8545         * var-tracking.c (variable_tracking_main): Ditto.
8546         * tree-profile.c (tree_profiling): Ditto.
8547         * tree-vect-generic.c (expand_vector_operations): Ditto.
8548         * reg-stack.c (rest_of_handle_stack_regs): Ditto.
8549         * sched-rgn.c (rest_of_handle_sched): Ditto.
8550         (rest_of_handle_sched2): Ditto.
8551         * basic-block.h (free_bb_insn): Ditto.
8552         * tree-ssa-structalias.c (ipa_pta_execute): Ditto.
8553         * tree-cfg.c (execute_build_cfg): Ditto.
8554         (remove_useless_stmts): Ditto.
8555         (split_critical_edges): Ditto.
8556         (execute_warn_function_return): Ditto.
8557         (execute_warn_function_noreturn): Ditto.
8558         * tree-ssa-reassoc.c (execute_reassoc): Ditto.
8559         * cfgrtl.c (free_bb_for_insn): Ditto.
8560         * passes.c (execute_one_pass): Run additional
8561         todos returned by execute function.
8562         * tree-pass.h (struct tree_opt_pass): Make execute
8563         return a value.
8564
8565 2006-03-02  Richard Guenther  <rguenther@suse.de>
8566
8567         * tree-ssa-alias.c (find_used_portions): Consider taking
8568         the address as making the variable not write-only.
8569
8570 2006-03-02  Nick Clifton  <nickc@redhat.com>
8571
8572         * config.gcc (default_use_cxa_atexit): Extend the description of
8573         this configure variable.  Set its default value to "yes" for
8574         Linux, NetBSD and ELF targets on the assumption that they will
8575         use C libraries with the __cxa_atexit function.
8576
8577 2006-03-02  Ben Elliston  <bje@au.ibm.com>
8578
8579         * config/rs6000/linux-unwind.h (frob_update_context): Mark `fs'
8580         parameter as unused to suppress a build warning.
8581
8582 2006-03-02  Ben Elliston  <bje@au.ibm.com>
8583
8584         * mklibgcc.in: Depend on config/dfp-bit.h in rules that compile
8585         config/dfp-bit.c.
8586
8587 2006-03-01  Roger Sayle  <roger@eyesopen.com>
8588
8589         PR other/26489
8590         * gthr-posix.h (__gthrw2): Define to take three parameters, the
8591         declared name, the weak reference name, and the typeof name.
8592         (__gthrw): Avoid expanding the declared name suffix.
8593         (__gthrw3): New Tru64 specific macro to simplify the OSF/1 decls.
8594
8595 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
8596
8597         * dwarf2.h (DW_TAG_condition, DW_TAG_shared_type): New constants
8598         from DWARF 3.
8599         (DW_AT_description, DW_AT_binary_scale, DW_AT_decimal_scale,
8600         DW_AT_small, DW_AT_decimal_sign, DW_AT_digit_count,
8601         DW_AT_picture_string, DW_AT_mutable, DW_AT_threads_scaled,
8602         DW_AT_explicit, DW_AT_object_pointer, DW_AT_endianity,
8603         DW_AT_elemental, DW_AT_pure, DW_AT_recursive): New.
8604         (DW_OP_form_tls_address, DW_OP_call_frame_cfa, DW_OP_bit_piece): New.
8605         (DW_ATE_packed_decimal, DW_ATE_numeric_string, DW_ATE_edited,
8606         DW_ATE_signed_fixed, DW_ATE_unsigned_fixed): New.
8607         (DW_DS_unsigned, DW_DS_leading_overpunch, DW_DS_trailing_overpunch,
8608         DW_DS_leading_separate, DW_DS_trailing_separate): New.
8609         (DW_END_default, DW_END_big, DW_END_little): New.
8610         (DW_END_lo_user, DW_END_hi_user): Define.
8611         (DW_LNE_lo_user, DW_LNE_hi_user): Define.
8612         (DW_CFA_val_offset, DW_CFA_val_offset_sf, DW_CFA_val_expression): New.
8613         (DW_LANG_PLI, DW_LANG_ObjC, DW_LANG_ObjC_plus_plus, DW_LANG_UPC,
8614         DW_LANG_D): New.
8615
8616 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
8617
8618         * tree.def (SYMBOL_MEMORY_TAG): Rename from TYPE_MEMORY_TAG.
8619         Update all users.
8620         * tree-pass.h (PROP_smt_usage): Rename from PROP_tmt_usage.
8621         Update all users.
8622         (TODO_update_smt_usage): Rename from TODO_update_tmt_usage.
8623         Update all users.
8624         * tree.h (SMT_USED_ALONE): Rename from TMT_USED_ALONE.
8625         Update all users.
8626         * tree-flow.h (struct var_ann_d): Rename field 'type_mem_tag'
8627         to 'symbol_mem_tag'.
8628         Update all users.
8629         * doc/tree-ssa.texi: Update documentation to reflect TMT->SMT
8630         rename.
8631
8632 2006-03-01  Roger Sayle  <roger@eyesopen.com>
8633
8634         * builtins.c (fold_builtin_copysign): Delete unreachable code.
8635
8636 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
8637
8638         PR target/25761
8639         * config/darwin.h (MACHOPIC_JUST_INDIRECT): Check just
8640         MACHO_DYNAMIC_NO_PIC_P.
8641         (MACHOPIC_PURE): Check flag_pic and not MACHO_DYNAMIC_NO_PIC_P.
8642
8643 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
8644
8645         PR target/26389
8646         * config/darwin-protos.h (darwin_asm_output_anchor):
8647         Declare.
8648         * config/darwin-sections.def (cstring_section):
8649         Add SECTION_MERGE to the flags.
8650         (literal4_section): Likewise.
8651         (literal8_section): Likewise.
8652         (objc_selector_refs_section): Likewise.
8653         (objc_cls_refs_section): Likewise.
8654         * config/darwin.c (darwin_asm_output_anchor): New
8655         function.
8656         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
8657
8658 2006-03-01  Daniel Berlin  <dberlin@dberlin.org>
8659
8660         Fix PR tree-optimization/26443
8661         * tree-vrp.c (pass_vrp): Add TODO_update_tmt_usage
8662         to todo and PROP_tmt_usage to properties_destroyed.
8663         * tree-ssa-ccp.c (pass_ccp): Ditto.
8664         (pass_store_ccp): Ditto.
8665         * tree-ssa-dom.c (pass_dominator): Ditto.
8666
8667 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
8668
8669         * tree-ssa-operands.c: Cleanup whitespace.
8670         (get_asm_expr_operands): Move before first invocation.
8671         (get_indirect_ref_operands): Likewise.
8672         (get_tmr_operands): Likewise.
8673         (get_call_expr_operands): Likewise.
8674         (append_def): Likewise.
8675         (append_use): Likewise.
8676         (append_v_may_def): Likewise.
8677         (append_v_must_def): Likewise.
8678         (add_call_clobber_ops): Likewise.
8679         (add_call_read_ops): Likewise.
8680         (add_stmt_operand): Likewise.
8681         (add_virtual_operand): Likewise.
8682         (build_ssa_operands): Likewise.
8683
8684 2006-03-01  Andrew Pinski  <pinskia@physics.uc.edu>
8685
8686         PR middle-end/26022
8687         Revert:
8688         PR middle-end/24437
8689         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
8690         with a call expr to ...
8691         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
8692
8693 2006-03-01  Diego Novillo  <dnovillo@redhat.com>
8694
8695         * tree-vrp.c (extract_range_from_assert): Remove special
8696         handling for types with super-types.
8697
8698 2006-03-01  Ben Elliston  <bje@au.ibm.com>
8699
8700         * config.gcc: Add t-dfprules to $tmake_file for powerpc-*-linux*
8701         and powerpc64-*-linux* configurations.
8702         * config/t-dfprules: New file.
8703
8704         * mklibgcc.in: Add logic to handle $DFP_ENABLE and $DFP_CFLAGS.
8705         Compile dfp-bit.c from the source directory using -DWIDTH and
8706         $DFP_CFLAGS to control the compilation of that file, rather than
8707         generating width-specific versions in the build directory.
8708         * Makefile.in (libgcc.mk): Pass down DFP_ENABLE and DFP_CFLAGS.
8709         (LIBGCC_DEPS): Replace $(D32PBIT) et al with config/dfp-bit.[hc].
8710
8711 2006-02-28  Zack Weinberg  <zackw@panix.com>
8712
8713         * doc/md.texi: Avoid use of @headitem so that makeinfo <4.7
8714         continues to work.
8715
8716 2006-02-28  Eric Christopher  <echristo@apple.com>
8717
8718         * config/rs6000/darwin.h (ENABLE_STACK_EXECUTE): Define.
8719         Set up IN_LIBGCC definition of TARGET_64BIT.
8720         * config/i386/darwin.h (ENABLE_STACK_EXECUTE): Define.
8721
8722 2006-02-28  Roger Sayle  <roger@eyesopen.com>
8723
8724         PR middle-end/14752
8725         * c-common.c (c_common_truthvalue_conversion) <MINUS_EXPR,
8726         BIT_XOR_EXPR, BIT_AND_EXPR>: Delete.  Let fold optimize these
8727         cases via the construction of "expr != 0".
8728
8729 2006-02-28  Steven Bosscher  <stevenb.gcc@gmail.com>
8730
8731         * alias.c (alias_invariant, alias_invariant_size): Remove.
8732         (record_base_value): Remove.
8733         (memrefs_conflict_p): Don't look at alias_invariant.
8734         (end_alias_analysis): Don't free it.
8735         * alias.h (record_base_value): Remove prototype.
8736
8737 2006-02-28  Paolo Bonzini  <bonzini@gnu.org>
8738             Adam Nemet  <anemet@caviumnetworks.com>
8739
8740         * rtl.h (truncated_to_mode): Declare it.
8741         (struct rtl_hooks): Add reg_truncated_to_mode hook.
8742         * rtlhooks-def.h (RTL_HOOKS_REG_TRUNCATED_TO_MODE): New macro.
8743         (RTL_HOOKS_INITIALIZER): Include it.
8744         * rtlhooks.c (reg_truncated_to_mode_general): New function.
8745         * combine.c (RTL_HOOKS_REG_TRUNCATED_TO_MODE): Override to
8746         reg_truncated_to_mode.
8747         * rtlanal.c (truncated_to_mode): Define it.
8748         * simplify-rtx.c (simplify_unary_operation_1): Use it.
8749
8750 2006-02-28  Jeff Law  <law@redhat.com>
8751
8752         * tree-chrec.c (chrec_convert_aggressive): Do not eliminate
8753         conversions where TYPE_MIN_VALUE/TYPE_MAX_VALUE do not cover
8754         the range allowed by TYPE_PRECISION.
8755
8756         * tree.h (strct phi_arg_d): Remove unused NONZERO field.
8757
8758 2006-02-28  Dorit Nuzman  <dorit@il.ibm.com>
8759
8760         PR tree-optimization/26419
8761         * doc/invoke.texi (ftree-vectorizer-verbose): Add information on
8762         values of n.
8763
8764 2006-02-27  Zack Weinberg  <zackw@panix.com>
8765
8766         * doc/md.texi: Fix typo in previous change.
8767
8768 2006-02-27  Kenneth Zadeck <zadeck@naturalbridge.com>
8769
8770         * df.c: Remove.
8771
8772 2006-02-27  Zack Weinberg  <zackw@panix.com>
8773
8774         * rtl.def (define_constraint, define_register_constraint)
8775         (define_memory_constraint, define_address_constraint): New MD forms.
8776         * gensupport.c (process_rtx): Put define_constraint etc on the
8777         predicate queue.
8778         * genpreds.c (process_define_predicate): Adjust comment.  Validate
8779         the name, and call validate_exp to validate the expression.
8780         (mark_mode_tests, write_extract_subexp): Can assume correct input.
8781         (write_predicate_expr): Likewise.  NAME argument no longer necessary;
8782         all callers changed.
8783         (validate_exp, needs_variable, struct constraint_data)
8784         (constraints_by_letter_table, first_constraint, last_constraint_ptr)
8785         (FOR_ALL_CONSTRAINTS, generic_constraint_letters, const_int_constraints)
8786         (const_dbl_constraints, constraint_max_namelen)
8787         (have_register_constraints, have_memory_constraints)
8788         (have_address_constraints, have_address_constraints)
8789         (have_extra_constraints, have_const_int_constraints)
8790         (have_const_dbl_constraints, mangle, add_constraint)
8791         (process_define_constraint, process_define_register_constraint)
8792         (write_enum_constraint_num, write_lookup_constraint)
8793         (write_insn_constraint_len, write_regclass_for_constraint)
8794         (write_constraint_satisfied_p, write_insn_const_int_ok_for_constraint)
8795         (write_insn_extra_memory_constraint)
8796         (write_insn_extra_address_constraint)
8797         (write_satisfies_constraint_fns): New.
8798         (write_tm_preds_h): If we have new-style constraint definitions,
8799         prototype the functions generated from them, and define the
8800         old constraint interface (still used by generic code) in terms of
8801         those functions.
8802         (write_insn_preds_c): If we have new-style constraint definitions,
8803         generate all relevant functions from those definitions.
8804         (main): Handle define_constraint etc.
8805         * genoutput.c (struct constraint_data, indep_constraints)
8806         (mdep_constraint_letters, constraints_by_letter_table, note_constraint)
8807         (mdep_constraint_len): New data structures and functions, defined
8808         #ifdef USE_MD_CONSTRAINTS.
8809         (check_constraint_len): Don't define #ifdef USE_MD_CONSTRAINTS.
8810         (validate_insn_alternatives): If USE_MD_CONSTRAINTS is defined,
8811         use new logic to validate operand constraints against constraint
8812         definitions.
8813         (main): Process define_constraint etc. if USE_MD_CONSTRAINTS is
8814         defined.
8815         * defaults.h: If none of the old-style constraint macros are
8816         defined, define USE_MD_CONSTRAINTS; do not provide defaults for any
8817         old-style macros; and poison REG_CLASS_FROM_LETTER,
8818         CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, and
8819         EXTRA_CONSTRAINT.
8820         * recog.c (reg_fits_class_p): If cl is NO_REGS, return 0 immediately.
8821         * doc/md.texi: Document new constraint-definition mechanism and the
8822         C interface it provides.  Remove references to old mechanism
8823         elsewhere in the document.
8824         (Machine Constraints): Use pathnames relative to gcc directory,
8825         i.e. config/ARCH/FILE.  Change i386 section to refer to
8826         config/i386/predicates.md; update that section to match docstrings.
8827         * doc/tm.texi: Move all documentation of the old constraint-
8828         definition macros to their own section, clearly mark as obsolete.
8829
8830         * config/i386/predicates.md (R, q, Q, l, a, b, c, d, S, D, A, f, t)
8831         (u, y, x, Y, I, J, K, L, M, N, O, G, C, e, Z): New constraint
8832         definitions.
8833         * config/i386/i386.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P)
8834         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
8835         * config/i386/i386.md (*movdf_nointeger): Remove stray 'H' from
8836         constraint strings.
8837         (splits and peepholes): Use satisfies_constraint_*.
8838         * config/i386/i386.c (memory_address_length)
8839         (ix86_attr_length_immediate_default): Use satisfies_constraint_*.
8840
8841 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
8842
8843         * lambda-code.c (can_convert_to_perfect_nest): Allow any type of
8844         scalar operation to be put back into the loop.
8845
8846 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
8847
8848         PR other/26208
8849         * unwind-dw2.c (struct _Unwind_Context): Add signal_frame field.
8850         (extract_cie_info): Handle S flag in augmentation string.
8851         (execute_cfa_program): If context->signal_frame, execute also
8852         fs->pc == context->ra instructions.
8853         (uw_frame_state_for): If context->signal_frame, don't subtract one
8854         from context->ra to find FDE.
8855         (uw_update_context_1): Set context->signal_frame to
8856         fs->signal_frame.
8857         (_Unwind_GetIPInfo): New function.
8858         * unwind-dw2.h (_Unwind_FrameState): Add signal_frame field.
8859         * unwind-c.c (PERSONALITY_FUNCTION): Use _Unwind_GetIPInfo instead
8860         of _Unwind_GetIP.
8861         * unwind-sjlj.c (_Unwind_GetIPInfo): New function.
8862         * unwind-generic.h (_Unwind_GetIPInfo): New prototype.
8863         * unwind-compat.c (_Unwind_GetIPInfo): New function.
8864         * libgcc-std.ver (_Unwind_GetIPInfo): Export @@GCC_4.2.0.
8865         * config/ia64/unwind-ia64.c (_Unwind_GetIPInfo): New function.
8866         * config/arm/unwind-arm.h (_Unwind_GetIPInfo): Define.
8867         * config/i386/linux-unwind.h (x86_fallback_frame_state,
8868         x86_64_fallback_frame_state): Set fs->signal_frame.
8869         * config/rs6000/linux-unwind.h (ppc_fallback_frame_state): Likewise.
8870         (MD_FROB_UPDATE_CONTEXT): Define unconditionally.
8871         (frob_update_context): Likewise.  Workaround missing S flag in
8872         Linux 2.6.12 - 2.6.16 kernel vDSOs.
8873         * config/s390/linux-unwind.h (s390_fallback_frame_state): Likewise.
8874         Remove the psw_addr + 1 hack.
8875
8876 2006-02-27  Daniel Berlin  <dberlin@dberlin.org>
8877
8878         * tree-ssa-structalias.c (get_constraint_for): Move code to deal
8879         with aggregates here.
8880         (find_func_aliases): Remove code for &<aggregate> from here.
8881
8882 2006-02-26  Roger Sayle  <roger@eyesopen.com>
8883
8884         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (~X & C) eq/ne 0 as
8885         (X & C) ne/eq 0, where C is a single bit, i.e. a power of two.
8886         Fold both "((X & C) ^ C) eq/ne 0" and "((X ^ C) & C) eq/ne 0"
8887         as (X & C) ne/eq 0.
8888
8889 2006-02-26  Roger Sayle  <roger@eyesopen.com>
8890
8891         PR middle-end/19983
8892         * real.c (real_nan): Allow both 0x and 0X as hexadecimal prefixes.
8893
8894 2006-02-26  Zdenek Dvorak <dvorakz@suse.cz>
8895
8896         * opts.c (decode_options): Do not handle flag_strength_reduce.
8897         (common_handle_option): Handle OPT_floop_optimize, OPT_frerun_loop_opt
8898         and OPT_fstrength_reduce.
8899         * tree-ssa-loop.c (tree_ssa_loop_prefetch): Only test
8900         flag_prefetch_loop_arrays for being nonzero.
8901         * common.opt (floop-optimize, frerun-loop-opt): Resurrected as
8902         no-ops.
8903         (fprefetch-loop-arrays-rtl): Removed.
8904         (flag_prefetch_loop_arrays): Do not specify the value.
8905
8906         * doc/passes.texi: Update documentation of loop optimizer
8907         passes.
8908         * doc/invoke.texi (-fstrength-reduce, -fprefetch-loop-arrays-rtl,
8909         -frerun-loop-opt): Remove.
8910
8911 2006-02-26  Richard Guenther  <rguenther@suse.de>
8912
8913         PR tree-optimization/26421
8914         * tree-ssa-alias.c (find_used_portions): Don't treat parameters
8915         in function calls that are ADDR_EXPRs as using the whole structure.
8916
8917 2006-02-26  Steven Bosscher  <stevenb.gcc@gmail.com>
8918
8919         * common.opt (-floop-optimize, -frerun-loop-opt): Remove.
8920         * tree-pass.h (pass_loop_optimize): Remove.
8921         * passes.c (pass_loop_optimize): Never run it.
8922         * toplev.c (backend_init): Don't call init_loop.
8923         * opts.c (flag_loop_optimize_set): Remove.
8924         (decode_options): Never set flag_loop_optimize or flag_rerun_loop_opt.
8925         (common_handle_option) <OPT_floop_optimize>: Remove.  Don't disable
8926         the old RTL loop optimizer when profiling enabled.
8927         * predict.c (tree_estimate_probability): Always strip builtin_expect.
8928         * cfgcleanup.c (try_forward_edges): Don't avoid killing loop
8929         pre-headers for the sake of the old RTL loop optimizer.
8930         * Makefile.in: Remove all references to loop.o.
8931
8932         * doc/invoke.texi: Remove all references to -floop-optimize
8933         and -frerun-loop-opt.
8934
8935 2006-02-26  Zack Weinberg  <zackw@panix.com>
8936
8937         * doc/md.texi (Machine Constraints): Refer to all files with paths
8938         relative to gcc directory (i.e. config/CPU/file).  Add missing
8939         @table @code ... @end table to M32C subsection.
8940
8941 2006-02-26  Roger Sayle  <roger@eyesopen.com>
8942
8943         * fold-const.c (fold_binary) <BIT_XOR_EXPR>: Fold (X & 1) ^ 1 as
8944         (X & 1) == 0.
8945         <BIT_AND_EXPR>: Fold (X ^ 1) & 1 and ~X & 1 as (X & 1) == 0.
8946
8947 2006-02-26  Roger Sayle  <roger@eyesopen.com>
8948             James A. Morrison  <phython@gcc.gnu.org>
8949
8950         PR middle-end/21137
8951         * fold-const.c (fold_binary) <EQ_EXPR>: Fold ((X>>C1)&C2) eq/ne 0,
8952         when C2 is a power of two, as either (X&(C2<<C1)) eq/ne 0 if the
8953         new constant C2<<C1, or as (X<0) or (X,false) depending upon the
8954         signedness of the shift operation.
8955
8956 2006-02-26  Dorit Nuzman  <dorit@il.ibm.com>
8957
8958         PR tree-optimization/26359
8959         * tree-ssa-alias.c (new_type_alias): Set fields for new tag.
8960
8961 2006-02-25  Roger Sayle  <roger@eyesopen.com>
8962
8963         * simplify-rtx.c (simplify_relational_operation_1): Simplify
8964         (X^Y) == 0 as X == Y and (X^Y) != 0 as X != Y.  Simplify (X^Y) == Y
8965         as X == 0, and some symmetry related transformations.
8966         Simplify (X^C1) == C2 as X == (C1^C2).  Split long comment line.
8967
8968 2006-02-25  Roger Sayle  <roger@eyesopen.com>
8969
8970         PR middle-end/23673
8971         * fold-const.c (fold_binary) <EQ_EXPR>: Fold (X^Y) == 0 as X == Y
8972         and (X^Y) != 0 as X != Y.  Fold (X^Y) == Y as X == 0, and some
8973         symmetry related transformations.  Fold (X^C1) == C2 as
8974         X == (C1^C2).
8975
8976 2006-02-25  Juergen Weigert  <jw@suse.de>
8977         Richard Guenther  <rguenther@suse.de>
8978
8979         * scan-decls.c (scan_decls): Don't fetch new statement after CPP_EOF.
8980
8981 2006-02-24  Adam Nemet  <anemet@caviumnetworks.com>
8982
8983         * combine.c (gen_lowpart_or_truncate): Call
8984         simplify_gen_unary(TRUNCATE, ...) instead of gen_rtx_TRUNCATE.
8985
8986 2006-02-24  Diego Novillo  <dnovillo@redhat.com>
8987
8988         * doc/invoke.texi: Move -fopenmp description to "Options for
8989         Code Generation".
8990         Remove reference to -lgomp.
8991
8992 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
8993
8994         * doc/install.texi: Require GNU tar version 1.14.
8995
8996 2006-02-24  Geoffrey Keating  <geoffk@apple.com>
8997
8998         * doc/tm.texi (Run-time Target): Document C_COMMON_OVERRIDE_OPTIONS.
8999         * doc/invoke.texi (C++ Dialect Options): Document
9000         -fno-use-cxa-get-exception-ptr.
9001         * configure.ac: Define DEFAULT_USE_CXA_ATEXIT to 2 not 1.
9002         * configure: Regenerate.
9003         * c.opt (fuse-cxa-get-exception-ptr): New.
9004         * c-opts.c (c_common_handle_option): Handle
9005         OPT_fuse_cxa_get_exception_ptr.
9006         * c-common.c (flag_use_cxa_atexit): Update documentation.
9007         (flag_use_cxa_get_exception_ptr): New.
9008         * c-common.h (flag_use_cxa_get_exception_ptr): New.
9009         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Improve
9010         documentation.
9011         (C_COMMON_OVERRIDE_OPTIONS): New.
9012
9013 2006-02-24  Roger Sayle  <roger@eyesopen.com>
9014
9015         PR middle-end/24952
9016         * combine.c (try_combine): Explicitly check whether GET_CODE is
9017         a SET or a CLOBBER, instead on checking that it isn't a USE.
9018
9019 2006-02-24  Roger Sayle  <roger@eyesopen.com>
9020
9021         * fold-const.c (fold_comparison): New subroutine of fold_binary
9022         containing transformations common to both the equality and
9023         ordering relational operators, factored out of fold_binary.
9024         (fold_binary): Separate out the equality operators (EQ_EXPR
9025         and NE_EXPR) from the ordering operators (LT_EXPR, GT_EXPR,
9026         LE_EXPR and GE_EXPR), calling fold_comparison to perform the
9027         transformations common to both.
9028         (fold_div_compare): Fix latent bugs in the previously unreachable
9029         LT_EXPR and GE_EXPR cases.
9030
9031 2006-02-24  David Edelsohn  <edelsohn@gnu.org>
9032
9033         * config/rs6000/rs6000.c (rs6000_init_builtins): Change
9034         decl libname for clog to __clog on AIX.
9035
9036         * config/rs6000/xcoff.h (MAX_OFILE_ALIGNMENT): Define.
9037
9038 2006-02-24  Alan Modra  <amodra@bigpond.net.au>
9039
9040         PR target/26453
9041         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
9042         output traceback table for thunks.  Localise rs6000_stack_info call.
9043
9044 2006-02-23  Roger Sayle  <roger@eyesopen.com>
9045             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9046
9047         * gthr-posix.h (__gthrw): Fix typo in comment.
9048
9049 2006-02-23  Geoffrey Keating  <geoffk@apple.com>
9050
9051         * doc/cpp.texi (Character sets): Document that we do support
9052         input files to be in any character set.
9053
9054 2006-02-23  Jeff Law  <law@redhat.com>
9055
9056         * tree.h (PHI_ARG_NONZERO): Remove.
9057         * tree-phinodes.c (add_phi_arg): No longer initialize PHI_ARG_NONZERO.
9058         (remove_phi_arg_num): No longer copy PHI_ARG_NONZERO from the old
9059         node to the new node.
9060
9061         PR tree-optimization/26425
9062         * tree-vrp.c (vrp_visit_assignment): If the LHS's type has a NULL
9063         min/max, then assume its varying.
9064
9065 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
9066
9067         PR rtl-optimization/26316
9068         * rtlanal.c (enum may_trap_p_flags): New.
9069         (may_trap_p_1): Take flags instead of unaligned_mems argument.  Ignore
9070         MEM_NOTRAP_P if flags & MTP_AFTER_MOVE.
9071         (may_trap_p, may_trap_or_fault_p): Pass flags to may_trap_p_1.
9072         (may_trap_after_code_motion_p): New function.
9073         * loop-invariant.c (find_identical_invariants): Fix dump formating.
9074         (find_invariant_insn): Use may_trap_after_code_motion_p.
9075         * rtl.h (may_trap_after_code_motion_p): Declare.
9076
9077 2006-02-23  Zdenek Dvorak <dvorakz@suse.cz>
9078
9079         * emit-rtl.c (immed_double_const): Cleanup.
9080
9081 2006-02-23  Daniel Berlin  <dberlin@dberlin.org>
9082
9083         Fix PR tree-optimization/26376
9084         * tree-ssa-structalias.c (find_func_aliases): Use get_id_for_tree,
9085         remove assert.
9086
9087 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
9088
9089         PR middle-end/26412
9090         * gimplify.c (omp_add_variable): Guard variable size decl test with
9091         DECL_SIZE (decl) check.
9092
9093 2006-02-23  Richard Guenther  <rguenther@suse.de>
9094
9095         PR middle-end/26439
9096         * tree-ssa-structalias.c (find_func_aliases): Handle complex types
9097         like aggregate types.
9098
9099 2006-02-23  Jakub Jelinek  <jakub@redhat.com>
9100
9101         * configure.ac: Add --with{,out}-long-double-128 configure option.
9102         (TARGET_DEFAULT_LONG_DOUBLE_128): New test.
9103         * configure: Rebuilt.
9104         * config.in: Rebuilt.
9105         * doc/install.texi (Options specification): Document
9106         --with-long-double-128.
9107
9108         * config/rs6000/linux.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9109         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9110         * config/rs6000/linux64.h [TARGET_DEFAULT_LONG_DOUBLE_128]
9111         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define to 128.
9112
9113 2006-02-23  Aldy Hernandez  <aldyh@redhat.com>
9114
9115         * config/s390/s390.c (override_options): Handle
9116         TARGET_DEFAULT_LONG_DOUBLE_128.
9117
9118         * config/alpha/alpha.c (override_options): Handle
9119         TARGET_DEFAULT_LONG_DOUBLE_128.
9120
9121         * config/sparc/sparc.c (sparc_override_options): Handle
9122         TARGET_DEFAULT_LONG_DOUBLE_128.
9123
9124 2006-02-22  Daniel Jacobowitz  <dan@codesourcery.com>
9125
9126         * Makefile.in (stmp-fixinc): Use real-$(INSTALL_HEADERS_DIR).
9127         (real-install-headers-tar, real-install-headers-cpio)
9128         (real-install-headers-cp): New targets.
9129
9130 2006-02-22  Richard Sandiford  <richard@codesourcery.com>
9131
9132         * tree.h (variable_section): Delete.
9133         * varasm.c (variable_section): Delete.
9134
9135 2006-02-22  Paolo Bonzini  <bonzini@gnu.org>
9136
9137         * install.texi: Add notes on install.texi2html.
9138         (Building in parallel): Do not use footnotes.
9139
9140 2006-02-21  Aldy Hernandez  <aldyh@redhat.com>
9141
9142         PR libgomp/26234
9143         * doc/install.texi (Configuration): Document --disable-libgomp.
9144
9145 2006-02-21  Geoffrey Keating  <geoffk@apple.com>
9146
9147         * config/i386/darwin.h (DWARF2_FRAME_REG_OUT): New.
9148
9149 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
9150
9151         * config/i386/sse.md (vec_extractv2df_1_sse): New.
9152         (vec_extractv2df_0_sse): New.
9153
9154 2006-02-21  Alexandre Oliva  <aoliva@redhat.com>
9155
9156         * defaults.h (CFA_FRAME_BASE_OFFSET): Define.
9157         * config/ia64/ia64.h (CFA_FRAME_BASE_OFFSET): Override.
9158         * doc/tm.texi (CFA_FRAME_BASE_OFFSET): Document.
9159         * dwarf2out.c (build_cfa_loc): New offset parameter.  Add it
9160         to the result of the expression.
9161         (def_cfa_1): Adjust.
9162         (frame_pointer_cfa_offset): Rename to...
9163         (frame_pointer_fb_offset): ... this.  Adjust all uses.
9164         (convert_cfa_to_loc_list): Rename to...
9165         (convert_cfa_to_fb_loc_list): ... this.  New offset parameter.
9166         Pass it on to build_cfa_loc.
9167         (compute_frame_pointer_to_cfa_displacement): Rename to...
9168         (compute_frame_pointer_to_fb_displacement): ... this.  New
9169         offset parameter.  Use it in computation.
9170         (gen_subprogram_die): Compute cfa_fb_offset with the new
9171         macro, and use it to compute the fb loc list and the
9172         displacement.
9173
9174 2006-02-21  Bernd Schmidt  <bernd.schmidt@analog.com>
9175
9176         * config/bfin/predicates.md (cc_operand): Delete predicate.  All uses
9177         replaced with register_operand.
9178         * config/bfin/bfin.c (bfin_register_move_cost): Moving CC to any
9179         non-DREG is expensive.
9180         * config/bfin/bfin.h (FIXED_REGISTERS): CC isn't fixed.
9181         * config/bfin/bfin.md (movbi): Fix constraints and template for moves
9182         involving memory.
9183
9184 2006-02-21  Joseph S. Myers  <joseph@codesourcery.com>
9185
9186         * doc/install.texi2html: Use set -e.
9187
9188 2006-02-21  Richard Sandiford  <richard@codesourcery.com>
9189
9190         * doc/tm.texi (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9191         (ASM_OUTPUT_SHARED_LOCAL): Delete.
9192         * doc/invoke.texi (-fshared-data): Delete.
9193         * common.opt (fshared-data): Delete.
9194         * varasm.c (asm_emit_uninitialised): Remove flag_shared_data handling.
9195         (assemble_static_space): Remove #if 0 code.
9196         * system.h (ASM_OUTPUT_SHARED_COMMON, ASM_OUTPUT_SHARED_BSS)
9197         (ASM_OUTPUT_SHARED_LOCAL): Poison.
9198         * config/cris/cris.h: Remove FIXME.
9199
9200 2006-02-21  Paolo Bonzini  <bonzini@gnu.org>
9201
9202         * doc/sourcebuild.texi (Front End Directory): No more double-colon
9203         hooks.
9204
9205 2006-02-21  Jakub Jelinek  <jakub@redhat.com>
9206
9207         PR middle-end/26379
9208         * combine.c (simplify_shift_const_1): Disable nested shifts
9209         optimization for vector shifts.
9210
9211 2006-02-20  Roger Sayle  <roger@eyesopen.com>
9212
9213         PR tree-optimization/26361
9214         * tree-vrp.c (extract_range_from_unary_expr): Handle NEGATE_EXPR
9215         of unsigned integer types.
9216
9217 2006-02-20  Sebastian Pop  <pop@cri.ensmp.fr>
9218
9219         * tree-chrec.c (eq_evolutions_p): New.
9220         * tree-chrec.h (eq_evolutions_p): Declared.
9221         * tree-data-ref.c: Fix formatting.
9222         (datadep_stats, dependence_stats): New.
9223         (gcd): Moved...
9224         (print_direction_vector): New.
9225         (dump_data_dependence_relation): Use print_direction_vector.
9226         (object_analysis, create_data_ref): Handle COMPONENT_REF.
9227         (compute_subscript_distance): Static.
9228         (initialize_data_dependence_relation): Static.  Get the number
9229         of loops surrounding the references from the callers, and initialize
9230         DDR_SIZE_VECT to nb_loops.  Use both base_addr_differ_p and
9231         base_object_differ_p analyzers.
9232         (analyze_ziv_subscript, analyze_siv_subscript_cst_affine,
9233         compute_overlap_steps_for_affine_1_2,
9234         analyze_subscript_affine_affine): Count the classified dependences.
9235         Print a message when a test failed.
9236         (can_use_analyze_subscript_affine_affine): New.
9237         (analyze_siv_subscript): Compute the data dependences on symbolic
9238         scevs that verify can_use_analyze_subscript_affine_affine.
9239         (chrec_steps_divide_constant_p): Returns true, false, or unknown.
9240         (analyze_miv_subscript): Update use of chrec_steps_divide_constant_p.
9241         Handle symbolic scevs.
9242         (analyze_overlapping_iterations): Let symbolic affine scevs to be
9243         analyzed.
9244         (subscript_dependence_tester): Moved...
9245         (build_classic_dist_vector, build_classic_dir_vector): Don't use
9246         lambda_vector_clear on newly allocated vectors.  Get nb_loops from
9247         DDR_SIZE_VECT instead of getting it in parameter.
9248         (subscript_dependence_tester): ... here.  Take as a parameter
9249         loop_nest_depth.  Call build_classic_dist_vector and
9250         build_classic_dir_vector.
9251         (compute_affine_dependence): Update subscript_dependence_tester
9252         parameters.  Update datadep_stats counters.  Call
9253         compute_subscript_distance.
9254         (compute_self_dependence): Save the dist and dir vectors.  Call
9255         compute_subscript_distance.
9256         (ddr_p, DEF_VEC_P(ddr_p), DEF_VEC_ALLOC_P(ddr_p,heap)): Moved...
9257         (compute_all_dependences): Reorder parameters as they were before
9258         conversion to VEC.  Pass nb_loops and loop_nest_depth.  Don't call
9259         compute_subscript_distance.  Update the use of
9260         compute_affine_dependence and initialize_data_dependence_relation.
9261         (find_data_references_in_loop): Handle COMPONENT_REF.
9262         (compute_data_dependences_for_loop): Initialize dependence_stats.
9263         Don't call build_classic_dist_vector and build_classic_dir_vector.
9264         Update the parameters of initialize_data_dependence_relation and
9265         compute_all_dependences.  Print the statistics from datadep_stats.
9266         (analyze_all_data_dependences): Static.  Not used until the pass for
9267         checking the data dependences is contributed.
9268         * tree-data-ref.h (ddr_p, DEF_VEC_P(ddr_p),
9269         DEF_VEC_ALLOC_P(ddr_p,heap)): ... here.
9270         (initialize_data_dependence_relation, compute_affine_dependence,
9271         analyze_all_data_dependences, compute_subscript_distance): Removed.
9272         (print_direction_vector): New.
9273         * lambda.h (gcd): ... here.
9274         (lambda_vector_gcd): Moved here from gcd_vector.
9275         * lambda-code.c (gcd, gcd_vector): Removed.
9276         (lambda_compute_target_space): Use lambda_vector_gcd.  Fix formatting.
9277         * Makefile.in (tree-vect-patterns.o): Depends on TREE_DATA_REF_H.
9278
9279 2006-02-20  Diego Novillo  <dnovillo@redhat.com>
9280
9281         * ipa-type-escape.c: Tidy some comments and white space.
9282         * tree-ssa-operands.c: Likewise.
9283
9284 2006-02-20  Andrew Pinski  <pinskia@physics.uc.edu>
9285
9286         PR tree-opt/25879
9287         * tree-pretty-print.c (debug_tree_chain): Walk the chains.
9288         (dump_decl_name): Do not walk the decl tree chains.
9289         * tree-pass.h (TDF_CHAIN): Remove.
9290
9291 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
9292
9293         * Makefile.in (C): Remove
9294         (PROTO): Remove
9295         (.PHONY): Remove C and PROTO
9296
9297 2006-02-20  Roger Sayle  <roger@eyesopen.com>
9298
9299         PR middle-end/26236
9300         * doc/c-tree.texi (INTEGER_TYPE): Remove reference to the now
9301         deprecated CHAR_TYPE tree code.
9302
9303 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
9304
9305         * configure.ac (target_list): Add install-info, dvi, html.
9306         * configure: Regenerate.
9307
9308         * ada/Make-lang.in, cp/Make-lang.in, fortran/Make-lang.in,
9309         java/Make-lang.in, objc/Make-lang.in, objcp/Make-lang.in,
9310         treelang/Make-lang.in: Do not use double-colon rules.
9311
9312 2006-02-20  Daniel Berlin  <dberlin@dberlin.org>
9313
9314         * tree.h (struct tree_memory_tag): Add is_used_alone member.
9315         (TMT_USED_ALONE): New macro.
9316         * tree-pass.h (PROP_tmt_usage): New property.
9317         (TODO_update_tmt_usage): New todo.
9318         * tree-ssa-alias.c (updating_used_alone): New variable.
9319         (recalculate_used_alone): New function.
9320         (compute_may_aliases): Set updating_used_alone, call
9321         recalculate_used_alone.
9322         * tree-sra.c (pass_sra): Note that this pass destroys
9323         PROP_tmt_usage, and add TODO_update_tmt_usage.
9324         * tree-ssa-forwprop.c (pass_forwprop): Ditto.
9325         * tree-flow.h (updating_used_alone): Prototype.
9326         (recalculate_used_alone): Ditto.
9327         * passes.c (execute_todo): Add code to set updating_used_alone,
9328         and call recalculate.
9329         * tree-ssa-operands.c (add_virtual_operand): Only append bare def
9330         for clobber if used alone, and add assert to verify used_alone
9331         status.
9332
9333 2006-02-20  Angel Nunez Mencias  <anunez@de.ibm.com>
9334
9335         * config/s390/s390.c (legitimize_pic_address): Assertions checking
9336         for non tls symbols added.
9337         (legitimize_address): Do nothing for PLUS expressions if one of the
9338         addends is a tls symbol reference.
9339
9340 2006-02-20  Paolo Bonzini  <bonzini@gnu.org>
9341
9342         PR bootstrap/25476
9343
9344         * Makefile.in (LDFLAGS): Define from autoconf substitution.
9345
9346         * Makefile.in (BOOTSTRAPPING): New.
9347         (quickstrap): New definition if BOOTSTRAPPING=yes.
9348
9349         * Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
9350         * configure.ac: Substitute all_selected_languages with the languages
9351         that were configured.  For all the other variables except
9352         lang_specs_files, include all the languages in the tree.
9353         * configure: Regenerate.
9354
9355         * Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
9356         if there is one.  Run the commands to run fixincludes in the same
9357         subshell.
9358
9359         * doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
9360         * doc/install.texi: Document exact conventions for searching target tools.
9361         Document --with-build-time-tools.  Document toplevel bootstrap.  Document
9362         something more about building an Ada cross-compiler.  Don't list GNU Make
9363         requirements which affect all platforms.
9364
9365 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9366
9367         PR middle-end/19543
9368         * varasm.c (compare_constant) <INTEGER_CST>: Integer constants are
9369         only equivalent if the have both the same mode and precision.
9370
9371 2006-02-20  Ben Elliston  <bje@au.ibm.com>
9372
9373         * doc/tree-ssa.texi (Interfaces): Describe low vs. high GIMPLE.
9374
9375 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9376             Steven Bosscher  <stevenb.gcc@gmail.com>
9377
9378         * gcse.c (want_to_gcse_p): On STACK_REGS targets, look through
9379         constant pool references to identify stack mode constants.
9380         * rtlanal.c (constant_pool_constant_p): New predicate to check
9381         whether operand is a floating point constant in the pool.
9382         * rtl.h (constant_pool_constant_p): Prototype here.
9383         * loop.c (scan_loop): Avoid hoisting constants from the constant
9384         pool on STACK_REGS targets.
9385         (load_mems): Likewise.
9386         * loop-invariant.c (get_inv_cost): Make hoisting constant pool
9387         loads into x87 registers expensive in terms of register pressure.
9388
9389 2006-02-19  Roger Sayle  <roger@eyesopen.com>
9390
9391         * gthr-posix.h: On Tru64, map __gthr_foo as a weak reference to
9392         __foo and not foo when _PTHREAD_USE_MANGLED_NAMES_ is defined.
9393
9394 2006-02-19  David Edelsohn  <edelsohn@gnu.org>
9395
9396         * config/rs6000/xcoff.h (TARGET_ASM_OUTPUT_ANCHOR): Define.
9397         * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_anchor): Define.
9398
9399 2006-02-19  Daniel Berlin  <dberlin@dberlin.org>
9400
9401         * doc/invoke.texi: Document -fipa-pta.
9402         * common.opt: Add ipa-pta option.
9403         * tree-ssa-structalias.c (DONT_PROPAGATE_WITH_ANYTHING): Removed.
9404         (do_sd_constraint): Enable DONT_PROPAGATE_WITH_ANYTHING code.
9405         (do_ds_constraint): Ditto.
9406         (get_constraint_for): Only add to referenced_vars if
9407         referenced_vars exists.
9408         (insert_into_field_list): Rewrite to do this unsorted.
9409         (insert_into_field_list_sorted): Rename old insert_into_field_list
9410         to this.
9411         (create_function_info_for): Use insert_into_field_list_sorted.
9412         (create_variable_info_for): Rewrite so it uses unsorted version,
9413         since the field list is sorted.
9414         (intra_create_variable_infos): Only add to referenced_vars if
9415         referenced_vars exists.
9416         (ipa_pta_execute): Init heapvars, and delete when done.
9417         * passes.c (init_optimization_passes): Add call to pass_ipa_pta.
9418
9419 2006-02-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9420
9421         * doc/install.texi: Add missing `@samp'.
9422
9423 2006-02-18  Andrew Pinski <pinskia@physics.uc.edu>
9424
9425         * config/rs6000/darwin.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P):
9426         Use the arguments.
9427
9428 2006-02-18  Mark Wielaard  <mark@klomp.org>
9429
9430         * doc/contrib.texi (Contributors): Add classpath/libgcj hackers
9431         who added new 4.1 features, bug fixes and integration support.
9432
9433 2006-02-18  David Edelsohn  <edelsohn@gnu.org>
9434
9435         PR target/26350
9436         * config/rs6000/rs6000.md (extenddftf2): Force 0.0 to validized
9437         MEM for ABI_V4 pic.
9438
9439 2006-02-18  Richard Sandiford  <richard@codesourcery.com>
9440
9441         * cselib.c (cselib_init): Change RTX_SIZE to RTX_CODE_SIZE.
9442         * emit-rtl.c (copy_rtx_if_shared_1): Use shallow_copy_rtx.
9443         (copy_insn_1): Likewise.  Don't copy each field individually.
9444         Reindent.
9445         * read-rtl.c (apply_macro_to_rtx): Use RTX_CODE_SIZE instead
9446         of RTX_SIZE.
9447         * reload1.c (eliminate_regs): Use shallow_copy_rtx.
9448         * rtl.c (rtx_size): Rename variable to...
9449         (rtx_code_size): ...this.
9450         (rtx_size): New function.
9451         (rtx_alloc_stat): Use RTX_CODE_SIZE instead of RTX_SIZE.
9452         (copy_rtx): Use shallow_copy_rtx.  Don't copy each field individually.
9453         Reindent.
9454         (shallow_copy_rtx_stat): Use rtx_size instead of RTX_SIZE.
9455         * rtl.h (rtx_code_size): New variable.
9456         (rtx_size): Change from a variable to a function.
9457         (RTX_SIZE): Rename to...
9458         (RTX_CODE_SIZE): ...this.
9459
9460         PR target/9703
9461         PR tree-optimization/17106
9462         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Document.
9463         (Anchored Addresses): New section.
9464         * doc/invoke.texi (-fsection-anchors): Document.
9465         * doc/rtl.texi (SYMBOL_REF_IN_BLOCK_P, SYMBOL_FLAG_IN_BLOCK): Likewise.
9466         (SYMBOL_REF_ANCHOR_P, SYMBOL_FLAG_ANCHOR): Likewise.
9467         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): Likewise.
9468         * hooks.c (hook_bool_mode_rtx_false): New function.
9469         * hooks.h (hook_bool_mode_rtx_false): Declare.
9470         * gengtype.c (create_optional_field): New function.
9471         (adjust_field_rtx_def): Add the "block_sym" field for SYMBOL_REFs when
9472         SYMBOL_REF_IN_BLOCK_P is true.
9473         * target.h (output_anchor, use_blocks_for_constant_p): New hooks.
9474         (min_anchor_offset, max_anchor_offset): Likewise.
9475         (use_anchors_for_symbol_p): New hook.
9476         * toplev.c (compile_file): Call output_object_blocks.
9477         (target_supports_section_anchors_p): New function.
9478         (process_options): Check that -fsection-anchors is only used on
9479         targets that support it and when -funit-at-a-time is in effect.
9480         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Only create DECL_RTL
9481         if the decl doesn't have one.
9482         * dwarf2out.c: Remove instantiations of VEC(rtx,gc).
9483         * expr.c (emit_move_multi_word, emit_move_insn): Pass the result
9484         of force_const_mem through use_anchored_address.
9485         (expand_expr_constant): New function.
9486         (expand_expr_addr_expr_1): Call it.  Use the same modifier when
9487         calling expand_expr for INDIRECT_REF.
9488         (expand_expr_real_1): Pass DECL_RTL through use_anchored_address
9489         for all modifiers except EXPAND_INITIALIZER.  Use expand_expr_constant.
9490         * expr.h (use_anchored_address): Declare.
9491         * loop-unroll.c: Don't declare rtx vectors here.
9492         * explow.c: Include output.h.
9493         (validize_mem): Call use_anchored_address.
9494         (use_anchored_address): New function.
9495         * common.opt (-fsection-anchors): New switch.
9496         * varasm.c (object_block_htab, anchor_labelno): New variables.
9497         (hash_section, object_block_entry_eq, object_block_entry_hash)
9498         (use_object_blocks_p, get_block_for_section, create_block_symbol)
9499         (use_blocks_for_decl_p, change_symbol_section): New functions.
9500         (get_variable_section): New function, split out from assemble_variable.
9501         (make_decl_rtl): Create a block symbol if use_object_blocks_p and
9502         use_blocks_for_decl_p say so.  Use change_symbol_section if the
9503         symbol has already been created.
9504         (assemble_variable_contents): New function, split out from...
9505         (assemble_variable): ...here.  Don't output any code for
9506         block symbols; just pass them to place_block_symbol.
9507         Use get_variable_section and assemble_variable_contents.
9508         (get_constant_alignment, get_constant_section, get_constant_size): New
9509         functions, split from output_constant_def_contents.
9510         (build_constant_desc): Create a block symbol if use_object_blocks_p
9511         says so.  Or into SYMBOL_REF_FLAGS.
9512         (assemble_constant_contents): New function, split from...
9513         (output_constant_def_contents): ...here.  Don't output any code
9514         for block symbols; just pass them to place_section_symbol.
9515         Use get_constant_section and get_constant_alignment.
9516         (force_const_mem): Create a block symbol if use_object_blocks_p and
9517         use_blocks_for_constant_p say so.  Or into SYMBOL_REF_FLAGS.
9518         (output_constant_pool_1): Add an explicit alignment argument.
9519         Don't switch sections here.
9520         (output_constant_pool): Adjust call to output_constant_pool_1.
9521         Switch sections here instead.  Don't output anything for block symbols;
9522         just pass them to place_block_symbol.
9523         (init_varasm_once): Initialize object_block_htab.
9524         (default_encode_section_info): Keep the old SYMBOL_FLAG_IN_BLOCK.
9525         (default_asm_output_anchor, default_use_aenchors_for_symbol_p)
9526         (place_block_symbol, get_section_anchor, output_object_block)
9527         (output_object_block_htab, output_object_blocks): New functions.
9528         * target-def.h (TARGET_ASM_OUTPUT_ANCHOR): New macro.
9529         (TARGET_ASM_OUT): Include it.
9530         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): New macro.
9531         (TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET): New macros.
9532         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): New macro.
9533         (TARGET_INITIALIZER): Include them.
9534         * rtl.c (rtl_check_failed_block_symbol): New function.
9535         * rtl.h: Include vec.h.  Declare heap and gc rtx vectors.
9536         (block_symbol, object_block): New structures.
9537         (rtx_def): Add a block_symbol field to the union.
9538         (BLOCK_SYMBOL_CHECK): New macro.
9539         (rtl_check_failed_block_symbol): Declare.
9540         (SYMBOL_FLAG_IN_BLOCK, SYMBOL_FLAG_ANCHOR): New SYMBOL_REF flags.
9541         (SYMBOL_REF_IN_BLOCK_P, SYMBOL_REF_ANCHOR_P): New predicates.
9542         (SYMBOL_FLAG_MACH_DEP_SHIFT): Bump by 2.
9543         (SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET): New accessors.
9544         * output.h (output_section_symbols): Declare.
9545         (object_block): Name structure.
9546         (place_section_symbol, get_section_anchor, default_asm_output_anchor)
9547         (default_use_anchors_for_symbol_p): Declare.
9548         * Makefile.in (RTL_BASE_H): Add vec.h.
9549         (explow.o): Depend on output.h.
9550         * config/rs6000/rs6000.c (TARGET_MIN_ANCHOR_OFFSET): Override default.
9551         (TARGET_MAX_ANCHOR_OFFSET): Likewise.
9552         (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Likewise.
9553         (rs6000_use_blocks_for_constant_p): New function.
9554
9555 2006-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9556
9557         * doc/install.texi (hppa*-hp-hpux*): Update for 4.1.0.
9558
9559 2006-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
9560
9561         PR tree-opt/25680
9562         * tree-ssa-ccp.c (ccp_fold): Handle store CCP of REALPART_EXPR and
9563         IMAGPART_EXPR.
9564
9565 2006-02-18  Diego Novillo  <dnovillo@redhat.com>
9566
9567         * tree-flow.h (struct var_ann_d): Rename field is_alias_tag to
9568         is_aliased.
9569         Update all users.
9570
9571 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
9572
9573         PR middle-end/26334
9574         * stmt.c (decl_overlaps_hard_reg_set_p): Use DECL_HARD_REGISTER
9575         instead of DECL_REGISTER.
9576
9577 2006-02-18  Olivier Hainque  <hainque@adacore.com>
9578
9579         PR ada/13408
9580         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
9581
9582 2006-02-18  Joseph S. Myers  <joseph@codesourcery.com>
9583
9584         PR target/24837
9585         * config.gcc: Define UCLIBC_DEFAULT to 0 or 1.
9586         * opth-gen.awk: Handle Var and InverseMask together.
9587         * config/linux.opt (muclibc, mglibc): Use Var(linux_uclibc).
9588         * config/linux.h: Use #if not #ifdef for testing UCLIBC_DEFAULT.
9589         (TARGET_C99_FUNCTIONS): Test OPTION_GLIBC not TARGET_GLIBC.
9590         (CHOOSE_DYNAMIC_LINKER): Give an error for -mglibc and -muclibc
9591         used together.
9592         (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9593         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9594         * config/alpha/linux-elf.h (GLIBC_DYNAMIC_LINKER,
9595         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9596         LINUX_DYNAMIC_LINKER): Define.
9597         (ELF_DYNAMIC_LINKER): Define to LINUX_DYNAMIC_LINKER.
9598         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): Define to
9599         TARGET_GLIBC.
9600         * config/cris/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9601         (CRIS_LINK_SUBTARGET_SPEC): Pass a -dynamic-linker option.
9602         * config/frv/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9603         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9604         (TARGET_C99_FUNCTIONS): Don't define.
9605         * config/i386/linux.h (DYNAMIC_LINKER): Rename to
9606         GLIBC_DYNAMIC_LINKER.
9607         (SUBTARGET_EXTRA_SPECS): Use LINUX_DYNAMIC_LINKER.
9608         * config/i386/linux64.h (GLIBC_DYNAMIC_LINKER32,
9609         GLIBC_DYNAMIC_LINKER64): Define.
9610         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9611         LINUX_DYNAMIC_LINKER64.
9612         * config/ia64/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9613         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9614         * config/m32r/linux.h (GLIBC_DYNAMIC_LINKE): Define.
9615         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9616         * config/m68k/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9617         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9618         * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32,
9619         GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32,
9620         UCLIBC_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKERN32): Define.
9621         (LINK_SPEC): Use LINUX_DYNAMIC_LINKERN32, LINUX_DYNAMIC_LINKER64
9622         and LINUX_DYNAMIC_LINKER32.
9623         * config/mn10300/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9624         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9625         * config/pa/pa-linux.h (GLIBC_DYNAMIC_LINKER): Define.
9626         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9627         * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define to
9628         TARGET_GLIBC.
9629         * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
9630         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64,
9631         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
9632         CHOOSE_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9633         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9634         (LINK_OS_LINUX_SPEC32): Use LINUX_DYNAMIC_LINKER32.
9635         (LINK_OS_LINUX_SPEC64): Use LINUX_DYNAMIC_LINKER64.
9636         * config/rs6000/sysv4.h (GLIBC_DYNAMIC_LINKER,
9637         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9638         LINUX_DYNAMIC_LINKER): Define.
9639         (LINK_OS_LINUX_SPEC): Use LINUX_DYNAMIC_LINKE.
9640         * config/s390/linux.h (GLIBC_DYNAMIC_LINKER32,
9641         GLIBC_DYNAMIC_LINKER64): Define.
9642         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER32 and
9643         LINUX_DYNAMIC_LINKER64.
9644         * config/sh/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9645         (SUBTARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9646         * config/sparc/linux.h (GLIBC_DYNAMIC_LINKER,
9647         UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER,
9648         LINUX_DYNAMIC_LINKER): Define.
9649         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9650         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9651         * config/sparc/linux64.h (GLIBC_DYNAMIC_LINKER32,
9652         GLIBC_DYNAMIC_LINKER64, UCLIBC_DYNAMIC_LINKER32,
9653         UCLIBC_DYNAMIC_LINKER64, CHOOSE_DYNAMIC_LINKER,
9654         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64): Define.
9655         (LINK_ARCH32_SPEC): Use LINUX_DYNAMIC_LINKER32.
9656         (LINK_ARCH64_SPEC, LINK_SPEC): Use LINUX_DYNAMIC_LINKER64.
9657         (TARGET_C99_FUNCTIONS): Define to TARGET_GLIBC.
9658         * config/xtensa/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9659         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9660         * doc/invoke.texi (-muclibc): Remove caveat about supported
9661         targets.
9662
9663 2006-02-17  Grigory Zagorodnev <grigory_zagorodnev@linux.intel.com>
9664
9665         * doc/cpp.texi (__TIMESTAMP__): Document.
9666
9667 2006-02-17  Roger Sayle  <roger@eyesopen.com>
9668
9669         PR middle-end/25600
9670         * fold-const.c (fold_binary): Fold (X >> C) != 0 into X < 0 when
9671         C is one less than the width of X (and related transformations).
9672         * simplify-rtx.c (simplify_unary_operation_1): Transform
9673         (neg (lt x 0)) into either (ashiftrt X C) or (lshiftrt X C)
9674         depending on STORE_FLAG_VALUE, were C is one less then the
9675         width of X.
9676
9677 2006-02-17  Daniel Berlin  <dberlin@dberlin.org>
9678
9679         Fix PR tree-optimization/26341
9680         * tree-ssa-operands.c (add_virtual_operand): Remove assert
9681         about NAME_MEMORY_TAG's.
9682
9683 2006-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9684
9685         PR target/26255
9686         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
9687         with hardware float support, and software float support.  Add fcpy
9688         alternative to hardware patterns.  Add alternatives to copy between
9689         general and floating-point registers to the 32-bit pattern.
9690         * pa.c (pa_secondary_reload): Don't abort if reload tries to find a
9691         secondary reload to load a QI or HI mode constant into a floating
9692         point register.
9693         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
9694         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
9695
9696 2006-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
9697
9698         PR target/26272
9699         * config/rs6000/darwin.md (load_macho_picbase_si): Add
9700         pc to the pattern.
9701         (load_macho_picbase_di): Likewise.
9702
9703 2006-02-16  Jeff Law  <law@redhat.com>
9704
9705         * tree-vrp.c (set_value_range_to_nonnegative): New function.
9706         (vrp_expr_computes_nonnegative, ssa_name_nonnegative_p): Likewise.
9707         (ssa_name_nonzero_p): Likewise.
9708         (get_value_range): Return NULL if VRP is not running.
9709         (extract_range_from_expr): Fallback to tree_expr_XXX_p if
9710         VRP routines do not discover a range.
9711         (vrp_finalize): Clear VR_VALUE to indicate VRP is not running.
9712         * tree.h (ssa_name_nonzero_p, ssa_name_nonnegative_p): Prototype.
9713         * fold-const.c (tree_expr_nonzero_p): For SSA_NAMEs, query VRP.
9714         (tree_expr_nonnegative_p): Similarly.
9715         * tree-ssa-dom.c (nonzero_vars, nonzero_vars_stack): Remove.
9716         (restore_nonzero_vars_to_original_value): Remove.
9717         (unsafe_associative_fp_binop): Remove.
9718         (tree_ssa_dominator_optimize): Remove initialization and
9719         finalization of nonzero_vars and nonzero_vars_stack.
9720         (dom_opt_initialize_block): No longer push marker on
9721         nonzero_vars_stack.
9722         (dom_opt_finalize_block): No longer call
9723         restore_nonzero_vars_to_original_value.
9724         (record_equivalences_from_phis): No longer look for
9725         nonzero PHI arguments.
9726         (cprop_into_successor_phis): No longer propagate nonzero
9727         property into PHI arguments.  Lose unused argument.  Caller
9728         updated.
9729         (record_equivalences_from_stmt): No longer record nonzero
9730         values for SSA_NAMEs.
9731         (lookup_avail_expr): No longer use nonzero_vars.
9732
9733         * stor-layout.c (set_sizetype): Set TYPE_MAX_VALUE properly
9734         for sizetype when sizetype is unsigned.
9735
9736 2006-02-16  Denis Nagorny <denis_nagorny@linux.intel.com>
9737
9738         PR rtl-optimization/25603
9739         * reload.c (reg_inc_found_and_valid_p): New. Check REG_INC note.
9740         (regno_clobbered_p): Use it. Reusing SETS argument for REG_INC case.
9741         * reload1.c (choose_reload_regs): Added call of regno_clobbered_p
9742         with new meaning of SETS.
9743
9744 2006-02-16  Joseph S. Myers  <joseph@codesourcery.com>
9745
9746         PR target/20353
9747         PR target/24578
9748         PR target/24837
9749         * config/linux.opt: New file.
9750         * config/linux.h (CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
9751         LINUX_DYNAMIC_LINKER): Define.
9752         (TARGET_C99_FUNCTIONS): Define depending on TARGET_GLIBC.
9753         * config.gcc (*-*-linux*): Define extra_options.
9754         (*-*-*uclibc*): Define UCLIBC_DEFAULT.
9755         (arm*-*-linux-gnueabi): Change to arm*-*-linux-*eabi.
9756         * config/arm/linux-eabi.h (LINUX_TARGET_INTERPRETER): Change to
9757         GLIBC_DYNAMIC_LINKER.
9758         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): Likewise.
9759         (LINUX_TARGET_LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9760         * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Define.
9761         (LINK_SPEC): Use LINUX_DYNAMIC_LINKER.
9762         * doc/invoke.texi (GNU/Linux Options): New section.
9763
9764 2006-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
9765
9766         * config/sparc/sparc.md (setjmp): Rewrite.
9767         (setjmp_32): Delete.
9768         (setjmp_64): Likewise.
9769
9770 2006-02-16  Daniel Berlin <dberlin@dberlin.org>
9771
9772         * tree-ssa-operands.c (access_can_touch_variable): Fix typo in
9773          previous change.
9774
9775 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
9776
9777         * loop-invariant.c (invariant_for_use, check_dependencies): Fail for
9778         read-write uses.
9779
9780 2006-02-16  Zdenek Dvorak <dvorakz@suse.cz>
9781
9782         PR rtl-optimization/26296
9783         * Makefile.in (loop-invariant.c): Add except.h dependency.
9784         * loop-invariant.c: Include except.h.
9785         (find_invariant_insn): Ignore insns satisfying can_throw_internal.
9786
9787 2005-02-16  Paul Brook  <paul@codesourcery.com>
9788
9789         * reload1.c (emit_reload_insns): Invalidate dead input registers used
9790         for reloads.
9791
9792 2006-02-16  Bernd Schmidt  <bernd.schmidt@analog.com>
9793
9794         PR rtl-optimization/25636
9795         * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test
9796         when deciding whether an insn is an initializing insn.
9797
9798 2006-02-15 Daniel Berlin  <dberlin@dberlin.org>
9799
9800         * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling.
9801         (tree_code_size): Ditto.
9802         * tree.h (struct tree_memory_tag): Remove parent_var.
9803         (struct tree_struct_field_tag): New.
9804         (SFT_OFFSET): New.
9805         (SFT_SIZE): New.
9806         (union tree_node): Add sft member.
9807         * tree-ssa-alias.c (get_tmt_for): Don't handle TYPE_READONLY
9808         specially here.
9809         (create_sft): Add size and offset argument, set SFT_OFFSET and
9810         SFT_SIZE.
9811         (create_overlap_variables_for): Update for SFT_OFFSET/SFT_SIZE.
9812         * treestruct.def: Add TS_STRUCT_FIELD_TAG.
9813         * tree-flow-inline.h (get_subvar_at): Update for
9814         SFT_OFFSET/SFT_SIZE.
9815         (var_can_have_subvars): Ditto.
9816         (overlap_subvar): Ditto.
9817         * print-tree.c (print_node): Print out interesting things for
9818         SFT's.
9819         * tree-flow.h (struct subvar): Remove offset and size members.
9820         * tree-ssa-operands.c (get_expr_operands): Update for
9821         get_indirect_ref_operands changes.
9822         (get_indirect_ref_operands): Call add_virtual_operand instead of
9823         add_stmt_operand.  Only recurse on base var if requested.
9824         (access_can_touch_variable): New function.
9825         (add_stmt_operand): Split virtual operand handling into ...
9826         (add_virtual_operand): Here.  Add offset, size, and for_clobber
9827         arguments.  Prune alias sets.
9828         (add_call_clobber_ops): Call add_virtual_operand.
9829
9830 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
9831
9832         PR middle-end/26300
9833         * combine.c (make_extraction): Bail out if ORIG_POS is negative.
9834
9835         * tree.h (struct tree_omp_clause): Use OMP_CLAUSE_CODE rather
9836         than TREE_CODE as index into omp_clause_num_ops array.
9837
9838 2006-02-15  Uttam Pawar  <uttamp@us.ibm.com>
9839
9840         PR rtl-optimization/26184
9841         * modulo-sched.c (generate_reg_moves): Free bitmap vector
9842         uses_of_defs.
9843         * modulo-sched.c (sms_schedule): Free g_arr pointer.
9844         * modulo-sched.c (sms_schedule_by_order): Free bitmap pointers
9845         must_precede, must_follow and tobe_scheduled.
9846
9847         PR other/26147
9848         * opts.c (common_handle_option): Free new_option pointer.
9849         * df-core.c (df_analyze): Free postorder pointer.
9850
9851 2006-02-15  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
9852
9853         * Makefile.in: Fix the examples about the use of stamps
9854
9855 2006-02-15  Michael Matz  <matz@suse.de>
9856
9857         PR middle-end/22275
9858
9859         * stor-layout.c (layout_decl): Zero-width bitfields aren't
9860         influenced by maximum_field_alignment or DECL_PACKED.
9861         (update_alignment_for_field): Ditto.
9862         (place_field): Ditto.
9863         * doc/extend.texi (<#pragma pack>, <Type Attributes>): Document
9864         this behaviour.
9865
9866 2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
9867
9868         * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
9869         (debug_flow_info): Pass it.
9870         * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
9871         * bb-reorder.c (reorder_basic_blocks): Likewise.
9872         * cfgcleanup.c (rest_of_handle_jump2): Likewise.
9873         * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
9874         * flow.c (life_analysis, recompute_reg_usage): Likewise.
9875         * gcse.c (gcse_main, bypass_jumps): Likewise.
9876         * ifcvt.c (rest_of_handle_if_conversion): Likewise.
9877         * local-alloc.c (rest_of_handle_local_alloc): Likewise.
9878         * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
9879         * profile.c (compute_branch_probabilities, branch_prob): Likewise.
9880         * rtl.h (dump_flow_info): Adjust prototype.
9881         * tracer.c (rest_of_handle_tracer, tracer): Likewise.
9882         * var-tracking.c (variable_tracking_main): Likewise.
9883         * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
9884         * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
9885         options.
9886
9887 2006-02-15  Marcin Dalecki <martin@dalecki.de>
9888
9889         * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
9890         construction.
9891
9892 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
9893
9894         PR tree-optimization/26209
9895         * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
9896         * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
9897         eh edges.
9898         * tree-cfg.c (replace_uses_by): Do not alter cfg.
9899
9900 2006-02-14  Roger Sayle  <roger@eyesopen.com>
9901
9902         PR middle-end/23670
9903         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
9904         (X,Y) and the corresponding symmetry related transformations.
9905         (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
9906         (X,Y) and its symmetry related transformations.
9907
9908 2006-02-14  Roger Sayle  <roger@eyesopen.com>
9909
9910         * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
9911         and GEU.
9912
9913 2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
9914
9915         * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
9916
9917 2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9918
9919         PR bootstrap/26053
9920         * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
9921         support COMDAT group.
9922         * configure: Regenerate.
9923
9924 2006-02-14  Roger Sayle  <roger@eyesopen.com>
9925
9926         PR middle-end/26279
9927         PR middle-end/26280
9928         PR middle-end/26283
9929         * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
9930
9931 2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
9932
9933         Fix PR tree-optimization/26260
9934
9935         * doc/invoke.texi (max-fields-for-field-sensitive): Document
9936         param.
9937         * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
9938         * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
9939         * tree-ssa-structalias.c (create_variable_info_for): Use
9940         MAX_FIELDS_FOR_FIELD_SENSITIVE.
9941
9942 2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
9943
9944         * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
9945         Document.
9946         * tree-ssa-loop-niter.c (number_of_iterations_ne,
9947         number_of_iterations_lt, number_of_iterations_cond): Remember the shape
9948         of the ending condition.
9949         * tree-ssa-loop-manip.c: Include params.h.
9950         (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
9951         tree_unroll_loop): New functions.
9952         * tree-pass.h (pass_loop_prefetch): Declare.
9953         * loop.c (rest_of_handle_loop_optimize): Test for
9954         -fprefetch-loop-arrays-rtl.
9955         * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
9956         * timevar.def (TV_TREE_PREFETCH): New timevar.
9957         * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
9958         pass_loop_prefetch): New.
9959         * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
9960         (cleanup_tree_cfg_loop): Call scev_reset.
9961         * common.opt (fprefetch-loop-arrays-rtl): Add.
9962         * tree-ssa-loop-prefetch.c: New file.
9963         * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
9964         (new_temp_expr_table): Initialize expr_vars.
9965         (free_temp_expr_table): Cleanup expr_vars.
9966         (check_replaceable, find_replaceable_in_bb): Prevent accumulating
9967         expressions from being merged into one.
9968         * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
9969         (struct tree_niter_desc): Add control, bound and cmp fields.
9970         (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
9971         Declare.
9972         * Makefile.in (tree-ssa-loop-prefetch.o): Add.
9973         (tree-cfgcleanup.o): Add SCEV_H dependency.
9974         (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
9975         * passes.c (init_optimization_passes): Add pass_loop_prefetch.
9976
9977 2006-02-14  Richard Guenther  <rguenther@suse.de>
9978
9979         PR tree-optimization/26258
9980         * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
9981         in PHI argument processing.
9982
9983 2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
9984
9985         * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
9986         new expression in the requested machine mode.
9987
9988 2006-02-13  Roger Sayle  <roger@eyesopen.com>
9989
9990         * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
9991         directly, instead let do_compare_rtx_and_jump handle this for us.
9992         * expr.c (expand_expr_real_1): Likewise.
9993         * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
9994         before do_jump_by_parts_greater.
9995         (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
9996         * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
9997
9998 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9999
10000         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
10001
10002 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
10003
10004         PR rtl-optimization/26235
10005         * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
10006         (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
10007         format.
10008
10009 2006-02-13  Jeff Law  <law@redhat.com>
10010
10011         * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
10012         TRUTH_XOR_EPR.
10013
10014 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
10015
10016         PR middle-end/26092
10017         * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
10018         twice if decl is a builtin.  When trying again, call get_callee_fndecl
10019         first to verify it is still a builtin.
10020
10021 2006-02-13  Geoffrey Keating  <geoffk@apple.com>
10022
10023         * dwarf2out.c (base_type_die): Don't add AT_name here.
10024         (subrange_type_die): Don't add AT_name here.
10025         (modified_type_die): Rearrange code flow.  Do add AT_name here.
10026
10027 2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
10028
10029         PR rtl-optimization/26247
10030         PR rtl-optimization/26248
10031         * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
10032
10033 2006-02-13  Richard Sandiford  <richard@codesourcery.com>
10034
10035         * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
10036         * config/fixtfdi.c: Likewise.
10037         * config/fixunstfdi.c: Likewise.
10038         * config/floatditf.c: Likewise.
10039
10040 2006-02-13  Roger Sayle  <roger@eyesopen.com>
10041
10042         PR middle-end/24427
10043         * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
10044         into (X,C2) if C1 is a subset of the bits of C2.  Transform
10045         (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
10046         (X&(C1&~C2))|C2.
10047         <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
10048
10049 2006-02-13  Josh Conner  <jconner@apple.com>
10050
10051         PR target/25376
10052         * varasm.c (function_section): Check for section name before
10053         calling select_section on targets that define
10054         USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
10055         unlikely_text_section instead of hot_function_section if
10056         first_function_block_is_cold.
10057
10058 2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
10059
10060         PR middle-end/25335
10061         * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
10062
10063 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10064
10065         PR rtl-optimization/26222
10066         * function.c (assign_stack_temp_for_type): Do not reuse stack slots
10067         after tree->rtl expansion.
10068         * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
10069         before passing it to emit_move_insn.
10070
10071 2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10072
10073         * doc/invoke.texi (-Write-strings): Document that it is enabled by
10074         default.
10075         * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
10076         Clarify documentation.
10077         * c-common.h (warn_write_strings): Remove.
10078         * c-common.c (warn_write_strings): Likewise.
10079         * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
10080         default for C++.
10081
10082 2006-02-12  Roger Sayle  <roger@eyesopen.com>
10083
10084         PR middle-end/25724
10085         * dojump.c (do_jump): Call do_compare_rtx_and_jump.
10086         (do_jump_parts_zero_rtx): New function renamed from
10087         do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
10088         (do_jump_parts_equality_rtx): New function split out from
10089         do_jump_parts_equality.  Old implementation renamed as above.
10090         Call do_jump_parts_zero_rtx if either operand is zero.
10091         (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
10092         do all of the heavy lifting.
10093         (do_compare_rtx_and_jump): Handle multi-word comparisons by
10094         calling either do_jump_by_parts_greater_rtx or
10095         do_jump_by_parts_equality_rtx.
10096         * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
10097         * expmed.c (do_cmp_and_jump): Now multi-word optimization has
10098         moved to do_compare_rtx_and_jump, call it directly.
10099         * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
10100         mode argument.  Call do_compare_rtx_and_jump.
10101         (emit_case_nodes): Update calls to do_jump_if_equal.
10102
10103 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10104
10105         PR rtl-optimization/26225
10106         * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
10107
10108 2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
10109
10110         PR rtl-optimization/26232
10111         * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
10112
10113 2006-02-11  Jason Merrill  <jason@redhat.com>
10114
10115         PR tree-opt/24365
10116         * tree-inline.c (declare_return_variable): Just don't use the
10117         modify target if it's a gimple complex reg and the return slot
10118         isn't.
10119
10120 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10121
10122         * doc/contrib.texi: Update my entry.
10123
10124 2006-02-10  Geoffrey Keating  <geoffk@apple.com>
10125
10126         * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
10127
10128 2006-02-10  Diego Novillo  <dnovillo@redhat.com>
10129
10130         * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
10131         expensive.
10132
10133 2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
10134
10135         * doc/invoke.texi (-floop-optimize2): Removed.
10136         * toplev.c (process_options): Remove handling of flag_loop_optimize2.
10137         * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
10138         Test flag_branch_on_count_reg only if HAVE_doloop_end.
10139         * common.opt (floop-optimize2): Removed.
10140         (fmove-loop-invariants): Enabled by default.
10141
10142 2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
10143
10144         * tree-if-conv.c (combine_blocks): Free the result of
10145         get_loop_exit_edges.
10146
10147 2006-02-10  Jeff Law  <law@redhat.com>
10148
10149         * fold-const.c (tree_expr_nonzero_p): Fix thinko.
10150
10151         PR tree-optimization/26213
10152         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
10153         loop trying to follow SSA_NAME_VALUE chains.
10154
10155 2006-02-10  Richard Guenther  <rguenther@suse.de>
10156
10157         * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
10158         deal with structures that end in implicitly variable sized arrays.
10159
10160 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
10161
10162         PR rtl-optimization/24762
10163         * df-scan.c (df_bb_refs_record): Record correct registers defined on
10164         eh edges.
10165
10166 2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
10167
10168         * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
10169         (struct ivopts_data): Add regs_used field.
10170         (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
10171         (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
10172         instead of loop_data->regs_used;
10173         (free_loop_data): Do not free aux fields for loops.
10174         (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
10175         and tree_ssa_iv_optimize_finalize.
10176
10177 2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
10178
10179         * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
10180
10181 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
10182
10183         PR target/26141
10184         * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
10185         computing the effective result type.
10186
10187 2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
10188
10189         PR inline-asm/16194
10190         * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
10191         (tree_overlaps_hard_reg_set): Declare.
10192         * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
10193         type and signature to match function type expected by walk_tree.
10194         (tree_overlaps_hard_reg_set): New function.
10195         (decl_conflicts_with_clobbers_p): Rename to:
10196         (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
10197         Use tree_overlaps_hard_reg_set.  Changed caller.
10198         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
10199         decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
10200         * cris.c (cris_md_asm_clobbers): Likewise.
10201
10202 2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
10203
10204         * reload1.c (emit_input_reload_insns): Delete code that tries to
10205         inherit using find_equiv_reg.
10206
10207 2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10208
10209         * c-common.h (flag_const_strings): Don't declare.
10210         * c-common.c (flag_const_strings): Remove.
10211         * c.opt (fconst_strings): Remove.
10212         * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
10213         <OPT_Wwrite_strings>: Don't set flag_const_strings.
10214         (c_common_init_options): Don't set flag_const_strings.
10215         * doc/invoke.texi (-fno-const-strings): Remove documentation.
10216
10217 2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
10218
10219         * arm.md (tlobits_cbranch): New pattern.
10220         * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
10221         testing a single bit.
10222
10223 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10224
10225         PR tree-opt/26179
10226         * tree-ssa-pre.c (create_component_ref_by_pieces):
10227         Handle RETURN_DECL like VAR_DECL.
10228
10229 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10230
10231         PR middle-end/26134
10232         * fold-const.c (fold_indirect_ref_1): Fold
10233         "*(foo *)&complexfoo" to "__real__ complexfoo"
10234         and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
10235
10236 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
10237
10238         * tree-flow-inline.h (var_can_have_subvars):
10239         Volatile variables should not have subvariables.
10240
10241 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
10242
10243         PR 26180
10244         * tree-vrp.c (vrp_int_const_binop): Detect overflow when
10245         multiplying unsigned values.
10246         Tidy comments.
10247
10248 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
10249
10250         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
10251
10252 2006-02-08  Jason Merrill  <jason@redhat.com>
10253
10254         PR c++/25979
10255         * tree.def: Elaborate on difference from MODIFY_EXPR.
10256         * doc/c-tree.texi (INIT_EXPR): Likewise.
10257         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
10258         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
10259         (gimplify_target_expr): Likewise.
10260         (gimplify_cond_expr): Remove target handling.
10261         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
10262         (gimplify_expr): Clobber it here.
10263         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
10264         Do return slot optimization if we have an INIT_EXPR.
10265
10266         PR tree-opt/24365
10267         * tree-inline.c (declare_return_variable): Also clear
10268         DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
10269
10270         PR c++/16405
10271         * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
10272
10273         PR middle-end/22439
10274         * gimplify.c (gimplify_one_sizepos): Fix typo.
10275
10276 2006-02-08  Jeff Law  <law@redhat.com>
10277
10278         PR tree-optimization/21417
10279         * tree-ssa-threadedge.c (thread_across_edge): Reject threading
10280         across a backedge if the control statement at the end of the
10281         block is data dependent on other statements in the same block.
10282         (record_temporary_equivalences_from_stmts): Remove over-conservative
10283         test for threading across backedges.
10284
10285         * tree-ssa-dce.c (remove_dead_statement): When removing a dead
10286         control statement, handle all three special cases in the same
10287         manner as they all have the same desired solution.  No longer
10288         special case edge flag updating when the post dominator is
10289         the exit block.
10290
10291 2006-02-08  Roger Sayle  <roger@eyesopen.com>
10292
10293         * tree.def (CHAR_TYPE): Remove.
10294         * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
10295         * dwarf2out.c (base_type_die, is_base_type): Likewise.
10296         (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
10297         (gen_string_type_die): Delete unreachable function.
10298
10299         * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
10300         * tree.c (build_int_cst_wide, type_contains_placeholder_1,
10301         type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
10302         * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
10303         * builtins.c (type_to_class): Likewise.
10304         * fold-const.c (fold_convert, build_range_check,
10305         merge_ranges): Likewise.
10306         * expr.c (count_type_elements): Likewise.
10307         * c-pretty-print.c (pp_c_type_specifier): Likewise.
10308         * stor-layout.c (layout_type): Likewise.
10309         * ipa-type-escape.c (type_to_consider): Likewise.
10310         * gimplify.c (omp_firstprivatize_type_sizes,
10311         gimplify_type_sizes): Likewise.
10312         * explow.c (promote_mode): Likewise.
10313         * tree-sra.c (is_sra_scalar_type): Likewise.
10314         * varasm.c (output_constant): Likewise.
10315         * tree-inline.c (remap_type_1): Likewise.
10316         * convert.c (convert_to_pointer, convert_to_real,
10317         convert_to_integer, convert_to_complex): Likewise.
10318
10319 2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
10320
10321         * df-scan.c (df_def_record_1): A set destination may
10322         be a parallel regardless of mode.
10323
10324 2006-02-08  Roger Sayle  <roger@eyesopen.com>
10325
10326         PR target/22209
10327         * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
10328         * config/mips/_tilib.c: Remove.
10329         * config/fixtfdi.c: New libgcc source file.
10330         * config/fixunstfdi.c: New source file.
10331         * config/floatditf.c: New source file.
10332         * config/floatunditf.c: New souce file.
10333         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
10334         files above instead of config/mips/_tilib.c.
10335         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
10336
10337 2006-02-08  Jeff Law  <law@redhat.com>
10338
10339         PR tree-optimization/26169
10340         * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
10341         threading jumps.
10342
10343 2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
10344
10345         * df.h (DF_REG_SIZE): Return the length of the initialized
10346         part of the array.
10347
10348 2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
10349
10350         * config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
10351         __muldf3): Return a correctly signed zero.
10352
10353 2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
10354
10355         * passes.c (register_one_dump_file): Accept the current properties
10356         instead of pass number.  Adjust call to dump_register.  Remove
10357         duplicated code.
10358         (register_dump_files): Now a wrapper around...
10359         (register_dump_files_1): ... this one.  Do not modify the pass
10360         structure.
10361         (next_pass_1): Cosmetic fix.
10362         (execute_todo): Keep second parameter only.  Use curr_properties
10363         instead of fetching it from the pass structure.  Check and set
10364         last_verified.
10365         (execute_one_pass): Handle TODO_set_props.  Use curr_properties
10366         instead of fetching it from the pass structure.  Fix calls to
10367         execute_todo.  Update curr_properties and initialize .vcg RTL dump
10368         after running the pass.  Reset last_verified.
10369         * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
10370         at the beginning.
10371         (FIRST_AUTO_NUMBERED_DUMP): New.
10372         (dump_register): Remove "num" parameter, assign it within the
10373         function.
10374         (get_dump_file_name): Modify template for dumps.
10375         * tree-dump.h (dump_register): Adjust prototype.
10376         * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
10377         (PROP_trees): Add PROP_gimple_lomp.
10378         (TODO_set_props): New.
10379         * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
10380         * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
10381         * cfgexpand.c (pass_expand): Destroy PROP_trees.
10382
10383 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
10384
10385         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
10386         (sparc64-*-linux*): Likewise.
10387         * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
10388         * config/sparc/t-linux: New file.
10389         * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
10390         __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
10391         (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
10392         -m32 -mlong-double-128.
10393
10394         * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
10395         * config/alpha/t-linux: New file.
10396         * config/alpha/libgcc-alpha-ldbl.ver: New file.
10397
10398         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
10399         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
10400         (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
10401         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
10402         __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
10403         (CPP_ARCH32_SPEC): Remove.
10404
10405 2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
10406
10407         PR tree-optimization/26145
10408         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
10409         bbs pointer.
10410
10411 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10412
10413         PR target/26109
10414         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
10415         >= 240000 when generating code for SOM runtime.
10416         (output_indirect_call): Don't use "b,l" instruction for indirect calls
10417         to $$dyncall when generating code for SOM runtime..
10418
10419 2006-02-07  Dirk Mueller  <dmueller@suse.com>
10420
10421         PR c++/18150
10422         * doc/invoke.texi (-Wsequence-point): Update documentation
10423         that -Wsequence-point is implemented for C++ as well.
10424
10425 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10426
10427         * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
10428         * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
10429         (LIB_SPEC): Likewise.
10430         * doc/invoke.texi (SPARC options): Document -pthread.
10431
10432 2006-02-07  Geoffrey Keating  <geoffk@apple.com>
10433
10434         * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
10435         PIC addresses.
10436
10437 2006-02-07  Roger Sayle  <roger@eyesopen.com>
10438
10439         * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
10440         Correct comment describing BOOLEAN_TYPE.
10441
10442 2006-02-07  Dirk Mueller  <dmueller@suse.com>
10443
10444         * c.opt: C++ frontend supports -Wdiv-by-zero.
10445         * c-opts.c (c_common_handle_option): Remove dead case.
10446
10447 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10448
10449         * configure.ac (TLS assembler check): Do not enable TLS by
10450         default on SPARC/Solaris before version 10.
10451         * configure: Regenerate.
10452
10453 2006-02-07  David Edelsohn  <edelsohn@gnu.org>
10454
10455         * doc/invoke.texi (xl-compat): Document conversion and support
10456         routine names.
10457
10458 2006-02-07  Jeff Law  <law@redhat.com>
10459
10460         * tree-vrp.c (find_conditional_asserts): Update comments.
10461         (simplify_stmt_for_jump_threading): New.
10462         (identify_jump_threads, finalize_jump_threads): New.
10463         (vrp_finalize): Call identify_jump_threads.
10464         (execute_vrp): Call finalize_jump_threads.
10465         * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
10466         (vrp_element, vrp_data, vrp_element_p): Remove.
10467         (vrp_hash_elt, vrp_variables_stack): Remove.
10468         (vrp_hash, vrp_eq, record_range): Remove.
10469         (simplify_cond_and_lookup_avail_expr): Remove.
10470         (extract_range_from_cond): Remove.
10471         (thread_across_edge): Relocated into tree-ssa-threadedge.c.
10472         (simplify_stmt_for_jump_threading): New.
10473         (dom_thread_across_edge): New wrapper.
10474         (tree_ssa_dominator_optimize): No longer initialize or
10475         finalize any of the VRP datastructures.  Remove iteration
10476         step and simplify as a result of removal of iteration step.
10477         (pass_dominator): Perform a cfg cleanup after DOM.
10478         (dom_opt_finalize_block): Use the new common routines
10479         for threading jumps.  Simplify stack management slightly.
10480         No longer need to unwind VRP state.
10481         (record_equivalences_from_incoming_edge): No longer record
10482         VRP information.
10483         (eliminate_redundant_computations): No longer call
10484         simplify_cond_and_lookup_avail_expr.
10485         * tree-flow.h (potentially_threadable_block): Prototype.
10486         (thread_across_edge): Likewise.
10487         * Makefile.in (OBJS-common): Add tree-ssa-threadedge.o
10488         (tree-ssa-threadedge.o): Add dependencies.
10489         * tree-ssa-threadedge.c: New file.
10490         * passes.c (init_optimization_passes): Merge PHIs before
10491         calling VRP.  Run VRP again late in the SSA optimization pipeline.
10492
10493 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
10494
10495         * df-core.c (df_set_blocks): Do not dereference function pointers.
10496         (df_finish1): Likewise.
10497         (df_hybrid_search_forward): Likewise.
10498         (df_hybrid_search_backward): Likewise.
10499         (df_iterative_dataflow): Likewise.
10500         (df_analyze_problem): Likewise.
10501         (df_compact_blocks): Likewise.
10502         (df_dump): Likewise.
10503         * df-scan.c (df_rescan_blocks): Likewise.
10504         (df_record_entry_block_defs): Likewise.
10505
10506         * genconditions.c (write_conditions): Guard the definition of
10507         'insn_conditions' with the check on GCC version.
10508         (write_writer): Guard the traversal 'insn_conditions' with
10509         the check on GCC version.
10510
10511 2006-02-07  Richard Guenther  <rguenther@suse.de>
10512
10513         PR c++/26140
10514         Revert
10515         2006-01-30  Richard Guenther  <rguenther@suse.de>
10516         PR c++/23372
10517         * gimplify.c (gimplify_target_expr): Handle easy cases
10518         without creating a temporary.
10519
10520 2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
10521
10522         * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
10523         use of float in probability computations.  Use edge probabilities
10524         in place of statically computed probabilities.
10525         (min_spec_prob): New static variable.
10526         (schedule_insns): Initialize it.
10527         (GET_SRC_PROB): Removed.
10528         * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
10529
10530 2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
10531
10532         PR debug/24444
10533         * config/ia64/unwind-ia64.c: Revert last change.
10534         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
10535         (INCOMING_FRAME_SP_OFFSET): Define.
10536
10537 2006-02-06  Roger Sayle  <roger@eyesopen.com>
10538
10539         * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.
10540
10541 2006-02-07  Ben Elliston  <bje@au.ibm.com>
10542
10543         * config/i386/i386.c (ix86_scalar_mode_supported_p): New.
10544         (TARGET_SCALAR_MODE_SUPPORTED_P): Define hook.
10545         (classify_argument): Handle SDmode, DDmode, TDmode for 64-bit.
10546         (ix86_return_in_memory): Handle TDmode.
10547         (ix86_libcall_value): Handle SDmode, DDmode, TDmode.
10548         (ix86_value_regno): Return non-TDmode decimal float modes in %eax.
10549
10550 2006-02-06  Richard Sandiford  <richard@codesourcery.com>
10551
10552         * reorg.c (dbr_schedule): Use dump_file instead of file.
10553
10554 2006-02-06  Steve Ellcey  <sje@cup.hp.com>
10555
10556         PR target/25917
10557         * config/ia64/predicates.md (extr_len_operand): New predicate.
10558         * config/ia64/ia64.md (extv): Tighten constraints.
10559         (extzv): Ditto.
10560         (*tbit_and_2): Ditto.
10561         (*tbit_and_3): Ditto.
10562         (*tbit_or_2): Ditto.
10563         (*tbit_or_3): Ditto.
10564         (*bit_zero): Ditto.
10565         (*bit_one): Ditto.
10566
10567 2006-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
10568
10569         PR target/23359
10570         * config/i386/i386.md (trap): Use ASM_SHORT instead of .word.
10571
10572 2006-02-06  Zdenek Dvorak <dvorakz@suse.cz>
10573
10574         * tree-vrp.c (execute_vrp): Do not pass dump argument to.
10575         loop_optimizer_init and loop_optimizer_finalize
10576         * tree-ssa-sink.c (execute_sink_code): Ditto.
10577         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
10578         * tree-ssa-loop.c (tree_loop_optimizer_init, tree_ssa_loop_init,
10579         tree_ssa_loop_done): Ditto.
10580         * tree-ssa-pre.c (init_pre, fini_pre): Ditto.
10581         * sched-ebb.c: Include output.h.
10582         (schedule_ebbs): Do not use dump argument.
10583         * value-prof.h (struct profile_hooks): Remove profile_dump_file.
10584         * loop.c (loop_dump_stream): Removed.
10585         (loop_optimize, rest_of_handle_loop_optimize): Do not use dump
10586         argument.
10587         (scan_loop, move_movables, find_and_verify_loops, mark_loop_jump,
10588         emit_prefetch_instructions, loop_bivs_find, loop_bivs_check,
10589         final_biv_value, loop_biv_eliminable_p, loop_givs_rescan,
10590         loop_iterations, strength_reduce, record_biv, record_giv,
10591         final_giv_value, check_final_value, check_ext_dependent_givs,
10592         combine_givs, check_dbra_loop, maybe_eliminate_biv, load_mems,
10593         try_copy_prop, loop_delete_insns, try_swap_copy_prop): Use
10594         dump_file instead of loop_dump_stream.
10595         * ddg.c (print_ddg_edge, print_ddg, vcg_print_ddg): Do not call
10596         argument dump_file.
10597         * reorg.c (dbr_schedule, rest_of_handle_delay_slots): Do not use
10598         dump argument.
10599         * flow.c (life_analysis, rest_of_handle_life): Ditto.
10600         * haifa-sched.c: Include output.h
10601         (schedule_insns, sched_init): Do not use dump argument.
10602         * mode-switching.c (optimize_mode_switching): Ditto.
10603         * modulo-sched.c (stats_file): Removed.
10604         (print_node_sched_params): Do not call argument dump_file.
10605         (sms_schedule_by_order, loop_canon_p, sms_schedule,
10606         rest_of_handle_sms): Do not use dump argument.  Use dump_file instead
10607         of stats_file.
10608         * cse.c (cse_main, rest_of_handle_cse, rest_of_handle_cse2): Do not
10609         use dump argument.
10610         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize,
10611         rtl_loop_init, rtl_loop_done): Ditto.
10612         * global.c (global_alloc, rest_of_handle_global_alloc): Ditto.
10613         * predict.c (combine_predictions_for_bb, tree_estimate_probability):
10614         Ditto.
10615         * recog.c (peephole2_optimize, rest_of_handle_peephole2): Ditto.
10616         * lcm.c (pre_edge_lcm, pre_edge_rev_lcm): Ditto.
10617         * regmove.c (fixup_match_1, fixup_match_2, regmove_optimize,
10618         rest_of_handle_regmove, rest_of_handle_stack_adjustments): Ditto.
10619         * emit-rtl.c (renumber_insns): Ditto.
10620         * cfgexpand.c (add_reg_br_prob_note, expand_gimple_cond_expr,
10621         expand_gimple_basic_block, tree_expand_cfg): Ditto.
10622         * regclass.c (regclass): Ditto.
10623         * tree-outof-ssa.c (analyze_edges_for_bb, perform_edge_inserts,
10624         remove_ssa_form, rewrite_out_of_ssa): Ditto.
10625         * reg-stack.c (compensate_edge, compensate_edges, convert_regs_1,
10626         convert_regs_2, convert_regs, reg_to_stack, rest_of_handle_stack_regs):
10627         Ditto.
10628         * sched-rgn.c (schedule_insns, rest_of_handle_sched): Ditto.
10629         * local-alloc.c (rest_of_handle_local_alloc): Do not pass dump_file
10630         to regclass.
10631         * gcse.c (gcse_file, debug_stderr): Removed.
10632         (gcse_main, bypass_jumps, rest_of_handle_jump_bypass,
10633         rest_of_handle_gcse): Do not use dump argument.
10634         (cprop_jump, cprop_insn, do_local_cprop, cprop, find_implicit_sets,
10635         one_cprop_pass, bypass_block, compute_pre_data, insert_insn_end_bb,
10636         pre_edge_insert, pre_insert_copy_insn, pre_delete, one_pre_gcse_pass,
10637         compute_code_hoist_vbeinout, compute_code_hoist_data,
10638         one_code_hoisting_pass, trim_ld_motion_mems, update_ld_motion_stores,
10639         compute_store_table, build_store_vectors, insert_insn_start_bb,
10640         insert_store, remove_reachable_equiv_notes, replace_store_insn,
10641         store_motion): Use dump_file instead of gcse_file.
10642         * ipa-type-escape.c (type_escape_execute): Remove debugging comments.
10643         * profile.c (profile_dump_file): Removed.
10644         (branch_prob): Use dump_file instead of profile_dump_file.
10645         * ipa.c (cgraph_remove_unreachable_nodes): Do not call argument
10646         dump_file.
10647         * tree-ssa-copy.c (dump_copy_of): Ditto.
10648         * rtl-factoring.c (rtl_seqabstr, rest_of_rtl_seqabstr): Do not pass
10649         dump file to life_analysis.
10650         * bt-load.c (branch_target_load_optimize): Ditto.
10651         * cfgcleanup.c (rest_of_handle_jump2): Do not pass dump_file to
10652         renumber_insns.
10653         * rtl.h (cse_main, renumber_insns, schedule_insns, schedule_ebbs,
10654         regclass, dbr_schedule): Declaration changed.
10655         * sched-int.h (sched_init): Declaration changed.
10656         * tree-profile.c (tree_profile_dump_file): Removed.
10657         (tree_profile_hooks): Removed profile_dump_file hook.
10658         * rtl-profile (rtl_profile_dump_file): Removed.
10659         (rtl_profile_hooks): emoved profile_dump_file hook.
10660         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize): Declaration
10661         changed.
10662         * c-gimplify.c (c_genericize): Do not call local variable dump_file.
10663         * tree-cfg.c (build_tree_cfg): Ditto.
10664         * Makefile.in (haifa-sched.o, sched-ebb.o): Add output.h dependency.
10665         * basic-block.h (life_analysis, pre_edge_lcm, pre_edge_rev_lcm):
10666         Declaration changed.
10667         * config/sh/sh.c (sh_output_mi_thunk): Do not pass dump_file to
10668         life_analysis and schedule_insns.
10669         * config/m68hc11/m68hc11.c (m68hc11_reorg): Do not pass dump_file to
10670         life_analysis.
10671         * config/mt/mt.c (mt_machine_reorg): Do not pass dump_file to
10672         dbr_schedule.
10673         * config/mips/mips.c (mips_reorg): Ditto.
10674         * config/ia64/ia64.c (ia64_reorg): Do not pass dump_file to
10675         schedule_ebbs.
10676
10677 2006-02-06  Aldy Hernandez  <aldyh@redhat.com>
10678
10679         * config/s390/s390.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10680         (s390_mangle_fundamental_type): New.
10681         * config/s390/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10682         Define.
10683
10684         * config/alpha/alpha.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10685         (alpha_mangle_fundamental_type): New.
10686         * config/alpha/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10687         Define.
10688
10689         * config/sparc/linux.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10690         Define.
10691         * config/sparc/linux64.h (TARGET_ALTERNATE_LONG_DOUBLE_MANGLING):
10692         Define.
10693         * config/sparc/sparc.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
10694         (sparc_mangle_fundamental_type): New.
10695
10696 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
10697
10698         * config.gcc (s390-*-linux*): Add s390/t-linux to tmake_file.
10699         (s390x-*-linux*): Likewise.
10700         * config/s390/t-linux64 (SHLIB_MAPFILES): Removed.
10701         * config/s390/t-linux: New file.
10702
10703 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
10704
10705         * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>,
10706         sync_and<mode>, sync_xor<mode>): Operand 0 is in-out.
10707
10708 2006-02-06  Daniel Berlin  <dberlin@dberlin.org>
10709
10710         * tree-ssa-pre.c (bb_value_sets_t): Add antic_safe_loads.
10711         (ANTIC_SAFE_LOADS): New macro.
10712         (find_or_generate_expression): Add prototype.
10713         (set_contains_value): Allow null set for sake of not always having
10714         to allocate ANTIC_SAFE_LOADS.
10715         (phi_translate): Move placement of AGGREGATE_TYPE_P check.
10716         Allow COMPONENT_REF too.
10717         (valid_in_set): Allow COMPONENT_REF.
10718         Check ANTIC_SAFE_LOADS too.
10719         (compute_antic_aux): Print out ANTIC_SAFE_LOADS.
10720         (compute_rvuse_and_antic_safe): Add ANTIC_SAFE computation, and
10721         rename.
10722         (can_PRE_operation): Add COMPONENT_REF.
10723         (create_component_ref_by_pieces): New function.
10724         (create_expression_by_pieces): Use create_component_ref_by_pieces.
10725         (insert_aux): Move AGGREGATE_TYPE_P check here.
10726         (compute_avail): Set bb local stmt uids.
10727         (pass_pre): Use TODO_update_ssa_only_virtuals.
10728
10729 2006-02-06  Ben Elliston  <bje@au.ibm.com>
10730
10731         * configure.ac: Unconditionally disable decimal float by default.
10732         * configure: Regenerate.
10733
10734 2006-02-06  Ben Elliston  <bje@au.ibm.com>
10735
10736         * read-rtl.c (read_name): Terminate reading on EOF.
10737
10738 2006-02-06  Ben Elliston  <bje@au.ibm.com>
10739
10740         * dfp.c (decimal_real_arithmetic): Change second argument type
10741         from int to enum tree_code. Do not always return true, but now
10742         return result of any call to decimal_do helper functions.
10743         * dfp.h (decimal_real_arithmetic): Update prototype.
10744
10745 2006-02-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
10746
10747         * config/sparc/sol2-bi.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDMID.
10748
10749 2006-02-05  Andrew Pinski  <pinskia@physics.uc.edu>
10750
10751         PR tree-opt/25251
10752         * tree-cfg.c (cleanup_dead_labels): Also don't remove
10753         forced labels.
10754
10755 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
10756
10757         * tree-vrp.c (cfg_loops): Removed.
10758         (adjust_range_with_scev, vrp_visit_assignment, execute_vrp):
10759         Use current_loops instead of cfg_loops.  Pass flags to
10760         loop_optimizer_init.
10761         * cfgloopmanip.c (fix_loop_structure): Update only available
10762         information.
10763         * tree-ssa-loop-ch.c (copy_loop_headers): Pass flags to
10764         loop_optimizer_init.
10765         * modulo-sched.c (build_loops_structure): Removed.
10766         (sms_schedule): Use loop_optimizer_init.
10767         * loop-init.c (loop_optimizer_init): Use flags to determine
10768         which properties of loops to prepare.
10769         (rtl_loop_init): Pass flags to loop_optimizer_init.
10770         * tree-ssa-sink.c (execute_sink_code): Ditto.
10771         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
10772         * tree-ssa-pre.c (init_pre): Ditto.
10773         * cfgloop.h (LOOPS_NORMAL): New.
10774         (loop_optimizer_init): Declaration changed.
10775
10776 2006-02-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10777
10778         * pa/x-ada-hpux10, pa/t-pa-hpux10, pa/t-pa-hpux11: New files.
10779         * config.gcc (hppa[12]*-*-hpux10*): Use pa/t-pa-hpux10 instead of
10780         pa/t-pa.
10781         * config.gcc (hppa[12]*-*-hpux11*): Use pa/t-pa-hpux11 instead of
10782         pa/t-pa.
10783         * config.host (hppa*-*-hpux10*): Use pa/x-ada-hpux10 instead of
10784         pa/x-ada.
10785         * pa/t-pa-hpux: Add lib2funcs.asm and quadlib.c rules.
10786         * pa/t-pa64: Delete quadlib.c rule.
10787         * pa/x-ada: Revert last change.
10788         * pa/t-pa: Revert last change.  Delete quadlib.c rule.
10789
10790 2006-02-04  Zdenek Dvorak <dvorakz@suse.cz>
10791
10792         PR rtl-optimization/26087
10793         * rtlanal.c (canonicalize_condition): Do not cross basic block
10794         boundaries.
10795
10796 2006-02-04  Alexandre Oliva  <aoliva@redhat.com>
10797
10798         PR debug/24444
10799         * config/ia64/ia64.c: Include debug.h.
10800         (MAX_ARTIFICIAL_LABEL_BYTES): New.
10801         (ia64_label_after_insn, ia64_dwarf2out_def_steady_cfa): New.
10802         (IA64_CHANGE_CFA_IN_EPILOGUE): Define to 0.
10803         (process_epilogue, process_set, process_for_unwind_directive):
10804         Output unwind info only if requested.  Add CFA info if requested.
10805         Add new arguments as needed.  Adjust callers.
10806         * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Override
10807         incorrect default.
10808         (DWARF2_FRAME_INFO): Define to zero.
10809         * config/ia64/unwind-ia64.c: Remove code that compensated for
10810         the CFA offset error fixed above.
10811         * config/ia64/t-ia64 (ia64.o): Depend on debug.h.
10812         * dwarf2out.c (DWARF2_FRAME_INFO): Define default.
10813         (dwarf2out_do_frame): Require nonzero DWARF2_UNWIND_INFO for
10814         -funwind-tables and -fexceptions to enable frame info.
10815         (dwarf2out_frame_init): Define initial CFA even if
10816         DWARF2_UNWIND_INFO is disabled.  Call initial_return_save if
10817         DWARF2_UNWIND_INFO is nonzero, not just defined.
10818         (dwarf2out_frame_finish): Output non-EH call frame info only
10819         if DWARF2_FRAME_INFO is nonzero.
10820         (convert_cfa_to_loc_list,
10821         compute_frame_pointer_to_cfa_displacement): Define even if
10822         unwind info is not supported.
10823         (gen_subprogram_die): Use the above unconditionally.  Remove
10824         legacy alternate code.
10825         * toplev.c (compile_file): Compile in call to
10826         dwarf2out_frame_finish if DWARF2_DEBUGGING_INFO is defined.
10827         (lang_dependent_init): Ditto for dwarf2out_frame_init.
10828
10829 2006-02-04  David Edelsohn  <edelsohn@gnu.org>
10830             Jakub Jelinek  <jakub@redhat.com>
10831
10832         * config/rs6000/rs6000.c (rs6000_mangle_fundamental_type): Mangle
10833         IBM extended float format long double as "g" on powerpc*-linux.
10834
10835 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10836
10837         PR target/25926
10838         * pa/x-ada (X_ADA_CFLAGS): Define _X_HPUX10 on HP-UX 10.
10839         * pa/t-pa (TARGET_LIBGCC2_CFLAGS): Define _T_HPUX10 on HP-UX 10.
10840
10841 2006-02-03  Jason Merrill  <jason@redhat.com>
10842
10843         PR c++/25979
10844         * gimplify.c (gimplify_modify_expr_rhs): Disable *& optimization for now.
10845
10846         PR middle-end/25977
10847         * gimplify.c (gimplify_modify_expr_rhs): It's not always safe to do RVO
10848         on the return slot if it's an NRV.
10849
10850 2006-02-03  Zdenek Dvorak <dvorakz@suse.cz>
10851
10852         * tree-ssa-loop-ivopts.c (enum use_type): Remove USE_OUTER.
10853         (dump_use, add_derived_ivs_candidates, determine_use_iv_cost,
10854         rewrite_use): Do not handle USE_OUTER.
10855         (find_interesting_uses_outer_or_nonlin, find_interesting_uses_outer,
10856         add_iv_outer_candidates, may_replace_final_value,
10857         determine_use_iv_cost_outer, rewrite_use_outer): Removed.
10858         (find_interesting_uses_op): Functionality of
10859         find_interesting_uses_outer_or_nonlin moved here.
10860         (find_interesting_uses_outside): Use find_interesting_uses_op.
10861
10862 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
10863
10864         PR target/25960
10865         * config/rs6000/darwin-ldouble.c (__gcc_qadd): Preserve -0.0 result.
10866
10867 2006-02-03  Andreas Krebbel  <krebbel1@de.ibm.com>
10868             Ulrich Weigand  <uweigand@de.ibm.com>
10869
10870         PR target/25864
10871         * config/s390/2084.md ("x_fsimptf", "x_fmultf", "x_fdivtf",
10872         "x_floadtf", "x_ftrunctf", "x_ftruncdf"): New insn reservations.
10873         * config/s390/fixdfdi.h (__fixunstfdi, __fixtfdi): New functions.
10874         * config/s390/s390.c (struct processor_costs): Add mxbr, sqxbr, dxbr
10875         and dxr fields.
10876         (z900_cost, z990_cost, z9_109_cost): Values for the new fields added.
10877         (s390_rtx_costs): Use the new fields to calculate rtx costs.
10878         (s390_secondary_input_reload_class, s390_secondary_output_reload_class):
10879         Define secondary reloads for TFmode moves.
10880         (constant_modes): Add TFmode.
10881         (NR_C_MODES): Set to 8.
10882         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Add __LONG_DOUBLE_128__
10883         builtin define.
10884         (LONG_DOUBLE_TYPE_SIZE): Set to 128 or 64.
10885         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE, WIDEST_HARDWARE_FP_SIZE): Define.
10886         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS,
10887         CANNOT_CHANGE_MODE_CLASS): Consider TFmode.
10888         * config/s390/s390.md ("type" attribute): Add fsimptf, floadtf, fmultf,
10889         fdivtf, fsqrttf, ftrunctf, ftruncdf as possible values.
10890         (FPR mode macro): Add TFmode.
10891         (DSF mode macro): New.
10892         (<de>, <dee> mode attributes): Removed.
10893         (<xde>, <xdee>, <RRe>, <RXe>, <Rf> mode attributes): New.
10894         ("*cmp<mode>_ccs_0", "*cmp<mode>_ccs_0_ibm", "*cmp<mode>_ccs",
10895         "*cmp<mode>_ccs_ibm", "fix_trunc<FPR:mode><GPR:mode>2_ieee",
10896         "floatdi<mode>2", "floatsi<mode>2_ieee", "*add<mode>3",
10897         "*add<mode>3_cc", "*add<mode>3_cconly", "*add<mode>3_ibm",
10898         "*sub<mode>3", "*sub<mode>3_cc", "*sub<mode>3_cconly",
10899         "*sub<mode>3_ibm", "*mul<mode>3_ibm", "*fmadd<mode>", "*fmsub<mode>",
10900         "*div<mode>3", "*div<mode>3_ibm", "*neg<mode>2_cc",
10901         "*neg<mode>2_cconly", "*neg<mode>2", "*neg<mode>2_ibm",
10902         "*abs<mode>2_cc", "*abs<mode>2_cconly", "*abs<mode>2",
10903         "*abs<mode>2_ibm", "*negabs<mode>2_cc", "*negabs<mode>2_cconly",
10904         "*negabs<mode>2", "sqrt<mode>2"):
10905         Changed <de> to <xde>. R constraint replaced by <Rf>.
10906         ("*mul<mode>3"): Changed <dee> to <xdee>. R constraint replaced by
10907         <Rf>.
10908         ("fix_trunc<FPR:mode>di2"): 'FPR:' removed.
10909         ("*fmadd<mode>", "*fmsub<mode>"): FPR mode replaced by DSF.
10910         ("*movtf_64", "*movtf_31"): New insn definitions followed by 5
10911         splitters.
10912         ("movtf", "reload_outtf", "reload_intf", "trunctfdf2", "trunctfsf2",
10913         "extenddftf2", "extendsftf2"): New expanders.
10914         ("*trunctfdf2_ieee", "*trunctfdf2_ibm", "*trunctfsf2_ieee",
10915         "*trunctfsf2_ibm", "*extenddftf2_ieee", "*extenddftf2_ibm",
10916         "*extendsftf2_ieee", "*extendsftf2_ibm"): New insn patterns.
10917         * config/s390/s390.opt (mlong-double-128, mlong-double-64):
10918         New options.
10919         * config/s390/t-crtstuff (TARGET_LIBGCC2_CFLAGS): Macro defined.
10920         * config/s390/libgcc-glibc.ver (__divtc3, __multc3, __powitf2,
10921         __fixtfti, __fixunstfti, __floattitf, __fixtfdi, __fixunstfdi,
10922         __floatditf): Add a GCC_4.1.0 symbol version tag.
10923         * doc/invoke.texi (-mlong-double-128, -mlong-double-64): Document
10924         the new options.
10925
10926 2006-02-02  Andrew Pinski  <pinskia@physics.uc.edu>
10927
10928         PR target/25377
10929         * config/i386/i386.c (ix86_function_ok_for_sibcall):
10930         Use targetm.binds_local_p instead of TREE_PUBLIC.
10931
10932 2006-02-02  Roger Sayle  <roger@eyesopen.com>
10933
10934         * tree.h (TYPE_STRING_FLAG): Document that this field may be used
10935         on INTEGER_TYPEs to indicate that it denotes a character type.
10936         * tree.c (build_common_tree_nodes): Set TYPE_STRING_FLAG on
10937         signed_char_type_node, unsigned_char_type_node and char_type_node.
10938         * dwarf2out.c (base_type_die): Treat CHAR_TYPE identically to
10939         INTEGER_TYPE.  Use TYPE_STRING_FLAG to decide whether to emit
10940         a DW_ATE_[un]signed_char instead of a DW_ATE_[un]signed.
10941
10942 2006-02-02  Zdenek Dvorak <dvorakz@suse.cz>
10943             Daniel Berlin  <dberlin@dberlin.org>
10944
10945         * tree-tailcall.c (arg_needs_copy_p): New function.
10946         (eliminate_tail_call): Use arg_needs_copy_p.
10947         (tree_optimize_tail_calls_1): Ditto. Also call add_virtual_phis.
10948         (add_virtual_phis): New function.
10949
10950 2006-02-02  Jakub Jelinek  <jakub@redhat.com>
10951
10952         * config/sparc/sparc.c (sparc_output_scratch_registers): Use
10953         #ignore instead of #scratch for %g7 .register directive.
10954
10955 2006-02-02  Andreas Tobler  <a.tobler@schweiz.ch>
10956
10957         * config/sparc/freebsd.h (ENDFILE_SPEC): Add space to separate
10958         object files.
10959
10960 2006-02-02  Bernd Schmidt  <bernd.schmidt@analog.com>
10961
10962         * flow.c (calculate_global_regs_live): Assert that there aren't any
10963         EDGE_FAKE edges.
10964
10965 2006-02-02  Paolo Bonzini  <bonzini@gnu.org>
10966
10967         * tree-flow-inline.h (bsi_after_labels): Rewrite, return
10968         what its name says.
10969         * lambda-code.c (perfect_nestify): Use bsi_insert_before on
10970         bsi_after_labels iterator.
10971         * tree-if-conv.c (find_phi_replacement_condition,
10972         replace_phi_with_cond_modify_expr): Likewise.
10973         * tree-scalar-evolution.c (scev_const_prop): Likewise.
10974         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Likewise.
10975
10976 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
10977
10978         * tree-inline.c (copy_tree_r): Also copy OMP_CLAUSE nodes.
10979
10980 2006-02-02  Diego Novillo  <dnovillo@redhat.com>
10981
10982         PR 25990
10983         * tree-cfg.c (move_block_to_fn): Clear out the basic block
10984         array after growing it.
10985
10986 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
10987
10988         PR middle-end/24901
10989         * fold-const.c (fold_checksum_tree): Change type of buf.
10990
10991 2006-02-01  Bernd Schmidt  <bernd.schmidt@analog.com>
10992
10993         * reload.c (push_secondary_reload): Initialize t_icode.
10994
10995 2006-02-01  Jakub Jelinek  <jakub@redhat.com>
10996
10997         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): For
10998         -msoft-float -mlong-double-128 only issue a warning, but don't
10999         swich to DFmode long double.
11000
11001 2006-02-01  Hans-Peter Nilsson  <hp@axis.com>
11002
11003         * cse.c (fold_rtx) <case RTX_COMM_COMPARE, RTX_COMPARE>: When arg1
11004         has a constant equivalent, iterate over equivalents for arg0,
11005         calling simplify_relational_operation and if there's a result
11006         cheaper than X, apply fold_rtx and return the result.
11007
11008 2006-02-01  Jan Hubicka  <jh@suse.cz>
11009
11010         * opts.c (no_unit_at_a_time_default): New global variable.
11011         (decode_options): Use it.
11012         * opts.h (no_unit_at_a_time_default): Declare.
11013
11014 2006-02-01  Paul Brook  <paul@codesourcery.com>
11015
11016         * function.c (assign_parm_setup_reg): Use function argument promotion
11017         rules.
11018         * expr.c (expand_expr_real_1): Use function argument promotion rules
11019         for PARM_DECLs.
11020
11021 2006-02-01  Steve Ellcey  <sje@cup.hp.com>
11022
11023         * gcc.c (process_command): Change j to 'unsigned int'.
11024
11025 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11026
11027         PR middle-end/26001
11028         * expr.c (expand_expr_real_1) <case ARRAY_REF>:
11029         Use the corrected index for the character
11030         out of the string constant.
11031
11032 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11033
11034         * mode-switching.c (optimize_mode_switching): Fix size
11035         allocated for bb_info[n_entities].
11036
11037 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
11038
11039         * gcc.c (main): Correct type that is allocated for
11040         explicit_link_files.
11041
11042 2006-01-31  Jakub Jelinek  <jakub@redhat.com>
11043
11044         * config/s390/s390.c (init_alignment_context): Set
11045         ALIAS_SET_MEMORY_BARRIER on the MEM.
11046         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): Likewise.
11047
11048 2006-01-31  Uttam Pawar  <uttamp@us.ibm.com>
11049
11050         PR middle-end/25933
11051         * loop-unroll.c (unroll_loop_runtime_iterations): Free
11052         dom_bbs pointer.
11053         * tree-ssa-live.c (type_var_init): Allocate bitmap after
11054         call to tpa_init.
11055
11056 2006-01-31  Marcin Dalecki  <martin@dalecki.de>
11057
11058         * tree-vrp.c: Use XNEW/XCNEW allocation wrappers.
11059         * regrename.c: Ditto.
11060         * tree-ssa-loop-im.c: Ditto.
11061         * tree-dump.c: Ditto.
11062         * tree-complex.c: Ditto.
11063         * genrecog.c: Ditto.
11064         * tree-ssa-threadupdate.c: Ditto.
11065         * tracer.c: Ditto.
11066         * java/class.c: Ditto.
11067         * java/jcf-parse.c: Ditto.
11068         * java/resource.c: Ditto.
11069         * java/except.c: Ditto.
11070         * java/jvspec.c: Ditto.
11071         * java/jcf-write.c: Ditto.
11072         * java/jcf-path.c: Ditto.
11073         * java/gjavah.c: Ditto.
11074         * java/zextract.c: Ditto.
11075         * java/jcf-io.c: Ditto.
11076         * java/jcf.h: Ditto.
11077         * java/buffer.c: Ditto.
11078         * java/lang.c: Ditto.
11079         * java/parse-scan.y: Ditto.
11080         * java/lex.c: Ditto.
11081         * java/lex.h: Ditto.
11082         * cfgloopmanip.c: Ditto.
11083         * postreload-gcse.c: Ditto.
11084         * tree-ssa-loop-manip.c: Ditto.
11085         * postreload.c: Ditto.
11086         * tree-ssa-loop-ch.c: Ditto.
11087         * loop.c: Ditto.
11088         * ipa-cp.c: Ditto.
11089         * cppspec.c: Ditto.
11090         * diagnostic.c: Ditto.
11091         * final.c: Ditto.
11092         * genoutput.c: Ditto.
11093         * gcc.c: Ditto.
11094         * cfghooks.c: Ditto.
11095         * cfgloopanal.c: Ditto.
11096         * objc/objc-act.c: Ditto.
11097         * gcov.c: Ditto.
11098         * genextract.c: Ditto.
11099         * genautomata.c: Ditto.
11100         * pretty-print.c: Ditto.
11101         * genemit.c: Ditto.
11102         * cgraphunit.c: Ditto.
11103         * flow.c: Ditto.
11104         * df-scan.c: Ditto.
11105         * haifa-sched.c: Ditto.
11106         * dominance.c: Ditto.
11107         * dbxout.c: Ditto.
11108         * tree-ssa-loop-ivopts.c: Ditto.
11109         * df-core.c: Ditto.
11110         * mode-switching.c: Ditto.
11111         * modulo-sched.c: Ditto.
11112         * graph.c: Ditto.
11113         * ipa-pure-const.c: Ditto.
11114         * cse.c: Ditto.
11115         * fix-header.c: Ditto.
11116         * web.c: Ditto.
11117         * tree-stdarg.c: Ditto.
11118         * ipa-utils.c: Ditto.
11119         * loop-init.c: Ditto.
11120         * ipa-inline.c: Ditto.
11121         * cfganal.c: Ditto.
11122         * global.c: Ditto.
11123         * alloc-pool.c: Ditto.
11124         * dwarf2out.c: Ditto.
11125         * opts.c: Ditto.
11126         * genattrtab.c: Ditto.
11127         * tree-ssa-loop-ivcanon.c: Ditto.
11128         * predict.c: Ditto.
11129         * timevar.c: Ditto.
11130         * lcm.c: Ditto.
11131         * fortran/gfortranspec.c: Ditto.
11132         * regmove.c: Ditto.
11133         * local-alloc.c: Ditto.
11134         * langhooks.c: Ditto.
11135         * function.c: Ditto.
11136         * tree-vectorizer.c: Ditto.
11137         * gcse.c: Ditto.
11138         * ipa-type-escape.c: Ditto.
11139         * alias.c: Ditto.
11140         * tree-if-conv.c: Ditto.
11141         * profile.c: Ditto.
11142         * ipa.c: Ditto.
11143         * tree-data-ref.c: Ditto.
11144         * loop-unroll.c: Ditto.
11145         * treelang/treetree.c: Ditto.
11146         * calls.c: Ditto.
11147         * bt-load.c: Ditto.
11148         * ggc-common.c: Ditto.
11149         * except.c: Ditto.
11150         * coverage.c: Ditto.
11151         * cselib.c: Ditto.
11152         * tree-cfgcleanup.c: Ditto.
11153         * tree-ssa-pre.c: Ditto.
11154         * cfgcleanup.c: Ditto.
11155         * loop-invariant.c: Ditto.
11156         * loop-iv.c: Ditto.
11157         * ipa-prop.c: Ditto.
11158         * print-tree.c: Ditto.
11159         * conflict.c: Ditto.
11160         * ggc-page.c: Ditto.
11161         * sched-deps.c: Ditto.
11162         * regclass.c: Ditto.
11163         * tree-object-size.c: Ditto.
11164         * combine.c: Ditto.
11165         * bb-reorder.c: Ditto.
11166         * resource.c: Ditto.
11167         * var-tracking.c: Ditto.
11168         * cfgloop.c: Ditto.
11169         * df-problems.c: Ditto.
11170         * reg-stack.c: Ditto.
11171         * tlink.c: Ditto.
11172         * gccspec.c: Ditto.
11173         * sched-rgn.c: Ditto.
11174         * tree-ssa-structalias.c: Ditto.
11175         * tree-ssa-reassoc.c: Ditto.
11176         * config/darwin-c.c: Ditto.
11177         * config/darwin.c: Ditto.
11178         * config/arm/arm.c: Ditto.
11179         * cfgrtl.c: Ditto.
11180         * collect2.c: Ditto.
11181         * reload1.c: Ditto.
11182
11183 2006-01-31  Nicolas Pitre  <nico@cam.org>
11184
11185         * arm.md (smaxsi3): Make aware of smax_m1.
11186         (smax_m1): New.
11187
11188 2006-01-31  Nathan Sidwell  <nathan@codesourcery.com>
11189
11190         * config/m68k/lb1sf68.asm: Use moveq to load small constants.
11191
11192 2006-01-31  Richard Guenther  <rguenther@suse.de>
11193
11194         * doc/invoke.texi (-msselibm): Document.
11195         * target.h (expand_library_builtin): New target hook.
11196         * builtins.c (expand_builtin): Use expand_library_builtin.
11197         (default_expand_library_builtin): New function.
11198         * gcc.c (LINK_GCC_MATH_SPEC): Define.
11199         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
11200         (link_gcc_math_spec): Declare.
11201         (static_specs): Add link_gcc_math_spec.
11202         * expr.h (default_expand_library_builtin): Declare.
11203         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11204         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
11205         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
11206         * config/i386/i386.opt (msselibm): New target option.
11207         * config/i386/i386.c (ix86_builtin_function_variants): New array.
11208         (ix86_init_sse_abi_builtins): New function.
11209         (ix86_expand_library_builtin): Likewise.
11210         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
11211         (override_options): Handle error conditions wrt -msselibm.
11212         (ix86_builtins): Add function codes for SSE2 ABI builtins.
11213         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
11214         * doc/extend.texi (__builtin_sse2_*): Document new target specific
11215         builtins.
11216
11217 2006-01-31  Richard Guenther  <rguenther@suse.de>
11218         Paolo Bonzini  <bonzini@gnu.org>
11219
11220         * doc/install.texi (--disable-libgcc-math): Document.
11221
11222 2006-01-30  Marcin Dalecki  <martin@dalecki.de>
11223
11224         * expr.h (expand_normal): new inline function.
11225         * builtins.c: use it, use EXPAND_NORMAL explicitely.
11226         * dojump.c: use it.
11227         * dwarf2out.c: use it.
11228         * expr.c: use it.
11229         * calls.c: use it.
11230         * expmed.c: use it.
11231         * except.c: use it.
11232         * config/sparc/sparc.c: use it.
11233         * config/i386/i386.c: use it.
11234         * config/rs6000/rs6000.c: use it.
11235         * config/arm/arm.c: use it.
11236         * config/mips/mips.c: use it.
11237         * stmt.c: use it, use EXPAND_NORMAL explicitely.
11238
11239 2006-01-30  Roger Sayle  <roger@eyesopen.com>
11240
11241         * config/i386/cygwin.h (GCC_DRIVER_HOST_INITIALIZATION): Cast
11242         argv to the appropriate type.
11243
11244 2006-01-30  Zdenek Dvorak <dvorakz@suse.cz>
11245
11246         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Remove
11247         unreachable code.
11248
11249 2006-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
11250
11251         PR target/26018
11252         * config/s390/s390.c (struct machine_function): New flag
11253         decomposed_literal_pool_addresses_ok_p.
11254         (s390_reorg): Set it before final stage of literal pool transforms.
11255         (s390_decompose_address): Only accept displacements of the form
11256         (minus (label_ref ...) (label_ref ...)) if that flag is set.
11257
11258 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
11259
11260         * optabs.c (prepare_cmp_insn): If unbaised and unsigned then bias
11261         the comparison routine return.
11262
11263 2006-01-30  Michael Matz  <matz@suse.de>
11264
11265         * global.c (find_reg): Only evict for global regs.
11266         Take n_refs into account and dump more info.
11267
11268 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
11269
11270         PR target/14798:
11271         * sh.c (pragma_interrupt, trap_exit, sp_switch): Remove variable.
11272         (pragma_trap, pragma_nosave_low_regs): Likewise.
11273         (current_function_anonymous_args): Likewise.
11274         (sh_deferred_function_attributes): New variable.
11275         (sh_deferred_function_attributes_tail): Likewise.
11276         (print_operand): For '@', look up trap_exit attribute.
11277         (calc_live_regs): Look up trapa_handler attribute.  For trapa
11278         handlers, save/restore fpscr, but don't do any other
11279         interrupt-specific saves.
11280         Don't save r0..r7 if the nosave_low_regs attribute is in effect.
11281         Fix check for partially saved registers to check for SHmedia.
11282         (sh_expand_prologue, sh_expand_epilogue): Look up sp_switch attribute.
11283         (sh_output_function_epilogue): Don't clear any of the removed
11284         variables.
11285         (sh_insert_attributes): Don't check pragma_interrupt.
11286         Insert deferred attributes.  Check that interrupt attribute is
11287         present for other attributes that require its presence.
11288         (sh_attribute_table): Add new attributes trapa_handler and
11289         nosave_low_regs.
11290         (sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
11291         Don't check for pragma_interrupt.  Don't store argument.
11292         * sh.h (pragma_interrupt, sp_switch): Don't declare.
11293         (sh_deferred_function_attributes): Declare.
11294         (sh_deferred_function_attributes_tail): Likewise.
11295         * sh.md (sp_switch_1): Add operand.  Change generator caller.
11296         (sh_pr_interrupt, sh_pr_trapa, sh_pr_nosave_low_regs): Remove.
11297         (*return_i): Don't use when trap_exit attribute is in effect.
11298         (*return_trapa): New insn pattern.
11299         * sh-c.c: New file.
11300         * config.gcc (sh[123456ble]*-* | sh-*-*): New trailer stanza,
11301         setting c_target_objs and cxx_target_objs.
11302         * t-sh: Add rule for sh-c.o.
11303
11304 2006-01-30  Richard Guenther  <rguenther@suse.de>
11305
11306         PR c++/23372
11307         * gimplify.c (gimplify_target_expr): Handle easy cases
11308         without creating a temporary.
11309
11310 2006-01-30  Nathan Sidwell  <nathan@codesourcery.com>
11311
11312         * vec.h (safe_grow): Remove duplicated line.
11313
11314 2006-01-29  Diego Novillo  <dnovillo@redhat.com>
11315
11316         PR 25874
11317         * omp-low.c (execute_expand_omp): Move CFG cleanup code ...
11318         (expand_omp): ... here.
11319         (expand_omp_parallel): Only remove barriers for combined
11320         parallel+workshare constructs.
11321
11322 2006-01-29  Eric Botcazou  <ebotcazou@adacore.com>
11323
11324         Revert
11325
11326         2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
11327         * tree.c (build_qualified_type): Chain the new type to the original
11328         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
11329         a POINTER_TYPE or a REFERENCE_TYPE respectively.
11330         (build_pointer_type_for_mode): Only return unqualified types.
11331         (build_reference_type_for_mode): Likewise.
11332
11333 2006-01-29  Gabriel Dos Reis  <gdr@integgrable-solutions.net>
11334
11335         * configure.ac (cxx_compat_warn): Set if -Wc++-compat is supported.
11336         * Makefile.in (CXX_COMPAT_WARN): Define.
11337         * configure: Regenerate.
11338
11339 2006-01-29  Dorit Nuzman  <dorit@il.ibm.com>
11340
11341         PR tree-opt/25911
11342         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Change assert
11343         to an if check.
11344
11345 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11346
11347         * toplev.c: Fix thinko.
11348
11349 2006-01-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11350             Marcin Dalecki  <martin@dalecki.de>
11351
11352         * toplev.c (floor_log2, exact_log2): Don't define if __cplusplus.
11353         (push_srcloc): Use XNEW.
11354         (init_asm_output, default_get_pch_validity): Use XNEWVEC.
11355
11356 2006-01-29  Kenneth Zadeck <zadeck@naturalbridge.com>
11357
11358         * df-core.c (df_set_blocks): Deleted all variable.
11359
11360 2006-01-28  Ian Lance Taylor  <ian@airs.com>
11361
11362         * cgraphunit.c (cgraph_assemble_pending_functions): Call
11363         cgraph_output_pending_asms.
11364
11365 2006-01-28  Zack Weinberg  <zackw@panix.com>
11366
11367         * c.opt: Add -W(no-)overlength-strings.
11368         * doc/invoke.texi: Document it.
11369         * c-opts.c (c_common_handle_option): -pedantic implies
11370         -Woverlength-strings, if not explicitly disabled already.
11371         (c_common_post_options): -Woverlength-strings defaults to off, and
11372         is always off for C++.
11373         * c-common.c (fix_string_type): Issue warning about strings longer
11374         than is portable only if warn_overlength_strings.  Rearrange code
11375         a little for clarity.
11376         * configure.in: Check for -Wno-overlength-strings as well before
11377         enabling -pedantic in stage 1.
11378         * Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
11379         (gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
11380
11381         * genconditions.c (write_header, write_one_condition)
11382         (write_conditions, write_writer): Consolidate very long strings
11383         that were broken up to fit in C89 portable limit.  Don't use
11384         printf when fputs will do.
11385
11386 2006-01-28  Adam Nemet  <anemet@caviumnetworks.com>
11387
11388         * combine.c (simplify_comparison <AND>): Check
11389         TRULY_NOOP_TRUNCATION before start using a subreg.
11390
11391         * config/mips/mips.md (*branch_zero<mode>,
11392         *branch_zero<mode>_inverted, *branch_equality<mode>,
11393         *branch_equality<mode>_inverted, *branch_equality<mode>_mips16):
11394         Remove mode check from comparisons.
11395
11396 2006-01-28  Kenneth Zadeck <zadeck@naturalbridge.com>
11397
11398         * config/mips/mips-protos.h (mips_set_live_on_entry): Deleted.
11399
11400 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
11401
11402         * expmed.c (const_mult_add_overflow_p): Remove.
11403         * expr.h: Remove the prototype for const_mult_add_overflow_p.
11404
11405         * recog.c (validate_replace_rtx_subexp): Remove.
11406         * recog.h: Remove the prototype for
11407         validate_replace_rtx_subexp.
11408
11409         * integrate.h: Remove the prototype for
11410         copy_decl_for_inlining.
11411         * rtl.h: Remove the prototype for mark_constant_function.
11412         * tree-vectorizer.h: Remove the prototype for
11413         vect_strip_conversion.
11414
11415         * modulo-sched.c (create_partial_schedule,
11416         free_partial_schedule, reset_partial_schedule): Make them
11417         static.
11418
11419         * hooks.c (hook_bool_rtx_int_false): Remove.
11420         * hooks.h: Remove the prototype for hook_bool_rtx_int_false.
11421
11422 2006-01-28  David Edelsohn  <edelsohn@gnu.org>
11423
11424         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11425         and -mlong-double-128 are incompatible.
11426         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
11427         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
11428         (TARGET_LIBGCC2_CFLAGS): Define.
11429         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): Same.
11430         (TARGET_LIBGCC2_CFLAGS): Same.
11431         * config/rs6000/ppc64-fp.c: Compile for 64-bit AIX.
11432
11433 2006-01-28  Kazu Hirata  <kazu@codesourcery.com>
11434
11435         PR c/19606.
11436         * c-typeck.c (build_binary_op): Perform implicit casts of
11437         operands before shortening them.
11438
11439         * cfgloopmanip.c (split_loop_bb): Remove.
11440         * cfgloop.h: Remove the prototype for split_loop_bb.
11441
11442         * cfgloop.c (flow_loop_outside_edge_p): Remove.
11443         * cfgloop.h: Remove the prototype for
11444         flow_loop_outside_edge_p.
11445
11446         * emit-rtl.c (init_virtual_regs): Make it static.
11447         * function.h: Remove the prototype for init_virtual_regs.
11448
11449         * recog.c (peephole2_optimize): Make it static.
11450         * recog.h: Remove the prototype for peephole2_optimize.
11451
11452 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
11453
11454         * df-scan.c (df_record_entry_block_defs): Check if
11455         INCOMING_RETURN_ADDR_RTX is defined.
11456
11457 2006-01-27  Daniel Berlin  <dberlin@dberlin.org>
11458             Kenneth Zadeck <zadeck@naturalbridge.com>
11459
11460         PR rtl-optimization/24762
11461         * doc/tm.texi: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11462         * targhooks.c (hook_void_bitmap): New hook prototype.
11463         * targhoohs.h (hook_void_bitmap): Ditto.
11464         * bitmap.h (bitmap_head_def): Moved to coretypes.h.
11465         * coretypes.h (bitmap_head_def): Moved from bitmap.h.
11466         * target.h (live_on_entry): New function pointer.
11467         * df-scan.c (df_all_hard_regs): Removed.
11468         (df_scan_dump, df_hard_reg_init): Removed df_all_hard_regs.
11469         (df_scan_free_internal): Added df->entry_block_defs.
11470         (df_scan_alloc): Ditto.
11471         (df_scan_dump): Ditto.
11472         (df_uses_record): Plumbed flag field properly thru calls.
11473         Record EH_RETURN_DATA_REGNO in eh blocks unconditionally.
11474         This part fixes PR24762.
11475         (df_bb_refs_record): Added code to make the frame and arg
11476         pointers live in EH blocks.
11477         (df_refs_record): Added call to df_record_entry_block_defs.
11478         (df_record_entry_block_defs): New function.
11479         * df-core.c: Added comments to describe new artifical defs.
11480         * df.h (DF_REF_DIES_AFTER_THIS_USE): New flag in enum df_ref_flags.
11481         (entry_block_defs): New field in struct df.
11482         (df_all_hard_regs): Deleted.
11483         * target-def.h: Added TARGET_EXTRA_LIVE_ON_ENTRY.
11484         * df-problems.c (df_ru_bb_local_compute_process_def):
11485         Added code to handle artifical defs in the entry to a function.
11486         (df_ru_bb_local_compute): Ditto.
11487         (df_rd_bb_local_compute_process_def): Ditto.
11488         (df_rd_bb_local_compute): Ditto.
11489         (df_lr_bb_local_compute): Ditto.
11490         (df_ur_bb_local_compute): Ditto.
11491         (df_urec_bb_local_compute): Ditto.
11492         (df_chain_create_bb): Ditto.
11493         (df_ur_local_finalize): Removed entry.
11494         (df_urec_init): Ditto.
11495         (df_urec_local_finalize): Ditto.
11496         (df_ri_bb_compute): Added detection of last use of pseudos.
11497         * Makefile.in (df-scan.o): Updated dependencies.
11498         * config/mips/mips-protos.h (mips_set_live_on_entry): Added.
11499         * config/mips/mips.c (mips_set_live_on_entry): Added.
11500         * config/mips/mips.c (TARGET_EXTRA_LIVE_ON_ENTRY): Added value
11501         for target hook.
11502         * dce.c (marked_insn_p): Added code to handle artifical defs.
11503
11504 2006-01-27  H.J. Lu  <hongjiu.lu@intel.com>
11505
11506         * config/i386/emmintrin.h (_mm_cvtsd_f64): Add missing Intel
11507         intrinsic.
11508         (_mm_cvtsi128_si64): Likewise.
11509         (_mm_cvtsd_si64): Likewise.
11510         (_mm_cvttsd_si64): Likewise.
11511         (_mm_cvtsi64_sd): Likewise.
11512         (_mm_cvtsi64_si128): Likewise.
11513         * config/i386/mmintrin.h (_m_from_int64): Likewise.
11514         (_mm_cvtsi64_m64): Likewise.
11515         (_m_to_int64): Likewise.
11516         (_mm_cvtm64_si64): Likewise.
11517         * config/i386/xmmintrin.h (_mm_cvtss_si64): Likewise.
11518         (_mm_cvttss_si64): Likewise.
11519         (_mm_cvtsi64_ss): Likewise.
11520         (_mm_cvtss_f32): Likewise.
11521
11522 2006-01-27  Carlos O'Donell  <carlos@codesourcery.com>
11523
11524         * c-pragma.c (init_pragma) : Call c_register_pragma_with_expansion
11525         for pragma redefine_extname.
11526
11527 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
11528
11529         PR target/25864
11530         * libgcc-std.ver: Add GCC_4.1.0 symbol version.
11531         * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Only append
11532         -mno-minimal-toc to previous content.
11533         (bispecs): Remove goal.
11534         * config/rs6000/ppc64-fp.c: Define TMODES before including fp-bit.h.
11535         * config/rs6000/darwin-ldouble.c: Don't provide _xlq*@GCC_3.4
11536         compatibility aliases on powerpc-*-*gnu*.
11537         * config/rs6000/libgcc-ppc-glibc.ver: New file.
11538         * config/rs6000/t-ppccomm (SHLIB_MAPFILES): Append
11539         libgcc-ppc-glibc.ver on powerpc*-*-*gnu*.
11540         (TARGET_LIBGCC2_CFLAGS): Append -specs=ldblspecs.
11541         (ldblspecs): New goal.
11542         * config/rs6000/t-linux64 (SHLIB_MAPFILES): Removed.
11543         * mklibgcc.in: If $TPBIT is empty, don't compile _sf_to_tf and
11544         _df_to_tf.
11545         * config/fp-bit.h (TMODES): Don't define if none of TFLOAT,
11546         L_sf_to_tf or L_df_to_tf is defined.
11547
11548 2006-01-27  David Edelsohn  <edelsohn@gnu.org>
11549             Alan Modra  <amodra@bigpond.net.au>
11550
11551         PR target/25864
11552         * config/rs6000/linux.h (POWERPC_LINUX): Define.
11553         * config/rs6000/linux64.h (POWERPC_LINUX): Define.
11554         * config/rs6000/darwin-ldouble.c: Build on 32-bit PowerPC.
11555         * config/rs6000/darwin.h (TARGET_IEEEQUAD): Define to zero.
11556         * config/rs6000/aix.h (TARGET_IEEEQUAD): Define to zero.
11557         * config/rs6000/rs6000.c (rs6000_ieeequad): New variable.
11558         (rs6000_override_options): Initialize rs6000_ieeequad.
11559         Initialize TFmode format to ibm_extended_format if not
11560         TARGET_IEEEQUAD.
11561         (rs6000_handle_option): Accept -mabi= ibmlongdouble and
11562         ieeelongdouble.
11563         (rs6000_emit_move): Move !TARGET_IEEEQUAD as two parts.
11564         (rs6000_return_in_memory): Only return IEEEQUAD in memory.
11565         (function_arg_advance): IBM long double passed in two FPRs, not
11566         split.
11567         (function_arg): IBM long double passed in FPRs.
11568         (rs6000_pass_by_reference): Only IEEEQUAD passed by reference.
11569         (rs6000_gimplify_va_arg): IBM long double passed in two FPRs.
11570         Only multireg GPR aligned.
11571         (rs6000_init_libfuncs): Enable IBM long double functions if not
11572         IEEEQUAD.
11573         (rs6000_generate_compare): Use IBM long double compare if not
11574         TARGET_IEEEQUAD.
11575         * config/rs6000/rs6000.h (rs6000_ieeequad): Declare.
11576         (TARGET_IEEEQUAD): Define.
11577         (CANNOT_CHANGE_MODE_CLASS): Any mode larger than doubleword if
11578         not TARGET_IEEEQUAD.
11579         * config/rs6000/rs6000.md: Enable TFmode patterns if
11580         !TARGET_IEEEQUAD.
11581         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11582         * config/rs6000/svr4.h (SUBTARGET_OVERRIDE_OPTIONS): -msoft-float
11583         and -mlong-double-128 are incompatible.
11584         * doc/invoke.texi (-mabi): Collect options together.  Add
11585         ibmlongdouble and ieeelongdouble.
11586
11587 2006-01-27  Richard Sandiford  <richard@codesourcery.com>
11588
11589         * doc/rtl.texi (SYMBOL_REF_DATA): Adjust documentation for new
11590         opaque type.
11591         * optabs.c (init_one_libfunc): Use SET_SYMBOL_REF_DECL.
11592         * varasm.c (make_decl_rtl, build_constant_desc): Likewise.
11593         (force_const_mem): Use SET_SYMBOL_REF_CONSTANT.
11594         * rtl.h (rtunion_def): Remove rt_ptr.
11595         (X0PTR): Delete.
11596         (SYMBOL_REF_DATA): Use X0ANY instead of X0PTR.
11597         (SET_SYMBOL_REF_DECL, SET_SYMBOL_REF_CONSTANT): New macros.
11598         * config/i386/winnt.c (i386_pe_mark_dllexport)
11599         (i386_pe_mark_dllimport): Use SET_SYMBOL_REF_DECL.
11600
11601 2006-01-27 Gabor Loki <loki@gcc.gnu.org>
11602
11603         * cfgcleanup.c (try_crossjump_to_edge): Fix comment typo.
11604
11605 2006-01-26 Alexandre Oliva  <aoliva@redhat.com>
11606
11607         PR other/24829
11608         PR target/24831
11609         * gthr-dce.h: Do not gthrw-ify pthread_once_init,
11610         pthread_key_delete.  From John David Anglin.  gthrw-ify
11611         pthread_getunique_np only if it it's not a macro.  Delete
11612         UNUSED macro.
11613         (__gthread_objc_condition_allocate, __gthread_objc_condition_deallocate,
11614         __gthread_objc_condition_wait, __gthread_objc_condition_broadcast,
11615         __gthread_objc_condition_signal, __gthread_key_delete): Add
11616         "__attribute__ ((__unused__))" to unused arguments.
11617         (__gthread_recursive_mutex_init_function): Add missing return.
11618         * gthr-dce.h, gthr-tpf.h, gthr-solaris.h, gthr-posix.h,
11619         gthr-posix95.h: Use macro-based approach for name redirection
11620         on targets missing weakref.
11621
11622 2006-01-26  Zack Weinberg  <zackw@panix.com>
11623
11624         * genconditions.c (write_header): In generated code, #ifdef out
11625         all includes and fake declarations, except includes of bconfig.h
11626         and system.h, unless GCC_VERSION >= 3001.  Do not include
11627         gensupport.h in any case.
11628         (write_conditions): Generate a definition of struct c_test.  Add
11629         a comment to the generated #endif.
11630         (write_one_condition): Escape backslashes in string too.
11631         (write_writer): Generated code must escape backslashes and quote
11632         marks (but not newlines) in the strings it writes.
11633         * Makefile.in (build/gencondmd.o): Update dependencies.
11634
11635 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
11636
11637         PR target/25961
11638         * Makefile.in (insn-automata.o): Add header file dependencies.
11639         * genautomata.c: Add includes.
11640
11641 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
11642
11643         PR target/25961
11644         * Makefile.in (insn-automata.o): Add -Wno-error flag.
11645
11646 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
11647
11648         * configure.ac: Expect target tools paths to be passed from the toplevel
11649         and wrap the detection into AS_SET_VAR_IF.  Extract side-effects out of
11650         AS_SET_VAR_IF.
11651         * acinclude.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL): Remove.
11652
11653 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
11654
11655         PR c/25892
11656         * c.opt (Wpointer-sign): Init to -1.
11657         * c-opts.c (c_common_handle_option): Set to 1 on OPT_Wall and
11658         OPT_pedantic, to 0 otherwise.
11659         * doc/invoke.texi: Update.
11660
11661 2006-01-26  Paolo Bonzini  <bonzini@gnu.org>
11662
11663         * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
11664         constants provided by 80387 instructions in the destination mode.
11665
11666 2006-01-26  Richard Guenther  <rguenther@suse.de>
11667             Andrew Pinski  <pinskia@physics.uc.edu>
11668
11669         PR tree-opt/21470
11670         partial PR tree-opt/17064
11671         * tree-ssa-structalias.c (intra_create_variable_infos):
11672         Create heap variables for incoming parameters if
11673         flag_argument_noalias > 1.
11674         (find_what_p_points_to): Look through default defs of
11675         parameter decls.
11676
11677 2006-01-26  Jeff Law  <law@redhat.com>
11678
11679         PR ada/25900
11680         * tree-vrp.c (extract_range_from_assert): When merging a VR_RANGE
11681         with a VR_ANTI_RANGE and the VR_ANTI_RANGE is completely contained
11682         within the VR_RANGE, use the VR_RANGE as the result, not the
11683         VR_ANTI_RANGE.
11684         (adjust_range_with_scev): Reject ranges from SCEV which are out of
11685         bounds for the type.
11686
11687 2006-01-26  Daniel Berlin  <dberlin@dberlin.org>
11688
11689         * tree-ssa-alias.c (maybe_create_global_var): Change
11690         subvar walking to an assertion that we don't have subvar'd variables.
11691
11692 2006-01-26  Andrew Pinski  <pinskia@physics.uc.edu>
11693
11694         PR C/25861
11695         * c-common.c (c_common_truthvalue_conversion) <case ADDR_EXPR>:
11696         Use a new variable, inner.  PARM_DECLs are always non-weak.
11697
11698 2006-01-26  Shantonu Sen  <ssen@opendarwin.org>
11699
11700         * tree.h (OMP_CLAUSE_SUBCODE_CHECK): Add definition for
11701         --disable-checking.
11702
11703 2006-01-26  Adam Nemet  <anemet@caviumnetworks.com>
11704
11705         * config/mips/mips.md (*clear_upper32): New combiner pattern.
11706
11707 2006-01-26  Richard Earnshaw  <richard.earnshaw@arm.com>
11708
11709         * arm.md (smaxsi3, sminsi3): Convert to define_expand.
11710         (smax_insn, smin_insn, smax_0, smin_0): New.
11711
11712 2006-01-26  Hans-Peter Nilsson  <hp@axis.com>
11713
11714         PR target/25947
11715         * config/cris/cris.c (cris_order_for_addsi3): New function.
11716         * config/cris/cris-protos.h: Prototype it.
11717         * config/cris/cris.md (split for "move.S1 [rx=rx+i],ry")
11718         (split for "move.S1 ry,[rx=rx+i]", split for "clear.[bwd] [rx=rx+i]")
11719         (split for "mov(s|u).S1 [rx=rx+i],ry", split for "op.S1 [rx=rx+i],ry")
11720         (split for "op.S1 [rx=rx+i],ry (swapped)")
11721         (split for "op(s|u).S1 [rx=rx+i],ry")
11722         (split for "op(s|u).S1 [rx=rx+i],ry (swapped, plus or bound)"):
11723         Apply cris_order_for_addsi3 when generating addsi3 insns.
11724
11725 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
11726
11727         * tree.h (TREE_RANGE_CHECK): Fix range predicate.
11728         (TREE_BLOCK): Add call to EXPR_CHECK.
11729
11730 2006-01-25  Diego Novillo  <dnovillo@redhat.com>
11731
11732         PR 25886
11733         * tree-dump.c (dequeue_and_dump): Handle OMP_CLAUSE.
11734         * tree-pretty-print.c (dump_omp_clause): Extract from ...
11735         (dump_omp_clauses): ... here.
11736         (dump_generic_node): Handle OMP_CLAUSE.
11737         * tree.c (omp_clause_num_ops): New.
11738         (omp_clause_code_name): New.
11739         (tree_code_size): Handle OMP_CLAUSE.
11740         (tree_size): Likewise.
11741         (make_node): Document handling of OMP_CLAUSE.
11742         (tree_node_structure): Handle OMP_CLAUSE.
11743         (omp_clause_check_failed): New.
11744         (omp_clause_range_check_failed): New.
11745         (omp_clause_operand_check_failed): New.
11746         (build_omp_clause): New.
11747         (walk_tree): Adjust handling of OMP_CLAUSE_* nodes.
11748         * tree.h (enum omp_clause_code): Declare.
11749         (OMP_CLAUSE_SUBCODE_CHECK): Define.
11750         (OMP_CLAUSE_RANGE_CHECK): Define.
11751         (OMP_CLAUSE_ELT_CHECK): Define.
11752         (omp_clause_check_failed): Declare.
11753         (omp_clause_operand_check_failed): Declare.
11754         (omp_clause_range_check_failed): Declare.
11755         (OMP_CLAUSE_CHAIN): Do not use TREE_RANGE_CHECK.
11756         (OMP_CLAUSE_OPERAND): Use OMP_CLAUSE_RANGE_CHECK.
11757         (OMP_CLAUSE_PRIVATE_DEBUG): Use OMP_CLAUSE_SUBCODE_CHECK.
11758         (OMP_CLAUSE_LASTPRIVATE): Likewise.
11759         (OMP_CLAUSE_IF_EXPR): Likewise.
11760         (OMP_CLAUSE_NUM_THREADS_EXPR): Likewise.
11761         (OMP_CLAUSE_SCHEDULE_CHUNK_EXPR): Likewise.
11762         (OMP_CLAUSE_REDUCTION_CODE): Likewise.
11763         (OMP_CLAUSE_REDUCTION_INIT): Likewise.
11764         (OMP_CLAUSE_REDUCTION_MERGE): Likewise.
11765         (OMP_CLAUSE_REDUCTION_PLACEHOLDER): Likewise.
11766         Use tree_node.omp_clause.subcode instead of TREE_COMPLEXITY.
11767         (OMP_CLAUSE_SCHEDULE_KIND): Likewise.
11768         (OMP_CLAUSE_DEFAULT_KIND): Likewise.
11769         (OMP_CLAUSE_CODE): Define.
11770         (OMP_CLAUSE_SET_CODE): Define.
11771         (OMP_CLAUSE_CODE): Define.
11772         (OMP_CLAUSE_OPERAND): Define.
11773         (struct tree_omp_clause): Declare.
11774         (union tree_node): Add field 'omp_clause'.
11775         * treestruct.def (TS_OMP_CLAUSE): Define.
11776         * tree.def (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_SHARED
11777         OMP_CLAUSE_FIRSTPRIVATE, OMP_CLAUSE_LASTPRIVATE,
11778         OMP_CLAUSE_REDUCTION, OMP_CLAUSE_COPYIN,
11779         OMP_CLAUSE_COPYPRIVATE, OMP_CLAUSE_IF,
11780         OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE,
11781         OMP_CLAUSE_NOWAIT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Remove.
11782         (OMP_CLAUSE): Define.
11783         * print-tree.c (print_node): Handle OMP_CLAUSE.
11784         * omp-low.c: Adapt all uses of OMP_CLAUSE_* nodes.
11785         * c-typeck.c: Likewise.
11786         * gimplify.c: Likewise.
11787         * c-omp.c: Likewise.
11788         * tree-nested.c: Likewise.
11789         * tree-inline.c: Likewise.
11790         * c-parser.c: Likewise.
11791         * gimple-low.c (lower_omp_directive): Do not set TREE_BLOCK on
11792         clauses.
11793
11794 2006-01-25  Roger Sayle  <roger@eyesopen.com>
11795
11796         PR rtl-optimization/25703
11797         * combine.c (try_combine): Handle zero_extract and strict_low_part
11798         of non-lowpart SUBREGs for constant reg_subword_p set optimization.
11799
11800 2006-01-25  Peter Bergner  <bergner@vnet.ibm.com>
11801
11802         * global.c: Fix comment typos.
11803
11804 2006-01-25  Andrew Pinski  <pinskia@physics.uc.edu>
11805
11806         PR target/25758
11807         * config/i386/i386.c (output_pic_addr_const) <case SYMBOL_REF>:
11808         Use output_addr_const instead of assemble_name.
11809
11810 2006-01-25  Paolo Bonzini  <bonzini@gnu.org>
11811
11812         * Makefile.in (sched-vis.o): Update dependencies.
11813         * haifa-sched.c (sched_finish): Clear current_sched_info.
11814         * cfg.c (dump_bb_info): New, split from dump_flow_info.
11815         (dump_flow_info): Call it.
11816         * passes.c (execute_todo): Call print_rtl_slim_with_bb to make
11817         a slim RTL dump.
11818         * basic-block.h (dump_bb_info): Declare.
11819         * tree-dump.c (dump_enable_all): OR the flags of a -fdump-tree-all
11820         option, and apply options only for dump files whose TDF_RTL,
11821         TDF_TREE, or TDF_IPA bits match.
11822         * rtl.h: Declare new functions exported from sched-vis.c.
11823         * sched-vis.c: Enable also if scheduling is not used.
11824         (print_value): Print the mode of registers if not inside scheduling.
11825         (print_insn): Make it work outside the scheduler.  Beautify the output
11826         a bit.
11827         (dump_insn_slim, debug_insn_slim, print_rtl_slim_with_bb): New.
11828
11829 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
11830
11831         * doc/rtl.texi (SYMBOL_REF_CONSTANT, SYMBOL_REF_DATA): Document.
11832         * gengtype.c (adjust_field_rtx_def): Garbage-collect field 2 of
11833         a SYMBOL_REF as either a tree or a constant_descriptor_rtx,
11834         depending on the value of CONSTANT_POOL_ADDRESS_P.
11835         * optabs.c (init_one_libfunc): Nullify SYMBOL_REF_DATA rather than
11836         SYMBOL_REF_DECL.
11837         * varasm.c (make_decl_rtl, build_constant_desc): Set SYMBOL_REF_DATA
11838         rather than SYMBOL_REF_DECL.
11839         (rtx_constant_pool): Remove const_rtx_sym_htab.
11840         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): Delete.
11841         (init_varasm_status): Don't initialize const_rtx_sym_htab.
11842         (force_const_mem): Point SYMBOL_REF_DATA to the constant pool entry.
11843         Remove handling of const_rtx_sym_htab.
11844         (find_pool_constant): Delete.
11845         (get_pool_constant, get_pool_constant_mark): Use SYMBOL_REF_CONSTANT
11846         rather than find_pool_constant.
11847         (get_pool_constant_for_function): Delete.
11848         (get_pool_mode, mark_constant): Use SYMBOL_REF_CONSTANT rather than
11849         find_pool_constant.
11850         * rtl.h (rtunion_def): Add rt_constant and rt_ptr fields.
11851         (X0CONSTANT, X0PTR, SYMBOL_REF_DATA): New macros.
11852         (SYMBOL_REF_DECL): Return NULL if CONSTANT_POOL_ADDRESS_P.
11853         (SYMBOL_REF_CONSTANT): New macro.
11854         (get_pool_constant_for_function): Delete.
11855         * config/i386/winnt.c (i386_pe_mark_dllexport): Set SYMBOL_REF_DATA
11856         rather than SYMBOL_REF_DECL.
11857         (i386_pe_mark_dllimport): Likewise.
11858         * config/rs6000/rs6000.c (rs6000_emit_move): Copy SYMBOL_REF_DATA
11859         rather than SYMBOL_REF_DECL.
11860         * config/darwin.c (machopic_indirect_data_reference): Likewise.
11861         (machopic_indirect_call_target): Likewise.
11862
11863 2006-01-25  Eric Botcazou  <ebotcazou@adacore.com>
11864
11865         * flow.c (delete_noop_moves): Add missing EOL to dump message.
11866
11867 2006-01-25  Richard Sandiford  <richard@codesourcery.com>
11868
11869         * genattrtab.c (gen_bypass): Allow bypasses to contain whitespace.
11870
11871 2006-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
11872
11873         * config/sh/predicates.md (sh_register_operand): Accept CONST_DOUBLE.
11874
11875 2006-01-24  David Daney  <ddaney@avtrex.com>
11876
11877         PR java/25816
11878         * configure.ac (enable_tls): New enable option.
11879         (HAVE_AS_TLS): Don't do assembler check if enable_tls set.
11880         * configure: Regenerate.
11881         * doc/install.texi (--enable-tls): Document new option.
11882         (--disable-tls): Ditto.
11883
11884 2006-01-24  Richard Henderson  <rth@redehat.com>
11885
11886         * alias.h (ALIAS_SET_MEMORY_BARRIER): New.
11887         * alias.c (true_dependence): Respect it.
11888         (canon_true_dependence, write_dependence_p): Likewise.
11889         * builtins.c (get_builtin_sync_mem): Set it.
11890
11891 2006-01-25  Zdenek Dvorak <dvorakz@suse.cz>
11892
11893         * loop-iv.c (iv_analysis_loop_init): Use df analysis in a more
11894         efficient way.
11895
11896 2006-01-24  DJ Delorie  <dj@redhat.com>
11897
11898         * expmed.c (store_bit_field): Don't arbitrarily deny using insv
11899         for storing constants in single-bit bitfields.
11900
11901 2006-01-25  Ben Elliston  <bje@au.ibm.com>
11902
11903         * dfp.c (dfp_byte_swap): Use uint32_t and not unsigned long.
11904
11905 2006-01-24  Andrew Pinski  <pinskia@physics.uc.edu>
11906
11907         PR tree-opt/25860
11908         * tree-ssa-pre.c (phi_translate): Return NULL
11909         for AGGREGATE_TYPE's.
11910
11911 2006-01-24  Zack Weinberg  <zackw@panix.com>
11912
11913         * genautomata.c (process_state_for_insn_equiv_partition):
11914         Use xcalloc for insn_arcs_array.
11915         * vec.h (DEF_VEC_ALLOC_FUNC_I): New set of templates.
11916         (DEF_VEC_ALLOC_I): Use it, not DEF_VEC_ALLOC_FUNC_P.
11917
11918 2006-01-24  Richard Henderson  <rth@redhat.com>
11919
11920         * genextract.c (VEC_safe_set_locstr): Take VEC by reference;
11921         update all callers.
11922
11923 2006-01-23  Paolo Bonzini  <bonzini@gnu.org>
11924
11925         PR rtl-optimization/25890
11926         PR rtl-optimization/25905
11927         * combine.c (expand_compound_operation, expand_field_assignment):
11928         Fail if the bitfield's final position is out of bounds.
11929
11930 2006-01-24  Ian Lance Taylor  <ian@airs.com>
11931
11932         PR middle-end/25930
11933         * cgraphunit.c (cgraph_output_in_order): Don't clear
11934         cgraph_asm_nodes until after asm strings have been output.
11935
11936 2006-01-23  Adam Nemet  <anemet@caviumnetworks.com>
11937
11938         * fix-header.c (read_scan_file): Add new parameter imultilib when
11939         calling register_include_chains.
11940
11941 2006-01-23  Diego Novillo  <dnovillo@redhat.com>
11942
11943         * omp-low.c: Update documentation.
11944
11945 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
11946             Daniel Berlin  <dberlin@dberlin.org>
11947
11948         PR tree-opt/25315
11949         PR tree-opt/25857
11950         * tree-ssa-pre.c (insert_extra_phis): If an incomming edge is abnormal
11951         return from the function.
11952
11953 2006-01-22  Zack Weinberg  <zackw@panix.com>
11954
11955         * rtl.def (match_code): Add second argument.
11956         * genpreds.c (write_extract_subexp): New function.
11957         (write_match_code): Add path argument.  Use write_extract_subexp.
11958         (write_predicate_expr): Pass path to write_match_code.
11959         (mark_mode_tests): MATCH_CODE applied to a subexpression does
11960         not perform a mode test.
11961         * genrecog.c (compute_predicate_codes): MATCH_CODE applied to
11962         a subexpression does not constrain the top-level code set.
11963         * read-rtl.c (read_rtx_variadic): New function.
11964         (read_rtx_1): Use it; allow AND and IOR to be variadic.
11965         * doc/md.texi: Document new notation.
11966         * config/i386/predicates.md (cmpsi_operand_1): Fold into ...
11967         (cmpsi_operand): ... here, using new notation.
11968
11969 2006-01-22  Zack Weinberg  <zackw@panix.com>
11970
11971         * varray.c: Remove GENERATOR_FILE #ifdefs.
11972
11973 2006-01-22  Zack Weinberg  <zackw@panix.com>
11974
11975         * genautomata.c (output_reserved_units_table): Emit nothing if
11976         description->query_units_num is zero.  Remove extra blank line.
11977         (output_cpu_unit_reservation_p): Short circuit
11978         if description->query_units_num is zero.
11979
11980 2006-01-22  Zack Weinberg  <zackw@panix.com>
11981
11982         * genattrtab.c: Don't include genattrtab.h.  Define ATTR_NONE
11983         and ATTR_SPECIAL (from genattrtab.h).  Don't define num_dfa_decls
11984         nor any of the random handful of variables that used to be necessary
11985         when this program was linked with rtlanal.o.  Prune set of forward
11986         function declarations.
11987         (struct attr_desc): Remove static_p field.
11988         (hash_obstack, temp_obstack, attr_hash_table, attr_printf)
11989         (check_attr_test, make_internal_attr, make_numeric_value): Make static.
11990         (attr_string): Do not read the character one past the length of
11991         the string.
11992         (write_attr_get, find_attr, make_internal_attr): Don't touch static_p.
11993         (struct insn_reserv, all_insn_reservs, last_insn_reserv_p)
11994         (n_insn_reservs, gen_insn_reserv, struct bypass_list, all_bypasses)
11995         (n_bypasses, gen_bypass_1, gen_bypass, process_bypasses)
11996         (make_automaton_attrs): New.
11997         (main): Do not call into genautomata.  Call local gen_bypass
11998         and gen_insn_reserv as appropriate.  Call make_automaton_attrs.
11999         Remove special case for insn_alts.
12000         * genautomata.c: Include gensupport.h; not genattrtab.h nor
12001         varray.h (leftover from previous change).  Prune set of forward
12002         function declarations.  Remove state_alts fields from all
12003         structures.  Remove state_alts_table from struct automaton.
12004         Make everything except main static.  Do not maintain num_dfa_decls.
12005         Do not maintain state_alts fields of various structures.
12006         (process_decls): Don't validate condexp for dm_insn_reserv decls.
12007         (add_arc): Remove state_alts argument.  All callers updated.
12008         (output_reserved_units_table): Emit #ifdef here...
12009         (output_tables): ...not here.  Don't generate state_alts tables.
12010         (expand_automata): Don't generate attributes.
12011         (write_automata): Don't generate state_alts functions.
12012         (main): New function.
12013         (it_is_empty_reserv_sets, output_state_alts_full_vect_name)
12014         (output_state_alts_comb_vect_name, output_state_alts_check_vect_name)
12015         (AUTOMATON_STATE_ALTS_MACRO_NAME, INTERNAL_STATE_ALTS_FUNC_NAME)
12016         (STATE_ALTS_FUNC_NAME, INSN_DEFAULT_LATENCY_FUNC_NAME)
12017         (BYPASS_P_FUNC_NAME, output_state_alts_table)
12018         (output_automata_list_state_alts_code, output_internal_state_alts_func)
12019         (output_state_alts_func, make_insn_alts_attr, make_bypass_attr)
12020         (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr):
12021         Delete.
12022         * genattr.c: Declare internal_dfa_insn_code in insn-attr.h.
12023         * genattrtab.h: Delete file.
12024         * Makefile.in (OBJS-common): Add insn-automata.o.
12025         (insn-automata.o): New rule.
12026         (simple_generated_c): Add insn-automata.c.
12027         (build/genattrtab.o, build/genautomata.o): Update dependencies.
12028         (genprogmd): Add automata.
12029         (build/genattrtab): Needs no extra objects nor libraries.
12030         (build/genautomata): Needs build/vec.o and -lm.
12031
12032 2006-01-22  Zack Weinberg  <zackw@panix.com>
12033
12034         * genautomata.c (process_state_longest_path, max_dfa_issue_rate)
12035         (output_dfa_max_issue_rate, locked_states_num): Delete.
12036         (struct automaton): Add locked_states field.
12037         (output_dead_lock_vect): Save number of locked states in
12038         automaton->locked_states.  If it is zero, don't print anything.
12039         (output_max_insn_queue_index_def): Define max_insn_queue_index const.
12040         (output_internal_dead_lock_func): Only test the dead_lock_vect
12041         for automata that have locked states.
12042         (output_statistics): Always print the number of locked states for
12043         each automaton.  Calculate total number of locked states here.
12044         (write_automata): Don't call output_dfa_max_issue_rate.
12045         * genattrtab.c: Define length_unit_log as a const variable.
12046         * genattr.c: Don't emit MAX_DFA_ISSUE_RATE.  Declare
12047         max_insn_queue_index const.
12048         * final.c (length_unit_log): Declare const.
12049         * doc/tm.texi: Remove all references to MAX_DFA_ISSUE_RATE.
12050
12051 2006-01-22  Zack Weinberg  <zackw@panix.com>
12052
12053         * genautomata.c: Include vec.h, not varray.h.
12054         Delete vla_ptr_t, all of the VLA_PTR_ macros, and all of the
12055         VLA_HWINT_ macros.  Change vla_hwint_t to a typedef for
12056         VEC(vect_el_t,heap) *.  Convert all uses of VLA_* macros to
12057         VEC_* macros operating on appropriately typed vectors, or to
12058         malloced arrays when the size is known in advance.  Const-ify
12059         many char* variables and function arguments.  No functional changes.
12060         * Makefile.in (build/varray.o): Delete rule.
12061         (build/genattrtab): Depend on build/vec.o instead of build/varray.o.
12062         (build/genautomata.o): Depend on vec.h instead of $(VARRAY_H).
12063
12064 2006-01-22  Zack Weinberg  <zackw@panix.com>
12065
12066         * gensupport.c: Define get_insn_name and record_insn_name here.
12067         (read_md_rtx): Call record_insn_name as appropriate.
12068         * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
12069         * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
12070         * genpreds.c, genrecog.c: Don't define get_insn_name nor
12071         record_insn_name.
12072         * Makefile.in (BUILD_SUPPORT, BUILD_PRINT): Fold into BUILD_RTL.
12073         (BUILD_VARRAY): Delete.
12074         (genprognormal): Rename genprogmd.  Fold in all programs from
12075         genprognoprint; also attrtab.
12076         (build/genattrtab): Just mention genautomata.o and varray.o.
12077         Reorganize a bit, add comments to make the categories clearer.
12078
12079 2006-01-22  Zack Weinberg  <zackw@panix.com>
12080
12081         * genconditions.c (condition_table, add_condition): Delete.
12082         (write_conditions): Don't emit n_insn_conditions nor
12083         insn_elision_unavailable.  Issue the gcc version #ifdef here,
12084         inside the table, with no #else clause ...
12085         (write_header): ...not here.
12086         (write_writer): New function.
12087         (main): Don't initialize condition_table.  Use add_c_test.
12088         Call write_writer.
12089         * gensupport.c (init_md_reader_args_cb): Handle multiple input
12090         files on the command line.
12091         (maybe_eval_c_test): Don't check insn_elision_unavailable.
12092         Return -1 if there is no entry in the table, don't abort.
12093         (add_c_test, traverse_c_tests): New functions.
12094         * gensupport.h (insn_elision_unavailable, insn_conditions)
12095         (n_insn_conditions): Delete declarations.
12096         (add_c_test, traverse_c_tests): Declare.
12097         * read-rtl.c: Include gensupport.h.
12098         (read_conditions): New function.
12099         (read_rtx): If read_rtx_1 returns 0, treat as EOF.
12100         (read_rtx_1): If we get EOF when we were looking for an initial
12101         open paren, return 0.  Call read_conditions when appropriate.
12102         * Makefile.in: Kill BUILD_EARLY_SUPPORT and all references to
12103         dummy-conditions.o.  Eliminate references to insn-conditions.o,
12104         or change them to build/gencondmd.o, as appropriate.  Remove
12105         insn-constants.h from $(simple_generated_h) and insn-conditions.c
12106         from $(simple_generated_c).  For all files remaining in those
12107         two lists, add insn-conditions.md to the generator command line.
12108         Give insn-constants.h/s-constants their own rules.  Add rules
12109         for build/gencondmd.c, s-conditions, insn-conditions.md, s-condmd.
12110         (build/read-rtl.o): Depend on gensupport.h.
12111         (genprognormal): Include preds.
12112         (genprogearly): Rename genprognoprint; only difference is now that
12113         they don't link with $(BUILD_PRINT).
12114         * dummy-conditions.c: Delete.
12115
12116 2006-01-22  Zack Weinberg  <zackw@panix.com>
12117
12118         * genextract.c: Don't include insn-config.h.  Do include vec.h.
12119         Declare vectors of int, char, and locstr.
12120         (locstr): New typedef.
12121         (struct extraction): Make all array fields into bare pointers.
12122         (insn_name_ptr, insn_name_ptr_size): Move down by get_insn_name.
12123         (insn_code_number): Delete.
12124         (accum_extract): New struct.
12125         (VEC_safe_set_locstr, VEC_char_to_string): New functions.
12126         (gen_insn): Take insn_code_number as an argument.  Use an
12127         accum_extract structure instead of loading data directly into
12128         a struct extraction, and having to know how big it might get.
12129         (walk_rtx): Operate entirely on an accum_extract structure.
12130         (print_path): Avoid unnecessary use of printf.
12131         (print_header): New function, split out of main.  Distinguish
12132         more carefully between an unrecognizable insn and an insn that
12133         has the code number of a define_expand.
12134         (main): Pass insn_code_number to gen_insn.  Call print_header
12135         only after parsing.  Avoid unnecessary use of printf.
12136         * Makefile.in (build/vec.o): New rule.
12137         (build/genextract): Depend on build/vec.o.
12138         (build/genextract.o): Don't depend on insn-config.h.
12139
12140 2006-01-22  Zack Weinberg  <zackw@panix.com>
12141
12142         * Makefile.in: Consolidate most rules that use $(CC_FOR_BUILD) and/or
12143         $(RUN_GEN).  Use pattern rules to factor out as much boilerplate as
12144         practical.  Eliminate per-generator-program link rules.
12145
12146 2006-01-23  Andrew Pinski  <pinskia@physics.uc.edu>
12147
12148         PR middle-end/24437
12149         * tree-ssa-ccp.c (fold_stmt): Move folding of OBJ_TYPE_REF
12150         with a call expr to ...
12151         * fold-const.c (fold_ternary) <case CALL_EXPR>: Here.
12152
12153 2006-01-23  Richard Guenther  <rguenther@suse.de>
12154
12155         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Add comment
12156         before make_edge with conditional EDGE_TRUE_VALUE.
12157
12158 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
12159         Jan Hubicka  <jh@suse.cz>
12160         Richard Guenther  <rguenther@suse.de>
12161
12162         PR rtl-optimization/25654
12163         * cfgexpand.c (aggregate_contains_union_type): New function.
12164         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
12165         for structure variables that contain a union type.
12166
12167 2006-01-23  Richard Sandiford  <richard@codesourcery.com>
12168
12169         * gengtype.c (new_structure): Return the structure.
12170         (create_option): Add an extra "next" argument.
12171         (create_field): New function.
12172         (adjust_field_rtx_def): Use create_option and create_field.
12173         Remove a now-unnecessary call to find_structure.
12174         (adjust_field_tree_def): Likewise.
12175         (note_yacc_type): Remove an unnecessary call to find_structure.
12176         * gengtype.h (new_structure): Return the structure.
12177         (create_option): Add an extra argument.
12178         * gengtype-yacc.y (type): Remove unnecessary calls to find_structure.
12179         (option): Adjust calls to create_option.
12180
12181 2006-01-22  David Edelsohn  <edelsohn@gnu.org>
12182
12183         * config/rs6000/aix.h (STACK_BOUNDARY): Define.
12184
12185 2006-01-22  Paul Brook  <paul@codesourcery.com>
12186         Peter Barada  <peter@the-baradas.com>
12187
12188         * config/m68k/m68k.md: Add Coldfire FPU support.
12189         Define FP mode macro and associated attributes.
12190         Use it for float mode patterns.
12191         * config/m68k/linux.h (FUNCTION_VALUE): Use m68k_function_value.
12192         (LIBCALL_VALUE): Use m68k_libcall_value.
12193         * config/m68k/m68k-protos.h (m68k_libcall_value): Add prototype.
12194         (m68k_function_value): Ditto.
12195         (emit_move_sequence): Ditto.
12196         * config/m68k/m68kemb.h (LIBCALL_VALUE): Use m68k_libcall_value.
12197         * config/m68k/m68k-none.h (ASM_SPEC): Add mcfv4e.
12198         * config/m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcfv4e.
12199         (MULTILIB_EXCEPTIONS): Ditto.
12200         * config/m68k/m68k.opt: Add mcfv4e.
12201         * config/m68k/m68k.c (m68k_handle_option): Handle OPT_mcfv4e.
12202         (m68k_compute_frame_layout): Include space for ColdFire FPU regs.
12203         (m68k_output_function_prologue): Save ColdFire FPU registers.
12204         (m68k_output_function_epilogue): Restore ColdFire FPU registers.
12205         (force_mode, fp_reg_operand, emit_move_sequence): New functions.
12206         (m68k_regno_mode_ok): Don't allow types larget than 8 bytes in
12207         ColdFire FPU registers.
12208         (m68k_libcall_value, m68k_function_value): New functions.
12209         * config/m68k/netbsd-elf.h (FUNCTION_VALUE): Use m68k_function_value.
12210         (LIBCALL_VALUE): Use m68k_libcall_value.
12211         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define __mcfv4e__.
12212         (MASK_COLDFIRE): Add MASK_CFV4E.
12213         (TARGET_COLDFIRE_FPU, TARGET_HARD_FLOAT, TARGET_FP_REG_SIZE): New.
12214         (MODES_TIEABLE_P): Use TARGET_HARD_FLOAT.
12215         (REG_CLASS_FROM_LETTER, PREFERRED_RELOAD_CLASS): Ditto.
12216         (GO_IF_COLDFIRE_FPU_LEGITIMATE_ADDRESS): Define.
12217         (GO_IF_LEGITIMATE_ADDRESS): Use it.
12218         (LEGITIMIZE_ADDRESS): Handle ColdFire FPU addresses.
12219         * doc/invoke.tex: Document -mcfv4e on m68k.
12220
12221 2006-01-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
12222
12223         * doc/contribute.texi: Change CVS to SVN and update the corresponding
12224         URL.
12225
12226 2006-01-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12227
12228         PR c++/16190
12229         * c-opts.c (c_common_handle_option): Don't include
12230         -Wnon-virtual-dtor in -Wall; enable if -Weffc++.
12231         * doc/invoke.texi (C++ Dialect Options): Document that
12232         -Wnon-virtual-dtor is no longer included in -Wall.
12233
12234 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
12235
12236         * gcov.c (print_version), gcov-dump.c (print_version),
12237         mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
12238         dates.
12239
12240 2006-01-21  Kenneth Zadeck <zadeck@naturalbridge.com>
12241
12242         * df-scan.c (problem_SCAN): Added NULL reset function.
12243         (df_scan_reset_blocks): Added code to call reset block function
12244         (df_bb_refs_delete) Fixed comment.
12245         (df_insn_refs_delete): Made tolerant of deleting non existent info
12246         for dataflow problems that need to be reset.
12247         * df-core.c (df_set_blocks): Ditto.
12248         * df.h (struct df_problem): Added reset_fun.
12249         * df-problems.c (problem_RU, problem_RD, problem_LR, problem_UR,
12250         problem_UREC, problem_CHAIN, problem_RI): Initialized reset_fun field.
12251         (df_chain_insn_reset, df_chain_bb_reset, df_chain_reset): New
12252         functions to clear out all references to def-use or use-def chains.
12253
12254 2006-01-21  Ben Elliston  <bje@au.ibm.com>
12255
12256         * varasm.c (assemble_real): Initialise data array.
12257
12258 2006-01-20  Paul Brook  <paul@codesourcery.com>
12259
12260         Merge from csl-arm-branch.
12261         2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
12262         * config/arm/arm.md (movdi): Force operands[1] to a register
12263         if we have a non-register source.
12264         (*arm_movdi, *movdf_soft_insn): Require that one of the
12265         operands be a register.
12266         * config/arm/iwmmxt.md (*iwmmxt_arm_movdi): Likewise.
12267         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
12268
12269 2006-01-20  DJ Delorie  <dj@redhat.com>
12270
12271         * varasm.c (initializer_constant_valid_p): Allow pointers
12272         initialized from integer constants of lesser precision.
12273         (output_constant): Allow non-int-sized pointer modes to be
12274         initialized from integer constants.
12275
12276 2006-01-20  Joseph S. Myers  <joseph@codesourcery.com>
12277
12278         PR libstdc++/25524
12279         * cppdefault.h (struct default_include): Add multilib flag.
12280         * cppdefault.c (cpp_include_defaults): Set it.
12281         * c.opt (-imultilib): New option.
12282         * c-opts.c (imultilib): New.
12283         (c_common_handle_option): Handle -imultilib.
12284         (c_common_post_options): Likewise.
12285         * c-incpath.c (add_standard_paths, register_include_chains):
12286         Likewise.
12287         * c-incpath.h (register_include_chains): Add extra parameter.
12288         * gcc.c (do_spec_1): Generate -imultilib option.
12289         (The Specs Language): Update %I description.
12290         (process_command): Update copyright notice.
12291         * doc/cppopts.texi (-imultilib): Document.
12292         * doc/invoke.texi (-imultilib): Include in option summary.
12293         (%I): Update specs documentation.
12294
12295 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
12296
12297         * loop-iv.c (iv_analysis_loop_init): Use df in more conservative way.
12298
12299 2006-01-20  Richard Sandiford  <richard@codesourcery.com>
12300
12301         * stmt.c (case_bit_test_cmp): Stabilize the sort using code
12302         label numbers.
12303
12304 2006-01-20  Richard Guenther  <rguenther@suse.de>
12305         Steven Bosscher <stevenb.gcc@gmail.com>
12306
12307         PR rtl-optimization/24626
12308         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Don't set
12309         EDGE_TRUE_VALUE if in RTL mode.
12310
12311         Revert
12312         2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
12313         * cfgrtl.c (rtl_verify_flow_info_1): Fix.
12314
12315 2006-01-20  Dirk Mueller  <dmueller@suse.com>
12316
12317         PR c++/5520
12318         * c-parser.c (c_parser_if_body): Use build_empty_stmt()
12319         instead of a special NOP marker.
12320         * c-typeck.c (c_finish_if_stmt): Remove obsoleted special
12321         NOP marker handling.
12322         * c-common.h (empty_body_warning): Add forward declaration.
12323         * c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
12324         Now uses IS_EMPTY_STMT() instead of special NOP markers.
12325
12326 2006-01-20  Paul Brook  <paul@codesourcery.com>
12327
12328         * Makefile.in (lang_checks): Keep going if mkdir fails.
12329
12330 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12331
12332         * df-scan.c (df_scan_free_bb_info): Added basic block parameter to
12333         be able to clean out basic block when not necessary.
12334         (df_scan_free): Fixed to properly delete information if df is
12335         unused before calling df_finish.
12336         (df_scan_alloc, df_rescan_blocks, df_reg_chain_unlink,
12337         df_insn_create_insn_record, df_bb_refs_record): Fixed formatting
12338         or comment typos.
12339         (df_bb_refs_delete): New function.
12340         (df_refs_delete): Moved per block code to df_bb_refs_delete.
12341         * df-core.c (df_set_blocks): Added code to properly clean out
12342         unused blocks if they are not part of the blocks to consider.
12343         Added additional null check.
12344         (df_compact_blocks): Added basic block parameter to free_bb_fun to
12345         be able to clean out basic block when not necessary
12346         * df.h (df_free_bb_function): Ditto.
12347         (df_bb_refs_delete): New function.
12348         * df-problems.c (df_ru_free_bb_info, df_rd_set_bb_info,
12349         df_lr_set_bb_info, df_ur_free_bb_info, df_urec_free_bb_info):Added
12350         basic block parameter to be able to clean out basic block when not
12351         necessary.
12352         (df_ru_alloc, df_rd_alloc): Fixed dyslexic overflow test.
12353         (df_ru_free, df_rd_free, df_lr_free, df_ur_free, df_urec_free):
12354         Fixed to properly delete information if df is unused before
12355         calling df_finish.
12356
12357 2006-01-19  Kenneth Zadeck <zadeck@naturalbridge.com>
12358
12359         PR rtl-optimization/25799
12360         * df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
12361         Corrected confluence operator to remove bits from op2 before oring
12362         with op1 rather than removing bits from op1.
12363         (df_ru_transfer_function): Corrected test on wrong bitmap which
12364         caused infinite loop.  Both of these problems were introduced in
12365         the dataflow rewrite.
12366
12367 2006-01-19  DJ Delorie  <dj@redhat.com>
12368
12369         * reload1.c (find_reload_regs): Note the details of reload
12370         failures in the dump file.
12371         (spill_failure): Likewise.
12372
12373 2006-01-20  Zdenek Dvorak <dvorakz@suse.cz>
12374
12375         * loop-iv.c: Include df.h and hashtab.h.
12376         (enum iv_grd_result): New enum.
12377         (DF_REF_IV, DF_REF_IV_SET): New macros.
12378         (struct biv_entry): New.
12379         (df, bivs): New global variables.
12380         (struct insn_info, insn_info, last_def, bivs, max_insn_no, max_reg_no,
12381         assign_luids, mark_sets, kill_sets, mark_single_set, simple_set_p):
12382         Removed.
12383         (clear_iv_info, latch_dominating_def, record_iv, iv_analyze_expr,
12384         iv_analyze_result, iv_analyze_def, biv_hash, biv_eq,
12385         analyzed_for_bivness_p, record_biv): New functions.
12386         (iv_analysis_loop_init, iv_get_reaching_def, simple_reg_p,
12387         get_biv_step_1, get_biv_step, iv_analyze_biv, iv_analyze_op,
12388         iv_analyze, biv_p, iv_analysis_done): Work with df representation of
12389         UD chains.
12390         (iv_constant, iv_subreg, iv_extend, iv_mult, iv_shift): Do not set
12391         analysed.
12392         (iv_number_of_iterations): Use new interface to iv analysis.
12393         * loop-unroll.c: Do not include varray.h.
12394         (analyze_iv_to_split_insn): Use new interface to iv
12395         analysis.
12396         * loop-unswitch.c (may_unswitch_on): Ditto.
12397         * df.c (df_bitmaps_free): Only work for bbs for that structures are
12398         allocated.
12399         (df_bb_modify): Realloc tables to the new index.
12400         (df_find_use): New function.
12401         * df.h (df_find_use): Declare.
12402         * optabs.c (expand_unop): Make the mode of the REG_EQUAL node be
12403         outmode.
12404         * cfgloop.h (struct rtx_iv): Remove analysed field.
12405         (iv_get_reaching_def): Removed.
12406         (iv_analyze_result, iv_analyze_expr, iv_current_loop_df): Declare.
12407         * Makefile.in (loop-unroll.o): Remove VARRAY_H dependency.
12408         (loop-iv.o): Add df.h and hashtab.h dependency.
12409         * df-problems.c (df_ru_alloc, df_rd_alloc): Fix memory reallocation.
12410
12411 2006-01-20  Alan Modra  <amodra@bigpond.net.au>
12412
12413         PR target/25668
12414         * libgcc2.c (__floatdisf, __floatdidf): Don't use IBM Extended
12415         Double TFmode.
12416         (__floatundisf, __floatundidf): Likewise.
12417         * libgcc2.h (IS_IBM_EXTENDED): Define.
12418
12419 2006-01-19  DJ Delorie  <dj@redhat.com>
12420
12421         * config/m32c/m32c.h (REG_ALLOC_ORDER): Define.
12422
12423 2006-01-19  Paul Brook  <paul@codesourcery.com>
12424
12425         * config/arm/arm.c (arm_compute_func_type): Treat all functions
12426         as nothrow when unwinding tables are disabled.
12427
12428 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12429
12430         PR testsuite/25171
12431         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
12432         of bit-field" when in system header.
12433
12434 2006-01-19  DJ Delorie  <dj@redhat.com>
12435
12436         * config/m32c/m32c.c (m32c_prepare_shift): Add code to deal with
12437         the 16 bit shift limit of the m16c.
12438
12439 2006-01-19  Andrew Pinski  <pinskia@physics.uc.edu>
12440
12441         PR target/22099
12442         * config/i386/i386.md (builtin_setjmp_receiver): Don't emit the label.
12443         * config/i386/i386.c (output_set_got): Output the label if we have one
12444         for the TARGET_DEEP_BRANCH_PREDICTION case.
12445
12446 2006-01-19  Jan Hubicka  <jh@suse.cz>
12447             H.J. Lu  <hongjiu.lu@intel.com>
12448             Evandro Menezes <evandro.menezes@amd.com>
12449
12450         * invoke.texi (generic): Document
12451         (i686) Update.
12452         * config.gcc: Make x86_64-* and i686-* default to generic tunning.
12453         * i386.h (TARGET_GENERIC32, TARGET_GENERIC64, TARGET_GENERIC,
12454         TARGET_USE_INCDEC, TARGET_PAD_RETURNS): New macros.
12455         (x86_use_incdec, x86_pad_returns): New variables
12456         (TARGET_CPU_DEFAULT_generic): New constant
12457         (TARGET_CPU_DEFAULT_NAMES): Add generic.
12458         (enum processor_type): Add generic32 and generic64.
12459         * i386.md (cpu attribute): Add generic32/generic64
12460         (movhi splitter): Behave sanely when both partial_reg_dependency and
12461         partial_reg_stall are set.
12462         (K8 splitters): Enable for generic as well.
12463         * predicates.md (incdec_operand): Use TARGET_INCDEC
12464         (aligned_operand): Avoid memory mismatch stalls.
12465         * athlon.md: Enable for generic64, new patterns for 128bit moves.
12466         * ppro.md: Enable for generic32
12467         * i386.c (generic64_cost, generic32_cost): New.
12468         (m_GENERIC32, m_GENERIC64, m_GENERIC): New macros.
12469         (x86_use_leave): Enable for generic64.  (x86_use_sahf,
12470         x86_ext_80387_constants): Enable for generic32.  (x86_push_memory,
12471         x86_movx, x86_unroll_strlen, x86_deep_branch, x86_use_simode_fiop,
12472         x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8,
12473         x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves,
12474         x86_partial_reg_dependency, x86_memory_mismatch_stall,
12475         x86_accumulate_outgoing_args, x86_prologue_using_move,
12476         x86_epilogue_using_move, x86_arch_always_fancy_math_387,
12477         x86_sse_partial_reg_dependency, x86_four_jump_limit, x86_schedule):
12478         Enable for generic.
12479         (x86_use_incdec, x86_pad_returns): New.
12480         (override_options): Add generic32 and generic64, translate "generic"
12481         to generic32/generic64 and "i686" to "generic32", refuse
12482         "generic32"/"generic64" as arch target.
12483         (ix86_issue_rate, ix86_adjust_cost): Handle generic as athlon.
12484         (ix86_reorg): Honor PAD_RETURNS.
12485
12486 2006-01-19  Diego Novillo  <dnovillo@redhat.com>
12487
12488         * tree-pretty-print.c (dump_generic_node): Handle
12489         OMP_PARALLEL_FN, OMP_PARALLEL_DATA_ARG and OMP_RETURN_EXPR.
12490         * cgraph.c (cgraph_expand_queue): Rename from
12491         cgraph_analyze_queue.  Update all users.
12492         * cgraphunit.c (cgraph_assemble_pending_functions): Process
12493         cgraph_expand_queue.
12494         (cgraph_expand_all_functions): Likewise.
12495         (cgraph_finalize_pending_functions): Remove.  Update callers.
12496
12497         * tree.h (OMP_DIRECTIVE_P): Define.
12498         (OMP_PARALLEL_FN): Define.
12499         (OMP_PARALLEL_DATA_ARG): Define.
12500         (OMP_SECTIONS_SECTIONS): Define.
12501         * tree-pass.h (pass_expand_omp): Declare.
12502         * omp-low.c (struct omp_region): Declare.
12503         (struct omp_context): Remove fields 'parallel_type',
12504         'parallel_start_ix' and 'parallel_start_additional_args'.
12505         Update all users.
12506         (struct omp_for_data): Rename from struct expand_omp_for_data.
12507         (omp_regions): New static variable.
12508         (root_omp_region): New static variable.
12509         (find_omp_clause): Make static.
12510         (is_in_combined_parallel_ctx): Remove.
12511         (is_combined_parallel): New.
12512         (extract_omp_for_data): Move earlier in the file.
12513         (workshare_safe_to_combine_p): New.
12514         (get_ws_args_for): New.
12515         (determine_parallel_type): Move earlier in the file.
12516         (omp_copy_decl_2): Do not set DECL_CONTEXT of new local to the
12517         child function.
12518         (omp_copy_decl): Likewise.
12519         (create_omp_child_function): Likewise.
12520         (lookup_omp_region): New.
12521         (dump_omp_region): New.
12522         (debug_omp_region): New.
12523         (debug_all_omp_regions): New.
12524         (new_omp_region): New.
12525         (scan_omp_parallel): If parallel_nesting_level > 1, the
12526         directive is nested within another parallel directive.
12527         Set OMP_PARALLEL_FN.
12528         (scan_omp_for): Do not try to handle combined parallel+for
12529         cases.
12530         Remove FIXME comment.
12531         (scan_omp_nested): Remove.
12532         (scan_omp_1): Do not call scan_omp_nested when
12533         parallel_nesting_level is > 1.
12534         Do not change the DECL_CONTEXT of local variables found.
12535         (lookup_decl_in_outer_ctx): New.
12536         (lower_rec_input_clauses): Rename from expand_rec_input_clauses.
12537         (lower_lastprivate_clauses): Rename from expand_lastprivate_clauses.
12538         (lower_reduction_clauses): Rename from expand_reduction_clauses.
12539         (lower_copyprivate_clauses): Rename from expand_copyprivate_clauses.
12540         If CTX is nested, lookup VAR in the outer context when
12541         building copy assignment.
12542         (lower_send_clauses): Rename from expand_send_clauses.
12543         If CTX is nested, lookup VAR in the outer context when
12544         building copy assignments.
12545         (lower_send_shared_vars): Rename from expand_send_shared_vars.
12546         If CTX is nested, lookup VAR in the outer context when
12547         building copy assignments.
12548         (expand_parallel_call): Rename from build_parallel_call.
12549         Handle combined parallel+workshare cases.
12550         Re-implement to emit code into the CFG.
12551         (list2chain): New.
12552         (expand_omp_parallel): Re-implement to emit code into the CFG.
12553         Call move_sese_region_to_fn to outline the sub-graph
12554         containing the parallel region.
12555         (expand_omp_for_1): Remove.
12556         (expand_omp_for_generic): Re-implement to emit code into the
12557         CFG.
12558         (expand_omp_for_static_nochunk): Likewise.
12559         (expand_omp_for_static_chunk): Likewise.
12560         (expand_omp_for): Likewise.
12561         (expand_omp_sections): Likewise.
12562         (remove_exit_barriers): New.
12563         (expand_omp_synch): New.
12564         (expand_omp): New.
12565         (build_omp_regions_1): New.
12566         (build_omp_regions): New.
12567         (execute_expand_omp): New.
12568         (gate_expand_omp): New.
12569         (pass_expand_omp): Define.
12570         (lower_omp_sections): Rename from expand_omp_sections.
12571         Set OMP_SECTIONS_SECTIONS.
12572         (lower_omp_single_simple): Rename from expand_omp_single_simple.
12573         (lower_omp_single_copy): Rename from expand_omp_single_copy.
12574         (lower_omp_single): Rename from expand_omp_simple.
12575         (lower_omp_master): Rename from expand_omp_master.
12576         (lower_omp_ordered): Rename from expand_omp_ordered.
12577         (lower_omp_critical): Rename from expand_omp_critical.
12578         (lower_omp_for_lastprivate): Rename from expand_omp_for_lastprivate.
12579         (lower_omp_for): Re-implement.
12580         (lower_omp_parallel): Re-implement.
12581         (lower_regimplify): Rename from expand_regimplify.
12582         (lower_omp_1): Rename from expand_omp_1.
12583         If there are syntax errors in the program, replace every
12584         OpenMP directive with NOP.
12585         Call lower_omp_* instead of expand_omp_*.
12586         (lower_omp): Rename from expand_omp.
12587
12588         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN_EXPR.
12589         * tree-gimple.h (enum omp_parallel_type): Remove.
12590         (gimple_boolify): Declare extern.
12591         (find_omp_clause, determine_parallel_type): Remove.
12592
12593         * gimple-low.c (lower_omp_directive): New.
12594         (lower_stmt): Call it.
12595         (record_vars_into): Move from ...
12596         (record_vars): ... here.
12597         Call record_vars_into with current_function_decl.
12598
12599         * gimplify.c (struct gimplify_ctx): Remove fields
12600         combined_pre_p and combined_ctxp.  Update users.
12601         (get_formal_tmp_var): Add documentation.
12602         (gimple_boolify): Make extern.
12603         (gimplify_expr_in_ctx): Remove.  Update callers.
12604         (gimplify_omp_parallel): Do not assume that OMP_PARALLEL_BODY
12605         will always be a BIND_EXPR.
12606         (gimplify_expr): Handle OMP_RETURN_EXPR.
12607         * tree.def (BLOCK): Remove documentation about BLOCK_TYPE_TAGS.
12608         (OMP_PARALLEL): Add 3 operands.
12609         (OMP_SECTIONS): Add 1 operand.
12610         (OMP_RETURN_EXPR): Define.
12611
12612         * tree-inline.c (estimate_num_insns_1): Handle OpenMP directives.
12613         (copy_tree_r): Restore TREE_CHAIN in OMP_CLAUSE_*.
12614         * tree-iterator.c (alloc_stmt_list): Assert that we are not
12615         creating a circular free list.
12616         (free_stmt_list): Assert that we are not freeing stmt_list_cache.
12617
12618         * tree-flow.h (move_sese_region_to_fn): Declare.
12619         (record_vars_into): Declare.
12620         * tree-cfg.c (make_omp_sections_edges): New.
12621         (make_exit_edges): Handle OMP_PARALLEL, OMP_FOR, OMP_SINGLE,
12622         OMP_MASTER, OMP_ORDERED, OMP_CRITICAL, OMP_RETURN_EXPR,
12623         OMP_SECTIONS and OMP_SECTION.
12624         (is_ctrl_altering_stmt): Return true for OMP_DIRECTIVE_P.
12625         (set_bb_for_stmt): Undo change to check currently_expanding_to_rtl.
12626         (verify_stmt): Do not handle OMP_DIRECTIVE_P.
12627         (gather_blocks_in_sese_region): New.
12628         (struct move_stmt_d): Declare.
12629         (move_stmt_r): New.
12630         (move_block_to_fn): New.
12631         (move_sese_region_to_fn): New.
12632
12633         * passes.c (init_optimization_passes): Schedule
12634         pass_expand_omp after pass_init_datastructures.
12635
12636         * tree-ssa-operands.c (get_expr_operands): Handle
12637         OMP_PARALLEL, OMP_SECTIONS, OMP_FOR, OMP_RETURN_EXPR,
12638         OMP_SINGLE, OMP_MASTER, OMP_ORDERED, OMP_CRITICAL.
12639
12640 2006-01-19  Jeff Law  <law@redhat.com>
12641
12642         * tree-vrp.c (extract_range_from_assert): Refine the result range
12643         if the variable referenced by the ASSERT_EXPR has a range and
12644         either the tentative result range or the previous range is a
12645         VR_ANTI_RANGE.
12646
12647 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
12648
12649         * c-decl.c (add_flexible_array_elts_to_size): Simplify vector accesses.
12650
12651 2006-01-19  Jan Hubicka  <jh@suse.cz>
12652
12653         * tree-vect-patterns.c (vect_pattern_recog_1): Prevent parse error.
12654
12655 2006-01-19  Paolo Bonzini  <bonzini@gnu.org>
12656
12657         * combine.c (try_combine): Do not worry about MEMs wrapped by USEs.
12658         (expand_compound_operation, expand_field_assignment): Fail if the
12659         bit lengths of an extract operation are out of range.
12660         (make_extraction): Compute wanted_inner_mode based on the position
12661         and length of the extraction.  Make it extraction_mode for non-constant
12662         positions, and do not modify offset in that case.  When generating a
12663         new MEM, use a mode that can hold the extraction while keeping correct
12664         alignment.  Remove code that supported MEMs wrapped by USEs.
12665         (simplify_shift_const_1, force_to_mode) <case USE>: Remove.
12666
12667 2006-01-19  Andreas Krebbel  <krebbel1@de.ibm.com>
12668
12669         * config/s390/s390.md ("Y", "y"): New mode attribute.
12670         ("*cmpdi_ccs", "*cmpsi_ccs", "*adddi3_imm_cc", "*adddi3_carry1_cc",
12671         "*adddi3_carry1_cconly", "*adddi3_carry2_cc", "*adddi3_carry2_cconly",
12672         "*adddi3_cc", "*adddi3_cconly", "*adddi3_cconly2", "*adddi3_64",
12673         "*addsi3_imm_cc", "*addsi3_carry1_cc",
12674         "*addsi3_carry1_cconly", "*addsi3_carry2_cc", "*addsi3_carr2_cconly",
12675         "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2",
12676         "*subdi3_borrow_cc", "*subdi3_borrow_cconly", "*subdi3_cc",
12677         "*subdi3_cc2", "*subdi3_cconly", "*subdi3_cconly2", "*subdi3_64",
12678         "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc",
12679         "*subsi3_cc2", "*subsi3_cconly", "*subsi3_cconly", "*subsi3_cconly2",
12680         "addsi3", "subsi3"): Insn patterns removed.
12681         ("*add<mode>3_carry1_cc", "*add<mode>3_carry1_cconly",
12682         "*add<mode>3_carry2_cc", "*add<mode>3_carry2_cconly", "*add<mode>3_cc",
12683         "*add<mode>3_cconly", "*add<mode>3_cconly2", "*add<mode>3_imm_cc",
12684         "*sub<mode>3_borrow_cc", "*sub<mode>3_borrow_cconly",
12685         "*sub<mode>3_cc", "*sub<mode>3_cc2", "*sub<mode>3_cconly",
12686         "*sub<mode>3_cconly2"): New insn patterns.
12687         ("addsi3", "subsi3"): New expanders.
12688
12689 2006-01-19  Dorit Nuzman  <dorit@il.ibm.com>
12690
12691         * Makefile.in (tree-vect-patterns.o): Add rule for new file.
12692         * tree-vect-analyze.c (vect_determine_vectorization_factor): Use
12693         existing STMT_VINFO_VECTYPE if available.
12694         (vect_mark_relevant): Add special handling for stmts that are
12695         marked as STMT_VINFO_IN_PATTERN_P.
12696         (vect_analyze_loop): Call vect_pattern_recog.
12697         * tree-vectorizer.c (new_stmt_vec_info): Initialize new fields.
12698         * tree-vectorizer.h (in_pattern_p, related_stmt): New fields in
12699         stmt_info.
12700         (STMT_VINFO_IN_PATTERN_P, STMT_VINFO_RELATED_STMT): New macros.
12701         (vect_recog_func_ptr): New function-pointer type.
12702         * tree-vect-patterns.c: New file.
12703         (vect_recog_widen_sum_pattern, vect_recog_widen_mult_pattern):
12704         (vect_recog_dot_prod_pattern, vect_pattern_recog):
12705         (vect_pattern_recog_1): New functions.
12706         (vect_pattern_recog_funcs): New array of function pointers.
12707
12708         * tree-vectorizer.h (ternary_op): New enum value.
12709         * tree-vect-transform.c (vect_create_epilog_for_reduction): Added
12710         declaration. Revised documentation. Removed redundant dump prints.
12711         Removed redundant argument. Added support for reduction patterns.
12712         (vectorizable_reduction): Added support for reduction patterns.
12713         (vect_transform_stmt): Added support for patterns.
12714
12715         * expr.c (expand_expr_real_1): Added case for DOT_PROD_EXPR.
12716         * genopinit.c (udot_prod_optab, sdot_prod_optab): Initialize.
12717         * optabs.c (optab_for_tree_code): Added case for DOT_PROD_EXPR.
12718         (expand_widen_pattern_expr): New function.
12719         (init_optabs): Initialize new optabs udot_prod_optab,
12720         sdot_prod_optab.
12721         * optabs.h (OTI_sdot_prod, OTI_udot_prod): New.
12722         (sdot_prod_optab, udot_prod_optab): Define new optabs.
12723         (expand_widen_pattern_expr): New function declaration.
12724         * tree.def (DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR): New
12725         tree-codes.
12726         * tree-inline.c (estimate_num_insns_1): Added cases for new
12727         tree-codes DOT_PROD_EXPR, WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
12728         * tree-pretty-print.c (dump_generic_node): Likewise.
12729         (op_prio): Likewise.
12730         (op_symbol): Added cases for WIDEN_SUM_EXPR, WIDEN_MULT_EXPR.
12731         * tree-ssa-operands.c (get_expr_operands): Added case for
12732         DOT_PROD_EXPR.
12733         * tree-vect-patterns.c (widened_name_p): New function.
12734         (vect_recog_dot_prod_pattern): Added function implementation.
12735         * tree-vect-transform.c (get_initial_def_for_reduction): Added
12736         cases for DOT_PROD_EXPR, WIDEN_SUM_EXPR.
12737         * config/rs6000/altivec.md (udot_prod<mode>, sdot_prodv8hi): New.
12738         * config/i386/sse.md (sdot_prodv8hi, udot_prodv4si): New.
12739
12740         * expr.c (expand_expr_real_1): Added case for WIDEN_SUM_EXPR.
12741         * genopinit.c (widen_ssum_optab, widen_usum_optab): Initialize.
12742         * optabs.c (optab_for_tree_code): Added case for WIDEN_SUM_EXPR.
12743         (init_optabs): Initialize new optabs widen_ssum_optab,
12744         widen_usum_optab.
12745         * optabs.h (OTI_widen_ssum, OTI_widen_usum): New.
12746         (widen_ssum_optab, widen_usum_optab): Define new optabs.
12747         * tree-vect-generic.c: (expand_vector_operations_1): Check type of
12748         use instead of type of def.
12749         * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Added
12750         function implementation.
12751         * config/rs6000/altivec.md (widen_usum<mode>, widen_ssumv16qi,
12752         widen_ssumv8hi): New.
12753
12754         * doc/tm.texi (ssum_widen, usum_widen, sdot_prod, udot_prod): New
12755         patterns.
12756
12757 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
12758
12759         PR c/25805
12760         * c-decl.c (add_flexible_array_elts_to_size): New function.
12761         (finish_decl): Use it.
12762
12763 2006-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
12764
12765         * diagnostic.h: Include options.h.
12766         * config/rs6000/x-darwin (host-ppc-darwin.o): Correct the
12767         dependancies for diagnostic.h.
12768         * Makefile.in (DIAGNOSTIC_H): Add options.h.
12769
12770 2006-01-16  Daniel Berlin  <dberlin@dberlin.org>
12771
12772         * tree-ssa-operands.h (ssa_call_clobbered_cache_valid): Remove.
12773         (ssa_ro_call_cache_valid): Ditto.
12774         * tree-ssa-alias.c (sort_tags_by_id): New function.
12775         (init_transitive_clobber_worklist): Ditto.
12776         (add_to_worklist): Ditto.
12777         (mark_aliases_call_clobbered): Ditto.
12778         (compute_tag_properties): Ditto.
12779         (set_initial_properties): Ditto.
12780         (compute_call_clobbered): Ditto.
12781         (compute_may_aliases):  Call compute_call_clobbered and grouping.
12782         (compute_flow_sensitive_aliasing): Remove clobbering related code.
12783         (compute_flow_insensitive_aliasing): Grouping now happens in our
12784         caller.
12785         (setup_pointers_and_addressables): Remove clobbering related code.
12786         (add_may_alias): Ditto.
12787         (replace_may_alias): Ditto.
12788         (get_nmt_for): Ditto.
12789         (create_global_var):
12790         (is_escape_site): Return an escape_type enumeration.
12791         * tree-flow-inline.h (is_call_clobbered): Global var does not
12792         imply call clobbered.
12793         (mark_call_clobbered): Take a reason for marking this. Remove
12794         marking of globalness, and cache invalidation.
12795         (clear_call_clobbered): Remove cache invalidation code.
12796         * tree-dfa.c (dump_variable): If details is on, dump the reason
12797         for escaping.
12798         * tree-outof-ssa.c (create_temp): Copy escape mask from original
12799         variable.
12800         * tree-flow.h (struct ptr_info_def): Add escape mask member.
12801         (struct var_ann_d): Ditto.
12802         (enum escape_type): New.
12803         (mark_call_clobbered): Adjust prototype.
12804         * tree-ssa-structalias.c (update_alias_info): Unmodifiable vars
12805         are never call clobbered.
12806         Record reasons for escaping.
12807         * tree-ssa-structalias.h (is_escape_site): Update prototype.
12808         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): Remove.
12809         (ssa_ro_call_cache_valid): Ditto.
12810         (clobbered_v_may_defs): Ditto.
12811         (clobbered_vuses): Ditto.
12812         (ro_call_vuses): Ditto.
12813         (clobber_stats): New.
12814         (init_ssa_operands): Zero out clobber stats.
12815         (fini_ssa_operands): Print out clobber stats.
12816         (get_call_expr_operands): Pass callee fndecl to
12817         add_call_read_ops).
12818         (add_call_clobber_ops): Remove use of cache.
12819         Add use of PURE_CONST information.
12820         (add_call_read_ops): Remove use of cache.
12821         Add use of static not_read information.
12822
12823 2006-01-18  Alexandre Oliva  <aoliva@redhat.com>
12824
12825         Introduce TLS descriptors for i386 and x86_64.
12826         * config/i386/i386.h (TARGET_GNU2_TLS): New macro.
12827         (TARGET_ANY_GNU_TLS): New macro.
12828         (enum tls_dialect): Added TLS_DIALECT_GNU2.
12829         (struct machine_function): Add tls_descriptor_call_expanded_p.
12830         (ix86_tls_descriptor_calls_expande_in_cfun): New macro.
12831         (ix86_current_function_calls_tls_descriptor): Likewise.
12832         * config/i386/i386.c (ix86_tls_dialect): Fix typo in comment.
12833         (override_options): Introduce gnu2 tls dialect.
12834         (ix86_frame_pointer_required): Functions containing TLSCALLs are
12835         not leaves.
12836         (ix86_select_alt_pic_regnum, ix86_compute_frame_layout):
12837         Likewise.
12838         (legitimize_tls_address): Adjust logic for GNU2 TLS.
12839         (ix86_init_machine_status): Initialize new field.
12840         (ix86_tls_get_addr): Use TARGET_ANY_GNU_TLS.
12841         (ix86_tls_module_base): New.
12842         * config/i386/i386-protos.h (ix86_tls_module_base): Declare it.
12843         * config/i386/i386.md (UNSPEC_TLSDESC): New constant.
12844         (tls_global_dynamic_32, tls_global_dynamic_64): Handle GNU2 TLS.
12845         (tls_local_dynamic_base_32, tls_local_dynamic_base_64): Likewise.
12846         (tls_dynamic_gnu2_32, *tls_dynamic_lea_32): New patterns.
12847         (*tls_dynamic_call_32, *tls_dynamic_gnu2_combine_32): Likewise.
12848         (tls_dynamic_gnu2_64, *tls_dynamic_lea_64): Likewise.
12849         (*tls_dynamic_call_64, *tls_dynamic_gnu2_combine_64): Likewise.
12850         * config/i386/predicates.md (tls_modbase_operand): New.
12851         (tp_or_register_operand): New.
12852
12853 2006-01-18  Daniel Berlin  <dberlin@dberlin.org>
12854
12855         * ipa-reference.c (check_operand): Allow FUNCTION_DECL.
12856         (look_for_address_of): Ditto.
12857         (ipa_init): Walk the function decls.
12858         (static_execute): Don't set readonly on FUNCTION_DECL's.
12859
12860 2006-01-18  Roger Sayle  <roger@eyesopen.com>
12861
12862         * config/i386/i386.md (shift spliter): Fix a a typo in the splitter
12863         for shifts where the source and destination registers are different.
12864
12865 2006-01-18  Paul Brook  <paul@codesourcery.com>
12866
12867         Merge from csl-arm-branch.
12868         2005-03-14  Julian Brown  <julian@codesourcery.com>
12869         * config/arm/lib1funcs.asm (ashldi3): Don't define on SymbianOS.
12870         (aeabi_llsl): Likewise.
12871         (ashrdi3): Likewise.
12872         (aeabi_lasr): Likewise.
12873         (lshrdi3): Likewise.
12874         (aeabi_llsr): Likewise.
12875         2005-03-10  Julian Brown  <julian@codesourcery.com>
12876         * config.gcc: Disable shared libgcc for SymbianOS.
12877         * config/arm/t-symbian (LIB2ADDEH): Include config/arm/pr-support.c.
12878
12879 2006-01-18  DJ Delorie  <dj@redhat.com>
12880
12881         * c-pragma.c (handle_pragma_diagnostic): New.
12882         (init_pragma): Register it.
12883         * doc/extend.texi: Document it.
12884
12885         * diagnostic.def: Add DK_UNSPECIFIED and DK_IGNORED.
12886         * diagnostic.h (diagnostic_classify_diagnostic): Declare.
12887         (diagnostic_context): Add classify_diagnostic[].
12888         * diagnostic.c (diagnostic_count_diagnostic): Don't count warnings
12889         as errors if they're overridden to DK_WARNING.
12890         (diagnostic_initialize): Initialize classify_diagnostic[].
12891         (diagnostic_set_kind_override): New.
12892         (diagnostic_report_diagnostic): Check for kind changes.
12893         * opts.c (common_handle_option): Take lang_mask.  Update callers.
12894         Handle OPT_Werror_.
12895         * common.opt (Werror=): New.
12896         * doc/invoke.texi: Document -Werror=*
12897
12898 2006-01-18  Jeff Law  <law@redhat.com>
12899
12900         * tree-vrp.c (test_for_singularity): Correct test for new
12901         min limit.  Use operand_equal_p rather than pointer equality
12902         for testing if new min/max values are equal.
12903
12904         * tree-ssa-propagate.c (substitute_and_fold): Delay simplifications
12905         using range information until after propagation and folding.
12906
12907 2006-01-18  Richard Henderson  <rth@redhat.com>
12908             Aldy Hernandez  <aldyh@redhat.com>
12909             Jakub Jelinek  <jakub@redhat.com>
12910             Diego Novillo  <dnovillo@redhat.com>
12911
12912         * omp-low.c: New file.
12913         * c-omp.c: New file.
12914
12915 2006-01-18  Richard Henderson  <rth@redhat.com>
12916             Jakub Jelinek  <jakub@redhat.com>
12917             Diego Novillo  <dnovillo@redhat.com>
12918
12919         * doc/invoke.texi: Document -fopenmp.
12920         * tree-dump.h (debug_function): Declare.
12921         * hooks.c (hook_bool_tree_bool_false): New function.
12922         (hook_tree_tree_null): Remove.
12923         (hook_tree_tree_tree_null): New.
12924         * hooks.h: Update to match.
12925         * tree-pretty-print.c (debug_tree_chain): New.
12926         (print_generic_expr): Handle TDF_CHAIN.
12927         (dump_generic_node): Handle BLOCK.
12928         Do not abort with incomplete SWITCH_EXPRs.
12929         Do not dump body of an OpenMP directive if TDF_SLIM is given.
12930         <case OMP_PARALLEL, OMP_FOR, OMP_SECTIONS>: Don't
12931         print space after directive name.
12932         <OMP_FOR>: Handle printing OMP_FOR_PRE_BODY.
12933         Handle OMP_MASTER and OMP_ORDERED.
12934         Handle printing of OMP_BODY just in one place, goto
12935         dump_omp_body in the rest of OMP_* nodes that have
12936         OMP_BODY.
12937         Don't handle clause nodes here.  Update omp statements to
12938         use dump_omp_clauses.
12939         Handle OMP_SINGLE, OMP_SECTIONS, OMP_SECTION,
12940         OMP_CLAUSE_ORDERED, OMP_CLAUSE_SCHEDULE, OMP_ATOMIC,
12941         OMP_CRITICAL, OMP_CLAUSE_NOWAIT, GOMP_CLAUSE_IF,
12942         GOMP_CLAUSE_NUM_THREADS, GOMP_FOR, GOMP_CLAUSE_SHARED,
12943         GOMP_CLAUSE_FIRSTPRIVATE, GOMP_CLAUSE_LASTPRIVATE,
12944         GOMP_CLAUSE_COPYIN and GOMP_CLAUSE_COPYPRIVATE.
12945         Adjust output for GOMP_PARALLEL.
12946         (dump_omp_clauses): New.
12947         (print_declaration): Dump DECL_VALUE_EXPR.
12948         (op_symbol_1): Split out of op_symbol.
12949         (dumping_stmts): Remove.  Update all users.
12950         * cgraph.c (cgraph_analyze_queue): New.
12951         (cgraph_add_new_function): New.
12952         * cgraph.h (cgraph_analyze_queue): Declare.
12953         (cgraph_add_new_function): Declare.
12954         (cgraph_lower_function): Remove.
12955         * tree.c (walk_tree): Walk OMP_CLAUSE_CHAIN of OMP_CLAUSE_*
12956         nodes.  Use switch for all nodes, handle most of IS_EXPR_CODE_CLASS
12957         and TYPE_P nodes in its default clause.
12958         (empty_body_p): New.
12959         (tree_range_check_failed): New.
12960         (build5_stat): New.
12961         * tree.h (OMP_CLAUSE_REDUCTION_INIT,
12962         OMP_CLAUSE_REDUCTION_MERGE,
12963         OMP_CLAUSE_REDUCTION_PLACEHOLDER,
12964         OMP_CLAUSE_PRIVATE_DEBUG,
12965         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE, OMP_FOR_PRE_BODY,
12966         OMP_MASTER_BODY, OMP_ORDERED_BODY OMP_BODY,
12967         OMP_CLAUSES, OMP_CLAUSE_DECL, OMP_CLAUSE_DEFAULT_KIND,
12968         OMP_CLAUSE_CHAIN, OMP_CLAUSE_OUTER_DECL,
12969         OMP_CLAUSE_INNER_DECL, OMP_CLAUSE_NUM_THREADS_EXPR,
12970         OMP_CLAUSE_IF_EXPR, OMP_CLAUSE_SCHEDULE_CHUNK_EXPR,
12971         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE. OMP_PARALLEL_VAR_INIT,
12972         OMP_PARALLEL_VAR_REDUC, OMP_FOR_VAR_INIT,
12973         OMP_FOR_VAR_LAST, OMP_FOR_VAR_REDUC,
12974         OMP_SECTIONS_VAR_INIT, OMP_SECTIONS_VAR_LAST,
12975         OMP_SECTIONS_VAR_REDUC, OMP_CLAUSE_REDUCTION_CODE
12976         OMP_SINGLE_CLAUSES, OMP_SINGLE_BODY,
12977         OMP_CLAUSE_SCHEDULE_CHUNK_SIZE, OMP_SECTION_BODY,
12978         OMP_CRITICAL_NAME, OMP_CRITICAL_BODY): New.
12979         (TREE_RANGE_CHECK): New.
12980         (empty_body_p): Declare.
12981         (enum omp_clause_default_kind): New.
12982         (build_string_literal): Declare.
12983         (enum omp_clause_schedule_kind, OMP_CLAUSE_SCHEDULE_KIND): New.
12984         (build5_stat, build5): Declare.
12985         * tree-pass.h (TDF_CHAIN): Define.
12986         * tree-pass.h (PROP_gimple_lomp): Define.
12987         (pass_lower_omp): Declare.
12988         * diagnostic.h (debug_tree_chain): Declare.
12989         * builtins.c (get_builtin_sync_mode): Use 0 as last argument to
12990         mode_for_size.
12991         (expand_builtin): Handle sync BUILT_IN_*_16 builtins.
12992         * builtins.c (build_string_literal): Make extern.
12993         * gcc.c (include_spec_function): New.
12994         (static_spec_functions): Add it.
12995         (main): Move load of libgomp.spec ...
12996         (LINK_COMMAND_SPEC): ... here.
12997         (link_gomp_spec): New.
12998         (static_specs): Include it.
12999         (LINK_COMMAND_SPEC): Add link_gomp.
13000         (GOMP_SELF_SPECS): New.
13001         (driver_self_specs): Include it.
13002         (switch_matches): Don't mark inline.
13003         (main): Load libgomp.spec.
13004         * tree-gimple.c (is_gimple_stmt): True for OMP_MASTER,
13005         OMP_ORDERED, OMP_CRITICAL, OMP_SECTIONS, OMP_SECTION,
13006         and OMP_SINGLE, OMP_FOR and OMP_PARALLEL.
13007         * tree-gimple.h (enum omp_parallel): Declare.
13008         (determine_parallel_type): Declare.
13009         (omp_firstprivatize_variable): Declare.
13010         (omp_reduction_init): Declare.
13011         (diagnose_omp_structured_block_errors): Declare.
13012         (struct walk_stmt_info): Add want_return_expr.
13013         (struct walk_stmt_info): Add want_bind_expr, want_locations.
13014         (find_omp_clause): Declare.
13015         (insert_field_into_struct): Declare.
13016         (struct walk_stmt_info): Move from tree-nested.c
13017         (walk_stmts): Declare.
13018         * c-cppbuiltin.c (c_cpp_builtins): If -fopenmp, #define _OPENMP
13019         to 200505.
13020         * cgraphunit.c (cgraph_lower_function): Make static.
13021         (cgraph_finalize_pending_functions): New.
13022         (cgraph_finalize_function): Call it.
13023         (cgraph_finalize_compilation_unit): Likewise.
13024         * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16,
13025         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
13026         (BT_FN_UINT_UINT): New.
13027         (DEF_FUNCTION_TYPE_6, DEF_FUNCTION_TYPE_7,
13028         DEF_FUNCTION_TYPE_VAR_4): Document.
13029         (BT_PTR_LONG, BT_PTR_PTR, BT_FN_BOOL, BT_FN_INT,
13030         BT_FN_VOID_PTRPTR, BT_PTR_FN_VOID_PTR,
13031         BT_FN_BOOL_LONGPTR_LONGPTR, BT_FN_VOID_OMPFN_PTR_UINT,
13032         BT_FN_VOID_OMPFN_PTR_UINT_UINT,
13033         BT_FN_BOOL_LONG_LONG_LONG_LONGPTR_LONGPTR,
13034         BT_FN_BOOL_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR,
13035         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
13036         BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG): New.
13037         * builtins.def: Update DEF_BUILTIN comment to include COND argument.
13038         Move all DEF_SYNC_BUILTIN () and DEF_GOMP_BUILTIN () builtins
13039         into separate files.
13040         (DEF_GOMP_BUILTIN): New.
13041         (BUILT_IN_OMP_GET_THREAD_NUM, BUILT_IN_GOMP_BARRIER,
13042         BUILT_IN_GOMP_CRITICAL_START, BUILT_IN_GOMP_CRITICAL_END,
13043         BUILT_IN_GOMP_CRITICAL_NAME_START, BUILT_IN_GOMP_CRITICAL_NAME_END,
13044         BUILT_IN_GOMP_LOOP_STATIC_START, BUILT_IN_GOMP_LOOP_DYNAMIC_START,
13045         BUILT_IN_GOMP_LOOP_GUIDED_START, BUILT_IN_GOMP_LOOP_RUNTIME_START,
13046         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_START,
13047         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_START,
13048         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_START,
13049         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_START,
13050         BUILT_IN_GOMP_LOOP_STATIC_NEXT, BUILT_IN_GOMP_LOOP_DYNAMIC_NEXT,
13051         BUILT_IN_GOMP_LOOP_GUIDED_NEXT, BUILT_IN_GOMP_LOOP_RUNTIME_NEXT,
13052         BUILT_IN_GOMP_LOOP_ORDERED_STATIC_NEXT,
13053         BUILT_IN_GOMP_LOOP_ORDERED_DYNAMIC_NEXT,
13054         BUILT_IN_GOMP_LOOP_ORDERED_GUIDED_NEXT,
13055         BUILT_IN_GOMP_LOOP_ORDERED_RUNTIME_NEXT,
13056         BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
13057         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
13058         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
13059         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
13060         BUILT_IN_GOMP_LOOP_END, BUILT_IN_GOMP_LOOP_END_NOWAIT,
13061         BUILT_IN_GOMP_ORDERED_START, BUILT_IN_GOMP_ORDERED_END,
13062         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
13063         BUILT_IN_GOMP_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_NEXT,
13064         BUILT_IN_GOMP_PARALLEL_SECTIONS_START, BUILT_IN_GOMP_SECTIONS_END,
13065         BUILT_IN_GOMP_SECTIONS_END_NOWAIT, BUILT_IN_GOMP_SINGLE_START,
13066         BUILT_IN_GOMP_SINGLE_COPY_START, BUILT_IN_GOMP_SINGLE_COPY_END): New.
13067         * sync-builtins.def: New file, moved from builtins.def.
13068         * omp-builtins.def: New file, moved from builtins.def.
13069         * c-objc-common.h (LANG_HOOKS_OMP_PREDETERMINED_SHARING): Redefine.
13070         * gimple-low.c (lower_function_body): Clear data.
13071         (lower_stmt): Do not handle COMPOUND_EXPR.
13072         Remove call to print_node_brief.
13073         * c-tree.h (c_finish_omp_clauses): New prototype.
13074         (C_DECL_THREADPRIVATE_P): Define.
13075         (lookup_name_no_remap, c_omp_remap_private): Remove
13076         (c_begin_omp_parallel, c_finish_omp_parallel): Update.
13077         (check_for_loop_decls): Update decl.
13078         (lookup_name_no_remap, c_omp_remap_private): Declare.
13079         (build_indirect_ref, build_modify_expr, pushdecl,
13080         pushdecl_top_level): Move to c-common.h.
13081         * dwarf2out.c (loc_descriptor_from_tree_1): Don't set unsignedp
13082         before the switch, but just in the 2 places that need it.
13083         * c-decl.c (diagnose_mismatched_decls): Do not check for
13084         mismatched thread-local attributes when OLDDECL is marked
13085         threadprivate and NEWDECL has no thread-local attributes.
13086         (merge_decls): Merge C_DECL_THREADPRIVATE_P.
13087         (c_gimple_diagnostics_recursively): Rename from
13088         c_warn_unused_result_recursively.  Invoke
13089         diagnose_omp_structured_block_errors.
13090         (check_for_loop_decls): Return a singular decl found.
13091         * langhooks.c (lhd_omp_predetermined_sharing): Return
13092         OMP_CLAUSE_DEFAULT_SHARED for DECL_ARTIFICIAL decls.
13093         (lhd_omp_firstprivatize_type_sizes): New.
13094         (lhd_omp_assignment): New.
13095         (lhd_omp_predetermined_sharing): New.
13096         * langhooks.h (struct gimplify_omp_ctx): Forward declare.
13097         (struct lang_hooks_for_types): Add
13098         omp_firstprivatize_type_sizes, omp_privatize_by_reference,
13099         omp_predetermined_sharing, omp_disregard_value_expr,
13100         omp_private_debug_clause, omp_clause_default_ctor,
13101         omp_clause_copy_ctor, omp_clause_assign_op, omp_clause_dtor.
13102         (c_finish_omp_clauses): New.
13103         (c_finish_bc_stmt): Diagnose break within omp for.
13104         (c_begin_omp_parallel, c_finish_omp_parallel): New.
13105         (build_unary_op): Return error_mark after reporting
13106         a readonly_error.
13107         (build_modify_expr): Likewise.
13108         * gimplify.c: Include optabs.h and pointer-set.h.
13109         (enum gimplify_omp_var_data): Declare.
13110         (struct gimplify_omp_ctx): Declare.
13111         (struct gimplify_ctx): Add fields prev_context, combined_pre_p
13112         and combined_ctxp.
13113         (gimplify_ctxp, gimplify_omp_ctxp): New local variables.
13114         (push_gimplify_context, pop_gimplify_context): Allow nesting.
13115         (splay_tree_compare_decl_uid): New.
13116         (new_omp_context): New.
13117         (delete_omp_context): New.
13118         (gimple_add_tmp_var): Call omp_add_variable.
13119         (gimplify_bind_expr): Likewise.
13120         (gimplify_var_or_parm_decl): If omp_notice_variable returned
13121         true, disregard DECL_VALUE_EXPR on the decl if any.
13122         (gimplify_expr_in_ctx): New.
13123         (omp_firstprivatize_variable, omp_firstprivatize_type_sizes
13124         omp_add_variable, omp_notice_variable, omp_is_private
13125         gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1
13126         gimplify_adjust_omp_clauses, gimplify_omp_parallel
13127         gimplify_omp_for, gimplify_omp_workshare, goa_lhs_expr_p
13128         gimplify_omp_atomic_fetch_op, goa_stabilize_expr
13129         gimplify_omp_atomic_pipeline, gimplify_omp_atomic_mutex
13130         gimplify_omp_atomic): New.
13131         (gimplify_expr): Handle OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13132         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13133         OMP_CRITICAL and OMP_ATOMIC.
13134         (gimplify_body): Verify gimplify_ctxp is empty after gimplification.
13135         * c-pragma.h (enum pragma_kind): Add
13136         PRAGMA_OMP_ATOMIC, PRAGMA_OMP_BARRIER,
13137         PRAGMA_OMP_CRITICAL, PRAGMA_OMP_FLUSH, PRAGMA_OMP_FOR,
13138         PRAGMA_OMP_MASTER, PRAGMA_OMP_ORDERED,
13139         PRAGMA_OMP_PARALLEL, PRAGMA_OMP_PARALLEL_FOR,
13140         PRAGMA_OMP_PARALLEL_SECTIONS, PRAGMA_OMP_SECTION,
13141         PRAGMA_OMP_SECTIONS, PRAGMA_OMP_SINGLE,
13142         PRAGMA_OMP_THREADPRIVATE.
13143         * tree.def (OMP_PARALLEL, OMP_FOR, OMP_SECTIONS,
13144         OMP_SINGLE, OMP_SECTION, OMP_MASTER, OMP_ORDERED,
13145         OMP_CRITICAL, OMP_ATOMIC, OMP_CLAUSE_PRIVATE,
13146         OMP_CLAUSE_SHARED, OMP_CLAUSE_FIRSTPRIVATE,
13147         OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_REDUCTION,
13148         OMP_CLAUSE_COPYIN, OMP_CLAUSE_COPYPRIVATE,
13149         OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS,
13150         OMP_CLAUSE_SCHEDULE, OMP_CLAUSE_NOWAIT,
13151         OMP_CLAUSE_ORDERED, OMP_CLAUSE_DEFAULT): Define.
13152         * print-tree.c (print_node): Dump DECL_VALUE_EXPR.
13153         * tree-ssa-dce.c (find_control_dependence): Do not assume that
13154         ENTRY_BLOCK_PTR->next_bb == single_succ (ENTRY_BLOCK_PTR).
13155         * tree-nested.c (convert_call_expr): Call walk_body on OMP_BODY for
13156         OpenMP directives.
13157         (struct nesting_info): Add field_map,
13158         suppress_expansion, debug_var_chain.
13159         (create_nesting_tree): Initialize them.
13160         (lookup_field_for_decl): Use field_map.
13161         (get_nonlocal_debug_decl, get_local_debug_decl): New.
13162         (convert_local_omp_clauses): New.
13163         (finalize_nesting_tree_1): Add debug_var_chain to toplevel block.
13164         (walk_body): Split out of walk_function.
13165         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): New.
13166         (convert_nonlocal_reference): Handle omp statements.
13167         (convert_local_reference): Likewise.
13168         (unnest_nesting_tree_1): Split out of finalize_nesting_tree_1.
13169         (unnest_nesting_tree): New.
13170         (lower_nested_functions): Call it.
13171         (insert_field_into_struct): Make extern.
13172         (struct walk_stmt_info): Move to tree-gimple.h.
13173         (walk_stmts): Make extern.
13174         * omp-builtins.def: New file.
13175         * tree-iterator.c (expr_only): Clarify comment.
13176         * c-common.h (pushdecl_top_level, pushdecl,
13177         build_modify_expr, build_indirect_ref,
13178         c_finish_omp_master, c_finish_omp_critical,
13179         c_finish_omp_ordered, c_finish_omp_barrier,
13180         c_finish_omp_atomic, c_finish_omp_flush,
13181         c_finish_omp_for, c_split_parallel_clauses,
13182         omp_clause_default_kind, c_omp_sharing_predetermined,
13183         c_omp_remap_decl): Declare.
13184         * Makefile.in (BUILTINS_DEF): Add omp-builtins.def.
13185         (OBJS-common): Add omp-low.o.
13186         (c-omp.o, omp-low.o): Add.
13187         (gimplify.o): Add dependency on $(OPTABS_H).
13188         (GTFILES): Add omp-low.c.
13189         (gt-stringpool.h): Add.
13190         * tree-cfg.c (set_bb_for_stmt): Do not update the
13191         block-to-labels map if we are currently expanding to RTL.
13192         (tree_node_can_be_shared): Remove unnecessary CONSTANT_CLASS_P
13193         checks.
13194         Handle IDENTIFIER_NODE.
13195         (tree_verify_flow_info): Do not ICE when emitting error
13196         messages about invalid labels.
13197         (dump_function_to_file): Reset CFUN before emitting the body
13198         of the function.
13199         (debug_function): New.
13200         * passes.c (init_optimization_passes): Schedule
13201         pass_lower_omp.
13202         * langhooks-def.h (lhd_omp_predetermined_sharing,
13203         lhd_omp_assignment, lhd_omp_firstprivatize_type_sizes):
13204         Declare.
13205         (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
13206         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
13207         (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE,
13208         LANG_HOOKS_OMP_PREDETERMINED_SHARING,
13209         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
13210         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE,
13211         LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR,
13212         LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
13213         LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP,
13214         LANG_HOOKS_OMP_CLAUSE_DTOR): Define.
13215         (LANG_HOOK_DECLS): Use them.
13216
13217 2006-01-18  Dmitry Kurochkin <dmitry.kurochkin@gmail.com>
13218             Richard Henderson  <rth@redhat.com>
13219             Jakub Jelinek  <jakub@redhat.com>
13220             Diego Novillo  <dnovillo@redhat.com>
13221
13222         * c-parser.c (pragma_omp_clause): Define.
13223         (c_parser_declaration_or_fndef): Document OpenMP syntax.
13224         (c_parser_compound_statement): Likewise.
13225         (c_parser_statement): Likewise.
13226         (c_parser_pragma): Handle omp pragmas.
13227         (OMP_FOR_CLAUSE_MASK, OMP_SECTIONS_CLAUSE_MASK,
13228         OMP_PARALLEL_CLAUSE_MASK, OMP_SINGLE_CLAUSE_MASK): Define.
13229         (c_parser_omp_clause_name, check_no_duplicate_clause,
13230         c_parser_omp_variable_list,
13231         c_parser_omp_var_list_parens, c_parser_omp_clause_copyin,
13232         c_parser_omp_clause_copyprivate,
13233         c_parser_omp_clause_default,
13234         c_parser_omp_clause_firstprivate, c_parser_omp_clause_if,
13235         c_parser_omp_clause_lastprivate,
13236         c_parser_omp_clause_nowait,
13237         c_parser_omp_clause_num_threads,
13238         c_parser_omp_clause_ordered, c_parser_omp_clause_private,
13239         c_parser_omp_clause_reduction,
13240         c_parser_omp_clause_schedule, c_parser_omp_clause_shared,
13241         c_parser_omp_all_clauses, c_parser_omp_structured_block,
13242         c_parser_omp_atomic, c_parser_omp_barrier,
13243         c_parser_omp_critical, c_parser_omp_flush,
13244         c_parser_omp_for_loop, c_parser_omp_for,
13245         c_parser_omp_master, c_parser_omp_ordered,
13246         c_parser_omp_sections_scope, c_parser_omp_sections,
13247         c_parser_omp_parallel, c_parser_omp_single,
13248         c_parser_omp_construct, c_parser_omp_threadprivate): New.
13249         * c-pragma.c (init_pragma): Do omp pragma registration here.
13250         * c.opt (fopenmp): New flag.
13251
13252 2006-01-18  Eric Christopher  <echristo@apple.com>
13253
13254         * gcc.c (GOMP_SELF_SPECS): Bracket in #ifndef/#endif.
13255         * config/darwin.h (GOMP_SELF_SPECS): Define.
13256
13257 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13258
13259         * rtl.h: Remove the prototype for reg_alloc.
13260
13261 2006-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13262
13263         PR target/25731
13264         * config.gcc (hppa*-*-linux*, hppa[12]*-*-hpux10*, hppa*64*-*-hpux11*,
13265         hppa[12]*-*-hpux11*): Override default shared libgcc version for both
13266         sjlj and dwarf2 exception handling.
13267         * pa/t-hpux-shlib (SHLIB_SOVERSION): New make variable.
13268         Rework to allow overriding SHLIB_EXT and SHLIB_SOVERSION.
13269         * pa/pa.c (function_value): Treat complex and vector types as
13270         aggregates.
13271         (function_arg): Likewise.  Only pass scalar floats in the floating
13272         point argument registers.
13273         * pa/t-slibgcc-dwarf-ver: New file.
13274         * pa/t-slibgcc-sjlj-ver: New file.
13275         * pa/t-slibgcc-elf-ver: Delete file.
13276
13277 2006-01-19  Alan Modra  <amodra@bigpond.net.au>
13278
13279         * config/rs6000/rs6000.c (rs6000_assemble_integer): Correct
13280         unlikely_test_section_p test.
13281
13282 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13283
13284         * mode-switching.c (optimize_mode_switching): Make it static.
13285         * basic-block.h: Remove the prototype for
13286         optimize_mode_switching.
13287
13288         * modulo-sched.c (sms_schedule): Make it static.
13289         * rtl.h: Remove the prototype for sms_schedule.
13290
13291         * postreload-gcse.c (gcse_after_reload_main): Make it static.
13292         * rtl.h: Remove the prototype for gcse_after_reload_main.
13293
13294         * reg-stack.c (reg_to_stack): Make it static.
13295         * rtl.h: Remove the prototype for reg_to_stack.
13296
13297         * regrename.c (regrename_optimize, copyprop_hardreg_forward):
13298         Make them static.
13299         * rtl.h: Remove the prototypes for regrename_optimize and
13300         copyprop_hardreg_forward.
13301
13302 2006-01-18  Eric Botcazou  <ebotcazou@adacore.com>
13303
13304         * config/alpha/alpha.c (alpha_split_tfmode_pair): Rename into
13305         alpha_split_tmode_pair.  Add 'mode' and 'fixup_overlap' arguments.
13306         Test against the appropriate null constant for the mode.
13307         If 'fixup_overlap' is true, swap the operands if they overlap.
13308         (alpha_split_tfmode_frobsign): Adjust call to alpha_split_tfmode_pair.
13309         * config/alpha/alpha-protos.h (alpha_split_tfmode_pair): Rename into
13310         alpha_split_tmode_pair and adjust for above change.
13311         * config/alpha/alpha.md (movtf_internal): Adjust call to
13312         alpha_split_tfmode_pair and rely on it to swap the operands.
13313         (movti_internal): New insn and post-reload splitter.
13314         (movti): New expander.
13315
13316 2006-01-18  Philippe De Muyter  <phdm@macqel.be>
13317
13318         * config/m68k/m68k.md (*addsi3_5200): Allow addq/subq to memory
13319         operands.
13320
13321 2006-01-18  Kazu Hirata  <kazu@codesourcery.com>
13322
13323         * rtlanal.c (global_reg_mentioned_p_1,
13324         global_reg_mentioned_p): Remove.
13325         * rtl.h: Remove the prototype for global_reg_mentioned_p.
13326
13327         * flow.c (initialize_uninitialized_subregs): Make it static.
13328         * rtl.h: Remove the prototype for
13329         initialize_uninitialized_subregs.
13330
13331         * function.c (instantiate_virtual_regs): Make it static.
13332         * function.h: Remove the prototype for
13333         instantiate_virtual_regs.
13334
13335         * regmove.c (regmove_optimize, combine_stack_adjustments):
13336         Make them static.
13337         * rtl.h: Remove the prototypes for regmove_optimize and
13338         combine_stack_adjustments.
13339
13340 2006-01-17  Roger Sayle  <roger@eyesopen.com>
13341
13342         * config/i386/i386.c (COSTS_N_BYTES): New macro.
13343         (size_cost): Encode costs in bytes so that a reg-reg addition is
13344         equivalent to COSTS_N_INSNS(1).
13345         (override_options): Use the size_cost.branch_cost as the default
13346         ix86_branch_cost when optimizing for size.
13347
13348 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13349
13350         * Makefile.in (D32PBIT_FUNCS): New.
13351         (D64PBIT_FUNCS, D128PBIT_FUNCS): Likewise.
13352         (libgcc.mk): Set D32PBIT, D64PBIT, D128PBIT, D32PBIT_FUNCS,
13353         D64PBIT_FUNCS and D128PBIT_FUNCS.
13354         (LIBGCC_DEPS): Include $(D32PBIT), $(D64PBIT), $(D128PBIT).
13355         * mklibgcc.in Bring in the DFP support code if D32PBIT, D64PBIT or
13356         D128PBIT are set.
13357         (decnumber_dep): Define.
13358         * doc/libgcc.texi (Decimal float library routines): New node.
13359         * config/dfp-bit.h, config/dfp-bit.c: New files.
13360
13361 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13362
13363         * expr.c (emit_move_change_mode): Always adjust addresses, not
13364         just during reload.  Copy replacements only during reload.
13365         (emit_move_insn_1): Move MODE_DECIMAL_FLOAT modes by invoking
13366         emit_move_via_integer.
13367
13368 2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
13369
13370         * Makefile.in (check-%, check-consistency): Use $${srcdir}
13371         instead of $(srcdir) and ${srcdir}.
13372
13373 2006-01-17  Richard Earnshaw  <rearnsha@arm.com>
13374
13375         PR target/592
13376         PR middle-end/11135
13377         * arm.h (struct machine_function): Add pic_reg.
13378         * arm.c (arm_pic_register): Make unsigned.
13379         (arm_override_options): Only set arm_pic_register if
13380         TARGET_SINGLE_PIC_BASE.
13381         (use_return_insn): Only test for a pic register if it is fixed.
13382         (arm_compute_save_reg0_reg12_mask): Likewise.
13383         (thumb_compute_save_reg_mask): Likewise.
13384         (legitimate_pic_operand): Factor out some known invariants.
13385         (legitimize_pic_address): If we don't have a fixed pic register,
13386         then set up a pseudo in the function entry sequence.  Handle the
13387         pic base being in a pseudo.
13388         (arm_load_pic_register): Handle the pic register being in a pseudo.
13389         (arm_expand_prologue): Only set up the pic register if it is fixed.
13390         (thumb_expand_prologue): Likewise.
13391         * arm.md (pic_load_addr_based): Handle the pic base being a pseudo.
13392         (pic_load_addr_based_insn): Likewise.
13393         (builtin_setjmp_receiver): Don't restore the pic base if it isn't
13394         fixed.
13395
13396 2006-01-18  Ben Elliston  <bje@au.ibm.com>
13397
13398         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Reject
13399         decimal float modes for all floating point registers.
13400
13401         * config/rs6000/predicates.md (reg_or_mem_operand): Pair up
13402         match_code "mem" with match_test "macho_lo_sum_memory_operand".
13403
13404 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
13405
13406         PR c/25682
13407         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
13408         even when the pointer is not NULL.
13409
13410 2006-01-16  Ian Lance Taylor  <ian@airs.com>
13411
13412         * common.opt (ftoplevel-reorder): New option.
13413         * cgraph.c (cgraph_asm_nodes): New global variable.
13414         (cgraph_asm_last_node): New static variable.
13415         (cgraph_order): New global variable.
13416         (cgraph_create_node): Set new order field.
13417         (cgraph_varpool_node): Likewise.
13418         (decide_is_variable_needed): Return true if not
13419         flag_toplevel_reorder.
13420         (cgraph_add_asm_node): New function.
13421         * cgraph.h (struct cgraph_node): Add order field.
13422         (struct cgraph_varpool_node): Add order field.
13423         (struct cgraph_asm_node): Define.
13424         (cgraph_asm_nodes, cgraph_order): Declare.
13425         (cgraph_add_asm_node): Declare.
13426         * cgraphunit.c (cgraph_varpool_assemble_decl): New static
13427         function.
13428         (cgraph_varpool_assemble_pending_decls): Call it.
13429         (cgraph_output_pending_asms): New static function.
13430         (cgraph_finalize_compilation_unit): Call it.
13431         (struct cgraph_order_sort): Define.
13432         (cgraph_output_in_order): New static function.
13433         (cgraph_optimize): Call cgraph_output_pending_asms.  Add code for
13434         !flag_toplevel_reorder case.
13435         * c-parser.c: Include "cgraph.h".
13436         (c_parser_asm_definition): Call cgraph_add_asm_node rather than
13437         assemble_asm.
13438         * Makefile.in (CRTSTUFF_CFLAGS): Use -fno-toplevel-reorder rather
13439         than -fno-unit-at-a-time.
13440         * doc/invoke.texi (Option Summary): Mention
13441         -fno-toplevel-reorder.
13442         (Optimize Options): Document -fno-toplevel-reorder.  Mention it in
13443         -funit-at-a-time documentation.
13444
13445 2006-01-17  Hans-Peter Nilsson  <hp@axis.com>
13446             Kazu Hirata  <kazu@codesourcery.com>
13447
13448         * Makefile.in (FUNCTION_H, LAMBDA_H): Use $(TREE_H), not tree.h.
13449
13450 2006-01-17  Kazu Hirata  <kazu@codesourcery.com>
13451
13452         * Makefile.in (FUNCTION_H): New.  Use it instead of
13453         function.h throughout the file.
13454         * function.h: Include tree.h.
13455
13456 2006-01-17  Ben Elliston  <bje@au.ibm.com>
13457
13458         * recog.c: Separate some functions with whitespace.
13459
13460 2006-01-16  Richard Henderson  <rth@redhat.com>
13461
13462         Merge from gomp branch:
13463         * Makefile.in (TREE_INLINE_H): New.  Use it as needed.
13464         * tree-inline.h (struct copy_body_data): Move from tree-inline.c
13465         and rename from struct inline_data.  Rename callee* to dst*;
13466         caller* to src*; add copy_decl hook, transform_call_graph_edges,
13467         transform_new_cfg, transform_return_to_modify, and
13468         transform_lang_insert_block flags; remove cloning_p, versioning_p,
13469         update_clones_p.
13470         (copy_body_r, insert_decl_map, remap_decl, remap_type): Declare.
13471         (copy_decl_for_dup): Remove.
13472         * tree-inline.c (struct inline_data): Move to header.
13473         (insert_decl_map): Export.
13474         (remap_decl): Update for member name changes.  Use copy_decl hook.
13475         Allow for replacement to be a non-decl.  Remove dead code.
13476         (remap_type_1): Check for existing mapping.
13477         (remap_type): Export.
13478         (remap_decls): Update for member name changes.
13479         (remap_block, copy_bb, copy_cfg_body, copy_generic_body): Likewise.
13480         (copy_body, setup_one_parameter, declare_return_variable): Likewise.
13481         (expand_call_inline, optimize_inline_calls, clone_body): Likewise.
13482         (copy_tree_r, mark_local_for_remap_r, unsave_expr_now): Likewise.
13483         (tree_function_versioning, build_duplicate_type): Likewise.
13484         (copy_body_r): Likewise.  Export.
13485         (copy_decl_for_dup): Split into ...
13486         (copy_decl_for_dup_finish, copy_decl_to_var,
13487         copy_decl_no_change, copy_decl_maybe_to_var): ... these.
13488         (replace_ref_tree, inlining_p): Remove.
13489
13490 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13491
13492         * ifcvt.c (if_convert): Make it static.
13493         * rtl.h: Remove the prototype for if_convert.
13494
13495         * local-alloc.c (local_alloc): Make it static.
13496         * rtl.h: Remove the prototype for local_alloc.
13497
13498         * loop.c (loop_optimize): Make it static.
13499         * cfgloop.h: Remove the prototype for loop_optimize.
13500         * rtl.h: Likewise.
13501
13502 2006-01-16  DJ Delorie  <dj@redhat.com>
13503
13504         * reload.c (reg_overlap_mentioned_for_reload_p): Handle subregs of
13505         mems.
13506
13507 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13508
13509         * pa.md: Disparage copies between general and floating-point registers
13510         in 32-bit move patterns.
13511
13512 2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
13513
13514         PR testsuite/25741
13515         * Makefile.in (check-%): Depend on site.exp instead of
13516         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
13517         directories.
13518
13519 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13520
13521         * global.c (global_alloc): Make it static.
13522         * rtl.h: Remove the prototype for global_alloc.
13523
13524 2006-01-16  Richard Guenther  <rguenther@suse.de>
13525
13526         * tree-ssa-alias.c (struct used_part): Add write_only field.
13527         (get_or_create_used_part_for): Initialize it to true.
13528         (create_overlap_variables_for): Don't create structure variables
13529         for structures that only are written to.
13530         (find_used_portions): Handle MODIFY_EXPR to track whether a
13531         structure is only written to.
13532
13533 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13534
13535         * bb-reorder.c (partition_hot_cold_basic_blocks): Make it
13536         static.
13537         * basic-block.h: Remove the prototype for
13538         partition_hot_cold_basic_blocks.
13539
13540 2006-01-16  Rafael Ãvila de EspÃ�­ndola <rafael.espindola@gmail.com>
13541
13542         * cppspec.c (lang_specific_spec_functions): Remove.
13543         * gcc.c (lookup_spec_function): Use static_spec_functions directly.
13544         * gcc.h (lang_specific_spec_functions): Remove.
13545         * gccspec.c (lang_specific_spec_functions): Remove.
13546
13547 2006-01-16  Paolo Bonzini  <bonzini@gnu.org>
13548
13549         * combine.c (record_value_for_reg): Invalidate registers
13550         if INSN is null.
13551         (record_dead_and_set_regs_1): Likewise, by passing them to
13552         record_value_for_reg.
13553         (record_dead_and_set_regs): Invalidate stores made by a
13554         call.  We do not combine across a call, but we still
13555         relied on equivalences.
13556
13557 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
13558
13559         * tree-vrp.c (extract_range_from_binary_expr): Cope with
13560         vrp_int_const_binop returning non-constant nodes.
13561
13562 2006-01-16  Paul Brook  <paul@codesourcery.com>
13563
13564         * config/m68k/m68k.c (output_move_const_into_data_reg):
13565         Output correct mnemonic for mvz and mvs.
13566
13567 2006-01-16  Gabor Loki  <loki@gcc.gnu.org>
13568
13569         * rtl-factoring.c: Add sequence abstraction algorithm.
13570         * cfgcleanup.c (outgoing_edges_match): Extra checks.
13571         (try_crossjump_to_edge): Avoid deleting preserve label when redirecting
13572         ABNORMAL edges.
13573         (block_has_preserve_label): New function.
13574         * common.opt: Register new pass.
13575         * Makefile.in: Ditto.
13576         * passes.c: Ditto.
13577         * timevar.def: Ditto.
13578         * tree-pass.h: Ditto.
13579         * emit-rtl.c (make_jump_insn_raw): Remove forward decl.
13580         * rtl.h (make_jump_insn_raw): Add forward decl.
13581         * doc/invoke.texi: Add documentation for -frtl-abstract-sequences.
13582
13583 2006-01-16  Eric Botcazou  <ebotcazou@adacore.com>
13584             Roger Sayle  <roger@eyesopen.com>
13585
13586         * fold-const.c (fold_minmax): New static function.
13587         (fold_binary) <MIN_EXPR>: Call it.
13588         <MAX_EXPR>: Likewise.
13589         * stor-layout.c (place_field): Use DECL_SIZE consistently
13590         in the computation of the new record size.
13591
13592 2006-01-16  Kazu Hirata  <kazu@codesourcery.com>
13593
13594         * cse.c (cse_condition_code_reg): Make it static.
13595         * rtl.h: Remove the prototype for cse_condition_code_reg.
13596
13597         * combine.c (combine_instructions): Make it static.
13598         * rtl.h: Remove the prototype for combine_instructions.
13599
13600 2006-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13601
13602         PR target/25168
13603         * tree.c (get_file_function_name_long): Concatenate the first global
13604         object name with a string derived from the input filename of the object
13605         for type "F".
13606
13607 2006-01-16  Ben Elliston  <bje@au.ibm.com>
13608
13609         * config/i386/winnt-stubs.c: Update FSF address.
13610         * config/xtensa/ieee754-df.S: Ditto.
13611         * config/xtensa/ieee754-sf.S: Ditto.
13612
13613 2006-01-14  Ian Lance Taylor  <ian@airs.com>
13614
13615         * ifcvt.c (noce_init_if_info): New static function, broken out of
13616         noce_process_if_block.
13617         (noce_process_if_block): Call noce_init_if_info.
13618         (check_cond_move_block): New static function.
13619         (cond_move_process_if_block): New static function.
13620         (process_if_block): Call cond_move_process_if_block.
13621
13622 2006-01-15  Kazu Hirata  <kazu@codesourcery.com>
13623
13624         * cselib.c (hash_table): Rename to cselib_hash_table.
13625         (cselib_clear_table, discard_useless_values,
13626         remove_useless_values, cselib_lookup_mem, cselib_lookup,
13627         cselib_init, cselib_finish): Adjust uses of hash_table.
13628
13629 2006-01-14  Kazu Hirata  <kazu@codesourcery.com>
13630
13631         PR tree-optimization/25485
13632         * tree-vrp.c (extract_range_from_binary_expr): Handle cases
13633         where one of the operands of TRUTH_AND_EXPR and TRUTH_OR_EXPR
13634         is known to be false and true, respectively.
13635
13636 2006-01-14  Richard Guenther  <rguenther@suse.de>
13637
13638         PR tree-optimization/22548
13639         PR tree-optimization/22555
13640         PR tree-optimization/22501
13641         * Makefile.in (tree-ssa-structalias.o): Depend on $(PARAMS_H).
13642         * params.def (salias-max-array-elements): New parameter.
13643         * params.h (SALIAS_MAX_ARRAY_ELEMENTS): Define.
13644         * doc/invoke.texi (salias-max-array-elements): Document.
13645         * tree-flow-inline.h (var_can_have_subvars): We also handle
13646         arrays now.
13647         * tree-ssa-alias.c (find_used_portions): Handle ARRAY_REF like
13648         COMPONENT_REF.
13649         * tree-ssa-structalias.c (params.h): Include.
13650         (push_fields_onto_fieldstack): Handle ARRAY_TYPE.
13651         (find_func_aliases): Handle multiple constraints from ARRAY_REF.
13652         (get_constraint_for): For ADDR_EXPR operating on something
13653         containing an ARRAY_REF, add all subvars to the solution.
13654         (handle_ptr_arith): Handle ARRAY_TYPE like RECORD_TYPE types.
13655         * tree-ssa-operands.c (parse_ssa_operands): Handle ARRAY_REF
13656         for creating MUST_DEFs.
13657         (get_expr_operands): Treat ARRAY_REF like COMPONENT_REF wrt subvars.
13658
13659 2006-01-14  Zdenek Dvorak <dvorakz@suse.cz>
13660
13661         * tree-ssa-loop-niter.c (number_of_iterations_cond): Split into several
13662         functions.
13663         (number_of_iterations_ne, number_of_iterations_lt_to_ne,
13664         assert_no_overflow_lt, assert_loop_rolls_lt, number_of_iterations_lt,
13665         number_of_iterations_le): New functions.
13666         (number_of_iterations_special): Removed.
13667         (number_of_iterations_exit): Do not use number_of_iterations_special.
13668         * tree.c (unsigned_type_for): Always return integer type.
13669
13670 2006-01-14  Steven Bosscher  <stevenb.gcc@gmail.com>
13671         Richard Guenther  <rguenther@suse.de>
13672
13673         PR rtl-optimization/24257
13674         * gcse.c (find_moveable_store): Only consider a store movable
13675         when the SET_SRC of the insn can be assigned to a register.
13676
13677 2006-01-14  Ian Lance Taylor  <ian@airs.com>
13678
13679         * tree.c (tree_not_class_check_failed): New function.
13680         * tree.h (NON_TYPE_CHECK): Call tree_not_class_check_failed.
13681         (tree_not_class_check_failed): Declare.
13682
13683 2006-01-13  Ian Lance Taylor  <ian@airs.com>
13684
13685         * reload1.c (do_output_reload): Add assertion rejecting a
13686         CALL_INSN.
13687
13688 2006-01-13  Adam Nemet  <anemet@caviumnetworks.com>
13689
13690         * combine.c (struct reg_stat): Add new fields truncation_label and
13691         truncated_to_mode.
13692         (record_value_for_reg): Reset truncated_to_mode.
13693         (record_truncated_value): New function.
13694         (check_promoted_subreg): Call it.  Rename to check_conversions.
13695         (combine_instructions): Rename check_promoted_subreg to
13696         check_conversions.
13697         (reg_truncated_to_mode): New function.
13698         (make_extraction): Use it.  Check TRULY_NOOP_TRUNCATION.
13699         (gen_lowpart_or_truncate): New function.
13700         (force_to_mode): Use it instead of gen_lowpart.
13701
13702 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
13703
13704         * tree-ssa-alias.c (add_type_alias): Fix typo.  Test whether
13705         VAR is a tag, not its type tag.
13706
13707 2006-01-13  Alexandre Oliva  <aoliva@redhat.com>
13708
13709         * config/i386/sse.md (*vec_extractv2di_1_sse2): Reorder
13710         alternatives to match style of other entries.
13711         (*vec_extractv2di_1_sse): Likewise.  Fix mode attr.
13712
13713 2006-01-13  Daniel Berlin  <dberlin@dberlin.org>
13714
13715         PR tree-optimization/25771
13716         * tree-ssa-pre.c (insert_extra_phis): Don't insert merges of abnormal
13717         SSA_NAMES.
13718
13719 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
13720
13721         PR tree-opt/24365
13722         * tree-inline.c (declare_return_variable): If the return variable
13723         was marked as a non gimple complex, set the return slot variable
13724         to be a non gimple comple variable.
13725
13726 2006-01-13  Richard Guenther  <rguenther@suse.de>
13727
13728         * builtins.c (expand_builtin_sincos): New function.
13729         (expand_builtin_mathfn_3): Remove dead code, sin and cos
13730         do not set errno.
13731         (expand_builtin): Expand sincos using expand_builtin_sincos.
13732
13733 2006-01-12  DJ Delorie  <dj@redhat.com>
13734
13735         * config/m32c/shift.md: Rewrite: Allow arbitrary operands for
13736         shift counts, separate SI shifts for m32c vs m16c, pass shift type
13737         so that constant shifts can be split.
13738         * config/m32c/m32c.c (m32c_const_ok_for_constraint_p): Add In6.
13739         (m32c_valid_pointer_mode): Make static.
13740         (shift_gen_func_for): New.
13741         (m32c_prepare_shift): Use it.  Split large const shifts into
13742         multiple shifts.
13743         * config/m32c/predicates.md (shiftcount_operand): Allow more
13744         general operands.
13745         (longshiftcount_operand): New.
13746         * doc/md.texi (Machine Constraints): Document In6.
13747
13748 2006-01-13  Ben Elliston  <bje@au.ibm.com>
13749
13750         * doc/tm.texi (Data Output): Add REAL_VALUE_TO_TARGET_DECIMAL32,
13751         REAL_VALUE_TO_TARGET_DECIMAL64 and REAL_VALUE_TO_TARGET_DECIMAL128
13752         documentation.
13753
13754 2006-01-12  Daniel Berlin  <dberlin@dberlin.org>
13755
13756         * tree-ssa-operands.c (add_call_clobber_ops): Use SFT_PARENT_VAR
13757         to try to avoid clobbering pieces of structures when we know
13758         something about the whole structure.
13759         * tree-ssa-alias.c (create_sft): Set SFT_PARENT_VAR
13760
13761 2006-01-13  Ben Elliston  <bje@au.ibm.com>
13762
13763         * doc/rtl.texi (Insns): Remove statement that libcalls cannot
13764         return in memory, as this is no limitation is no longer present.
13765
13766 2006-01-12  DJ Delorie  <dj@redhat.com>
13767
13768         * config/m32c/addsub.md (addhi3): Add two more alternatives, for
13769         mova with fb, and for fb+0 -> An.
13770
13771         * config/m32c/mov.md (peephole2): Fix enabling logic.
13772
13773         * config/m32c/m32c.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
13774         DTOR_LIST_BEGIN, DTOR_LIST_END, CTORS_SECTION_ASM_OP,
13775         DTORS_SECTION_ASM_OP, INIT_ARRAY_SECTION_ASM_OP,
13776         FINI_ARRAY_SECTION_ASM_OP): Define.
13777
13778         * config/m32c/m32c.c (m32c_legitimize_address): Remove temporary
13779         variable.
13780         (m32c_legitimize_reload_address): New logic to reload FB to An.
13781         (m32c_output_reg_push): Add newline.
13782         (m32c_output_reg_pop): Likewise.
13783
13784 2006-01-12  Ulrich Weigand  <uweigand@de.ibm.com>
13785
13786         * struct-equiv.c (find_dying_inputs): Fix off-by-one bug.
13787
13788 2006-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
13789
13790         * config/i386/darwin.h (SUBTARGET_ENCODE_SECTION_INFO): Define.
13791
13792 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
13793
13794         * config/sh/predicates.md (sh_rep_vec): Add parallel to
13795         match_code.
13796
13797 2006-01-11  Ben Elliston  <bje@au.ibm.com>
13798
13799         * rtlanal.c (find_reg_note): Assert insn is not null.
13800
13801 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
13802
13803         * df-scan.c (df_hard_reg_init): Move declaration of i outside
13804         ifdef.
13805
13806 2006-01-11  Jeff Law  <law@redhat.com>
13807
13808         * tree-ssa-threadupdate.c (threaded_edges): New VEC to
13809         hold edge pairs.
13810         (mark_threaded_blocks, register_jump_thread): New functions.
13811         (thread_through_all_blocks): Remove unwanted argument.  No
13812         longer rely on e->aux to communicate thread target info.
13813         Call mark_threaded_blocks.  Release the threaded_blocks
13814         bitmap and threaded_edges vector when complete.
13815         * tree-ssa-dom.c (struct edge_info): Remove redirection_target field.
13816         (threaded_blocks): Remove.
13817         (tree_ssa_dominator_optimize): Remove initialization and
13818         finalization of threaded_blocks.  Simplify call to
13819         thread_through_all_blocks.
13820         (thread_across_edge): Call register_jump_thread rather than
13821         storing thread information into e->aux.
13822         (free_all_edge_infos): Simplify now that e->aux is no longer
13823         used to communicate with thread_through_all_blocks.
13824         * tree-flow.h (thread_through_all_blocks): Update prototype.
13825         (register_jump_thread): Prototype.
13826
13827 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
13828
13829         * df-core.c (df_compact_blocks, df_bb_replace): Use
13830         SET_BASIC_BLOCK instead of BASIC_BLOCK.
13831
13832 2006-01-11  Richard Guenther  <rguenther@suse.de>
13833
13834         PR tree-optimization/25734
13835         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
13836         stop propagation after successful propagation to the LHS.
13837
13838 2006-01-11  Kazu Hirata  <kazu@codesourcery.com>
13839
13840         * basic-block.h (control_flow_graph): Change the type of
13841         x_basic_block_info to VEC(basic_block,gc) *.
13842         (BASIC_BLOCK_FOR_FUNCTION, BASIC_BLOCK): Adjust the uses of
13843         basic_block_info.
13844         (SET_BASIC_BLOCK): New.
13845         * cfg.c (compact_blocks, expunge_block): Use SET_BASIC_BLOCK
13846         instead of BASIC_BLOCK when assigning to BASIC_BLOCK.
13847         * cfgbuild.c (find_basic_blocks): Likewise.
13848         * cfglayout.c (fixup_reorder_chain): Likewise.
13849         * cfgrtl.c (create_basic_block_structure,
13850         rtl_create_basic_block): Likewise.
13851         * ifcvt.c (find_if_case_1): Likewise.
13852         * tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
13853         Likewise.
13854
13855 2006-01-11  Kenneth Zadeck <zadeck@naturalbridge.com>
13856
13857         * Makefile.in: Removed rotted odf.c entry.
13858
13859 2006-01-11  Hans-Peter Nilsson  <hp@axis.com>
13860
13861         PR target/25706
13862         * config/cris/cris.md ("*extopqihi_side", "*extop<mode>si_side")
13863         ("*extop<mode>si_swap_side_biap", "*extop<mode>si_swap_side",
13864         ("*extopqihi", "*extop<mode>si", "*extop<mode>si_swap"): Use %E
13865         output pattern modifier, not %e.
13866         * config/cris/cris.c (cris_op_str): Update comment about pattern
13867         modifier.
13868         (cris_print_operand) <case 'e'>: Clear cris_output_insn_is_bound
13869         before falling through into...
13870         <case 'E'>: Redefined from old 'e' case.
13871
13872 2006-01-11  Jan Hubicka  <jh@suse.cz>
13873
13874         PR target/25042
13875         * i386.c (ix86_init_mmx_sse_builtins): Do not delcare float128
13876
13877 2006-01-11  Jan Hubicka  <jh@suse.cz>
13878
13879         * i386.h (TARGET_DECOMPOSE_LEA): Kill.
13880         * i386.c (x86_decompose_lea): Kill.
13881         (ix86_rtx_costs): Kill.
13882
13883 2006-01-11  Jan Hubicka  <jh@suse.cz>
13884
13885         * cgraph.c (cgraph_insert_node_to_hashtable): New function.
13886         * cgraph.h (cgraph_node): Add inline_decl.
13887         (cgraph_insert_node_to_hashtable): Declare.
13888         (save_inline_function_body): Declare.
13889         * cgraphunit.c (verify_cgraph_node): Inline edges might point to inline
13890         clones.
13891         (cgraph_preserve_function_body_p): Do not presrve when dump is enabled.
13892         (cgraph_function_versioning): Update call of tree_function_versioning.
13893         (save_inline_function_body): New function.
13894         * function.h (struct function): Kill saved_eh, saved_cfg, saved_args,
13895         saved_static_chain_decl, saved_blocks and saved-unexpanded_var_list.
13896         * ipa-inline.c (cgraph_mark_inline_edge): Look for inline clones.
13897         (cgraph_default_inline_p): Likewise.
13898         (cgraph_decide_inlining_incrementally): Likewise.
13899         * tree-inline.c (inline_data): Kill saving_p add update_clones_p.
13900         (copy_bb): Kill saving; do updating of clones.
13901         (copy_cfg_body): Kill saving.
13902         (initialize_inlined-parameters): Likewise.
13903         (expand_call_inline): Likewise.
13904         (save_body): Kill.
13905         (tree_function_versioning): New parameter "update_clones".
13906         (inlining_p): Kill saving.
13907         * tree-inline.h (tree_function_versioning): Update prototype.
13908         * tree-optimize.c (tree_rest_of_compilation): Use clonning instead of
13909         saving.
13910
13911 2006-01-11  Ian Lance Taylor <ian@airs.com>
13912
13913         * combine.c (struct undo): Remove is_int.  Enumify types of undos.
13914         Allow undoing set of machine mode.
13915         (do_SUBST): Use enums instead of is_int.
13916         (do_SUBST_MODE): New function.
13917         (SUBST_MODE): New macro.
13918         (try_combine): Use SUBST_MODE/PUT_MODE instead of generating a new
13919         reg and trying to replace reg_regno_rtx with a new register.
13920         (undo_all): Use new enums, handle undoing a PUT_MODE change.
13921         (simplify_set): Use SUBST_MODE.
13922         (distribute_notes): Remove code that tried to update reg notes
13923         for regno_reg_rtx changes.
13924
13925 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
13926
13927         PR tree-optimization/23109
13928         PR tree-optimization/23948
13929         PR tree-optimization/24123
13930
13931         * Makefile.in (tree-ssa-math-opts.o): Adjust dependencies.
13932         * tree-cfg.c (single_noncomplex_succ): New.
13933         * tree-flow.h (single_noncomplex_succ): Declare it.
13934         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
13935         * tree-ssa-math-opts.c (enum place_reciprocal): Remove.
13936         (struct occurrence, occ_head, occ_pool, is_divide_by, compute_merit,
13937         insert_bb, register_division_in, insert_reciprocals,
13938         replace_reciprocal, free_bb): New.
13939         (execute_cse_reciprocals_1): Rewritten.
13940         (execute_cse_reciprocals): Adjust calls to execute_cse_reciprocals_1.
13941         Do not commit any edge insertion.  Always compute dominators and
13942         create the allocation pool.
13943         * target-def.h (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): New.
13944         * target.h (struct gcc_target): Add min_divistions_for_recip_mul.
13945         * targhooks.c (default_min_divistions_for_recip_mul): New.
13946         * targhooks.h (default_min_divistions_for_recip_mul): New prototype.
13947         * passes.c (init_optimization_passes): Run recip after tree loop
13948         optimizations.
13949         * doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
13950
13951 2006-01-11  Danny Berlin <dberlin@dberlin.org>
13952             Kenneth Zadeck <zadeck@naturalbridge.com>
13953
13954         * df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
13955         DF_RI, DF_LAST_PROBLEM_PLUS1, DF_DU_CHAIN, DF_UD_CHAIN,
13956         DF_REF_TYPE_NAMES, DF_HARD_REGS, DF_EQUIV_NOTES, DF_SUBREGS,
13957         DF_SCAN_BB_INFO, DF_RU_BB_INFO, DF_RD_BB_INFO, DF_LR_BB_INFO,
13958         DF_UR_BB_INFO, DF_UREC_BB_INFO, DF_LIVE_IN, DF_LIVE_OUT,
13959         DF_RA_LIVE_IN, DF_RA_LIVE_OUT, DF_UPWARD_LIVE_IN,
13960         DF_UPWARD_LIVE_OUT, DF_REF_REAL_REG, DF_REF_REGNO,
13961         DF_REF_REAL_LOC, DF_REF_REG, DF_REF_LOC, DF_REF_BB, DF_REF_BBNO,
13962         DF_REF_INSN, DF_REF_INSN_UID, DF_REF_TYPE, DF_REF_CHAIN,
13963         DF_REF_ID, DF_REF_FLAGS, DF_REF_NEXT_REG, DF_REF_PREV_REG,
13964         DF_REF_NEXT_REF, DF_REF_DATA, DF_REF_REG_DEF_P, DF_REF_REG_USE_P,
13965         DF_REF_REG_MEM_STORE_P, DF_REF_REG_MEM_LOAD_P, DF_REF_REG_MEM_P,
13966         DF_DEFS_SIZE, DF_DEFS_GET, DF_DEFS_SET, DF_USES_SIZE, DF_USES_GET,
13967         DF_USES_SET, DF_REG_SIZE, DF_REG_DEF_GET, DF_REG_DEF_SET,
13968         DF_REG_USE_GET, DF_REG_USE_SET, DF_REGNO_FIRST_DEF,
13969         DF_REGNO_LAST_USE, DF_INSN_SIZE, DF_INSN_GET, DF_INSN_SET,
13970         DF_INSN_CONTAINS_ASM, DF_INSN_LUID, DF_INSN_DEFS, DF_INSN_USES,
13971         DF_INSN_UID_GET, DF_INSN_UID_LUID, DF_INSN_UID_DEFS,
13972         DF_INSN_UID_USES, DF_SCAN_INITIAL, DF_SCAN_GLOBAL,
13973         DF_SCAN_POST_ALLOC): New macros.
13974         (df_flow_dir, df_ref_type, df_ref_flags, df_alloc_function,
13975         df_free_bb_function, df_local_compute_function, df_init_function,
13976         df_dataflow_function, df_confluence_function_0,
13977         df_confluence_function_n, df_transfer_function,
13978         df_finalizer_function, df_free_function, df_dump_problem_function,
13979         df_problem, dataflow, df_insn_info, df_reg_info, df_ref, df_link,
13980         df_ref_info, df, df_map, df_scan_bb_info, df_ru_bb_info,
13981         df_ru_bb_info, df_rd_bb_info, df_lr_bb_info, df_ur_bb_info,
13982         df_urec_bb_info, ) New types.
13983         (df_invalidated_by_call, df_all_hard_regs, df_state) New public
13984         variables.
13985         (df_init, df_add_problem, df_set_blocks, df_finish, df_analyze,
13986         df_analyze_simple_change_some_blocks,
13987         df_analyze_simple_change_one_block, df_compact_blocks,
13988         df_bb_replace, df_bb_regno_last_use_find,
13989         df_bb_regno_first_def_find, df_bb_regno_last_def_find,
13990         df_insn_regno_def_p, df_find_def, df_find_use,
13991         df_iterative_dataflow, df_dump, df_chain_dump, df_refs_chain_dump,
13992         df_regs_chain_dump, df_insn_debug, df_insn_debug_regno,
13993         df_regno_debug, df_ref_debug, debug_df_insn, debug_df_regno,
13994         debug_df_reg, debug_df_defno, debug_df_useno, debug_df_ref,
13995         debug_df_chain, df_get_dependent_problem, df_chain_create,
13996         df_chain_unlink, df_chain_copy, df_get_live_in, df_get_live_out,
13997         df_grow_bb_info, df_chain_dump, df_print_bb_index,
13998         df_ru_add_problem, df_ru_get_bb_info, df_rd_add_problem,
13999         df_rd_get_bb_info, df_lr_add_problem, df_lr_get_bb_info,
14000         df_ur_add_problem, df_ur_get_bb_info, df_urec_add_problem,
14001         df_urec_get_bb_info, df_chain_add_problem, df_ri_add_problem,
14002         df_reg_lifetime, df_scan_get_bb_info, df_scan_add_problem,
14003         df_rescan_blocks, df_ref_create, df_get_artificial_defs,
14004         df_get_artificial_uses, df_reg_chain_create, df_reg_chain_unlink,
14005         df_ref_remove, df_insn_refs_delete, df_refs_delete,
14006         df_reorganize_refs, df_set_state, df_hard_reg_init,
14007         df_read_modify_subreg_p) New public functions.
14008         * df-core.c: The core dataflow solver and glue routines for rtl
14009         dataflow.
14010         (df_init, df_add_problem, df_set_blocks, df_finish,
14011         df_hybrid_search_forward, df_hybrid_search_backward,
14012         df_iterative_dataflow, df_prune_to_subcfg, df_analyze_problem,
14013         df_analyze, df_get_bb_info, df_set_bb_info, df_bb_replace,
14014         df_bb_regno_last_use_find, df_bb_regno_first_def_find,
14015         df_bb_regno_last_def_find, df_insn_regno_def_p, df_find_def,
14016         df_reg_defined, df_find_use, df_reg_used, df_dump,
14017         df_refs_chain_dump, df_regs_chain_dump, df_insn_debug,
14018         df_insn_debug_regno, df_regno_debug, df_ref_debug, debug_df_insn,
14019         debug_df_reg, debug_df_regno, debug_df_ref debug_df_defno,
14020         debug_df_useno, reset_df_after_reload): New functions.
14021         * df-scan.c: The scanning fuctions, once in df.c, completely
14022         rewritten so that they now fully model the functionality of
14023         register usage at the backend.
14024         (df_scan_free_internal, df_scan_get_bb_info, df_scan_set_bb_info,
14025         df_scan_free_bb_info, df_scan_alloc, df_scan_free, df_scan_dump,
14026         df_scan_add_problem, df_grow_reg_info, df_grow_ref_info,
14027         df_grow_insn_info, df_rescan_blocks, df_ref_create,
14028         df_get_artificial_defs, df_get_artificial_uses,
14029         df_reg_chain_create, df_ref_unlink, df_reg_chain_unlink,
14030         df_ref_remove, df_insn_create_insn_record, df_insn_refs_delete,
14031         df_refs_delete, df_reorganize_refs, df_set_state,
14032         df_ref_create_structure, df_ref_record, df_read_modify_subreg_p,
14033         df_def_record_1, df_defs_record, df_uses_record,
14034         df_insn_contains_asm_1, df_insn_contains_asm, df_insn_refs_record,
14035         df_has_eh_preds, df_bb_refs_record, df_refs_record, df_mark_reg,
14036         df_record_exit_block_uses, df_hard_reg_init): New functions.
14037
14038         * df-problems.c: Seven concrete dataflow problems that use the
14039         scanning in df-scan.c and are solved by the engine in df-core.c.
14040         (df_get_dependent_problem, df_chain_create, df_chain_unlink,
14041         df_chain_copy, df_get_live_in, df_get_live_out, df_grow_bb_info,
14042         df_chain_dump, df_print_bb_index, df_ref_bitmap, df_set_seen,
14043         df_unset_seen, df_ru_get_bb_info, df_ru_set_bb_info,
14044         df_ru_free_bb_info, df_ru_alloc,
14045         df_ru_bb_local_compute_process_def,
14046         df_ru_bb_local_compute_process_use, df_ru_bb_local_compute,
14047         df_ru_local_compute, df_ru_init_solution, df_ru_confluence_n,
14048         df_ru_transfer_function, df_ru_free, df_ru_dump,
14049         df_ru_add_problem, df_rd_get_bb_info, df_rd_set_bb_info,
14050         df_rd_free_bb_info, df_rd_alloc,
14051         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute,
14052         df_rd_local_compute, df_rd_init_solution, df_rd_confluence_n,
14053         df_rd_transfer_function, df_rd_free, df_rd_dump,
14054         df_rd_add_problem, df_lr_get_bb_info, df_lr_set_bb_info,
14055         df_lr_free_bb_info, df_lr_alloc, df_lr_bb_local_compute,
14056         df_lr_local_compute, df_lr_init, df_lr_confluence_0,
14057         df_lr_confluence_n, df_lr_transfer_function, df_lr_free,
14058         df_lr_dump, df_lr_add_problem, df_ur_get_bb_info,
14059         df_ur_set_bb_info, df_ur_free_bb_info, df_ur_alloc,
14060         df_ur_bb_local_compute, df_ur_local_compute, df_ur_init,
14061         df_ur_local_finalize, df_ur_confluence_n, df_ur_transfer_function,
14062         df_ur_free, df_ur_dump, df_ur_add_problem, df_urec_get_bb_info,
14063         df_urec_set_bb_info, df_urec_free_bb_info, df_urec_alloc,
14064         df_urec_mark_reg_change, df_urec_check_earlyclobber,
14065         df_urec_mark_reg_use_for_earlyclobber,
14066         df_urec_mark_reg_use_for_earlyclobber_1, df_urec_bb_local_compute,
14067         df_urec_local_compute, df_urec_init, df_urec_local_finalize,
14068         df_urec_confluence_n, df_urec_transfer_function, df_urec_free,
14069         df_urec_dump, df_urec_add_problem, df_chain_alloc,
14070         df_chain_create_bb_process_use, df_chain_create_bb,
14071         df_chain_finalize, df_chain_free, df_chains_dump,
14072         df_chain_add_problem, df_ri_alloc, df_ri_bb_compute,
14073         df_ri_compute, df_ri_free, df_ri_dump, df_ri_add_problem,
14074         df_reg_lifetime): New functions.
14075         * df.c: Deleted file.
14076         * ddg.c (create_ddg_dep_no_link, build_inter_loop_deps): Made code
14077         consistent with new df api.
14078         * modulo-sched.c (sms_schedule, rest_of_handle_sms,
14079         rest_of_handle_sms): Ditto.
14080         * web.c (unionfind_union, union_defs, entry_register, web_main):
14081         Ditto.
14082         * loop_invariant.c (invariant_for_use, hash_invariant_expr_1,
14083         invariant_expr_equal_p, find_defs, check_dependencies,
14084         find_invariant_insn, find_invariants_to_move, move_invariant_reg,
14085         free_inv_motion_data, move_loop_invariants): Ditto.
14086         * Makefile.in (df.c, df-scan.c df-problems.c df-core.c):
14087         Update dependencies.
14088         (odf.c): Added defective entry that was deleted later in day.
14089         * sched-deps.c (sched_analyze_1): Ditto.
14090
14091 2006-01-11  Zdenek Dvorak <dvorakz@suse.cz>
14092
14093         * tree-ssa-operands.c (get_expr_operands): Record addressable
14094         variables directly.  Do not call add_stmt_operands for CONST_DECLs
14095         and ARRAY_DECLs.
14096         (get_indirect_ref_operands): Remove handling of *(&a + offset) case.
14097         (add_stmt_operands): Handle only objects satisfying SSA_VAR_P.
14098
14099 2006-01-11  Ben Elliston  <bje@au.ibm.com>
14100
14101         * config/i386/i386.c (ix86_return_in_memory): Fix comment: this
14102         function returns true in the positive case.
14103
14104 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14105
14106         PR target/20754
14107         * config/pa/pa.md: Create separate 32 and 64-bit move patterns
14108         for SI, DI, SF and DF modes.  Add alternatives to copy between
14109         general and floating point registers to the 32-bit patterns.
14110         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
14111         * config/pa/pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
14112         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
14113         generating 64-bit code.
14114         * config/pa/pa.c (output_move_double): Handle copies between general
14115         and floating registers.
14116
14117 2006-01-10  Stuart Hastings  <stuart@apple.com>
14118
14119         * config/i386/i386.md (set_got): Update.
14120         (set_got_labelled): New.  (UNSPEC_LD_MPIC): New.
14121         (builtin_setjmp_receiver): Mach-O support.
14122         * config/i386/darwin.h (TARGET_ASM_FILE_END) Define.
14123         (GOT_SYMBOL_NAME): Define.
14124         (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New.
14125         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
14126         * config/i386/i386.c (override_options): Revise for Darwin.
14127         (USE_HIDDEN_LINKONCE): Enable for Mach-O.  (ix86_file_end): Mach-O
14128         support.  (darwin_x86_file_end): New.  (output_set_got): Add label
14129         parameter, revise for Mach-O.  (x86_output_mi_thunk): Likewise.
14130         * config/i386/i386-protos.h (output_set_got): Likewise.
14131         * config/darwin.c (machopic_legitimize_pic_address): Update
14132         regs_ever_live[].
14133
14134 2006-01-10  Kaz Kojima  <kkojima@gcc.gnu.org>
14135
14136         * config/sh/sh.h (SH5_WOULD_BE_PARTIAL_NREGS): Use GET_MODE_SIZE
14137         when MODE isn't BLKmode.
14138
14139 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
14140
14141         PR rtl-optimization/25367
14142         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
14143
14144 2006-01-10  Hans-Peter Nilsson  <hp@axis.com>
14145
14146         PR target/25718
14147         * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes
14148         for a negative bound.
14149
14150 2006-01-10  Richard Guenther  <rguenther@suse.de>
14151
14152         * tree-ssa-structalias.c (get_constraint_for_component_ref):
14153         Never override with anything constraint.
14154
14155 2006-01-10  Jan Beulich  <jbeulich@novell.com>
14156
14157         * config/i386/i386.c (ix86_data_alignment): Don't force alignment to
14158         256 bits when optimize_size.
14159
14160 2006-01-10  Jan Beulich  <jbeulich@novell.com>
14161
14162         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
14163         MASK_ALIGN_DOUBLE.
14164         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
14165         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
14166         arguments.
14167
14168 2006-01-10  Ben Elliston  <bje@au.ibm.com>
14169
14170         * config/rs6000/predicates.md (easy_fp_constant): Discount decimal
14171         float modes.
14172         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): New.
14173         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
14174         (USE_FP_FOR_ARG): Reject decimal float modes.
14175         (function_arg_advance): Likewise.
14176         (output_toc): Handle emitting TDmode, DDmode and SDmode constants.
14177         (rs6000_handle_altivec_attribute): Do not permit decimal floating
14178         point types in AltiVec vectors.
14179         (rs6000_function_value): Use GP_ARG_RETURN for decimal floats.
14180         (rs6000_libcall_value): Likewise.
14181
14182 2006-01-09  Bob Wilson  <bob.wilson@acm.org>
14183
14184         * config/xtensa/ieee754-df.S: New file.
14185         * config/xtensa/ieee754-sf.S: New file.
14186         * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove fp-bit.c & dp-bit.c.
14187         (LIB1ASMFUNCS): Add SFmode and DFmode floating-point functions.
14188         * config/xtensa/lib1funcs.asm: Include ieee754-df.S and ieee754-sf.S.
14189
14190 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
14191
14192         * config/sh/predicates.md (binary_float_operator,
14193         binary_logical_operator, commutative_float_operator,
14194         equality_comparison_operator, greater_comparison_operator,
14195         less_comparison_operator, logical_operator,
14196         noncommutative_float_operator, shift_operator,
14197         symbol_ref_operand, unary_float_operator): Remove redundant
14198         conditionals.
14199
14200 2006-01-09  Jeff Law  <law@redhat.com>
14201
14202         * tree-ssa-dom.c (simplify_cond_and_lookup_avail_expr): Remove
14203         code to propagate the RHS of a cast into COND_EXPR_COND.  Remove
14204         now unused arguments.  Callers updated.
14205         (eliminate_redundant_computations): Remove now unused arguments,
14206         callers updated.
14207         (local_fold): Remove, no longer used.
14208         (find_equivalent_equality_comparison): Removed from tree-ssa-dom.c
14209         and moved to...
14210         * tree-ssa-forwprop.c (find_equivalent_equality_comparison): Here.
14211         (simplify_cond): New function.
14212         (forward_propagate_into_cond): Call simplify_cond.
14213
14214 2006-01-09  Alexandre Oliva  <aoliva@redhat.com>
14215
14216         * config/i386/sse.md (*vec_extractv2di_1_sse2): New.
14217         (*vec_extractv2di_1_sse): New.
14218
14219 2006-01-09  Ben Elliston  <bje@au.ibm.com>
14220
14221         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Typo fix.
14222
14223 2006-01-08  Richard Guenther  <rguenther@suse.de>
14224
14225         * tree-ssa-structalias.c (get_constraint_for): Remove
14226         anyoffset argument.
14227         (get_constraint_for_component_ref): Likewise.
14228         (do_deref): Likewise.
14229         (get_constraint_for): Likewise.
14230         (do_structure_copy): Likewise.
14231         (handle_ptr_arith): Likewise.
14232         (find_func_aliases): Likewise.  Remove unused need_anyoffset
14233         variable.
14234
14235 2006-01-08  J"orn Rennecke  <joern.rennecke@st.com>
14236             Kaz Kojima  <kkojima@gcc.gnu.org>
14237
14238         * config/sh/sh.h (CONST_OK_FOR_K16): Define.
14239         (CONST_OK_FOR_K): Add CONST_OK_FOR_K16 case.
14240         (EXTRA_CONSTRAINT_C16): Remove.
14241         (EXTRA_CONSTRAINT_Css, EXTRA_CONSTRAINT_Csu): Define.
14242         (EXTRA_CONSTRAINT_C): Remove EXTRA_CONSTRAINT_C16 case and add
14243         EXTRA_CONSTRAINT_Css and EXTRA_CONSTRAINT_Csu cases.
14244         * config/sh/sh.c (print_operand): Handle unsigned 16-bit symbolic
14245         constants of SHmedia.  Handle nested constant expressions of
14246         SHmedia correctly.
14247         (andcosts): Fix the costs for SHmedia constants.
14248         (sh_rtx_costs): Take account of outer_code for SHmedia constants.
14249         * config/sh/sh.md (*movsi_media): Use Css constraint instead of C16.
14250         (*movsi_media_nofpu, *movqi_media, *movhi_media): Likewise.
14251         (*movdi_media, *movdi_media_nofpu, movv8qi_i, movv2hi_i): Likewise.
14252         (movv4hi_i, movv2si_i): Likewise.
14253         (movsi_const): Adjust the second operand of ior so to match with
14254         the Csu constraint.
14255         (movdi_const, movdi_const_32bit): Likewise.
14256         (movdi_const_16bit+1): Don't sign-extend LOW.
14257         (movdi_const_16bit+2): Likewise.  Remove the zero_extend and truncate
14258         step.
14259         (*double_shori): Fix the split condition.  Use GEN_INT instead
14260         of get_int_mode calls.  Mask lower 16-bit of the argument of
14261         the last GEN_INT.
14262         (sym2GOTPLT): Remove.
14263         (symGOTPLT2reg): Replace gen_sym2GOTPLT with gen_rtx_CONST and
14264         gen_rtx_UNSPEC.
14265         * config/sh/predicates.md (arith_operand): Use EXTRA_CONSTRAINT_Css
14266         instead of EXTRA_CONSTRAINT_C16.
14267
14268 2006-01-07  Ian Lance Taylor  <ian@airs.com>
14269             David Edelsohn  <edelsohn@gnu.org>
14270
14271         PR rtl-optimization/25662
14272         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
14273         for constant operands instead of simplify_gen_binary.
14274         * simplify-rtx.c (simplify_gen_binary): Swap commutative operands
14275         after trying simplify_binary_operation
14276
14277 2006-01-06  Daniel Berlin  <dberlin@dberlin.org>
14278
14279         * tree.c (iterative_hash_expr): Hash decls based on UID.
14280
14281 2006-01-06  Eric Christopher  <echristo@apple.com>
14282
14283         * doc/tm.texi (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Document.
14284         (TARGET_UNWIND_EMIT): Fix spelling.
14285         * target.h (gcc_target): Add except_table_label.
14286         * except.c (output_function_exception_table): Use.
14287         * varasm.c (default_emit_except_table_label): New.
14288         * target-def.h (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): New default
14289         define.
14290         (asm_out): Add here.
14291         * output.h (default_emit_except_table_label): Prototype.
14292         * config/darwin-protos.h (darwin_emit_except_table_label): Ditto.
14293         * config/darwin.c (darwin_emit_except_table_label): Define.
14294         * config/darwin.h (TARGET_ASM_EMIT_EXCEPT_TABLE): Ditto.
14295
14296 2006-01-06  Zdenek Dvorak <dvorakz@suse.cz>
14297
14298         PR tree-optimization/18527
14299         * tree-ssa-loop-niter.c (number_of_iterations_cond,
14300         number_of_iterations_special, number_of_iterations_exit):
14301         Move base and step of an iv to a single structure.  Add
14302         no_overflow flag, and use it in # of iterations analysis.
14303         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Add
14304         folded_casts argument.
14305         (simple_iv): Pass base and step in a structure.  Set no_overflow
14306         flag.
14307         (scev_const_prop): Add argument to analyze_scalar_evolution_in_loop.
14308         Evaluate expensiveness of computing # of iterations instead of
14309         the final expression.
14310         * tree-scalar-evolution.h (affine_iv): New structure.
14311         (simple_iv): Declaration changed.
14312         * tree-chrec.c (chrec_apply): Handle chrecs containing symbols.
14313         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev,
14314         find_givs_in_stmt): Changed due to simple_iv change.
14315
14316 2006-01-06  Jeff Law  <law@redhat.com>
14317
14318         PR ada/24994
14319         * tree-cfg.c (bsi_replace): Rename final argument from
14320         PRESERVE_EH_INFO to UPDATE_EH_INFO.  Fix typo in last
14321         change (stmt -> orig_stmt).
14322         * tree-eh.c (verify_eh_throw_stmt_node): New function.
14323         (bsi_remove): Add new argument.  Remove EH information
14324         if requested.
14325         (verify_eh_throw_table_statements): New function.
14326         (bsi_remove): Add new argument REMOVE_EH_INFO.  All callers
14327         updated.
14328         * tree-optimize.c (execute_free_cfg_annotations): Verify
14329         the EH throw statement table after removing annotations.
14330         * except.h (verify_eh_throw_table_statements): Prototype.
14331         * tree-flow.h (bsi_remove): Update prototype.
14332         * tree-vrp.c (remove_range_assertions): Add new argument to
14333         bsi_remove call.
14334         * tree-ssa-loop-im.c (move_computations_stmt): Likewise.
14335         * tree-complex.c (expand_complex_div_wide): Likewise.
14336         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Likewise
14337         * tree-tailcall.c (eliminate_tailcall): Likewise.
14338         * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
14339         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
14340         * tree-nrv.c (tree_nrv): Likewise.
14341         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Likewise.
14342         * tree-if-conv.c (tree_if_convert_cond_expr): Likewise.
14343         (combine_blocks): Likewise.
14344         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Likewise.
14345         * tree-cfgcleanup.c (cleanup_ctrl_expr_graph): Likewise.
14346         (cleanup_control_flow): Likewise.
14347         (remove_forwarder_block): Likewise.
14348         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
14349         * tree-sra.c (sra_replace): Likewise.
14350         * tree-ssa-forwprop.c (forward_propagate_into_cond): Likewise.
14351         (forward_propagate_single_use_vars): Likewise.
14352         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
14353         * tree-inline.c (expand_call_inline): Likewise.
14354         * tree-vect-transform.c (vect_transform_loop): Likewise.
14355         * tree-outof-ssa.c (rewrite_trees): Likewise.
14356         * tree-cfg.c (make_goto_expr_edges): Likewise.
14357         (cleanup_dead_labels): Likewise.
14358         (tree_merge_blocks, remove_bb, disband_implicit_edges): Likewise.
14359         (bsi_move_before, bsi_move_after): Likewise.
14360         (bsi_move_to_bb_end, try_redirect_by_replacing_jump): Likewise
14361         (tree_redirect_edge_and_branch, tree_split_block): Likewise.
14362
14363 2006-01-06  Andrew Pinski  <pinskia@physics.uc.edu>
14364
14365         PR tree-opt/25528
14366         * tree-ssa-alias.c (find_used_portions): Handle REALPART_EXPR
14367         and IMAGPART_EXPR.
14368         * tree-flow-inline.h (var_can_have_subvars): Handle complex types
14369         on non gimple variables.  Also add checks at the top for decls and
14370         mtags.
14371         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Handle
14372         complex types.
14373         * tree-ssa-operands.c (parse_ssa_operands): Handle REALPART_EXPR
14374         and IMAGPART_EXPR for creating MUST_DEFs.
14375         (get_expr_operands): Handle SSA_NAME, STRUCT_FIELD_TAG, TYPE_MEMORY_TAG,
14376         and NAME_MEMORY_TAG separately from the DECLs.
14377
14378 2006-01-06  Richard Guenther  <rguenther@suse.de>
14379
14380         * tree-dfa.c (mark_new_vars_to_rename): Create stmt
14381         annotation, if necessary.
14382         * tree-ssa-pre.c (create_expression_by_pieces): Remove
14383         redundant calls to update_stmt.
14384         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr):
14385         Likewise.
14386
14387 2006-01-05  Richard Henderson  <rth@redhat.com>
14388
14389         * c-parser.c (c_parser_objc_methodprotolist): Handle CPP_PRAGMA.
14390
14391 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
14392
14393         * c-typeck.c: Update copyright date.
14394
14395 2006-01-05  Carlos O'Donell  <carlos@codesourcery.com>
14396
14397         * c-typeck.c (build_c_cast): Always warn when casting
14398         from a pointer to an integer of different size, even if
14399         the node was constant.
14400
14401 2006-01-05  Richard Guenther  <rguenther@suse.de>
14402
14403         PR tree-optimization/22555
14404         * tree-ssa-alias.c (create_overlap_variables_for): Do not give up,
14405         if one structure field is an array.
14406         * tree-ssa-operands.c (get_expr_operands): Continue scanning
14407         operands even if we found a subvar, but ignore VOPs in this
14408         case.
14409         * tree-ssa-loop-ivopts.c (rewrite_use): Mark new vars in stmt
14410         for renaming.
14411         * tree-ssa-loop.c (pass_iv_optimize): Schedule TODO_update_ssa.
14412
14413 2006-01-05  Richard Earnshaw  <rearnsha@arm.com>
14414
14415         PR middle-end/24998
14416         * arm/t-netbsd (LIB2FUNCS_EXTRA): Define.
14417
14418 2006-01-05  Richard Guenther  <rguenther@suse.de>
14419             Diego Novillo  <dnovillo@redhat.com>
14420
14421         * tree-pass.h (TODO_remove_unused_locals): Define.
14422         * gimple-low.c (expand_var_p, remove_useless_vars,
14423         pass_remove_useless_vars): Remove.  Update all users.
14424         * tree-ssa-live.c (mark_all_vars_used_1): Handle SSA names.
14425         (remove_unused_locals): New function.
14426         * tree-flow.h (remove_unused_locals): Declare.
14427         * passes.c (execute_todo): Call remove_unused_locals if
14428         TODO_remove_unused_locals is set.
14429         * tree-into-ssa.c (pass_build_ssa): Add TODO_remove_unused_locals.
14430         * tree-ssa-dce.c (pass_dce): Likewise.
14431         * tree-outof-ssa.c (pass_del_ssa): Likewise.
14432
14433 2006-01-05  Richard Guenther  <rguenther@suse.de>
14434
14435         * tree-flow.h (struct fieldoff): Decompose field to
14436         type, size and decl.
14437         * tree-ssa-alias.c (create_sft): Take type as parameter.
14438         (create_overlap_variables_for): Store type, size and decl
14439         in the fieldoff structure.
14440         * tree-ssa-structalias.c (fieldoff_compare): Adjust users
14441         of struct fieldoff.
14442         (push_fields_onto_fieldstack): Likewise.
14443         (create_variable_info_for): Likewise.  Use offset for the
14444         SFT name if the decl is not available.
14445
14446 2006-01-04  Paul Brook  <paul@codesourcery.com>
14447
14448         * config/m68k/m68k.c (m68k_output_mi_thunk): Use jmp, not jsr.
14449
14450 2006-01-04  Daniel Berlin  <dberlin@dberlin.org>
14451
14452         * lambda-code.c (can_put_in_inner_loop): Relax
14453         restrictions.
14454         (can_put_after_inner_loop): New function.
14455         (can_convert_to_perfect_nest): Use can_put_after_inner_loop as well.
14456         (perfect_nestify): Change to make copies and modify uses.
14457
14458 2006-01-04  Richard Henderson  <rth@redhat.com>
14459
14460         Merge from gomp branch:
14461         * c-lex.c (c_lex_with_flags) <CPP_PRAGMA>: Smuggle pragma id
14462         via integer constant.
14463         (pragma_lex): Remove.
14464         * c-pch.c (c_common_pch_pragma): Accept the name as an argument,
14465         rather than parsing it.
14466         * c-pragma.c (handle_pragma_weak, handle_pragma_redefine_extname,
14467         handle_pragma_extern_prefix): Add %< %> quotes.
14468         (registered_pragmas): New.
14469         (c_register_pragma_1): New.
14470         (c_register_pragma): Use it.
14471         (c_register_pragma_with_expansion): Likewise.
14472         (c_invoke_pragma_handler): New.
14473         (init_pragma): Use cpp_register_deferred_pragma directly for
14474         pch_preprocess.
14475         * c-pragma.h (enum pragma_kind): New.
14476         (pragma_handler): New.
14477         (c_invoke_pragma_handler): Declare.
14478         * c-common.c (c_parse_error): Pretty print CPP_PRAGMA and
14479         CPP_PRAGMA_EOL.
14480         * c-common.h (c_common_pch_pragma): Update decl.
14481         * Makefile.in (c-parser.o): Update dependencies.
14482         (GTFILES): Add c-pragma.h.
14483         * c-parser.c (struct c_token): Add pragma_kind.
14484         (struct c_parser): Add in_pragma.
14485         (c_lex_one_token): Always initialize keyword and pragma_kind.
14486         Extract data for CPP_PRAGMA.
14487         (c_parser_peek_2nd_token): Deny CPP_PRAGMA_EOL.
14488         (c_parser_consume_token): Don't allow CPP_PRAGMA unless errors.
14489         Don't allow CPP_PRAGMA_EOL if in_pragma.
14490         (c_parser_consume_pragma): New.
14491         (c_parser_skip_until_found): Stop on CPP_PRAGMA_EOL.
14492         (c_parser_skip_to_end_of_parameter): Likewise.
14493         (c_parser_skip_to_end_of_block_or_statement): Likewise.
14494         (c_parser_skip_to_pragma_eol): New.
14495         (c_parser_external_declaration): Handle CPP_PRAGMA.
14496         (c_parser_compound_statement_nostart): Likewise.
14497         (c_parser_statement_after_labels): Likewise.
14498         (c_parser_pragma): New.
14499         (pragma_lex): Likewise.
14500         (c_parser_pragma_pch_preprocess): New.
14501         (c_parser_new): Merge into ...
14502         (c_parse_file): ... here.  Call c_parser_pragma_pch_preprocess.
14503
14504 2006-01-04  Jeff Law  <law@redhat.com>
14505
14506         PR ada/24994
14507         * tree-cfg.c (bsi_replace): Remove the original statement
14508         from the EH throw statement table.
14509
14510 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
14511
14512         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
14513         make the prototype extern "C" and add throw ().
14514
14515         PR target/25554
14516         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
14517         and pos non-negative and pos + len <= 32.
14518         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
14519         drop pos + len < HOST_BITS_PER_WIDE_INT test.
14520         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
14521
14522         PR c/25559
14523         * c-common.c (handle_vector_size_attribute): Reject zero vector size
14524         as well as sizes not multiple of component size.
14525
14526         PR debug/25562
14527         * function.c (instantiate_expr): New function.
14528         (instantiate_decls_1, instantiate_decls): If DECL_HAS_VALUE_EXPR_P,
14529         walk its DECL_VALUE_EXPR with instantiate_expr.
14530
14531         * dwarf2out.c (loc_descriptor_from_tree_1): Don't add
14532         DW_OP_deref{,_size} if address isn't going to be added.
14533
14534 2006-01-04  Ben Elliston  <bje@au.ibm.com>
14535
14536         * config/fp-bit.h: Use top-of-file comment from libgcc2.c.
14537         * config/fp-bit.c: Likewise.
14538
14539 2006-01-03  Daniel Berlin  <dberlin@dberlin.org>
14540
14541         * dominance.c: Add comment about why we use DFS numbering
14542         of dominance tree.
14543
14544 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
14545             Richard Henderson  <rth@redhat.com>
14546
14547         Merge from gomp-branch:
14548         * varasm.c (assemble_variable): Handle thread-local COMMON data.
14549         * defaults.h (ASM_OUTPUT_TLS_COMMON): Define.
14550
14551 2006-01-03  Paolo Bonzini  <bonzini@gnu.org>
14552
14553         PR rtl-optimization/25578
14554         * combine.c (combine_simplify_rtx, force_to_mode): Don't
14555         pass a parameter to simplify_shift_const if changing ASHIFTRT
14556         to LSHIFTRT.
14557
14558 2006-01-03  Adrian Straetling  <straetling@de.ibm.com>
14559
14560         * builtins.c (get_builtin_sync_mem): New function.
14561         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
14562         expand_builtin_lock_test_and_set, expand_builtin_lock_release):
14563         Call get_builtin_sync_mem to generate mem rtx.
14564
14565 2006-01-03  Richard Guenther  <rguenther@suse.de>
14566
14567         PR c/25183
14568         * stmt.c (add_case_node): Make sure to clear overflow flags
14569         from ranges.
14570
14571 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
14572
14573         Merge from gomp-branch.
14574         * config/sparc/sync.md: New file.
14575         * config/sparc/sparc.md (UNSPECV_MEMBAR, UNSPECV_CAS, UNSPECV_SWAP,
14576         UNSPECV_LDSTUB): New constants.
14577         * config/sparc/sparc.c (sparc_expand_compare_and_swap_12): New function.
14578         * config/sparc/predicates.md (memory_reg_operand): New predicate.
14579         * config/sparc/sparc-protos.h (sparc_expand_compare_and_swap_12): New
14580         prototype.
14581
14582 2006-01-03  Roger Sayle  <roger@eyesopen.com>
14583
14584         * combine.c (reg_subword_p): New predicate to test whether the
14585         destination of a set refers to a subword/piece of a register.
14586         (try_combine): Generalize the code to merge the setting of a
14587         pseudo to a constant followed by a set of a subword of that
14588         register to a constant.
14589
14590 2006-01-03  Kazu Hirata  <kazu@codesourcery.com>
14591
14592         * basic-block.h (control_flow_graph): Change the type of
14593         x_label_to_block_map to VEC(basic_block,gc) *.
14594         * tree-cfg.c (init_empty_tree_cfg, label_to_block_fn,
14595         set_bb_for_stmt): Adjust the uses of x_label_to_block_map.
14596
14597         * tree-ssa-propagate.c (cfg_blocks): Change the type to
14598         VEC(basic_block,heap) *.
14599         (cfg_blocks_add, cfg_blocks_get, ssa_prop_init,
14600         ssa_prop_fini): Adjust the uses of cfg_blocks.
14601
14602 2006-01-03  Steven Bosscher  <stevenb.gcc@gmail.com>
14603
14604         * fold-const.c (operand_equal_p): Accept a NULL operand 0 for
14605         COMPONENT_REFs.
14606         * emit-rtl.c (mem_attrs_htab_eq): Use iterative_hash_expr for
14607         hashing trees instead of a pointer hash.
14608         (mem_attrs_htab_eq): Do a deep compare instead of a pointer
14609         compare for MEM_EXPR.
14610
14611         PR rtl-optimization/25130
14612         * cse.c (exp_equiv_p): Compare MEM_ATTRS instead of MEM_ALIAS_SET
14613         when comparing MEMs for GCSE
14614
14615 2006-01-03  Ben Elliston  <bje@au.ibm.com>
14616
14617         * targhooks.h (default_decimal_float_supported_p): Declare.
14618         * targhooks.c (default_decimal_float_supported_p): Define.
14619         * target-def.h (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Redefine to
14620         `default_decimal_float_supported_p'.
14621         * doc/tm.texi (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Update.
14622
14623 2006-01-02  Adam Nemet  <anemet@caviumnetworks.com>
14624
14625         * combine.c (apply_distributive_law <SUBREG>): Check
14626         TRULY_NOOP_TRUNCATION.
14627
14628 2006-01-02  Geoffrey Keating  <geoffk@apple.com>
14629
14630         * dwarf2out.c (have_switched_text_section): Delete.
14631         (have_multiple_function_sections): New.
14632         (have_location_lists): Make 'bool'.
14633         (add_AT_loc_list): Use 'true' not '1'.
14634         (dwarf2out_switch_text_section): Set have_multiple_function_sections.
14635         (output_loc_list): Use have_multiple_function_sections.
14636         (output_ranges): Likewise.
14637         (dwarf2out_begin_function): Set have_multiple_function_sections if
14638         necessary.
14639         (dwarf2out_source_line): Don't fake separate_line_info_table_in_use.
14640         Check function_section rather than DECL_SECTION_NAME.
14641         (dwarf2out_finish): Use have_multiple_function_sections.
14642         Don't clear have_location_lists.
14643
14644 2006-01-02  Eric Botcazou  <ebotcazou@adacore.com>
14645             Jan Hubicka  <jh@suse.cz>
14646
14647         * cfglayout.c (fixup_reorder_chain): Remove kludge for the
14648         case of conditional jump jumping to the next instruction.
14649         * cfgrtl.c (force_nonfallthru_and_redirect): Accept all
14650         cases of conditional jump jumping to the next instruction.
14651
14652 2006-01-02  Jan Hubicka  <jh@suse.cz>
14653
14654         * i386.c (*_cost): Add COSTS_N_INSNS.
14655         (ix86_rtx_costs): Do not use COSTS_N_INSNS.
14656
14657 2006-01-02  Paolo Bonzini  <bonzini@gnu.org>
14658
14659         PR target/25259
14660         * Makefile.in (DECNUMINC): Include libdecnumber's build directory.
14661
14662 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
14663
14664         * config/arm/arm.c (all_fpus): Fix comment typo.
14665         * config/darwin.c: Likewise.
14666         * config/frv/frv.h (FRV_STRUCT_VALUE_REGNUM): Likewise.
14667         * config/h8300/h8300.md (extendqisi2_h8300hs): Likewise.
14668         * config/m68hc11/m68hc11.c (m68hc11_reload_operands): Likewise.
14669
14670 2006-01-01  David Edelsohn  <edelsohn@gnu.org>
14671
14672         * config/rs6000/rs6000.c (rs6000_expand_compare_and_swapqhi): New.
14673         (rs6000_split_compare_and_swapqhi): New.
14674         * config/rs6000/sync.md (sync_compare_and_swap{hi,qi}): New.
14675         (sync_compare_and_swapqhi_internal): New.
14676         * config/rs6000/rs6000-protos.h: Declare.