OSDN Git Service

* tree.h (DECIMAL_FLOAT_TYPE_P): New.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2006-06-23  Janis Johnson  <janis187@us.ibm.com>
2
3         * tree.h (DECIMAL_FLOAT_TYPE_P): New.
4         * c-typeck.c (c_common_type): Disallow operations on decimal float
5         types and other float types.
6         * convert.c (convert_to_real): Don't ignore conversions involving
7         decimal float types.
8
9 2006-06-23  Olivier Hainque  <hainque@adacore.com>
10
11         * tree.c (max_int_size_in_bytes): New function, inspired from
12         code in function.c:assign_temp.
13         * tree.h (max_int_size_in_bytes): Declare.
14         * function.c (assign_temp): Use it.
15         * gimplify.c (create_tmp_var): Relax the assertions on the type
16         properties, not mandating constant size any more.
17         (force_constant_size): New static function.
18         (gimple_add_tmp_var): Use it, forcing variable size to a
19         constant upper bound if it is not constant on entry.
20
21         * ada/misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
22         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
23
24 2006-06-23  Danny Smith   <dannysmith@users.sourceforge.net>
25
26         PR target/27789
27         * config/i386/winnt.c (ix86_handle_selectany_attribute): Move check
28         for initialization and setting of one_only flag to ...
29         (i386_pe_encode_section_info): ...here.
30         (i386_pe_dllimport_p): Check for DECL_DLLIMPORT_P also.
31         Recheck that the symbol has not been defined.
32
33 2006-06-23  Richard Guenther  <rguenther@suse.de>
34
35         * ggc-page.c (init_ggc): Do not round up the extra_order_size_table
36         sizes to MAX_ALIGNMENT.  Fix the size_lookup table to honour
37         alignment requests instead.  Add verification code.
38         Add struct tree_function_decl and struct tree_binfo size to
39         extra_order_size_table.  Add missing element to size_lookup
40         table.
41
42 2006-06-22  Roger Sayle  <roger@eyesopen.com>
43             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
44
45         PR middle-end/28131
46         * expr.c (expand_expr_real_1) <VECTOR_CST>: Check whether the
47         call to lang_hooks.types.type_for_mode returned NULL_TREE.
48
49 2006-06-23  Ben Elliston  <bje@au.ibm.com>
50
51         * dfp.c (decimal_to_decnumber): Do not use decNumberNegate to
52         negate dn -- manipulate it directly.
53
54 2006-06-22  Roger Sayle  <roger@eyesopen.com>
55             Steven Bosscher  <stevenb.gcc@gmail.com>
56
57         PR target/27531
58         * reload1.c (gen_reload): Call mark_jump_label on the new insns
59         generated by gen_move_insn to add REG_LABEL notes if necessary.
60
61 2006-06-22  Bob Wilson  <bob.wilson@acm.org>
62
63         * config/xtensa/lib1funcs.asm (MIN_ESA): Delete.
64         (leaf_entry): Remove use of MIN_ESA.
65
66 2006-06-22  Zdenek Dvorak <dvorakz@suse.cz>
67
68         PR rtl-optimization/28121
69         * cfgexpand.c (tree_expand_cfg): Clean EDGE_EXECUTABLE flag from
70         the entry edge.
71
72 2006-06-21  DJ Delorie  <dj@redhat.com>
73
74         * config/m32c/muldiv.md (mulhisi3_i): Only use registers for dest
75         (TN-16C-A156A/E).
76         (mulhisi3_r): Likewise.
77
78 2006-06-21  Richard Sandiford  <richard@codesourcery.com>
79
80         PR middle-end/28034
81         * coverage.c (coverage_counter_alloc): Leave the index type
82         unspecified.
83         (coverage_counter_alloc): Use null arguments for operands 2 and 3
84         of the ARRAY_REF.
85
86 2006-06-21  Andrew Pinski  <pinskia@physics.uc.edu>
87
88         * doc/invoke.texi (-fopenmp) Move to "Options Controlling C Dialect"
89         section from the "Options for Code Generation Conventions".
90
91 2006-06-21  Richard Henderson  <rth@redhat.com>
92
93         PR target/26347
94         PR target/27082
95         * config/alpha/predicates.md (small_symbolic_operand): Deny weak
96         symbols.
97         (global_symbolic_operand): Allow weak symbols, even if local_p.
98
99 2006-06-21  Eric Botcazou  <ebotcazou@adacore.com>
100
101         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): New function.
102         (find_interesting_uses_address): Punt if above function returns true.
103
104 2006-06-21  Richard Guenther  <rguenther@suse.de>
105
106         * configure: Regenerated.
107
108 2006-06-21  Joseph Myers  <joseph@codesourcery.com>
109
110         * config/mips/mips.c (function_arg): Where one part of a
111         complex argument is in registers and the other part in the stack,
112         return a REG not a PARALLEL.
113
114 2006-06-21  Mark Mitchell  <mark@codesourcery.com>
115
116         * configure.ac: Set gcc_gxx_include_dir to $target/include/c++
117         when cross-compiling.  Do not substitute libstdcxx_incdir.
118         * configure: Regenerated.
119
120 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
121
122         * varasm.c (mergeable_string_section): Check for embedded NULs and
123         NUL termination in the first int_size_in_bytes (TREE_TYPE (decl))
124         rather than TREE_STRING_LENGTH bytes.
125
126 2006-06-21  Richard Guenther  <rguenther@suse.de>
127
128         * ggc-page.c (extra_order_size_table): Add var_ann_d,
129         tree_ssa_name, bitmap_element and phi_node with 4 arguments
130         sizes.
131
132 2006-06-21  Richrad Guenther  <rguenther@suse.de>
133
134         * tree-ssa-loop-niter.c (simplify_using_initial_conditions):
135         Limit iteration over the dominators.
136
137 2006-06-20  Roger Sayle  <roger@eyesopen.com>
138
139         * config/mips/iris6.h (LIB_SPEC): Add support for -pthread.
140         (SUBTARGET_CPP_SPEC): Define _REENTERANT if -pthread specified.
141
142 2006-06-20  Richard Guenther  <rguenther@suse.de>
143         Michael Matz  <matz@suse.de>
144
145         * alloc-pool.h (free_alloc_pool_if_empty): Prototype new
146         function.
147         * alloc-pool.c (free_alloc_pool_if_empty): New function.
148         * et-forest.h (et_free_pools): Prototype new function.
149         * et-forest.c (et_free_tree_force): Free parent occurrence. 
150         (et_free_pools): New function.
151         * dominance.c (free_dominance_info): Free et-forest alloc
152         pools.
153
154 2006-06-20  Roger Sayle  <roger@eyesopen.com>
155
156         * expr.c (expand_expr_real_1) <VECTOR_CST>: For vector constants with
157         integer modes, attempt to directly construct an integer constant.
158
159         * fold-const.c (native_encode_vector): Determine the size of each
160         element from the vector type instead of the first vector element.
161
162         * tree.c (build_constructor_single): Mark a CONSTRUCTOR as constant,
163         if all of its elements/components are constant.
164         (build_constructor_from_list): Likewise.
165
166 2006-06-20  Zdenek Dvorak <dvorakz@suse.cz>
167
168         PR tree-optimization/27331
169         * tree-data-ref.c (free_data_ref): New function.
170         (create_data_ref): Fail if the data reference has unknown access
171         function.
172         (free_data_refs): Use free_data_ref.
173
174 2006-06-19  Andrew Pinski  <pinskia@gmail.com>
175
176         PR middle-end/28075
177         * tree-inline.c (setup_one_parameter): Strip useless
178         type conversion before adding it to the IR.
179         (declare_return_variable): Likewise.
180
181 2006-06-19  Martin Michlmayr  <tbm@cyrius.com>
182
183         PR c/27149
184         * c-common.c (c_common_truthvalue_conversion): Fix grammar in warning.
185
186 2006-06-19  Mike Stump  <mrs@apple.com>
187
188         * tree.c (variably_modified_type_p): VM arguments don't make the
189         type a VM type.
190
191 2006-06-19  Richard Guenther  <rguenther@suse.de>
192
193         * tree-ssa-pre.c (try_combine_conversion): Strip useless
194         type conversions after folding.
195
196 2006-06-19  Richard Guenther  <rguenther@suse.de>
197
198         * ggc-page.c (extra_order_size_tab): Add entries with
199         size of struct function and basic_block.
200         (size_lookup): Extend to cover sizes up to 511.
201         (ggc_alloc_stat): Adjust user.
202         (ggc_pch_count_object): Likewise.
203         (ggc_pch_alloc_object): Likewise.
204         (ggc_pch_write_object): Likewise.
205
206 2006-06-19  Zdenek Dvorak <dvorakz@suse.cz>
207
208         * tree-ssa-loop-niter.c (implies_ge_p): New function.
209         (derive_constant_upper_bound): Handle OP0 - CST in unsigned types
210         correctly.
211
212 2006-06-19  Denis Chertykov  <denisc@overta.ru>
213
214         * config/avr/libgcc.S : Correct my wrong previous commit.
215
216 2006-06-19  Roger Sayle  <roger@eyesopen.com>
217
218         PR target/27861
219         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
220         have stripped a SUBREG from the shift count, so we may need to
221         convert_to_mode back to the type's mode before calling make_tree.
222         Use new_amount instead of amount to avoid expanding a tree twice.
223
224 2006-06-19  Richard Guenther  <rguenther@suse.de>
225
226         PR middle-end/28045
227         * fold-const.c (operand_equal_p): Check if the argument types
228         have the same precision before stripping NOPs.
229
230 2006-06-19  Daniel Berlin  <dberlin@dberlin.org>
231
232         Fix PR tree-optimization/27341
233         * tree-cfg.c (gimplify_val): Call mark_new_vars_to_rename on the
234         statement we get.
235         * tree-complex.c (pass_lower_complex): Update SMT usage.        
236
237 2006-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
238
239         * config/s390/s390.md ("doloop_si64", "doloop_si31", "doloop_di"): 
240         Add a new alternative to the constraint strings. Add move of
241         operand 1 to 3 to the splitter definition.
242         ("doloop_si_long"): Second contraint alternative removed.
243
244 2006-06-08  Anatoly Sokolov <aesok@post.ru>
245
246         * config/avr/avr.h (avr_have_movw_lpmx_p): Declare.
247         (TARGET_CPU_CPP_BUILTINS): Add __AVR_HAVE_MOVW__ and 
248         __AVR_HAVE_LPMX__.
249         (AVR_HAVE_MOVW) Define.
250         (ASSEMBLER_DIALECT): Use AVR_HAVE_MOVW.
251         (ASM_SPEC): Add avr25.
252         (LINK_SPEC): Add avr25.
253         * config/avr/avr.c (avr_have_movw_lpmx_p): Add.
254         (base_arch_s): Add new member 'have_movw_lpmx'.
255         (avr_arch_types): Init 'have_movw_lpmx'.
256         (avr_mcu_types): Add 'avr25'. Move attiny13, attiny2313, attiny24,
257         attiny44, attiny84, attiny25, attiny45, attiny85, attiny261,
258         attiny461, attiny861 and at86rf401 in 'avr25' arhitecture.
259         (avr_override_options): Init 'avr_have_movw_lpmx_p'.
260         (output_movhi, output_movsisf, ashlsi3_out, avr_rtx_costs): Use 
261         AVR_HAVE_MOVW.
262         (avr_file_start): Do not output '.arh' derective.
263         * config/avr/libgcc.S (mov_l): Use __AVR_HAVE_MOVW__.
264         (__do_copy_data): Use __AVR_HAVE_LPMX__.
265         * config/avr/avr.md (mcu_enhanced): Delete.
266         (mcu_have_movw): Define.
267         (negsi2, extendhisi2, zero_extendhisi2): Use 'mcu_have_movw'.
268         (call_insn, call_value_insn): Use 'call_insn' and __AVR_HAVE_MOVW__.
269         * config/avr/t-avr(MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Add avr25.
270         (MULTILIB_MATCHES): Add attiny13, attiny2313, attiny24, attiny44,
271         attiny84, attiny25, attiny45, attiny85, attiny261, attiny461, 
272         attiny861 and at86rf401 devices.
273
274 2006-06-18  Jie Zhang  <jie.zhang@analog.com>
275
276         * config/bfin/bfin.c (MAX_LOOP_LENGTH): Define to be 2042 instead
277         of 4096.
278
279 2006-06-17  Karl Berry  <karl@gnu.org>
280
281         * doc/cpp.texi, doc/cppinternals.texi, doc/gcc.texi,
282         doc/gccint.texi, doc/install.texi (@dircategory): Use
283         "Software development" instead of "Programming", following
284         the Free Software Directory.
285
286 2006-06-17  Alexandre Oliva  <aoliva@redhat.com>
287
288         * config/i386/i386.c (legitimate_tls_address)
289         <TARGET_GNU2_TLS>: Add tp after DTPOFF.
290         * config/i386/i386.md (*tls_dynamic_gnu2_combine_32): Adjust.
291         (*tls_dynamic_gnu2_combine_64): Likewise.
292
293 2006-06-16  Richard Guenther  <rguenther@suse.de>
294
295         PR middle-end/27116
296         * fold-const.c (negate_expr_p): Do not introduce undefined
297         overflow in negating INTEGER_CSTs.
298         (fold_negate_expr): Rename from negate_expr.  Revert last
299         change for folding BIT_NOT_EXPR.  Change semantics to
300         return NULL_TREE for non-simplified negations.  Do not
301         strip type conversions and unify type handling.
302         (negate_expr): New function, wrap around fold_negate_expr
303         but ensure building a tree always.  Strip type conversions
304         here, fold to result type.
305         (fold_unary): Use fold_negate_expr for folding NEGATE_EXPR.
306
307 2006-06-16  Roger Sayle  <roger@eyesopen.com>
308
309         PR middle-end/27802
310         * reg-stack.c (subst_stack_regs): Handle noreturn function calls
311         that (would) return their results in stack registers.
312
313 2006-06-16  Michael Matz  <matz@suse.de>
314         Richard Guenther  <rguenther@suse.de>
315
316         * fold-const.c (fold_truthop): Only return new tree node if
317         we canonicalized something.
318
319 2006-06-16  Richard Guenther  <rguenther@suse.de>
320
321         * function.h (enum function_frequency): Move declaration
322         out of struct function.
323         (struct function): Move bool fields and the enum to the bitfield
324         section.  Reorder elements to avoid padding.  Remove unused
325         fields left over from the RTL inliner removal.
326         * function.c (free_after_compilation): Do not zero removed fields.
327         * Makefile.in (ipa-reference.o): Add $(FUNCTION_H) dependency.
328         (ipa-type-escape.o): Likewise.
329
330 2006-06-16  Richard Guenther  <rguenther@suse.de>
331
332         * cgraph.h (struct cgraph_local_info): Turn bool elements
333         into a bitfield.
334         (struct cgraph_node): Likewise.
335         (struct cgraph_varpool_node): Likewise.
336
337 2006-06-15  Richard Guenther  <rguenther@suse.de>
338
339         * fold-const.c (fold_truth_not_expr): Rename from
340         invert_truthvalue.  Give it fold_* semantics to avoid
341         generating garbage.
342         (invert_truthvalue): New function.  Wrapper around
343         fold_truth_not_expr.
344         (optimize_minmax_comparison): Avoid creating garbage.
345         (fold_unary): Use fold_truth_not_expr for folding
346         TRUTH_NOT_EXPR.
347         (fold_ternary): Replace uses of invert_truthvalue with
348         fold_truth_not_expr where applicable.
349         * tree.h (fold_truth_not_expr): Prototype.
350
351 2006-06-16  Richard Guenther  <rguenther@suse.de>
352
353         PR tree-optimization/27781
354         * Makefile.in (ipa-pure-const.o): Add $(TARGET_H) dependency.
355         * ipa-pure-const.c (target.h): Include.
356         (analyze_function): Do not analyze functions that do not
357         bind locally.
358
359 2006-06-15  Andrew MacLeod  <amacleod@redhat.com>
360         
361         PR middle-end/27793
362         * tree-dfa.c (referenced_vars_dup_list): Remove.
363         (find_referenced_vars): Remove assert.
364         (referenced_var_check_and_insert): Replace dup list with assert.
365         * tree-ssa.c (delete_tree_ssa): Remove dup list processing.
366         * tree-flow.h (referenced_vars_dup_list): Remove extern decl.
367
368 2006-06-15  Richard Guenther  <rguenther@suse.de>
369
370         * tree-ssa-structalias.c (alias_get_name): Avoid creating
371         extra unused identifiers if not dumping.
372         (create_variable_info_for): Likewise.
373
374 2006-06-15  Zdenek Dvorak <dvorakz@suse.cz>
375
376         * tree-ssa-loop-niter.c (implies_nonnegative_p): New function.
377         (derive_constant_upper_bound): Derive more precise upper bound in
378         common cases.  Return type changed to double_int.
379         (record_estimate): Reflect the changed return type of
380         derive_constant_upper_bound.
381         * double-int.c (double_int_zext, double_int_sext): Fix.
382
383 2006-06-15  Paolo Bonzini  <bonzini@gnu.org>
384
385         * configure.ac (CFLAGS): Get them from the toplevel or from the
386         configure invocation.
387         * configure: Regenerate.
388         * Makefile.in (CFLAGS): Substitute value provided by configure.
389
390 2006-06-14  Mark Mitchell  <mark@codesourcery.com>
391
392         PR c++/26559
393         * c-common.h (c_finish_omp_atomic): Adjust declaration.
394         * c-omp.c (c_finish_omp_atomic): Return the expression to perform,
395         rather than calling add_stmt on it.
396         * c-parser.c (c_parser_omp_atomic): Adjust accordingly.
397
398 2006-06-14  Andreas Krebbel  <krebbel1@de.ibm.com>
399
400         PR middle-end/27959
401         * reload1.c (reload): Remove registers returned by update_eliminables
402         from used_spill_regs.
403
404 2006-06-13  DJ Delorie  <dj@redhat.com>
405
406         * config/m32c/muldiv.md (mulpsi3): Expect arbitrary constants.
407
408 2006-06-13  Carlos O'Donell  <carlos@codesourcery.com>
409
410         * Makefile.in: Define HTMLS_BUILD, HTMLS_INSTALL,
411         html__strip_dir, html__mkdir_p. Enhance install-html target.
412         * configure.ac: AC_SUBST datarootdir, docdir and htmldir. 
413         * configure: Regenerate.
414
415 2006-06-13  Fariborz Jahanian <fjahanian@apple.com>
416
417         * fold-const.c (fold_cond_expr_with_comparison): Check for 
418         Objective-C++ as language in deciding COND_EXPR transformation.
419
420 2006-06-06  J"orn Rennecke <joern.rennecke@st.com>
421
422         PR target/28014:
423         * config/sh/t-sh (LIB1ASMFUNCS): Add _udiv_qrnnd16
424         * config/sh/sh.c (print_operand): Add !SHMEDIA functionality to 'M'.
425         * config/sh/lib1funcs.h (SL, SL1): Define.
426         * config/sh/lib1funcs.asm (__udiv_qrnnd16): New hidden function.
427         * longlong.h (__sh__): Define umul_ppmm, udiv_qrnnd and sub_ddmmss.
428         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): New rule.
429         (OBJS_Os_4_200): New variable.
430         ($(T)libgcc-Os-4-200.a): Use it.
431         * sh.md (udivsi3): For TARGET_DIVIDE_CALL_TABLE, avoid function call
432         when dividing 1 and/or by 0.
433
434 2006-06-13  Roger Sayle  <roger@eyesopen.com>
435
436         * configure.ac (HAS_MCONTEXT_T_UNDERSCORES): Include <sys/signal.h>
437         before <ucontext.h> to define sigset_t required by <sys/ucontext.h>.
438         * configure: Regenerate.
439
440 2006-06-13  Jie Zhang  <jie.zhang@analog.com>
441
442         * config/bfin/bfin.c (bfin_reorg_loops): Only call recog_memoized ()
443         for real instruction.
444
445 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
446
447         PR middle-end/26807
448         * haifa-sched.c (check_cfg): Handle special case.
449
450 2006-06-13  Eric Botcazou  <ebotcazou@adacore.com>
451
452         PR debug/26754
453         * gimplify.c (declare_tmp_vars): Rename into declare_vars.
454         Add debug_info parameter.  Chain the vars to the BLOCK instead
455         of the BIND_EXPR if debug info are requested for them.
456         (pop_gimplify_context): Adjust for above change.
457         (gimple_add_tmp_var): Likewise.
458         * tree-gimple.h (declare_tmp_vars): Rename into declare_vars.
459         Add bool parameter.
460         * tree-nested.c (convert_nonlocal_reference): Adjust for above change.
461         (convert_local_reference): Likewise.
462         (get_local_debug_decl): Set DECL_IGNORED_P on the original variable.
463         (finalize_nesting_tree_1): Request that debug info be emitted
464         for debug_var_chain.
465
466 2006-06-13  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
467
468         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Fix the patch
469         for PR target/27863.
470
471 2006-06-13  Richard Guenther  <rguenther@suse.de>
472
473         PR middle-end/27536
474         * except.c (output_ttype): Expand type with EXPAND_INITIALIZER.
475
476 2006-06-13  Richard Guenther  <rguenther@suse.de>
477
478         PR tree-optimization/27830
479         * tree-inline.c (copy_body_r): For copying the operand
480         of an ADDR_EXPR make sure to fold &* afterwards.
481
482 2006-06-12  Eric Botcazou  <ebotcazou@adacore.com>
483
484         * gimplify.c (gimplify_expr): Treat VIEW_CONVERT_EXPR like other
485         lvalues in the fb_none case with side-effects.
486
487 2006-06-12  Kazu Hirata  <kazu@codesourcery.com>
488
489         * tree-flow.h: Remove the prototype for
490         compute_phi_arg_on_exit.
491         * tree-ssa-loop-ivopts.c (protect_loop_closed_ssa_form_use,
492         protect_loop_closed_ssa_form, compute_phi_arg_on_exit):
493         Remove.
494
495 2006-06-12  Mark Shinwell  <shinwell@codesourcery.com>
496
497         * builtins.c (expand_builtin_return_addr): Only use
498         frame_pointer_rtx when count == 0 and we are expanding
499         __builtin_return_address.
500
501 2006-06-12  Fred Fish  <fnf@specifix.com>
502
503         * config/mips/mips.c (mips_file_start): Create special section
504         ".gcc_compiled_longXX" for o64 ABI as well as EABI.
505
506 2006-06-11  Eric Christopher  <echristo@apple.com>
507
508         PR middle-end/27948
509         * stor-layout.c (place_field): Remove check for
510         remaining_in_alignment when aligning at the end of a run.
511
512 2006-06-11  Eric Christopher  <echristo@apple.com>
513
514         PR 27542
515         * doc/extend.texi (Structure-Packing Pragmas): Document ms_struct
516         pragma.
517
518 2006-06-11  Roger Sayle  <roger@eyesopen.com>
519
520         PR target/27858
521         Revert incorrect fix for PR target/27158
522         2006-05-08  Roger Sayle  <roger@eyesopen.com>
523         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
524         of a reg_equiv_constant if the result is a legitimate constant.
525
526 2006-06-11  Roger Sayle  <roger@eyesopen.com>
527
528         PR target/27158
529         * config/rs6000/rs6000.c (const_vector_elt_as_int): New function to
530         extract a CONST_VECTOR element and interpret it as an integer.
531         (vspltis_constant): Use const_vector_elt_as_int instead of the
532         macro CONST_VECTOR_ELT in order to handle FP vector modes.
533         * config/rs6000/predicates.md (easy_vector_const): Consider
534         floating point ALTIVEC_VECTOR_MODEs via easy_altivec_constant.
535
536 2006-06-11  Kaz Kojima  <kkojima@gcc.gnu.org>
537
538         PR middle-end/27942
539         * stor-layout.c (update_alignment_for_field): Don't add extra
540         alignment for packed non-bitfield fields in ms_bitfield_layout_p
541         code.
542
543 2006-06-09  Ralf Corsepius  <ralf.corsepius@rtems.org>
544
545         * config/mips/t-rtems: Add EL/EB multilib variants.
546
547 2006-06-09  Mike Stump  <mrs@apple.com>
548
549         * c-typeck.c (c_begin_vm_scope): Fix file_scope processing.
550
551 2006-06-09  David Daney  <ddaney@avtrex.com>
552
553         * doc/install.texi: Add binutils version recommendation for mips-*-*.
554
555 2006-06-09  Andreas Krebbel  <krebbel1@de.ibm.com>
556
557         * reload.c (find_reloads): Unset force_reload for 'X' constraint.
558
559 2006-06-09  Richard Guenther  <rguenther@suse.de>
560
561         PR tree-optimization/26998
562         * tree-vrp.c (extract_range_from_unary_expr): For NEGATE_EXPR
563         of signed types, only TYPE_MIN_VALUE is special, but for both,
564         minimum and maximum value.  Likewise VR_ANTI_RANGE is special
565         in this case, as is -fwrapv.
566
567 2006-06-08  Mike Stump  <mrs@apple.com>
568
569         PR target/26427
570         * config/darwin.c (darwin_asm_output_anchor): Disable
571         -fsection-anchors on darwin for now.
572         * config/darwin.h (TARGET_ASM_OUTPUT_ANCHOR): Likewise.
573         * rs6000/rs6000.c (optimization_options): Likewise.
574
575 2006-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
576
577         PR target/27421
578         * config/i386/i386.c (classify_argument): Skip fields with invalid
579         types in unions.
580
581 2006-06-08  Steven Bosscher  <steven@gcc.gnu.org>
582
583         * cse.c (flush_hash_table): Use VOIDmode to invalidate a REG.
584         (cse_insn): Likewise for the stack_pointer_rtx.
585
586 2006-06-08  Roger Sayle  <roger@eyesopen.com>
587
588         * tree-ssa-dom.c (record_conditions): Only record "unordered"
589         conditions from floating point comparisons.
590
591 2006-06-08  Paolo Bonzini  <bonzini@gnu.org>
592
593         PR middle-end/27733
594         * expmed.c (struct alg_hash_entry): Fix type of field T
595         to match synth_mult argument.
596         (NUM_ALG_HASH_ENTRIES): Make it bigger for 64-bit HOST_WIDE_INT.
597
598 2006-06-08  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
599
600         PR target/27863
601         * haifa-sched.c (unlink_other_notes, unlink_line_notes): Update basic
602         block boundaries.
603
604 2006-06-08  Richard Guenther  <rguenther@suse.de>
605
606         PR middle-end/27116
607         * fold-const.c (negate_expr_p): We can negate BIT_NOT_EXPR
608         only, if overflow is defined and not trapping.
609         (negate_expr): Likewise.
610
611 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
612
613         PR tree-optimization/27872
614         * tree-ssa-loop-manip.c (tree_unroll_loop): Set EDGE_IRREDUCIBLE_LOOP
615         flag on the new exit edge of the unrolled loop.
616
617 2006-06-07  Zdenek Dvorak <dvorakz@suse.cz>
618
619         PR rtl-optimization/26449
620         * loop-invariant.c (move_invariant_reg): Fail if force_operand fails.
621
622 2006-06-07  Andrew MacLeod  <amacleod@redhat.com>
623
624         PR middle-end/27793
625         * tree-dfa.c (referenced_vars_dup_list): New.  List of duplicate
626         referenced_variables with matching DECL_UID's.
627         (find_referenced_vars): Make sure duplicate list is empty to start.
628         (referenced_var_p): Remove.
629         (referenced_var_check_and_insert): Renamed from referenced_var_insert.
630         Check if var is in the list, and add if needed.  Update the duplicate
631         list if a different var is in the list with the same DECL_UID.
632         (add_referenced_var): Call routine to check and insert.
633         * tree-ssa.c (delete_tree_ssa): Clear var_ann's on duplicates.
634         * tree-flow.h (referenced_vars_dup_list): External declaration.
635
636 2006-06-07  Fred Fish  <fnf@specifix.com>
637
638         * config/mips/t-elf (MULTILIB_MATCHES): Combine two entries
639         into single entry.
640
641 2006-06-07  Paolo Bonzini  <bonzini@gnu.org>
642
643         PR target/27390
644         * reg-stack.c (subst_stack_regs_pat): Reorder resetting of
645         the imaginary and real parts of a clobbered register.
646         Emit insn to set the imaginary part.
647
648 2006-06-06  Peter Lemieszewski  <lemie@us.ibm.com>
649
650         * config/s390/t-tpf (LIB2ADDEH): Include unwind-dw2-fde-glibc.c
651         in lieu of unwind-dw2-fde.c.
652
653 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
654
655         * config/i386/mingw32.h (GOMP_SELF_SPECS): Define.
656
657 2006-06-06  Ulrich Weigand  <uweigand@de.ibm.com>
658
659         PR target/27842
660         * config/rs6000/altivec.md (UNSPEC_VSLW): Remove.
661         ("altivec_vspltisw_v4sf", "altivec_vslw_v4sf"): Remove.
662         ("mulv4sf3", "absv4sf3", "negv4sf3"): Adapt users to use
663         V4SImode temporaries and operations instead.
664
665 2006-06-06  Joseph S. Myers  <joseph@codesourcery.com>
666
667         * config/mips/t-linux64 (tp-bit.c): Append to tp-bit.c, not
668         dp-bit.c.
669
670 2006-06-06  Mike Stump  <mrs@apple.com>
671
672         * Makefile.in: Rename to htmldir to build_htmldir to avoid
673         installing during build.
674
675 2006-06-06  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
676
677         * params.def (PARAM_MAX_SCHED_EXTEND_REGIONS_ITERS): Change default
678         value to 0.
679         * doc/invoke.texi (max-sched-extend-regions-iters): Document.
680         * config/ia64/ia64.c (params.h): New header.
681         (ia64_optimization_options): New function to adjust parameters.
682         * config/ia64/ia64-protos.h (ia64_optimization_options): New prototype.
683         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): New macro.
684         * config/ia64/t-ia64 (ia64.o): Add dependence from params.h .
685
686 2006-06-05  Kazu Hirata  <kazu@codesourcery.com>
687
688         * stor-layout.c (debug_rli): Fix a typo in a debug message.
689
690 2006-06-05  Steve Ellcey  <sje@cup.hp.com>
691
692         PR target/27051
693         * config/ia64/ia64.c (ia64_select_rtx_section): Check TARGET_NO_SDATA.
694
695 2006-06-05  Dorit Nuzman  <dorit@il.ibm.com>
696             Victor Kaplansky  <victork@il.ibm.com>
697
698         PR tree-optimization/26360
699         * tree-vectorizer.c (destroy_loop_vec_info): Remove (dead) pattern
700         stmts.
701
702 2006-06-04  Roger Sayle  <roger@eyesopen.com>
703             Andrew Pinski  <pinskia@physics.uc.edu>
704
705         PR middle-end/27382
706         * c-common.c (c_common_truthvalue_conversion): Explicitly check
707         for LABEL_DECL before calling DECL_WEAK.
708
709         PR c/27150
710         * c-typeck.c (build_binary_op): Likewise, explicitly check for
711         LABEL_DECL and PARM_DECL.
712
713 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
714
715         PR c/25161
716         PR c/27020
717         * c-decl.c (grokdeclarator): Disallow variably modified types at
718         file scope.  Avoid marking shared array type of constant size as
719         VLA.
720
721 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
722
723         PR c++/27601
724         * c-common.c (fold_offsetof_1): Handle static members.
725
726 2006-06-04 Eric Christopher <echristo@apple.com>
727
728         * stor-layout.c (start_record_layout): Initialize remaining_in_alignment.
729         (debug_rli): Output value for remaining_in_alignment.
730         (update_alignment_for_field): Unconditionalize
731         ms_bitfield_layout_p code. Handle non-bitfield fields. Remove
732         extra alignment code.
733         (place_field): Don't realign if ms_bitfield_layout_p. Unconditionalize
734         ms_bitfield_layout_p code. Rewrite handling of structure fields.
735         * tree.h (record_layout_info_s): Remove prev_packed.
736         * doc/extend.texi (ms_struct): Add documentation of format.
737
738 2006-06-04  Mark Shinwell  <shinwell@codesourcery.com>
739
740         * tree.h: Declare folding_initializer.
741         * builtins.c (fold_builtin_constant_p): Give definite answer
742         if folding inside an initializer.
743         * fold-const.c: Define folding_initializer.
744         (START_FOLD_INIT): Save and then set folding_initializer.
745         (END_FOLD_INIT): Restore folding_initializer.
746
747 2006-06-04  Richard Guenther  <rguenther@suse.de>
748
749         PR tree-optimization/27039
750         * fold-const.c (fold_comparison): Handle pointer comparison
751         again for all comparison codes.  Compare offsets in signed
752         size type.
753         (fold_binary): Move code from here.
754
755 2006-06-03  Roger Sayle  <roger@eyesopen.com>
756
757         PR target/26223
758         * config/i386/i386.c (construct_container): Split static issued_error
759         flag into issued_sse_arg_error, issued_sse_ret_error and
760         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
761         requires the use of x87 registers and the user explicitly
762         specified the -mno-80387 command line option.
763
764 2006-06-02  Geoffrey Keating  <geoffk@apple.com>
765
766         * config/rs6000/host-darwin.c (sigaltstack): Protect prototype with
767         HAVE_DECL_SIGALTSTACK.
768         (MC_FLD): New.
769         (segv_handler): Use MC_FLD.
770         * configure.ac: Check for a sigaltstack declaration.
771         Compute HAS_MCONTEXT_T_UNDERSCORES on Darwin.
772         * configure: Regenerate.
773         * config.in: Regenerate.
774
775 2006-06-03  J"orn Rennecke <joern.rennecke@st.com>
776
777         PR other/27850
778         * Makefile.in (stmp-fixinc): Fix typo.
779
780 2006-06-02  Roger Sayle  <roger@eyesopen.com>
781
782         * fold-const.c (fold_unary) <CONJ_EXPR>: Ensure folded expressions
783         are type correct.  Clean-up.
784         <REALPART_EXPR>: Likewise.  Optimize creal(~z) as creal(z).
785         <IMAGPART_EXPR>: Likewise.  Optimize cimag(~z) as -cimag(z).
786
787 2006-06-01  DJ Delorie  <dj@redhat.com>
788
789         * config/v850/v850.h (ASM_OUTPUT_ADDR_DIFF_ELT): Disabled the
790         shift, as we've disabled the "switch" insn that needs it.
791
792 2006-06-01  Per Bothner  <bothner@bothner.com>
793
794         Suppress extra '#1 <built-in> or '#1 <command line>' on -dD output.
795         * c-opts.c (finish_options): Use internal line 0 for <command-line>.
796         * c-ppoutput.c (cb_define): Don't increment line 0.
797
798 2006-06-01  Pete Steinmetz  <steinmtz@us.ibm.com>
799
800         * doc/invoke.texi: Add cpu_type power6.
801         * config.gcc: Add cpu_type power6.
802         * config/rs6000/rs6000.c (rs6000_override_options): Alias power6
803         to power5+ with Altivec.
804         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6.
805         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add power6.
806
807 2006-05-30  Anatoly Sokolov <aesok@post.ru>
808
809         * config/avr/avr.h (SET_ASM_OP): Define.
810
811 2006-06-01  Kazu Hirata  <kazu@codesourcery.com>
812
813         * config/bfin/bfin.c: Fix comment typos.
814
815 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
816
817         PR 25453
818         * doc/install.texi: Document --enable-bootstrap and
819         --disable-bootstrap.
820
821 2006-06-01  Paolo Bonzini  <bonzini@gnu.org>
822
823         * doc/install.texi: Document that InfoZIP can replace jar.
824
825 2006-05-31  Roger Sayle  <roger@eyesopen.com>
826
827         * config/i386/i386.c (ix86_expand_fp_absneg_operator): When SSE
828         isn't available, directly generate the simpler x87 patterns without
829         the (use (const_int 0)).
830         * config/i386/i386.md (*negsf2_1): Enable pre-reload if the SSE
831         implementation isn't available.
832         (*negdf2_1): Likewise.
833         (*negxf2_1): XF mode negation is always done using the x87.
834         (*abssf2_1, *absdf2_1, *absxf2_1): Likewise^3 for fabs.
835
836 2006-05-31  Roger Sayle  <roger@eyesopen.com>
837
838         * builtins.c (fold_builtin_cabs): Delete prototype.  Require an
839         additional FNDECL argument.  Optimize cabs(-z) and cabs(~z) as
840         cabs(z).
841         (fold_builtin_decl) <BUILT_IN_CABS>: Update fold_builtin_cabs call.
842
843 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
844
845         * config/bfin/bfin-protos.h (bfin_hardware_loop): Declare.
846         * config/bfin/bfin.c (basic-block.h): Include.
847         (struct machine_function): New.
848         (bfin_init_machine_status): New.
849         (override_options): Initialize init_machine_status.
850         (bfin_hardware_loop): New.
851         (MAX_LOOP_DEPTH, MAX_LOOP_LENGTH): Define.
852         (DEF_VEC_P (loop_info)): New.
853         (DEF_VEC_ALLOC_P (loop_info,heap)): New.
854         (struct loop_info): New.
855         (loop_info): New typedef.
856         (struct loop_work): New.
857         (loop_work): New typedef.
858         (DEF_VEC_O (loop_work)): New.
859         (DEF_VEC_ALLOC_O (loop_work,heap)): New.
860         (bfin_dump_loops): New.
861         (bfin_bb_in_loop): New.
862         (bfin_scan_loop): New.
863         (bfin_optimize_loop): New.
864         (bfin_reorg_loops): New.
865         (bfin_reorg): Use bfin_reorg_loops.
866         * config/bfin/bfin.h (FIRST_PSEUDO_REGISTER): Adjust for adding
867         loop registers.
868         (I_REGNO_P): Simplify.
869         (DP_REGNO_P, DPREG_P): New macros.
870         (REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
871         REG_ALLOC_ORDER): Add LT0, LT1, LC0, LC1, LB0, LB1.
872         (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
873         Add LT_REGS, LC_REGS, LB_REGS.
874         (REG_CLASS_FROM_LETTER): Add 't' for LT_REGS, 'k' for LC_REGS,
875         'l' for LB_REGS.
876         (REGNO_REG_CLASS): Deal with loop registers.
877         * config/bfin/bfin.md: Add comment for 't', 'k', 'l' constraint
878         letters.
879         (REG_LT0, REG_LT1, REG_LC0, REG_LC1, REG_LB0, REG_LB1):
880         New constants for loop registers.
881         (UNSPEC_LSETUP_END): New.
882         (seq_insns): New define_attr. Set it for appropriate insns.
883         (movsi_insn): Add alternatives for move from/to
884         loop count registers.
885         (doloop_end): New define_expand.
886         (loop_end): New define_insn.
887         (define_split for bad doloop_end): New.
888         (lsetup_with_autoinit): New define_insn.
889         (lsetup_without_autoinit): New define_insn.
890         (rep_movsi, rep_movhi): Clobber LT1, LC1, LB1.
891         * config/bfin/predicates.md (lc_register_operand): New.
892         (lt_register_operand): New.
893         (lb_register_operand): New.
894         (nondp_register_operand): New.
895         (nondp_reg_or_memory_operand): New.
896         * doc/md.texi: Document Blackfin new 't', 'k', 'l' constraint letters.
897
898 2006-05-31  Jie Zhang  <jie.zhang@analog.com>
899
900         * config/bfin/bfin.c (bfin_delegitimize_address): New.
901         (TARGET_DELEGITIMIZE_ADDRESS): Define.
902
903 2006-05-31  Daniel Jacobowitz  <dan@codesourcery.com>
904
905         * Makefile.in (CATALOGS): Add po/ prefix.
906         * configure: Regenerated.
907
908 2006-05-31  Richard Earnshaw  <richard.earnshaw@arm.com>
909
910         PR target/27829
911         * arm.c (arm_print_operand case 'S'): Validate that the operand is
912         a shift operand before calling shift_op.  Avoid redundant call of
913         shift_op.
914
915 2006-05-30  Naveen.H.S  <naveenh@kpitcummins.com>
916             DJ Delorie  <dj@redhat.com>
917
918         * config/m32c/m32c.c (m32c_expand_insv): Check that the value
919         we're inserting is a singlt-bit constant.
920
921 2006-05-30  Roger Sayle  <roger@eyesopen.com>
922
923         * simplify-rtx.c (simplify_binary_operation_1) <LSHIFTRT>: Cast
924         width to HOST_WIDE_INT to avoid comparison warnings on some targets.
925
926 2006-05-30  Roger Sayle  <roger@eyesopen.com>
927
928         PR tree-optimization/23452
929         * fold-const.c (fold_mult_zconjz): New subroutine of fold_binary,
930         to optimize z * conj(z) as realpart(z)^2 + imagpart(z)^2.
931         (fold_binary) <MULT_EXPR>: Call fold_mult_zconjz for integral
932         complex values and with -ffast-math for FP complex values.
933
934 2006-05-30  Kazu Hirata  <kazu@codesourcery.com>
935
936         * c-common.h: Remove the prototype for yyparse.
937         * rtl.h: Remove the prototype for init_loop.
938
939 2006-05-30  Andreas Krebbel  <krebbel1@de.ibm.com>
940
941         * cse.c (validate_canon_reg, cse_insn): Don't change insns without
942         calling recog.
943
944 2006-05-30  Roger Sayle  <roger@eyesopen.com>
945
946         * simplify-rtx.c (simplify_binary_operation): Unfactor the shift
947         and rotate cases.
948         <LSHIFTRT>: Optimize (lshiftrt (clz X) C) as (eq X 0) where C is
949         log2(GET_MODE_BITSIZE(X)) on targets with the appropriate semantics.
950
951 2006-05-30  Dirk Mueller  <dmueller@suse.de>
952
953         PR c/27273
954         * c-common.c (convert_and_check): Only track TREE_CONSTANT_OVERFLOW
955         for CONSTANT_CLASS_P expresisons.
956
957 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
958
959         PR c/27718
960         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
961
962 2006-05-30  Zdenek Dvorak <dvorakz@suse.cz>
963
964         PR tree-optimization/27779
965         * tree-data-ref.c (analyze_siv_subscript_cst_affine): Use
966         initial_condition instead of CHREC_LEFT.
967
968 2006-05-30  Steven Bosscher  <stevenb.gcc@gmail.com>
969
970         * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Fix type of begin_label.
971         * config/m32r/initfini.c (__do_global_dtors, __do_global_ctors):
972         Make prototypes ISO C90.
973
974 2006-05-30  Mircea Namolaru  <namolaru@il.ibm.com>
975             Leehod Baruch    <leehod.baruch@weizmann.ac.il>
976
977         * see.c (see_analyze_one_def): Correct check.
978         (see_get_extension_data): Check if extension is parallel.
979         (see_get_extension_reg): Likewise.
980
981 2006-05-30  Uros Bizjak  <uros@kss-loka.si>
982
983         PR target/27790
984         * config/i386/i386.c (ix86_expand_int_vcond): Force cop0
985         into register for (code == GTU).
986
987 2006-05-29  Roger Sayle  <roger@eyesopen.com>
988
989         PR tree-optimization/24964
990         * simplify-rtx.c (simplify_binary_operation_1): Add function comment.
991         <MULT>: Minor clean-up.  Don't convert x*-1.0 into -x if we honor
992         signaling NaNs.  Optimize -x*-x as x*x for all float modes, and
993         abs(x)*abs(x) as x*x for scalar floating point modes.
994
995 2006-05-29  Sebastian Pop  <pop@cri.ensmp.fr>
996
997         PR middle-end/27745
998         * lambda-code.c (perfect_nestify): Don't copy statements
999         in the inner loop: move them to the inner loop header.
1000
1001 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
1002
1003         PR 26237
1004         * c-tree.texi: Document OpenMP directives and clauses.
1005
1006 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
1007
1008         * varasm.c (globalize_decl): Fix indentation.
1009
1010 2006-05-29  Diego Novillo  <dnovillo@redhat.com>
1011
1012         PR 26242
1013         * doc/passes.texi: Add documentation for pass_vrp, pass_ipa_pta,
1014         pass_fre, pass_store_ccp, pass_copy_prop,
1015         pass_store_copy_prop, pass_merge_phi, pass_nrv,
1016         pass_return_slot, pass_object_size, pass_lim,
1017         pass_linear_transform, pass_empty_loop, pass_complete_unroll,
1018         pass_loop_prefetch and pass_stdarg.
1019
1020 2005-05-29  Bernd Schmidt  <bernd.schmidt@analog.com>
1021
1022         * config/bfin/bfin.opt (mfdpic): New option.
1023         * config/bfin/t-bfin-elf (EXTRA_PARTS): Add crtbeginS.o and crtendS.o.
1024         (EXTRA_MULTILIB_PARTS): Likewise.
1025         (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): Use -fpic.
1026         (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Build one extra -mfdpic
1027         multilib.
1028         * config/bfin/elf.h (STARTFILE_SPEC): Don't link in crt0.o if -shared.
1029         (CRT_CALL_STATIC_FUNCTION): New.
1030         * config/bfin/uclinux.h (STARTFILE_SPEC): Don't link in crt0.o if
1031         -shared.
1032         (CRT_CALL_STATIC_FUNCTION): New.
1033         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Handle
1034         FD-PIC moves.
1035         (n_pregs_to_save): PIC register doesn't need to be saved with FD-PIC.
1036         (print_operand): Handle UNSPEC_MOVE_FDPIC and UNSPEC_FUNCDESC_GOT17M4.
1037         (initialize_trampoline): Changed to handle FD-PIC code generation.
1038         (expand_move): If TARGET_FDPIC, use emit_pic_move as needed.
1039         (bfin_expand_call): Generate FD-PIC calls if TARGET_FDPIC.
1040         (override_options): Disallow -mid-shared-library -mfdpic combination.
1041         Can't do unaligned ops if FD-PIC.
1042         Turn off flag_pic if trying to generate non-id-shared-library
1043         non-fdpic code, since it's not supported.
1044         (bfin_assemble_integer): New function.
1045         (TARGET_ASM_INTEGER): Define.
1046         * config/bfin/crti.s (__init, __fini): Save P3 on the stack if
1047         __BFIN_FDPIC__.
1048         * config/bfin/crtn.s: Restore them.
1049         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __BFIN_FDPIC__
1050         if TARGET_FDPIC.
1051         (DRIVER_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
1052         LINK_GCC_C_SEQUENCE_SPEC, ASM_SPEC, LINK_SPEC): New macros.
1053         (FDPIC_FPTR_REGNO, FDPIC_REGNO, OUR_FDPIC_REG): New macros.
1054         (TRAMPOLINE_SIZE, TRAMPOLINE_TEMPLATE): Adjust for FD-PIC.
1055         (CONDITIONAL_REGISTER_USAGE): If TARGET_FDPIC, FDPIC_REGNO is
1056         call-used.
1057         (enum reg_class, REG_CLASS_CONTENTS, REG_CLASS_NAMES): Add
1058         FDPIC_REGS and FDPIC_FPTR_REGS.
1059         (REG_CLASS_FROM_LETTER): Use 'Z' and 'Y' for them.
1060         * config/bfin/bfin.md (UNSPEC_MOVE_FDPIC, UNSPEC_FUNCDESC_GOT17M4,
1061         UNSPEC_VOLATILE_LOAD_FUNCDESC): New constants.
1062         (load_funcdescsi): New pattern.
1063         (call_symbol_fdpic, sibcall_symbol_fdpic, call_value_symbol_fdpic,
1064         sibcall_value_symbol_fdpic, call_insn_fdpic, sibcall_insn_fdpic,
1065         call_value_insn_fdpic, sibcall_value_insn_fdpic): New patterns.
1066
1067 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
1068
1069         * gcse.c, rtlanal.c: Remove obsolete comments associated with
1070         loop.c.
1071
1072         * config/bfin/bfin.h (PARM_BOUNDRY, STACK_BOUNDRY): Remove.
1073
1074         * tree-flow.h: Remove the prototype for add_type_alias.
1075         * tree-ssa-alias.c (add_type_alias): Remove.
1076
1077 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
1078
1079         * cfgcleanup.c, cfgexpand.c, cgraphunit.c, config/arm/arm.c,
1080         config/fr30/fr30.md, config/i386/i386-interix.h,
1081         config/i386/i386.c, config/i386/i386.md, config/sh/superh.h,
1082         config/sh/superh64.h, config/v850/v850.c, df-core.c,
1083         df-problems.c, df.h, except.c, final.c, haifa-sched.c,
1084         lambda-code.c, libgcc2.h, omp-low.c, optabs.c, predict.c,
1085         reload.c, tree-flow.h, tree-outof-ssa.c, tree-ssa-dce.c,
1086         tree-ssa-pre.c, tree-vect-transform.c: Fix comment typos.
1087         Follow spelling conventions.
1088         * doc/invoke.texi, doc/rtl.texi, doc/tm.texi: Fix typos.
1089         Follow spelling conventions.
1090
1091 2006-05-27  Richard Guenther  <rguenther@suse.de>
1092
1093         PR middle-end/27773
1094         * fold-const.c (fold_plusminus_mult_expr): Use fold_convert
1095         to produce a constant of value 1 of generic type.
1096
1097 2006-05-27  Dirk Mueller  <dmueller@suse.de>
1098
1099         * cgraphunit.c (decide_is_function_needed): Fix wrong
1100         PR reference.
1101
1102 2006-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
1103
1104         PR rtl-optimization/27661
1105         * reload.c (find_reloads): When reloading a VOIDmode constant
1106         as address due to an EXTRA_MEMORY_CONSTRAINT or 'o' constraint,
1107         use Pmode as mode of the reload register.
1108
1109 2006-05-26  Eric Botcazou  <ebotcazou@adacore.com>
1110
1111         * doc/invoke.texi (Optimize Options): Document that -funit-at-a-time
1112         is enabled at -O and above.
1113
1114 2006-05-26  Steven Bosscher  <steven@gcc.gnu.org>
1115
1116         PR target/27571
1117         * config/alpha/alpha.c (alpha_does_function_need_gp): Skip jump
1118         table data.
1119
1120 2006-05-25  Mark Mitchell  <mark@codesourcery.com>
1121
1122         PR c++/20103
1123         * gimplify.c (gimplify_decl_expr): Do not call gimple_add_tmp_var
1124         for anonymous variables explicitly declared by front ends.
1125
1126 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1127
1128         * tree-ssa-structalias.h (PTR_IS_REF_ALL): New macro.
1129         (struct alias_info): Add new field ref_all_symbol_mem_tag.
1130         * tree-ssa-alias.c (compute_may_aliases): If the program contains
1131         ref-all pointers, run a finalization pass for them.
1132         (compute_flow_insensitive_aliasing): Skip ref-all pointers.
1133         (finalize_ref_all_pointers): New function.
1134         (is_escape_site): Return ESCAPE_BAD_CAST for conversion from a
1135         regular pointer type to a ref-all pointer type.
1136         (get_tmt_for): Return the special memory tag for ref-all pointers.
1137
1138 2006-05-25  Richard Guenther  <rguenther@suse.de>
1139
1140         PR middle-end/27743
1141         * fold-const.c (fold_binary): Do not look at the stripped
1142         op0 for (a OP c1) OP c2 to a OP (c1+c2) shift optimization.
1143
1144 2006-05-25  Eric Botcazou  <ebotcazou@adacore.com>
1145
1146         * tree-vrp.c (extract_range_from_assert): Set the range to VARYING
1147         for LT and GT if the computed range is effectively empty.
1148
1149 2006-05-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1150
1151         PR target/27627
1152         * pa/pa-modes.def: Use mips_single_format, mips_double_format and
1153         mips_quad_format formats instead of ieee_single_format,
1154         ieee_double_format and ieee_quad_format formats, respectively.
1155
1156 2006-05-24  Zdenek Dvorak <dvorakz@suse.cz>
1157
1158         PR tree-optimization/27639
1159         PR tree-optimization/26719
1160         * tree-vrp.c (adjust_range_with_scev): Use scev_direction and adjust
1161         call to scev_probably_wraps_p.
1162         * tree-ssa-loop-niter.c (compare_trees, convert_step_widening,
1163         used_in_pointer_arithmetic_p, convert_step): Removed.
1164         (nowrap_type_p): New function.
1165         (scev_probably_wraps_p): Rewritten.
1166         * tree-scalar-evolution.c (instantiate_parameters_1): Do not call
1167         chrec_convert if chrec_convert_aggressive might have been used.
1168         * tree-chrec.c (convert_affine_scev, chrec_convert_1,
1169         scev_direction): New functions.
1170         (chrec_convert): Changed to a wrapper over chrec_convert_1.
1171         * tree-ssa-loop-ivopts.c (idx_find_step): Use convert_affine_scev
1172         instead of convert_step.
1173         * tree-flow.h (scev_probably_wraps_p): Declaration changed.
1174         (convert_step): Declaration removed.
1175         (convert_affine_scev, nowrap_type_p, scev_direction): Declare.
1176
1177 2006-05-23  Kenneth Zadeck <zadeck@naturalbridge.com>
1178
1179         * df-core.c: Added to header comments.
1180         * df.h (df_ru_bb_info, df_rd_bb_info, df_lr_bb_info,
1181         df_ur_bb_info, df_urec_bb_info): Added comments.
1182         * df-problems (df_ref_bitmap, ru, rd, lr, ur,
1183         urec, ri problems): Fixed header comments.
1184         (df_ru_transfer_function): Fixed in-out set dyslexia when copying
1185         code from df_rd_transfer_function.
1186
1187 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
1188
1189         * libgcc2.c (LIBGCC2_MAX_UNITS_PER_WORD): New macro.
1190         (LIBGCC2_UNITS_PER_WORD): Use LIBGCC2_MAX_UNITS_PER_WORD rather than
1191         MIN_UNITS_PER_WORD to set the default.  Also use it in the guard.
1192
1193 2006-05-23  Joseph Myers  <joseph@codesourcery.com>
1194
1195         * expr.c (undefined_operand_subword_p): New.
1196         (emit_move_multi_word): Do not generate move from undefined bits
1197         of a paradoxical subreg.
1198
1199 2006-05-23  Richard Sandiford  <richard@codesourcery.com>
1200
1201         PR rtl-optimization/27736
1202         * combine.c (replaced_rhs_value): New variable.
1203         (combine_instructions): Set it.
1204         (distribute_notes): When distributing a note in replaced_rhs_insn,
1205         check whether the value was used in replaced_rhs_value.
1206
1207 2006-05-23  Andrew MacLeod  <amacleod@redhat.com>
1208
1209         PR c++/26757
1210         * tree-ssa-loop-im.c (determine_invariantness_stmt): Use
1211         add_referenced_var instead of add_referenced_tmp_var.
1212         * tree-complex.c (create_one_component_var): Use add_referenced_var.
1213         * tree-ssa-loop-manip.c (create_iv, tree_unroll_loop): Use
1214         add_referenced_var.
1215         * tree-tailcall.c (adjust_accumulator_values, adjust_return_value,
1216         tree_optimize_tail_calls_1): Use add_referenced_var.
1217         * tree-ssa-loop-ivopts.c (create_new_iv): Use add_referenced_var.
1218         * tree-ssa-alias.c (create_memory_tag, create_global_var, create_sft):
1219         Use add_referenced_var.
1220         * tree-if-conv.c (ifc_temp_var): Use add_referenced_var.
1221         * gimplify.c (force_gimple_operand): Use add_referenced_var.
1222         * tree-ssa-phiopt.c (conditional_replacement, abs_replacement):
1223         Use add_referenced_var.
1224         * tree-dfa.c (struct walk_state): Remove.
1225         (find_referenced_vars): Remove walk state and vars_found hash table.
1226         (make_rename_temp): Use add_referenced_var.
1227         (find_vars_r): Pass less parameters to add_referenced_var.
1228         (referenced_var_p): New.  Is var in referenced_var hash table.
1229         (referenced_var_insert): Assert var isn't already in hash table.
1230         (add_referenced_var): Don't need walk_state parameter.  Add var if it
1231         isn't already in the hash table.
1232         (add_referenced_tmp_var): Remove.
1233         (find_new_referenced_vars_1): Use add_referenced_var.
1234         * tree-ssa-pre.c (create_expression_by_pieces,
1235         insert_into_preds_of_block, insert_extra_phis, realify_fake_stores):
1236         Use add_referenced_var.
1237         * tree-vect-patterns.c (vect_pattern_recog_1): Use add_referenced_var.
1238         * lambda-code.c (lbv_to_gcc_expression, lle_to_gcc_expression,
1239         lambda_loopnest_to_gcc_loopnest, perfect_nestify): Use
1240         add_referenced_var.
1241         * tree-vect-transform.c (vect_create_addr_base_for_vector_ref,
1242         vect_create_data_ref_ptr, vect_create_destination_var,
1243         vect_init_vector, vect_build_loop_niters,
1244         vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
1245         vect_gen_niters_for_prolog_loop, vect_create_cond_for_align_checks):
1246         Use add_referenced_var.
1247         * tree-outof-ssa.c (create_temp): Use add_referenced_var.
1248         * tree-flow.h (add_referenced_tmp_var): Remove prototype
1249         (add_referenced_var): Add prototype.
1250         * tree-ssa-structalias.c (get_constraint_for,
1251         intra_create_variable_infos): Use add_referenced_var.
1252
1253 2006-05-23  Alexandre Oliva  <aoliva@redhat.com>
1254
1255         * simplify-rtx.c (simplify_subreg): Adjust REG_OFFSET for
1256         big-endian paradoxical subregs.
1257         * var-tracking.c (struct micro_operation_def): Document that,
1258         for modify micro operations, insn is the subsequent instruction.
1259         (var_reg_delete_and_set, var_mem_delete_and_set): Split into...
1260         (var_reg_set, var_mem_set): ... new functions.
1261         (add_stores): Record subsequent insn.
1262         (compute_bb_dataflow): Use new functions for MO_USE.
1263         (emit_notes_in_bb): Use new functions for MO_USE.  Emit use
1264         notes after the insn, and modify notes before the insn known
1265         to be the subsequent one.
1266         (vt_initialize): Invert sorting of MO_CLOBBERs and MO_SETs.
1267
1268 2006-05-23  Kazu Hirata  <kazu@codesourcery.com>
1269
1270         PR target/27696
1271         * config/i386/i386.c (ix86_expand_builtin): Use
1272         gen_sse3_monitor64 for TARGET_64BIT.
1273
1274 2006-05-22  Kenneth Zadeck <zadeck@naturalbridge.com>
1275
1276         PR rtl-optimization/26375
1277         PR rtl-optimization/26855
1278         * df-problems (df_ru_bb_local_compute_process_def): Removed update
1279         to gen set.
1280         (df_ru_bb_local_compute): Reversed statements and removed bogus
1281         comment explaining why they should be in wrong order.
1282         (df_ru_dump, df_rd_dump): Enhanced debug info.
1283         * modulo-sched.c (sms_schedule, tree_opt_pass pass_sms): Enhanced
1284         debug info.
1285         * ddg.c (add_deps_for_def): Converted use of reaching defs to
1286         reaching uses and fixed space problem.
1287
1288 2006-05-23  Jan Hubicka  <jh@suse.cz>
1289
1290         * cgraphunit.c (decide_is_function_needed): Also nested functions
1291         and functions declared inline can be optimized out at -O0.
1292
1293 2006-05-22  Gerald Pfeifer  <gerald@pfeifer.com>
1294
1295         * doc/install.texi (Configuration): Remove reference to CrossGCC
1296         FAQ which was gone.
1297         (Building): Ditto.
1298
1299 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
1300
1301         PR target/27266
1302         * config/i386/i386.c (ix86_expand_branch): Jump to simple if
1303         ix86_compare_emitted is non-NULL.
1304
1305 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1306
1307         PR c++/27451
1308         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
1309         clobbers.
1310
1311 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
1312
1313         PR rtl-optimization/25514
1314         * combine.c (replaced_rhs_insn): New variable.
1315         (combine_instructions): Set replaced_rhs_insn when trying to replace
1316         a SET_SRC with a REG_EQUAL note.
1317         (distribute_notes): Use replaced_rhs_insn when determining the live
1318         range of a REG_DEAD register.
1319
1320 2006-18-05  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
1321             Anatoly Sokolov <aesok@post.ru>
1322
1323         * config/avr/avr.c (avr_mcu_types): Add support for attiny261,
1324         attiny461, attiny861, attiny25, attiny45, attiny85, attiny24,
1325         attiny44, attiny84, at90pwm2, at90pwm3, atmega165p, atmega169p,
1326         atmega164p, atmega324p, atmega644p, atmega644, atmega329,
1327         atmega3290, atmega649, atmega6490, atmega406, atmega640,
1328         atmega1280, atmega1281, at90can32, at90can64, at90usb646,
1329         at90usb647, at90usb1286 and at90usb1287 devices.
1330         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
1331         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1332
1333 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
1334
1335         * mklibgcc.in (lib2funcs): Remove _floatdidf from initial assignment.
1336
1337 2006-05-22  Richard Guenther  <rguenther@suse.de>
1338
1339         Revert
1340         2006-01-31  Richard Guenther  <rguenther@suse.de>
1341         Paolo Bonzini  <bonzini@gnu.org>
1342
1343         * doc/install.texi (--disable-libgcc-math): Document.
1344
1345 2006-05-22  Richard Guenther  <rguenther@suse.de>
1346
1347         Revert
1348         2006-01-31  Richard Guenther  <rguenther@suse.de>
1349
1350         * doc/invoke.texi (-msselibm): Document.
1351         * target.h (expand_library_builtin): New target hook.
1352         * builtins.c (expand_builtin): Use expand_library_builtin.
1353         (default_expand_library_builtin): New function.
1354         * gcc.c (LINK_GCC_MATH_SPEC): Define.
1355         (LINK_COMMAND_SPEC): Handle %(link_gcc_math).
1356         (link_gcc_math_spec): Declare.
1357         (static_specs): Add link_gcc_math_spec.
1358         * expr.h (default_expand_library_builtin): Declare.
1359         * target-def.h (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1360         (TARGET_INITIALIZER): Add TARGET_EXPAND_LIBRARY_BUILTIN.
1361         * config/i386/i386.h: Provide LINK_GCC_MATH_SPEC.
1362         * config/i386/i386.opt (msselibm): New target option.
1363         * config/i386/i386.c (ix86_builtin_function_variants): New array.
1364         (ix86_init_sse_abi_builtins): New function.
1365         (ix86_expand_library_builtin): Likewise.
1366         (TARGET_EXPAND_LIBRARY_BUILTIN): Define.
1367         (override_options): Handle error conditions wrt -msselibm.
1368         (ix86_builtins): Add function codes for SSE2 ABI builtins.
1369         (ix86_init_builtins): Call ix86_init_sse_abi_builtins.
1370         * doc/extend.texi (__builtin_sse2_*): Document new target specific
1371         builtins.
1372
1373 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1374
1375         PR c/27420
1376         * c-common.c (self_promoting_args_p): Skip erroneous args.
1377
1378         PR c/26818
1379         * c-decl.c (finish_struct): Skip erroneous fields.
1380
1381 2006-05-22  Nick Clifton  <nickc@redhat.com>
1382
1383         * config/cris/cris.opt (march): Remove VarExists attribute.
1384         (max-stackframe=): Likewise.
1385
1386 2006-05-22  Kazu Hirata  <kazu@codesourcery.com>
1387
1388         * doc/rtl.texi: Fix a typo.
1389         * see.c: Fix comment typos.
1390
1391         * tree-ssa-structalias.h (alias_info): Remove num_references.
1392
1393 2006-05-21  Mike Stump  <mrs@apple.com>
1394
1395         * config/darwin-c.c (BAD): Conditionalize on OPT_Wpragmas.
1396         (BAD2): Add.
1397         (darwin_pragma_options): Use BAD instead.
1398         (darwin_pragma_unused): Likewise.
1399         (darwin_pragma_ms_struct): Likewise.
1400
1401 2006-05-21  David Edelsohn  <edelsohn@gnu.org>
1402
1403         * config/rs6000/rs6000.md (floatsitf2): Remove constraints.
1404
1405 2006-05-21  Kazu Hirata  <kazu@codesourcery.com>
1406
1407         PR rtl-optimization/27671
1408         * simplify-rtx.c (simplify_relational_operation_1): Fix
1409         simplifications of (eq/ne (xor x y) y) and
1410         (eq/ne (xor x y) x).
1411
1412         PR tree-optimization/26622.
1413         * fold-const.c (fold_ternary) <COND_EXPR>: Call fold_convert
1414         on arg1.
1415
1416 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1417
1418         * tree-cfg.c: Prune whitespace.
1419         (debug_tree_cfg): Point to correct header containing the
1420         TDF_* defines.
1421
1422 2006-05-21  Bernhard Fischer  <aldot@gcc.gnu.org>
1423
1424         PR middle-end/25776
1425         * cgraphunit.c (verify_cgraph_node): Typo in error message.
1426
1427 2006-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1428
1429         PR middle-end/25776
1430         * cgraphunit.c (cgraph_optimize): Don't run ipa passes if error
1431         or sorry count is non zero.
1432
1433 2006-05-20  Andreas Schwab  <schwab@suse.de>
1434
1435         * config/pa/pa-linux.h (STRING_ASM_OP): Prepend and append a tab.
1436
1437 2006-05-19  Daniel Berlin  <dberlin@dberlin.org>
1438             Kenneth Zadeck <zadeck@naturalbridge.com>
1439
1440         PR rtl-optimization/26855
1441
1442         * df-scan.c (mw_reg_pool, mw_link_pool): New allocation pools for
1443         multiword refs.
1444         (df_scan_alloc): Added code to properly handle multiword hard
1445         registers and add all_blocks parameter.
1446         (df_scan_free_internal, df_insn_refs_delete, df_ref_record): Added
1447         code to properly handle multiword hard registers.
1448         (df_rescan_blocks): Added code to remove deleted blocks from
1449         bitmap.
1450         (df_ref_create_structure, df_ref_record): Added code to properly
1451         handle subregs.
1452         (df_ref_record_1): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER
1453         and set DF_REF_PARTIAL.
1454         (df_defs_record): Changed DF_REF_CLOBBER into DF_REF_MUST_CLOBBER.
1455         (df_uses_record): Added DF_REF_PARTIAL for subreg.
1456         (df_scan_add_problem): Added flags parameter.
1457         (df_ref_create_structure): Changed switching structure.
1458         (df_bb_refs_record): Fixed case where duplicate artificial refs
1459         were created.  Changed location of flags.
1460         (df_record_entry_block_defs): Added code to make stack pointer
1461         live in entry block.  Refined cases where frame pointer is needed.
1462         Changed location of flags.
1463         (df_record_exit_block_uses, df_insn_refs_record): Changed location of flags.
1464         (df_set_state): Removed function.
1465         (df_grow_reg_info, df_reg_chain_unlink, df_ref_remove,
1466         df_insn_create_insn_record, df_insn_refs_delete,
1467         df_ref_create_structure): Formatting changes.
1468         * df-core.c (df_mvs_dump, df_set_flags, df_clear_flags,
1469         df_delete_basic_block): New function.
1470         (df_init): Changed location of flags.
1471         (df_add_problem): Added flags parameter and the way flags are
1472         processed.
1473         (df_insn_uid_debug, df_ref_debug, debug_df_defno, debug_df_ref,
1474         debug_df_chain): Improved debugging output.
1475         (df_insn_debug, df_insn_uid_debug): Added multiword reg support.
1476         (df_refs_chain_dump): Removed df parameter.
1477         (df_iterative_dataflow): Added consistency check.
1478         (df_prune_to_subcfg): Made public.
1479         (df_analyze_problem): Added blocks_to_init parameter and made
1480         public.
1481         (df_ref_record, df_bb_refs_record, df_mark_reg,
1482          df_record_exit_block_uses): Whitespace changes.
1483         (df_dump): Whitespace changes.
1484         * df.h: Some reordering to remove forward references.
1485         (df_ref_flags.DF_REF_MW_HARDREG, DF_REF_PARTIAL,
1486         DF_REF_MUST_CLOBBER, DF_REF_MAY_CLOBBER): New fields.
1487         (df_ref_flags.DF_REF_CLOBBER): Deleted field.
1488         (dataflow.flags): New field.
1489         (df.flag): Deleted field.
1490         (df_alloc_function): Added additional bitmap parameter.
1491         (df_dependent_problem_function): New type.
1492         (df_problem.changeable_flags): New field.
1493         (df_ref_flags.DF_REF_DIES_AFTER_THIS_USE, DF_SCAN_INITIAL,
1494         DF_SCAN_GLOBAL, DF_SCAN_POST_ALLOC, df_state): Removed.
1495         (df_mw_hardreg): New struct.
1496         (DF_INSN_UID_MWS): New macro.
1497         (df_refs_chain_dump, df_ref_debug, df_chain_dump): Removed df
1498         parameter.
1499         (df_add_problem, df_ru_add_problem, df_rd_add_problem,
1500         df_lr_add_problem, df_ur_add_problem, df_urec_add_problem,
1501         df_ri_add_problem, df_scan_add_problem): Added flags parameter.
1502         (df_set_state): Removed function.
1503         (df_set_flags, df_clear_flags, df_delete_basic_block) New functions.
1504         * df-problems.c (df_chain_dump): Removed df parameter.
1505         (df_ru_alloc, df_rd_alloc, df_lr_alloc, df_ur_alloc,
1506         df_urec_alloc, df_chain_alloc, df_ri_alloc): Added all blocks
1507         parameter.
1508         (df_ru_alloc, df_rd_alloc): Now resets all blocks.
1509         (df_rd_bb_local_compute_process_def, df_ur_bb_local_compute,
1510         df_chain_create_bb, df_create_unused_note, df_ri_bb_compute):
1511         Split DF_REF_CLOBBER into DF_REF_MAY_CLOBBER and
1512         DF_REF_MUST_CLOBBER cases.
1513         (df_ru_bb_local_compute_process_def,
1514         df_rd_bb_local_compute_process_def, df_lr_bb_local_compute,
1515         df_lr_bb_local_compute, df_ur_bb_local_compute,
1516         df_chain_create_bb): Made subreg aware.
1517         (df_ru_bb_local_compute, df_rd_bb_local_compute,
1518         df_lr_bb_local_compute, df_lr_bb_local_compute,
1519         df_chain_create_bb): Cleanup to use proper macros.
1520         (df_ur_local_finalize, df_urec_local_finalize): Removed unnecessary
1521         code to fixup bitvectors.
1522         (df_ri_alloc): Cleared lifetime.
1523         (df_ignore_stack_reg, df_kill_notes, df_set_notes_for_mw,
1524         df_create_unused_note): New function.
1525         (df_ri_bb_compute, df_ri_compute): Added code to create/update
1526         REG_DEAD and REG_UNUSED notes as well as register information.
1527         (df_ru_dump, df_rd_dump, df_lr_dump, df_ur_dump, df_urec_dump,
1528         df_chains_dump): Fixed crash if problem was never run.
1529         (df_ru_add_problem, df_rd_add_problem, df_lr_add_problem,
1530         df_ur_add_problem, df_urec_add_problem, df_chain_add_problem,
1531         df_ri_add_problem): Processes flags in uniform manner.
1532         (df_ru_alloc, df_ru_local_compute, df_ru_confluence_n, df_ru_free,
1533         df_ru_dump, df_rd_local_compute, df_rd_confluence_n, df_rd_free,
1534         df_rd_dump, df_urec_free_bb_info): Formatting changes.
1535         (df_ru_free_bb_info, df_ru_bb_local_compute, df_ru_dump,
1536         df_rd_free_bb_info, df_rd_bb_local_compute_process_def,
1537         df_rd_bb_local_compute, df_rd_dump, df_lr_free_bb_info,
1538         df_lr_bb_local_compute, df_lr_local_compute, df_ur_free_bb_info,
1539         df_ur_dump, df_urec_free_bb_info, df_urec_dump,
1540         df_chain_create_bb, df_ri_bb_compute): Whitespace changes.
1541         * modulo-sched.c (sms_schedule): Added flag parameter to calls.
1542         * see.c (see_initialize_data): Ditto.
1543         * final.c (rest_of_clean_state) Added regstack_completed.
1544         * rtl.h (regstack_completed): Ditto.
1545         * reg-stack.c (regstack_completed): Ditto.
1546
1547 2006-05-19  Mike Stump  <mrs@apple.com>
1548
1549         * c-tree.h (default_conversion): Remove.
1550         * c-common.h (default_conversion): Add.
1551
1552 2006-05-19  Zdenek Dvorak <dvorakz@suse.cz>
1553
1554         * tree-vrp.c (valid_value_p): New function.
1555         (adjust_range_with_scev): Fail if the value of bound is not
1556         simple.
1557
1558 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
1559
1560         * config/mips/linux-unwind.h: Include <asm/unistd.h>
1561         (mips_fallback_frame_state): Use syscall numbers to determine
1562         the appropriate li instruction for the current ABI.  Only use
1563         __NR_sigreturn for o32.
1564
1565 2006-05-19  Nicolas Setton  <setton@adacore.com>
1566
1567         * langhooks.h (struct lang_hooks): Add dwarf_name language hook.
1568         * langhooks.c (lhd_dwarf_name): New function.
1569         * langhooks-def.h (lhd_dwarf_name): Declare.
1570         (LANG_HOOKS_DWARF_NAME): New macro, defaults to lhd_dwarf_name.
1571         * dwarf2out.c (dwarf2_name): Use the dwarf_name language hook.
1572         * ada/misc.c (gnat_dwarf_name): New function.
1573         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
1574
1575 2006-05-19  Richard Sandiford  <richard@codesourcery.com>
1576
1577         * libgcc2.c (MIN_UNITS_PER_WORD): Move default definition from
1578         libgcc2.h.
1579         (LIBGCC2_UNITS_PER_WORD): Provide default definition, using old
1580         MIN_UNITS_PER_WORD logic from libgcc2.h.  Do nothing if
1581         LIBGCC2_UNITS_PER_WORD > MIN_UNITS_PER_WORD.
1582         * libgcc2.h (MIN_UNITS_PER_WORD): Remove definition from here.
1583         Use LIBGCC2_UNITS_PER_WORD rather than MIN_UNITS_PER_WORD to
1584         determine the size of Wtype, etc.
1585         * mklibgcc.in (LIB2_SIDITI_CONV_FUNCS): New argument.
1586         (swfloatfuncs): New variable.
1587         (dwfloatfuncs): Likewise.
1588         (lib2funcs): Remove floating-point conversion functions from
1589         initial assignment.  Use LIB2_SIDITI_CONV_FUNCS to determine
1590         the set of conversion routines needed.  Allow entries to specify
1591         an object name, filename and word size.  Update users accordingly.
1592         * Makefile.in (libgcc.mk): Pass LIB2_SIDITI_CONV_FUNCS.
1593         * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Define.
1594
1595         Revert:
1596
1597         2006-02-08  Roger Sayle  <roger@eyesopen.com>
1598
1599         PR target/22209
1600         * config/fixtfdi.c: New libgcc source file.
1601         * config/fixunstfdi.c: New source file.
1602         * config/floatditf.c: New source file.
1603         * config/floatunditf.c: New souce file.
1604         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
1605         files above instead of config/mips/_tilib.c.
1606         * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
1607
1608 2006-05-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1609
1610         * pa/t-hpux-shlib (SHLIB_LINK): Remove `-lc'.
1611         * pa/pa-hpux11.h (LIB_SPEC): Update comment.
1612
1613 2006-05-18  Mike Stump  <mrs@apple.com>
1614
1615         Fix up vla, vm and [*] sematics.
1616
1617         PR c/18740
1618         PR c/7948
1619         PR c/25802
1620         PR c/27673
1621         * c-tree.h (struct c_arg_info): Add had_vla_unspec.
1622         (c_vla_unspec_p): Add.
1623         (c_vla_type_p): Add.
1624         * c-decl.c (struct c_scope): Add had_vla_unspec.
1625         (build_array_declarator): Add support for [*].
1626         (grokdeclarator): Likewise.
1627         (grokparms): Likewise.
1628         (get_parm_info): Likewise.
1629         * c-objc-common.c (c_vla_unspec_p): Likewise.
1630         * c-objc-common.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Likewise.
1631         * c-parser.c (c_parser_typeof_specifier): Evaluate arguments to
1632         typeof when argument is a variably modified type not inside sizeof or alignof.
1633         (c_parser_direct_declarator_inner): Propagate errors.
1634         (c_parser_sizeof_expression): Add support for [*].
1635         (c_parser_parms_declarator): Initialize had_vla_unspec.
1636         (c_parser_parms_list_declarator): Likewise.
1637         * c-typeck.c (c_vla_type_p): Add.
1638         (composite_type): Add support for vla compositing.
1639         (comptypes_internal): Add support for vla compatibility.
1640         (c_expr_sizeof_expr): Evaluate vla arguments.
1641         * tree.c (variably_modified_type_p): Update comment for [*].
1642
1643 2006-05-18  Michael Matz  <matz@suse.de>
1644
1645         PR target/27599
1646         * config.host: Make assignments to host_xmake_file cumulative.
1647         * config.host (*-darwin*): Test $host, not $target.
1648
1649 2006-05-12  Stuart Hastings  <stuart@apple.com>
1650
1651         * config/i386/i386.opt (-mstackrealign): New flag.
1652         * config/i386/i386.c (force_align_arg_pointer): New attribute.
1653         (ix86_handle_cconv_attribute): Emit error when
1654         force_align_arg_pointer attribute collides with too many regparms.
1655         (ix86_function_regparm): Limit regparms when used with
1656         force_align_arg_pointer attribute.  (ix86_internal_arg_pointer):
1657         Support stack-realigning prologue in non-main functions.  Emit
1658         warning for nested functions under -mstackrealign, emit error for
1659         nested functions with force_align_arg_pointer attribute.
1660         * doc/extend.texi (force_align_arg_pointer): Document it.
1661         * doc/invoke.texi (-mstackrealign): Document it.
1662
1663 2006-05-17  Kazu Hirata  <kazu@codesourcery.com>
1664
1665         PR rtl-optimization/27477
1666         * combine.c (try_combine): Don't split a parallel consisting
1667         of two sets into two individual sets if both sets reference
1668         cc0.
1669
1670 2006-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1671
1672         * config/arm/arm.opt (target_fpe_name): Remove VarExists.
1673         * config/rs6000/rs6000.opt (TARGET_NO_FP_IN_TOC): Likewise.
1674
1675         * doc/options.texi (VarExists): Updated.
1676
1677 2006-05-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1678
1679         * unwind-dw2.c: Add declarations for uw_update_context and
1680         uw_frame_state_for.
1681         * pa/hpux-unwind.h (pa_fallback_frame_state): When an export stub is
1682         detected, advance frame state and context once to skip over stub.
1683
1684 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
1685
1686         PR middle-end/20256
1687         PR middle-end/26435
1688         * tree-loop-linear.c (linear_transform_loops): Don't test perfect_nest_p.
1689         Call rewrite_into_loop_closed_ssa only when something changed.
1690         * lambda.h (gcc_loopnest_to_lambda_loopnest): Update declaration.
1691         * lambda-code.c (can_convert_to_perfect_nest): Declared.
1692         (gcc_loopnest_to_lambda_loopnest): Removed need_perfect_nest parameter.
1693         Test for perfect_nest_p here.  Fix formating.
1694         (replace_uses_equiv_to_x_with_y): Fix formating.
1695         (stmt_uses_op): Removed.
1696         (can_convert_to_perfect_nest): Removed loopivs parameter.
1697         Complete the test by checking the scalar dependences.
1698         (perfect_nestify): Remove the test for can_convert_to_perfect_nest.
1699         Fix formating.
1700
1701 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1702
1703         PR bootstrap/22541
1704         From Dan Kegel <dank@kegel.com>:
1705         * Makefile.in: Strip "dir/../" combinations from SYSTEM_INCLUDE_DIR.
1706
1707 2006-05-17  Eric Botcazou  <ebotcazou@adacore.com>
1708
1709         * tree.c (variably_modified_type_p) <ARRAY_TYPE>: Return true
1710         if the element type is variably modified without recursing.
1711
1712 2006-05-17  Sebastian Pop  <pop@cri.ensmp.fr>
1713
1714         PR middle-end/27332
1715         * tree-loop-linear.c (try_interchange_loops): Test for
1716         no data dependences.
1717
1718 2006-05-17  Zdenek Dvorak <dvorakz@suse.cz>
1719
1720         PR tree-optimization/27548
1721         * tree-scalar-evolution.c (scev_const_prop): Do not prolong life
1722         range of ssa names that appear on abnormal edges.
1723         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Export.
1724         * tree-flow.h (contains_abnormal_ssa_name_p): Declare.
1725
1726 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1727
1728         PR middle-end/27620
1729         * expr.c (safe_from_p): Handle CONSTRUCTOR again.
1730
1731 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
1732
1733         PR middle-end/27415
1734         * tree.h (OMP_PARALLEL_COMBINED): Define.
1735         * gimplify.c (struct gimplify_omp_ctx): Add is_combined_parallel field.
1736         (new_omp_context): Add is_combined_parallel argument.
1737         (gimplify_scan_omp_clauses): Add in_combined_parallel argument, adjust
1738         new_omp_context caller.
1739         (gimplify_omp_parallel, gimplify_omp_for, gimplify_omp_workshare):
1740         Adjust gimplify_scan_omp_clauses callers.
1741         (omp_is_private): Issue errors if iteration variable is firstprivate
1742         or reduction in the current context.
1743         * c-parser.c (c_parser_omp_parallel): Set OMP_PARALLEL_COMBINED
1744         on combined parallel workshare constructs.
1745
1746 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1747
1748         * Makefile.in (GCC_OBJS): Replace options.o with gcc-options.o.
1749         (gcc-options.o): New rule.
1750
1751         * optc-gen.awk: Protect variables for gcc-options.o with
1752         #ifdef GCC_DRIVER/#endif.
1753
1754 2006-05-16  Daniel Berlin <dberlin@dberlin.org>
1755
1756         Fix PR tree-optimization/27373
1757         * tree-ssa-forwprop.c: (forward_propagate_addr_expr_1): Add argument.
1758          (forward_propagate_addr_expr): Update call.
1759
1760 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1761
1762         * doc/options.texi: Move the Negative option.
1763
1764 2006-05-16  Richard Guenther  <rguenther@suse.de>
1765
1766         PR tree-optimization/22303
1767         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle reads
1768         from STRING_CSTs.
1769         (evaluate_stmt): Fall back to fold_const_aggregate_ref, if
1770         ccp_fold did not simplify the statement.
1771
1772 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1773
1774         PR driver/26885
1775         * Makefile.in (GCC_OBJS): New.
1776         (OBJS-common): Add opts-common.o.
1777         (xgcc$(exeext)): Replace gcc.o with $(GCC_OBJS).
1778         (cpp$(exeext)): Likewise.
1779         (gcc.o): Also depend on opts.h.
1780         (opts-common.o): New.
1781
1782         * common.opt (gcoff): Add Negative(gdwarf-2).
1783         (gdwarf-2): Add Negative(gstabs).
1784         (gstabs): Add Negative(gstabs+).
1785         (gstabs+): Add Negative(gvms).
1786         (gvms): Add Negative(gxcoff).
1787         (gxcoff): Add Negative(gxcoff+).
1788         (gxcoff+): Add Negative(gcoff).
1789         * config/i386/i386.opt (m32): Add Negative(m64).
1790         (m64): Add Negative(m32).
1791
1792         * doc/options.texi: Document the Negative option.
1793
1794         * gcc.c: Include "opts.h".
1795         (main): Call prune_options after expandargv.
1796
1797         * optc-gen.awk: Generate common declarations for all flag
1798         variables in options.c. Output the neg_index field.
1799
1800         * opts.c (find_opt): Moved to ...
1801         * opts-common.c: Here. New file.
1802
1803         * opts.h (cl_option): Add a neg_index field.
1804         (find_opt): New.
1805         (prune_options): Likewise.
1806
1807 2006-05-16  Jakub Jelinek  <jakub@redhat.com>
1808
1809         PR middle-end/27573
1810         * omp-low.c (expand_omp_parallel): Don't assert
1811         .OMP_DATA_I = &.OMP_DATA_O is the first statement in the block,
1812         instead search for it.
1813
1814         PR c/27499
1815         * gimplify.c (gimplify_omp_for): Remove assertion that iteration var
1816         is signed.
1817
1818 2006-05-16  Andreas Schwab  <schwab@suse.de>
1819
1820         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Add missing @end
1821         defmac.
1822
1823 2006-05-15  Roger Sayle  <roger@eyesopen.com>
1824
1825         PR target/26600
1826         * config/i386/i386.c (legitimate_constant_p) <CONST_DOUBLE>: TImode
1827         integer constants other than zero are only legitimate on TARGET_64BIT.
1828         <CONST_VECTOR> Only zero vectors are legitimate.
1829         (ix86_cannot_force_const_mem): Integral and vector constants can
1830         always be put in the constant pool.
1831
1832 2006-05-16  DJ Delorie  <dj@redhat.com>
1833
1834         * crtstuff.c (__dso_handle): Set section from
1835         TARGET_LBIGCC_SDATA_SECTION if defined.
1836         * doc/tm.texi (TARGET_LIBGCC_SDATA_SECTION): Document.
1837         * config/mips/mips.h (TARGET_LIBGCC_SDATA_SECTION): Define.
1838
1839 2006-05-16  Danny Smith  <dannysmith@users.sourceforge.net>
1840
1841         PR target/27599
1842         * config.host (i[34567]86-*-mingw*): Append i386/x-mingw32 to
1843         host_xmake_file.
1844
1845 2006-05-16  Ben Elliston  <bje@au.ibm.com>
1846
1847         * tree-cfg.c (split_edge_bb_loc): Remove unused variable `src'.
1848
1849 2006-05-15  Per Bothner  <per@bothner.com>
1850
1851         * tree.c: (last_annotated_node): Use source_locus typedef.
1852         This permits bootstrapping with --enable-mapped-location.
1853
1854 2006-05-15  Zdenek Dvorak <dvorakz@suse.cz>
1855
1856         PR tree-optimization/26830
1857         * tree-into-ssa.c (struct ssa_name_info): Add age field.
1858         (info_for_ssa_name, current_info_for_ssa_name_age,
1859         blocks_to_update): New variables.
1860         (get_ssa_name_ann): Use info_for_ssa_name instead of SSA_NAME_AUX.
1861         (clear_ssa_name_info, initialize_flags_in_bb,
1862         mark_block_for_update): New functions.
1863         (mark_def_sites, rewrite_stmt): Assert that blocks_to_update is NULL.
1864         (insert_phi_nodes_for, mark_use_interesting, prepare_block_for_update,
1865         prepare_def_site_for): Use mark_block_for_update.
1866         (mark_def_interesting): Assert that the processed block is marked in
1867         blocks_to_update.  Do not take blocks argument.
1868         (prepare_use_sites_for, prepare_names_to_update): Do not take blocks
1869         argument.
1870         (rewrite_update_init_block, rewrite_update_stmt): Only process
1871         blocks with statements to rewrite.
1872         (delete_update_ssa): Do not clear SSA_NAME_AUX.
1873         (update_ssa): Initialize and free blocks_to_update.  Do not
1874         clear flags on statements.  Do not use blocks bitmap.
1875         * tree.h (SSA_NAME_AUX): Removed.
1876         (struct tree_ssa_name): Removed aux field.
1877         * print-tree.c (print_node): Do not print SSA_NAME_AUX.
1878
1879 2006-05-15  Richard Guenther  <rguenther@suse.de>
1880
1881         PR tree-optimization/27603
1882         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
1883         Do computations in original type.
1884
1885 2006-05-15  Mircea Namolaru  <namolaru@il.ibm.com>
1886
1887         * see.c: Code style changes such as redundant paranthesis,
1888         redundant intialization of local variables etc.
1889         (see_main): Declared now as static.
1890         * doc/invoke.texi: Update that -fsee is not enabled by
1891         default at -O3.
1892
1893 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
1894
1895         * omp-low.c (check_omp_nesting_restrictions): New function.
1896         (scan_omp_1): Call it.
1897
1898         PR middle-end/27416
1899         * omp-low.c (build_outer_var_ref): If VAR is reference in orphaned
1900         construct, return *VAR.
1901
1902 2006-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1903
1904         PR rtl-optimization/27406
1905         * bt-load.c (migrate_btr_def): Skip the block having abnormal
1906         edges.
1907
1908 2006-05-14  Roger Sayle  <roger@eyesopen.com>
1909
1910         PR rtl-optimization/27538
1911         * combine.c (expand_compound_operation): Call gen_lowpart
1912         before calling simplify_shift_const.
1913
1914 2006-05-14  Roger Sayle  <roger@eyesopen.com>
1915
1916         PR rtl-optimization/22563
1917         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
1918         a fixed width bitfield, always force the intermediates into psuedos.
1919
1920 2006-05-14  Bernhard Fischer  <aldot@gcc.gnu.org>
1921
1922         PR 27501
1923         * mkconfig.sh: Use operator = instead of == for test.
1924
1925 2006-05-13  Nick Clifton  <nickc@redhat.com>
1926
1927         * dwarf2out.c (dbx_reg_number): Check return value from
1928         LEAF_REG_REMAP and only use it if it is valid.
1929         (multiple_reg_loc_descriptor): Likewise.
1930
1931 2006-05-13  Richard Guenther  <rguenther@suse.de>
1932
1933         * config.host <i[34567]86-*-cygwin*>: Append i386/x-cygwin to
1934         host_xmake_file.
1935
1936 2006-05-13  Steven Bosscher  <stevenb.gcc@gmail.com>
1937
1938         * df-core.c (df_bb_regno_last_use_find): Do not look for dataflow
1939         information attached to non-INSNs such as NOTEs.
1940         (df_bb_regno_first_def_find, df_bb_regno_last_def_find): Likewise.
1941
1942 2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
1943
1944         * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
1945         On contraint.
1946         * config/s390/s390.md: Adjust comment describing On constraint.
1947
1948 2006-05-11  Jan Hubicka  <jh@suse.cz>
1949
1950         * cgraphunit.c (decide_is_function_needed): Don't force always_inline
1951         to be output at -O0.
1952
1953 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1954
1955         PR middle-end/27384
1956         * fold-const.c (size_binop): Move sanity check for arguments to
1957         the beginning of the function.
1958
1959         PR middle-end/27488
1960         * fold-const.c (tree_expr_nonnegative_p): Return early on invalid
1961         expression.
1962
1963 2006-05-11  Richard Guenther  <rguenther@suse.de>
1964
1965         PR middle-end/27529
1966         * fold-const.c (fold_unary): Handle intermediate conversion
1967         to a pointer type like intermediate conversion to an integer
1968         type in folding of (T1)(T2)var to var.
1969         Match the code to the comment in the final conversion for
1970         (T1)(T2)var to (T1)var regarding to type precision.  Rather
1971         than disallow T1 being of pointer type, assert that both T1
1972         and var are of pointer type or not.  Make sure not to fall
1973         over the frontends lazyness wrt array to pointer decay though.
1974
1975 2006-05-10  Richard Earnshaw  <rearnsha@arm.com>
1976
1977         * arm.c (arm_struct_value_rtx): Delete.
1978         (TARGET_STRUCT_VALUE_RTX): Use the default definition.
1979         (arm_init_cumulative_args): Always initialize nregs to zero.
1980
1981 2006-05-10  Richard Guenther  <rguenther@suse.de>
1982
1983         PR tree-optimization/27532
1984         * tree-object-size.c (plus_expr_object_size): Fix typo.
1985
1986 2006-05-10  Kazu Hirata  <kazu@codesourcery.com>
1987
1988         PR target/24949
1989         * config/m68k/m68k.md (ashrdi_const32, ashrdi_const32_mem,
1990         ashrdi_const, ashrdi3): Use a scratch register.
1991
1992 2006-05-10  Richard Guenther  <rguenther@suse.de>
1993
1994         PR tree-optimization/27302
1995         * fold-const.c (operand_equal_p): For two comparisons,
1996         try comparison of one comparison code swapped if that yields
1997         the same code.
1998
1999 2006-05-10  Ben Elliston  <bje@au.ibm.com>
2000
2001         * tree-pretty-print.c (pretty_print_string): No need to handle
2002         '\0' as a special character.
2003
2004         * tree.h: Include "hashtab.h".
2005         (iterative_hash_expr): Use hashval_t in its prototype.
2006         * Makefile.in (TREE_H): Add $(HASHTAB_H).
2007
2008 2006-05-09  Steve Ellcey  <sje@cup.hp.com>
2009
2010         PR bootstrap/26872
2011         * config.gcc (hppa[12]*-*-hpux10*): Set gas to yes.
2012         (hppa*64*-*-hpux11*): Ditto.
2013         (hppa[12]*-*-hpux11*): Ditto.
2014
2015 2006-05-09  David Edelsohn  <edelsohn@gnu.org>
2016
2017         PR target/26545
2018         * config/rs6000/aix41.h (TARGET_64BIT): Define.
2019
2020 2006-05-09  Michael Matz  <matz@suse.de>
2021
2022         * config.host (<i[34567]86-*-*, x86_64-*-*>): Set
2023         host_extra_gcc_objs and host_xmake_file.
2024         (<*-*-linux*>): Don't overwrite host_xmake_file.
2025         * gcc.c (static_spec_functions): Add EXTRA_SPEC_FUNCTIONS.
2026         * config/i386/i386.h (EXTRA_SPEC_FUNCTIONS): Define.
2027         (host_detect_local_cpu): Declare.
2028         (CC1_CPU_SPEC): Add -march=native and -mtune=native cases.
2029         * config/i386/i386.c (override_options): Handle -mtune=native
2030         as -mtune=generic.
2031         * config/i386/x-i386: New file.
2032         * config/i386/driver-i386.c: New file.
2033         * doc/invoke.texi (<i386 and x86-64 Options>): Describe
2034         cpu-type "native".
2035
2036 2006-05-09  Dirk Mueller  <dmueller@suse.de>
2037         Richard Guenther  <rguenther@suse.de>
2038
2039         PR middle-end/27498
2040         * fold-const.c (fold_read_from_constant_string): Relax check
2041         for matching types to matching modes.
2042
2043 2006-05-09  Zdenek Dvorak <dvorakz@suse.cz>
2044
2045         PR rtl-optimization/27335
2046         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
2047         loops.
2048
2049 2006-05-08  Chao-ying Fu  <fu@mips.com>
2050             Richard Sandiford  <richard@codesourcery.com>
2051
2052         * config/mips/mips-ps-3d.md (scc_ps, s<code>_ps): New patterns.
2053         (vcondv2sf, sminv2sf3, smaxv2sf3): Likewise.
2054         * config/mips/mips.md (UNSPEC_SCC): New constant.
2055         * config/mips/mips-protos.h (mips_expand_vcondv2sf): Declare.
2056         * config/mips/mips.c (mips_reverse_fp_cond_p): New function.
2057         (mips_emit_compare): Use it.
2058         (mips_expand_vcondv2sf): New function.
2059
2060 2006-05-08  Daniel Berlin  <dberlin@dberlin.org>
2061
2062         Fix PR tree-optimization/27093
2063         * tree-ssa-alias.c (recalculate_used_alone): Mark variables for
2064         renaming when they become not-used_alone.
2065
2066 2006-05-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2067
2068         * hpux-unwind.h (pa_fallback_frame_state): Handle return parameter
2069         relocation and relocation stubs.
2070
2071 2006-05-08  Eric Christopher  <echristo@apple.com>
2072
2073         * unwind-dw2-fde-darwin.c (examine_objects): Only check data
2074         section for ppc.
2075
2076 2006-05-08  Jan Hubicka  <jh@suse.cz>
2077
2078         PR middle-end/24561
2079         * cgraphunit.c (decide_is_function_needed): When not optimizing even
2080         unused static functions are needed.
2081
2082 2006-05-08  Roger Sayle  <roger@eyesopen.com>
2083
2084         PR target/27158
2085         * reload.c (find_reloads_toplev): Only return the simplified SUBREG
2086         of a reg_equiv_constant if the result is a legitimate constant.
2087
2088 2006-05-08  Uros Bizjak  <uros@kss-loka.si>
2089
2090         PR target/27277
2091         * config/i386/i386.c (ix86_rtx_costs) [FLOAT_EXTEND]: For
2092         standard 80387 constants, raise the cost to prevent
2093         compress_float_constant() to generate load from memory.
2094
2095 2006-05-08  Kazu Hirata  <kazu@codesourcery.com>
2096
2097         * config/arm/constraints.md (c): Fix a typo.
2098
2099         * see.c, tree-flow-inline.h, tree-phinodes.c: Fix comment
2100         typos.
2101
2102 2006-05-07  H.J. Lu  <hongjiu.lu@intel.com>
2103
2104         PR target/24879
2105         * config/i386/pmmintrin.h (_mm_monitor): Remove macro. Use
2106         inline function.
2107         (_mm_mwait): Likewise.
2108
2109         * config/i386/sse.md (sse3_mwait): Replace "mwait\t%0, %1" with
2110         "mwait".
2111         (sse3_monitor): Make it 32bit only.
2112         (sse3_monitor64): New. 64bit monitor.
2113
2114 2006-05-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2115
2116         PR target/27421
2117         * config/i386/i386.c (classify_argument): Skip fields with invalid
2118         types.
2119
2120 2006-05-07  Richard Guenther  <rguenther@suse.de>
2121
2122         PR tree-optimization/27409
2123         * tree-ssa-structalias.c (get_constraint_for_component_ref):
2124         Do not try to find zero-sized subvars.
2125
2126 2006-05-07  Richard Guenther  <rguenther@suse.de>
2127
2128         PR tree-optimization/27136
2129         * tree-ssa-loop-niter.c (get_val_for): Correct function
2130         comment, assert requirements.
2131         (loop_niter_by_eval): Stop processing if the iterated
2132         value did not simplify.
2133
2134 2006-05-07  Mircea Namolaru  <namolaru@il.ibm.com>
2135
2136         * opts.c (flag_see): remove its setting at -O3.
2137
2138 2006-05-07  Richard Earnshaw  <rearnsha@arm.com>
2139
2140         * genpeep.c (main): Make insn-peep.c depend on flags.h.
2141         * arm/constraints.md: New file.
2142         * arm.h (REG_CLASS_FROM_LETTER_P): Delete.
2143         (CONST_OK_FOR_ARM_LETTER, CONST_OK_FOR_THUMB_LETTER)
2144         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_ARM_LETTER)
2145         (CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT_STR_ARM)
2146         (CONSTRAINT_LEN, EXTRA_CONSTRAINT_THUMB, EXTRA_CONSTRAINT_STR)
2147         (EXTRA_MEMORY_CONSTRAINT): Likewise.
2148         * arm.md: Include constraints.md.
2149         (thumb_movsi_insn): Use satisfies_constraint_J.
2150         (movhi, movqi): Use satisfies_constraint_I.
2151
2152 2006-04-29 Anatoly Sokolov <aesok@post.ru>
2153
2154         * config/avr/avr.h (CRT_BINUTILS_SPECS): Fixed crt* file name
2155         for atmeg a645 device.
2156
2157 2006-05-06   Richard Guenther  <rguenther@suse.de>
2158
2159         PR tree-optimization/27151
2160         * tree-vect-transform.c (vectorizable_condition): Punt on
2161         values that have a different type than the condition.
2162
2163 2006-05-03  Aldy Hernandez  <aldyh@redhat.com>
2164
2165         PR/21391
2166         * c-parser.c (c_parser_cast_expression): Only insert casts into
2167         hash table if pointer.
2168         * function.c (used_types_insert_helper): Rename from
2169         used_types_insert.
2170         (used_types_insert): Call used_types_insert_helper.
2171         * function.h (used_types_insert): Accept only one argument.
2172
2173 2006-05-05  David Edelsohn  <edesohn@gnu.org>
2174
2175         * config/rs6000/rs6000.md: Mark all "X" constraints for clobbered
2176         scratch with output modifier.
2177
2178 2006-05-04  David Edelsohn  <edelsohn@gnu.org>
2179
2180         PR target/26481
2181         * config/rs6000/rs6000.md (stmsi_power): Mark clobber constraint
2182         with output modifier.
2183
2184 2006-05-04  Richard Sandiford  <richard@codesourcery.com>
2185
2186         PR target/26765
2187         * config/mips/mips.c (mips_symbolic_address_p): Return true
2188         for SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL, SYMBOL_TPREL,
2189         SYMBOL_GOTTPREL, and SYMBOL_TLS.
2190
2191 2006-05-04  Richard Guenther  <rguenther@suse.de>
2192
2193         PR tree-optimization/14287
2194         PR tree-optimization/14844
2195         PR tree-optimization/19792
2196         PR tree-optimization/21608
2197         PR tree-optimization/27090
2198         * tree-ssa-pre.c (try_combine_conversion): New function.
2199         (compute_avail): After constructing the value-handle
2200         expression, use try_combine_conversion to combine NOP_EXPRs
2201         with previous value-handle expressions and use the result if it
2202         is available.
2203
2204 2006-05-04  Joseph S. Myers  <joseph@codesourcery.com>
2205
2206         * config/mips/linux64.h (DWARF_OFFSET_SIZE): Remove.
2207
2208 2006-05-04  Jan Hubicka  <jh@suse.cz>
2209
2210         PR middle-end/25962
2211         * cgraphunit.c (verify_cgraph_node): Fix cgraph_hash testing.
2212
2213 2006-05-04  Bernd Schmidt  <bernd.schmidt@analog.com>
2214
2215         * config/bfin/predicates.md (const01_rtx): Tell generator programs
2216         that this only matches CONST_INTs.  All users changed to VOIDmode
2217         operands.
2218
2219         * config/bfin/bfin.c: Include "optabs.h".
2220         (bfin_rtx_costs): Some costs for vector operations, to allow combine
2221         to do more work.
2222         (enum bfin_builtins): Add a number of fractional and vector builtins.
2223         (bfin_init_builtins): Likewise.
2224         (struct builtin_description, bdesc_2arg, bdesc_1arg): New.
2225         (safe_vector_operand, bfin_expand_binop_builtin,
2226         bfin_expand_unop_builtin): New functions.
2227         (bfin_expand_builtin): Handle the new builtins.
2228         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
2229         __ADSPBLACKFIN__.
2230
2231 2006-05-04  Leehod Baruch  <leehod@il.ibm.com>
2232
2233         * see.c: New file.
2234         * Makefile.in (OBJS-common): Add see.o.
2235         (see.o): Add dependencies.
2236         * common.opt (fsee): New flag for the see optimization was added.
2237         * opts.c (flag_see): Initialized.
2238         * passes.c (init_optimization_passes, pass_see): New pass.
2239         * rtl.h (see_main): Declaration as extern.
2240         * timevar.def (TV_SEE): New.
2241         * tree-pass.h (pass_see): Declaration as extern.
2242         * invoke.texi (-fsee): Document.
2243         * recog.c (validate_simplify_insn): New function.
2244         * recog.h (validate_simplify_insn): Declaration as extern.
2245         * df-problems.c (df_chain_dump): Check for NULL.
2246
2247 2006-05-04  Kenneth Zadeck <zadeck@naturalbridge.com>
2248             Daniel Berlin  <dberlin@dberlin.org>
2249
2250         * cfgrtl.c (insert_insn_bb_end_new): New function.
2251         * basic-block.h (insert_insn_bb_end_new): Declaration as extern.
2252
2253 2006-05-04  Leehod Baruch  <leehod.baruch@weizmann.ac.il>
2254
2255         * df.h (struct web_entry): Moved from web.c.
2256         (union_defs): Declaration as extern.
2257         (unionfind_root): Likewise.
2258         (unionfind_union): Likewise.
2259         * web.c (struct web_entry): Moved to df.h.
2260         (unionfind_root): Remove static declaration.
2261         (unionfind_union): Likewise.
2262         (union_defs): Likewise and generalize to use callback function.
2263         (web_main): Update arguments for union_defs function call.
2264
2265 2006-05-04  Richard Guenther  <rguenther@suse.de>
2266
2267         PR tree-optimization/26447
2268         * tree-ssa-pre.c (realify_fake_stores): For necessary loads
2269         produce SSA_NAME copies before the store stmt to avoid
2270         breaking exception handling.
2271
2272 2006-05-04  Jakub Jelinek  <jakub@redhat.com>
2273
2274         PR middle-end/27388
2275         * gimplify.c (omp_is_private): If var is shared in some outer context,
2276         return false instead of true.  Stop searching on parallel context
2277         boundary.
2278
2279 2006-05-03  Alexandre Oliva  <aoliva@redhat.com>
2280
2281         PR java/8260
2282         * coverage.c: Use get_gcov_unsigned_t() instead of
2283         unsigned_type_node all over.
2284
2285 2006-05-02  Andrew MacLeod  <amacleod@redhat.com>
2286
2287         PR tree-optimization/27381
2288         * tree-phinodes.c (remove_phi_arg_num): When moving a phi argument,
2289         maintain the same immediate_use links.
2290         * tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker
2291         node rather than segfaulting.
2292
2293 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
2294
2295         PR fortran/27395
2296         * gimplify.c (gimplify_scan_omp_clauses): Compare OMP_CLAUSE_CODE
2297         rather than TREE_CODE to OMP_CLAUSE_REDUCTION.  Set also GOVD_SEEN
2298         bit for OMP_CLAUSE_REDUCTION_PLACEHOLDER.
2299
2300 2006-05-02  Daniel Berlin  <dberlin@dberlin.org>
2301
2302         Fix PR tree-optimization/26626
2303         * tree-ssa-structalias.c (compute_points_to_sets): For now, solve
2304         always.
2305         * tree-ssa-operands.c (access_can_touch_variable): Allow
2306         typecasting through union pointers.
2307
2308 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2309
2310         PR c++/26943
2311         * omp-low.c (maybe_lookup_decl_in_outer_ctx): New function.
2312         (build_outer_var_ref): Use maybe_lookup_decl_in_outer_ctx
2313         to find if var will be a global variable even in the nested context.
2314         (omp_copy_decl): Only check for global variable at the end, it might
2315         be overridden in outer contexts.
2316         (scan_sharing_clauses): For global variables don't create a field.
2317         (lower_rec_input_clauses): Do nothing for global shared variables.
2318         Emit a barrier at the end of ILIST if there were any decls in both
2319         firstprivate and lastprivate clauses.
2320         (lower_send_clauses): Do nothing for global variables except for
2321         COPYIN.
2322
2323 2006-05-02  Zdenek Dvorak <dvorakz@suse.cz>
2324
2325         * tree.c (unsigned_type_for, signed_type_for): Make sure a type
2326         of the correct signedness is returned.
2327
2328 2006-05-02  Jeff Law  <law@redhat.com>
2329
2330         PR tree-optimization/27364
2331         * tree-vrp.c (vrp_int_const_binop): Fix detection of overflow from
2332         multiply expressions.
2333
2334 2006-05-02  Tom Tromey  <tromey@redhat.com>
2335
2336         * tree-flow-inline.h (op_iter_init_phiuse): Fixed typo.
2337
2338 2006-05-02  Kazu Hirata  <kazu@codesourcery.com>
2339
2340         PR target/27387
2341         * arm.c (arm_output_mi_thunk): Use pc-relative addressing when
2342         -mthumb -fPIC are used.
2343
2344 2006-05-02  Stanislaw Skowronek  <skylark@linux-mips.org>
2345             Joshua Kinard  <kumba@gentoo.org>
2346
2347         PR target/25871
2348         * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Avoid 32-bit moves
2349         with 64-bit pointers.
2350
2351 2006-05-02  Paul Brook  <paul@codesourcery.com>
2352
2353         * config/arm/arm.c (add_minipool_forward_ref): Check if insn
2354         and pool overlap.
2355         (create_fix_barrier): Check that a suitable barrier location is
2356         found.
2357         (arm_reorg): Include ftmp->address in allowable range of addresses.
2358
2359 2006-05-02  David Billinghurst <David.Billinghurst@riotinto.com>
2360
2361         PR ada/27366
2362         * ada/env.c (__gnat_clearenv): Use unsetenv() to clear environment
2363         on Cygwin.
2364
2365 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2366
2367         PR middle-end/27337
2368         * gimplify.c (gimplify_scan_omp_clauses): Handle INDIRECT_REF
2369         around RESULT_DECL for result passed by reference.
2370         (gimplify_expr): Call omp_notice_variable when RESULT_DECL is seen.
2371         * omp-low.c (use_pointer_for_field): Don't look at
2372         DECL_HAS_VALUE_EXPR_P for RESULT_DECLs.
2373         (scan_omp_1): Call remap_decl on RESULT_DECLs.
2374         (lower_rec_input_clauses): Don't allocate VLA memory for the second
2375         time or var for passing by reference for
2376         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses.  Allow creation of
2377         TREE_ADDRESSABLE variables when passing by reference.
2378
2379         * omp-low.c (dump_omp_region): Fix output formatting.
2380
2381         PR middle-end/27328
2382         * omp-low.c (remove_exit_barrier): Handle NULL exit_bb.
2383         (expand_omp_parallel): Likewise.
2384         * tree-cfg.c (move_sese_region_to_fn): Likewise.
2385
2386         PR middle-end/27325
2387         * omp-low.c (lower_omp_sections): Call maybe_catch_exception
2388         on statement list containing also constructors and destructors.
2389         (lower_omp_single, lower_omp_for, lower_omp_parallel): Likewise.
2390
2391         PR middle-end/27310
2392         * except.c (duplicate_eh_regions): Fix clearing of
2393         cfun->eh->region_array entries.
2394
2395 2006-05-01  DJ Delorie  <dj@redhat.com>
2396
2397         * configure.ac (gcc_cv_nm): Don't use an in-tree nm if
2398         build!=host.
2399         (gcc_cv_objdump): Likewise.
2400         * configure: Regenerated.
2401
2402 2006-05-01  Kazu Hirata  <kazu@codesourcery.com>
2403
2404         PR target/27374
2405         * config/arm/vfp.md (*arm_movdi_vfp): Correct the output
2406         templates for case 3 and 4.
2407
2408 2006-05-01  DJ Delorie  <dj@redhat.com>
2409
2410         * vec.c: Include bconfig.h when appropriate.
2411         * Makefile.in (build/vec.o): Adjust dependencies.
2412         * mkconfig.sh: Make sure config.h isn't used for build machine
2413         compiles.
2414
2415 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2416
2417         * tree-into-ssa.c (phis_to_rewrite, blocks_with_phis_to_rewrite): New
2418         variables.
2419         (mark_phi_for_rewrite): New function.
2420         (insert_phi_nodes_for, mark_use_interesting): Call
2421         mark_phi_for_rewrite.
2422         (rewrite_update_phi_arguments): Traverse only phis in phis_to_rewrite.
2423         (update_ssa): Initialize and free phis_to_rewrite.
2424
2425 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2426
2427         PR rtl-optimization/27291
2428         * loop-doloop.c (add_test, doloop_modify): Handle the case condition is
2429         folded to a constant.
2430
2431 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2432
2433         PR tree-optimization/27283
2434         * tree-ssa-loop-ivopts.c (struct nfe_cache_elt): Store just trees,
2435         not whole # of iteration descriptions.
2436         (niter_for_exit): Return just # of iterations.  Fail if # of iterations
2437         uses abnormal ssa name.
2438         (niter_for_single_dom_exit): Ditto.
2439         (find_induction_variables, may_eliminate_iv): Expect niter_for_exit to
2440         return just the number of iterations.
2441
2442 2006-05-01  Zdenek Dvorak <dvorakz@suse.cz>
2443
2444         PR tree-optimization/27144
2445         * tree-ssa-loop-niter.c (derive_constant_upper_bound): New function.
2446         (record_estimate): Only record constant upper bound.
2447         (infer_loop_bounds_from_undefined): Call
2448         compute_estimated_nb_iterations just once.
2449         (proved_non_wrapping_p): Renamed to ...
2450         (n_of_executions_at_most): ... this.  Expect bound to be a constant.
2451         (convert_step_widening, scev_probably_wraps_p): Call
2452         n_of_executions_at_most instead of proved_non_wrapping_p.
2453         (substitute_in_loop_info): Do not replace values in bounds.
2454         * cfgloop.h (struct nb_iter_bound): Remove "additional" field.  Update
2455         comments.
2456
2457 2006-05-01  Richard Henderson  <rth@redhat.com>
2458
2459         PR c/27358
2460         * c-parser.c (c_parser_skip_to_end_of_block_or_statement): Move after
2461         c_parser_skip_to_pragma_eol.  Convert to switch statement.  Handle
2462         CPP_PRAGMA.
2463
2464 2006-05-01  Roger Sayle  <roger@eyesopen.com>
2465
2466         * c-typeck.c (parser_build_binary_op): Don't call the function
2467         unsigned_conversion_warning to spot operand/result type overflow.
2468         (build_binary_op): Instead, call convert_and_check instead of
2469         convert to report the problem when the operands are promoted.
2470         * c-common.c (unsigned_conversion_warning): Make static.
2471         * c-common.h (unsigned_conversion_warning): Delete prototype.
2472
2473 2006-05-01  Richard Guenther  <rguenther@suse.de>
2474
2475         PR tree-optimization/26726
2476         * tree-ssa-loop-ivopts.c (idx_find_step): Mark source of the
2477         problem ...
2478         (find_interesting_uses_address): ... we work around here
2479         by folding INDIRECT_REFs in the substituted base.
2480
2481 2006-05-01  Diego Novillo  <dnovillo@redhat.com>
2482
2483         * omp-low.c (dump_omp_region): Add newlines.
2484
2485 2006-04-30  Roger Sayle  <roger@eyesopen.com>
2486
2487         * common.opt (Woverflow): New command line option.
2488         * c-common.c (constant_expression_warning): Check warn_overflow.
2489         (overflow_waring): Pass OPT_Woverflow to warning.
2490         (unsigned_conversion_warning): Likewise.
2491         (convert_and_check): Likewise.
2492         * doc/invoke.texi: Document new command line option.
2493
2494 2006-04-30  David Edelsohn  <edelsohn@gnu.org>
2495
2496         * config/rs6000/rs6000.c (rs6000_override_options): Enable
2497         TARGET_NO_FP_IN_TOC for section anchors.
2498         (optimization_options): Enable section anchors for all
2499         non-"Objective" languages.
2500
2501 2006-04-28  Eric Christopher  <echristo@apple.com>
2502
2503         * config/darwin-c.c (darwin_ms_struct): Move this
2504         (darwin_set_default_type_attributes): and this...
2505         * config/darwin.c: ... here.
2506         * config/darwin.h (darwin_ms_struct): Declare.
2507
2508 2006-04-28  Andrew MacLeod  <amacleod@redhat.com>
2509
2510         * tree-ssa-dom.c (propagate_rhs_into_lhs): Fix assert clause.
2511
2512 2006-04-28  Roger Sayle  <roger@eyesopen.com>
2513
2514         PR c/25309
2515         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
2516         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
2517         an unsigned HOST_WIDE_INT.
2518         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
2519         array index.
2520         (really_start_incremental_init): No need to call convert because
2521         bitsize_zero_node is already of type bitsizetype.
2522         (push_init_level): Extract the value of constructor_index as an
2523         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
2524         (process_init_element): Likewise.
2525
2526 2006-04-28  Joseph S. Myers  <joseph@codesourcery.com>
2527
2528         * gcc.c (process_command): Add program name to GCC_EXEC_PREFIX
2529         value before passing to make_relative_prefix.
2530
2531 2006-04-28  Alan Modra  <amodra@bigpond.net.au>
2532
2533         PR middle-end/27260
2534         * builtins.c (expand_builtin_memset): Expand val in original mode.
2535
2536 2006-04-27  Eric Christopher  <echristo@apple.com>
2537
2538         * target-def.h (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Bracket
2539         with #ifndef/#endif.
2540         * config/darwin-c.c (darwin_ms_struct): New.
2541         (darwin_pragma_ms_struct): Ditto.
2542         (darwin_set_default_type_attributes): Ditto.
2543         * config/darwin-protos.h (darwin_pragma_ms_struct): Declare.
2544         * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS):
2545         Register ms_struct pragma.
2546         * config/i386/darwin.h (REGISTER_TARGET_PRAGMAS): Declare.
2547         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Ditto.
2548         * config/rs6000/rs6000.c (rs6000_set_default_type_attributes): Call
2549         darwin_set_default_type_attributes if TARGET_MACHO.
2550
2551 2006-04-27  Andrew MacLeod  <amacleod@redhat.com>
2552
2553         PR tree-optimization/26854
2554         * tree-vrp.c (remove_range_assertions): Use new Immuse iterator.
2555         * doc/tree-ssa.texi: Update immuse iterator documentation.
2556         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Use new iterator.
2557         * tree-ssa-dom.c (propagate_rhs_into_lhs): Use new iterator.
2558         * tree-flow-inline.h (end_safe_imm_use_traverse, end_safe_imm_use_p,
2559         first_safe_imm_use, next_safe_imm_use): Remove.
2560         (end_imm_use_stmt_p): New.  Check for end of immuse stmt traversal.
2561         (end_imm_use_stmt_traverse): New.  Terminate immuse stmt traversal.
2562         (move_use_after_head): New.  Helper function to sort immuses in a stmt.
2563         (link_use_stmts_after): New.  Link all immuses in a stmt consescutively.
2564         (first_imm_use_stmt): New.  Get first stmt in an immuse list.
2565         (next_imm_use_stmt): New.  Get next stmt in an immuse list.
2566         (first_imm_use_on_stmt): New.  Get first immuse on a stmt.
2567         (end_imm_use_on_stmt_p): New.  Check for end of immuses on a stmt.
2568         (next_imm_use_on_stmt): New.  Move to next immuse on a stmt.
2569         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Use new iterator.
2570         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use new iterator.
2571         (perfect_nestify): Use new iterator.
2572         * tree-vect-transform.c (vect_create_epilog_for_reduction): Use new
2573         iterator.
2574         * tree-flow.h (struct immediate_use_iterator_d): Add comments.
2575         (next_imm_name): New field in struct immediate_use_iterator_d.
2576         (FOR_EACH_IMM_USE_SAFE, BREAK_FROM_SAFE_IMM_USE): Remove.
2577         (FOR_EACH_IMM_USE_STMT, BREAK_FROM_IMM_USE_STMT,
2578         FOR_EACH_IMM_USE_ON_STMT): New immediate use iterator macros.
2579         * tree-cfg.c (replace_uses_by): Use new iterator.
2580         * tree-ssa-threadedge.c (lhs_of_dominating_assert): Use new iterator.
2581         * tree-ssa-operands.c (correct_use_link): Remove.
2582         (finalize_ssa_use_ops): No longer call correct_use_link.
2583
2584 2006-04-27  Stuart Hastings  <stuart@apple.com>
2585
2586         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): New.
2587         * config/t-darwin (crt3.o): Use it.
2588         * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Remove
2589         'pmode', use Pmode instead of SImode for SYMBOL_REF.
2590         * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv,
2591         call_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
2592         call_value_nonlocal_sysv): Suffix with the "P" macro for 32/64
2593         support.
2594
2595 2006-04-27  Roger Sayle  <roger@eyesopen.com>
2596
2597         * expmed.c (store_fixed_bit_field): If we're not optimizing for
2598         size, force the intermediate into a new pseudo rather instead of
2599         performing both a bitwise AND and a bitwise IOR in memory.
2600
2601 2006-04-27  Richard Guenther  <rguenther@suse.de>
2602
2603         PR rtl-optimization/26685
2604         * params.def (PARAM_MAX_CSE_INSNS): Correct typo that named
2605         this one "max-flow-memory-locations".
2606
2607 2006-04-27  Richard Guenther  <rguenther@suse.de>
2608
2609         PR tree-optimization/25148
2610         * tree-vrp.c (compare_values): Remove code dealing with
2611         comparisons against type min/max value.  Honour overflow
2612         and negative constants in code dealing with comparisons
2613         of plus and minus expressions.
2614         (value_inside_range): Use fold_binary with LE_EXPR and
2615         GE_EXPR rather than compare_values.
2616
2617 2006-04-27  Dirk Mueller  <dmueller@suse.de>
2618
2619         * config/i386/xmmintrin.h (_mm_shuffle_pi16): Declare
2620         prototype for SSE.
2621
2622 2006-04-26  Kenneth Zadeck <zadeck@naturalbridge.com>
2623
2624         * basic-block.h (safe_insert_insn_on_edge): Removed.
2625         * cfgrtl.c (mark_killed_regs, safe_insert_insn_on_edge): Removed.
2626
2627 2006-04-26  David Edelsohn  <edelsohn@gnu.org>
2628             Paolo Bonzini  <bonzini@gnu.org>
2629
2630         PR middle-end/27282
2631         * combine.c (simplify_and_const_int_1): Use gen_int_mode.
2632         (simplify_and_const_int): Same.
2633
2634 2006-04-26  Aldy Hernandez  <aldyh@redhat.com>
2635
2636         * tree-ssa-dse.c (dse_optimize_stmt): Remove unused variable USE.
2637
2638 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
2639
2640         PR c/26171
2641         * cgraph.c (cgraph_varpool_finalize_decl): Don't call
2642         cgraph_varpool_assemble_pending_decls if -fopenmp, unless
2643         cgraph_global_info_ready.
2644
2645         PR middle-end/26913
2646         * tree-cfg.c (find_outermost_region_in_block): Handle RESX_EXPR.
2647
2648         PR c/25996
2649         * c-parser.c (c_parser_omp_for_loop): Don't call c_finish_omp_for if
2650         either decl or init is error_mark_node.
2651
2652         PR middle-end/25989
2653         * tree-flow.h (struct omp_region): Add sched_kind.
2654         * omp-low.c (expand_parallel_call): Use region->inner->sched_kind
2655         instead of extracting omp for data.
2656         (expand_omp_for): Save extracted sched_kind.
2657
2658 2006-04-25  Roger Sayle  <roger@eyesopen.com>
2659
2660         * expmed.c (store_bit_field): Also check whether the bitsize is
2661         valid for the machine's "insv" instruction before moving the
2662         target into a pseudo for use with the insv.
2663         * config/i386/predicates.md (const8_operand): New predicate.
2664         * config/i386/i386.md (extv, extzv, insv): Use the new
2665         const8_operand predicate where appropriate.
2666
2667 2006-04-25  DJ Delorie  <dj@redhat.com>
2668
2669         * doc/install.texi (Specific): Clarify that this is not a list of
2670         supported hosts or targets.
2671
2672 2006-04-25  Richard Sandiford  <richard@codesourcery.com>
2673
2674         PR rtl-optimization/26725
2675         * cfgrtl.c (rtl_redirect_edge_and_branch_force): Set the source
2676         block's BB_DIRTY flag.
2677
2678 2006-04-25  Geoffrey Keating  <geoffk@apple.com>
2679
2680         * dwarf2out.c (size_of_locs): Don't fill dw_loc_addr if there
2681         are no branches.
2682
2683         * dwarf2asm.c (dw2_asm_output_data): Don't generate RTL just
2684         to print an integer.
2685
2686 2006-04-25  David Edelsohn  <edelsohn@gnu.org>
2687
2688         * varasm.c (align_variable): New function.
2689         (get_block_for_decl): Apply align_variable to DECL before
2690         calculating section information.
2691         (assemble_variable): Split out alignment computation.
2692
2693 2006-04-25  Andreas Krebbel  <krebbel1@de.ibm.com>
2694
2695         * expmed.c (store_bit_field): Handle paradoxical subregs on big endian
2696         machines.
2697
2698 2006-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
2699
2700         * genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
2701         MODE_PARTIAL_INT mode.
2702         * config/bfin/bfin-modes.def: Add V2PDI and V2SI.
2703         * config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
2704         for CONST_INTs.
2705         (hard_regno_mode_ok): V2PDImode is ok for accumulators.
2706         * config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
2707         V2PDImode.
2708         * config/bfin/predicates.md (const01_operand, vec_shift_operand):
2709         New predicates.
2710         * config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
2711         New constants.
2712         (MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
2713         MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
2714         MACFLAG_IH): Likewise.
2715         (movstricthi_1): Renamed from "*movstricthi".
2716         (load_accumulator, load_accumulator_pair, movsi_insv, insv,
2717         ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
2718         abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
2719         movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
2720         movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
2721         movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
2722         addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
2723         sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
2724         addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
2725         mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
2726         ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
2727         flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
2728         flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
2729         flag_macv2hi_parts, flag_macv2hi_parts_acconly,
2730         flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.
2731
2732         * doc/rtl.texi (ss_ashift): Improve wording.
2733
2734 2006-04-24  Geoffrey Keating  <geoffk@apple.com>
2735
2736         * dwarf2out.c (verify_marks_clear): New.
2737         (prune_unused_types): Call verify_marks_clear initially, not
2738         prune_unmark_dies.
2739
2740 2006-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
2741
2742         * rtl.def (SS_ASHIFT, SS_NEG): New codes.
2743         * doc/rtl.texi: Document them.
2744         * simplify-rtx.c (simplify_unary_operation,
2745         simplify_binary_operation_1): Don't abort when we see them.
2746
2747 2006-04-24  Mark Mitchell  <mark@codesourcery.com>
2748
2749         Revert:
2750         2006-04-23  Mark Mitchell  <mark@codesourcery.com>
2751         * configure.ac: Completely disregard languages that are not
2752         enabled.
2753         * configure: Regenerated.
2754
2755 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
2756         Richard Guenther  <rguenther@suse.de>
2757
2758         PR tree-optimization/27236
2759         * tree-inline.c (copy_body_r): Make sure to copy
2760         TREE_THIS_VOLATILE flag.
2761
2762 2006-04-24  Richard Guenther  <rguenther@suse.de>
2763
2764         PR middle-end/26869
2765         * tree-complex.c (update_parameter_components): Don't handle
2766         unused parameters which have no default def.
2767
2768 2006-04-24  Andrew Pinski  <pinskia@gcc.gnu.org>
2769         Richard Guenther  <rguenther@suse.de>
2770
2771         PR tree-optimization/27218
2772         * tree-inline.c (expand_call_inline): Strip useless type
2773         conversions for the return slot address.
2774
2775 2006-04-24  Richard Guenther  <rguenther@suse.de>
2776
2777         * cfgloop.h (struct loops): Remove unused field array.  Reorder
2778         state after num.
2779         (LOOP_PREFETCH): Remove.
2780
2781 2006-04-24  Richard Guenther  <rguenther@suse.de>
2782
2783         PR tree-optimization/22525
2784         * value-prof.c (tree_mod_pow2): Remove unnecessary temporary
2785         variable, adjust types of generated expressions.
2786
2787 2006-04-23  H.J. Lu  <hongjiu.lu@intel.com>
2788
2789         * Makefile.in (c-convert.o): Add dependency on $(TARGET_H)
2790         (tree-vect-patterns.o): Likewise.
2791         (jump.o): Likewise.
2792         (cselib.o): Likewise.
2793         (loop-doloop.o): Likewise.
2794         (regclass.o): Likewise.
2795         (reload1.o): Likewise.
2796         (explow.o): Replace target.h with $(TARGET_H).
2797         (ipa-prop.o): Likewise.
2798         (ipa-cp.o): Likewise.
2799         (ipa-inline.o): Likewise.
2800         (reorg.o): Likewise.
2801         (reg-stack.o): Likewise.
2802
2803 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2804
2805         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
2806
2807 2006-04-23  Mark Mitchell  <mark@codesourcery.com>
2808
2809         * print-tree.c (print_node): Print DECL_BIT_FIELD_TYPE.
2810
2811         * configure.ac: Completely disregard languages that are not
2812         enabled.
2813         * configure: Regenerated.
2814
2815         PR c++/26534
2816         * c-common.h (c_build_bitfield_integer_type): Declare.
2817         * c-decl.c (c_build_bitfield_integer_type): Move to ...
2818         * c-common.c (c_build_bitfield_integer_type): ... here.
2819
2820 2006-04-23  Roger Sayle  <roger@eyesopen.com>
2821
2822         PR target/21283
2823         * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on
2824         a SImode SUBREG of a floating point register after no_new_pseudos.
2825
2826 2006-04-23  Roger Sayle  <roger@eyesopen.com>
2827
2828         * config/fr30/fr30.md (addsi_small_int): Use REGNO_PTR_FRAME_P to
2829         identify potentially eliminable registers to additionally catch
2830         VIRTUAL_INCOMING_ARGS_REGNUM.
2831         (addsi3): Update the conditions on when to use addsi_small_int.
2832
2833 2006-04-23  Roger Sayle  <roger@eyesopen.com>
2834
2835         PR target/16641
2836         * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Check REGNO for
2837         STACK_POINTER_RTX and FRAME_POINTER_RTX instead of comparing the
2838         rtx to stack_pointer_rtx or frame_pointer_rtx directly.
2839
2840 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
2841
2842         * fold-const.c (range_predecessor): Use operand_equal_p
2843         as the predicate for equality.
2844         (range_successor): Likewise.
2845
2846 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
2847
2848         Revert:
2849         * config/soft-fp/op-common.h: Fix a typo.
2850
2851 2006-04-22  Frank Ch. Eigler  <fche@redhat.com>
2852
2853         PR libmudflap/26864
2854         * common.opt (flag_mudflap_threads): Overload flag_mudflap.
2855         * tree-mudflap.c (flag_mudflap_threads): Derive from flag_mudflap.
2856
2857 2006-04-22  Kazu Hirata  <kazu@codesourcery.com>
2858
2859         * config/soft-fp/op-common.h, double-int.h, tree-ssa-dom.c:
2860         Fix comment typos.
2861         * doc/tm.texi: Fix a typo.
2862
2863 2006-04-21  Geoffrey Keating  <geoffk@apple.com>
2864
2865         * dwarf2out.c (struct die_struct): Document that die_sib makes
2866         a circular linked list.
2867         (FOR_EACH_CHILD): New.
2868         (reverse_die_lists): Delete.
2869         (reverse_all_dies): Delete.
2870         (add_dwarf_attr): Correct documentation.
2871         (remove_child_with_prev): New.
2872         (remove_child_TAG): Update for change to die_struct, use
2873         remove_child_with_prev.
2874         (add_child_die): Update for change to die_struct.
2875         (splice_child_die): Use remove_child_with_prev and add_child_die.
2876         (print_die): Use FOR_EACH_CHILD.
2877         (die_checksum): Likewise.
2878         (assign_symbol_names): Likewise.
2879         (output_location_lists): Likewise.
2880         (build_abbrev_table): Likewise.
2881         (calc_die_sizes): Likewise.
2882         (mark_dies): Likewise.
2883         (unmark_dies): Likewise.
2884         (unmark_all_dies): Likewise.
2885         (output_die): Likewise.
2886         (prune_unused_types_mark): Likewise.
2887         (prune_unused_types_walk): Likewise.
2888         (same_die_p): Update for change to die_struct.
2889         (break_out_includes): Likewise.
2890         (prune_unused_types_prune): Likewise.
2891         (add_sibling_attributes): Use FOR_EACH_CHILD, simplify logic.
2892         (prune_unmark_dies): Use FOR_EACH_CHILD, don't clear die_mark if
2893         it's already clear.
2894         (dwarf2out_finish): Don't call reverse_all_dies.
2895
2896 2006-04-21  Eric Christopher  <echristo@apple.com>
2897
2898         * df-core.c, tree-outof-ssa.c, config/i386/i386.c: Fix typos
2899         in comments and function names.
2900
2901 2006-04-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2902
2903         PR c/25875
2904         * c-typeck.c (digest_init): Robustify.
2905
2906         * c-typeck.c (pop_init_level): Simplify.
2907
2908 2006-04-21  Steve Ellcey  <sje@cup.hp.com>
2909
2910         * config/pa/t-pa64: Add dependencies on $(GCC_PASSES).
2911
2912 2006-04-21  Paul Brook  <paul@codesourcery.com>
2913
2914         * config/arm/arm.c (arm_override_options): Error on iWMMXt and
2915         hardware floating point.
2916
2917 2006-04-21  David Edelsohn  <edelsohn@gnu.org>
2918
2919         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add sfp to
2920         NON_FLOAT_REGS.
2921
2922 2006-04-21  Nick Clifton  <nickc@redhat.com>
2923
2924         * config/sh/t-elf (EXTRA_MULTILIB_PARTS): Include
2925         OPT_EXTRA_PARTS.
2926
2927 2006-04-21  Alan Modra  <amodra@bigpond.net.au>
2928
2929         PR target/27230
2930         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
2931         C++ lang type in traceback table for Objective-C++.
2932
2933         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Update comment.
2934
2935 2006-04-20  H.J. Lu  <hongjiu.lu@intel.com>
2936
2937         * config/i386/i386.c (asm_preferred_eh_data_format): Reformat.
2938
2939 2006-04-20  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2940
2941         PR mudflap/26789
2942         * tree-mudflap.c (mudflap_finish_file): Skip function when there
2943         were errors.  Remove check for erroneous objects.
2944
2945 2006-04-20  Jeff Law  <law@redhat.com>
2946
2947         PR tree-optimization/26854
2948         * tree-ssa-dse.c (dse_optimize_stmt): Avoid num_imm_uses when
2949         checking for zero or one use.
2950         * tree-ssa-dom.c (propagate_rhs_into_lhs): Similarly.
2951         * tree-cfgcleanup.c (merge_phi_nodes): Similarly.
2952         * tree-ssa-reassoc.c (negate_value): Similarly.
2953         (reassociate_bb): Similarly.
2954
2955 2006-04-20  Jakub Jelinek  <jakub@redhat.com>
2956
2957         * c-pretty-print.c (pp_c_direct_abstract_declarator): Print
2958         TYPE_MAX_VALUE (TYPE_DOMAIN (t)) + 1 for ARRAY_TYPE rather
2959         than plain TYPE_MAX_VALUE (TYPE_DOMAIN (t)).
2960
2961 2006-04-20  Alan Modra  <amodra@bigpond.net.au>
2962
2963         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Consume all
2964         fp regs if the last fp arg doesn't fit in regs.
2965
2966 2006-04-20  Kaz Kojima  <kkojima@gcc.gnu.org>
2967
2968         PR target/27182
2969         * config/sh/sh.md (movsicc_true+3): Tweak condition for the case
2970         that the last insn has the REG_INC note.
2971
2972 2006-04-19  Carlos O'Donell  <carlos@codesourcery.com>
2973             Nathan Sidwell  <nathan@codesourcery.com>
2974
2975         PR c/26774
2976         * stor-layout.c (update_alignment_for_field): Do not align
2977         ERROR_MARK nodes.
2978         (place_union_field): Place union field at the start of the union.
2979         (place_field): Move ERROR_MARK check later, and use the current
2980         allocation position to maintain monotonicity.
2981
2982 2006-04-19  Zdenek Dvorak <dvorakz@suse.cz>
2983
2984         * dominance.c: Include timevar.h.
2985         (calculate_dominance_info): Use TV_DOMINANCE.
2986         * timevar.def (TV_DOMINANCE): New timevar.
2987         * Makefile.in (dominance.o): Add TIMEVAR_H dependency.
2988
2989 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2990
2991         PR rtl-optimization/14261
2992         * ifcvt.c (noce_emit_move_insn): Call store_bit_field if the resulting
2993         move would be an INSV insn.
2994         (noce_process_if_block): Don't optimize if the destination is a
2995         ZERO_EXTRACT which can't be handled by noce_emit_move_insn.
2996
2997 2006-04-19  Andreas Krebbel  <krebbel1@de.ibm.com>
2998
2999         * config/s390/s390.md: Add comments with the instructions emitted
3000         by an insn pattern if macros are used.
3001
3002 2006-04-19  Alan Modra  <amodra@bigpond.net.au>
3003
3004         PR rtl-optimization/26026
3005         * fold-const.c (fold_binary): Optimize div and mod where the divisor
3006         is a known power of two shifted left a variable amount.
3007
3008 2006-04-18  Geoffrey Keating  <geoffk@apple.com>
3009
3010         * dwarf2out.c (prune_unused_types_update_strings): Don't add strings
3011         to hash table twice when the debug_str section has SECTION_MERGE.
3012
3013 2006-04-18  Joseph S. Myers  <joseph@codesourcery.com>
3014
3015         * config/soft-fp: New directory.  From glibc.
3016         * config/soft-fp/t-softfp: New.
3017         * config/soft-fp/README: New.
3018         * mklibgcc.in: Handle LIB2FUNCS_EXCLUDE.
3019         * Makefile.in (LIB2FUNCS_EXCLUDE, SFP_MACHINE): New.
3020         (libgcc.mk): Pass LIB2FUNCS_EXCLUDE.
3021         (LIBGCC_DEPS): Add $(SFP_MACHINE).
3022         * config.gcc: Use rs6000/t-fprules-fpbit or
3023         rs6000/t-fprules-softfp and soft-fp/t-softfp together with
3024         rs6000/t-fprules.
3025         * config/rs6000/sfp-machine.h: New.  Based on glibc.
3026         * config/rs6000/t-fprules-fpbit, config/rs6000/t-fprules-softfp:
3027         New.
3028         * config/rs6000/t-fprules: Remove fp-bit rules.
3029         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Use +=.
3030         * config/rs6000/t-linux64: Likewise.  Remove duplicates from
3031         LIB2FUNCS_EXTRA.  Remove fp-bit rules.
3032         (softfp_wrap_start, softfp_wrap_end): New.
3033
3034 2006-04-18  DJ Delorie  <dj@redhat.com>
3035
3036         * config/m32c/m32c.h (PTRDIFF_TYPE): Define.
3037
3038 2006-04-18  Devang Patel  <dpatel@apple.com>
3039
3040         * doc/invoke.texi (-Wuninitialized): Clarify -O connection.
3041
3042 2006-04-18  Nick Clifton  <nickc@redhat.com>
3043
3044         * config/sh/t-symbian: Add rule to build sh-c.o
3045         * config/sh/symbian.c (sh_symbian_mark_dllexport): Replace use
3046         of DECL_NON_ADDR_CONST_P with DECL_DLLIMPORT_P.
3047         (sh_symbian_encode_section_info): Likewise.
3048
3049 2006-04-18  Andreas Krebbel  <krebbel1@de.ibm.com>
3050
3051         * builtins.c (expand_builtin_strcmp): Cover label definition of
3052         do_libcall with HAVE_cmpstrnsi.
3053
3054 2006-04-18  Kazu Hirata  <kazu@codesourcery.com>
3055
3056         * function.c (temp_slots_at_level, max_slot_level): Use VEC
3057         instead of VARRAY.
3058         * function.h (temp_slot_p): New.
3059         (function): Change the type of x_used_temp_slots to
3060         VEC(temp_slot_p,gc) *.
3061
3062 2006-04-18  Nick Clifton  <nickc@redhat.com>
3063
3064         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove reference to
3065         flag_strength_reduce.
3066
3067         * doc/tm.texi (TARGET_SECTION_TYPE_FLAGS): Fix typo.
3068
3069 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
3070
3071         PR target/27117
3072
3073         Partial revert of revision 112637
3074         2006-04-03  Paolo Bonzini  <bonzini@gnu.org>
3075                     Dale Johannesen  <dalej@apple.com>
3076
3077         PR target/19653
3078         * regclass.c (struct reg_pref): Update documentation.
3079         (regclass): Set prefclass to NO_REGS if memory is the best option.
3080         (record_reg_classes): Cope with a prefclass set to NO_REGS.
3081
3082 2006-04-18  Paolo Bonzini  <bonzini@gnu.org>
3083
3084         PR tree-optimization/26821
3085         * tree-ssa-math-opts.c (get_constant_one): New.
3086         (insert_reciprocals): Use it.
3087
3088 2006-04-17  Geoffrey Keating  <geoffk@apple.com>
3089
3090         * dwarf2out.c (free_AT): Delete.
3091         (remove_AT): Update string ref counts.
3092         (remove_child_TAG): Don't call free_die.
3093         (free_die): Delete.
3094         (break_out_includes): Don't call free_die on DW_TAG_GNU_BINCL
3095         or DW_TAG_GNU_EINCL.
3096         (prune_unused_types_walk_attribs): Reset string refcounts.
3097         (prune_unused_types_update_strings): New.
3098         (prune_unused_types_prune): Don't make unnecessary stores.  Don't
3099         call free_die.  Do call prune_unused_types_update_strings.
3100         (prune_unused_types): Empty debug_str_hash.
3101
3102 2006-04-17  Roger Sayle  <roger@eyesopen.com>
3103
3104         * expr.c (expand_assignment): Optimize away no-op moves where the
3105         source and destination are equal and have no side-effects.
3106
3107 2006-04-17  Richard Guenther  <rguenther@suse.de>
3108
3109         PR target/26826
3110         * reload.c (push_reload): Guard calls to get_secondary_mem
3111         for memory subregs.
3112
3113 2006-04-16  Kazu Hirata  <kazu@codesourcery.com>
3114
3115         * alias.c (reg_base_value, old_reg_base_value): Change the
3116         type to VEC(rtx,gc) *.
3117         (REG_BASE_VALUE, find_base_value, record_set,
3118         init_alias_analysis): Use VEC instead of VARRAY.
3119
3120         * alias.c (alias_sets): Change the type to
3121         VEC(alias_set_entry,gc) *.
3122         (get_alias_set_entry, new_alias_set, record_alias_subset): Use
3123         VEC instead of VARRAY.
3124         (last_alias_set): Remove.
3125
3126         * cgraph.h (cgraph_edge_p): New.
3127         Update the prototype of cgraph_function_versioning.
3128         * cgraphunit.c (cgraph_copy_node_for_versioning,
3129         cgraph_function_versioning): Use VEC instead of VARRAY.
3130         * ipa-cp.c (ipcp_insert_stage): Likewise.
3131
3132 2006-04-16  Roger Sayle  <roger@eyesopen.com>
3133
3134         PR target/26961
3135         * fold-const.c (fold_ternary): When converting "A ? B : C" into either
3136         "A op B" or "A op C", we may need to convert A to the type of B and C.
3137
3138 2006-04-16  Adam Nemet  <anemet@caviumnetworks.com>
3139
3140         * target.h (struct gcc_target): Add mode_rep_extended.
3141         * rtlanal.c (num_sign_bit_copies_in_rep): New global.
3142         (init_num_sign_bit_copies_in_rep): Initialize it using
3143         mode_rep_extended.
3144         (truncate_to_mode): Use it.
3145         (init_rtlanal): Call init_num_sign_bit_copies_in_rep.
3146         * targhooks.h (default_mode_rep_extended): Declare it.
3147         * targhooks.c (default_mode_rep_extended): Define it.
3148         * target-def.h (TARGET_MODE_REP_EXTENDED): New macro.  Default to
3149         default_mode_rep_extended.
3150         (TARGET_INITIALIZER): Include it.
3151         * doc/tm.texi (Misc): Document it.
3152         * config/mips/mips.c (TARGET_TRUNCATED_TO_MODE): Override it.
3153         (mips_truncated_to_mode): New function.
3154
3155 2006-04-16  Roger Sayle  <roger@eyesopen.com>
3156
3157         PR middle-end/25474
3158         * expr.c (compress_float_constant): Copy the narrow constant into
3159         a new pseudo before extending it to its final width.
3160
3161 2006-04-16  Roger Sayle  <roger@eyesopen.com>
3162             Andrew Pinski  <pinskia@gcc.gnu.org>
3163             Dale Johannesen  <dalej@apple.com>
3164
3165         PR target/24076
3166         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Add
3167         special case code to implement V8HImode and V16QImode with SSE2.
3168
3169 2006-04-15  Roger Sayle  <roger@eyesopen.com>
3170
3171         * config/i386/i386.c (ix86_va_start): Ensure all integer constant
3172         trees are constructed with a suitable tree type.
3173
3174 2006-04-15  Roger Sayle  <roger@eyesopen.com>
3175
3176         * tree.c (integer_zerop): Ignore TREE_CONSTANT_OVERFLOW.
3177         (integer_onep): Likewise.
3178         (integer_all_onesp): Likewise.
3179         (integer_pow2p): Likewise.
3180         (integer_nonzerop): Likewise.
3181         (real_zerop): Likewise.
3182         (real_onep): Likewise.
3183         (real_twop): Likewise.
3184         (real_minus_onep): Likewise.
3185         (int_size_in_bytes): Likewise.
3186         (host_integerp): Likewise.
3187
3188 2006-04-15  Kazu Hirata  <kazu@codesourcery.com>
3189
3190         * cfgcleanup.c, config/dfp-bit.c, expr.c, fold-const.c,
3191         jump.c, mips-tfile.c, omp-low.c, sched-int.h,
3192         tree-ssa-loop-prefetch.c, tree-vrp.c: Fix comment typos.
3193
3194         * tree-ssa-structalias.h (alias_info): Remove num_references.
3195
3196 2006-04-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3197
3198         * pa.md (output_bb patterns): Shorten long branch alternatives by 4.
3199         (output_bvb patterns): Likewise.
3200         * pa.c (output_bb): Use 'bb' insn for long branch case.
3201         (output_bvb): Likewise use '{bvb|bb}' for long branch case.
3202         (output_dbra): Use '{comb|cmpb}' for long branch case for alternative
3203         1.  Correct length operand for alternatives 1 and 2.
3204         (output_movb): Use '{comb|cmpb}' for long branch case for alternatives
3205         1, 2 and 3.  Correct length operand for alternatives 1, 2 and 3.
3206
3207 2006-04-14  Roger Sayle  <roger@eyesopen.com>
3208
3209         * tree-cfg.c (make_edges, make_omp_sections_edges, move_stmt_r,
3210         is_ctrl_altering_stmt): Reinstate RTH's changes from r112935 that
3211         were accidentally reverted by r112959.
3212
3213 2006-04-15  Jakub Jelinek  <jakub@redhat.com>
3214
3215         PR middle-end/26823
3216         * except.h (eh_region_outermost): New prototype.
3217         * except.c (eh_region_outermost): New function.
3218         * tree-cfg.c (find_outermost_region_in_block): Use it.
3219
3220 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
3221
3222         * local-alloc.c (rest_of_handle_local_alloc): Use VEC instead
3223         of VARRAY.
3224         * reload1.c (reg_equiv_memory_loc_varray): Rename to
3225         reg_equiv_memory_loc_vec.  Change the type to VEC(rtx,gc) *.
3226         (init_reload, reload): Use VEC instead of VARRAY.
3227         * reload.h: Update the prototype for
3228         reg_equiv_memory_loc_varray.
3229
3230 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
3231             Eric Botcazou  <ebotcazou@libertysurf.fr>
3232
3233         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
3234         register save area.
3235
3236 2005-04-13  Uros Bizjak  <uros@kss-loka.si>
3237
3238         PR middle-end/27134
3239         * builtins.c (expand_builtin_int_roundingfn): Use expand_normal()
3240         to expand fallback builtin function call.
3241
3242 2006-04-14  Alan Modra  <amodra@bigpond.net.au>
3243
3244         PR middle-end/27095
3245         * builtins.c: (expand_builtin_memset): Stabilize args before expansion
3246         and emit libcall here in case the builtin fails.
3247         (expand_builtin_strcmp): Always emit the libcall here on failure.
3248
3249 2006-04-14  Kazu Hirata  <kazu@codesourcery.com>
3250
3251         * basic-block.h (REG_BASIC_BLOCK): Use VEC instead of VARRAY.
3252         * flow.c (reg_n_info): Change the type to
3253         VEC(reg_info_p,heap) *.
3254         * regclass.c (allocate_reg_info, free_reg_info): Use VEC
3255         instead of VARRAY.
3256         * regs.h (reg_info_p): New.
3257         (REG_N_REFS, REG_FREQ, REG_N_SETS, REG_N_DEATHS,
3258         REG_N_CALLS_CROSSED, REG_N_THROWING_CALLS_CROSSED,
3259         REG_LIVE_LENGTH, REGNO_FIRST_UID, REGNO_LAST_UID): Use VEC
3260         instead of VARRAY.
3261
3262 2006-04-13  Eric Botcazou  <ebotcazou@adacore.com>
3263
3264         * params.def (PARAM_MAX_SCHED_READY_INSNS): New parameter,
3265         defaulting to 100.
3266         * params.h (MAX_SCHED_READY_INSNS): New macro.
3267         * haifa-sched.c: (queue_to_ready): Re-queue insns for the next cycle
3268         past MAX_SCHED_READY_INSNS during the first scheduling pass.
3269         (schedule_block): Delay insns past MAX_SCHED_READY_INSNS in
3270         the ready list for 1 cycle during the first scheduling pass.
3271         * doc/invoke.texi (--param): New parameter max-sched-ready-insns.
3272
3273 2006-04-13  Richard Henderson  <rth@redhat.com>
3274
3275         PR libgomp/26651
3276         * gimple-low.c (lower_omp_directive): Remove dead code.
3277         (lower_stmt): Do nothing except for openmp, except for OMP_PARALLEL.
3278         * gimplify.c (gimplify_expr): Update for OMP_RETURN, OMP_CONTINUE.
3279         * omp-low.c (struct omp_region): Move to tree-flow.h.
3280         (root_omp_region): Export.
3281         (omp_regions, lookup_omp_region): Remove.
3282         (determine_parallel_type): Update for struct omp_region changes.
3283         (dump_omp_region): Dump regions with block numbers.
3284         (new_omp_region): Take type and block instead of stmt; malloc
3285         instead of ggc.
3286         (free_omp_region_1, free_omp_regions): New.
3287         (expand_parallel_call): Take entry_stmt as argument; update for
3288         changes to omp_region.
3289         (remove_exit_barrier): Rewrite to update OMP_RETURN_NOWAIT.
3290         (remove_exit_barriers): New.
3291         (expand_omp_parallel): Update for struct omp_region changes.
3292         (expand_omp_synch): Likewise.
3293         (expand_omp): Likewise.
3294         (expand_omp_for_static_nochunk): Likewise; update for OMP_CONTINUE.
3295         (expand_omp_for_static_chunk): Likewise.
3296         (expand_omp_for): Likewise.
3297         (expand_omp_for_generic): Likewise; emit the proper GOMP_loop_end call.
3298         (expand_omp_sections): Similarly, with GOMP_sections_end.
3299         (expand_omp_single): New.
3300         (build_omp_regions_1): Update for OMP_CONTINUE.
3301         (execute_expand_omp): Call remove_exit_barriers, free_omp_regions.
3302         (lower_omp_sections): Expand with OMP_CONTINUE, do not collect
3303         OMP_SECTIONS_SECTIONS.
3304         (lower_omp_single_simple): Don't emit barrier here.
3305         (lower_omp_single_copy): Likewise.
3306         (lower_omp_single): Fix bindings, and lower to straightline now.
3307         (lower_omp_master, lower_omp_ordered): Likewise.
3308         (lower_omp_critical): Likewise.
3309         (lower_omp_for): Likewise.  Emit OMP_CONTINUE.
3310         * tree-cfg.c (make_edges): Collect an omp_region tree, use it for
3311         omp edges, free it afterward.
3312         (make_omp_sections_edges): Remove.
3313         (is_ctrl_altering_stmt): Don't bother checking flag_openmp.
3314         (move_stmt_r): Handle OMP_CONTINUE.
3315         * tree-flow.h (struct omp_region): Move from omp-low.c.  Switch
3316         statement pointers to basic blocks.  Add type member.
3317         (root_omp_region, new_omp_region, free_omp_regions): Declare.
3318         * tree-gimple.c (is_gimple_stmt): Handle OMP_RETURN, OMP_CONTINUE.
3319         * tree-inline.c (estimate_num_insns_1): Likewise.
3320         * tree-pretty-print.c (dump_generic_node): Likewise.
3321         * tree-ssa-operands.c (get_expr_operands): Likewise.
3322         * tree.def (OMP_SECTIONS): Remove OMP_SECTIONS_SECTIONS operand.
3323         (OMP_RETURN): Rename from OMP_RETURN_EXPR.
3324         (OMP_CONTINUE): New.
3325         * tree.h (OMP_DIRECTIVE_P): Add OMP_CONTINUE.
3326         (OMP_SECTIONS_SECTIONS): Remove.
3327         (OMP_SECTION_LAST): New.
3328         (OMP_RETURN_NOWAIT): New.
3329
3330 2006-04-13  Roger Sayle  <roger@eyesopen.com>
3331
3332         * fold-const.c (native_encode_vector, native_interpret_real):
3333         Correct obvious mistakes in the previous check-in.
3334
3335 2006-04-13  Roger Sayle  <roger@eyesopen.com>
3336
3337         * fold-const.c (native_encode_expr): New function to encode
3338         the target representation of an INTEGER_CST, REAL_CST, COMPLEX_CST
3339         or VECTOR_CST into a specified buffer.
3340         (native_encode_int): New function.
3341         (native_encode_real): New function.
3342         (native_encode_complex): New function.
3343         (native_encode_vector): New function.
3344         (native_interpret_expr): Inverse of native_encode_expr to convert
3345         a target representation into an INTEGER_CST, REAL_CST etc...
3346         (native_interpret_int): New function.
3347         (native_interpret_real): New function.
3348         (native_interpret_complex): New function.
3349         (native_interpret_vector): New function.
3350         (fold_view_convert_expr): New function to constant fold/evaluate
3351         a VIEW_CONVERT_EXPR of a suitable constant expression.
3352         (fold_unary) <VIEW_CONVERT_EXPR>: Call fold_view_convert_expr.
3353         Change call of build1 to fold_build1 when constructing a
3354         VIEW_CONVERT_EXPR.
3355
3356 2006-04-13  Paolo Bonzini  <bonzini@gnu.org>
3357             Ulrich Weigand  <uweigand@de.ibm.com>
3358
3359         PR target/27006
3360         * config/rs6000/rs6000.h (EASY_VECTOR_15_ADD_SELF): Require n
3361         to be even.
3362
3363 2006-04-13  Alan Modra  <amodra@bigpond.net.au>
3364
3365         PR target/26459
3366         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
3367         optimize to lo_sum for DFmode if !TARGET_FPRS.
3368
3369 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
3370
3371         * tree-ssa-alias.c (set_initial_properties, init_alias_info,
3372         delete_alias_info, compute_flow_sensitive_aliasing,
3373         group_aliases): Use VEC instead of VARRAY.
3374         * tree-ssa-structalias.c (update_alias_info): Likewise.
3375         * tree-ssa-structalias.h (alias_info): Change the type of
3376         processed_ptrs to VEC(tree,heap) *.
3377
3378 2006-04-12  J"orn Rennecke <joern.rennecke@st.com>
3379
3380         PR target/27060
3381         * config/sh/lib1funcs.h: New file, broken out of:
3382         * config/sh/lib1funcs.asm.
3383         * config/sh/lib1funcs.h (DR00, DR01, DR20, DR21, DR40, DR41):
3384         New macros.
3385         * config/sh/lib1funcs.asm (udivsi3_i4): Use them.
3386         * config/sh/lib1funcs-Os-4-200.asm: New file.
3387         * config/sh/embed-elf.h (LIBGCC_SPEC): Use -lgcc-Os-4-200.
3388         * config/sh/t-sh (OPT_EXTRA_PARTS): New variable.
3389         (EXTRA_MULTILIB_PARTS): Include it.
3390         ($(T)sdivsi3_i4i-Os-4-200.o): New rule.
3391         ($(T)udivsi3_i4i-Os-4-200.o, $(T)libgcc-Os-4-200.a): Likewise.
3392         * config/sh/t-superh (EXTRA_MULTILIB_PARTS): Include OPT_EXTRA_PARTS.
3393         * config/sh/sh.h (OVERRIDE_OPTIONS): Recognize -mdiv=call-table for
3394         TARGET_SH2.
3395
3396 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
3397
3398         * Makefile.in (TREE_SSA_LIVE_H): Add vecprim.h.
3399         * tree-ssa-live.c (tpa_init, tpa_remove_partition, tpa_delete,
3400         tpa_compact, root_var_init, type_var_init): Use VEC instead of
3401         VARRAY.
3402         * tree-ssa-live.h: Include vecprim.h.
3403         (tree_partition_associator_d): Change the type of
3404         first_partition to VEC(int,heap) *.
3405         (tpa_first_partition): Use VEC instead of VARRAY.
3406
3407         * Makefile.in (GTFILES): Move functions.h after tree.h.
3408         * function.c (reset_block_changes, record_block_change,
3409         check_block_change, free_block_changes): Use VEC instead of
3410         VARRAY.
3411         * function.h (function): Change the type of
3412         ib_boundaries_block to VEC(tree,gc) *.
3413         * tree-inline.c (copy_cfg_body): Initialize
3414         ib_boundaries_block to NULL instead of (varray_type) 0.
3415
3416 2006-04-12  Roger Sayle  <roger@eyesopen.com>
3417
3418         * expr.c (emit_group_store): Correct operand order in call to
3419         subreg_lowpart_offset.  Always create paradoxical SUBREGs with
3420         a SUBREG_BYTE of zero.
3421
3422 2006-04-12  Richard Guenther  <rguenther@suse.de>
3423
3424         * profile.c (compute_branch_probabilities): Remove code
3425         encapsulated in !ir_type (), which are remanents of the
3426         removed RTL profiling code.
3427         * rtl-profile.c: Remove.
3428
3429 2006-04-12  Alan Modra  <amodra@bigpond.net.au>
3430
3431         * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Update
3432         magic NULL_RTX comment.
3433         (function_arg): Store entire fp arg to mem if any part should go
3434         on stack.
3435         (rs6000_arg_partial_bytes): Adjust for above change.
3436
3437 2006-04-11  Roger Sayle  <roger@eyesopen.com>
3438
3439         * dwarf2out.c (output_call_frame_info): Create debug_frame_section
3440         if it hasn't been initialized by dwarf2out_init.
3441
3442 2006-04-11  John David Anglin  <dava.anglin@nrc-cnrc.gc.ca>
3443
3444         * pa.md (MAX_12BIT_OFFSET, MAX_17BIT_OFFSET): Define and use new
3445         symbolic constants in branch patterns.
3446
3447 2006-04-11  Roger Sayle  <roger@eyesopen.com>
3448
3449         * caller-save.c: #include "addresses.h" after #include "tm_p.h".
3450
3451 2006-04-11  Richard Sandiford  <richard@codesourcery.com>
3452
3453         PR rtl-optimization/27073
3454         * gcse.c (try_replace_reg): Revert last change.  Continue to search
3455         for both REG_EQUAL and REG_EQUIV notes, but only perform replacements
3456         on the former.
3457
3458 2006-04-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3459
3460         * config/sparc/sparc.c (function_arg_slotno) <BLKmode>: Handle
3461         aggregate types other than record and union types.
3462         (function_arg): Likewise.
3463         (function_arg_pass_by_reference): In 64-bit mode, return 0 for
3464         small arrays.
3465         (function_value): In 64-bit mode, return objects that require it
3466         in FP registers.
3467
3468 2006-04-11  Roger Sayle  <roger@eyesopen.com>
3469
3470         * dwarf2out.c (premark_used_types): Remove problematic prototype.
3471
3472 2006-04-11  Jakub Jelinek  <jakub@redhat.com>
3473
3474         * gcc.c (LINK_COMMAND_SPEC): Move link_gomp after %o.
3475
3476 2006-04-03  Jeff Law  <law@redhat.com>
3477
3478         PR/27087
3479         * tree-ssa-copy.c (may_propagate_copy): Test flow sensitive
3480         alias information too.
3481
3482 2006-04-10  Mike Frysinger  <vapier@gentoo.org>
3483
3484         * Makefile.in (gcc-cross): Add $(exeext) to target name.
3485
3486 2006-04-10  Aldy Hernandez  <aldyh@redhat.com>