OSDN Git Service

2005-11-24 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-11-24  Richard Guenther  <rguenther@suse.de>
2         Dirk Mueller <dmueller@suse.de>
3
4         PR c++/14024
5         * c-common.h (strict_aliasing_warning): Declare.
6         * c-common.c (strict_aliasing_warning): New function,
7         split out from ...
8         * c-typeck.c (build_c_cast): ... here.
9
10 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
11
12         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
13         to order operands.
14         (swap_commutative_operands_with_target): New.
15
16 2005-11-24  Paolo Bonzini  <bonzini@gnu.org>
17
18         * gcse.c (hash_scan_set): Look through REG_EQUAL or REG_EQUIV notes
19         also when doing PRE, rather than only for global CPROP.
20
21 2005-11-24  Ben Elliston  <bje@au.ibm.com>
22
23         * machmode.h (CLASS_HAS_WIDER_MODES_P): New macro.
24         * optabs.c (expand_binop): Use CLASS_HAS_WIDER_MODES_P, improve
25         formatting.
26         (expand_twoval_unop): Likewise.
27         (widen_clz): Likewise.
28         (expand_parity): Likewise.
29         (expand_unop): Likewise.
30         (emit_cmp_and_jmp_insn_1): Likewise.
31         (prepare_float_lib_cmp): Likewise.
32
33 2005-11-24  Ben Elliston  <bje@au.ibm.com>
34
35         * optabs.c (prepare_cmp_insn): Use SCALAR_FLOAT_MODE_P.
36         Remove unused `class' variable.
37
38 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
39
40         PR c++/21667
41         * c-typeck.c (build_array_ref): Avoid code duplicate.  Use common
42         C/C++ diagnostic function warn_array_subscript_with_type_char. 
43         * c-common.h (warn_array_subscript_with_type_char): Declare. 
44         * c-common.c (warn_array_subscript_with_type_char): Define.
45
46 2005-11-23  Gabriel Dos Reis  <gdr@integrable-solutions.net>
47
48         PR c/21668
49         * c-decl.c (grokdeclarator): Don't warn for 'extern const' when
50         compiling at the intersection of C and C++.
51
52 2005-11-23  Mark Mitchell  <mark@codesourcery.com>
53
54         * doc/invoke.texi: For man pages, include gcc-vers.texi.
55         List @file in the option summary.  Include the libiberty
56         documentation for @file.
57         * gcc.c (main): Call expandargv.
58         * Makefile.in (gcc-vers.texi): Define srcdir.
59
60 2005-11-23  Diego Novillo  <dnovillo@redhat.com>
61
62         * passes.c (init_optimization_passes): Document
63         sequencing of passes.
64
65 2005-11-23  Kazu Hirata  <kazu@codesourcery.com>
66
67         * config/m68k/predicates.md (pcrel_address, extend_operator,
68         post_inc_operand, pre_dec_operand): Remove redundant
69         conditionals.
70         (const_uint32_operand, const_sint32_operand): Use gcc_assert
71         instead of abort.
72         (valid_dbcc_comparison_p): Rewrite in the lisp style.
73
74 2005-11-23  Ben Elliston  <bje@au.ibm.com>
75
76         * dwarf2.h (enum dwarf_type): Add DW_ATE_decimal_float.
77
78 2005-11-22  J"orn Rennecke <joern.rennecke@st.com>
79
80         Preparatory work for PR target/21623:
81         * alpha.c (secondary_reload_class): Rename to:
82         (alpha_secondary_reload_class).
83         * alpha.h, alpha-protos.h: Likewise.
84         * mn10300.c (secondary_reload_class): Rename to:
85         (mn10300_secondary_reload_class).
86         * mn10300.h, mn10300-protos.h: Likewise.
87         * pa.c (secondary_reload_class): Rename to:
88         (pa_secondary_reload_class).
89         * pa.h, pa-protos.h: Likewise.
90         * rs6000.c (secondary_reload_class): Rename to:
91         rs6000_secondary_reload_class.
92         * rs6000.h, rs6000-protos.h: Likewise.
93
94 2005-11-22  Eric Botcazou  <ebotcazou@adacore.com>
95
96         PR middle-end/22561
97         * tree-ssa-structalias.c (get_constraint_for): Handle ARRAY_RANGE_REF.
98
99 2005-11-22  Ian Lance Taylor  <ian@airs.com>
100
101         * optabs.c (expand_unop): Call SCALAR_FLOAT_MODE_P on a mode, not
102         a mode_class.
103         (prepare_cmp_insn): Likewise.
104
105 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
106
107         PR target/23435
108         * m68k.md (zero_extendsidi2): Force operands[1] to a register
109         if both operands[0] and operands[1] are memory.
110
111 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
112
113         PR middle-end/23606
114         * fold-const.c (fold_unary) <case NOP_EXPR, CONVERT_EXPR>: For
115         COMPARISON_CLASS_P and an integral types create create a new
116         expression with the new type and fold that.
117
118 2005-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
119
120         PR target/24988
121         * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Remove call
122         to SUBTARGET_OS_CPP_BUILTINS.
123         
124 2005-11-22  Richard Earnshaw  <richard.earnshaw@arm.com>
125
126         * arm.c (emit_set_insn): New function.
127         (arm_split_constant): Call it.
128         (arm_gen_compare_reg, arm_reload_in_hi, arm_reload_out_hi): Likewise.
129         (arm_legitimize_address): Likewise.  Use plus_constant.
130         (arm_expand_prologue): Likewise.  Use VOIDmode in SET.
131         (thumb_expand_prologue): Likewise.
132         (arm_gen_load_multiple): Use VOIDmode in SET.
133         (arm_gen_store_multiple): Likewise.
134         (vfp_emit_fstmx): Likewise.  Use plus_constant.
135         (emit_multi_reg_push): Likewise.
136         (emit_sfm): Use plus_constant.
137         
138 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
139
140         PR target/24954
141         * config/rs6000/predicates.md (easy_vector_constant_add_self): Fix
142         typo last change.
143
144 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
145
146         PR middle-end/24950
147         * expmed.c (store_bit_field): Don't attempt to insv a field
148         larger than the reg.
149
150 2005-11-22  Alan Modra  <amodra@bigpond.net.au>
151
152         PR target/24954
153         * config/rs6000/predicated.md (easy_vector_constant_add_self): Use
154         explicit sign extension, not a (char) cast.
155
156 2005-11-22  Ben Elliston  <bje@au.ibm.com>
157
158         * optabs.c: Use SCALAR_FLOAT_MODE_P instead of explicitly testing
159         GET_MODE_CLASS (x) == MODE_FLOAT.
160         * config/i386/i386.c: Likewise.
161         * config/rs6000/xcoff.h: Likewise.
162         * config/rs6000/linux64.h: Likewise.
163         * config/rs6000/rs6000.c: Likewise.
164         * config/rs6000/rs6000.h: Likewise.
165         * config/rs6000/predicates.md: Likewise.
166         * config/rs6000/sysv4.h: Likewise.
167
168 2005-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
169
170         * c-cppbuiltin.c (c_cpp_builtins): Define __pic__ and __PIC__ when
171         flag_pic is set.
172         
173         * config/alpha/freebsd.h, config/alpha/linux.h,
174         config/arm/linux-elf.h, config/bfin/bfin.h,
175         config/cris/linux.h, config/darwin.h, config/freebsd-spec.h,
176         config/i386/beos-elf.h, config/i386/gnu.h,
177         config/i386/linux.h, config/i386/linux64.h, config/i386/nto.h,
178         config/i386/sco5.h, config/m32r/m32r.h, config/m68k/linux.h,
179         config/m68k/m68k.h, config/mips/linux.h, config/pa/pa-linux.h,
180         config/rs6000/linux64.h, config/rs6000/sysv4.h,
181         config/rs6000/vxworks.h, config/s390/linux.h, config/s390/tpf.h,
182         config/sh/linux.h, config/sh/sh.h, config/sol2.h,
183         config/sparc/linux.h, config/sparc/linux64.h,
184         config/xtensa/xtensa.h: Don't define __pic__ or __PIC__.
185
186         * doc/invoke.texi: Document that the macros __pic__ and __PIC__
187         are both defined when either flag -fpic or -fPIC are used.
188
189 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
190
191         * config/fp-bit.c (clzusi): New function.
192         (si_to_float, usi_to_float): Use it to compute proper shift.
193         (usi_to_float): Preserve guard bits when shifting right.
194         * libgcc-std.ver (GCC_4.2.0): New version.
195         * libgcc2.c (__floatundixf, __floatunditf, __floatundidf,
196         __floatundisf): New functions.
197         * libgcc2.h (__floatundixf, __floatunditf, __floatundidf,
198         __floatundisf): Declare.
199         * mklibgcc.in (lib2funcs): Add _floatundidf, _floatundisf,
200         _floatundixf, and _floatunditf.
201         * optabs.c (expand_float): If target does not define a pattern for
202         signed or unsigned conversion, use an unsigned libcall instead of
203         a signed one.
204         (init_optabs): Initialize ufloat_optab.
205
206 2005-11-22  Joseph S. Myers  <joseph@codesourcery.com>
207
208         * config/rs6000/rs6000.opt (mmulhw): New option.
209         * doc/invoke.texi (-mmulhw): Document.
210         * config/rs6000/rs6000.c (rs6000_override_options): Enable -mmulhw
211         for 405 and 440.
212         * config/rs6000/rs6000.md: Add half-word multiply and
213         multiply-accumulate instructions for 405 and 440.
214
215 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
216
217         * config/arm/rtems-elf.h: Added definition of LINK_GCC_C_SEQUENCE_SPEC
218         which matches behavior of gcc 4.0 and older for RTEMS targets.  The
219         default now includes a linker group which makes the RTEMS one nest.
220
221 2005-11-22  Ben Elliston  <bje@au.ibm.com>
222
223         * cse.c (fold_rtx): Typo fix.
224         (find_comparison_args): Pass the mode of arg1, not arg1 itself.
225
226 2005-11-21  Richard Henderson  <rth@redhat.com>
227
228         * c-common.c, config/darwin-c.c, c-decl.c, c-tree.h, c-objc-common.h,
229         langhooks-def.h, langhooks.h: Revert 2005-11-18 lookup_name patch.
230
231         * c-tree.h (lookup_name): Move declaration ...
232         * c-common.h (lookup_name): ... here.
233         * config/darwin-c.c: Include c-common.h.
234         * config/t-darwin: Update dependencies.
235
236 2005-11-22  Ben Elliston  <bje@au.ibm.com>
237
238         * optabs.c (expand_abs_nojump): Use SCALAR_FLOAT_MODE_P instead of
239         explicitly testing GET_MODE_CLASS (x) == MODE_FLOAT.
240         * genopinit.c (gen_insn): Likewise.
241         * reload.c (find_equiv_reg): Likewise.
242         * loop.c (load_mems): Likewise.
243         * rtlanal.c (may_trap_p_1, canonicalize_condition): Likewise.
244         * cse.c (find_comparison_args, fold_rtx): Likewise.
245         * dwarf2out.c (add_const_value_attribute): Likewise.
246         * expr.c (convert_move): Likewise.
247         * recog.c (general_operand, register_operand): Likewise.
248         * reg-stack.c (replace_reg): Likewise.
249         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
250         * c-common.c (handle_vector_size_attribute): Likewise.
251         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
252         (simplify_binary_operation_1): Likewise.
253         (simplify_const_binary_operation): Likewise.
254         (simplify_relational_operation): Likewise.
255         (simplify_const_relational_operation): Likewise.
256         (simplify_immed_subreg): Likewise.
257         * emit-rtl.c (gen_lowpart_common): Likewise.
258         * expmed.c (expand_mult): Likewise.
259         * stor-layout.c (layout_type): Likewise.
260
261 2005-11-21  Paolo Bonzini  <bonzini@gnu.org>
262
263         PR target/24951
264         * config/rs6000/rs6000.c (output_vec_const_move): Load cst and
265         cst2 only for SPE vectors.
266
267 2005-11-21  David Edelsohn  <edelsohn@gnu.org>
268
269         PR target/24953
270         * config/rs6000/predicates.md (vrsave_operation): Check
271         UNSPEC_VOLATILE value.
272
273 2005-11-21  Jan Hubicka  <jh@suse.cz>
274
275         PR tree-optimization/24653
276         * tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.
277
278 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
279
280         * config/i386/predicates.md (ax_reg_operand): New predicate.
281         (memory_displacement_only_operand): New predicate.
282         * config/i386/i386.md ("modrm" attribute): Return 0 if one
283         operand is AX register and the other operand is memory operand
284         with displacement only.
285
286 2005-11-21  Uros Bizjak  <uros@kss-loka.si>
287
288         * fold-const.c (fold_binary) <RDIV_EXPR>: Optimize A / A to 1.0 
289         if we don't care about NaNs or Infinities.
290
291 2005-11-20  Ian Lance Taylor  <ian@airs.com>
292
293         PR rtl-optimization/24883
294         * combine.c (combinable_i3pat): When checking whether the
295         destination of i3 is used in i3, consider paradoxical subregs.
296
297 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
298
299         PR middle-end/20583
300         * cse.c (cse_insn): Reject invalid forms of CONST earlier.
301
302 2005-11-20  Joseph S. Myers  <joseph@codesourcery.com>
303
304         * combine.c (try_combine): Do not run subst on i1src and i2src in
305         the case of generating a PARALLEL for a comparison.
306
307 2005-11-20  Richard Henderson  <rth@redhat.com>
308
309         PR 24931
310         * tree-sra.c (struct sra_elt): Add all_no_warning.
311         (struct sra_walk_fns) <use>: Add use_all argument.
312         (sra_walk_expr): Pass it.
313         (sra_walk_modify_expr): Likewise.
314         (scalarize_ldst): Likewise.
315         (scan_use): Update for new argument.
316         (mark_no_warning): New.
317         (scalarize_use): Use it.
318
319 2005-11-20  Bernd Schmidt  <bernd.schmidt@analog.com>
320
321         * expr.c (expand_expr_real): Use usmul_optab for widening
322         signed * unsigned multiplies.
323         * genopinit.c (optabs): Add usmul_widen_optab.
324         * optabs.c (init_optabs): Likewise.
325         * optabs.h (enum optab_index): Add OTI_usmul_widen.
326         (usmul_widen_optab): Define.
327         * config/bfin/bfin.md (usmulhisi3): New pattern.
328
329         * doc/md.texi (usmulqihi3, usmulhisi3, usmulsidi3): Document.
330
331 2005-11-20  Graham Stott <btinternet.com>
332
333         * gensupport.c (std_preds): Fixed extraneous `false` in last change.
334
335 2005-11-20  Andreas Schwab  <schwab@suse.de>
336
337         PR target/24757
338         * config/ia64/ia64.c (ia64_expand_atomic_op): Fix condition of cmp
339         insn.
340
341 2005-11-19  Richard Henderson  <rth@redhat.com>
342
343         PR tree-opt/24665
344         * tree-gimple.c (is_gimple_id): Export.
345         * tree-gimple.h (is_gimple_id): Declare.
346         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
347         (get_default_value): Use it.
348         (maybe_fold_stmt_indirect): Likewise.
349
350 2005-11-19  James A. Morrison  <phython@gcc.gnu.org>
351
352         * tree-vrp.c (compare_ranges): Return false for EQ_EXPR if VR0 is less
353         than VR1 or vice-versa.
354
355 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
356
357         PR middle-end/24912
358         PR middle-end/24750
359         * reload.c (find_reloads_address_1): Mention dependency on
360         gen_reload.
361         * reload1.c (gen_reload): For IN with an unary operation, try
362         moving inner expression to OUT if trivial SET is not valid.
363         Confirm that the result is valid.  Move common code block into...
364         (emit_insn_if_valid_for_reload): New function.
365
366 2005-11-19  Richard Guenther  <rguenther@suse.de>
367
368         * fold-const.c (fold_indirect_ref_1): Make sure we fold
369         ARRAY_REFs of constant strings.
370
371 2005-11-19  Jakub Jelinek  <jakub@redhat.com>
372
373         * gcc.c (version_compare_spec_function): Use '%s' rather than %qs in
374         fatal format string.
375
376 2005-11-19  Joseph S. Myers  <joseph@codesourcery.com>
377
378         * combine.c (make_compound_operation): Swap operands of
379         commutative operation if necessary before returning.
380
381 2005-11-19  Richard Guenther  <rguenther@suse.de>
382
383         PR middle-end/23294
384         * fold-const.c (fold_plusminus_mult_expr): New function.
385         (fold_binary): Use to canonicalize PLUS_EXPR and MINUS_EXPR
386         cases, remove now unnecessary code.
387
388 2005-11-19  Paolo Bonzini  <bonzini@gcc.gnu.org>
389
390         * gensupport.c (old_preds): Rename to std_preds, add special field.
391         (struct old_pred_table): Rename to struct std_pred_table, add special
392         field.
393         (NUM_KNOWN_OLD_PREDS): Rename to NUM_KNOWN_STD_PREDS.
394         (NUM_OLD_SPECIAL_MODE_PREDS): Remove.
395         (init_predicate_table): Adjust, and set along the way whether a
396         predicate is special.
397
398 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
399
400         * BASE-VER: Change to 4.2.0.
401
402 2005-11-18  James E Wilson  <wilson@specifix.com>
403
404         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
405         returning it.
406
407 2005-11-18  Mike Stump  <mrs@apple.com>
408
409         * c-common.c (handle_cleanup_attribute): Use a lang hook for lookup_name.
410         * config/darwin-c.c (darwin_pragma_unused): Likewise.
411         * c-decl.c (lookup_name_two) Remove.
412         * c-tree.h (lookup_name_two): Remove.
413         * c-objc-common.h (LANG_HOOKS_LOOKUP_NAME): Add.
414         * langhooks-def.h (LANG_HOOKS_LOOKUP_NAME): Add.
415         (LANG_HOOKS_DECLS): Add initializer for LANG_HOOKS_LOOKUP_NAME.
416         * langhooks.h (lang_hooks_for_decls): Add lookup_name.
417         
418 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
419
420         PR target/24914
421         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
422         when not generating code to use that co-processor.
423
424 2005-11-18  James A. Morrison  <phython@gcc.gnu.org>
425
426         * tree-flow.h (reserve_phi_args_for_new_edge, create_phi_node,
427         add_phi_arg, remove_phi_args, remove_phi_node phi_reverse): Mention that
428         these functions are now in tree-phinodes.c.
429
430 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
431
432         * config/bfin/bfin.md (trap): New pattern.
433
434 2005-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
435
436         * tree-ssa-dom.c (extract_range_from_cond): Deal with variable bounds
437         on types.
438
439         * expr.c (expand_expr_real): Don't call record_block_change unless
440         ib_boundaries_block is non-null
441
442         * postreload.c (reload_cse_move2add): Don't try to work with BImode.
443
444         * fold-const.c (build_range_check): Use proper type for subtraction
445         when merging lower bound.
446
447 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
448
449         PR rtl-optimization/24497
450         * loop-unroll.c (apply_opt_in_copies): Do not verify equality of
451         the copied insn.
452
453 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
454
455         * tree-scalar-evolution.c (expression_expensive_p): New function.
456         (scev_const_prop): Use compute_overall_effect_of_inner_loop.
457
458 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
459
460         * config/bfin/crtlibid.s: New file.
461
462 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
463
464         PR target/24348
465         * config.gcc (hppa*-*-hpux*): Add pa/t-slibgcc-elf-ver to tmake config
466         when not using sjlj exceptions.
467         * config/pa/pa64-hpux.h (LIB_SPEC): Add -lpthread in static links.
468         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
469         * config/pa/som.h (ASM_PREFERRED_EH_DATA_FORMAT): Delete define.
470         * config/pa/linux-unwind.h (pa32_fallback_frame_state): Use
471         DWARF_ALT_FRAME_RETURN_COLUMN instead of column 0 as return column.
472         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): New define.
473         * config/pa/pa-linux.h (INCOMING_RETURN_ADDR_RTX,
474         DWARF_FRAME_RETURN_COLUMN, ASM_PREFERRED_EH_DATA_FORMAT,
475         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Delete defines.
476         * config/pa/pa.h (ARG_POINTER_CFA_OFFSET): Delete.
477         (FRAME_POINTER_CFA_OFFSET, INCOMING_RETURN_ADDR_RTX,
478         DWARF_FRAME_RETURN_COLUMN, DWARF_ALT_FRAME_RETURN_COLUMN,
479         ASM_PREFERRED_EH_DATA_FORMAT, ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New
480         defines.
481         * config/pa/hpux-unwind.h: New file.
482
483 2005-11-17  Alexandre Oliva  <aoliva@redhat.com>
484
485         * config/rs6000/rs6000.h (ASM_OUTPUT_WEAKREF): Define.
486         * defaults.h (ASM_OUTPUT_WEAKREF): Add decl argument.
487         * varasm.c (do_assemble_alias): Adjust call.
488         (weak_finish): Don't use ASM_WEAKEN_LABEL if ASM_WEAKEN_DECL
489         is defined.
490         * doc/tm.texi (ASM_OUTPUT_WEAKREF): Document it.
491
492 2005-11-17  James E Wilson  <wilson@specifix.com>
493
494         * tree.def (FUNCTION_DECL): Correct typo in comment.
495
496 2005-11-17  Richard Henderson  <rth@redhat.com>
497
498         * dwarf2out.c (dw_cfi_oprnd_struct): Reduce dw_cfi_reg_num to int.
499         (lookup_cfa_1): Apply data alignment to DW_CFA_def_cfa_offset_sf
500         and DW_CFA_def_cfa_sf.
501         (def_cfa_1): Use DW_CFA_def_cfa_offset_sf with negative values.
502         (dbx_reg_number): Don't assert particular registers here.
503         (based_loc_descr): ... do it here instead.  Fold in ...
504         (eliminate_reg_to_offset): ... this function.
505         (compute_frame_pointer_to_cfa_displacement): Fold in the effects
506         of eliminate_reg_to_offset; use FRAME_POINTER_CFA_OFFSET.
507         * unwind-dw2.c (execute_cfa_program): Apply data align factor
508         to DW_CFA_def_cfa_offset_sf and DW_CFA_def_cfa_sf.
509         * function.c (instantiate_new_reg): Use FRAME_POINTER_CFA_OFFSET.
510         (instantiate_virtual_regs): Likewise.
511         * var-tracking.c (adjust_stack_reference): Likewise.
512         * doc/tm.texi (FRAME_POINTER_CFA_OFFSET): New.
513
514 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
515
516         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
517         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
518         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
519         crtlibid.o.
520         ($(T)crtlibid.o): New rule.
521
522 2005-11-16  Richard Guenther  <rguenther@suse.de>
523
524         PR middle-end/24851
525         * fold-const.c (extract_array_ref): Return byte offset
526         in all cases.
527         (fold_binary): Fold &x[a] CMP &x[b] to
528         a*sizeof(*x) CMP b*sizeof(*x) to get correct overflow
529         behavior.
530
531 2005-11-16  Richard Henderson  <rth@redhat.com>
532
533         PR middle-end/23497
534         * tree-ssa.c (warn_uninitialized_var): Skip real and imaginary
535         parts of an SSA_NAME.
536
537 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
538
539         PR target/24861
540         * arm.md (split for movsf with immediate): Restrict split to insns
541         that set a general register.
542
543 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
544
545         * config/ia64/unwind-ia64.c (uw_advance_context): New.  Call
546         uw_update_context.
547         * unwind-dw2.c (uw_advance_context): Likewise.
548         * unwind-sjlj.c (uw_advance_context): Likewise.  Also call
549         _Unwind_SjLj_Unregister.
550         * unwind.inc (_Unwind_ForcedUnwind_Phase2): Call uw_advance_context.
551
552 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
553
554         * unwind-sjlj.c (_Unwind_GetCFA): Handle the builtin_setjmp case.
555
556 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
557
558         * config/alpha/alpha.c (alpha_init_builtins): Use type_for_mode
559         langhook to get a DImode integer type.
560
561 2005-11-16  Richard Henderson  <rth@redhat.com>
562             J"orn Rennecke <joern.rennecke@st.com>
563             Ulrich Weigand  <uweigand@de.ibm.com>
564
565         PR rtl-opt/24160
566         PR target/24621
567         * reload1.c (reg_equiv_invariant): New.
568         (reload): Allocate, initialize, and free it.
569         (calculate_needs_all_insns): Check it when skipping equivalence
570         setting insns.
571         (alter_reg): Likewise.
572         (eliminate_regs_1): Rename from eliminate_regs.  Add new
573         may_use_invariant argument; only use reg_equiv_invariant when true.
574         (eliminate_regs): New.
575         (eliminate_regs_in_insn): Use eliminate_regs_1; track when we're in
576         a context for which may_use_invariant may be true.
577
578 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
579
580         * fold-const.c (const_binop): Don't constant fold the operation
581         if the result has overflowed and flag_trapping_math.
582         * simplify-rtx.c (simplify_const_binary_operation): Likewise.
583
584 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
585
586         * config/arm/unwind-arm.c (abort): Add prototype here.
587         (UCB_FORCED_STOP_ARG): Correct typo in macro argument.
588         (struct phase1_vrs): Add prev_sp.
589         (unwind_phase2_forced): Save the original core registers instead of
590         modifying entry_vrs.  Take a new flag argument for resuming unwinding
591         and set action flags accordingly.  Always set _US_END_OF_STACK when
592         get_eit_entry fails.  Unwind before calling the stop function.
593         (_Unwind_GetCFA): New function.
594         (__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
595         (__gnu_Unwind_Resume_or_Rethrow): Likewise.
596         (__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
597         just call unwind_phase2_forced.
598         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
599         * config/arm/unwind-arm.h (abort): Remove prototype.
600         (_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
601         prototypes.
602         (_Unwind_GetCFA): New prototype.
603         * config/arm/pr-support.c (abort): Add prototype here.
604         * unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
605         forced unwinding.
606         * config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
607         not schedule the prologue with non-call exceptions and EABI.
608
609 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
610
611         * config/arm/unwind-arm.h: Reorder interface function declarations.
612         (_URC_END_OF_STACK): New enumeration value.
613         (_US_UNWIND_ACTION_MASK, _US_FORCE_UNWIND, _US_END_OF_STACK): Likewise.
614         (struct _Unwind_Control_Block): Document reserved field use.
615         (_Unwind_Stop_Fn): New typedef.
616         (_Unwind_ForcedUnwind): Declare.
617         (_Unwind_Resume_or_Rethrow): Declare.
618         * gcc/config/arm/libunwind.S (UNWIND_WRAPER): Add nargs
619         argument.  Adjust.
620         (_Unwind_Resume_or_Rethrow, _Unwind_ForcedUnwind): New.
621         * config/arm/unwind-arm.c (UCB_FORCED_STOP_FN)
622         (UCB_FORCED_STOP_ARG): New.
623         (search_EIT_table): Update boundary condition checks.
624         (get_eit_entry): Return _URC_END_OF_STACK when cannot unwind.
625         (unwind_phase2): Replace for with do..while.
626         (unwind_phase2_forced): New.
627         (__gnu_Unwind_RaiseException): Replace for with do..while.
628         (__gnu_Unwind_ForcedUnwind): New.
629         (__gnu_Unwind_Resume): Set FORCE_UNWIND flag, if forced unwinding.
630         Use appropriate phase2 unwinder.
631         (__gnu_Unwind_Resume_or_Rethrow): New.
632         (__gnu_unwind_pr_common): Cope with forced unwinding.
633
634 2005-11-16  David Edelsohn  <edelsohn@gnu.org>
635
636         PR target/24772
637         * config/rs6000/predicates.md (vrsave_operation): SET_SRC is a VEC.
638
639         * config/rs6000/rs6000.md (btruncsf2, ceilsf2, floorsf2,
640         roundsf2): Remove "s" from mnemonic.
641
642 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
643
644         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
645         __PIC__ is defined.
646         * config/bfin/crtn.s: Change epilogues to match.
647         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
648         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
649         __PIC__ and __pic__.
650
651 2005-11-16  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
652
653         PR 24357
654         * doc/invoke.texi: Distinguish between free and fixed form instead of
655         Fortran and Fortran 90/95.  Remove ratfor from the list of supported
656         languages.
657         * gcc.c (default_compilers): Remove double entries, add entries for
658         suffixes '.F90' and '.F95'.
659
660 2005-11-16  Eric Botcazou <ebotcazou@adacore.com>
661
662         * config/alpha/alpha.c (alpha_expand_prologue): Fix off-by-one bug
663         in the stack probing loop.
664
665 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
666
667         * configure.ac: Use .machine power5 not power5x.
668         * configure: Regenerate.
669
670 2005-11-15  Mike Stump  <mrs@apple.com>
671
672         * c-decl.c (lookup_name_two): Add.
673         * c-tree.h (lookup_name_two): Likewise.
674         * c-common.c (handle_cleanup_attribute): Use lookup_name_two instead.
675         * config/darwin-c.c (darwin_pragma_unused): Likewise.
676
677 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
678
679         PR rtl-optimization/23392
680         * regrename.c (enum scan_actions) Add mark_access.
681         (scan_actions_name): Ditto.
682         (scan_rtx_reg): Handle mark_access.
683         (scan_rtx_address): Do nothing for mark_access.
684         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
685         and regs in REG_INC notes before closing chains for dead regs.
686         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
687         opening chains for new writes.
688
689 2005-11-15  David Edelsohn  <edelsohn@gnu.org>
690
691         * c.opt (ffixed-line-length-none): New.
692
693 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
694
695         * mklibgcc.in: Change contents of eh_dummy.c.
696
697 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
698
699         * loop.c (scan_loop): Do not insert temporaries for hard registers.
700
701 2005-11-15  Daniel Jacobowitz  <dan@codesourcery.com>
702
703         * config/arm/lib1funcs.asm (div0) [L_dvmd_lnx]: Call raise instead
704         of making syscalls.
705         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define.  Set r7 also.
706
707 2005-11-15  Jan Hubicka  <jh@suse.cz>
708
709         * invoke.texi (large-unit-insns): Document.
710         * ipa-inline.c (cgraph_decide_inlining): Use large-unit-insns param.
711         * params.def (large-unit-insns): New param.
712
713 2005-11-15  Hans-Peter Nilsson  <hp@axis.com>
714
715         PR target/24869
716         * config/cris/cris.md ("*mov_sidesisf_mem"): Do not match
717         special register for operand 3.  Reindent constraints to align
718         them vertically.
719
720 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
721
722         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
723         -mpopcntb, -mfprnd. Add -mcpu=power5+.
724         * configure.ac: Add test for FP rounding instructions.
725         * configure: Regenerate.
726         * config.in: Regenerate.
727         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
728         _ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
729         features enabled.
730         * config/rs6000/rs6000.opt (mfprnd): New.
731         * config/rs6000/rs6000.c (processor_target_table): Add power5+.
732         (POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
733         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
734         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
735         (TARGET_FPRND): New.
736         * config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
737         UNSPEC_FRIZ): New.
738         (btrunc<mode>2): New.
739         (ceil<mode>2): New.
740         (floor<mode>2): New.
741         (round<mode>2): New.
742
743 2005-11-14  Geoffrey Keating  <geoffk@apple.com>
744
745         * gcc.c (version_compare_spec_function): Use fatal() rather than
746         abort().
747
748         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): New.
749         (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2).
750         * config/i386/darwin.h (SUBTARGET_EXTRA_SPECS): Define %(darwin_crt2)
751         as empty.
752         * config/darwin.h (STARTFILE_SPEC): Use %(darwin_crt2) to possibly
753         link in crt2.o.
754         
755         * config/darwin.h (REAL_LIBGCC_SPEC): Link in shared libgcc depending
756         on -mmacosx-version-min setting.
757
758 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
759
760         PR 24840
761         * tree-vrp.c (infer_value_range): Return false if STMT is a
762         block terminator and its basic block has no successors.
763
764 2005-11-14  Mike Stump  <mrs@apple.com>
765
766         * config/i386/i386.c (override_options): -masm=intel isn't
767         supported on darwin.
768         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
769
770 2005-11-15  Joseph S. Myers  <joseph@codesourcery.com>
771
772         * crtstuff.c: Undefine gid_t, pid_t, rlim_t, ssize_t, uid_t and
773         vfork after including auto-host.h.
774
775 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
776
777         PR rtl-optimization/22002
778         * combine.c (distribute_notes): Detect cases where a reg dies
779         two or more times in a bb, including on the insn we are combining,
780         and place the death note on the correct range.
781
782 2005-11-14  Dale Johannesen  <dalej@apple.com>
783
784         * expmed.c (store_bit_field):  Add offset unconditionally for
785         memory targets.
786         (extract_bit_field):  Don't force extzv or extv operand into
787         a register if field is too big.
788
789 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
790
791         * config/arm/arm.c (pic_labelno): New.
792         (arm_load_pic_register): Use an UNSPEC_PIC_LABEL instead of a
793         LABEL_REF.  Pass only the labelno to PIC insns.
794         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
795         (arm_output_addr_const_extra): Handle UNSPEC_PIC_LABEL.
796         * arm.md (UNSPEC_PIC_LABEL): New constant.
797         (pic_add_dot_plus_four, pic_add_dot_plus_eight)
798         (tls_load_dot_plus_eight): Expect a labelno instead of a LABEL_REF.
799         Use the correct label prefix.
800
801 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
802
803         * config/arm/arm.c (legitimize_tls_address): Use correct rtx for
804         REQ_EQUIV note.
805
806 2005-11-14  Richard Earnshaw  <richard.earnshaw@arm.com>
807
808         * loop-invariant.c: Include tm_p.h.
809         * Makefile.in: Updated.
810
811 2005-11-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
812
813         * pa.c (store_reg): Revise generation of frame notes in large frames.
814         (set_reg_plus_d): Likewise.
815
816 2005-11-13  Andrew MacLeod  <amacleod@redhat.com>
817
818         PR tree-optimization/24709
819         * tree-ssa-operands.c (verify_imm_links): Increase limit for infinite
820         loop check.
821
822 2005-11-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
823
824         * gthr-posix95.h: Remove declaration of pthread_mutexattr_settype
825         and duplicate declaration of pthread_self.
826
827 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
828             Ian Lance Taylor  <ian@airs.com>
829
830         PR middle-end/24003
831         * calls.c (expand_call): If TARGET is a MEM and some part of the
832         argument area has been saved, force TARGET to a register.
833
834 2005-11-13  Razya Ladelsky <razya@il.ibm.com>
835
836         * ipa-prop.c (ipa_callsite_compute_param ): Removed obsolete type 
837         checking.
838
839 2005-11-13  Jason Merrill  <jason@redhat.com>
840
841         PR c++/22489
842         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
843         lazily declared methods.
844         (force_decl_die): Stop if forcing out the context already make a
845         DIE for the decl.
846         (force_type_die): Likewise.
847
848 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
849
850         PR middle-end/24820
851         * builtins.c (integer_valued_real_p): Add break in
852         REAL_CST having TREE_OVERFLOW set.
853
854 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
855
856         * tree-ssa-loop-ivopts.c (get_address_cost): Prevent splitting
857         addressing modes during calculation of costs.
858
859 2005-11-12  Eric Botcazou  <ebotcazou@adacore.com>
860
861         * function.c (assign_stack_local_1): Restrict sanity check
862         on frame size overflow to 32-bit and above platforms.
863
864 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
865
866         * config/cris/cris.h (LEGITIMIZE_RELOAD_ADDRESS): Define.
867         * config/cris/cris.c: Include reload.h.
868         (cris_initial_elimination_offset): New function.
869         * config/cris/cris-protos.h: (cris_initial_elimination_offset):
870         Prototype.
871
872 2005-11-12  Richard Guenther  <rguenther@suse.de>
873
874         * gcse.c (find_rtx_in_ldst): Handle NULL pre_ldst_table.
875
876 2005-11-12  Jan Hubicka  <jh@suse.cz>
877
878         * expr.c (expand_expr_real_1): <MAX_EXPR, MIN_EXPR>: Canonicalize
879         to compare against 0 when possible.
880
881 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
882
883         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
884         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
885         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
886         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
887         in the new order.
888
889 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
890
891         * recog.c (constrain_operands) <case 'g'>: For a match, require
892         that a non-register matches general_operand when strict >= 0.
893
894 2005-11-11  Steven Bosscher  <stevenb@suse.de>
895
896         * loop-invariant.c (move_loop_invariants): Fix a thinko in the
897         previous checkin.
898
899 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
900
901         * tree-ssa-dse.c (struct address_walk_data, memory_ssa_name_same)
902         (memory_address_same): New.
903         (dse_optimize_stmt): Call memory_address_same.
904
905 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
906
907         PR middle-end/24750
908         * reload.c (find_reloads_address_1) <case TRUNCATE, SIGN_EXTEND,
909         ZERO_EXTEND>: New cases.
910
911 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
912
913         * longlong.h (__clz_tab): Always provide.
914
915 2005-11-11  Steven Bosscher  <stevenb@suse.de>
916
917         PR 24265
918         * loop-invariant.c (may_assign_reg_p): Make sure a hard register
919         can be assigned to.
920         (find_invariant_insn): Do the cheapest check, may_assign_reg_p,
921         before check_maybe_invariant.
922         (move_invariant_reg): Use gen_move_insn instead of replacing
923         SET_DEST with the temporary for the invariant.
924         (move_loop_invariants): If checking is enabled, do internal
925         consistency checks after completing the pass.
926
927 2005-11-11  David Edelsohn  <edelsohn@gnu.org>
928
929         PR 24644
930         * common.opt (Wvolatile-register-var): New.
931         * varasm.c (make_decl_rtl): Only emit warning when option
932         specified.  Clarify warning message.
933         * doc/invoke.texi (Wvolatile-register-var): Document new option.
934
935         * doc/md.texi (copysign): Document standard named pattern.
936
937 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
938
939         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
940         bytes when align is 2.
941         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
942         by the first instruction of the loop.
943
944 2005-11-11  Jason Merrill  <jason@redhat.com>
945
946         PR c++/24686
947         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore 
948         the cleanup list.
949
950 2005-11-11  Zdenek Dvorak  <dvorakz@suse.cz>
951
952         PR rtl-optimization/22509
953         * local-alloc.c (memref_used_between_p): Check whether a function call
954         could not reference the memref.
955
956 2005-11-11  Ulrich Weigand  <uweigand@de.ibm.com>
957
958         * postreload.c (reload_cse_simplify_operands): Fix bug in sorting
959         algorithm so as to choose the best, not the worst, alternative.
960         Reset accumulated register class before processing next alternative.
961
962 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
963
964         PR target/24445
965         * calls.c (expand_call): Copy a return value to a plain register
966         if needed.
967
968 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
969
970         PR target/24778
971         * varasm.c (assemble_name): Recompute name only for transparent
972         aliases.
973
974 2005-11-10  Hans-Peter Nilsson  <hp@axis.com>
975
976         * tree-ssa-structalias.c (heapvar_lookup): Fix typo: stmt to from.
977
978 2005-11-04  Jeff Law  <law@redhat.com>
979
980         PR middle-end/23181
981         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Do not
982         perform reassociation if the parent statement will not die as
983         a result of the optimization.
984
985 2005-11-10  Daniel Berlin  <dberlin@dberlin.org>
986
987         * tree-ssa-alias.c (compute_may_aliases): Remove call to 
988         delete_old_heap_vars.
989         * tree-dfa.c (referenced_var_remove): Remove function.
990         * tree-ssa.c (init_tree_ssa): Call init_alias_heapvars.
991         (delete_tree_ssa): Remove call to delete_old_heapvars.
992         Add call to delete_alias_heapvars.
993         * tree-flow.h (referenced_var_remove): Remove prototype
994         (init_alias_heapvars): New prototype.
995         (delete_alias_heapvars): Ditto.
996         * Makefile.in (tree-ssa-structalias.o): Add
997         gt-tree-ssa-structalias.o
998         (GTFILES): Add tree-ssa-structalias.h and
999         tree-ssa-structalias.c.
1000         (s-gtype): Add gt-tree-ssa-structalias.h.
1001         * tree-ssa-structalias.c (heapvars): Remove.
1002         (oldheapvars): Remove.
1003         (heapvar_for_stmt): New variable.
1004         (heapvar_lookup): New function.
1005         (heapvar_insert): Ditto.
1006         (get_constraint_for): See if we have an old heapvar
1007         to reuse.
1008         (init_alias_heapvars): New function.
1009         (delete_alias_heapvars): Ditto.
1010         Add include of gt-tree-ssa-structalias.h.
1011
1012 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1013
1014         PR middle-end/22127
1015         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
1016
1017 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
1018
1019         * tree.c (int_fits_type_p): Only look at the base type
1020         if it has the same precision as the original type.
1021
1022 2005-11-10  Jakub Jelinek  <jakub@redhat.com>
1023
1024         PR other/4372
1025         * varasm.c (assemble_alias): Use %q+D in the error
1026         message instead of %J and %qD.
1027
1028 2005-11-10  Richard Guenther  <rguenther@suse.de>
1029
1030         * gcse.c (free_ldst_entry): Only free hashtable if
1031         it exists.
1032
1033 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1034
1035         * function.c (assign_stack_local_1): Issue an error message if
1036         the frame size overflows in the signed target arithmetics.
1037
1038 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1039
1040         * tree.c (build_qualified_type): Chain the new type to the original
1041         type's TYPE_NEXT_PTR_TO or TYPE_NEXT_REF_TO linked lists if it is
1042         a POINTER_TYPE or a REFERENCE_TYPE respectively.
1043         (build_pointer_type_for_mode): Only return unqualified types.
1044         (build_reference_type_for_mode): Likewise.
1045
1046 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
1047
1048         * Makefile.in (gnucompare): Do comparison of all files using one of
1049         the chosen methods and only afterwards decide if just warning should
1050         be issued or comparison failure raised.
1051
1052 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1053
1054         * ifcvt.c (noce_get_alt_condition): Use prev_nonnote_insn.
1055         (noce_try_abs): Negate if the comparison is reversed.
1056         Look only one instruction backwards for a REG_EQUAL note.
1057
1058 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
1059
1060         PR other/4372
1061         * gthr-dce.h, gthr-posix.h, gthr-posix95.h, gthr-solaris.h,
1062         gthr-tpf.h: Define __gthrw.  For all identifiers that might
1063         be weak, introduce weakrefs or non-weak aliases with __gthrw,
1064         and prefix all uses with __ghtrw.
1065
1066 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
1067
1068         PR other/4372
1069         * tree.h (IDENTIFIER_TRANSPARENT_ALIAS): New.
1070         (TREE_DEPRECATED): Adjust comment.  Check for a DECL.
1071         * c-common.c (handle_weakref_attribute): New.
1072         (c_common_attribute_table): Add weakref.
1073         * configure.ac (HAVE_GAS_WEAKREF): Check for weakref support
1074         in the assembler.
1075         * configure, config.in: Rebuilt.
1076         * defaults.h (ASM_OUTPUT_WEAKREF): Define if HAVE_GAS_WEAKREF.
1077         * doc/extend.texi: Document weakref attribute.
1078         * varasm.c (ultimate_transparent_alias_target): New
1079         (assemble_name): Use it.
1080         (weak_finish_1): Split out of...
1081         (weak_finish): ... and deal with weakrefs in...
1082         (weakref_targets): ... new list.
1083         (globalize_decl): Clean up weakref_targets.
1084         (do_assemble_alias): Handle weakrefs.
1085         (finish_aliases_1): Do not reject weakrefs to external symbols.
1086         (assemble_alias): Handle weakrefs.
1087
1088 2005-11-09  Richard Guenther  <rguenther@suse.de>
1089
1090         PR tree-optimization/24716
1091         * tree-scalar-evolution.c (analyze_evolution_in_loop): Use
1092         t_bool to track results from follow_ssa_edge.
1093
1094 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1095
1096         * final.c (force_source_line): New global variable.
1097         (final_scan_insn): Set it to true instead of clearing last_filename.
1098         (notice_source_line): Return true if force_source_line is true,
1099         unless source info is absent.
1100
1101 2005-11-09  Andrew Pinski  <pinskia@physics.uc.edu>
1102
1103         PR c/24644
1104         * dwarf2-out.c (add_name_and_src_coords_attributes): Don't add
1105         a linkage name for a variable if it a register variable.
1106         * c-decl.c (grokdeclarator): Global register variables
1107         should be set as PUBLIC.
1108
1109 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1110
1111         PR 24624
1112         * config/s390/s390.c (struct s390_frame_layout): New fields 
1113         first_save_gpr_slot and last_save_gpr_slot.
1114         (cfun_grps_save_area_size, s390_frame_info, s390_emit_prologue,  
1115         s390_emit_epilogue, s390_initial_elimination_offset): Replaced 
1116         first_save_gpr and last_save_gpr with the _slot variants.
1117         (s390_register_info): Calculate first_save_gpr_slot and 
1118         last_save_gpr_slot using regs_ever_live.
1119
1120 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1121
1122         PR 24623
1123         * config/s390/s390.c (s390_regs_ever_clobbered): Only save live eh regs
1124         for a function containing a landing pad.
1125
1126 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1127
1128         PR 24034
1129         * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
1130         is live afterwards.
1131
1132 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
1133
1134         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
1135         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
1136
1137 2005-11-09  Nathan Sidwell  <nathan@codesourcery.com>
1138
1139         Add ms2 support
1140         * config/ms1/ms1.md (UNSPEC_BLOCKAGE, UNSPEC_EI, UNSPEC_DI): New
1141         constants.
1142         (call,load,store): New insn types.
1143         (mem_access, branch_access): Adjust reservation conditions.
1144         (define_delay): Adjust condition.
1145         (decrement_and_branch_until_zero): Allow for ms2.  Set branch
1146         type.
1147         (*decrement_and_rbanch_until_zero_no_clobber): Allow for ms2.
1148         (*movqi_internal,*movsi_internal,*movsf_internal): Use load,store
1149         insn type.
1150         (call_internal, call_value_internal, return_internal,
1151         return_interrupt_internal, eh_return_internal, indirect_jump,
1152         tablejump): Set call insn type.
1153         (blockage, ei, di): Use appropriate unspec const.
1154         * config/ms1/ms1.c (ms1_flag_delayed_branch): New.
1155         (ms1_get_attr_type): Adjust to give load & store types.
1156         (ms1_final_prescan_insn): Adjust for new insn types.  Don't look
1157         backwards past a barrier.
1158         (ms1_override_options): Accept ms2 arch.  Copy and reset delayed
1159         branch scheduling.
1160         (struct branch_info, struct label_info): New.
1161         (ms1_labels): New.
1162         (ms1_add_branches, ms1_check_delay_slot, ms1_reorg_hazard): New.
1163         (ms1_machine_reorg): New.
1164         (TARGET_MACHINE_DEPENDENT_REORG): Override.
1165         * config/ms1/crtn.asm: Add nop for ms2 JAL hazard.
1166         * config/ms1/ms1.h (processor_type): Add PROCESSOR_MS2.
1167         (ASM_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Add ms2.
1168         (TARGET_MS2): New.
1169
1170 2005-11-09  Per Bothner  <per@bothner.com>
1171             Uros Bizjak  <uros@kss-loka.si>
1172         
1173         PR c/24101
1174         * toplev.c (process_options): Initialize debug_hooks early
1175         in case lang_hooks.post_options ends up calling a debug_hook.
1176
1177 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
1178
1179         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
1180         DBX_REGISTER_NUMBER being contiguous.
1181
1182 2005-11-08  James A. Morrison  <phython@gcc.gnu.org>
1183             Diego Novillo  <dnovillo@redhat.com>
1184
1185         PR 23046
1186         * tree-vrp.c (register_edge_assert_for): Do not register
1187         always-false predicates.
1188
1189 2005-11-08  Devang Patel <dpatel@apple.com>
1190
1191         PR tree-optimization/23115
1192         * tree-if-conv.c (find_phi_replacement_condition): Check domninated_by
1193         relation.
1194
1195 2005-11-08  Joseph S. Myers  <joseph@codesourcery.com>
1196
1197         * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include
1198         -mcpu=440.
1199
1200 2005-11-08  Daniel Berlin  <dberlin@dberlin.org>
1201
1202         Fix PR tree-optimization/23382
1203
1204         * tree-ssa-alias.c (compute_may_aliases): Call
1205         delete_old_heap_vars.
1206         * tree-dfa.c (referenced_var_remove): New function.
1207         * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars.
1208         * tree-flow.h (referenced_var_remove): Add prototype.
1209         (delete_old_heap_vars): Ditto.
1210         * tree-ssa-structalias.c (heapvars): New variable.
1211         (oldheapvars): Ditto.
1212         (get_constraint_for): Put heap vars on heapvars list.
1213         (delete_old_heap_vars): New function.
1214         
1215 2005-11-08  Jason Merrill  <jason@redhat.com>
1216
1217         * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK.
1218
1219 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
1220
1221         PR target/19340
1222         * reg-stack.c (reg_to_stack): Update register liveness also
1223         for flag_sched2_use_traces.
1224
1225 2005-11-08  Alan Modra  <amodra@bigpond.net.au>
1226
1227         PR target/23704
1228         * config/rs6000/rs6000.c (rs6000_handle_option <OPT_m64>): Don't
1229         override prior explicit -mno-powerpc-gfxopt.
1230
1231 2005-11-07  Eric Botcazou  <ebotcazou@adacore.com>
1232
1233         * expmed.c (extract_bit_field): Do not use insv/extv/extzv patterns
1234         if the bitsize is zero.
1235         * doc/md.texi (Standard Pattern Names): Document it.
1236
1237         * config/ia64/ia64.c (ia64_pass_by_reference): Delete.
1238         (TARGET_PASS_BY_REFERENCE): Likewise.
1239
1240 2005-11-07  Ian Lance Taylor  <ian@airs.com>
1241
1242         PR rtl-optimization/24683
1243         * config/i386/i386.c (legitimize_pic_address): If constant operand
1244         to PLUS is too large, put it in a register.
1245
1246 2005-11-07  Jie Zhang  <jie.zhang@analog.com>
1247
1248         * configure.ac: Enable checking assembler dwarf2 support for bfin
1249         target.
1250         * configure: Regenerate.
1251
1252 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
1253
1254         PR target/24230
1255
1256         * config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
1257         gen_easy_vector_constant_add_self): Delete.
1258         (vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
1259         New.
1260         (output_vec_const_move): Use gen_easy_altivec_constant.
1261         (rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
1262         * config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
1263         (easy_vector_constant_add_self): Rewritten.
1264         * config/rs6000/rs6000-protos.h (easy_vector_splat_const,
1265         easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
1266         (easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
1267         * config/rs6000/altivec.md (easy_vector_constant_add_self splitters):
1268         Macroize and adjust for the other changes.
1269
1270 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
1271
1272         PR c/24599
1273
1274         * c-typeck.c (build_c_cast): Try using a shared constant, and see
1275         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
1276
1277 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
1278
1279         PR rtl-optimization/23567
1280         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
1281         (noce_process_if_block): Don't do any optimizations except
1282         if (cond) x = x; if !set_b and write into orig_x may trap
1283         or fault.  Remove the MEM_READONLY_P check.
1284
1285 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
1286
1287         PR 24670
1288         * tree-vrp.c (fix_equivalence_set): New.
1289         (extract_range_from_assert): Call it.
1290
1291 2005-11-05  Ian Lance Taylor  <ian@airs.com>
1292
1293         PR target/22432
1294         * combine.c (apply_distributive_law): Don't distribute across a
1295         vector mode subreg.
1296
1297 2005-11-05  Kazu Hirata  <kazu@codesourcery.com>
1298
1299         * c-typeck.c, config/i386/netware.h, config/m32c/cond.md,
1300         config/ms1/ms1.h, config/rs6000/predicates.md,
1301         config/s390/s390.c, params.def, postreload-gcse.c,
1302         tree-flow-inline.h, tree-ssa-operands.c, tree-vectorizer.c,
1303         tree-vrp.c, tree.c: Fix comment typos.
1304         * doc/invoke.texi: Fix typos.
1305
1306 2005-11-05  Sebastian Pop  <pop@cri.ensmp.fr>
1307
1308         * lambda-code.c (lambda_transform_legal_p): Use DDR_NUM_DIST_VECTS
1309         for testing whether the data_dependence_relation contains distance
1310         vectors.  Iterate over all distance vectors of the ddr.
1311         * lambda.h: Define a vec of lambda_vector pointers.
1312         * tree-data-ref.c (dump_data_dependence_relation,
1313         dump_data_dependence_direction): Iterate over all distance and
1314         direction vectors of the ddr.
1315         (initialize_data_dependence_relation): Initialize DDR_DIR_VECTS and
1316         DDR_DIST_VECTS.
1317         (build_classic_dist_vector, build_classic_dir_vector): Push a set
1318         of distance/direction vectors instead of a single one.
1319         * tree-data-ref.h (dir_vects, dist_vects): Replace dir/dist 
1320         lambda_vectors with a vec of lambda_vectors.
1321         (DDR_DIR_VECT, DDR_DIST_VECT): Redefined as operations on vec.
1322         (DDR_DIR_VECTS, DDR_DIST_VECTS, DDR_NUM_DIR_VECTS,
1323         DDR_NUM_DIST_VECTS): New.
1324         * tree-loop-linear.c (gather_interchange_stats): Test for the
1325         existence of distance vectors only after having checked that there
1326         is a dependence.  Iterate over all distance vectors of the ddr.
1327         (linear_transform_loops): Use dump_data_dependence_relation.
1328         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): Test for
1329         distance vectors using DDR_NUM_DIST_VECTS.  Iterate over all the
1330         distance vectors of the ddr.
1331
1332 2005-11-05  Bernd Schmidt  <bernd.schmidt@analog.com>
1333
1334         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
1335         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
1336         IS_INTHANDLER; all callers changed.
1337         (n_regs_saved_by_prologue): Take interrupt handler attributes into
1338         account.
1339         (do_link, do_unlink): New argument ALL; all callers changed.
1340         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
1341         If function isn't leaf, save and restore all registers.
1342         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
1343         exception handler.
1344
1345 2005-11-05  Jan Hubicka  <jh@suse.cz>
1346
1347         PR rtl-optimization/23490
1348         * doc/invoke.texi (max-predicted-iterations, max-cse-insns,
1349         max-flow-memory-location): Document.
1350         * flow.c: Include params.h
1351         (MAX_MEM_SET_LIST_LEN): Kill.
1352         (add_to_mem_set_list): Use new param.
1353         * cse.c (cse_basic_block): Replace 1000 by new param.
1354         * params.def (PARAM_MAX_PREDICTED_ITERATIONS, PARAM_MAX_CSE_INSNS,
1355         PARAM_MAX_FLOW_MEMORY_LOCATIONS): New.
1356         * predict.c (predict_loops): Use new param.
1357         * predict.def (MAX_PRED_LOOP_ITERATIONS): Remove.
1358
1359         * ipa-inline.c (cgraph_decide_inlining_of_small_function, 
1360         cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1361         Do not hold memory returned by cgraph_node_name across other call.
1362
1363 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
1364
1365         PR target/23424
1366         * config/cris/predicates.md ("cris_bdap_sign_extend_operand"):
1367         Disable.
1368
1369 2005-11-04  Jeff Law  <law@redhat.com>
1370
1371         PR/21883
1372         * doc/invoke.texi: Document max-jump-thread-duplication-stmts PARAM.
1373         * tree-ssa-dom.c: Include params.h.
1374         (thread_across_edge): If there are too many statements in the
1375         target block, then do not thread through it.
1376         * Makefile.in (tree-ssa-dom.o): Depend on $(PARAMS_H).
1377         * params.def (PARAM_MAX_JUMP_THREAD_DUPLICATION_STMTS): New PARAM.
1378
1379 2005-11-03  Diego Novillo  <dnovillo@redhat.com>
1380
1381         PR 24627
1382         * tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Use
1383         TODO_update_ssa instead of TODO_update_ssa_no_phi.
1384
1385 2005-11-04  Sebastian Pop  <pop@cri.ensmp.fr>
1386
1387         PR/18595
1388         * tree-scalar-evolution.c (instantiate_parameters_1,
1389         instantiate_parameters, resolve_mixers): Compute the size of an
1390         expression to be instantiated and give up the instantiation if the
1391         size exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1392
1393 2005-11-04  Richard Guenther  <rguenther@suse.de>
1394
1395         * tree-flow.h (ref_contains_indirect_ref): Rename to
1396         array_ref_contains_indirect_ref.
1397         * tree-flow-inline.h (ref_contains_indirect_ref): Likewise.
1398         (array_ref_contains_indirect_ref): Make comment match the code
1399         and vice-versa.
1400         (ref_contains_array_ref): Likewise.
1401         * tree-ssa-structalias.c (find_func_aliases): Remove call to
1402         ref_contains_indirect_ref.
1403         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined):
1404         Rename calls to ref_contains_indirect_ref.
1405
1406 2005-11-04 Paul Brook  <paul@codesourcery.com>
1407
1408         * config/arm/arm.c (arm_load_pic_register): Pass extra reg to
1409         gen_pic_add_dot_plus_four and gen_pic_add_dot_plus_eight.
1410         (arm_call_tls_get_addr, legitimize_tls_address): Likewise.
1411         * config/arm/arm.md: Use match_operand in peephole input templates
1412         and match_dup in peephole output templates.
1413
1414 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
1415
1416         * config/arm/arm.c (arm_init_libfuncs): Use __aeabi_idiv and
1417         __aeabi_uidiv.
1418
1419 2005-11-04  Mark Mitchell  <mark@codesourcery.com>
1420             Daniel Jacobowitz  <dan@codesourcery.com>
1421
1422         * longlong.h (add_ssaaaa): Clobber condition code register
1423         in ARM version.
1424         (sub_ddmmss): Likewise.
1425         (umul_ppmm): Likewise.
1426
1427 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
1428             Paul Brook  <paul@codesourcery.com>
1429             Phil Blundell  <pb@reciva.com>
1430
1431         * configure.ac: Add test for ARM TLS support.
1432         * configure: Regenerated.
1433         * config/arm/arm-protos.h (legitimize_tls_address)
1434         (arm_tls_referenced_p, tls_mentioned_p)
1435         (arm_output_addr_const_extra): New prototypes.
1436         (thumb_legitimize_pic_address): Delete.
1437         * config/arm/arm.c: Include "gt-arm.h".
1438         (enum tls_reloc): New.
1439         (arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
1440         (pcrel_constant_p, get_tls_get_addr, arm_load_tp)
1441         (arm_call_tls_get_addr, legitimize_tls_address)
1442         (arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
1443         (arm_init_tls_builtins, arm_emit_tls_decoration)
1444         (arm_output_addr_const_extra): New functions.
1445         (TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
1446         (TARGET_HAVE_TLS): Define.
1447         (target_thread_pointer): New.
1448         (arm_override_options): Handle -mtp=.
1449         (legitimize_pic_address): Ignore UNSPECs.
1450         (arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
1451         relative symbols.
1452         (arm_legitimize_address, thumb_legitimize_address): Handle TLS.
1453         (tls_get_addr_libfunc): New variable.
1454         (symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
1455         (arm_init_builtins): Call arm_init_tls_builtins.
1456         (arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
1457         (arm_encode_section_info): Call default_encode_section_info.
1458         * config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
1459         (enum arm_tp_type): New.
1460         (target_thread_pointer): Add declaration.
1461         (LEGITIMATE_CONSTANT_P): Handle TLS.
1462         (LEGITIMATE_PIC_OPERAND_P): Handle TLS.
1463         (OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
1464         (enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
1465         * config/arm/arm.md: Add UNSPEC_TLS.
1466         (movsi): Handle TLS.
1467         (pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
1468         non-PIC.
1469         (tls_load_dot_plus_eight): New insn and a peephole to create it.
1470         (load_tp_hard, load_tp_soft): New insns.
1471         * arm.opt: Add -mtp=.
1472         * doc/invoke.texi (ARM Options): Document -mtp.
1473
1474 2005-11-04  Daniel Jacobowitz  <dan@codesourcery.com>
1475
1476         * config/arm/lib1funcs.asm: Don't include "libunwind.S".
1477         * config/arm/libunwind.S: Include "lib1funcs.asm".
1478         * config/arm/t-bpabi (LIB1ASMFUNCS): Remove _unwind.
1479         (LIB2ADDEH): Add libunwind.S.
1480         (LIB2ADDEHDEP): Add lib1funcs.asm.
1481         * mklibgcc.in: Handle asm files in libgcc_eh.a.
1482
1483 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1484
1485         PR fortran/18452
1486         * gcc/c.opt: Add a -lang-fortran option.
1487         * gcc/c-opts.c: Add a lang_fortran flag.
1488         (c_common_init_options): Handling the -lang-fortran option.
1489         (c_common_handle_option): Add a case for Fortran options in
1490         preprocessing. Remove cases for -ffixed-form and
1491         -ffixed-line-length. Add a case for -lang-fortran.
1492
1493 2005-11-03  David Edelsohn  <edelsohn@gnu.org>
1494
1495         * config/rs6000/rs6000.c: Include params.h
1496         (optimization_options): Set max-grow-copy-bb-insns default to 16.
1497         (bdesc_2arg): Delete vpkuhss and vpkuwss.
1498         * config/rs6000/altivec.md (UNSPEC_VPKUHSS): Delete.
1499         (UNSPEC_VPKUWSS): Delete.
1500         (altivec_vpkuhss): Delete.
1501         (altivec_vpkuwss): Delete.
1502         * config/rs6000/rs6000.md (plus_eqsi): Remove optimize_size from
1503         final condition.
1504         (neg_eq0<mode>): Remove final condition.
1505         (neg_eq<mode>): Remove condition and split-condition.
1506
1507 2005-11-04  Alan Modra  <amodra@bigpond.net.au>
1508
1509         * config/rs6000/rs6000.c (output_toc): Make "offset" HOST_WIDE_INT.
1510         Use associated print macros.
1511
1512 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
1513
1514         PR c++/17964
1515         * diagnostic.c (diagnostic_set_info_translated): New function.
1516         (diagnostic_set_info): Use it.  Add comment.
1517         * diagnostic.h (diagnostic_set_info_translated): Declare.
1518
1519 2005-11-03  Eric Botcazou  <ebotcazou@adacore.com>
1520
1521         * dwarf2asm.c (dw2_force_const_mem): Add new parameter 'public'.
1522         On USE_LINKONCE_INDIRECT platforms, build a DECL_ONE_ONLY indirect
1523         reference only if 'public' is true.
1524         (dw2_output_indirect_constant_1): On USE_LINKONCE_INDIRECT platforms,
1525         emit the .hidden directive only if the indirect reference is public.
1526         (dw2_asm_output_encoded_addr_rtx): Add new parameter 'public'.
1527         Pass it to dw2_force_const_mem.
1528         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): New param 'public'.
1529         * dwarf2out.c (output_cfi): Adjust calls to above function.
1530         (output_call_frame_info): Likewise.
1531         * except.c (output_ttype): Pass TREE_PUBLIC of the type_info object
1532         as 'public' argument to dw2_asm_output_encoded_addr_rtx.
1533
1534 2005-11-03  Zdenek Dvorak  <dvorakz@suse.cz>
1535
1536         PR tree-optimization/24483
1537         * tree-ssa-loop-ivopts.c (aff_combination_add_elt): Move rest
1538         field to elts if possible.
1539
1540 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
1541
1542         PR middle-end/23155
1543         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
1544         CONSTRUCTOR.
1545
1546 2005-11-03  Daniel Berlin  <dberlin@dberlin.org>
1547
1548         Fix PR tree-optimization/24351
1549
1550         * tree-ssa-structalias.c (struct variable_info): Add
1551         collapsed_into.
1552         (get_varinfo_fc): New function to follow collapsing.
1553         (new_var_info): Set collapsed_to to NULL.
1554         (dump_constraint): Follow collapsing.
1555         (build_constraint_graph): Handle collapsing.
1556         (do_simple_structure_copy): Return false if something bad
1557         happened.
1558         (collapse_rest_of_var): New function.
1559         (do_structure_copy): Collapse if do_simple_structure_copy returns
1560         false.
1561         
1562 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
1563
1564         PR middle-end/24589
1565         * gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
1566         expressions to a statement list instead of gimplifying them.
1567
1568 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1569
1570         PR rtl-optimization/23585
1571         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
1572         that can't trap plus a constant integer, if the mode has zero size.
1573
1574 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
1575
1576         PR target/24620
1577         * config/s390/s390.md ("*insv<mode>_reg_imm"): Accept any CONST_INT
1578         as operand 2.
1579         ("*insv<mode>_reg_extimm"): Likewise.
1580
1581 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
1582
1583         PR c/24329
1584         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
1585         c_common_type_for_mode returns an unnamed type.
1586
1587 2005-11-02  Richard Henderson  <rth@redhat.com>
1588
1589         PR target/9350
1590         PR target/24374
1591         * dwarf2out.c (dwarf2out_reg_save_reg): New.
1592         (dwarf2out_frame_debug_expr): Return after dwarf_handle_frame_unspec.
1593         * function.c (assign_parms): Use calls.internal_arg_pointer.
1594         (expand_main_function): Remove FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN
1595         code.
1596         * target-def.h (TARGET_INTERNAL_ARG_POINTER): New.
1597         (TARGET_CALLS): Add it.
1598         * target.h (struct gcc_target): Add calls.internal_arg_pointer.
1599         * targhooks.c (default_internal_arg_pointer): New.
1600         * targhooks.h (default_internal_arg_pointer): Declare.
1601         * tree.h (dwarf2out_reg_save_reg): Declare.
1602         * doc/tm.texi (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Remove.
1603         * config/i386/i386.c (dbx_register_map): Add return column.
1604         (dbx64_register_map, svr4_dbx_register_map): Likewise.
1605         (TARGET_INTERNAL_ARG_POINTER, ix86_internal_arg_pointer): New.
1606         (TARGET_DWARF_HANDLE_FRAME_UNSPEC, ix86_dwarf_handle_frame_unspec): New.
1607         (ix86_function_ok_for_sibcall): Disable if force_align_arg_pointer.
1608         (ix86_save_reg): Save force_align_arg_pointer.
1609         (ix86_emit_save_regs): Make regno unsigned.
1610         (ix86_emit_save_regs_using_mov): Likewise.
1611         (ix86_expand_prologue): Handle force_align_arg_pointer.
1612         (ix86_expand_epilogue): Likewise.
1613         * config/i386/i386.h: (dbx_register_map): Update.
1614         (dbx64_register_map, svr4_dbx_register_map): Update.
1615         (struct machine_function): Add force_align_arg_pointer.
1616         * config/i386/i386.md (UNSPEC_REG_SAVE, UNSPEC_DEF_CFA): New.
1617         (UNSPEC_TP, UNSPEC_TLS_GD, UNSPEC_TLS_LD_BASE): Renumber.
1618         (TARGET_PUSH_MEMORY peepholes): Disable if RTX_FRAME_RELATED_P.
1619
1620 2005-11-02  Jan Hubicka  <jh@suse.cz>
1621
1622         PR target/23303
1623         * i386.md: Add peep2 for simplyfing array accesses.
1624
1625 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
1626
1627         PR target/24615
1628         * config/s390/s390-protos.h (s390_decompose_shift_count): Declare.
1629         * config/s390/s390.c (s390_decompose_shift_count): New function.
1630         (s390_extra_constraint_str) ['Y']: Use s390_decompose_shift_count.
1631         (print_shift_count_operand): Use s390_decompose_shift_count.
1632         * config/s390/predicates.md ("setmem_operand", "shift_count_operand"):
1633         Use s390_decompose_shift_count.  Do not accept any non-base hard regs.
1634
1635 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
1636
1637         PR target/24600
1638         * loop.c (loop_givs_rescan): Use force_operand to expand
1639         complex GIVs.
1640
1641 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
1642
1643         PR 22429
1644         * fold-const.c (build_range_check): Use unsigned when signed
1645         overflow is undefined also.  If etype is subtype, make sure that
1646         the subtraction is in the supertype.
1647
1648 2005-11-02  Richard Henderson  <rth@redhat.com>
1649
1650         PR target/24178
1651         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
1652         by MEM_ALIGN.
1653
1654 2005-11-01  Richard Henderson  <rth@redhat.com>
1655
1656         PR 21518
1657         * loop.c (scan_loop): Do not propagate computations to a hard
1658         register destination with SMALL_REGISTER_CLASSES.
1659
1660 2005-11-01  Joseph S. Myers  <joseph@codesourcery.com>
1661
1662         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not add extra
1663         costs for MULT inside PLUS or MINUS.
1664
1665 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
1666
1667         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Add a byte of padding.
1668         (TRAMPOLINE_SIZE): Round up to 60.
1669         * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Likewise.
1670
1671 2005-10-31  James E. Wilson  <wilson@specifix.com>
1672
1673         PR debug/24444
1674         * dwarf2out.c (convert_cfa_to_loc_list): Put inside DWARF2_UNWIND_INFO
1675         ifdef.  Put ifdefs around call in gen_subprogram_die.
1676         (compute_frame_pointer_to_cfa_displacement): Likewise.
1677         (gen_subprogram_die): Restore old code for when DWARF2_UNWIND_INFO is
1678         not defined.
1679         
1680         PR rtl-optimization/17356
1681         *  cfgrtl.c (purge_dead_edges): Undo last change.  In EDGE_EH code,
1682         add check for CALL_INSN if EDGE_ABRNOMAL_CALL true.
1683
1684 2005-10-31  Jan Hubicka  <jh@suse.cz>
1685
1686         PR middle-end/24093
1687         * cgraph.c (cgraph_clone_edge, cgraph_clone_node): Watch negative
1688
1689         PR target/20928
1690         * i386.c (legitimize_pic_address): Deal with large immediates.
1691
1692         PR profile/20815
1693         * coverage.c (coverage_checksum_string): Fix code to stip random seeds
1694         from symbol names while computing checkup.
1695
1696         PR profile/24487
1697         * predict.c (predict_loops): Do not estimate more than
1698         MAX_PRED_LOOP_ITERATIONS in PRED_LOOP_ITERATIONS heuristic.
1699         * predict.def (MAX_PRED_LOOP_ITERATIONS): Define.
1700
1701 2005-10-31  Andrew MacLeod  <amacleod@redhat.com>
1702         
1703         PR tree-optimization/19097
1704         * tree-ssa-operands.c (correct_use_link): Don't look for modified stmts.
1705
1706 2005-10-31  J"orn Rennecke <joern.rennecke@st.com>
1707
1708         * optabs.c (expand_unop): Take TRULY_NOOP_TRUNCATION into account.
1709
1710 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
1711
1712         PR middle-end/23492
1713         * tree-inline.c (setup_one_parameter): If the init_stmt
1714         is NULL, don't insert the statement.
1715
1716 2005-10-30  Jan Hubicka  <jh@suse.cz>
1717
1718         PR tree-optimization/24172
1719         * tree-inline.c (copy_body_r): Unshare the substituted value first.
1720
1721 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
1722
1723         * config/mmix/mmix.c (mmix_intval): Correct handling of DFmode
1724         constants for hosts with long != 32 bits.
1725
1726 2005-10-28  Andreas Krebbel <krebbel1@de.ibm.com>
1727
1728         PR middle-end/24093
1729         * ipa-inline.c (craph_decide_recursive_inlining): Fix return value.
1730
1731 2005-10-28  Aldy Hernandez  <aldyh@redhat.com>
1732
1733         * config/ms1/ms1.h (TARGET_MS1_64_001): New.
1734         (TARGET_MS1_16_002): New.
1735         (TARGET_MS1_16_003): New.
1736
1737         * config/ms1/ms1.md ("decrement_and_branch_until_zero"): Rewrite.
1738         ("*decrement_and_branch_until_zero_no_clobber"): New.
1739         Add corresponding splitter for decrement_and_branch_until_zero
1740         instruction.
1741         Key all decrement_and_branch_until_zero patterns off of
1742         TARGET_MS1_16_003.
1743
1744 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
1745
1746         PR middle-end/24362
1747         * tree-complex.c (extract_component): Treat RESULT_DECL
1748         like the rest of the decls.
1749
1750 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
1751
1752         * config/ia64/ia64.c (ia64_output_function_profiler): Emit an
1753         indirect call to _mcount if the function needs a static chain.
1754
1755 2005-10-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1756             Caroline Tice  <ctice@apple.com>
1757
1758         PR rtl-optimization/24460
1759         * dwarf2out.c (have_switched_text_sections): New boolean variable.
1760         (dwarf2out_switch_text_section): Set it to true instead of
1761         incrementing separate_line_info_table_in_use.
1762         (output_loc_list): Additionally test have_switched_text_sections.
1763         (output_ranges): Likewise.
1764         (dwarf2out_finish): Likewise.
1765         * varasm.c (assemble_start_function): Do not call
1766         insert_section_boundary_note.
1767         (assemble_end_function): If flag_reorder_blocks_and_partition,
1768         switch to the function's section before emitting the .size directive.
1769         * bb-reorder.c (insert_section_boundary_note): Staticify.
1770         (rest_of_handle_reorder_blocks): Call insert_section_boundary_note.
1771         * output.h (insert_section_boundary_note): Delete.
1772
1773 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
1774
1775         PR c/23103
1776         * c-format.c (check_format_types): Use lang_hooks.types_compatible_p
1777         instead of pointer equality when comparing types.
1778
1779 2005-10-24  James E. Wilson  <wilson@specifix.com>
1780
1781         * sched-deps.c (flush_pending_lists): Pass 1 not 0 in first two
1782         add_dependence_list_and_free calls.
1783
1784 2005-10-24  Steven Bosscher  <stevenb@suse.de>
1785
1786         * contrib.texi: Add the names of the LLNL folks who donated
1787         Cray pointer support for gfortran.
1788
1789 2005-10-24  Steven Bosscher  <stevenb@suse.de>
1790
1791         PR tree-optimization/24225
1792         * profile.c (branch_prob): Look from end to start through a
1793         basic block when looking for a locus.
1794
1795 2005-10-24  Richard Henderson  <rth@redhat.com>
1796
1797         * pa.c (store_reg_modify): Set RTX_FRAME_RELATED_P on each set in
1798         parallel.
1799         (hppa_expand_prologue): Likewise.
1800
1801 2005-10-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1802
1803         * pa-linux.h (NO_PROFILE_COUNTERS): Delete define.
1804         (NO_DEFERRED_PROFILE_COUNTERS): Define.
1805         * pa.h (NO_PROFILE_COUNTERS): Define.
1806         * pa.c (NO_DEFERRED_PROFILE_COUNTERS): Define if not defined.
1807         (funcdef_nos): New vector to hold label numbers of deferred profile
1808         counters.
1809         (output_deferred_profile_counters): New function.
1810         (hppa_profile_hook): Push label number onto funcdef_nos.
1811         (pa_hpux_file_end): Call output_deferred_profile_counters if
1812         NO_DEFERRED_PROFILE_COUNTERS is false.
1813
1814         * pa-protos.h (get_deferred_plabel): New prototype.
1815         * pa.c (get_plabel): Rename to get_deferred_plabel.  Return plabel.
1816         Make global.
1817         (output_call): Adjust calls.
1818
1819 2005-10-24  Alan Modra  <amodra@bigpond.net.au>
1820
1821         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Explain
1822         peculiarity of GOT/TOC section usage.
1823
1824 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
1825
1826         PR objc/24435
1827          * c-common.c (constant_string_class_name): Add documentation.
1828
1829 2005-10-23  Kaz Kojima  <kkojima@gcc.gnu.org>
1830
1831         PR target/23832
1832         * recog.c (peephole2_optimize): Increment peep2_current_count
1833         only when the slot is empty.
1834
1835 2005-10-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1836
1837         PR ada/23957
1838         * except.c (output_function_exception_table): Call
1839         assemble_external_libcall if we need a personality function.
1840
1841 2005-10-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1842
1843         PR rtl-optimization/24460
1844         * bb-reorder.c (fix_crossing_unconditional_branches): Do not
1845         set the basic block for barriers.
1846
1847 2005-10-21  Janis Johnson  <janis187@us.ibm.com>
1848
1849         * var-tracking.c (vt_initialize): Initialize post.
1850
1851 2005-10-21  Devang Patel  <dpatel@apple.com>
1852
1853         PR/24220
1854         * c-common.c (vector_types_convertible_p): Check vector element type.
1855         
1856 2005-10-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1857
1858         * config/sh/sh.c (prepare_move_operands): Handle the address
1859         constant which is a tls symbolic address plus a constant.
1860
1861 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1862
1863         PR driver/24473
1864         * gcc.c (main): Use the correct counter for erroring out
1865         about mulitple files.
1866
1867 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
1868
1869         PR target/24465
1870         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
1871         use r2 for 64-bit tls .got access.
1872
1873 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
1874
1875         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
1876         TRUTH_OR_EXPR.
1877
1878 2005-10-20  Steven Bosscher  <stevenb@suse.de>
1879
1880         PR tree-optimization/24307
1881         * tree-cfg.c (tree_find_edge_insert_loc): Handle naked RETURN_EXPR.
1882
1883 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
1884
1885         PR middle-end/24295
1886         * cgraphunit.c (cgraph_varpool_remove_unreferenced_decls): Mark
1887         alias targets.
1888         * varasm.c (find_decl_and_mark_needed): After cgraph global info
1889         is ready, stop marking functions, but still mark variables.
1890
1891 2005-10-20  Richard Guenther  <rguenther@suse.de>
1892
1893         PR c++/24439
1894         * fold-const.c (invert_truthvalue): Handle COND_EXPR with
1895         void type operands.
1896
1897 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1898
1899         PR rtl-optimization/23585
1900         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
1901         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
1902         (may_trap_p_1): New predicate extracted from...
1903         (may_trap_p): ... here.  Invoke may_trap_p_1.
1904         (may_trap_or_fault_p): New predicate.
1905         * rtl.h (may_trap_or_fault_p): Declare it.
1906         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
1907         instead of may_trap_p.
1908         (steal_delay_list_from_fallthrough): Likewise.
1909         (fill_simple_delay_slots): Likewise.
1910         (fill_slots_from_thread): Likewise.
1911         * function.c (pad_to_arg_alignment): Rework comment about
1912         SPARC_STACK_BOUNDARY_HACK.
1913         * config/sparc/sparc.h: Likewise.
1914
1915 2005-10-19  Adrian Straetling  <straetling@de.ibm.com>
1916
1917         * config/s390/s390.c (s390_expand_insv): New.
1918         * config/s390/s390-protos.h (s390_expand_insv): Declare.
1919         * config/s390/s390.md ("UNSPEC_SETHIGH"): Rename to "UNSPEC_ICM".
1920         ("icm_hi"): Remove mode attribute.
1921         ("*sethigh<mode><mode>"): Rewrite to "sethighpart<mode>".
1922         Adjust all uses.
1923         ("*extracthi", "*extractqi"): Remove.
1924         (extv<mode>", "*extzv<mode>"): New.
1925         ("insv", "*insv<mode>_mem_reg", "*insvdi_mem_reghigh",
1926         "*insv<mode>_reg_imm", "*insv<mode>_reg_extimm"): New.
1927
1928 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1929
1930         * cfgexpand.c (discover_nonconstant_array_refs_r,
1931         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
1932         (tree_expand_cfg): Call discover_nonconstant_array_refs.
1933         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
1934         discover_nonconstant_array_refs.
1935
1936 2005-10-19  Steven Bosscher  <stevenb@suse.de>
1937
1938         PR c/23228
1939         * c-decl.c (pop_scope): Don't warn about an unused variable
1940         if it is marked with TREE_NO_WARNING.
1941         (duplicate_decls): Set TREE_NO_WARNING if olddecl and newdecl
1942         somenow mismatch and olddecl is to be replaced.
1943
1944 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1945
1946         PR middle-end/23199
1947         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
1948         whether registers live on the edge can be saved/restored.
1949
1950 2005-10-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1951
1952         * config/sh/sh.c (fixup_mova): Skip notes.
1953
1954 2005-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1955
1956         * config/s390/s390-protos.h (s390_hard_regno_rename_ok): Add prototype.
1957         * config/s390/s390.c (s390_hard_regno_rename_ok): New function.
1958         (s390_can_eliminate): Handle BASE_REGNUM elimination.
1959         (s390_initial_elimination_offset): Likewise.
1960         (s390_conditional_register_usage): BASE_REGNUM is no longer a fixed
1961         register on TARGET_ZARCH targets.
1962         * config/s390/s390.h (HARD_REGNO_RENAME_OK): Define
1963         (INITIAL_FRAME_POINTER_OFFSET): Remove.
1964         (REG_ALLOC_ORDER): Move BASE_REGNUM lower.
1965         (ELIMINABLE_REGS): Add BASE_REGNUM elimination rule.
1966
1967 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1968
1969         * config/s390/s390.md: Comment describing output modifiers updated.
1970         * config/s390/s390.c (print_operand): Likewise.
1971
1972 2005-10-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1973
1974         * config/s390/s390.c (override_options): Added check for -mstack-size
1975         64k limitation.
1976         * doc/invoke.texi: Mention that limit in the documenation.
1977
1978 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
1979
1980         PR #19672
1981         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
1982
1983 2005-10-18  Daniel Berlin <dberlin@dberlin.org>
1984
1985         Fix PR tree-optimization/24231
1986
1987         * tree-ssa-pre.c (try_look_through_load): Skip abnormal phi names
1988         (compute_avail): Ditto.
1989
1990 2005-10-18  Richard Henderson  <rth@redhat.com>
1991
1992         PR target/24428
1993         * config/i386/i386.c (legitimate_constant_p): Check
1994         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
1995         if LABEL_REF.
1996         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
1997         (legitimate_pic_address_disp_p): Reorg CONST checking to make
1998         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
1999         directly.
2000         (print_operand_address): Likewise.
2001         * config/i386/predicates.md (x86_64_immediate_operand): Test
2002         SYMBOL_REF_TLS_MODEL properly inside CONST.
2003         (x86_64_zext_immediate_operand): Likewise.
2004         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
2005         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
2006         * config/i386/i386-protos.h: Remove predicates.md entries.
2007
2008 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
2009
2010         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
2011         Check that elements of TYPE_METHODS are FUNCTION_DECLs.
2012
2013 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
2014             Ian Lance Taylor <ian@airs.com>
2015
2016         PR middle-end/23522
2017         * fold-const.c (fold_widened_comparison): Do not allow range based
2018         constant folding when right operand cannot be unwidened.
2019
2020 2005-10-17  Richard Henderson  <rth@redhat.com>
2021
2022         * builtins.c (expand_builtin_synchronize): Build a new-style asm
2023         with a memory clobber.
2024
2025 2005-10-17  James E Wilson  <wilson@specifix.com>
2026
2027         PR rtl-optimization/17356
2028         * cfgrtl.c (purge_dead_edges): Check for EDGE_ABNORMAL_CALL before
2029         checking for EDGE_EH.
2030
2031 2005-10-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2032
2033         * config/sparc/sparc.c (function_arg_slotno): In 64-bit mode, align
2034         the slot on an even boundary for any type with 16-byte alignment.
2035
2036 2005-10-17  Hans-Peter Nilsson  <hp@axis.com>
2037
2038         PR target/23424
2039         * md.texi (Modifiers) <%>: Clarify that % doesn't work
2040         after register allocation.
2041
2042 2005-10-17  DJ Delorie  <dj@redhat.com>
2043
2044         * config/m32c/m32c.c (m32c_pushm_popm): Don't mark epilogue insns
2045         as frame related.
2046
2047 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
2048
2049         PR c++/22551
2050         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
2051         overflow flags.
2052
2053 2005-10-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2054
2055         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
2056         to 2 if it's already non-zero.
2057         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
2058         is set and warn about it if flag_schedule_insns is 1.
2059
2060 2005-10-17  Paul Woegerer  <paul.woegerer@nsc.com>
2061
2062         * config/crx/crx.md: Compare-and-branch instructions need to
2063         invalidate CC.
2064
2065 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
2066
2067         PR target/24315
2068         * config/i386/i386.md (*pushdi2_rex64 splitter)
2069         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
2070         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
2071         flow2 pass only when (optimize > 0 && flag_peephole2).
2072
2073 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
2074
2075         PR driver/22544
2076         * gcc.c (have_c): New static variable.
2077         (have_o): Likewise.
2078         (process_command): Remove declation of have_c.
2079         Set have_o to 1 when handling -o.
2080         (main): Add a fatel error if there are multiple
2081         files specified and -o and -c/-S is passed witout
2082         -combine or multiple languages.
2083
2084 2005-10-16  Daniel Berlin  <dberlin@dberlin.org>
2085
2086         Fix PR tree-optimization/22444
2087         * tree-ssa-alias.c (compute_flow_insensitive_aliasing):
2088         Assert that we don't hit something with subvars.
2089         (setup_pointers_and_addressables): Don't add things with subvars,
2090         because we'll already process the subvars for aliasing purposes.
2091
2092 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
2093
2094         PR target/23424
2095         * config/cris/cris.md ("*mov_side<mode>", "*mov_sidesisf")
2096         ("*mov_side<mode>_mem", "*mov_sidesisf_mem", "*clear_side<mode>")
2097         ("*ext_sideqihi", "*ext_side<mode>si", "*op_side<mode>")
2098         ("*op_swap_side<mode>", "*extopqihi_side", "*extop<mode>si_side")
2099         ("*extopqihi_swap_side", "*extop<mode>si_swap_side"): Have separate,
2100         swapped, alternatives for the R constraint.
2101
2102         PR middle-end/24341
2103         * builtins.c (get_builtin_sync_mode): Make unlimited
2104         mode_for_size request.
2105
2106 2005-10-15  Richard Henderson  <rth@redhat.com>
2107
2108         * gimplify.c (gimplify_var_or_parm_decl): Split out from ...
2109         (gimplify_expr): ... here.
2110         (gimplify_compound_lval): Use it in initial scan loop.  Allow
2111         fb_lvalue in base expression.
2112
2113 2005-10-15  Richard Henderson  <rth@redhat.com>
2114
2115         PR 23714
2116         * builtins.c (expand_builtin_trap): Export.
2117         * expr.h (expand_builtin_trap): Declare.
2118         * expr.c (expand_assignment): Emit a trap for integral offsets 
2119         from registers that weren't reduced to bitpos.
2120
2121         * tree-cfg.c (mark_array_ref_addressable_1): Remove.
2122         (mark_array_ref_addressable): Remove.
2123         * tree-flow.h (mark_array_ref_addressable): Remove.
2124         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Don't call it.
2125
2126 2005-10-15  James E Wilson  <wilson@specifix.com>
2127
2128         PR target/24232
2129         * sched-deps.c (add_dependence_list): New arg UNCOND.  Fix all callers.
2130         (add_dependence_list_and_free): Likewise.
2131         (sched_analyze_2, case MEM): Delete sched_insns_conditions_mutex_p
2132         call.
2133
2134 2005-10-15  Diego Novillo  <dnovillo@redhat.com>
2135
2136         PR 23141
2137         PR 23142
2138         * tree-vrp.c (vrp_meet): Fix the intersection of equivalence
2139         sets VR0->EQUIV and VR1->EQUIV when meeting a range and an
2140         anti-range.
2141         (vrp_visit_phi_node): Only prevent infinite iterations when
2142         the previous result and the new result are both VR_RANGEs.
2143
2144 2005-10-15  Ranjit Mathew  <rmathew@gcc.gnu.org>
2145
2146         * tree-into-ssa.c (mark_def_sites): Correct minor typo in
2147         function comment.
2148
2149 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2150
2151         PR c/23439
2152         * c-parser.c (c_parser_for_statement): Use location of RID_FOR
2153         to initialize loc.
2154
2155 2005-10-14  Per Bothner  <per@bothner.com>
2156
2157         PR preprocessor/21250
2158         * c-ppoutput.c (print_line): Print internal line 0 as 1.
2159
2160 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
2161
2162         PR c++/22551
2163         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
2164         overflow flags.  Refactor some conditionals.
2165
2166 2005-10-13  Andrew Pinski  <pinskia@physics.uc.edu>
2167
2168         PR tree-opt/21304
2169         * tree-dfa.c (add_referenced_var): Only look at decls which
2170         have TREE_CONSTANT or TREE_READONLY set instead of if
2171         !TREE_PUBLIC or !TREE_CONSTANT.
2172
2173 2005-10-13  James E Wilson  <wilson@specifix.com>
2174
2175         * doc/invoke.texi: For -x, add f95-cpp-input.
2176         * doc/install.texi: For --enable-languages doc, change f95 to fortran.
2177
2178 2005-10-12  Sebastian Pop  <pop@cri.ensmp.fr>
2179
2180         PR tree-optimization/24262
2181         * tree-data-ref.c (analyze_offset_expr): Check that init is invariant
2182         in loop all the time.
2183
2184 2005-10-12  Richard Henderson  <rth@redhat.com>
2185
2186         PR c/24255
2187         * tree.h (DECL_TRANSPARENT_UNION): Remove.
2188         * function.c (assign_parm_find_data_types): Don't support it.
2189         * print-tree.c (print_node): Likewise.
2190         * c-common.c (handle_transparent_union_attribute): Likewise.
2191         Use build_duplicate_type.
2192         * tree-inline.c (remap_type_1): Split out of remap_type;
2193         properly remap aggregate fields.
2194         (build_duplicate_type): New.
2195         * doc/extend.texi (Variable Attributes): Remove documentation
2196         for transparent_union.
2197
2198 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2199
2200         PR target/24284
2201         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
2202         (gen_stack_pointer_dec): Likewise.
2203
2204 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
2205
2206         PR middle-end/21275
2207         PR middle-end/21766
2208         * target.h (struct gcc_target): Add valid_dllimport_attribute_p
2209         target hook.
2210         (struct cxx): Add adjust_class_at_definition target hook.
2211         * target-def.h: (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): New define,
2212         defaulting to hook_bool_tree_true. Add to TARGET_INITIALIZER
2213         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): New define, defaulting to 
2214         hook_void_tree. Add to TARGET_CXX.
2215         * tree.h (struct decl_with_vis): Rename non_addr_const_p field to
2216         dllimport_flag.
2217         (DECL_NON_ADDR_CONSTANT_P): Replace with DECL_DLLIMPORT_P macro.
2218         * tree.c (merge_dllimport_decl_attributes): Check DECL_DLLIMPORT_P
2219         instead of attribute. Check for dllexport override.  Warn if
2220         inconsistent dll linkage. Don't lose old dllimport if decl has
2221         had address referenced.   Tweak lookup of dllimport atribute.  
2222         (handle_dll_attribute): Check targetm.valid_dllimport_attribute_p
2223         for target specific rules.  Don't add dllimport attribute if
2224         DECL_DECLARED_INLINE_P.  Set DECL_DLLIMPORT_P when adding
2225         dllimport attribute. 
2226         (staticp): Replace DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P.
2227         * varasm.c (initializer_constant_valid_p): Replace
2228         DECL_NON_ADDR_CONSTANT_P with DECL_DLLIMPORT_P
2229
2230         PR target/21801
2231         PR target/23589
2232         * config.gcc (i[34567]86-*-cygwin*): Add winnt-cxx.o to 
2233         'cxx_target_objs', winnt-stubs,o to 'extra_objs'.
2234         (i[34567]86-*-mingw32*): Likewise.
2235
2236         * doc/tm.texi (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Document.
2237         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Document.
2238                         
2239         * config/i386/winnt.c (i386_pe_dllimport_p): Factor out
2240         C++-specific code. Change return value to bool. 
2241         (i386_pe_dllimport_p): Likewise.
2242         (associated_type): Simplify and make language-independent
2243         (i386_pe_encode_section_info): Replace override of ambiguous
2244         dllimport symbol refs with a gcc_assert.
2245         (i386_pe_valid_dllimport_attribute_p): Define.
2246         * config/i386/winnt-cxx.c: New file. Define C++ versions of
2247         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p,
2248         i386_pe_adjust_class_at_definition.
2249         * config/i386/winnt-stubs.c: New file. Define stub versions of
2250         lang-specific functions.
2251         * config/i386/i386-protos.h: Declare winnt-[cxx|stubs].c functions
2252         i386_pe_type_dllimport_p, i386_pe_type_dllexport_p, 
2253         i386_pe_adjust_class_at_definition.
2254         (i386_pe_valid_dllimport_attribute_p): Declare. 
2255         * config/i386/cygming.h (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Define.
2256         (TARGET_CXX_ADJUST_CLASS_AT_DEFINITION): Define.
2257         * config/i386/t-cygming: Add rules for winnt-cxx.o, winnt-stubs.o.
2258
2259         PR target/19704
2260         * config/i386/i386.c (ix86_function_ok_for_sibcall): Replace test for
2261         dllimport attribute with test of DECL_DLLIMPORT_P.
2262
2263 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
2264
2265         * combine.c (make_extraction): Correct offset computation.
2266
2267 2005-10-12  Hans-Peter Nilsson  <hp@axis.com>
2268
2269         * config/cris/t-linux (LIMITS_H_TEST): Define.
2270
2271 2005-10-12  Richard Henderson  <rth@redhat.com>
2272
2273         PR rtl-opt/23324
2274         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
2275
2276 2005-10-12  Richard Guenther  <rguenther@suse.de>
2277
2278         * Makefile.in (CGRAPH_H): Depend on $(TREE_H).
2279
2280 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
2281
2282         PR c++/19964
2283         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
2284         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
2285         type.
2286
2287 2005-10-12  Richard Guenther  <rguenther@suse.de>
2288
2289         PR c++/23799
2290         * varasm.c (output_constant): Correct typo from previous
2291         patch by DJ.
2292
2293 2005-10-11  Ian Lance Taylor  <ian@airs.com>
2294
2295         PR rtl-optimization/13931
2296         * combine.c: Revert patch of 2003-05-14, and:
2297         (try_combine): Only set elim_i1 and elim_i2 if the destination is
2298         completely killed in the appropriate insn.
2299         (distribute_notes): Don't skip multiple hard register test for
2300         elim_i1 and elim_i2.
2301
2302 2005-10-11  Richard Henderson  <rth@redhat.com>
2303
2304         PR c/24255
2305         * c-typeck.c (convert_for_assignment): Use build_constructor_single
2306         to initialize a transparent union instead of a nop_expr.
2307
2308 2005-10-11  Richard Henderson  <rth@redhat.com>
2309
2310         * Makefile.in (tree-ssa-dce.o): Depend on SCEV_H.
2311         * tree-ssa-dce.c: Include tree-scalar-evolution.h.
2312         (tree_ssa_dce_loop): Call scev_reset.
2313
2314         PR tree-opt/24300
2315         * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H.
2316         * tree-ssa-dce.c: Include cfgloop.h.
2317         (tree_ssa_dce_loop, pass_dce_loop): New.
2318         * tree-pass.h (pass_dce_loop): Declare it.
2319         * passes.c (init_optimization_passes): Use it.
2320
2321 2005-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2322
2323         PR middle-end/24263 
2324         * convert.c (convert_to_real): Revert 2005-10-05 patch.
2325         Only apply the optimization for rounding builtins if the inner
2326         cast is also an extension.
2327
2328 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
2329
2330         PR tree-opt/23946
2331         * tree-ssa-ccp.c (execute_fold_all_builtins): Call
2332         mark_new_vars_to_rename instead of update_stmt.
2333
2334 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
2335
2336         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
2337
2338 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
2339
2340         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
2341         for setting MMX register to 0 rather than mmx.
2342
2343 2005-10-10  Steve Ellcey  <sje@cup.hp.com>
2344
2345         PR target/12098
2346         * configure.ac: Move gas check from mips specific case to common case.
2347         Do check for GNU as for mips*-*-* and *-*-hpux* targets.
2348         * configure: Regenerate
2349         * doc/install.texi: Update.
2350
2351 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2352
2353         PR target/24284
2354         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
2355
2356 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
2357
2358         * gcc.c (do_spec_1): Accept numeric characters in file name
2359         suffixes.
2360
2361 2005-10-10  Nick Clifton  <nickc@redhat.com>
2362
2363         * config/arm/arm.c: Remove extraneous whitespace.  Remove comment
2364         describing the deleted arm_gen_rotated_half_load function.
2365
2366 2005-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2367
2368         * config/sh/sh.c (emit_fpu_switch): Set TREE_PUBLIC for
2369         __fpscr_values.
2370
2371 2005-10-09  Daniel Jacobowitz  <dan@codesourcery.com>
2372
2373         * config.gcc (arm*-*-linux*): Remove redundant extra_parts and
2374         gnu_ld assignments.
2375         * config/arm/t-linux-eabi (LIB1ASMFUNCS)
2376         (EXTRA_MULTILIB_PARTS): Define.
2377         * config/arm/linux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
2378         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
2379         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Move to...
2380         * config/arm/uclinux-elf.h (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC)
2381         (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC)
2382         (LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): ... here.
2383
2384 2005-10-09  Zdenek Dvorak  <dvorakz@suse.cz>
2385
2386         PR tree-optimization/24226
2387         * tree-cfg.c (remove_bb): Clean up unreachable loops.
2388         * tree-flow.h (free_numbers_of_iterations_estimates_loop): Declare.
2389         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates_loop):
2390         Export.
2391
2392 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
2393
2394         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
2395
2396 2005-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
2397
2398         PR target/24136
2399         * config/rs6000/darwin.md (movdf_low_si): Remove early clobber.
2400         Rewrite for no need for the early clobber.
2401
2402 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
2403
2404         Merge from csl-arm-branch:
2405         2005-09-07  Paul Brook  <paul@codesourcery.com>
2406         * config/arm/linux-eabi.h (SUBTARGET_EXTRA_LINK_SPEC): Prepend a
2407         space to string.
2408
2409         2005-04-30  Paul Brook  <paul@codesourcery.com>
2410         * config/arm/bpabi.h (TARGET_DEFAULT): Define.
2411         * config/arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Define.
2412
2413         2005-03-07  Daniel Jacobowitz  <dan@codesourcery.com>
2414         * config/arm/arm.c (arm_all_abis): Add aapcs-linux.
2415         (arm_override_options): Use TARGET_AAPCS_BASED.
2416         * config/arm/arm.h (enum arm_abi_type): Add ARM_ABI_AAPCS_LINUX.
2417         (PTRDIFF_TYPE): Use int for AAPCS.
2418         (DEFAULT_SHORT_ENUMS): Use false for aapcs-linux.
2419         * config/arm/linux-eabi.h (ARM_DEFAULT_ABI, WCHAR_TYPE): Define.
2420         (DEFAULT_SHORT_ENUMS): Delete.
2421         * doc/invoke.texi (ARM Options): Document -mabi=aapcs-linux.
2422
2423         2004-12-15  Daniel Jacobowitz  <dan@codesourcery.com>
2424         * config/arm/arm.h (DEFAULT_SHORT_ENUMS): Wrap in #ifndef.
2425         * config/arm/linux-eabi.h (DEFAULT_SHORT_ENUMS): Define to 0.
2426         * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS): Set to -fPIC.
2427
2428         2004-12-03  Mark Mitchell  <mark@codesourcery.com>
2429         * config/arm/linux-eabi.h (LIBGCC_SPEC): Do not define.
2430
2431         2004-11-22  Mark Mitchell  <mark@codesourcery.com>
2432         * config.gcc (arm*-*-linux-gnueabi): Use __cxa_atexit.
2433  
2434         2004-11-19  Mark Mitchell  <mark@codesourcery.com>
2435         * config.gcc (arm*-*-linux-gnueabi): Add it.
2436         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Undefine it before
2437         redefining it.
2438         (TARGET_OS_CPP_BUILTINS): Likeiwse.
2439         * config/arm/linux-eabi.h: New file.
2440         * config/arm/linux-elf.h (LINUX_TARGET_INTERPRETER): New macro.
2441         (LINUX_TARET_LINK_SPEC): Likewise.
2442         (LINK_SPEC): Use it.
2443         * config/arm/t-linux-eabi: New file.
2444
2445 2005-10-08  Steven Bosscher  <stevenb@suse.de>
2446
2447         PR other/22202
2448         * params.def (PARAM_MAX_VARIABLE_EXPANSIONS): Remove superfluous
2449         spaces.
2450         (PARAM_SMS_DFA_HISTORY): Likewise.
2451
2452 2005-10-08  Kazu Hirata  <kazu@codesourcery.com>
2453
2454         PR middle-end/23150
2455         * calls.c (mem_overlaps_already_clobbered_arg_p): New.
2456         (load_register_parameters): Call it.
2457         (check_sibcall_argument_overlap_1): Likewise.
2458         (store_one_arg): Likewise.
2459
2460 2005-10-07  James E. Wilson  <wilson@specifix.com>
2461
2462         * config/ia64/vect.md (ashl<mode>3, ashr<mode>3, lshr<mode>3): Use
2463         DImode not VECINT24 for operand 2.
2464
2465         PR target/23644
2466         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
2467         -mtune-arch.
2468
2469         PR target/24193
2470         * config/ia64/ia64.md (movbi, movti_internal, gr_spill_internal,
2471         fr_spill): Use destination_operand for operand 0.
2472
2473 2005-10-07  DJ Delorie  <dj@redhat.com>
2474
2475         * varasm.c (output_constant): Limit error to expanding
2476         conversions.
2477
2478 2005-10-07  Richard Guenther  <rguenther@suse.de>
2479
2480         PR middle-end/24227
2481         * fold-const.c (fold_binary): Fix operand types during folding
2482         of X op (A, Y).  Evaluation order of the side-effects of
2483         X and A are frontend-defined, so ensure we honour that even for
2484         tcc_comparison class operands; eased by removing duplicate code.
2485
2486 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
2487
2488         * stor-layout.c (layout_type): Do not allow alignment of array
2489         elements to be greater than their size.
2490
2491 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
2492
2493         * config.host (hppa*-*-hpux*): Change out_host_hook_obj and
2494         host_xmake_file.
2495         (hppa*-*-linux*): Ditto.
2496         (ia64-*-hpux*): Add out_host_hook_obj and host_xmake_file.
2497         * config/host-hpux.c: New.
2498         * config/x-hpux: New.
2499         * config/pa/x-hpux: Remove.
2500         * config/pa/x-linux: Remove.
2501         * config/pa/pa-host.c: Remove.
2502
2503 2005-10-07  Jeff Law  <law@redhat.com>
2504
2505         * tree-ssa-dom.c (dom_opt_finalize_block): Fix conditions to
2506         determine whether or not to try and thread outgoing edges.
2507
2508 2005-10-07  David Edelsohn  <edelsohn@gnu.org>
2509
2510         * config/rs6000/rs6000.md (eqsi_power): New.
2511         (neg_eq0si): Add TARGET_POWER to final condition.
2512         (neg_eqsi): Same.
2513
2514 2005-10-06  Richard Henderson  <rth@redhat.com>
2515
2516         * config/rs6000/rs6000.c: Revert last change.
2517
2518 2005-10-06  Richard Henderson  <rth@redhat.com>
2519
2520         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): New.
2521         (TARGET_CANNOT_FORCE_CONST_MEM): Use it.
2522
2523 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
2524
2525         PR middle-end/22216
2526         PR middle-end/23651
2527         * cfgexpand.c (tree_expand_cfg): After expanding the functions, clear
2528         out return_label and naked_return_label.
2529
2530 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
2531         
2532         * tree-ssa-structalias.c (check_for_overlaps): Fix bug in last
2533         change.
2534
2535 2005-10-06  Richard Henderson  <rth@redhat.com>
2536
2537         PR tree-opt/22237
2538         * tree-inline.c (declare_return_variable): Handle modify_dest not
2539         being a DECL.
2540
2541 2005-10-06  Daniel Berlin  <dberlin@dberlin.org>
2542         
2543         Fix PR tree-optimization/22488
2544         * tree-ssa-structalias.c (check_for_overlaps): New function.
2545         (create_variable_info_for): Use it.
2546
2547 2005-10-06  Richard Henderson  <rth@redhat.com>
2548
2549         PR debug/24070
2550         * dwarf2out.c (lookup_filename): Return the result of maybe_emit_file.
2551         (dwarf2out_start_source_file): Print it.
2552
2553 2005-10-06  Geoffrey Keating  <geoffk@apple.com>
2554
2555         * config/t-slibgcc-darwin (SHLIB_MAPFILES): Use '+='.
2556
2557 2005-10-06  Richard Henderson  <rth@redhat.com>
2558
2559         PR 23706
2560         * mode-switching.c (optimize_mode_switching): Clear transp bit
2561         for block with incomming abnormal edges.
2562
2563         * config/sh/sh.c (fpscr_values, emit_fpu_switch): New.
2564         (fpscr_set_from_mem): Use them.
2565         * config/sh/sh.md (fpu_switch0, fpu_switch1): Remove.
2566         (fpscr postinc splitters): Rewrite as peephole2+split.
2567
2568 2005-10-06  David Edelsohn  <edelsohn@gnu.org>
2569
2570         * config/rs6000/rs6000.md (eq<mode>): Add !TARGET_POWER.
2571         (eq<mode>_compare): Same.
2572
2573 2005-10-06  Richard Guenther  <rguenther@suse.de>
2574
2575         PR tree-optimization/24238
2576         * tree-ssa-alias.c (find_used_portions): Handle RESULT_DECL.
2577
2578 2005-10-06  Daniel Jacobowitz  <dan@codesourcery.com>
2579
2580         * acinclude.m4 (gcc_AC_CHECK_TOOL): Handle environment variables
2581         here.  Use AC_PATH_PROG for environment variables instead of
2582         test -x.
2583         * configure.ac: Update calls to gcc_AC_CHECK_TOOL.  Use it for
2584         objdump also.
2585         * configure: Regenerated.
2586
2587 2005-10-06  Richard Earnshaw  <richard.earnshaw@arm.com>
2588
2589         PR target/23783
2590         * arm.md (call): If the address isn't a SYMBOL_REF or a register,
2591         then force it into a register.
2592         (call_value): Likewise.
2593
2594 2005-10-06  Richard Henderson  <rth@redhat.com>
2595
2596         PR 24049
2597         * passes.c (init_optimization_passes): Move pass_lower_vector_ssa
2598         under pass_vectorize.  Clear TODO_ggc_collect from the dce pass
2599         under pass_vectorize.
2600
2601 2005-10-05  Devang Patel  <dpatel@apple.com>
2602
2603         PR Debug/23205
2604         * dbxout.c (dbxout_symbol): Check DECL_RTL_SET_P, after
2605         handling constants. Check NAMESPACE_DECL context for constants.
2606         
2607 2005-10-05  Eric Christopher  <echristo@apple.com>
2608
2609         * doc/md.texi (Standard Names): Fix name of pushm1 pattern.
2610
2611 2005-10-05  Richard Henderson  <rth@redhat.com>
2612
2613         PR 23714
2614         * tree-cfg.c (mark_array_ref_addressable_1): New.
2615         (mark_array_ref_addressable): New.
2616         * tree-flow.h (mark_array_ref_addressable): Declare.
2617         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Use it.
2618
2619 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
2620
2621         PR middle-end/20606
2622         PR middle-end/24069
2623         * reload.c (subst_reloads): When adding a REG_LABEL to a
2624         jump instruction, also update JUMP_LABEL.
2625
2626 2005-10-05  David Edelsohn  <edelsohn@gnu.org>
2627
2628         * params.def (PARAM_MAX_GROW_COPY_BB_INSNS): New.
2629         * bb-reorder.c (copy_bb_p): Use it.
2630         * doc/invoke.texi (param table): Add max-grow-copy-bb-insn.
2631
2632 2005-10-05  Richard Henderson  <rth@redhat.com>
2633
2634         PR target/23602
2635         * toplev.c (process_options): Warn about unsupported combinations
2636         of unwind tables and omit-frame-pointer.
2637         * config/i386/i386.c (override_options): Similarly.  Enable
2638         accumulate-outgoing-args if not explicitly disabled.
2639
2640 2005-10-05  Steve Ellcey  <sje@cup.hp.com>
2641
2642         * vect.md (vec_initv2si): Fix typo of V2SF to V2SI.
2643         Handle big endian vs. small endian.
2644         (vec_initv2sf): Handle big endian vs. small endian.
2645         (*vec_extractv2sf_1): Ditto.
2646
2647 2005-10-05  Dale Johannesen  <dalej@apple.com>
2648
2649         * convert.c (convert_to_real):  Don't convert
2650         (float)floor(double d) to floorf((float)d).
2651
2652 2005-10-05  Daniel Jacobowitz  <dan@codesourcery.com>
2653
2654         * config/arm/arm.md (insv): Use gen_int_mode in more places.
2655
2656 2005-10-05  Andrew MacLeod  <amacleod@redhat.com>
2657
2658         PR tree-optimization/18587
2659         * tree-ssa-operands.c (struct opbuild_list_d, OPBUILD_LAST): Delete.
2660         (build_defs, build_uses, build_v_may_defs, build_v_must_defs,
2661         build_vuses): Change to VEC type.
2662         (opbuild_initialize_virtual, opbuild_initialize_real, opbuild_free,
2663         opbuild_num_elems, opbuild_append_real, opbuild_append_virtual,
2664         opbuild_first, opbuild_next, opbuild_elem_real, opbuild_elem_virtual,
2665         opbuild_elem_uid, opbuild_clear, opbuild_remove_elem): Delete.
2666         (get_name_decl): New.  Return DECL_UID of base variable.
2667         (operand_build_cmp): New.  qsort comparison routine.
2668         (operand_build_sort_virtual): New.  Sort virtual build vector.
2669         (init_ssa_operands, fini_ssa_operands): Use VEC routines.
2670         (FINALIZE_OPBUILD_BASE, FINALIZE_OPBUILD_ELEM): Use VEC_Index.
2671         (FINALIZE_BASE): Use get_name_decl.
2672         (finalize_ssa_defs, finalize_ssa_uses, cleanup_v_may_defs,
2673         finalize_ssa_v_may_defs, finalize_ssa_vuses, finalize_ssa_v_must_defs,
2674         (start_ssa_stmt_operands, append_def, append_use, append_vuse,
2675         append_v_may_def, append_v_must_def): Replace opbuild_* routines with
2676         direct VEC_* manipulations.
2677         (build_ssa_operands): Call operand_build_sort_virtual.
2678         (copy_virtual_operand, create_ssa_artficial_load_stmt,
2679         add_call_clobber_ops, add_call_read_ops): Replace opbuild_* routines
2680         with direct VEC_* manipulations.
2681         * tree-ssa-opfinalize.h (FINALIZE_FUNC): Replace opbuild_* routines
2682         with direct VEC manipulations.
2683
2684 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
2685
2686         PR tree-optimization/21419
2687         PR tree-optimization/24146
2688         PR tree-optimization/24151
2689
2690         * c-typeck.c (readonly_error): Handle USE being lv_asm.
2691         (build_asm_expr): Call it if outputs are read-only.
2692         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
2693
2694 2005-10-05  Billy Biggs  <billy.biggs@gmail.com>
2695             Paolo Bonzini  <bonzini@gnu.org>
2696
2697         PR target/23809
2698
2699         * doc/extend.texi (x86 Built-ins): Document that -msse and friends
2700         enable the instructions and not just the built-ins.
2701         * doc/invoke.texi (x86 Options): Likewise.
2702
2703 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
2704
2705         * config/i386/t-darwin (SHLIB_VERPFX): Fix typo.
2706
2707         * doc/invoke.texi (Option Summary): Correct spelling
2708         of -mmacosx-version-min.
2709
2710 2005-10-04  Devang Patel  <dpatel@apple.com>
2711
2712         * c-common.c (vector_types_convertible_p): Check TYPE_PRECISION for
2713         real types.
2714
2715 2005-10-04  Steve Ellcey  <sje@cup.hp.com>
2716
2717         * tree-vect-transform.c (vect_create_epilog_for_reduction):
2718         Use BYTES_BIG_ENDIAN instead of BITS_BIG_ENDIAN.
2719
2720 2005-10-04  Adrian Straetling  <straetling@de.ibm.com>
2721
2722         * config/s390/s390.md ("TDSI","DP"): New mode macros.
2723         ("TE","tg"): New mode attributes.
2724         ("sync_compare_and_swap<mode>"): Replace with a define_expand.
2725         ("sync_compare_and_swap<mode>_cc"): Replace GPR with TDSI.
2726         ("*sync_compare_and_swap<mode>_cc"): Replace with one pattern for
2727         dword_mode and one for GPRmode.
2728
2729 2005-10-04  Ian Lance Taylor  <ian@airs.com>
2730
2731         PR preprocessor/13726
2732         * c-ppoutput.c (cb_include): Add comments parameter, and print out
2733         any comments passed in.
2734
2735 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
2736
2737         * tree.c (annotate_with_file_line): Fix typo.
2738
2739 2005-10-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2740
2741         PR ada/19382
2742         * builtins.c (fold_builtin_memcmp): When constructing the pointer
2743         type used to access data in the inlined length == 1 case, use
2744         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
2745         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
2746
2747 2005-10-04  Uros Bizjak  <uros@kss-loka.si>
2748
2749         * config/i386/i386.h (TARGET_FISTTP): Enable also for
2750         TARGET_SSE3 and only for TARGET_80387.
2751         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1,
2752         (fix_trunc<mode>_i387_fisttp, fix_trunc<mode>_i387_fisttp_with_temp):
2753         Do not depend on TARGET_80387.
2754
2755 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
2756
2757         * tree.c (last_annotated_node): Change type to location_t*.
2758         (annotate_with_file_line): Reflect the change of
2759         last_annotated_node type.
2760
2761 2005-10-04  Richard Guenther  <rguenther@suse.de>
2762
2763         PR c/23576
2764         * c-decl.c (grokdeclarator): Don't write to fields
2765         of error_mark_node.
2766
2767 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
2768
2769         PR middle-end/23125
2770         * c-decl.c (finish_decl): Use set_user_assembler_name even for
2771         register variables.
2772         * varasm.c (make_decl_rtl): If a register variable does not
2773         have a set user assmbler name, error out.
2774         Decode the asmspec is now name+1 bypassing '*'.
2775
2776 2005-10-04  Steven Bosscher  <stevenb@suse.de>
2777
2778         PR tree-optimization/23049
2779         * tree-ssa-dom.c (thread_across_edge): Make sure that the condition
2780         of a COND_EXPR is folded before calling fold on the whole rhs of a
2781         conditional assignment.
2782         * doc/tree-ssa.texi: Update the GIMPLE grammar for a valid rhs to
2783         document that a COND_EXPR may appear there.
2784
2785 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
2786
2787         PR 23445
2788         * tree-vrp.c (extract_range_from_assert): If the new numeric
2789         range created out of the assertion contradicts the existing
2790         numeric range of the ASSERT_EXPR variable, make the new range
2791         varying.
2792
2793 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
2794
2795         * config/sh/sh.c (sh_register_move_cost): Add case for moving
2796         from T_REGS to FP register class.
2797
2798 2005-10-03  Richard Henderson  <rth@redhat.com>
2799
2800         PR 24135
2801         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
2802         before creating a new one.
2803
2804 2005-10-03  David Edelsohn  <edelsohn@gnu.org>
2805
2806         * config/rs6000/t-aix43 (LDFLAGS): New.
2807         * config/rs6000/t-aix52 (LDFLAGS): New.
2808
2809 2005-10-03  Ian Lance Taylor  <ian@airs.com>
2810
2811         * gimplify.c (find_single_pointer_decl_1): New static function.
2812         (find_single_pointer_decl): New static function.
2813         (internal_get_tmp_var): For a formal variable, set restrict base
2814         information if appropriate.
2815         * alias.c (find_base_decl): If a VAR_DECL has a restrict base,
2816         return it.
2817         * tree.h (DECL_BASED_ON_RESTRICT_P): Define.
2818         (DECL_GET_RESTRICT_BASE): Define.
2819         (SET_DECL_RESTRICT_BASE): Define.
2820         (decl_restrict_base_lookup): Declare.
2821         (decl_restrict_base_insert): Declare.
2822         (struct tree_decl_with_vis): Add based_on_restrict_p field.
2823         * tree.c (restrict_base_for_decl): New static variable.
2824         (init_ttree): Initialize restrict_base_for_decl.
2825         (copy_node_stat): Copy restrict base information.
2826         (decl_restrict_base_lookup): New function.
2827         (decl_restrict_base_insert): New function.
2828         (print_restrict_base_statistics): New static function.
2829         (dump_tree_statistics): Call print_restrict_base_statistics.
2830
2831 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
2832
2833         PR 24142
2834         * tree-vrp.c (vrp_meet): Fix call to range_includes_zero_p in
2835         case of anti-ranges.
2836
2837 2005-10-02  Andrew Pinski  <pinskia@physics.uc.edu>
2838
2839         PR c/18851
2840         * c-typeck.c (tagged_tu_seen): Rename to ...
2841         (tagged_tu_seen_cache): this and add val field.
2842         (comptypes): Move functional to comptypes_internal
2843         and free tagged_tu_seen.
2844         (comptypes_internal): New function and call comptypes_internal
2845         instead of comptypes. Speed up by sibcalling
2846         tagged_types_tu_compatible_p.
2847         (alloc_tagged_tu_seen): New function
2848         (free_all_tagged_tu_seen_up_to): New function.
2849         (tagged_types_tu_compatible_p): Return the val of the seen two
2850         types.
2851         Add that the two types are the same to tagged_tu_seen_base
2852         if they are and call comptypes_internal instead of comptypes.
2853         <case UNION_TYPE>: Speed up common type where the fields are
2854         in the same order.
2855         (function_types_compatible_p): Call comptypes_internal instead of
2856         comptypes.
2857         (type_lists_compatible_p): Likewise.
2858         (all functions): s/tagged_tu_seen/tagged_tu_seen_cache/.
2859
2860 2005-10-02  Matthias Klose  <doko@debian.org>
2861
2862         * doc/invoke.texi: Fix typo and speling error.
2863
2864 2005-10-01  Richard Henderson  <rth@redhat.com>
2865
2866         * tree-stdarg.c (execute_optimize_stdarg): Process PHI nodes too.
2867
2868 2005-10-01  Mark Mitchell  <mark@codesourcery.com>
2869
2870         * config/arm/unknown-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define
2871         using --start-group and --end-group.
2872
2873 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
2874
2875         * tree-vrp.c (value_inside_range, range_includes_zero_p): Add
2876         FIXME note regarding quirky semantics.
2877
2878 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
2879
2880         PR 24141
2881         * tree-vrp.c (vrp_meet): Clear VR0->EQUIV when building a
2882         non-null range as a last resort.
2883
2884 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
2885             Diego Novillo  <dnovillo@redhat.com>
2886
2887         PR 23604
2888         * tree-vrp.c (extract_range_from_assert): For !=
2889         assertions, only build an anti-range if LIMIT is a
2890         single-valued range.
2891
2892 2005-09-30  Richard Earnshaw  <richard.earnshaw@arm.com>
2893
2894         * arm.md (movqi): On thumb when optimizing, handle loading from
2895         memory by describing this as taking a subreg of a zero-extended load
2896         into an SImode register.
2897         (movhi): Likewise.
2898
2899 2005-09-30  Daniel Jacobowitz  <dan@codesourcery.com>
2900
2901         * reload1.c (merge_assigned_reloads): Do not change any
2902         RELOAD_FOR_OUTPUT_ADDRESS reloads.
2903
2904 2005-09-30  Geoffrey Keating  <geoffk@apple.com>
2905
2906         * Makefile.in (LIPO_FOR_TARGET): Define.
2907         (STRIP_FOR_TARGET): Define.
2908
2909         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Remove old symlinks
2910         before creating new ones.  Do symlinks before creating the actual
2911         targets.
2912
2913         * config/t-slibgcc-darwin (libgcc_s_%.dylib): Use --print-multi-lib
2914         to work out which multilibs are actually being built.
2915
2916 2005-09-30  Kazu Hirata  <kazu@codesourcery.com>
2917
2918         * tree-vect-transform.c, config/ms1/ms1.md,
2919         config/s390/s390.c, config/v850/v850.md: Fix comment typos.
2920         Follow spelling conventions.
2921         * doc/invoke.texi, doc/md.texi: Fix typos.
2922
2923 2005-09-30  Andrew Macleod  <amacleod@redat.com>
2924
2925         PR tree-optimization/21430
2926         * tree-ssa-operands.c (set_virtual_use_link): New. Link new virtual
2927         use operands, and set stmt pointer if need be.
2928         (FINALIZE_CORRECT_USE: New. Macro to call appropriate use fixup routine.
2929         tree-ssa-opfinalize.h (FINALIZE_FUNC): Call FINALIZE_CORRECT_USE if
2930         present.
2931
2932 2005-09-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2933
2934         PR middle-end/24053
2935         * stor-layout.c (set_sizetype): Set TYPE_MAIN_VARIANT of bitsizetype.
2936
2937 2005-09-29  Mark Mitchell  <mark@codesourcery.com>
2938
2939         * optabs.c (expand_binop): Initialize first_pass_p.
2940
2941 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
2942
2943         PR middle-end/24109
2944         * c-decl.c (c_write_global_declarations_1): If any
2945         wrapup_global_declaration_2 call returned true, restart the loop.
2946
2947 2005-09-29  Daniel Berlin  <dberlin@dberlin.org>
2948
2949         Fix PR tree-optimization/24117
2950         * tree-ssa-structalias.c (find_func_aliases): Strip nops
2951         before considering whether to use anyoffset.
2952
2953 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
2954
2955         Revert this patch:
2956
2957         2005-09-15  Paolo Bonzini  <bonzini@gnu.org>
2958
2959         * optabs.c (expand_binop): Use swap_commutative_operands_with_target
2960         to order operands.
2961         (swap_commutative_operands_with_target): New.
2962
2963 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
2964
2965         PR c/21419
2966         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
2967         read-only.
2968
2969 2005-09-29  Steven Bosscher  <stevenb@suse.de>
2970
2971         PR tree-optimization/23911
2972         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle REALPART_EXPR
2973         and IMAGPART_EXPR too.
2974
2975 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
2976
2977         PR 17886
2978         * expmed.c (expand_shift): Move logic to reverse rotation
2979         direction when  rotating by constants ...
2980         * optabs.c (expand_binop): ... here.
2981         * config/i386/i386.md (rotrdi3): Handle 32-bit mode.
2982         (ix86_rotrdi3): New pattern.
2983         (rotldi3): Handle 32-bit mode.
2984         (ix86_rotldi3): New pattern.
2985
2986 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
2987
2988         PR target/24102
2989         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
2990         check for numbers that need no bit twiddle.
2991
2992 2005-09-28  Geoffrey Keating  <geoffk@apple.com>
2993
2994         * config/rs6000/t-darwin8: Uncomment contents, allow -m64
2995         multilib to be built.
2996
2997         * Makefile.in: Export LIPO_FOR_TARGET, STRIP_FOR_TARGET.
2998         (stage1-start): Delete old libgcc and libunwind before moving
2999         anything into the stage directory.
3000         (stage2-start): Likewise.
3001         (stage3-start): Likewise.
3002         (stage4-start): Likewise.
3003         (stageprofile-start): Likewise.
3004         (stagefeedback-start): Likewise.
3005         * config.gcc (*-*-darwin*): Automatically use CPU-specific darwin.h
3006         header in tm_file and CPU-specific t-darwin in tmake_file.
3007         (i[34567]86-*-darwin*): Don't change tm_file.
3008         (powerpc-*-darwin*): Don't change tm_file or tmake_file.
3009         * config/darwin.h (REAL_LIBGCC_SPEC): Rewrite to use proper libgcc
3010         shared library stub for target OS version.
3011         * config/t-slibgcc-darwin (SHLIB_SOLINK): Delete.
3012         (SHLIB_LINK): Don't make SHLIB_SOLINK.
3013         (SHLIB_INSTALL): Don't install SHLIB_SOLINK.
3014         (libgcc_s.%.dylib): New.
3015         (LIBGCC): Define.
3016         (install-darwin-libgcc-stubs): New.
3017         (INSTALL_LIBGCC): New append.
3018         * config/i386/darwin-libgcc.10.4.ver: New.
3019         * config/i386/darwin-libgcc.10.5.ver: New.
3020         * config/i386/t-darwin: New.
3021         * config/rs6000/darwin-libgcc.10.4.ver: New.
3022         * config/rs6000/darwin-libgcc.10.5.ver: New.
3023         * config/rs6000/darwin.h (REAL_LIBGCC_SPEC): Delete.
3024         * config/rs6000/t-darwin (SHLIB_VERPFX): Define.
3025
3026 2005-09-28  Paul Brook  <paul@codesourcery.com>
3027
3028         * config/m68k/fpgnulib.c (__extendsfdf2, __truncdfsf2): Handle
3029         denormals.
3030
3031 2005-09-28  Richard Guenther  <rguenther@suse.de>
3032
3033         PR tree-optimization/23853
3034         * tree-vect-analyze.c (vect_compute_data_ref_alignment): Use
3035         host_integerp to verify misalignment value.
3036
3037 2005-09-28  Richard Henderson  <rth@redhat.com>
3038
3039         * builtins.c (get_builtin_sync_mode): New.
3040         (expand_builtin_sync_operation): Pass in mode argument.
3041         (expand_builtin_compare_and_swap): Likewise.
3042         (expand_builtin_lock_test_and_set): Likewise.
3043         (expand_builtin_lock_release): Likewise.
3044         (expand_builtin): Update to match.
3045
3046 2005-09-28  Nick Clifton  <nickc@redhat.com>
3047
3048         * config/v850/v850.h (GO_IF_LEGITIMATE_ADDRESS): Tidy up
3049         formatting.  Add check to PLUS case to ensure that the offset is
3050         within an acceptable range.
3051
3052         * config/v850/v850.md (casesi): Disable the generation of the
3053         switch pattern as it is not being handled properly at the moment.
3054
3055         * config/v850/lib1funcs.asm (___ucmpdi2): Correct jump instruction
3056         for when the high words are identical.
3057
3058 2005-09-27  Richard Henderson  <rth@redhat.com>
3059
3060         * pretty-print.c (pp_base_format): Fix typo for %>.
3061
3062 2005-09-27  Daniel Berlin  <dberlin@dberlin.org>
3063             Devang Patel  <dpatel@apple.com>
3064
3065         PR tree-optimization/23625
3066         * tree-flow-inline.h (bsi_after_labels): Remove, first statement is
3067         LABEL_EXPR, assertion check.
3068
3069 2005-09-27  J"orn Rennecke <joern.rennecke@st.com>
3070
3071         * optabs.c (no_conflict_move_test): Check if a result of a
3072         to-be-moved insn would be clobbered by an originally
3073         preceding insn.
3074
3075 2005-09-27  Jeff Law  <law@redhat.com>
3076
3077         * passes.c (init_optimization_passes): Replace copy propagation
3078         passes immediately after DOM with phi-only copy propagation
3079         pases.  Add phi-only copy propagation pass after first DOM pass.
3080         * tree-pass.h (pass_phi_only_copy_prop): Declare.
3081         * tree-ssa-copy.c (init_copy_prop): Accept new PHI_ONLY argument.
3082         If true, then mark all non-control statements with DONT_SIMULATE_AGAIN.
3083         (execute_copy_prop): Accept new PHI_ONLY argument.  Pass it along
3084         to init_copy_prop.  Callers updated.
3085         (do_phi_only_copy_prop): New function.
3086         (pass_phi_only_copy_prop): New pass descriptor.
3087
3088 2005-09-27  Nick Clifton  <nickc@redhat.com>
3089
3090         * libgcc2.c (__popcount_tab): Remove redundant prototype.
3091
3092 2005-09-26  Jason Merrill  <jason@redhat.com>
3093
3094         PR c++/13764
3095         * c-common.c (finish_fname_decls): Use append_to_statement_list_force.
3096
3097         * doc/invoke.texi: Clarify documentation of -fno-enforce-eh-specs.
3098
3099 2005-09-26  James E Wilson  <wilson@specifix.com>
3100
3101         * config/ia64/crtbegin.asm, config/ia64/crtend.asm: Remove glibc
3102         copyright.  Add gcc copyright plus libgcc exception.
3103         * config/ia64/crtfastmath.asm: Remove glibc copyright.  Add gcc
3104         copyright.
3105         * config/ia64/lib1funcs.asm: Add gcc copyright plus libgcc exception.
3106
3107 2005-09-26  Jeff Law  <law@redhat.com>
3108
3109         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Be more selective
3110         about when to iterate.
3111
3112 2005-09-23  Fariborz Jahanian <fjahanian@apple.com>
3113
3114         PR target/23847
3115         * config/rs6000/rs6000.c (rs6000_function_value): Parallel pattern
3116         for __complex__ double in -mcpu=G5 mode.
3117
3118 2005-09-26  Sebastian Pop  <pop@cri.ensmp.fr>
3119
3120         PR tree-optimization/23942
3121         * Makefile.in (SCEV_H): Depends on PARAMS_H.
3122         * tree-scalar-evolution.c: Include params.h.
3123         (t_bool): New enum.
3124         (follow_ssa_edge, follow_ssa_edge_in_rhs,
3125         follow_ssa_edge_in_condition_phi_branch,
3126         follow_ssa_edge_in_condition_phi, follow_ssa_edge_inner_loop_phi):
3127         Change return type to t_bool.  Use a parameter to limit the size of
3128         trees that are walked before stopping
3129         (analyze_evolution_in_loop): Initialize the limit to 0.
3130         (follow_ssa_edge): Give up by returning t_dont_know if the limit
3131         exceeds PARAM_SCEV_MAX_EXPR_SIZE.
3132
3133 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
3134
3135         PR middle-end/23831
3136         * simplify-rtx.c (simplify_immed_subreg) [MODE_INT]: Skip
3137         simplification if elem_bitsize > 2 * HOST_BITS_PER_WIDE_INT.
3138
3139 2005-09-26    Fariborz Jahanian <fjahanian@apple.com>
3140
3141         * combine.c (make_extraction): Check for valid use of subreg.
3142
3143 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
3144
3145         PR target/24055
3146         * config/i386/i386.md ("*fistdi2_1"): New pattern.
3147         ("*fist<mode>2_1"): Use only HImode and SImode register operands.
3148         ("fist<mode>2_with_temp"): Use only register operands.
3149
3150 2005-09-26  J"orn Rennecke <joern.rennecke@st.com>
3151
3152         * rtlanal.c (reg_used_between_p): Don't check for CLOBBERs in
3153         CALL_INSN_FUNCTION_USAGE.
3154
3155 2005-09-26  Richard Guenther  <rguenther@suse.de>
3156
3157         PR middle-end/15855
3158         * gcse.c: Include hashtab.h, define ldst entry hashtable.
3159         (pre_ldst_expr_hash, pre_ldst_expr_eq): New functions.
3160         (ldst_entry): Use the hashtable instead of list-walking.
3161         (find_rtx_in_ldst): Likewise.
3162         (free_ldst_entry): Free the hashtable.
3163         (compute_ld_motion_mems): Create the hashtable.
3164         (trim_ld_motion_mems): Remove entry from hashtable if
3165         removing it from list.
3166         (compute_store_table): Likewise^2.
3167         (store_motion): Free hashtable in case we did not see
3168         any stores.
3169
3170 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
3171
3172         * fold-const.c (fold_binary): Use op0 and op1 instead of arg0
3173         and arg1 if we are passing them to fold_build2.
3174
3175 2005-09-25  Dan Nicolaescu  <dann@ics.uci.edu>
3176
3177         PR 23828
3178         * config/i386/i386.c (ix86_function_regparm): Fix the test for
3179         a nested function.
3180
3181 2005-09-25  Richard Henderson  <rth@redhat.com>
3182
3183         * config/alpha/alpha.c (tls_symbolic_operand_1): Trust
3184         SYMBOL_REF_TLS_MODEL to be correct.
3185
3186 2005-09-24  Richard Henderson  <rth@redhat.com>
3187
3188         * ipa-type-escape.c (discover_unique_type): Remove dead code at
3189         end of function.  Reindent.
3190
3191 2005-09-24  Ian Lance Taylor  <ian@airs.com>
3192
3193         * convert.c (convert_to_integer): Don't test for ENUMERAL_TYPE in
3194         NEGATE_EXPR/BIT_NOT_EXPR case.
3195
3196 2005-09-24  Richard Henderson  <rth@redhat.com>
3197
3198         * c-common.c (handle_mode_attribute): When not modifying in place,
3199         create subtypes for enumerations.
3200         (sync_resolve_return): Use TYPE_MAIN_VARIANT.
3201         * gimplify.c (create_tmp_from_val): Likewise.
3202
3203 2005-09-24  Alexandre Oliva  <aoliva@redhat.com>
3204
3205         * config/i386/i386.md (*tls_global_dynamic_64,
3206         *tls_local_dynamic_base_64): Add missing mode to call.
3207         (tls_global_dynamic_64, tls_local_dynamic_base_64): Likewise.
3208
3209 2005-09-24  Jan Hubicka  <jh@suse.cz>
3210
3211         * cgraph.c (cgraph_clone_edge): Make the scale gcov_type.
3212         (cgraph_clone_node): Likewise.
3213         * cgraph.h (cgraph_clone_edge): Update prototype.
3214         (cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Remove
3215         duplicated prototypes; add updating argument.
3216         * cgraphunit.c (verify_cgraph_node): Verify that counts are non-negative.
3217         * ipa-inline.c (cgraph_clone_inlined_nodes): Allow clonning without
3218         updating profile.
3219         (cgraph_mark_inline_edge): Likewise.
3220         (cgraph_mark_inline): Update use of cgraph_mark_inline_edge.
3221         (cgraph_flatten_node): Likewise.
3222         (cgraph_decide_recursive_inlining): Likewise.
3223         (cgraph_decide_inlining_of_small_function): Likewise.
3224         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3225
3226 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
3227             Pete Steinmetz <steinmtz@us.ibm.com>
3228
3229         * config/rs6000/rs6000.md (neg-minus-mult): Set type to dmul.
3230         (rldic.): Set type to "compare".
3231         (rldicr.): Same.
3232         (movsf_hardfloat): Set type to mtjmpr for MTCTR/MTLR.  Set type to
3233         mfjmpr for MFCTR/MFLR.
3234         (movdf_hardfloat64): Same.
3235         (movdf_softfloat64): Same.  Correct order of store and move types.
3236         (movti_string): Set type to store_ux/load_ux.
3237         (load_multiple): Set type to load_ux.
3238         (store_multiple): Set type to store_ux.
3239         (movmemsi): Set type to store_ux.
3240         (output_cbranch direct_return): Set type to jmpreg.
3241         (stmw): Set type to store_ux.
3242         (lmw): Set type to load_ux.
3243         * config/rs6000/40x.md (ppc403-store): Increase latency to 2.
3244         * config/rs6000/440.md (ppc440-store): Increase latency to 6.
3245         * config/rs6000/603.md (ppc603-store): Occupy LSU for 2 cycles.
3246         * config/rs6000/6xx.md (ppc604-store): Increase latency to 3.
3247         * config/rs6000/mpc.md (mpccore-store): Increase latency to 2.
3248         * config/rs6000/rios1.md (rios1-store): Increase latency to 2.
3249         (rios1-fpstore): Increase latency to 3.
3250         * config/rs6000/rios2.md (rios2-store): Increase latency to 2.
3251         * config/rs6000/rs64.md (rs64a-store): Increase latency to 2.
3252
3253 2005-09-23  David Edelsohn  <edelsohn@gnu.org>
3254             Andrew Pinski  <pinskia@physics.uc.edu>
3255
3256         * config/rs6000/sync.md (sync_<fetchop_name>si_internal): Change
3257         operand2 constraint to "b".
3258         (sync_<fetchop_name>di_internal): Same.
3259         (sync_old_<fetchop_name>si_internal): Change operand3 constraint
3260         to "b".
3261         (sync_old_<fetchop_name>di_internal): Same.
3262         (sync_new_<fetchop_name>si_internal): Same.
3263         (sync_new_<fetchop_name>di_internal): Same.
3264
3265 2005-09-23  J"orn Rennecke <joern.rennecke@st.com>
3266
3267         PR middle-end/23991
3268         * final.c (insn_default_length, insn_min_length): In !HAVE_ATTR_length
3269         case, define as macros.
3270
3271         PR rtl-optimization/23837
3272         *  optabs.c (no_conflict_move_test): Don't set must_stay for a
3273         clobber / clobber match between dest and p->first.
3274
3275         * optabs.c (emit_libcall_block): Use no_conflict_move_test.
3276         (no_conflict_move_test): Update comments.
3277
3278 2005-09-22  Ranjit Mathew  <rmathew@gcc.gnu.org>
3279
3280         * doc/install.texi: Update URL for Jacks.
3281         * doc/sourcebuild.texi: Likewise.
3282
3283 2005-09-22  David Edelsohn  <edelsohn@gnu.org>
3284
3285         PR target/24007
3286         * config/rs6000/rs6000.md (movsf_hardfloat): Ignore special
3287         registers when choosing register preferences.
3288         (movdf_hardfloat64): Same.
3289
3290 2005-09-22  Andreas Krebbel  <krebbel1@de.ibm.com>
3291
3292         * expmed.c (expand_shift): Don't use the target of the rotate as
3293         target for the first expanded shift insn.
3294         * testsuite/gcc.dg/20050922-1.c: Testcase added.
3295
3296 2005-09-21  Zdenek Dvorak  <dvorakz@suse.cz>
3297
3298         PR tree-optimization/22438
3299         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Handle all
3300         preserved iv rhs rewriting specially.
3301
3302 2005-09-21  Daniel Berlin  <dberlin@dberlin.org>
3303
3304         * tree-data-ref.c (analyze_array_indexes): Only estimate when
3305         estimate_only  is true.
3306         * tree-flow.h (ref_contains_indirect_ref): New prototype.
3307         * tree-flow-inline.h (ref_contains_indirect_ref): Moved from
3308         tree-ssa-structalias.c
3309         * tree-ssa-loop-niter.c (infer_loop_bounds_from_undefined): Use
3310         ref_contains_indirect_ref.
3311         * tree-ssa-structalias.c (ref_contains_indirect_ref): Moved.
3312
3313 2005-09-21  DJ Delorie  <dj@redhat.com>
3314
3315         * config/mn10300/mn10300.c (TARGET_DEFAULT_TARGET_FLAGS): Add
3316         MASK_PTR_A0D0.
3317         (mn10300_return_in_memory): Support variable size types also.
3318         (mn10300_pass_by_reference): Likewise.
3319         (mn10300_function_value): New.
3320         * config/mn10300/mn10300.h (FUNCTION_VALUE): Call the above.
3321         (FUNCTION_OUTGOING_VALUE): Likewise.
3322         * config/mn10300/mn10300.opt: Add -mreturn-pointer-on-d0.
3323         * doc/invoke.texi: Document it.
3324
3325 2005-09-21  Uros Bizjak  <uros@kss-loka.si>
3326
3327         PR target/22585
3328         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
3329         force integer op1 into register for XFmode compares.
3330
3331 2005-09-21  Kazu Hirata  <kazu@codesourcery.com>
3332
3333         PR middle-end/23971
3334         * expmed.c (alg_code): Add alg_impossible.
3335         (alg_hash_entry): Add cost.
3336         (synth_mult): Record alg_impossible in the hash table if
3337         multiplication by a given integer is impossble within the
3338         limit.  Speed up using alg_impossible.
3339
3340 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
3341
3342         * tree-ssa-structalias.c (get_constraint_for_component_ref): Add
3343         argument.  Allow and set any offset if needs_anyoffset is passed
3344         in.
3345         (get_constraint_for): Add argument here too.
3346         Pass it down.
3347         (do_structure_copy): Pass NULL to get_constraint_for.
3348         (handle_ptr_arith): Ditto.
3349         (find_func_aliases): Ditto.
3350
3351 2005-09-20  J"orn Rennecke <joern.rennecke@st.com>
3352
3353         PR rtl-optimization/23898
3354         * output.h (get_attr_min_length): Declare.
3355         * final.c (get_attr_length_1): New function, broken out of:
3356         (get_attr_length).
3357         (get_attr_min_length): New function.
3358         * bb-reorder.c (copy_bb_p, get_uncond_jump_length): Use it.
3359         (duplicate_computed_gotos): Likewise.
3360         * genattr.c (insn_min_length): Generate declaration.
3361         * genattrtab.c (min_fn, min_attr_value): New functions.
3362         (make_length_attrs): Generate insn_min_length.
3363
3364 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
3365
3366         * config/pa/pa.c (output_cbranch): Check for zero in operands[2].
3367
3368 2005-09-20  Richard Henderson  <rth@redhat.com>
3369
3370         PR tree-optimization/24059
3371         * expr.c (expand_expr_real_1) <INDIRECT_REF>: Allow modifier
3372         EXPAND_STACK_PARM.
3373
3374 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
3375
3376         * c.opt (fextended-identifiers): New.
3377         * c-opts.c (c_common_handle_option): Handle
3378         -fextended-identifiers.
3379         * doc/cpp.texi: Update documentation of extended identifiers.
3380         * doc/cppopts.texi (-fextended-identifiers): Document.
3381
3382 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
3383
3384         PR tree-optimization/23929
3385         * tree-ssa-loop-niter.c (expand_simple_operations): Return immediately
3386         if expr is NULL.
3387
3388         PR tree-optimization/23818
3389         * tree-stdarg.c (execute_optimize_stdarg): Call
3390         calculate_dominance_info.
3391
3392 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
3393
3394         * tree-data-ref.c (get_number_of_iters_for_loop): New function.
3395         (analyze_siv_subscript_cst_affine): Add weak SIV test.
3396         (compute_overlap_steps_for_affine_1_2): Use
3397         get_number_of_iters_for_loop.
3398         (analyze_subscript_affine_affine): Check whether difference is
3399         zero first.
3400         Use get_number_of_iters_for_loop.
3401         Check whether overlap occurs outside of bounds.
3402         (analyze_miv_subscript): Use get_number_of_iters_for_loop.
3403
3404 2005-09-20  Andreas Krebbel  <krebbel1@de.ibm.com>
3405
3406         * tree-ssa-address.c (create_mem_ref): Put the symbol reference into the
3407         base register if possible.
3408
3409 2005-09-20  Zdenek Dvorak  <dvorakz@suse.cz>
3410
3411         PR tree-optimization/18463
3412         * tree-chrec.c (chrec_convert): Return fold_converted chrec if
3413         converting it directly is not possible.
3414         (chrec_convert_aggressive): New function.
3415         * tree-chrec.h (chrec_convert_aggressive): Declare.
3416         * tree-scalar-evolution.c (instantiate_parameters_1, resolve_mixers):
3417         Fold chrec conversions aggressively if asked to.
3418         (instantiate_parameters): Modified because of changes in
3419         instantiate_parameters_1.
3420
3421 2005-09-19  Richard Henderson  <rth@redhat.com>
3422
3423         * config/i386/sse.md (reduc_splus_v4sf): Rename from reduc_plus_v4sf.
3424         (reduc_splus_v2df): New.
3425
3426 2005-09-19  Richard Sandiford  <richard@codesourcery.com>
3427
3428         * config/arm/aof.h (REGISTER_NAMES): Add missing backslash.
3429         (ADDITIONAL_REGISTER_NAMES): Add missing comma.  Remove final comma.
3430
3431 2005-09-19  Richard Henderson  <rth@redhat.com>
3432
3433         * config/i386/sse.md (vcondu<SSEMODE124>): Rename from
3434         vcondu<SSEMODE12>.
3435
3436 2005-09-19  Richard Henderson  <rth@redhat.com>
3437
3438         * config/ia64/ia64.c (ia64_expand_widen_sum): New.
3439         (ia64_expand_dot_prod_v8qi): New.
3440         * config/ia64/ia64-protos.h: Update.
3441         * config/ia64/vect.md (pmpy2_r, pmpy2_l, widen_usumv8qi3,
3442         widen_usumv4hi3, widen_ssumv8qi3, widen_ssumv4hi3, udot_prodv8qi,
3443         sdot_prodv8qi, sdot_prodv4hi): New.
3444         (reduc_splus_v2sf): Rename from reduc_plus_v2sf.
3445
3446 2005-09-19  Richard Henderson  <rth@redhat.com>
3447
3448         PR 23941
3449         * real.c (exact_real_truncate): Return false if the format cannot
3450         represent the number as a normal.
3451
3452         * config/alpha/alpha.c (alpha_rtx_costs) <FLOAT_EXTEND>: Cost 0
3453         for a memory source.
3454
3455 2005-09-19  Dorit Nuzman  <dorit@il.ibm.com>
3456
3457         * tree-ssa-operands.c (swap_tree_operands): Export.
3458         * tree.h (swap_tree_operands): Declare.
3459         * tree-vectorizer.c (vect_is_simple_reduction): Remove ATTRIBUTE_UNUSED.
3460         Call swap_tree_operands.
3461
3462 2005-09-19  Richard Henderson  <rth@redhat.com>
3463
3464         * tree-flow.h (merge_alias_info): Declare.
3465         * tree-ssa-copy.c (merge_alias_info): Export.
3466         * tree-vect-transform.c (vect_create_index_for_vector_ref): Remove.
3467         (vect_create_data_ref_ptr): Use create_iv directly.
3468         (vectorizable_load): Use correct types for integer constants.
3469         (vect_generate_tmps_on_preheader): Likewise.
3470         (vect_gen_niters_for_prolog_loop): Likewise.
3471
3472 2005-09-19  Steven Bosscher  <stevenb@suse.de>
3473
3474         PR rtl-optimization/23943
3475         * cse.c (find_best_addr): Never propagate an EXPR_LIST rtx.
3476
3477 2005-09-18  Jan Hubicka  <jh@suse.cz>
3478
3479         * calls.c (flags_from_decl_or_type): Do not set ECF_LIBCALL_BLOCK.
3480
3481 2005-09-18  Eric Botcazou  <ebotcazou@adacore.com>
3482
3483         * varasm.c (output_constant): Do not abort on conversions to union
3484         types between different sizes.
3485
3486 2005-09-18  Richard Guenther  <rguenther@suse.de>
3487
3488         PR middle-end/23944
3489         * gimplify.c (fold_indirect_ref_rhs): Fix thinko in
3490         fallback.
3491
3492 2005-09-18  Paul Brook  <paul@codesourcery.com>
3493
3494         * config/m68k/fpgnuib.c (__floatsidf): Don't rely on signed overflow.
3495
3496 2005-09-17  Richard Henderson  <rth@redhat.com>
3497
3498         * tree-pass.h, tree-flow.h, tree-ssa-dce.c: Revert last change.
3499         * tree-ssa-loop.c (pass_vect_dce): Remove.
3500         * passes.c (init_optimization_passes): Add pass_dce as a sub-pass
3501         of pass_vectorize.
3502
3503 2005-09-17  Richard Henderson  <rth@redhat.com>
3504
3505         * tree-pass.h (pass_vect_dce): Declare.
3506         * passes.c (init_optimization_passes): Add it.
3507         * tree-flow.h (tree_ssa_dce): Declare.
3508         * tree-ssa-dce.c (tree_ssa_dce): Export.
3509         * tree-ssa-loop.c (tree_vectorize): Move current_loops check ...
3510         (gate_tree_vectorize): ... here.
3511         (pass_vect_dce): New.