OSDN Git Service

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