OSDN Git Service

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