Mark ChangeLog
[official-gcc.git] / gcc / ChangeLog
blob08b8bc312ea230ab693ab20fd7837956cc97082f
1 2007-01-25  Richard Guenther  <rguenther@suse.de>
3         Backport from mainline:
4         2006-08-11  Richard Guenther  <rguenther@suse.de>
6         PR middle-end/28651
7         * simplify-rtx.c (simplify_const_relational_operation):
8         Simplify A CMP B to A - B CMP 0 only for EQ and NE comparison
9         codes.
11 2007-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13         * pa.c (output_move_double): Change array size of xoperands to 4.
15 2007-01-17  Tom Tromey  <tromey@redhat.com>
17         * doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
18         * doc/install.texi (Testing): Use sourceware.org.
19         (Binaries): Likewise.
20         (Specific): Likewise.
21         * doc/contrib.texi (Contributors): Use sourceware.org.
23 2007-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25         * pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
26         * pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
27         (ASM_OUTPUT_INTERNAL_LABEL): Define.
29 2007-01-09  Nicolas Pitre  <nico@cam.org>
31         PR target/30173
32         * arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.
34 2006-12-27  Ian Lance Taylor  <iant@google.com>
36         PR debug/26964
37         * dwarf2out.c (gen_type_die): Don't write out a DIE for
38         ENUMERAL_TYPE if it was already written out.
40 2006-12-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
42         PR target/30039
43         * pa.md (high:DI and lo_sum:DI): Handle 64-bit CONST_INTs in 32-bit
44         patterns.  Correct length of high:DI instruction sequence.
46 2006-11-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
48         * pa.c (return_addr_rtx): Change 0xe0400002 to -532676606.
50 2006-11-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
52         PR target/29114
53         * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
54         larger than BITS_PER_WORD.
56 2006-11-02  Zdenek Dvorak <dvorakz@suse.cz>
58         PR tree-optimization/27891
59         * tree-ssa-loop-ivopts.c (rewrite_use_outer): Do not insert code
60         on abnormal edge.
62 2006-11-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
64         * doc/install.texi (sparc-sun-solaris2*): Update GMP/MPFR build
65         instructions.
66         (sparc64-sun-solaris2*): Likewise.
68 2006-11-02  Uros Bizjak <ubizjak@gmail.com>
70         PR target/29377
71         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Change "size"
72         argument to HOST_WIDE_INT.  Update function prototype.
73         (round_frame_size): Change return type to HOST_WIDE_INT.  Change
74         "size" argument to HOST_WIDE_INT.  Update function prototype.
76 2006-11-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
78         * builtins.def (gamma, lgamma): Use ATTR_MATHFN_FPROUNDING_STORE.
80 2006-10-30  Jakub Jelinek  <jakub@redhat.com>
82         PR tree-optimization/29637
83         * tree.c (make_vector_type): Don't recurse if TYPE_MAIN_VARIANT
84         of the innertype is the innertype itself.
86 2006-10-26  Paolo Bonzini  <bonzini@gnu.org>
88         PR c/29092
89         * c-typeck.c (digest_init): Always allow initializing vectors
90         that have static storage duration with compound literals.
91         * tree.c (build_type_attribute_qual_variant): New, based on
92         build_type_attribute_variant.
93         (build_type_attribute_variant): Rewrite using the former.
94         (make_vector_type): Use build_type_attribute_qual_variant to build
95         type variants.  Use type_hash_canon on the others.
97 2006-10-19  Eric Botcazou  <ebotcazou@adacore.com>
99         * fold-const.c (add_double): Rename to add_double_with_sign.
100         Add 'unsigned_p' parameter and take it into account for the overflow.
101         (mul_double): Rename to mul_double_with_sign. 
102         Add 'unsigned_p' parameter and take it into account for the overflow.
103         (fold_div_compare): Call add_double_with_sign instead of add_double
104         and mul_double_with_sign instead of mul_double, passing them the
105         unsignedness of the type.
106         * tree.h (add_double): Macroize.
107         (add_double_with_sign): New prototype.
108         (mul_double): Macroize.
109         (mul_double_with_sign): New prototype.
111 2006-10-16  Richard Guenther  <rguenther@suse.de>
113         PR target/25519
114         * doc/extend.texi (X86 Built-in Functions): Fix typos in
115         SSE builtin documentation.  Document SSE2 builtins.
117 2006-10-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
119         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*): Default to
120         posix thread support.
122 2006-10-09  Steve Ellcey  <sje@cup.hp.com>
124         PR target/28490
125         Backport from mainline
126         2006-09-15  Jim Wilson  <wilson@specifix.com>
127         2006-09-19  Steve Ellcey  <sje@cup.hp.com>
128         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow function
129         pointers as legitimate constants.  Handle symbol offsets same as
130         they are handled in ia64_expand_move and move_operand.
132 2006-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
134         PR debug/28980
135         * dwarf2out.c (loc_descriptor_from_tree_1): Handle
136         FUNCTION_DECL.
138 2006-10-08  Andrew Pinski  <pinskia@physics.uc.edu>
140         PR middle-end/28862
141         * stor-layout.c (relayout_decl): Don't zero the alignment if it
142         was set by the user.
144 2006-09-21  Steven Bosscher  <steven@gcc.gnu.org>
146         PR middle-end/26983
147         Backport from mainline
148         * builtins.c (expand_builtin_setjmp): Force next_lab to be
149         preserved.
151 2006-09-19  Roger Sayle  <roger@eyesopen.com>
153         PR middle-end/4520
154         Backport from mainline
155         * cselib.c (cselib_hash_rtx): Avoid hashing on the address of labels
156         and symbols.  Instead use the implementation from cse.c's hash_rtx.
158 2006-09-18 Uros Bizjak <uros@kss-loka.si>
160         PR target/28946
161         * config/i386/i386.md ("*ashldi3_cconly_rex64", "*ashlsi3_cconly",
162         "*ashlhi3_cconly", "*ashlqi3_cconly", "*ashrdi3_one_bit_cconly_rex64",
163         "*ashrdi3_cconly_rex64", "*ashrsi3_one_bit_cconly", "*ashrsi3_cconly",
164         "*ashrhi3_one_bit_cconly", "*ashrhi3_cconly",
165         "*ashrqi3_one_bit_cconly", "*ashrqi3_cconly",
166         "*lshrdi3_cconly_one_bit_rex64", "*lshrdi3_cconly_rex64",
167         "*lshrsi3_one_bit_cconly", "*lshrsi3_cconly",
168         "*lshrhi3_one_bit_cconly", "*lshrhi3_cconly",
169         "*lshrqi2_one_bit_cconly", "*lshrqi2_cconly": New patterns to
170         implement only CC setting effects of shift instructions.
172 2006-09-11  Hideki Iwamoto  <h-iwamoto@kit.hi-ho.ne.jp>
174         * doc/cpp.texi: Fix names of charset options.
176 2006-09-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
178         PR rtl-optimization/28636
179         * combine.c (force_to_mode): Test for side-effects before
180         substituting by zero.
181         (simplify_shift_const): Likewise for zero or other constants.
183 2006-09-10  Richard Sandiford  <richard@codesourcery.com>
185         PR target/29006
186         * config/mips/mips-protos.h (mips_mem_fits_mode_p): Declare.
187         * config/mips/mips.c (mips_expand_unaligned_store): Use the mode
188         returned by mode_for_size, rather than the mode of src itself,
189         to choose between 32-bit and 64-bit patterns.
190         (mips_mem_fits_mode_p): New function.
191         * config/mips/mips.md (mov_<load>l, mov_<load>r): Use it to check
192         that the size of the source matches the size of the destination.
193         (mov_<store>l, mov_<store>r): Likewise.
195 2006-09-06  Matthias Klose  <doko@debian.org>
197         PR bootstrap/26764
198         PR bootstrap/27334
199         * Makefile.in (s-macro_list): Conform to POSIX rules in single quoted
200         strings.
202 2006-08-25  Fariborz Jahanian  <fjahanian@apple.com>
204         PR c/28418
205         * c-gimplify.c (gimplify_compound_literal_expr): Don't add
206         variable again if DECL_SEEN_IN_BIND_EXPR_P.
208 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
210         PR c/28299
211         * c-decl.c (start_function): Don't try to process prototype
212         information from old declaration that isn't a function.
214 2006-08-25  Joseph S. Myers  <joseph@codesourcery.com>
216         PR c/27893
217         * gimplify.c (gimplify_decl_expr, gimplify_init_ctor_preeval):
218         Treat sizes as variable whenever not INTEGER_CST.
220 2006-08-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
222         PR rtl-optimization/23454
223         Backport from mainline
224         2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
226         * reorg.c (relax_delay_slots): Check that the jump is
227         conditional before trying to invert it.
229 2006-08-03  Janis Johnson  <janis187@us.ibm.com>
231         Backport from mainline
232         * doc/sourcebuild.texi (Test Directives): Document dg-shouldfail.
234 2006-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
236         PR c++/28257
237         PR c++/28259
238         PR c++/28267
239         * toplev.c (compile_file): Return early on errorcount or sorrycount.
240         * cgraphunit.c (cgraph_finalize_compilation_unit): Likewise.
241         (cgraph_optimize): Likewise.
243 2006-07-30  Roger Sayle  <roger@eyesopen.com>
245         PR middle-end/28473
246         Backport from mainline.
247         * convert.c (convert_to_integer): When transforming (T)foo(x) into
248         bar(x) check that bar's result type can represent all the values of T.
249         * builtins.c (fold_fixed_mathfn): When long and long long are the
250         same size, canonicalize llceil*, llfloor*, llround* and llrint*
251         functions to their lceil*, lfloor*, lround* and lrint* forms.
253 2006-07-26  Richard Sandiford  <richard@codesourcery.com>
255         PR middle-end/28403
256         * optabs.c (expand_doubleword_shift): Wrap the call to
257         do_compare_rtx_and_jump with NO_DEFER_POP and OK_DEFER_POP.
259 2006-07-26  Richard Sandiford  <richard@codesourcery.com>
261         PR middle-end/28402
262         * optabs.c (expand_binop): Pass next_methods rather than methods
263         to expand_doubleword_shift.
265 2006-07-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
267         PR c/28286
268         * c-pragma.c (handle_pragma_pack): Handle invalid constants.
270 2006-07-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
272         * doc/install.texi (sparc-sun-solaris2*): Add GMP version number.
274 2006-07-05  Jason Merrill  <jason@redhat.com>
276         PR c++/13983
277         PR c++/17519
278         * stor-layout.c (finish_record_layout): Copy TYPE_PACKED to variants.
280 2006-07-04  Peter O'Gorman  <peter@pogma.com>
282         * mklibgcc.in: chmod 644 before ranlib during install.
284 2006-07-02  Roger Sayle  <roger@eyesopen.com>
286         PR middle-end/27428
287         * c-lex.c (c_lex_with_flags) <CPP_N_INVALID>: Increment errorcount
288         to indicate the cpplib has issued an error message for us.
290 2006-06-23  Richard Guenther  <rguenther@suse.de>
292         PR middle-end/28045
293         * fold-const.c (operand_equal_p): Check if the argument types
294         have the same precision before stripping NOPs.
296 2006-06-22  Gerald Pfeifer  <gerald@pfeifer.com>
298         * doc/install.texi (Configuration): Remove reference to CrossGCC
299         FAQ which was gone.
300         (Building): Ditto.
302 2006-06-21  Roger Sayle  <roger@eyesopen.com>
304         PR target/27861
305         * expmed.c (expand_shift): On SHIFT_COUNT_TRUNCATED targets, we may
306         have stripped a SUBREG from the shift count, so we may need to
307         convert_to_mode back to the type's mode before calling make_tree.
308         Use new_amount instead of amount to avoid expanding a tree twice.
310 2006-06-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
312         PR target/27421
313         * config/i386/i386.c (classify_argument): Skip fields with invalid
314         types in unions.
316 2006-06-06  Roger Sayle  <roger@eyesopen.com>
318         PR target/26223
319         * config/i386/i386.c (construct_container): Split static issued_error
320         flag into issued_sse_arg_error, issued_sse_ret_error and
321         issued_x87_ret_error.  Issue a daignostic if the x86-64 ABI
322         requires the use of x87 registers and the user explicitly
323         specified the -mno-80387 command line option.
325 2006-06-05  Joseph S. Myers  <joseph@codesourcery.com>
327         PR c/25161
328         PR c/27020
329         * c-decl.c (grokdeclarator): Disallow variably modified types at
330         file scope.  Avoid marking shared array type of constant size as
331         VLA.
333 2006-06-04  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
335         PR c++/27601
336         * c-common.c (fold_offsetof_1): Handle static members.
338 2006-05-30  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
340         PR c/27718
341         * c-typeck.c (c_expr_sizeof_type): Handle invalid types.
343 2006-05-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
345         PR c++/27451
346         * stmt.c (expand_asm_operands): Skip asm statement with erroneous
347         clobbers.
349 2006-05-15  Roger Sayle  <roger@eyesopen.com>
351         PR rtl-optimization/22563
352         Backports from mainline
353         * expmed.c (store_fixed_bit_field): When using AND and IOR to store
354         a fixed width bitfield, always force the intermediates into pseudos.
355         Also check whether the bitsize is valid for the machine's "insv"
356         instruction before moving the target into a pseudo for use with
357         the insv.
358         * config/i386/predicates.md (const8_operand): New predicate.
359         * config/i386/i386.md (extv, extzv, insv): Use the new
360         const8_operand predicate where appropriate.
362 2006-05-15  Roger Sayle  <roger@eyesopen.com>
364         PR middle-end/26729
365         * fold-const.c (fold_truthop): Check integer_nonzerop instead of
366         !integer_zerop to avoid problems with TREE_OVERFLOW.
368 2005-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
370         PR rtl-optimization/27335
371         * loop-unroll.c (peel_loops_completely): Use loops->parray to walk the
372         loops.
374 2005-05-13  Zdenek Dvorak  <dvorakz@suse.cz>
376         PR tree-optimization/27003
377         * tree.c (build_int_cst_type): Avoid shift by size of type.
379 2006-05-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
381         PR target/27421
382         * config/i386/i386.c (classify_argument): Skip fields with invalid
383         types.
385         PR middle-end/27384
386         * fold-const.c (size_binop): Move sanity check for arguments to
387         the beginning of the function.
389 2006-05-09  Richard Guenther  <rguenther@suse.de>
391         PR tree-optimization/27136
392         * tree-ssa-loop-niter.c (get_val_for): Correct function
393         comment, assert requirements.
394         (loop_niter_by_eval): Stop processing if the iterated
395         value did not simplify.
397 2006-05-03  Roger Sayle  <roger@eyesopen.com>
399         PR c/25309
400         * c-typeck.c (struct spelling): Make I an unsigned HOST_WIDE_INT.
401         (push_array_bounds): Delete prototype.  Change BOUNDS argument to
402         an unsigned HOST_WIDE_INT.
403         (print_spelling): Use HOST_WIDE_INT_PRINT_UNSIGNED to output the
404         array index.
405         (really_start_incremental_init): No need to call convert because
406         bitsize_zero_node is already of type bitsizetype.
407         (push_init_level): Extract the value of constructor_index as an
408         unsigned HOST_WIDE_INT quantity, using tree_low_cst.
409         (process_init_element): Likewise.
411 2006-05-01  Richard Guenther  <rguenther@suse.de>
413         PR middle-end/26565
414         * builtins.c (get_pointer_alignment): Handle component
415         references for field alignment.
417 2006-04-25  Roger Sayle  <roger@eyesopen.com>
419         PR target/26961
420         * fold-const.c (fold): When converting "A ? B : C" into either
421         "A op B" or "A op C", we may need to convert A to the type of B and C.
423 2006-04-23  Eric Botcazou  <ebotcazou@adacore.com>
425         * tree-tailcall.c (pass_tail_recursion): Use gate_tail_calls too.
427 2006-04-14  Alexey Starovoytov  <alexey.starovoytov@sun.com>
428             Eric Botcazou  <ebotcazou@libertysurf.fr>
430         * config/sparc/sparc.c (emit_and_preserve): Allocate space for the
431         register save area.
433 2006-04-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
435         * doc/install.texi (*-*-solaris2*): Point to the configure page.
437 2006-04-04  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
439         PR target/26775
440         PR target/26776
441         * config/m32r/m32r.c (m32r_output_function_epilogue): Case for
442         a large stack frame at epilogue. Use fp to recover a stack
443         pointer for alloca function at epilogue.
445         PR target/36276
446         * config/m32r/m32r.c (gen_compare): Removed a rule addsi3 codes 
447         to avoid a miss optimizing at simplify_relational_operation().
448         * config/m32r/m32r.md (seq): Ditto. Changed reg_or_eq_int16_operand
449         to reg_or_uint16_operand because seq_insn has not used addsi3 already.
450         (seq_insn): Ditto. Removed operand check mode "P". Changed 
451         reg_or_eq_int16_operand to reg_or_uint16_operand.
453 2006-03-31  H.J. Lu  <hongjiu.lu@intel.com>
455         PR testsuite/25741
456         Backport from mainline
457         2006-01-16  H.J. Lu  <hongjiu.lu@intel.com>
459         * Makefile.in (check-%): Depend on site.exp instead of
460         $(TESTSUITEDIR)/site.exp. Run "runtest" in separate language
461         directories.
463         2006-01-17  Shantonu Sen  <ssen@opendarwin.org>
465         * Makefile.in (check-%, check-consistency): Use $${srcdir}
466         instead of $(srcdir) and ${srcdir}.
468 2006-03-23  Richard Henderson  <rth@redhat.com>
470         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject
471         tls symbols.
473         PR target/26347
474         * config/alpha/predicates.md (local_symbolic_operand): Reject
475         weak symbols.
477 2006-03-21  Jason Merrill  <jason@redhat.com>
479         * builtins.c (expand_builtin_fork_or_exec): Fix pasto.
481         PR middle-end/20297
482         * expr.c (init_block_move_fn): Force default visibility.
483         (init_block_clear_fn): Likewise.
484         * builtins.c (expand_builtin_fork_or_exec): Likewise.
486 2006-03-20  Alan Modra  <amodra@bigpond.net.au>
488         PR target/26453
489         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Don't
490         output traceback table for thunks.  Localise rs6000_stack_info call.
492 2006-03-16  Kaz Kojima  <kkojima@gcc.gnu.org>
494         Backport from 4.1:
495         * config/sh/sh.c (prepare_move_operands): Handle the address
496         constant which is a tls symbolic address plus a constant.
498 2006-03-16  Roger Sayle  <roger@eyesopen.com>
500         PR middle-end/26379
501         Backport from mainline.
502         2006-02-21  Jakub Jelinek  <jakub@redhat.com>
503         * combine.c (simplify_shift_const_1): Disable nested shifts
504         optimization for vector shifts.
506 2006-03-16  Steve Ellcey  <sje@cup.hp.com>
508         PR target/25917
509         Backport from mainline.
510         * config/ia64/predicates.md (extr_len_operand): New predicate.
511         * config/ia64/ia64.md (extv): Tighten constraints.
512         (extzv): Ditto.
513         (*tbit_and_2): Ditto.
514         (*tbit_and_3): Ditto.
515         (*tbit_or_2): Ditto.
516         (*tbit_or_3): Ditto.
517         (*bit_zero): Ditto.
518         (*bit_one): Ditto.
520 2006-03-15  Roger Sayle  <roger@eyesopen.com>
522         PR middle-end/26557
523         * stmt.c (emit_case_nodes): Handle the case where the index is a
524         CONST_INT, where the comparison mode is specified by the index type.
526 2006-03-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
528         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Fix typo.
530 2006-03-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
532         * pa/pa32-linux.h (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O
533         is defined.
535 2006-03-13  Jie Zhang <jie.zhang@analog.com>
537         * config/bfin/uclinux.h: Define _GNU_SOURCE in CPLUSPLUS_CPP_SPEC.
539 2006-03-13  Bernd Schmidt  <bernd.schmidt@analog.com>
541         * config/bfin/lib1funcs.asm (___umodsi3): Use stack to save contents
542         of RETS.
543         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If
544         TARGET_ID_SHARED_LIBRARY, define __ID_SHARED_LIB__.
545         * config/bfin/crti.S: Use it instead of __PIC__.
546         * config/bfin/crtn.S: Likewise.
548         * config/bfin/bfin.md (call_value_symbol, sibcall_value_symbol,
549         call_symbol, sibcall_symbol): Disallow if TARGET_ID_SHARED_LIBRARY,
550         not if flag_pic.
551         Lose 'G' modifier for call operand.
552         * config/bfin/bfin.c (print_operand) <case SYMBOL_REF>: Don't
553         recognize 'G' modifier.
555 2006-03-13  Eric Botcazou  <ebotcazou@adacore.com>
557         PR middle-end/18859
558         * stmt.c (expand_case): Discard empty ranges.
560 2006-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
562         Backport:
563         2005-03-31  Janis Johnson  <janis187@us.ibm.com>
565         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
567 2006-03-10  Mark Mitchell  <mark@codesourcery.com>
569         * version.c: Bump version number.
571         * doc/include/gcc-common.texi: Bump version number.
573 2006-03-09  Release Manager
575         * GCC 4.0.3 released.
577 2006-03-06    Kaz Kojima  <kkojima@gcc.gnu.org>
579         PR target/23706
580         Backport from 4.1:
581         * lcm.c (optimize_mode_switching): Clear transp bit for
582         block with incomming abnormal edges.
584         PR target/22553
585         Backport from 4.1:
586         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns
587         to 2 if it's already non-zero.
588         (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions
589         is set and warn about it if flag_schedule_insns is 1.
591 2006-02-28  Jakub Jelinek  <jakub@redhat.com>
593         PR middle-end/26092
594         * gimplify.c (gimplify_call_expr): When trying again, call
595         get_callee_fndecl first to verify it is still a builtin.
597 2005-02-28  Zdenek Dvorak  <dvorakz@suse.cz>
599         PR c++/25632
600         * init.c (constant_value_1): Unshare use of DECL_INITIAL.
602 2006-02-28  Jakub Jelinek  <jakub@redhat.com>
604         PR c/25682
605         * c-typeck.c (build_unary_op): Fold offsetof-like expressions
606         even when the pointer is not NULL.
608 2006-02-27  Steven Bosscher  <steven.gcc@gmail.com>
610         Backport from mainline and the GCC 4.1 branch:
611         PR rtl-optimization/25196
612         * postreload-gcse.c (record_last_set_info): Notice stack pointer
613         changes in push insns without REG_INC notes.
615 2006-02-18  Olivier Hainque  <hainque@adacore.com>
617         PR ada/13408
618         * pa.h (WIDEST_HARDWARE_FP_SIZE): Define.
620 2006-02-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
622         Backport:
623         2005-08-18  Andrew Pinski  <pinskia@physics.uc.edu>
625         PR middle-end/16045
626         * builtins.c (fold_builtin): Create a new NOP_EXPR all the time.
628 2006-02-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
630         PR target/26255
631         * pa.md: Create separate HI and QI move patterns for 32-bit and 64-bit
632         with hardware float support, and software float support.  Add fcpy
633         alternative to hardware patterns.  Add alternatives to copy between
634         general and floating-point registers to the 32-bit pattern.
635         * pa32-regs.h (VALID_FP_MODE_P): Allow QImode and HImode.
636         * pa64-regs.h (VALID_FP_MODE_P): Likewise.
638 2006-02-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
640         Backport:
641         2006-02-01  Steve Ellcey  <sje@cup.hp.com>
643         PR middle-end/24901
644         * fold-const.c (fold_checksum_tree): Change type of buf.
646 2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
648         * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
650 2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
652         * doc/contrib.texi: Update my entry.
654 2006-02-08  Jason Merrill  <jason@redhat.com>
656         PR c++/25979
657         * tree.def: Elaborate on difference from MODIFY_EXPR.
658         * doc/c-tree.texi (INIT_EXPR): Likewise.
659         * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
660         (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
661         (gimplify_target_expr): Likewise.
662         (gimplify_cond_expr): Remove target handling.
663         (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
664         (gimplify_expr): Clobber it here.
665         (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
666         Do return slot optimization if we have an INIT_EXPR.
668         PR middle-end/22439
669         * gimplify.c (gimplify_one_sizepos): Fix typo.
671 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
673         * config/sparc/sparc.c (tls_call_delay): Fix oversight.
675 2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
677         PR target/26109
678         * pa.c (attr_length_indirect_call): Don't return length 8 for distances
679         >= 240000 when generating code for SOM runtime.
680         (output_indirect_call): Don't use "b,l" instruction for indirect calls
681         to $$dyncall when generating code for SOM runtime..
683 2006-01-26  Alan Modra  <amodra@bigpond.net.au>
685         PR middle-end/25176
686         * function.c (expand_function_end): Emit blockage for unwinder
687         after return label.
689 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
690         Jan Hubicka  <jh@suse.cz>
691         Richard Guenther  <rguenther@suse.de>
693         PR rtl-optimization/25654
694         * cfgexpand.c (aggregate_contains_union_type): New function.
695         (add_alias_set_conflicts): Call it.  Make sure to add conflicts
696         for structure variables that contain a union type.
698 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
700         * gcc.c (process_command), gcov.c (print_version), gcov-dump.c
701         (print_version), mips-tdump.c (main), mips-tfile.c (main): Update
702         copyright notice dates.
704 2006-01-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
706         PR testsuite/25171
707         * c-decl.c (check_bitfield_type_and_width): Don't issue pedwarn "type
708         of bit-field" when in system header.
710 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
712         PR tree-optimization/23282
713         * tree-chrec.c (chrec_fold_multiply_poly_poly): Associate chrecs
714         correctly.
716 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
718         * pa.md: Disparage copies between general and floating-point registers
719         in 32-bit move patterns.
721 2006-01-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
723         PR target/20754
724         * pa.md: Create separate 32 and 64-bit move patterns for SI, DI, SF
725         and DF modes.  Add alternatives to copy between general and floating
726         point registers to the 32-bit patterns.
727         * pa-64.h (SECONDARY_MEMORY_NEEDED_RTX): Delete undefine.
728         * pa.h (SECONDARY_MEMORY_NEEDED_RTX): Delete define.
729         (SECONDARY_MEMORY_NEEDED): Secondary memory is only needed when
730         generating 64-bit code.
731         * pa.c (output_move_double): Handle copies between general and
732         floating registers.
734 2006-01-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
736         PR rtl-optimization/25367
737         * config/sparc/sparc.h (HARD_REGNO_RENAME_OK): New macro.
739 2006-01-10  Jan Beulich  <jbeulich@novell.com>
741         * config/i386/netware.h (TARGET_SUBTARGET_DEFAULT): Include
742         MASK_ALIGN_DOUBLE.
743         * config/i386/nwld.h (LINK_SPEC): Add --extensions:GNU option.
744         * config/i386/t-nwld (SHLIB_LINK): Insert spaces between expr
745         arguments.
747 2006-01-08  Ian Lance Taylor  <ian@airs.com>
748             David Edelsohn  <edelsohn@gnu.org>
750         PR rtl-optimization/25662
751         * optabs.c (simplify_expand_binop): Use simplify_binary_operation
752         for constant operands instead of simplify_gen_binary.
754 2006-01-04  Kaz Kojima  <kkojima@gcc.gnu.org>
756         PR target/25613
757         * config/sh/sh.h (CONSTRAINT_LEN): Use unchecking version.      
759 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
761         * config/i386/pmm_malloc.h (posix_memalign): If __cplusplus,
762         make the prototype extern "C" and add throw ().
764         PR target/25554
765         * config/i386/i386.md (testqi_ext_3): Ensure len is positive
766         and pos non-negative and pos + len <= 32.
767         (testqi_ext_3_rex64): Ensure len is positive and pos non-negative,
768         drop pos + len < HOST_BITS_PER_WIDE_INT test.
769         (testqi_ext_3* splitter): Handle pos + len == HOST_BITS_PER_WIDE_INT.
771         PR c/25559
772         * c-common.c (handle_vector_size_attribute): Reject zero vector size
773         as well as sizes not multiple of component size.
775 2006-01-03  Richard Guenther  <rguenther@suse.de>
777         PR c/25183
778         * stmt.c (add_case_node): Make sure to clear overflow flags
779         from ranges.
781 2005-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
783         PR fortran/25586
784         * pa.md: Remove REG_POINTER check from REG+REG peephole2 floating-point
785         store patterns.
787 2005-12-29  Alan Modra  <amodra@bigpond.net.au>
789         PR target/25572
790         * config/rs6000/rs6000.c (create_TOC_reference): Set regs_ever_live.
792 2005-12-23  Ulrich Weigand  <uweigand@de.ibm.com>
794         PR rtl-optimization/21041
795         * reload.c (find_reloads_subreg_address): Replace paradoxical
796         subreg of MEM by widened access only if the resulting memory
797         is properly aligned, even on !STRICT_ALIGNMENT targets.
799 2005-12-23  Jakub Jelinek  <jakub@redhat.com>
801         PR objc/25328
802         * c-typeck.c (comptypes): If objc_comptypes returned < 0,
803         but TYPE_MODE or TYPE_REF_CAN_ALIAS_ALL differs between t1
804         and t2, make sure 0 is returned.
806 2005-12-17  Steven Bosscher  <stevenb@suse.de>
808         PR rtl-optimization/23837
809         * optabs.c (expand_binop): For a multi-word rotate, never emit
810         a REG_NO_CONFLICT block.
812 2005-12-15  Andrew Haley  <aph@redhat.com>
814         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Guard
815         against prev_cache_entry == NULL when moving a cache entry to the
816         head of the list.
817         
818 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
820         * doc/invoke.texi (-fdump-tree-*): Remove note about C/C++ only.
822 2005-12-15  Jan Hubicka  <jh@suse.cz>
824         PR target/24969
825         * i386.c (classify_argument): Properly adjust offset of bitfield for
826         substructures.
828 2005-12-13  Alan Modra  <amodra@bigpond.net.au>
830         * config/rs6000/linux64.h (TARGET_ALIGN_NATURAL): Define.
832 2005-12-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
834         PR target/25258
835         * pa.c (som_text_section_asm_op): Use .NSUBSPA directive when changing
836         to the text subspace to output debugging information.
838 2005-12-09  Bernd Schmidt  <bernd.schmidt@analog.com>
840         * config/bfin/bfin.c: Include "cgraph.h".
841         (bfin_load_pic_reg): Omit loading pic reg if in a local function.
842         Return the reg that holds the pointer to the GOT.
843         (bfin_expand_prologue): Use return value of bfin_load_pic_reg when
844         doing stack checking.
846 2005-12-09  Thiemo Seufer  <ths@networkno.de>
848         * config/mips/mips.c (override_options): Don't allow too small
849         integers in FP registers.
851 2005-12-09  Alan Modra  <amodra@bigpond.net.au>
853         PR debug/24908
854         * dwarf2out.c (dwarf2out_frame_debug_expr): Don't assert that
855         call_used_regs can't be used to save reg in another reg.
857 2005-12-08  Bernd Schmidt  <bernd.schmidt@analog.com>
859         * config/bfin/bfin-protos.h (legitimize_pic_address): Don't declare.
860         * config/bfin/bfin.c (legitimize_pic_address): Now static.  Take
861         extra arg "picreg" and use it instead of pic_offset_table_rtx.
862         All callers changed.
863         (frame_related_constant_load): New arg "related" which controls
864         setting of RTX_FRAME_RELATED_P.  All callers changed.
865         (bfin_load_pic_reg): New function, broken out of bfin_expand_prologue.
866         (bfin_expand_prologue): Add stack limit checking.
867         * config/bfin/bfin.md (trapifcc): New pattern.
868         (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
869         compare_ltu): Now named patterns.
871 2005-12-06  Alan Modra  <amodra@bigpond.net.au>
873         PR other/13873
874         * longlong.h: Merge PPC tests from upstream.
876 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
878         PR target/25199
879         * config/i386/i386.md (movqi_1): Only force imovx for alternative
880         5 if operand 1 is not aligned.  Undo previous constraint change.
881         * config/i386/predicates.md (aligned_operand): Use MEM_ALIGN.
883         Backport from mainline:
884         2005-06-07  Dale Johannesen  <dalej@apple.com>
886         * config/i386/i386.md (movqi_1): Fix case where source
887         is memory and destination EDI.
889 2005-12-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
891         PR middle-end/25022
892         * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
893         fold_builtin_fputs): Lookup the explicit replacement functions
894         for any unlocked stdio builtin transformations.
896         PR middle-end/25158
897         * builtins.c (fold_builtin_fputs): Defer check for missing
898         replacement functions.
900 2005-11-30  Dale Johannesen  <dalej@apple.com>
901             Andrew Pinski  <pinskia@physics.uc.edu>
903         PR rtl-opt/24930
904         * combine.c (find_split_point):  Sign extend bitmask
905         when changing bitfield assignment to IOR of AND.
907 2005-11-30  Kean Johnston  <jkj@sco.com>
909         * config/i386/i386.c: Check the value of SUPPORTS_ONE_ONLY, not
910         simply its presense in case targets #define SUPPORTS_ONE_ONLY 0.
912 2005-11-30  Paolo Bonzini  <bonzini@gnu.org>
914         PR c/25169
915         * c-typeck.c (build_c_cast): Test CONSTANT_CLASS_P before
916         accessing fields that are only defined for constants.
918 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
920         * config/ia64/ia64.c (ia64_expand_tls_address): Add ORIG_OP1 argument.
921         Move ADDEND_{HI,LO} computation into TLS_MODEL_INITIAL_EXEC case.
922         (ia64_expand_move): Adjust caller.
924 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
926         PR middle-end/20109
927         PR middle-end/25120
928         * builtins.c (init_target_chars): New.
929         (expand_builtin_printf, expand_builtin_fprintf,
930         expand_builtin_sprintf, fold_builtin_sprintf): Check for matching
931         format strings using the target charset.
933 2005-11-27  Roger Sayle  <roger@eyesopen.com>
935         PR middle-end/21309
936         * expmed.c (choose_mult_variant): Return immediately when mult_cost
937         is less than zero.  Limit mult_cost to a reasonable upper bound for
938         the synthetic multiplication sequence.
940 2005-11-25  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
942         * fold-const.c (negate_mathfn_p): Fix comment.
944 2005-11-24  Alan Modra  <amodra@bigpond.net.au>
946         PR middle-end/24950
947         * expmed.c (store_bit_field): Don't attempt to insv a field
948         larger than the reg.
950         Merge from trunk 2005-11-14  Dale Johannesen  <dalej@apple.com>
951         * expmed.c (store_bit_field):  Add offset unconditionally for
952         memory targets.
953         (extract_bit_field):  Don't force extzv or extv operand into
954         a register if field is too big.
956 2005-11-19  Richard Henderson  <rth@redhat.com>
958         PR tree-opt/24665
959         * tree-gimple.c (is_gimple_id): Export.
960         * tree-gimple.h (is_gimple_id): Declare.
961         * tree-ssa-ccp.c (ccp_decl_initial_min_invariant): New.
962         (get_default_value): Use it.
963         (maybe_fold_stmt_indirect): Likewise.
965 2005-11-18  James E Wilson  <wilson@specifix.com>
967         * builtins.c (fold_builtin_strstr): Pass s1 through fold_convert before
968         returning it.
970 2005-11-18  Richard Earnshaw  <richard.earnshaw@arm.com>
972         PR target/24914
973         * arm.c (arm_hard_regno_mode_ok): Co-processor registers aren't ok
974         when not generating code to use that co-processor.
976 2005-11-18  Jie Zhang  <jie.zhang@analog.com>
978         * config/bfin/bfin.md (trap): New pattern.
980 2005-11-18  Bernd Schmidt  <bernd.schmidt@analog.com>
982         * config/bfin/crtlibid.s: New file.
984 2005-11-18  David Edelsohn  <edelsohn@gnu.org>
985             Alan Modra  <amodra@bigpond.net.au>
987         PR target/24779
988         Backport 2005-03-13  David Edelsohn  <edelsohn@gnu.org>,
989         2005-03-20  David Edelsohn  <edelsohn@gnu.org>,
990         2005-03-24  David Edelsohn  <edelsohn@gnu.org>,
991         2005-09-11  David Edelsohn  <edelsohn@gnu.org>
992         * config/rs6000/rs6000.c (easy_fp_constant): SFmode constant
993         0.0f is easy.  Return 0 for SFmode and DFmode before reload when
994         flag_unsafe_math_optimizations not enabled.
995         (reg_or_none500mem_operand): New predicate.
996         (zero_reg_mem_operand): New predicate.
997         (rs6000_generate_compare): Test flag_finite_math_only, not
998         flag_unsafe_math_optimizations.
999         * config/rs6000/rs6000.h (PREDICATES): Add zero_reg_mem_operand
1000         and reg_or_none500mem_operand.
1001         * config/rs6000/rs6000-protos.h (zero_reg_mem_operand): Prototype.
1002         (reg_or_none500mem_operand): Likewise.
1003         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
1004         to reg_or_none500mem_operand.
1005         (extendsfdf2_fpr): Add MEM alternative.
1006         (movdf splitter): Use const_double_operand predicate.
1007         (extenddftf2_internal): Change operand2 predicate to
1008         zero_reg_mem_operand.
1010 2005-11-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1012         * config/bfin/elf.h (STARTFILE_SPEC): Add "crtlibid%O%s"
1013         * config/bfin/uclinux.h (STARFILE_SPEC): Likewise.
1014         * config/bfin/t-bfin-elf (EXTRA_PARTS, EXTRA_MULTILIB_PARTS): Add
1015         crtlibid.o.
1016         ($(T)crtlibid.o): New rule.
1018 2005-11-16  Richard Earnshaw  <richard.earnshaw@arm.com>
1020         PR target/24861
1021         * arm.md (split for movsf with immediate): Restrict split to insns
1022         that set a general register.
1024 2005-11-16  Bernd Schmidt  <bernd.schmidt@analog.com>
1026         * config/bfin/crti.s (__init, __fini): Use appropriate prologue if
1027         __PIC__ is defined.
1028         * config/bfin/crtn.s: Change epilogues to match.
1029         * config/bfin/t-bfin-elf (EXTRA_MULTILIB_PARTS): Define.
1030         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): If flag_pic, define
1031         __PIC__ and __pic__.
1033 2005-11-16  Alan Modra  <amodra@bigpond.net.au>
1035         PR rtl-optimization/23392
1036         * regrename.c (enum scan_actions) Add mark_access.
1037         (scan_actions_name): Ditto.
1038         (scan_rtx_reg): Handle mark_access.
1039         (scan_rtx_address): Do nothing for mark_access.
1040         (build_def_use): Mark source registers in REG_FRAME_RELATED_EXPR
1041         and regs in REG_INC notes before closing chains for dead regs.
1042         Mark destination regs in REG_FRAME_RELATED_EXPR notes after
1043         opening chains for new writes.
1045 2005-11-15  Steve Ellcey  <sje@cup.hp.com>
1047         * mklibgcc.in: Change contents of eh_dummy.c.
1049 2005-11-15  Alan Modra  <amodra@bigpond.net.au>
1051         PR rtl-optimization/22002
1052         * combine.c (distribute_notes): Detect cases where a reg dies
1053         two or more times in a bb, including on the insn we are combining,
1054         and place the death note on the correct range.
1056 2005-11-13  Jason Merrill  <jason@redhat.com>
1058         PR c++/22489
1059         * dwarf2out.c (gen_subprogram_die): Force a declaration die for
1060         lazily declared methods.
1061         (force_decl_die): Stop if forcing out the context already make a
1062         DIE for the decl.
1063         (force_type_die): Likewise.
1065 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
1067         PR middle-end/24820
1068         * builtins.c (integer_valued_real_p): Add break in
1069         REAL_CST having TREE_OVERFLOW set.
1071 2005-11-12  Jie Zhang  <jie.zhang@analog.com>
1073         * config/bfin/bfin.h (REGISTER_NAMES, SHORT_REGISTER_NAMES,
1074         HIGH_REGISTER_NAMES, FIXED_REGISTERS, CALL_USED_REGISTERS,
1075         REG_ALLOC_ORDER, enum reg_class): Rearrange I/B/L registers.
1076         * config/bfin/bfin.md: Redefine REG_ constants for I/B/L registers
1077         in the new order.
1079 2005-11-11  Jason Merrill  <jason@redhat.com>
1081         PR c++/24686
1082         * gimplify.c (gimplify_cleanup_point_expr): Also save and restore 
1083         the cleanup list.
1085 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
1087         * config/bfin/bfin.c (bfin_expand_strmov): Correctly move the trailing
1088         bytes when align is 2.
1089         * config/bfin/bfin.md (rep_movsi, rep_movhi): Make LSETUP be followed
1090         by the first instruction of the loop.
1092 2005-11-11  Jie Zhang  <jie.zhang@analog.com>
1094         * configure.ac: Enable checking assembler dwarf2 support for bfin
1095         target.
1096         * configure: Regenerate.
1098 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1100         PR middle-end/22127
1101         * calls.c (special_function_p): Set ECF_RETURNS_TWICE for getcontext.
1103 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
1105         * dwarf2out.c (multiple_reg_loc_descriptor): Don't assume
1106         DBX_REGISTER_NUMBER being contiguous.
1108 2005-11-08  Bernd Schmidt  <bernd.schmidt@analog.com>
1110         * config/bfin/bfin.c (n_dregs_to_save, n_pregs_to_save,
1111         expand_prologue_reg_save, expand_epilogue_reg_restore): New argument
1112         IS_INTHANDLER; all callers changed.
1113         (n_regs_saved_by_prologue): Take interrupt handler attributes into
1114         account.
1115         (do_link, do_unlink): New argument ALL; all callers changed.
1116         (expand_interrupt_handler_prologue, expand_interrupt_handler_epilogue):
1117         If function isn't leaf, save and restore all registers.
1118         (bfin_function_ok_for_sibcall): Only true if not an interrupt or
1119         exception handler.
1121         * config/bfin/t-bfin-elf (MULTILIB_OPTIONS, MULTILIB_DEFAULTS,
1122         MULTILIB_DIRNAMES, MULTILIB_EXCEPTIONS): New.
1124 2005-11-09  Per Bothner  <per@bothner.com>
1125             Uros Bizjak  <uros@kss-loka.si>
1126         
1127         PR c/24101
1128         * toplev.c (process_options): Initialize debug_hooks early
1129         in case lang_hooks.post_options ends up calling a debug_hook.
1131 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
1133         PR target/19340
1134         * reg-stack.c (reg_to_stack): Update register liveness also
1135         for flag_sched2_use_traces.
1137 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
1139         PR target/24315
1140         * config/i386/i386.md (*pushdi2_rex64 splitter)
1141         (*movdi_1_rex64 splitter, *ashldi3_1 splitter)
1142         (*ashrdi3_1 splitter, *lshrdi3_1 splitter): Delay splitting after
1143         flow2 pass only when (optimize > 0 && flag_peephole2).
1145 2005-11-07  Ian Lance Taylor  <ian@airs.com>
1147         PR rtl-optimization/24683
1148         * config/i386/i386.c (legitimize_pic_address): If constant operand
1149         to PLUS is too large, put it in a register.
1151 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
1153         PR c/24599
1154         * c-typeck.c (build_c_cast): Try using a shared constant, and see
1155         if TREE_OVERFLOW or TREE_CONSTANT_OVERFLOW really changed.
1157         (readonly_error): Fix formatting error.
1159 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
1161         PR rtl-optimization/23567
1162         * ifcvt.c (noce_mem_write_may_trap_or_fault_p): New function.
1163         (noce_process_if_block): Don't do any optimizations except
1164         if (cond) x = x; if !set_b and write into orig_x may trap
1165         or fault.
1167 2005-11-05  Ian Lance Taylor  <ian@airs.com>
1169         PR target/22432
1170         * combine.c (apply_distributive_law): Don't distribute across a
1171         vector mode subreg.
1173 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
1175         PR c++/17964
1176         * diagnostic.c (diagnostic_set_info_translated): New function.
1177         (diagnostic_set_info): Use it.  Add comment.
1178         * diagnostic.h (diagnostic_set_info_translated): Declare.
1180 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
1182         PR middle-end/23155
1183         * gimplifier.c (gimplify_expr): Create a temporary for lvalue
1184         CONSTRUCTOR.
1186 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
1188         PR c/24329
1189         * c-pretty-print.c (pp_c_type_specifier): Do not recurse if
1190         c_common_type_for_mode returns an unnamed type.
1192 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1194         PR rtl-optimization/23585
1195         * rtlanal.c (rtx_addr_can_trap_p_1) <PLUS>: Return 0 for an address
1196         that can't trap plus a constant integer, if the mode has zero size.
1198 2005-11-02  Richard Henderson  <rth@redhat.com>
1200         PR target/24178
1201         * config/alpha/alpha.c (get_aligned_mem): Honor alignment given
1202         by MEM_ALIGN.
1204 2005-11-02  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1206         PR fortran/18452
1207         * gcc/c.opt: Add a -lang-fortran option.
1208         * gcc/c-opts.c: Add a lang_fortran flag.
1209         (c_common_init_options): Handling the -lang-fortran option.
1210         (c_common_handle_option): Add a case for Fortran options in
1211         preprocessing. Remove cases for -ffixed-form and
1212         -ffixed-line-length. Add a case for -lang-fortran.
1214 2005-11-01  Richard Henderson  <rth@redhat.com>
1216         PR 21518
1217         * loop.c (scan_loop): Do not propagate computations to a hard
1218         register destination with SMALL_REGISTER_CLASSES.
1220 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
1222         PR middle-end/24362
1223         * tree-complex.c (extract_component): Treat RESULT_DECL
1224         like the rest of the decls.
1226 2005-10-24  Andrew Pinski  <pinskia@physics.uc.edu>
1228         PR c/23103
1229         * c-format.c (check_format_types): Use
1230         lang_hooks.types_compatible_p
1231         instead of pointer equality when comparing types.
1233 2005-10-21  Andrew Pinski  <pinskia@physics.uc.edu>
1235         PR driver/24473
1236         * gcc.c (main): Use the correct counter for erroring out
1237         about mulitple files.
1239 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
1241         PR target/24465
1242         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Always
1243         use r2 for 64-bit tls .got access.
1245 2005-10-21  Paolo Bonzini  <bonzini@gnu.org>
1247         * dojump.c (do_jump): Handle side-effecting TRUTH_AND_EXPR and
1248         TRUTH_OR_EXPR.
1250 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
1252         PR rtl-optimization/23585
1253         * rtlanal.c (rtx_addr_can_trap_p_1): New predicate extracted from...
1254         (rtx_addr_can_trap_p): ... here.  Invoke rtx_addr_can_trap_p_1.
1255         (may_trap_p_1): New predicate extracted from...
1256         (may_trap_p): ... here.  Invoke may_trap_p_1.
1257         (may_trap_or_fault_p): New predicate.
1258         * rtl.h (may_trap_or_fault_p): Declare it.
1259         * reorg.c (steal_delay_list_from_target): Use may_trap_or_fault_p
1260         instead of may_trap_p.
1261         (steal_delay_list_from_fallthrough): Likewise.
1262         (fill_simple_delay_slots): Likewise.
1263         (fill_slots_from_thread): Likewise.
1264         * function.c (pad_to_arg_alignment): Rework comment about
1265         SPARC_STACK_BOUNDARY_HACK.
1266         * config/sparc/sparc.h: Likewise.
1268 2005-10-19  Ulrich Weigand  <uweigand@de.ibm.com>
1270         * cfgexpand.c (discover_nonconstant_array_refs_r,
1271         discover_nonconstant_array_refs): Move here from tree-outof-ssa.c
1272         (tree_expand_cfg): Call discover_nonconstant_array_refs.
1273         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
1274         discover_nonconstant_array_refs.
1276 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
1278         PR middle-end/23199
1279         * cfgrtl.c (safe_insert_insn_on_edge): Use can_copy_p to detect
1280         whether registers live on the edge can be saved/restored.
1282 2005-10-18  Paolo Bonzini  <bonzini@gnu.org>
1284         PR #19672
1285         * dojump.c (do_jump): Handle TRUTH_AND_EXPR and TRUTH_OR_EXPR here.
1287 2005-10-18  Richard Henderson  <rth@redhat.com>
1289         PR target/24428
1290         * config/i386/i386.c (legitimate_constant_p): Check
1291         SYMBOL_REF_TLS_MODEL directly.  Don't fallthru to SYMBOL_REF
1292         if LABEL_REF.
1293         (legitimate_pic_operand_p): Test SYMBOL_REF_TLS_MODEL directly.
1294         (legitimate_pic_address_disp_p): Reorg CONST checking to make
1295         sure SYMBOL_REF_TLS_MODEL is tested.  Test SYMBOL_REF_TLS_MODEL
1296         directly.
1297         (print_operand_address): Likewise.
1298         * config/i386/predicates.md (x86_64_immediate_operand): Test
1299         SYMBOL_REF_TLS_MODEL properly inside CONST.
1300         (x86_64_zext_immediate_operand): Likewise.
1301         (global_dynamic_symbolic_operand, local_dynamic_symbolic_operand,
1302         initial_exec_symbolic_operand, local_exec_symbolic_operand): Remove.
1303         * config/i386/i386-protos.h: Remove predicates.md entries.
1305 2005-10-17  Alexey Starovoytov  <alexey.starovoytov@sun.com>
1306             Ian Lance Taylor <ian@airs.com>
1308         PR middle-end/23522
1309         * fold-const.c (fold_widened_comparison): Do not allow range based
1310         constant folding when right operand cannot be unwidened.
1312 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
1314         PR c++/22551
1315         * c-common.c (c_add_case_label): Revert my 2005-10-14 clearing of
1316         overflow flags.
1318 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
1320         PR driver/22544
1321         * gcc.c (have_c): New static variable.
1322         (have_o): Likewise.
1323         (process_command): Remove declation of have_c.
1324         Set have_o to 1 when handling -o.
1325         (main): Add a fatel error if there are multiple
1326         files specified and -o and -c/-S is passed witout
1327         -combine or multiple languages.
1329 2005-10-14  Per Bothner  <per@bothner.com>
1331         PR preprocessor/21250
1332         * c-ppoutput.c (print_line): Print internal line 0 as 1.
1334 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
1336         PR c++/22551
1337         * c-common.c (c_add_case_label): Clear LOW_VALUE and HIGH_VALUE's
1338         overflow flags.  Refactor some conditionals.
1340 2005-10-13  Andreas Krebbel  <krebbel1@de.ibm.com>
1342         * expmed.c (expand_shift): Don't use the target of the rotate as
1343         target for the first expanded shift insn.
1344         * testsuite/gcc.dg/20050922-1.c: Testcase added.
1346 2005-10-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1348         PR target/24284
1349         * config/sparc/sparc.c (gen_stack_pointer_inc): Build by hand.
1350         (gen_stack_pointer_dec): Likewise.
1352 2005-10-12  Richard Henderson  <rth@redhat.com>
1354         PR rtl-opt/23324
1355         * cfgexpand.c (add_alias_set_conflicts): Use objects_must_conflict_p.
1357 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
1359         PR c++/19964
1360         * stor-layout.c (place_field): Set DECL_FIELD_OFFSET and
1361         DECL_FIELD_BIT_OFFSET of FIELD_DECLs, even if they have an invalid
1362         type.
1364 2005-10-11  David Edelsohn  <edelsohn@gnu.org>
1366         Backport from mainline:
1367         * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
1368         CTR to LR.
1369         (call_indirect_nonlocal_aix64): Same.
1370         (call_value_indirect_nonlocal_aix32): Same.
1371         (call_value_indirect_nonlocal_aix64): Same.
1372         (call_indirect_nonlocal_sysv): Same.
1373         (call_value_indirect_nonlocal_sysv): Same.
1375 2005-10-11  Bernd Schmidt  <bernd.schmidt@analog.com>
1377         * config/bfin/crti.s (__init, __fini): Renamed from _init, _fini.
1379 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
1381         * config/i386/i386.md (movsi_1, movdi_1_rex64): Use mmxadd type
1382         for setting MMX register to 0 rather than mmx.
1384 2005-10-10  Mark Mitchell  <mark@codesourcery.com>
1386         PR c++/24302
1387         * toplev.c (check_global_declaration_1): Robustify.
1389 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
1391         PR target/24284
1392         * config/sparc/sparc.c (sparc_expand_prologue): Remove bogus PATTERN.
1394 2005-10-10  Maciej W. Rozycki  <macro@linux-mips.org>
1396         * gcc.c (do_spec_1): Accept numeric characters in file name
1397         suffixes.
1399 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
1401         * config/sparc/gmon-sol2.c (internal_mcount): Mark as used.
1403 2005-10-07  James E Wilson  <wilson@specifix.com>
1405         PR target/23644
1406         * doc/invoke.texi (IA-64 Options, item -mtune): Renamed from
1407         -mtune-arch.
1409 2005-10-06 Uros Bizjak <uros@kss-loka.si>
1411         PR target/23570
1412         * config/i386/sse.md (*sse_concatv2sf): Change operand 2 constraint
1413         to "reg_or_0_operand".
1414         (sse2_loadld): Change operand 1 constraint to "reg_or_0_operand".
1416 2005-10-05  Uros Bizjak  <uros@kss-loka.si>
1418         PR target/22585
1419         * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not
1420         force integer op1 into register for XFmode compares.
1422 2005-10-06  Richard Henderson  <rth@redhat.com>
1424         PR debug/24070
1425         * dwarf2out.c (dwarf2out_start_source_file): Print the result
1426         of maybe_emit_file.
1428 2005-10-06  Andrew Pinski  <pinskia@physics.uc.edu>
1430         * varasm.c (make_decl_rtl): Correct error message.
1432 2005-10-05  Andrew Pinski  <pinskia@physics.uc.edu>
1434         PR middle-end/20606
1435         PR middle-end/24069
1436         * reload.c (subst_reloads): When adding a REG_LABEL to a
1437         jump instruction, also update JUMP_LABEL.
1439 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
1441         PR tree-optimization/21419
1442         PR tree-optimization/24146
1443         PR tree-optimization/24151
1445         * c-typeck.c (readonly_error): Handle USE being lv_asm.
1446         (build_asm_expr): Call it if outputs are read-only.
1447         * gimplify.c (gimplify_asm_expr): Remove former fix to PR 21419.
1449 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1451         PR middle-end/23125
1452         * c-decl.c (finish_decl): Use set_user_assembler_name even for
1453         register variables.
1454         * varasm.c (make_decl_rtl): If a register variable does not
1455         have a set user assmbler name, error out.
1456         Decode the asmspec is now name+1 bypassing '*'.
1458 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
1460         PR c/22052
1461         PR c/21975
1462         * c-decl.c (diagnose_mismatched_decls): Fix check for both
1463         decls being "extern inline".
1465 2005-10-04  Ulrich Weigand  <uweigand@de.ibm.com>
1467         PR ada/19382
1468         * builtins.c (fold_builtin_memcmp): When constructing the pointer
1469         type used to access data in the inlined length == 1 case, use
1470         build_pointer_type_for_mode with CAN_ALIAS_ALL set to true.
1471         (fold_builtin_strcmp, fold_builtin_strncmp): Likewise.
1473 2005-10-04  Richard Guenther  <rguenther@suse.de>
1475         PR c/23576
1476         * c-decl.c (grokdeclarator): Don't write to fields
1477         of error_mark_node.
1479 2005-10-03  Kaz Kojima  <kkojima@gcc.gnu.org>
1481         * config/sh/sh.c (sh_register_move_cost): Add case for moving
1482         from T_REGS to FP register class.
1484 2005-10-03  Richard Henderson  <rth@redhat.com>
1486         PR 24135
1487         * tree-nested.c (convert_nl_goto_reference): Lookup a translation
1488         before creating a new one.
1490 2005-10-02  Matthias Klose  <doko@debian.org>
1492         * doc/invoke.texi: Fix typo and speling error.
1494 2005-09-30  Paolo Bonzini  <bonzini@gnu.org>
1495         
1496         PR c/21419
1497         * gimplify.c (gimplify_asm_expr): Raise an error if an output is
1498         read-only.
1500 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
1502         PR middle-end/24109
1503         * c-decl.c (c_write_global_declarations_1): If any
1504         wrapup_global_declaration_2 call returned true, restart the loop.
1506 2005-09-29  Alan Modra  <amodra@bigpond.net.au>
1508         PR target/24102
1509         * config/rs6000/rs6000.md (floatdisf2_internal2): Correct range
1510         check for numbers that need no bit twiddle.
1512 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
1514         * version.c (version_string): Restore date stamp and prerelease
1515         marker.  Increment version.
1516         * doc/include/gcc-common.texi: Increment version.
1518 2005-09-21  Andreas Schwab  <schwab@suse.de>
1520         PR rtl-optimization/23043
1521         * postreload-gcse.c (eliminate_partially_redundant_load): Fix typo
1522         when allocating a struct unoccr.
1524 2005-09-27  Release Manager
1526         * GCC 4.0.2 released.
1528 2005-09-19  Richard Henderson  <rth@redhat.com>
1530         PR 23941
1531         * real.c (exact_real_truncate): Return false if the format cannot
1532         represent the number as a normal.
1534 2005-09-16  Fariborz Jahanian <fjahanian@apple.com>
1536         * config/darwin.c (indirect_data): Fix a typo.
1538 2005-09-14  Alan Modra  <amodra@bigpond.net.au>
1540         * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Treat function name
1541         passed as NAME as if it were label at start of function code.
1543 2005-09-13  Alan Modra  <amodra@bigpond.net.au>
1545         Fix 4.1 version applied in error.
1546         * config/rs6000/rs6000.md (restore_stack_block): Don't use 
1547         gen_frame_mem.
1548         (save_stack_nonlocal, restore_stack_nonlocal): Likewise.
1550         PR target/23774
1551         * config/rs6000/rs6000.md (restore_stack_block): Write the backchain
1552         word before changing the stack pointer.  Use gen_frame_mem for MEMs.
1553         Use UNSPEC_TIE to prevent insn scheduling reordering the insns.
1554         (restore_stack_nonlocal): Likewise.
1555         (save_stack_nonlocal): Use template to emit insns, and gen_frame_mem.
1557 2005-09-12  Alan Modra  <amodra@bigpond.net.au>
1559         * config/rs6000/rs6000.c (get_next_active_insn): Rewrite using
1560         CALL_P, JUMP_P and NONJUMP_INSN_P, so that barriers and labels
1561         are omitted.  Exclude stack_tie insn too.
1563 2005-09-11  Eric Botcazou  <ebotcazou@adacore.com>
1565         * tree.c (contains_placeholder_p) <tcc_expression>: Properly
1566         handle CALL_EXPR again.
1568 2005-09-10  Richard Henderson  <rth@redhat.com>
1570         PR debug/23806
1571         * dbxout.c (dbxout_expand_expr): New.
1572         (dbxout_symbol): Use it.
1574 2005-09-09  Josh Conner  <jconner@apple.com>
1576         PR c++/21135
1577         * expr.c (expand_expr_addr_expr_1): Don't invoke
1578         expand_simple_binop for EXPAND_INITIALIZER.
1580 2005-09-09  Richard Henderson  <rth@redhat.com>
1582         PR debug/20998
1583         * dbxout.c: Include expr.h.
1584         (dbxout_global_decl): Don't suppress for DECL_RTL unset.
1585         (dbxout_symbol): Handle DECL_VALUE_EXPR.
1586         * Makefile.in (dbxout.o): Add EXPR_H.
1588 2005-09-09  Richard Guenther  <rguenther@suse.de>
1590         PR c++/23624
1591         * fold-const.c (fold): Check truth_value_p before calling
1592         invert_truthvalue.
1594 2005-09-08  Richard Henderson  <rth@redhat.com>
1596         PR debug/23190
1597         * toplev.c (wrapup_global_declaration_1): Split out ...
1598         (wrapup_global_declaration_2): ... from ...
1599         (wrapup_global_declarations): ... here.  Return bool.
1600         (check_global_declaration_1): Split out ...
1601         (check_global_declarations): from here.
1602         (emit_debug_global_declarations): New.
1603         * toplev.h (wrapup_global_declaration_1, wrapup_global_declaration_2,
1604         check_global_declaration_1, emit_debug_global_declarations): Declare.
1605         * c-decl.c (c_write_global_declarations_1): Don't create a vector
1606         of decls.  Call wrapup_global_declaration_1,
1607         wrapup_global_declaration_2, check_global_declaration_1 directly.
1608         (c_write_global_declarations_2): New.
1609         (ext_block): New.
1610         (c_write_global_declarations): Call c_write_global_declarations_2.
1611         * langhooks.c (write_global_declarations): Call
1612         emit_debug_global_declarations.
1614 2005-09-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1616         Backport from mainline
1617         2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
1619         * c-decl.c (diagnose_mismatched_decls):  With -Wredundant-decls,
1620         do not issue warning for a variable definition following
1621         a declaration.
1622         
1623 2005-09-08  Richard Guenther  <rguenther@suse.de>
1624             Zdenek Dvorak  <rakdver@gcc.gnu.org>
1626         PR tree-optimization/22348
1627         * tree-ssa-loop-niter.c (number_of_iterations_cond): Fold
1628         MINUS_EXPR.
1630 2005-09-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1632         PR target/23747
1633         * config/m32r.md (movmemsi_internal): Canonicalize order of
1634         operands in PLUS component of template.
1636 2005-09-07  Jakub Jelinek  <jakub@redhat.com>
1638         Backport from mainline
1639         2005-06-08  Richard Henderson  <rth@redhat.com>
1640         * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
1641         * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
1642         Emit out3 load right after alloc.
1643         2005-06-08  Richard Henderson  <rth@redhat.com>
1644         * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
1645         * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
1646         unwind markup.
1647         * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
1649 2005-09-06  Jakub Jelinek  <jakub@redhat.com>
1651         PR c/23075
1652         * c-typeck.c (c_finish_return): Set TREE_NO_WARNING on RETURN_EXPR
1653         if "return with no value, in function returning non-void" warning
1654         has been issued.
1655         * tree-cfg.c (execute_warn_function_return): Don't look at
1656         RETURN_EXPRs with TREE_NO_WARNING set.
1658         PR target/22362
1659         * config/i386/i386.c (ix86_function_regparm): Make sure automatic regparm
1660         for internal functions doesn't use registers used by global registers
1661         variables.  Use fewer register parameters if there are global register
1662         variables.
1664         PR rtl-optimization/23098
1665         * cse.c (fold_rtx): Call delegitimize_address target hook.
1666         * simplify-rtx.c (constant_pool_reference_p): New function.
1667         * rtl.h (constant_pool_reference_p): New prototype.
1668         * config/i386/i386.md (pushf split, mov[sdx]f split): Use
1669         constant_pool_reference_p in condition and
1670         avoid_constant_pool_reference in preparation statements.
1672 2005-09-06  Alan Modra  <amodra@bigpond.net.au>
1674         PR middle-end/21460
1675         * except.c (sjlj_emit_function_enter): Find the function begin
1676         note even when it's not in first basic block.
1678 2005-09-05  James A. Morrison  <phython@gcc.gnu.org>
1680         PR c/23161
1681         PR c/23165
1682         * c-typeck.c (c_finish_if_stmt): Look into STATEMENT_LISTs to see
1683         if the if is really empty.
1685 2005-09-05  James A. Morrison  <phython@gcc.gnu.org>
1687         PR c++/23225
1688         * tree.c (build_pointer_type_for_mode): Robustify.
1690 2005-09-03  Richard Guenther  <rguenther@suse.de>
1691             Andrew Pinski  <pinskia@gcc.gnu.org>
1692             Serge Belyshev  <belyshev@depni.sinp.msu.ru>
1694         PR tree-optimization/23326
1695         * tree-ssa-forwprop.c (substitute_single_use_vars): Only
1696         do transformation if valid.
1698 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
1700         PR rtl-optimization/23454
1701         * reorg.c (relax_delay_slots): Only call invert_jump if any_condjump_p
1702         is true.
1704 2005-09-02  Mark Mitchell  <mark@codesourcery.com>
1706         PR c++/23167
1707         * gimplify.c (gimplify_expr): Handle TREE_ADDRESSABLE types when
1708         generating synthetic loads from volatile lvalues.
1710 2005-09-02  Richard Guenther  <rguenther@suse.de>
1712         PR tree-optimization/15366
1713         * common.opt: Add -finline-functions-called-once.
1714         * doc/invoke.texi: Document new option.
1715         * cgraphunit.c (cgraph_decide_inlining): Honour
1716         flag_inline_functions_called_once.
1718 2005-09-01  Jakub Jelinek  <jakub@redhat.com>
1720         PR c/23506
1721         * c-common.c (c_common_nodes_and_builtins): Increase builtin_types
1722         array by one element, initialize the BT_LAST element with NULL.
1724         PR debug/7241
1725         * dwarf2out.c (base_type_die): Compare char_type_node with
1726         TYPE_MAIN_VARIANT (type), not type.
1728         PR rtl-optimization/23478
1729         * regs.h (reg_info): Add throw_calls_crossed.
1730         (REG_N_THROWING_CALLS_CROSSED): Define.
1731         * flow.c (allocate_reg_life_data): Initialize
1732         REG_N_THROWING_CALLS_CROSSED.
1733         (propagate_one_insn, attempt_auto_inc): Update
1734         REG_N_THROWING_CALLS_CROSSED.
1735         * local-alloc.c (struct qty): Add n_throwing_calls_crossed field.
1736         (alloc_qty): Initialize it.
1737         (update_equiv_regs): Clear REG_N_THROWING_CALLS_CROSSED.
1738         (combine_regs): Combine also n_throwing_calls_crossed fields.
1739         (find_free_reg): Don't attempt to caller-save pseudos crossing
1740         calls that might throw.
1741         * global.c (struct allocno): Add throwing_calls_crossed field.
1742         (global_alloc): Initialize throwing_calls_crossed.
1743         (find_reg): Don't attempt to caller-save pseudos crossing calls that
1744         might throw.
1746 2005-08-31  Richard Henderson  <rth@redhat.com>
1748         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Force subregs
1749         into a pseudo before applying gen_lowpart.
1751 2005-08-30  Richard Henderson  <rth@redhat.com>
1753         PR target/23630
1754         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Use gen_lowpart
1755         whenever the mode sizes match.
1757 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
1759         PR rtl-optimization/15248
1760         * reload1.c (reload): Ignore equivalences between pseudos and
1761         read only memory.
1763 2005-08-29  Paolo Bonzini  <bonzini@gnu.org>
1765         PR bootstrap/21268
1766         * Makefile.in (ALL_CPPFLAGS): Include $(INCLUDES) at the
1767         beginning.  Remove $(INCLUDES) from all the rules, if following
1768         $(ALL_CPPFLAGS) or $(BUILD_CPPFLAGS).
1770 2005-08-28  John David Anglin  <dave.anflin@nrc-cnrc.gc.ca>
1772         PR libgcj/23508
1773         * pa/linux-unwind.h (pa32_fallback_frame_state): Use r0 slot in frame
1774         state for return address column of signal frames.
1776 2005-08-28  Jakub Jelinek  <jakub@redhat.com>
1778         PR ada/23593
1779         * builtins.c (get_memory_rtx): Don't strip nops
1780         in between COMPONENT_REFs.
1782 2005-08-27  David Edelsohn  <edelsohn@gnu.org>
1784         PR target/23539
1785         * config/rs6000/rs6000.c (expand_block_clear): Use HImode when
1786         bytes >= 2 not bytes == 2.
1787         (expand_block_move): Same.
1789 2005-08-27  Ian Lance Taylor  <ian@airs.com>
1791         * combine.c (make_extraction): Avoid reference outside object.
1793 2005-08-27  Richard Guenther  <rguenther@suse.de>
1795         PR target/23575
1796         * config/i386/sse.md (sse2_movsd): Add missing closing
1797         braces.
1799 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
1801         PR rtl-optimization/23561
1802         * builtins.c (get_memory_rtx): Add LEN argument.  If MEM_EXPR is
1803         a COMPONENT_REF, remove all COMPONENT_REF from MEM_EXPR unless
1804         at most LEN bytes long memory fits into the field.
1805         (expand_builtin_memcpy, expand_builtin_mempcpy, expand_movstr,
1806         expand_builtin_strncpy, expand_builtin_memset, expand_builtin_memcmp,
1807         expand_builtin_strcmp, expand_builtin_strncmp): Adjust callers.
1809 2005-08-26  Nick Clifton  <nickc@redhat.com>
1811         * config/v850/v850.c (ep_memory_operand): Return FALSE if
1812         TARGET_EP is not defined.
1813         * config/v850/c850.h (TARGET_CPU_CPP_BUILTINS): Define __EP__ if
1814         TARGET_EP is enabled.
1815         (OPTIMIZATION_OPTIONS): Do not define MASK_EP when optimizing.
1816         * config/v850/v850.md (save_all_interrupt): Only use the EP
1817         register if TARGET_EP is defined.
1818         (restore_all_interrupt): Likewise.
1819         * config/v850/lib1funcs.asm: Update functions so that the EP
1820         register is only used if __EP__ is defined.
1822 2005-08-25  Richard Henderson  <rth@redhat.com>
1824         PR rtl-opt/23560
1825         * loop.c (biased_biv_may_wrap_p): New.
1826         (maybe_eliminate_biv_1): Use it to suppress non-equality
1827         comparison transformations.  Delete disabled code.
1829 2005-08-25  Richard Earnshaw  <richard.earnshaw@arm.com>
1831         * arm.c (arm_const_double_inline_cost): Handle any constant by
1832         using gen_lowpart and gen_highpart_mode.
1833         (note_invalid_constants): All constants in an RTX with a constraint
1834         that permits memory are now pushed to the constant pool.
1835         (output_move_double): Delete code to handle reg to reg and
1836         constant to reg moves.
1837         (const_double_needs_minipool, output_mov_immediate): Delete.
1838         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
1839         CONST_INT and CONST_VECTOR.
1840         * arm.md (ANY64): New mode macro.
1841         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
1842         (movdf_soft_insn): Split reg-reg and const-reg moves.
1843         (split patterns for 64-bit constant and register moves): New.
1844         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
1845         (cirrus_movdf_hard_insn): Likewise.
1846         * fpa.md (movdf_fpa): Likewise.
1847         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
1848         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
1849         constraints.
1850         (movv2si_internal_2): Likewise.
1851         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
1852         (movdf_vfp): Likewise.
1853         * arm-protos.h (output_mov_immediate): Delete prototype.
1855 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
1856         
1857         PR tree-optimization/23546
1858         * tree-ssa-loop-im.c (for_each_index): Handle INTEGER_CST
1859         and REAL_CST nodes.
1861 2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
1863         * config/darwin.c (gen_pic_offset): New.
1864         (machopic_indirect_data_reference,  machopic_legitimize_pic_address):
1865         Use it.
1867 2005-08-24  Alan Modra  <amodra@bigpond.net.au>
1869         * configure.ac (HAVE_LD_NO_DOT_SYMS): Set for powerpc-linux biarch.
1870         * configure: Regenerate.
1872 2005-08-23  Andrew Pinski  <pinskia@physics.uc.edu>
1874         PR target/20799
1875         * config/darwin.c (machopic_select_section): Remove the hack to
1876         mark "::operator new" and "::operator delete" for coalescing
1877         even though they are not weak.
1879 2005-08-23  Paolo Bonzini  <bonzini@gnu.org>
1881         PR middle-end/23517
1882         * fold-const.c (fold_convert): Use VIEW_CONVERT_EXPR to convert
1883         between vectors.
1884         * convert.c (convert_to_integer, convert_to_vector): Likewise.
1886 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
1888         * tree-pass.h (TDF_GRAPH): Define.
1889         * tree-dump.c (dump_options): Don't set TDF_GRAPH in "all".
1890         * passes.c (close_dump_file): Set TDF_GRAPH bit.
1891         (finish_optimization_passes): Only call finish_graph_dump_file
1892         if TDF_GRAPH is set.
1893         * tree-optimize.c (execute_one_pass): Don't call
1894         clean_graph_dump_file here.
1896 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
1898         PR target/21571
1899         * config/rs6000/rs6000.c (rs6000_legitimate_small_data_p): Rename
1900         from legitimate_small_data_p, and make global.  Update use.
1901         Remove forward declaration.
1902         * config/rs6000/rs6000-protos.h (rs6000_legitimate_small_data_p):
1903         Declare.
1904         * config/rs6000/rs6000.md (movdf_hardfloat32): Allow small data mems.
1906 2005-08-23  Alan Modra  <amodra@bigpond.net.au>
1908         PR target/23070
1909         * config/rs6000/rs6000.c (function_arg): For ABI_V4 calls to
1910         stdarg functions, set/clear the fp marker even when no variable
1911         args are passed.
1912         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Describe
1913         -mprototype and -mno-prototype.
1915 2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
1917         PR c/18715
1918         * c-common.c (c_do_switch_warnings): Look for a node where the enum's
1919         value is inbetween the range if we did not find an exact match.
1921 2005-08-21  Jakub Jelinek  <jakub@redhat.com>
1923         * simplify-rtx.c (simplify_immed_subreg) <case CONST_DOUBLE>: Only clear
1924         up to elem_bitsize bits, not max_bitsize.
1926 2005-08-20  Andrew Pinski  <pinskia@physics.uc.edu>
1928         PR middle-end/20624
1929         * gimple-low.c (block_may_fallthru): Handle CLEANUP_POINT_EXPR
1930         by looking past it.
1932 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
1934         * doc/invoke.texi: Fix documentation for -ftree-dominator-opts.
1936 2005-08-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1938         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
1939         HAVE_GAS_MAX_SKIP_P2ALIGN.
1940         (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
1942 2005-08-18  Paolo Bonzini  <bonzini@gnu.org>
1944         PR c/21562
1945         * cfgexpand.c (construct_init_block): Deal properly with the case
1946         of entry edge not pointing to very first basic block.
1948         * loop-iv.c (iv_number_of_iterations): Match the patch that was
1949         applied to mainline for the previous checkin.
1951 2005-08-17  Paolo Bonzini  <bonzini@gnu.org>
1953         PR rtl-optimization/21254
1954         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
1955         assumptions for loops that otherwise do not roll.
1956         (find_simple_exit): Prefer # of iterations that is guaranteed
1957         not to be infinite.
1958         * loop-unroll.c (decide_peel_once_rolling,
1959         decide_peel_completely): Check whether the loop is infinite.
1961 2005-08-16  Ian Lance Taylor  <ian@airs.com>
1963         PR c++/23337
1964         * gimplify.c (gimplify_init_ctor_eval): If we see an element of
1965         vector type, don't try to construct it element by element.  Add an
1966         assertion that we use a FIELD_DECL when building a COMPONENT_REF.
1968 2005-07-20  Steve Ellcey  <sje@cup.hp.com>
1970         PR target/21841
1971         * doc/invoke.texi (-mgnu-ld): Update description.
1972         (-mhp-ld): Ditto.
1974 2005-08-16  James E Wilson  <wilson@specifix.com>
1976         PR tree-optimization/21105
1977         * c-decl.c (grokdeclarator): Use TYPE_SIZE_UNIT not TYPE_SIZE in
1978         TREE_OVERFLOW check.
1980 2005-08-16  Jakub Jelinek  <jakub@redhat.com>
1982         PR rtl-optimization/23299
1983         Backport from mainline
1984         2005-03-16 Dale Johannesen  <dalej@apple.com>
1985         * rtlanal.c (find_first_parameter_load):  Rewrite to
1986         return actual first param load or the call if none,
1987         instead of first in block, when not all loads exist.
1989 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1991         PR middle-end/23369
1992         * fold-const.c (build_range_check): Disable optimization for function
1993         pointer expressions on targets that require function pointer
1994         canonicalization.
1996 2005-08-15  Ian Lance Taylor  <ian@airs.com>
1998         * tree.c (build_string): Mark tree CONSTANT and INVARIANT.
2000 2005-08-14  Andreas Schwab  <schwab@suse.de>
2002         * doc/md.texi (Machine Constraints): Fix misplaced @end table.
2004 2005-08-12  Richard Earnshaw  <richard.earnshaw@arm.com>
2006         PR target/23250
2007         * arm.c (arm_override_options): Use ARM_FLAG_INTERWORK, not
2008         MASK_INTERWORK.
2010 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2012         * config/s390/s390.md ("*movdf_31"): Fix copy-and-paste bug in
2013         previous change.
2015 2005-08-12  Andreas Krebbel  <krebbel1@de.ibm.com>
2017         * config/s390/s390.c (s390_extract_part, s390_single_part):
2018         Type cast added.
2019         (s390_const_ok_for_constraint_p): Added SImode to the N constraint.
2020         (s390_output_mi_thunk): Don't use lg on 31 bit.
2021         * config/s390/s390.md ("*movdi_31", "*movdf_31"): Added lmy and stmy.
2022         ("*llgt_sisi" and splitter): Replaced TARGET_64BIT with TARGET_ZARCH.
2024 2005-08-11  Richard Henderson  <rth@redhat.com>
2026         PR middle-end/23312
2027         * gimplify.c (gimplify_one_sizepos): Check for INTEGER_TYPE
2028         before using TYPE_IS_SIZETYPE.
2030 2005-08-11  Richard Earnshaw  <richard.earnshaw@arm.com>
2032         PR target/23250
2033         * arm.c (arm_override_options): If the user has selected callee-super-
2034         interworking, then enable normal interworking.
2036 2005-08-10  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2038         PR 23309
2039         * config/m32r/m32r.c (m32r_reload_lr): Fix off by one error when
2040         deciding which instruction sequence to use.
2042 2005-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2044         Mostly from Jie Zhang (jie.zhang@analog.com)
2045         * config.gcc: Add bfin-uclinux.
2046         * config/bfin/uclinux.h: New file.
2047         * config/bfin/bfin-modes.def: Update FSF address.
2048         * config/bfin/bfin-protos.h: Likewise.
2049         * config/bfin/bfin.md: Likewise.
2050         * config/bfin/bfin.opt: Likewise.
2051         * config/bfin/crti.s: Likewise.
2052         * config/bfin/crtn.s: Likewise.
2053         * config/bfin/lib1funcs.asm: Likewise.
2054         * config/bfin/predicates.md: Likewise.
2055         * config/bfin/bfin.c: Likewise.
2056         (bfin_return_in_memory): Update to match Visual DSP compiler.
2057         * config/bfin/bfin.h: Update FSF address.
2058         (ASM_OUTPUT_ALIGN): Write alignment in bytes, not log thereof.
2059         * config/bfin/elf.h (NO_IMPLICIT_EXTERN_C): Define.
2061 2005-08-08  Richard Henderson  <rth@redhat.com>
2063         PR 22439
2064         * gimplify.c (gimplify_one_sizepos): Preserve the original type.
2066 2005-08-08  Josh Conner  <jconner@apple.com>
2068         PR rtl-optimization/23241
2069         * combine.c (simplify_comparison): Fix error in determining
2070         whether to lift a subreg from comparison.
2072 2005-08-08  Richard Henderson  <rth@redhat.com>
2074         PR 21894
2075         * tree-nested.c (convert_local_reference): Save and restore val_only
2076         around component_ref and friends.  Clear walk_subtrees by default.
2078 2005-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2080         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Fix loop upper bound.
2082 2005-08-05  Richard Henderson  <rth@redhat.com>
2084         PR 21728
2085         * tree-cfg.c (remove_bb): Transmute DECL_NONLOCAL labels into
2086         FORCED_LABEL labels.
2088 2005-08-04  Richard Henderson  <rth@redhat.com>
2090         PR 21529
2091         * params.def (PARAM_SRA_MAX_STRUCTURE_COUNT): New.
2092         * params.h (SRA_MAX_STRUCTURE_COUNT): New.
2093         * tree-sra.c (decide_block_copy): Use it.  Disable element copy
2094         if we'd have to instantiate too many members.
2096 2005-08-04  Richard Henderson  <rth@redhat.com>
2098         PR 21291
2099         * tree-outof-ssa.c (coalesce_asm_operands): New.
2100         (coalesce_ssa_name): Use it.  Split out ...
2101         (coalesce_phi_operands, coalesce_result_decls): ... these.
2103 2005-08-04  Gerald Pfeifer  <gerald@pfeifer.com>
2105         * doc/install.texi (Binaries): Remove broken link to
2106         Sinix/Reliant Unix binaries.
2108 2005-08-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2110         * pa.c (function_value): Handle small aggregates on 32-bit targets.
2111         (function_arg): Pass small aggregates in general registers on 32-bit
2112         targets.
2113         * som.h (MEMBER_TYPE_FORCES_BLK): Delete define.
2115 2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2117         PR tree-optimization/19899
2118         * Makefile.in (tree-scalar-evolution.o): Add real.h.
2119         * tree-scalar-evolution.c: Include real.h.
2120         (add_to_evolution): Build constant -1 of correct type.
2122 2005-08-03  Gerald Pfeifer  <gerald@pfeifer.com>
2124         * doc/install.texi (Specific): Adjust link to openavr.org.
2125         (Specific): Remove broken reference to GCC 2.8.1 for OS/2.
2126         (Binaries): Adjust HP-UX Porting Center link.
2127         (Binaries): Adjust Free Software Foundation ordering link.
2129 2005-08-02  Richard Guenther  <rguenther@suse.de>
2131         * fold-const.c (tree_expr_nonnegative_p): frexp(x, &e) is
2132         positive if its first argument is positive.
2134 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
2136         PR 23192
2137         * tree-ssa-alias.c (add_pointed_to_var): If VALUE is of the
2138         form &(*PTR), take points-to information from PTR.
2139         Give up by marking PTR as pointing anywhere if VALUE is
2140         not recognized.
2142 2005-08-01  Ian Lance Taylor  <ian@airs.com>
2144         * config/host-linux.c (linux_gt_pch_get_address): Add new name
2145         randomize_va_space for virtual address randomization control.
2147 2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
2149         PR c/22311
2150         * c-typeck.c (build_binary_op): Use common_type wrapper on
2151         shortened types.
2152         (common_type): Update comment.
2154 2005-07-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2156         PR target/21723
2157         * pa.md: Remove fcpy alternative from movhi and movqi patterns.
2158         * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
2159         for complex modes when generating code for PA 1.0.
2160         (VALID_FP_MODE_P): New macro.
2161         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
2162         sets for all general and floating point modes.  Align wide floating
2163         point modes to even register boundaries to comply with architectural
2164         requirements.
2165         (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
2166         * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
2167         (VALID_FP_MODE_P): New macro.
2168         (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P.  Use non-overlapping register
2169         sets for all general and floating point modes.  Align wide floating
2170         point modes to even register boundaries to comply with architectural
2171         requirements.
2173 2005-07-29  Alan Modra  <amodra@bigpond.net.au>
2175         * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
2177 2005-07-28  Richard Henderson  <rth@redhat.com>
2179         PR rtl-opt/22619
2180         * cfgcleanup.c (try_forward_edges): Watch out for end of
2181         insn chain.
2183 2005-07-28  James E Wilson  <wilson@specifixinc.com>
2185         PR c/23106
2186         * doc/invoke.texi (Wstrict-aliasing=2): Fix misleading wording.
2188 2005-07-28  Gerald Pfeifer  <gerald@pfeifer.com>
2190         * doc/install.texi (Configuration): Update Valgrind homepage.
2192 2005-07-28  Richard Henderson  <rth@redhat.com>
2194         PR middle-end/21362
2195         * cfgrtl.c (rtl_merge_blocks): Call maybe_remove_eh_handler on
2196         labels we want to delete.
2197         (cfg_layout_merge_blocks): Likewise.
2199 2005-07-28  Richard Henderson  <rth@redhat.com>
2201         PR target/17692
2202         * config/i386/i386.c (ix86_split_sse_movcc): Emit DELETED note
2203         when expanding to nothing.
2205 2005-07-28  Steven Bosscher  <stevenb@suse.de>
2207         PR debug/20161
2208         * passes.c (rest_of_decl_compilation): If decl is a type and
2209         we have encountered errors, don't emit debug information.
2211 2005-07-27  Bjoern Haase  <bjoern.m.haase@web.de>
2213         PR target/19885
2214         * config/avr/avr.c (TARGET_ASM_ALIGNED_SI_OP): Add.
2215         (TARGET_ASM_UNALIGNED_HI_OP): Add.
2216         (TARGET_ASM_UNALIGNED_SI_OP): Add.
2218 2005-07-26  Diego Novillo  <dnovillo@redhat.com>
2220         PR 22591
2221         * tree-ssa-alias.c (may_alias_p): Remove shortcut that tests
2222         whether a pointer of type T * may point to objects of type T *.
2224 2005-07-26  Bernardo Innocenti  <bernie@develer.com>
2226         Backport from mainline:
2227         2005-07-12  Peter Barada  <peter@the-baradas.com>
2228         PR middle-end/16719
2229         PR middle-end/18421
2230         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Disallow bytes
2231         in address registers.
2232         * config/m68k/m68k.c (hard_regno_mode_ok): Likewise.
2233         * config/m68k/m68k.md: Replace 's' with 'i' in 4th
2234         alternative of addsi3_5200.
2236 2005-07-25  Manfred Hollstein  <mh@suse.com>
2238         * calls.c (store_one_arg): Fix unsigned comparison warning.
2240 2005-07-25  Jakub Jelinek  <jakub@redhat.com>
2242         * calls.c (store_one_arg): Check for sibling call MEM arguments
2243         from already clobbered incoming argument area.
2245 2005-07-23  Mark Mitchell  <mark@codesourcery.com>
2247         * dwarf2out.c (gen_variable_die): Treat un-emitted COMDAT
2248         variables as declarations, rather than definitions.
2250 2005-07-22  Mark Mitchell  <mark@codesourcery.com>
2252         PR debug/21828
2253         * toplev.c (check_global_declarations): Do not mark undefined
2254         variables as DECL_IGNORED_P.
2255         * varasm.c (first_global_object_name): GTY it.
2256         (weak_global_object_name): Likewise.
2257         (notice_global_symbol): Use ggc_strdup, not xstrdup, when creating
2258         a string to go into {weak,first}_global_object_name.
2260 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
2262         PR target/21149
2263         * config/i386/i386.md (sse_movhlps): Fix vec_select values.
2265 2005-07-21  Uros Bizjak  <uros@kss-loka.si>
2267         PR target/22576
2268         * config/i386/i386.md (cmpxf): Change operand constraints
2269         to "nonmemory_operand".
2271 2005-07-21  Richard Sandiford  <richard@codesourcery.com>
2273         PR rtl-optimization/22167
2274         * gcse.c (hoist_code): Fix hoist_exprs[] check.
2276 2005-07-20  Gerald Pfeifer  <gerald@pfeifer.com>
2278         * config.gcc: Add support for *-*-freebsd7, *-*-freebsd8,
2279         and *-*-freebsd9.
2280         * config/freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS): Ditto.
2281         
2282 2005-07-20  Bernd Schmidt  <bernd.schmidt@analog.com>
2284         * config/bfin/bfin.c: Include "langhooks.h".
2285         (def_builtin): Go through lang_hooks to call builtin_function.
2287         * config/bfin/bfin-protos.h (bfin_longcall_p): Declare.
2288         * config/bfin/predicates.md (symbol_ref_operand): New.
2289         (call_insn_operand): Delete.  All callers changed to use
2290         register_no_elim_operand.
2291         * config/bfin/bfin.c (init_cumulative_args): Initialize the new
2292         call_cookie field.
2293         (function_arg): Use it to generate the call's operand 2.
2294         (bfin_longcall_p): New function.
2295         (bfin_expand_call): Extra arg "cookie".  All callers and declaration
2296         changed.  Emit extra USE in the pattern.  Use bfin_longcall_p to
2297         determine if the address needs to be in a REG.
2298         (bfin_handle_longcall_attribute): New function.
2299         (bfin_attribute_table): Add "longcall" and "shortcall".
2300         * config/bfin/bfin.h (CALL_NORMAL, CALL_LONG, CALL_SHORT): New macros.
2301         (TARGET_LONG_CALLS, MASK_LONG_CALLS): New macros.
2302         (TARGET_OPTIONS): Add -mlong-calls, -mno-long-calls.
2303         (CUMULATIVE_ARGS): New member call_cookie.
2304         (PREDICATE_CODES): Add symbol_ref_operand.
2305         * config/bfin/bfin.md (call, call_value, sibcall, sibcall_value): Add
2306         extra USE to the pattern.
2307         (call_symbol, sibcall_symbol, call_value_symbol, sibcall_value_symbol):
2308         New patterns, split off call_insn, sibcall_insn, call_value_insn and
2309         sibcall_value_insn; now the new patterns handle direct calls and the
2310         old ones indirect calls.
2311         * doc/extend.texi: Mention Blackfin in longcall/shortcall docs.
2312         * doc/invoke.texi (Blackfin Options): Add -mlong-call, -mno-long-call.
2314 2005-07-19  Richard Henderson  <rth@redhat.com>
2316         PR tree-opt/22278
2317         * gimplify.c (gimplify_expr): Use main variant type for the temp
2318         destination for a discarded volatile read.
2319         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't elide
2320         casts between non-void types that change volatility.
2322 2005-07-19  Steve Ellcey  <sje@cup.hp.com>
2324         Backport from mainline.
2325         PR target/21721
2326         * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2328 2005-07-18  Ian Lance Taylor  <ian@airs.com>
2330         PR middle-end/22057
2331         * tree-cfg.c (cleanup_tree_cfg): Only remove forwarder blocks when
2332         optimizing.
2334 2005-07-16  Eric Botcazou <ebotcazou@libertysurf.fr>
2336         * doc/install.texi (*-*-solaris2*): Document recommended version
2337         of GNU binutils and mention GNU linker problem on Solaris 10.
2339 2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
2341         PR c/22421
2342         * c-decl.c (c_build_bitfield_integer_type): New function.
2343         (finish_struct): Call it.
2344         * c-pretty-print.c (pp_c_type_specifier): Handle bit-field types.
2346 2005-07-13  Jeff Law  <law@redhat.com>
2348         * fold-const.c (fold): When comparing two simple ADDR_EXPR
2349         expressions, test their _DECL operands for pointer equality rather
2350         than using operand_equal_p.
2352 2005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2354         PR middle-end/20593
2355         * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
2356         the same as the other cast operands.
2357         (output_addressed_constants): Likewise.
2359 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
2361         PR tree-opt/22105
2362         * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
2364 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
2366         PR bootstrap/21704
2367         * host-linux.h: Include limits.h.
2369 2005-07-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2371         * config/bfin/bfin.md (define_attr "type"): Add "sync".
2372         (define_insn_reservation "alu"): Likewise.
2373         (csync, ssync): Now of type sync.
2374         * config/bfin/bfin.h (MASK_CSYNC, TARGET_CSYNC): Removed.
2375         (MASK_CSYNC_ANOMALY, MASK_SPECLD_ANOMALY, TARGET_CSYNC_ANOMALY,
2376         TARGET_SPECLD_ANOMALY): New.
2377         * config/bfin/bfin.c: Include "insn-codes.h".
2378         (bfin_reorg): Extend to handle the CSYNC anomaly as well.
2379         * doc/invoke.texi: Document -mcsync-anomaly, -mspecld-anomaly.
2381         * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2382         New constants.
2383         (csync, ssync): New insn patterns.
2384         * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2385         New functions.
2386         (enum bfin_builtins): New.
2387         (def_builtin): New macro.
2388         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2389         * doc/extend.texi (Blackfin Built-in Functions): New section.
2391 2005-07-11  Aldy Hernandez  <aldyh@redhat.com>
2393         Backport from mainline:
2394         2005-06-15  Aldy Hernandez  <aldyh@redhat.com>
2396         * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
2398         * c-common.c (same_scalar_type_ignoring_signedness): New.
2400         * c-typeck.c (build_binary_op): Check compatability of vector
2401         types.  Move error report after switch.
2402         Do not clobber code[01] on *_DIV_EXPR case.
2404         * testsuite/gcc.dg/simd-1.c: Update error messages.
2405         * testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
2406         messages.
2407         * testsuite/gcc.dg/simd-2.c: Update error messages.
2408         * testsuite/gcc.dg/simd-4.c: New.
2410 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
2412         * config/i386/i386.c (output_set_got): Don't omit OFFSET FLAT:
2413         in Intel syntax add %reg, OFFSET FLAT:_GLOBAL_OFFSET_TABLE_+(.-.Lx).
2415         Backport from the mainline:
2416         2005-06-26  Jakub Jelinek  <jakub@redhat.com>
2417         PR middle-end/22028
2418         * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
2419         earlier in the function.
2421         2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2422         PR debug/21946
2423         * dwarf2out.c (add_loc_descr_op_piece): Move to the
2424         DWARF2_DEBUGGING_INFO section.
2426         2005-06-07  Jakub Jelinek  <jakub@redhat.com>
2427         PR debug/21946
2428         * dwarf2out.c (add_loc_descr_op_piece): New function.
2429         (multiple_reg_loc_descriptor, concat_loc_descriptor,
2430         loc_descriptor): Use it.
2431         * var-tracking.c: Include regs.h and expr.h.
2432         (emit_note_insn_var_location): Skip over pieces where offset
2433         is smaller than previous offset plus previous piece mode size.
2434         Optimize adjacent hard registers or memory locations.
2435         * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2437         2005-06-06  Jakub Jelinek  <jakub@redhat.com>
2438         * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2439         build2.
2441 2005-07-08 Geoffrey Keating  <geoffk@apple.com>
2443         * tree-inline.c (expand_call_inline): Prevent 'may reach end'
2444         warning in system headers.
2446 2005-07-08  Aldy Hernandez  <aldyh@redhat.com>
2448         Backport from mainline:
2450         2005-06-09  Aldy Hernandez  <aldyh@redhat.com>
2451         PR 17961
2452         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Remove.
2453         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Remove vector check.
2454         * testsuite/gcc.dg/simd-3.c: New.
2456 2005-07-08  David Edelsohn  <edelsohn@gnu.org>
2458         Backport from mainline:
2459         2005-06-18  Roger Sayle  <roger@eyesopen.com>
2460         PR target/22083
2461         * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
2463 2005-07-08  Gerald Pfeifer  <gerald@pfeifer.com>
2465         * doc/install.texi (Specific): Do not specify the concrete
2466         versions of GCC provided by Cygwin.  Simplify the part on
2467         building on Cygwin.
2469 2005-07-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2471         PR c/21911
2472         * c-common.c (check_function_sentinel): Pass in named argument
2473         list, skip over named arguments before looking for a sentinel.
2474         (check_function_arguments): Pass in named argument list.
2475         * c-common.h (check_function_arguments): Likewise.
2476         * c-typeck.c (build_function_call): Likewise.
2478 2005-07-08  Joseph S. Myers  <joseph@codesourcery.com>
2480         PR c/22308
2481         * c-decl.c (finish_struct): Also copy C_TYPE_FIELDS_READONLY,
2482         C_TYPE_FIELDS_VOLATILE and C_TYPE_VARIABLE_SIZE to type variants.
2484 2005-07-08  Joseph S. Myers  <joseph@codesourcery.com>
2486         PR c/22013
2487         PR c/22098
2488         * langhooks.h (struct lang_hooks): Add expr_to_decl.
2489         * langhooks.c (lhd_expr_to_decl): New.
2490         * langhooks-def.h (lhd_expr_to_decl, LANG_HOOKS_EXPR_TO_DECL):
2491         New.
2492         (LANG_HOOKS_INITIALIZER): Update.
2493         * tree.c (recompute_tree_invarant_for_addr_expr): Call
2494         expr_to_decl langhook.
2495         * c-tree.h (c_expr_to_decl): Declare.
2496         * c-typeck.c (c_expr_to_decl): New.
2497         (build_unary_op): Do not handle ADDR_EXPR of COMPOUND_LITERAL_EXPR
2498         specially.
2499         * c-objc-common.h (LANG_HOOKS_EXPR_TO_DECL): Define.
2501 2005-07-07  Mark Mitchell  <mark@codesourcery.com>
2503         * version.c (version_string): Set to 4.0.2, in prerelease format.
2504         * doc/include/gcc-common.texi (version): Set to 4.0.2.
2505         
2506 2005-07-07  Release Manager
2508         * GCC 4.0.1 released.
2510 2005-07-01  Jeff Law  <law@redhat.com>
2512         * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
2513         a eliminate type conversion which feeds an equality comparison
2514         if the original type or either operand in the comparison is a
2515         function pointer.
2517 2005-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
2519         PR target/22260
2520         * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
2521         Preserve the 2nd register too, if present.
2522         (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
2523         Adjust call to emit_and_preserve.
2525 2005-06-24  Mark Mitchell  <mark@codesourcery.com>
2527         PR 22171
2528         * tree-ssa-operands (get_expr_operands): Check s_ann for NULL
2529         before use.
2531 2005-06-23  Mark Mitchell  <mark@codesourcery.com>
2533         Backport:
2534         2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
2535         PR middle-end/21985
2536         * fold-const.c (split_address_to_core_and_offset): Always return
2537         the address of the base object.
2539         PR 22000
2540         * tree-ssa-operands.c (get_expr_operands): Check the volatility of
2541         the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
2543 2005-06-20  Jan Beulich  <jbeulich@novell.com>
2545         * config/i386/netware-libgcc.def: Update copyright.
2546         * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
2547         __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
2548         * config/i386/netware.c (gen_stdcall_decoration,
2549         gen_fastcall_decoration): Merge into ...
2550         (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
2551         WinNT's changes.
2552         (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
2553         (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
2554         * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
2555         libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
2556         * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
2557         use of NX_MUTEX_RECURSIVE.
2559 2005-06-17  Jakub Jelinek  <jakub@redhat.com>
2561         PR middle-end/21850
2562         * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2563         from vector types.
2565 2005-06-14  Jakub Jelinek  <jakub@redhat.com>
2567         PR tree-optimization/22043
2568         * gimplify.c (gimplify_init_constructor): If num_type_elements < 0
2569         for a constant-sized object, set cleared as well.
2571 2005-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2573         PR target/20301
2574         * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
2575         unsigned index numbers.
2577 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2579         PR tree-optimization/21171
2580         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
2581         record address uses if the reference is volatile.
2583 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2585         PR target/21889
2586         * config/sparc/sol2.h (ASM_OUTPUT_DWARF_DTPREL): Undefine.
2587         * config/sparc/sol2-gas.h (ASM_OUTPUT_DWARF_DTPREL): Redefine.
2589 2005-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2591         PR tree-opt/19768
2592         * tree-ssa-dse.c: Revert accidental committed patch.
2594 2005-06-07  Richard Henderson  <rth@redhat.com>
2596         PR rtl-opt/21528
2597         * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2599 2005-06-07  Steven Bosscher  <stevenb@suse.de>
2601         PR tree-optimization/21847
2602         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2603         -fnon-call-exceptions, also mark statements inherently
2604         necessary if they may throw.
2606 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
2608         * intl.h (G_): New macro.
2609         * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2610         instead of msgid for argument name.
2611         * tree-ssa.c (warn_uninit): Likewise.
2612         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2613         * config/darwin-c.c (BAD): Likewise.
2614         * config/c4x/c4x-c.c (BAD): Likewise.
2615         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2616         * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2617         * c-common.c (c_parse_error): Likewise.
2618         * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2619         pedwarn, error, sorry, fatal_error, internal_error): Likewise.
2620         (fnotice): Use cmsgid instead of msgid for argument name.
2621         * gcov.c (fnotice): Likewise.
2622         * protoize.c (notice): Likewise.
2623         * final.c (output_operand_lossage): Likewise.
2624         * gcc.c (fatal, notice): Likewise.
2625         (error): Use gmsgid instead of msgid for argument name.
2626         * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2627         of msgid for argument name.
2628         (error): Use gmsgid instead of msgid for argument name.
2629         * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2630         instead of N_().
2631         * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2632         * tree-inline.c (inline_forbidden_p_1): Likewise.
2633         * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
2634         conventions for marking translations.
2635         * doc/install.texi: Mention gettext 0.14.5 or later requirement.
2637 2005-06-06  Sebastian Pop <pop@cri.ensmp.fr>
2639         PR tree-optimization/20742
2640         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
2641         default value 20.
2642         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
2643         and fold build with fold_buildN.
2644         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
2645         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
2646         (tree_contains_chrecs): Compute an estimation of the size of the
2647         given expression.
2648         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
2649         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
2650         * tree-scalar-evolution.c (simple_iv): Ditto.
2651         * doc/invoke.texi (scev-max-expr-size): Documented.
2653 2005-06-04  Richard Henderson  <rth@redhat.com>
2655         PR target/21888
2656         * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2657         until we've passed initial ldgp.
2659 2005-06-04  David Edelsohn  <edelsohn@gnu.org>
2661         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
2663 2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
2665         PR c/21873
2666         * c-typeck.c (push_init_level): Don't pop levels without braces if
2667         implicit == 1.
2669 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
2671         PR c/21879
2672         * c-decl.c (start_function): Restore label_context_stack_se and
2673         label_context_stack_vm  if returning with an error.
2675 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
2677         * tree.c (build_common_builtin_nodes): Fix the return type on
2678         __builtin_memcmp.
2680 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
2682         PR c/21536
2683         PR c/20760
2684         * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
2685         on variable sizes types if a decl is a pointer to a VLA.
2686         (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
2687         Call gimplify_type_sizes on aggregate fields.  Prevent infinite
2688         recursion.
2690         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
2691         _mm_set_ps, _mm_setr_ps): Add __extension__.
2692         * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
2693         _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
2694         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
2695         Likewise.
2696         (_mm_clflush): Don't use return in void function.
2698         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
2699         _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
2700         Use __inline instead of inline.
2702 2005-06-01  Richard Henderson  <rth@redhat.com>
2704         * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
2705         * config.in, configure: Rebuild.
2706         * config/alpha/alpha.c (print_operand): Add 'j'.
2707         * alpha.md (divmodsi_internal_er_1): Use it.
2708         (divmoddi_internal_er_1): Likewise.
2710 2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
2712         PR tree-optimization/21817
2713         * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
2715 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
2717         PR middle-end/20931
2718         PR middle-end/20946
2719         * fold-const.c (fold_checksum_tree): Copy types also if
2720         TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
2721         Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
2722         first.
2723         Tail recurse TREE_LIST's TREE_CHAIN.
2725 2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
2727         * doc/install.texi (sparc-sun-solaris2*): Update note
2728         about Sun bug 4910101.
2729         (sparc-sun-solaris2.7): Document bootstrap
2730         failure with Sun WorkShop 6 99/08/18 as.
2732 2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
2734         PR middle-end/21595
2735         * builtins.c (fold_builtin_constant_p): Handle
2736         &"string cst"[0] as constant.
2738 2005-05-26  Ulrich Weigand  <uweigand@de.ibm.com>
2740         Backport from mainline:
2741         2005-05-26  Ian Lance Taylor  <ian@airs.com>
2742         * reload1.c (verify_initial_elim_offsets): Add braces to avoid
2743         having a declaration after a statement.
2745 2005-05-26  Jakub Jelinek  <jakub@redhat.com>
2747         PR target/21716
2748         * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
2749         found in the basic block and last insn in the basic block is not
2750         INSN_P.  Remove explicit unspec numbers that are no longer valid
2751         from comments.
2753 2005-05-26  Ralf Corsepius  <ralf.corsepius@rtems.org>
2755         * config/rs6000/t-rtems: Remove roe multilib variant.
2757 2005-05-25  Jakub Jelinek  <jakub@redhat.com>
2759         PR middle-end/21492
2760         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
2761         src2 if src2 has been split.
2763 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
2765         * reload1.c (verify_initial_elim_offsets): Return boolean status
2766         instead of aborting.
2767         (reload): Adapt verify_initial_elim_offsets call site.  Restart
2768         main loop if some initial elimination offsets changed.
2770 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2772         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
2773         nothing was done.
2774         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
2775         nothing then FAIL.
2776         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
2777         prototype.
2779 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2781         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
2782         saving less registers than the replacement.
2784 2005-05-23  Jan Beulich  <jbeulich@novell.com>
2786         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
2787         missing return statement.
2789 2005-05-21  Andrew Pinski  <pinskia@physics.uc.edu>
2791         PR middle-end/21331
2792         PR tree-opt/21293
2793         Backport from the mainline:
2794         2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2795         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
2796         integer_zerop.
2797         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
2798         constants invariant.
2800 2005-05-19  Richard Henderson  <rth@redhat.com>
2802         PR target/21390
2803         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move
2804         TFmode code swapping ...
2805         (alpha_emit_xfloating_compare): ... here.
2806         (alpha_emit_setcc): Update to match.
2807         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
2809 2005-05-19  Jie Zhang  <jie.zhang@analog.com>
2810             Bernd Schmidt  <bernd.schmidt@analog.com>
2812         * config/bfin/bfin.c (branch_dest): Add comment why it's
2813         necessary.
2814         * config/bfin/bfin.md (attr "length" default): Change the offset of
2815         forward conditional branch of length 4 from 4096 to 4092.
2817 2005-05-18  Richard Henderson  <rth@redhat.com>
2819         PR target/21657
2820         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
2821         memory indirection in local-dynamic case.
2823 2005-05-18  Richard Henderson  <rth@redhat.com>
2825         PR target/21632
2826         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
2827         small_addr_symbolic_operand.
2829 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2831         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
2832         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
2833         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
2834         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
2835         the default on Solaris too.
2837 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
2839         PR tree-optimization/21610
2840         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
2841         returning DECL, call unshare_expr.
2843         * varasm.c (struct constant_descriptor_tree): Add hash field.
2844         (const_desc_hash): Just return hash field.
2845         (const_desc_eq): If hash values are different, return 0 immediately.
2846         (output_constant_def): Compute hash field of temporary key, use
2847         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
2848         newly built constant descriptor.
2849         (lookup_constant_def): Compute hash field of temporary key, use
2850         htab_find_with_hash instead of htab_find.
2852 2005-05-16  Richard Henderson  <rth@redhat.com>
2854         PR target/21556
2855         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
2856         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
2857         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
2858         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
2859         add_tprel22): Remove mode from symbolic operand.
2861 2005-05-15  Mark Mitchell  <mark@codesourcery.com>
2863         Backport:
2864         2005-05-09  Mark Mitchell  <mark@codesourcery.com>
2865         PR 18655
2866         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
2867         before outputting DWARF_FRAME_RETURN_COLUMN.
2869 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
2871         PR target/21551
2872         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
2874 2005-05-13  David Edelsohn  <edelsohn@gnu.org>
2876         PR middle-end/21237
2877         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2878         to NE_EXPR case.
2880 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
2882         Revert:
2883         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
2884         * fold-const.c (fold_indirect_ref_1): Avoid removing
2885         NOP_EXPRs with type qualifiers like const.
2887 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
2888         
2889         Fix PR tree-optimization/21532
2890         * tree-ssa-pre.c (create_expression_by_pieces): stmt
2891         needs to go onto the inserted_exprs list.
2893 2005-05-12  Richard Henderson  <rth@redhat.com>
2895         PR target/21412
2896         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
2897         (ia64_cannot_force_const_mem): New.
2898         (tls_symbolic_operand_type): New.
2899         (ia64_legitimate_constant_p): New.
2900         (ia64_expand_load_address): Return true on success.  Improve
2901         checks for when we should not split.
2902         (ia64_expand_tls_address): New addend operand.  Distribute it
2903         as appropriate to the tls_kind.  Delay referencing gp.
2904         (ia64_expand_move): Split symbolic addend as necessary.  Handle
2905         tls symbols with addends.
2906         * config/ia64/ia64-protos.h: Update.
2907         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
2908         p0, f0, f1, and r13.
2909         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
2910         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
2911         (symbolic_operand splitter): Pass everything through
2912         ia64_expand_load_address and FAIL or DONE as appropriate.
2913         (load_fptr): Only accept after reload.
2914         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
2915         load_symptr_low, load_ltoff_dtpmod,
2916         (load_dtpmod): New.
2917         (load_dtprel): Only accept tls symbols.
2918         (load_dtprel64, load_dtprel22): Likewise.
2919         (load_tprel, load_tprel64, load_tprel22): Likewise.
2920         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
2921         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
2922         (add_dtprel14, add_dtprel22): Likewise.
2923         (add_tprel, add_tprel14, add_tprel22): Likewise.
2924         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
2925         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
2926         (got_symbolic_operand): Check CONST offsets.
2927         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
2928         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
2929         (move_operand): Don't handle tls here.  Check CONST offsets.
2931 2005-05-11  James A. Morrison  <phython@gcc.gnu.org>
2933         PR tree-optimization/21085
2934         * fold-const (fold): Don't change X % -C to X % C if C has
2935         overflowed.
2937 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
2939         * fold-const.c (fold_indirect_ref_1): Avoid removing
2940         NOP_EXPRs with type qualifiers like const.
2942 2005-05-11  Richard Henderson  <rth@redhat.com>
2944         PR c/21502
2945         * c-decl.c (finish_decl): Propagate the completed array type of
2946         a global variable into the binding.
2948 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2950         * config/sparc/sparc.c (mem_min_alignment): Do not rely
2951         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
2953 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
2955         PR c/21342
2956         * c-decl.c (pushdecl): When there is a declaration in the current
2957         scope and the declarations are external linkage, check for
2958         compatibility with the type in the external scope and update the
2959         type in the external scope with the composite type information.
2960         Do not form a composite type of the new type and the visible type
2961         if they are incompatible.
2963 2005-05-10  Michael Matz  <matz@suse.de>
2965         from trunk:
2966         2005-04-28  James E Wilson  <wilson@specifixinc.com>
2968         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
2969         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
2971 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
2973         PR other/21052
2974         * doc/extend.texi (Type Attributes): Correct example syntax.
2976 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
2978         PR c/21160
2979         * doc/invoke.texi (-Wuninitialized): Update documentation.
2981 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
2983         PR target/21397
2984         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2985         (arm_override_options): Use them instead of manifest constants.  Don't
2986         allow -march to override the -mtune setting.
2988 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
2990         * config/ia64/ia64.c (ia64_override_options): Don't set
2991         ia64_flag_var_tracking and clear flag_var_tracking here...
2992         (ia64_file_start): ... but here.
2994 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2996         * config/m68hc11/m68hc11.c (m68hc11_z_replacement): Use emit_insn_after
2997         when adding the save Z instruction so that it is part of the good BB.
2998         (reg_or_some_mem_operand): Do not allow the 68HC12 address indirect
2999         addressing mode as it is not supported by bset and bclr.
3000         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
3001         addressing with movw.
3002         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
3003         68HC12.
3004         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
3005         for 68HC11.
3006         ("*movhi_68hc12"): Handle movhi_const0.
3007         ("*subhi3", "subqi3"): Use general_operand for operand 1.
3008         ("*subhi3_zext"): Likewise.
3010 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
3012         PR target/19051
3013         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for operand
3014         1 and fix constraints.
3015         ("mulqihi3"): Use general_operand for operand 2.
3017 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
3019         PR target/21416
3020         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
3021         comparisons.
3022         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
3023         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
3024         including sunge_<mode> and sungt_<mode>.
3026 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
3028         PR target/16925
3029         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
3030         64-bit constants on 64-bit hosts.
3031         (m68hc11_split_logical): Simplify.
3032         (m68hc11_split_move): Likewise.
3034 2005-05-07  Anthony Green  <green@redhat.com>
3036         PR bootstrap/21403
3037         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
3038         x$STMP_FIXPROTO test.
3039         * configure: Rebuilt.
3041 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
3043         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
3044         inappropriate feature test macros if flag_iso.
3046 2005-05-07  Richard Henderson  <rth@redhat.com>
3048         PR target/21412
3049         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
3050         with constant offsets.
3052 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
3054         PR rtl-optimization/21330
3055         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
3056         returning non-NULL.
3057         (unswitch_single_loop): Clear cinsn when retrying.
3059         PR c++/20961
3060         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
3061         if both NEWDECL and OLDDECL are already weak.
3063 2005-05-05  Jeff Law  <law@redhat.com>
3065         PR tree-optimization/21380
3066         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
3067         thread through a block with no preds.
3069 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
3071         * config.gcc (hppa1.1-*-rtems*): Obsolete.
3073 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
3075         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3076         Exclude roe/603e multilib variants.
3078 2005-05-04  Denis Chertykov  <denisc@overta.ru>
3080         PR target/21284
3081         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
3082         for output.
3084 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
3086         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
3088 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
3090         PR middle-end/21265
3091         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
3092         (clear_storage): Add argument.
3093         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
3094         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
3095         tailcall.
3096         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
3097         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
3098         (store_expr, store_constructor): Adjust callers.
3099         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
3100         to emit_block_move if CALL_EXPR_TAILCALL (exp).
3101         (expand_builtin_memmove): Add ORIG_EXP argument, copy
3102         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
3103         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
3104         with EXP.  Pass EXP to expand_builtin_memmove.
3105         (expand_builtin_memset): Add ORIG_EXP argument, pass
3106         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
3107         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
3108         Pass EXP to expand_builtin_memset.
3109         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
3110         the new CALL_EXPR.
3111         (expand_builtin_strncmp): Likewise.
3112         (expand_builtin_printf): Replace ARGLIST argument with EXP.
3113         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
3114         (expand_builtin_fprintf): Likewise.
3115         (expand_builtin): Adjust calls to
3116         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
3118         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
3119         item in V4SF mode.
3121         PR rtl-optimization/21239
3122         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
3124         PR target/21297
3125         * config/i386/i386.c (legitimize_address): When canonicalizing
3126         ASHIFT into MULT, multiply by 1 << shift_count instead of
3127         1 << log2 (shift_count).
3129 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
3131         PR target/16888
3132         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
3133         for unavailable registers.
3135 2005-05-03  Dorit Naishlos  <dorit@il.ibm.com>
3137         * doc/passes.texi: Document vectorization pass.
3139 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
3141         PR c/15698
3142         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
3143         * c-decl.c (current_function_prototype_built_in,
3144         current_function_prototype_arg_types): New.
3145         (merge_decls): Keep source location of prototype followed by
3146         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
3147         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
3148         (start_function): Always set current_function_prototype_locus,
3149         current_function_prototype_built_in and
3150         current_function_prototype_arg_types.  Check for external
3151         prototype whether or not visible for external function and set
3152         current_function_prototype_arg_types accordingly.
3153         (store_parm_decls_oldstyle): Use
3154         current_function_prototype_arg_types for checking old-style
3155         definition against prototype.  Give warnings only if
3156         current_function_prototype_built_in).
3158 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
3160         PR 19985
3161         * gcov-io.h: Declare gcov external functions hidden.
3163 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
3165         * doc/install.texi (Specific): Omit dots in the @anchors names
3166         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
3167         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
3169 2005-05-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3171         PR bootstrap/20633
3172         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3174 2005-05-01  Michael Matz  <matz@suse.de>
3176         PR c++/19542
3177         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
3178         (warn_strict_null_sentinel): Define.
3179         (check_function_sentinel): Check for null_node as valid sentinel too.
3180         * c-common.h (c_tree_index): Added CTI_NULL.
3181         (null_node) Define global_tree[CTI_NULL].
3182         (warn_strict_null_sentinel): Declare.
3183         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
3184         * c.opt: (Wstrict-null-sentinel): New C++ option.
3185         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
3187 2005-04-30  Paul Brook  <paul@codesourcery.com>
3189         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3190         thumb mode.
3191         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3192         * config/arm/ieee754-sf.S: Ditto.
3193         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3194         (FUNC_ALIAS): Use .thumb_set for thumb routines.
3196 2005-04-29  Michael Matz  <matz@suse.de>
3198         * config/i386/i386.md (movmemsi): Also active when
3199         TARGET_INLINE_ALL_STRINGOPS.
3201 2005-04-29  Michael Matz  <matz@suse.de>
3203         PR rtl-optimization/21144
3204         * postreload.c (reload_cse_move2add): Check for VOIDmode.
3206 2005-04-29  Alan Modra  <amodra@bigpond.net.au>
3208         PR target/21098
3209         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
3210         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
3212 2005-04-28  James E Wilson  <wilson@specifixinc.com>
3214         * doc/install.texi: Update -enable-languages info.  Correct path to
3215         html docs.
3217 2005-04-19  Andrew Haley  <aph@redhat.com>
3218         
3219         PR java/21022
3220         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
3221         looking at a field's bitpos.
3223 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3225         * config.gcc: Obsolete c4x-* and tic4x-*.
3227 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
3229         * c-typeck.c (build_compound_expr): Correct logic in last change.
3231 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3233         PR c/21159
3234         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
3235         being a compound expression whose right-hand side is cast to void.
3237 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3239         PR c/21213
3240         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
3241         transparent union.
3243 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
3245         PR c/20740
3246         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
3247         assertion failures, if __gcc_host_wide_int__ is not properly
3248         defined.
3249         (init_dynamic_diag_info): Give errors, not assertion failures, if
3250         location_t, tree or __gcc_host_wide_int__ are not properly
3251         defined.
3253 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3255         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
3256         gensupport.c, protoize.c, toplev.c: Replace calls to
3257         `unlock_stream' with `unlock_std_streams'.
3259 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3261         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
3263 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3265         PR bootstrap/21215
3266         * doc/install.texi: Document correct assembler and linker to use
3267         on i?86-*-solaris2.10.
3269 2005-04-25  Daniel Berlin  <dberlin@dberlin.org>
3271         Fix PR tree-optimization/21173
3272         
3273         * tree-ssa-pre.c (create_expression_by_pieces): Call unshare_expr
3274         on things we pass to force_gimple_operand.  Don't try to special
3275         case min_invariants.
3277 2005-04-25  Bernd Schmidt  <bernd.schmidt@analog.com>
3279         * config/bfin/bfin-modes.def: New file.
3280         * config/bfin/bfin-protos.h: New file.
3281         * config/bfin/bfin.c: New file.
3282         * config/bfin/bfin.h: New file.
3283         * config/bfin/bfin.md: New file.
3284         * config/bfin/crti.s: New file.
3285         * config/bfin/crtn.s: New file.
3286         * config/bfin/elf.h: New file.
3287         * config/bfin/lib1funcs.asm: New file.
3288         * config/bfin/predicates.md: New file.
3289         * config/bfin/t-bfin: New file.
3290         * config/bfin/t-bfin-elf: New file.
3291         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
3292         Document new attributes.
3293         (interrupt, interrupt_handler, saveall): Update documentation for
3294         these attributes.
3295         * doc/install.texi (Specific): Add entry for the Blackfin.
3296         * doc/invoke.texi (Blackfin Options): New section.
3297         * doc/md.texi (Blackfin family): New section to document constraints.
3298         * config.gcc: Add bfin*-* and bfin*-elf configurations.
3300 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
3302         * config.gcc (avr-*-*): Remove redundant "case".
3304 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
3306         PR target/17822
3307         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
3309 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3311         PR/17092
3312         * configure.ac (gcc_UNLOCKED_FUNCS): New.
3313         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
3314         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
3315         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
3316         _unlocked function.
3317         (fwrite_unlocked): Fix prototype.
3318         
3319         * configure, config.in: Regenerate.
3321         * system.h (fopen, fdopen, freopen): Define these to the unlocked
3322         libiberty functions.
3324         * collect2.c (main): Unlock the stdio streams.
3325         * gcc.c (main): Likewise.
3326         * gcov-dump.c (main): Likewise.
3327         * gcov.c (main): Likewise.
3328         * gen-protos.c (main): Likewise.
3329         * gensupport.c (init_md_reader_args_cb): Likewise.
3330         * protoize.c (main): Likewise.
3331         * toplev.c (general_init): Likewise.
3333 2005-04-24  Richard Henderson  <rth@redhat.com>
3335         PR rtl-opt/21163
3336         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
3337         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
3338         constm1_rtx.
3339         <XOR, AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
3340         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
3341         <DIV, MOD>: Likewise.
3343 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
3345         PR middle-end/20991
3346         * cgraph.h (cgraph_local_info): Add vtable_method field.
3347         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
3348         and node is vtable_method, finalized and not reachable, don't do
3349         anything.
3351         Revert:
3352         2005-04-18  Jakub Jelinek  <jakub@redhat.com>
3353         * tree-ssa-ccp.c (fold_stmt): Don't optimize OBJ_TYPE_REFs if that
3354         would result in an already finalized unreachable node becoming
3355         reachable while cgraph_global_info_ready.
3357 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
3359         PR target/17824
3360         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
3362 2005-04-24  Richard Henderson  <rth@redhat.com>
3364         PR target/21101
3365         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
3366         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
3367         Deny modes smaller than 4 bytes.
3368         * config/i386/i386-protos.h: Update.
3370 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
3372         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
3373         Switch h8300-*-rtems* to ELF.
3375 2005-04-23  Richard Henderson  <rth@redhat.com>
3377         * simplify-rtx.c (simplify_binary_operation): Fix second instance
3378         later in the same function.
3380         PR rtl-opt/21102
3381         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
3382         performing some integral scalar simplifications.
3384 2005-04-23  Richard Henderson  <rth@redhat.com>
3386         PR target/21100
3387         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
3389 2005-04-23  Richard Henderson  <rth@redhat.com>
3391         PR target/21099
3392         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
3393         simplifying CONST_VECTOR.
3395 2005-04-22  James E Wilson  <wilson@specifixinc.com>
3397         PR c++/20805
3398         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
3399         is another declaration.
3401 2005-04-22  Michael Matz  <matz@suse.de>
3403         PR middle-end/20973
3404         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
3405         pseudos.
3407 2005-04-22  David Edelsohn  <edelsohn@gnu.org>
3409         Backport from mainline.
3410         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Set TFmode
3411         optabs to xlq names if TARGET_XL_COMPAT.
3413 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
3415         PR c/12913
3416         * c-tree.h (struct c_label_list): Update comment.
3417         (struct c_label_context): Rename to struct c_label_context_se.
3418         (label_context_stack): Rename to label_context_stack_se.
3419         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
3420         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
3421         c_end_vm_scope): New.
3422         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
3423         * c-decl.c (pop_scope): Call c_end_vm_scope.
3424         (pushdecl): Call c_begin_vm_scope for variably modified
3425         declarations.
3426         (define_label): Check for jumping into scope of identifier with
3427         variably modified type.  Push label on stack for those defined at
3428         current context of identifiers with variably modified type.
3429         (start_function): Create stack level for context of identifiers
3430         with variably modified type.
3431         (finish_function): Pop stack level for context of identifiers with
3432         variably modified type.
3433         * c-typeck.c (label_context_stack): Rename to
3434         label_context_stack_se.
3435         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
3436         (c_finish_goto_label): Check for jumping into scope of identifier
3437         with variably modified type.  Push label on stack for those jumped
3438         to from current context of identifiers with variably modified
3439         type.
3440         (struct c_switch): Add blocked_vm.
3441         (c_start_case): Initialize blocked_vm.
3442         (do_case): Check blocked_vm.
3443         (c_finish_case): Add comment.
3444         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
3445         variable label_context_stack.
3447 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
3449         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
3450         (decl).
3452 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3454         * doc/invoke.texi (SPARC options): Document that -mapp-regs
3455         is turned off by default on Solaris.
3457 2005-04-21  Mark Mitchell  <mark@codesourcery.com>
3459         * version.c (version_string): Restore prerelease information.
3460         * doc/include/gcc-common.texi (version): Set to 4.0.1.
3462 2005-04-20  Release Manager
3464         * GCC 4.0.0 released.
3466 2005-04-18  Jakub Jelinek  <jakub@redhat.com>
3468         PR middle-end/20991
3469         * tree-ssa-ccp.c (fold_stmt): Don't optimize OBJ_TYPE_REFs if that
3470         would result in an already finalized unreachable node becoming
3471         reachable while cgraph_global_info_ready.
3473 2005-04-19  Ben Elliston  <bje@au.ibm.com>
3475         * doc/invoke.texi (Optimize Options): Refer to the correct
3476         optimisation flag -ftree-dominator-opts, not -ftree-dom.
3478 2005-04-17  Daniel Berlin  <dberlin@dberlin.org>
3480         Fix PR tree-optimization/20490
3481         Fix PR tree-optimization/20929
3483         * tree-ssa-pre.c (create_expression_by_pieces): Use
3484         force_gimple_operand on result of fold, value number
3485         gimple_operand result.
3487 2005-04-17  Joseph S. Myers  <joseph@codesourcery.com>
3489         Merge from mainline:
3491         2005-02-28  Geert Bosch  <bosch@gnat.com>
3493                 PR ada/15977
3494                 * doc/contrib.texi: List contributors for Ada front end
3496         2005-03-14  Geoffrey Keating  <geoffk@apple.com>
3498                 * doc/cppopts.texi (-fexec-charset): Add concept index
3499                 entry.
3500                 (-fwide-exec-charset): Likewise.
3501                 (-finput-charset): Likewise.
3503         2005-04-15  David Edelsohn  <edelsohn@gnu.org>
3505                 * doc/install.texi (*-ibm-aix*): Add comment about system
3506                 limits.
3508 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
3510         * combine.c (combine_simplify_rtx): Remove a transformation that
3511         relies on an invalid assumption about rtl sign-extension semantics.
3513 2005-04-17  Richard Henderson  <rth@redhat.com>
3515         PR target/20375
3516         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
3517         of CUMULATIVE_ARGS past the last named argument.
3518         (alpha_va_start): Expect pretend_args_size only if strictly less than
3519         6 named arguments.
3520         * config/alpha/alpha.h (TARGET_FP, TARGET_FPREGS, TARGET_GAS,
3521         TARGET_IEEE_CONFORMANT, TARGET_IEEE, TARGET_IEEE_WITH_INEXACT,
3522         TARGET_BUILD_CONSTANTS, TARGET_FLOAT_VAX, TARGET_BWX, TARGET_MAX,
3523         TARGET_FIX, TARGET_CIX, TARGET_EXPLICIT_RELOCS, TARGET_SMALL_DATA,
3524         TARGET_TLS_KERNEL, TARGET_SMALL_TEXT, TARGET_LONG_DOUBLE_128,
3525         TARGET_CPU_EV5, TARGET_CPU_EV6, TARGET_SUPPORT_ARCH): Booleanize.
3527 2005-04-17  Alexandre Oliva  <aoliva@redhat.com>
3529         PR middle-end/20739
3530         * gimplify.c (gimplify_addr_expr): Compensate for removal of
3531         e.g. cv-qualification conversions.
3533 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
3535         * doc/install.texi (Specific): Avoid using asterisks in @anchor
3536         names related to target triplets.
3537         Remove i?86-*-esix from platform directory.
3538         Remove powerpc-*-eabiaix from platform directory.
3540 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
3542         PR middle-end/20491
3543         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
3544         falling through from SUBREG case to REG.
3546 2005-04-15  David S. Miller  <davem@davemloft.net>
3548         PR target/20673
3549         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
3551 2005-04-15  Dave Korn <dave.korn@artimi.com>
3553         * gcc.c (default_compilers): Clarify obscure error message when
3554         reading from standard input.
3556 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3558         * gthr-posix.c (pthread_cancel): Define.
3559         (pthread_mutexattr_init): Likewise.
3560         (pthread_mutexattr_settype): Likewise.
3561         (pthread_mutexattr_destroy): Likewise.
3563 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3565         * doc/invoke.texi: Fix typos.
3566         * doc/md.texi: Likewise.
3567         * doc/rtl.texi: Likewise.
3568         * doc/sourcebuild.texi: Likewise.
3569         * doc/tm.texi: Likewise.
3571 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
3573         * tree-eh.c (lower_try_finally_copy): Generate new code in
3574         response to goto_queue entries as if the queue was sorted by
3575         index, not pointers.
3576         (lower_try_finally_switch): Likewise.
3578 2005-04-15  Richard Sandiford  <rsandifo@redhat.com>
3580         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
3581         (JUMP_TABLES_IN_TEXT_SECTION): Define.
3582         * config/mips/mips.c (mips16_insn_length): Remove reference to
3583         JUMP_TABLES_IN_TEXT_SECTION.
3585 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
3587         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
3588         refer to 4.0.
3590 2005-04-14  Steve Ellcey  <sje@cup.hp.com>
3592         PR target/20924
3593         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
3594         fpsr 0 instead of fpsr 1.
3595         (divsf3_internal_thr): Ditto.
3596         (divdf3_internal_lat): Ditto.
3597         (divdf3_internal_thr): Ditto.
3598         (divxf3_internal_lat): Ditto.
3599         (divxf3_internal_thr): Ditto.
3601 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
3603         PR target/20927
3604         * config/s390/s390-modes.def: Define TFmode.
3606 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
3607             Roger Sayle  <roger@eyesopen.com>
3609         PR target/20126
3610         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
3611         signal that all GIVs couldn't be reduced.
3613 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3615         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
3616         * config/sparc/sparc.md (untyped_call): Save the registers manually.
3618         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
3620 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
3622         PR middle-end/20917
3623         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
3624         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
3626 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
3628         PR target/20795
3629         * config/i386/i386.c (construct_container): Pass empty aligned
3630         struct, union or class in memory.
3632 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
3634         Backport from mainline:
3635         * config/s390/tpf.h (ASM_SPEC): Define.
3637 2005-04-07  Andreas Schwab  <schwab@suse.de>
3639         Backport from mainline:
3641         2005-04-03  Steven Bosscher  <stevenb@suse.de>
3643         PR middle-end/20648
3644         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
3645         a computed goto if the edge to the computed goto block has
3646         incoming abnormal edges.  Clarify how the function works.
3648 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
3650         PR target/20093
3651         * simplify-rtx.c (simplify_unary_operation): Check
3652         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
3654 2005-04-07  Eric Botcazou  <ebotcazou@adacore.com>
3656         PR ada/18659
3657         PR ada/18819
3658         * doc/invoke.texi (Optimize Options): Document that
3659         -ftree-sra is not automatically enabled for the Ada compiler.
3661 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
3663         * c.opt (-F): Remove trailing whitespace from help string.
3664         (-finput-charset): Use a tab to separate the switch name and help
3665         string.
3666         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
3667         (-ftree-vectorizer-verbose): Likewise.
3669 2005-04-06  Dale Johannesen  <dalej@apple.com>
3671         * doc/invoke.texi (Optimization Options):  Remove
3672         duplicate -fcse-follow-jumps.  Add -fweb.
3673         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
3674         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
3676 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
3678         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
3679         scope.
3681 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
3683         * doc/install.texi: Update the URL for Jacks.
3684         * doc/sourcebuild.texi: Likewise.
3686 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3688         PR target/17245
3689         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
3690         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
3692 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
3694         PR tree-optimization/20076
3695         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
3696         that call __builtin_return or __builtin_apply_args.
3698 2005-04-06 Uros Bizjak <uros@kss-loka.si>
3700         PR target/20421
3701         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
3702         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
3703         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
3704         flag here. Implement using define_insn_and_split.
3705         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
3706         (frndintxf2_mask_pm_i387): New insn patterns.
3707         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
3708         Do not set ix86_optimize_mode_switching flag.
3709         (ceilsf2, ceildf2, ceilxf2): Same.
3710         (btruncsf2, btruncdf2, btruncxf2): Same.
3711         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
3713 2005-04-05  James E. Wilson  <wilson@specifixinc.com>
3715         PR target/20670
3716         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
3718 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
3720         * doc/install.texi (Configuration): Document --with-java-home.
3722 2005-04-05  Dale Johannesen  <dalej@apple.com>
3724         PR middle-end/19225
3725         * calls.c (expand_call):  Flush pending deferrals before
3726         throwing call.
3728 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
3730         PR target/20625
3731         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
3732         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
3734 2005-04-05  Roger Sayle  <roger@eyesopen.com>
3736         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
3738 2005-04-05  Ben Elliston  <bje@au.ibm.com>
3740         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
3741         -ftree-live_range_split.  Perhaps renamed at some point?
3743 2005-04-05  Jason Merrill  <jason@redhat.com>
3745         PR c++/19317
3746         * calls.c (expand_call): Disable return slot optimization.
3748 2005-04-05  Richard Henderson  <rth@redhat.com>
3750         PR target/20342
3751         PR target/20447
3752         * config/i386/i386.c (print_operand): Handle vector zeros.
3753         (ix86_split_to_parts): Handle CONST_VECTOR.
3754         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
3755         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
3756         what modes to tie for MMX and SSE registers.
3757         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
3758         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
3759         to vector modes as well.
3760         * config/i386/predicates.md (const0_operand): Handle VOIDmode
3761         properly as an input mode.
3763 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
3765         PR rtl-optimization/20527
3766         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
3767         REG_INC note, test that the register also isn't mentioned in PRED
3768         or SUCC.
3770 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
3772         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
3773         overriding.
3775 2005-04-05  Olivier Hainque  <hainque@adacore.com>
3777         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
3778         match what the system unwinder expects.
3779         * config/mips/mips.c (mips_frame_set): If we're saving the return
3780         address register and the dwarf return address column number differs
3781         from the hard register number, adjust the note reg to refer to the
3782         former.
3784 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
3785             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
3787         PR tree-optimization/19903
3788         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
3789         that don't fit in their type after conversion.
3791 2005-04-04  Roger Sayle  <roger@eyesopen.com>
3792             Alexandre Oliva  <aoliva@redhat.com>
3794         PR c++/19199
3795         * fold-const.c (non_lvalue): Split tests into...
3796         (maybe_lvalue_p): New function.
3797         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
3798         C++ front-end prior to lowering into gimple form.
3800 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
3802         PR target/19537
3803         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
3804         * tree-ssa-loop-ivopts.c: Include langhooks.h.
3805         (add_standard_iv_candidates_for_size): New function, extracting code
3806         from add_standard_iv_candidates and parameterizing it by type size.
3807         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
3809 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3811         * doc/invoke.texi (SPARC options): Document that
3812         -mlittle-endian is not supported on Linux either.
3814 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3816         PR target/20446
3817         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
3818         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
3819         (NEED_INDICATE_EXEC_STACK): Define to 1.
3820         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
3821         (NEED_INDICATE_EXEC_STACK): Define to 1.
3822         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
3823         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
3824         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
3825         (pic_helper_emitted_p): New global.
3826         (emit_pic_helper): New function extracted from...
3827         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
3828         Do not call emit_pic_helper if delay_pic_helper is true.
3829         (sparc_expand_prologue): Pass 'false' to load_pic_register.
3830         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
3831         (sparc_file_end): New function.
3833 2005-04-04  Richard Henderson  <rth@redhat.com>
3834             Jakub Jelinek  <jakub@redhat.com>
3836         PR rtl-optimization/16104
3837         * fold-const.c (fold_unary): Fix folding of vector conversions.
3839 2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>
3841         PR debug/20505
3842         * dwarf2out.c (tree_add_const_value_attribute): Only add if it's
3843         an INTEGER_CST.
3845 2005-04-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3847         PR c++/18644
3848         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
3849         semantics.
3851 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
3853         PR debug/19345
3854         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
3855         (remap_decl): Insert type decl in map earlier.
3857 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
3859         PR tree-optimization/20640
3860         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
3861         post-dominator if it has phi nodes.
3862         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
3863         before dead statements.
3865 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
3867         PR middle-end/20491
3868         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
3870 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
3872         PR rtl-optimization/20290
3873         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
3874         in every iteration if the entry point is the exit test.
3876 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
3878         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
3879         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
3881 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
3883         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
3885 2005-04-01  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
3886             Jan Hubicka  <jh@suse.cz>
3887             Steven Bosscher <stevenb@suse.de>
3889         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
3890         call cost based on argument sizes.
3891         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
3892         inlining.
3893         * params.def: (max-inline-inssn-single): Set to 450.
3894         (max-inline-insns-auto): Set to 90.
3895         (max-inline-insns-recursive): Set to 450
3896         (max-inline-insns-recursive-auto): Set to 450.
3897         (large-function-insns): Set to 2700.
3898         (inline-call-cost): New parameter.
3899         * tree-inline.c (estimate_move_cost): New function.
3900         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
3901         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
3902         based on arguments.
3903         * tree-inline.h (estimate_move_cost): Declare.
3904         * invoke.texi: (max-inline-inssn-single): Change default to 450.
3905         (max-inline-insns-auto): Change default to 90.
3906         (max-inline-insns-recursive): Change default to 450
3907         (max-inline-insns-recursive-auto): Change default to 450.
3908         (large-function-insns): Change default to 2700.
3909         (inline-call-cost): Document new parameter.
3911 2005-04-01  Paul Brook  <paul@codesourcery.com>
3913         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
3914         (arm_output_function_epilogue): Allow call_via_SP.
3915         (thumb_call_via_reg, arm_file_end): Ditto.
3916         * config/arm/arm.h (struct machine_function): Include space for SP.
3917         (thumb_call_via_label): Update declaration.
3919 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
3921         * c-decl.c (validate_proto_after_old_defn): Look at
3922         TYPE_MAIN_VARIANT of argument types.
3924 2005-04-01  Jan Hubicka  <jh@suse.cz>
3926         PR middle-end/20635
3927         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
3928         as needed.
3930 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
3932         PR middle-end/19454
3933         PR rtl-optimization/20600
3935         * combine.c (gen_binary): Remove.
3936         (known_cond, simplify_shift_const, find_split_point,
3937         combine_simplify_rtx, simplify_if_then_else, simplify_set,
3938         simplify_logical, expand_field_assignment, extract_left_shift,
3939         force_to_mode, if_then_else_cond, apply_distributive_law,
3940         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
3941         simplify_comparison, reversed_comparison): Replace with
3942         simplify_gen_binary, simplify_gen_relational or
3943         distribute_and_simplify_rtx.
3944         (distribute_and_simplify_rtx): New function.
3946         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
3947         to fix addresses involving EBP and ESP.
3948         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
3949         for SUBREGed registers.
3950         (legitimate_address_p): Accept SUBREGed registers.
3952 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
3954         PR c++/19406
3955         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
3956         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
3957         for FIELD_DECLs.
3959 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
3961         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
3963 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
3965         PR c/17855
3966         * gimplify.c (gimplify_expr): Create a temporary for lvalue
3967         COND_EXPR and CALL_EXPR.
3969 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
3971         * doc/tree-ssa.texi: Fix a typo.
3973 2005-03-31  Olivier Hainque  <hainque@adacore.com>
3975         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
3976         defined and non-zero.
3978 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
3980         PR target/20611
3981         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
3982         label operand.  Remove (use (unspec..)).  Don't emit a label on
3983         the offset word.
3984         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
3985         generate inline label for load_toc_v4_PIC_1b.
3986         (rs6000_emit_load_toc_table): Likewise.
3988 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
3990         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
3991         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
3993 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
3995         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
3996         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
3997         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
3998         is given with "powerpc64*" or "all", or when --with-cpu chooses
3999         a 64-bit cpu.
4001 2005-03-30  Richard Henderson  <rth@redhat.com>
4003         * cgraph.h (struct cgraph_node): Add alias.
4004         * varasm.c (assemble_alias): Set it.
4005         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
4006         avoid calling cgraph_expand_function.
4008 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
4010         PR c/772
4011         PR c/17913
4012         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
4013         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
4014         c_label_context, label_context_stack): New.
4015         * c-decl.c (define_label): Check for jumps into statement
4016         expressions.  Add label to list of defined labels.
4017         (start_function): Push context on label_context_stack.
4018         (finish_function): Pop context from label_context_stack.
4019         * c-typeck.c (label_context_stack): New.
4020         (c_finish_goto_label): Check for jumps into statement
4021         expressions.  Add label to list of jumped to labels.
4022         (struct c_switch): Add blocked_stmt_expr.
4023         (c_start_case): Initialize it.
4024         (do_case): Check it.
4025         (c_finish_case): Verify !blocked_stmt_expr.
4026         (c_begin_stmt_expr):  Push context on label_context_stack.
4027         Increment blocked_stmt_expr.  Mark labels jumped to from outside
4028         as undefinable.
4029         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
4030         defined in the statement expression and no longer jumpable to.
4031         Mark labels jumped to from just outside the statement expression
4032         as again definable.  Pop context from label_context_stack.
4033         * doc/extend.texi (Statement Exprs): Update.
4035 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
4037         PR c/20368
4038         * c-decl.c (start_function): Check for old_decl being
4039         error_mark_node.
4041 2005-03-30 Mostafa Hagog <mustafa@il.ibm.com>
4043         PR middle-end/20177
4044         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
4045         * modulo-sched.c (const_iteration_count): Return on NULL
4046         pre-header.
4047         (print_node_sched_params): Return on NULL dump_file.
4048         (generate_reg_moves): Handle reg-anti dependencies and disregard
4049         closing branch when generating register moves.
4050         (sms_schedule): Mark the SMSed block dirty.
4051         * passes.c (rest_of_handle_sms): Call update_life_info for all
4052         basic-blocks.
4053         * testsuite/gcc.dg/20050321-1.c: New test.
4054         * testsuite/gcc.dg/20050330-1.c: New test.
4056 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
4058         * tree-scalar-evolution.c (instantiate_parameters_1): Return
4059         as soon as a chrec_dont_know is detected.
4061 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
4063         * doc/install.texi: Update binutils requirement for powerpc*-linux.
4065 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
4067         PR target/20203
4068         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
4069         Remove convert_memory_address call duplicating that in memory_address.
4071 2005-03-29  Alexandre Oliva  <aoliva@redhat.com>
4073         PR rtl-optimization/20532
4074         * simplify-rtx.c (simplify_binary_operation): Protect from
4075         overflow when adding coefficients for PLUS or MINUS.  Handle
4076         CONST_DOUBLE exact power of two as multiplier.
4078 2005-03-29  Richard Henderson  <rth@redhat.com>
4080         PR c/20519
4081         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
4082         (build_compound_literal): Likewise.  Propagate decl type into the
4083         initializer.
4084         (finish_decl): Likewise.  Use new return value from complete_array_type
4085         for zero sized arrays.
4086         (complete_array_type): Move ...
4087         * c-common.c (complete_array_type): ... here.  Change first argument
4088         to pointer-to-type-node.  Consistently use sizetype for the index
4089         except for zero sized arrays.  Detect zero sized arrays for pedantic
4090         mode diagnostics.  Create a new type node instead of modifying the
4091         old node in place.
4092         * c-tree.h (complete_array_type): Move decl ...
4093         * c-common.h (complete_array_type): ... here.
4095 2005-03-29  Richard Henderson  <rth@redhat.com>
4097         PR tree-opt/19108
4098         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
4100 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
4102         PR middle-end/20622
4103         * cgraph.h (struct cgraph_varpool_node): Add alias field.
4104         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
4105         assemble_variable on aliases.
4106         * varasm.c (assemble_alias): Set node->alias.
4107         * toplev.c (wrapup_global_declarations): Don't call
4108         rest_of_decl_compilation on aliases again.
4110 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
4112         PR middle-end/20263
4113         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
4114         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
4116 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
4118         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
4120         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
4121         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
4123 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
4125         PR target/15491
4126         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
4127         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
4128         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
4129         PRE_DEC, NEG and NOT.
4131 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
4133         PR rtl-optimization/20249
4134         * cse.c (insert_regs): Do not record equivalence of registers in
4135         different modes.
4137 2005-03-24  James E Wilson  <wilson@specifixinc.com>
4139         * doc/install.texi (--enable-altivec): Delete docs.
4141 2005-03-24  J"orn Rennecke <joern.rennecke@st.com>
4143         Band aid for PR target/20617:
4144         * config/sh/lib1funcs.asm (FUNC, ALIAS): Add .hidden directive.
4146 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
4148         Fix PR tree-optimization/20601
4150         * tree-ssa-pre.c (insert_aux): Add missing condition to
4151         constification.
4153 2005-03-22  James E Wilson  <wilson@specifixinc.com>
4155         PR c++/19769
4156         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
4157         origin.
4159 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
4161         * c-opts.c (c_common_parse_file): Only start/end main source file
4162         if debug hooks says the writer wants it.
4163         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
4164         member.
4165         (xcoff_debug_hooks): Ditto.
4166         * debug.c (do_nothing_hooks): Ditto.
4167         * debug.h (gcc_debug_hooks): Ditto.
4168         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
4169         * sdbout.c (sdb_debug_hooks): Ditto.
4170         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
4172 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
4174         * doc/extend.texi: Deprecate C++ min/max operators.
4176 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
4178         PR target/20561
4179         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
4180         between jump table and its label.
4181         * final.c (shorten_branches): Handle notes in between ADDR_VEC
4182         resp. ADDR_DIFF_VEC and the label preceeding it.
4183         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
4184         is emitted in the right section.
4186 2005-03-21  Roger Sayle  <roger@eyesopen.com>
4188         PR middle-end/20539
4189         * fold-const.c (fold_binary): Fix type mismatch between
4190         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
4191         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
4192         for non-truth-valued expressions.
4194         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
4195         and FUNCTION_DECL in the main switch.
4196         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
4197         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
4198         we also need to convert their operands to match.
4199         <TRUTH_NOT_EXPR>: Likewise.
4201 2005-03-21  Roger Sayle  <roger@eyesopen.com>
4203         PR middle-end/20557
4204         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
4205         to determine whether a block can be duplicated, rather than test
4206         whether the block contains noncopyable insns ourselves.
4208 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
4210         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
4211         unrolling if -fpeel-loops is specified, too.
4212         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4213         Remove superfluous check for flag_unroll_loops.
4215 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
4217         PR other/20564
4218         * gcov.c (output_lines): Only output function block summary when
4219         outputting branch information.
4220         * doc/gcov.texi: Document format of preamble and additional block
4221         information lines.
4223 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
4225         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
4226         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
4227         the defaults false if BITS_PER_UNIT != 8.
4228         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
4229         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
4230         than BITS_PER_UNIT != 8.
4231         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
4232         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
4233         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
4234         #undefs.
4235         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
4236         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
4238 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4240         PR target/18551
4241         * config/avr/avr.c (avr_output_function_prologue): Do not use
4242         current_function_name() in a label, use a local label instead.
4244 2005-03-08  Dorit Naishlos  <dorit@il.ibm.com>
4245             Ira Rosen  <irar@il.ibm.com>
4247         PR tree-optimization/20474
4248         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
4249         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
4251 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
4253         * c-decl.c (check_bitfield_type_and_width): Require bit-field
4254         width to have integer type.
4255         (build_enumerator): Require enumerator value to have integer type.
4257 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
4259         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
4260         to __builtin_inff.
4262 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
4264         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
4265         std=iso9899:199x): Correct descriptions.
4267 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
4269         * config.gcc: Consistently use solaris2.1[0-9]* instead of
4270         solaris2.1[0-9].
4272 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4274         PR middle-end/20493
4275         * fold-const.c (fold_widened_comparison): Don't optimize casts of
4276         function pointers on targets that require function pointer
4277         canonicalization.
4278         (fold_sign_changed_comparison): Likewise.
4280 2005-03-19  Andy Hutchinson  <HutchinsonAndy@netscape.net>
4282         PR target/18251
4283         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
4284         (*movmemqi_insn): Delete.
4285         (*movmemhi): Delete.
4287 2005-03-18  Jan Hubicka  <jh@suse.cz>
4289         PR middle-end/20225
4290         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
4291         too late.
4292         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
4293         called too late.
4295 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
4297         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
4298         mno-fp-ret-in-387 multilib variants.
4300 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
4302         PR target/18380
4303         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
4305 2005-03-17  Richard Henderson  <rth@redhat.com>
4307         * doc/extend.texi (Weak Pragmas): New section.
4308         (attribute alias): Clarify that target must be in the same
4309         translation unit.
4311 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
4313         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
4314         and return without creating new state if before_nops_num is nonzero.
4315         * config/ia64/ia64.md (first_insn): New attribute.
4316         (alloc): Set it to yes.
4318 2005-03-16  Richard Henderson  <rth@redhat.com>
4320         PR middle-end/15700
4321         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
4322         (alias_pairs): Rename from output_defs.
4323         (find_decl_and_mark_needed): Split out from assemble_alias.
4324         (do_assemble_alias): New.
4325         (assemble_output_def): Remove.
4326         (finish_aliases_1, finish_aliases_2): New.
4327         (process_pending_assemble_output_defs): Remove.
4328         (assemble_alias): Defer aliases for which we don't yet have a
4329         non-external decl for the target symbol.
4330         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
4331         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
4332         * toplev.c (compile_file): Use finish_aliases_2 instead of
4333         process_pending_assemble_output_defs.
4334         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
4335         (process_pending_assemble_output_defs): Remove.
4337 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
4339         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
4340         of closing parenthesis.
4342 2005-03-16  Roger Sayle  <roger@eyesopen.com>
4344         PR tree-optimization/17454
4345         * tree.c (tree_size): Add case for TREE_BINFO.
4346         * fold-const.c (fold_checksum_tree): Only clear the overloaded
4347         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
4349 2005-03-15  Eric Christopher  <echristo@redhat.com>
4351         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
4352         STACK_GROWS_DOWNWARD.
4354 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
4356         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
4357         call_used_regs for wCG registers.
4359 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
4361         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
4362         for non-offsettable memory references to cope with outstanding reload
4363         replacements, take 2.
4365 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
4367         PR c++/20280
4368         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
4369         temporary variable of pointer type if an lvalues is required.
4370         (gimplify_modify_expr_rhs): Request an rvalue from it.
4371         (gimplify_expr): Pass fallback on.
4373 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
4375         PR middle-end/18628
4376         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
4377         register.
4379 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
4381         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
4382         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
4383         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
4384         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
4385         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
4387 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
4389         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
4390         (TARGET_FIX_VR4130): New macro.
4391         (TARGET_OPTIONS): Add -mfix-vr4130.
4392         (ISA_HAS_MACCHI): New macro.
4393         (ASM_SPEC): Add -mfix-vr4130.
4394         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
4395         (override_options): Handle mips_fix_vr4130_string.
4396         (mips_avoid_hazards): Clear all_noreorder_p
4397         if we're working around VR4130 errata and the macc alternatives
4398         are not available.
4399         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
4400         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
4401         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
4402         (MULTILIB_DEFAULTS): Remove leading "march=".
4403         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
4404         if no architecture option is given.
4405         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
4406         VR4130 multilibs.
4407         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
4408         * doc/invoke.texi: Document -mfix-vr4130.
4410 2005-03-13  Roger Sayle  <roger@eyesopen.com>
4412         PR middle-end/19331
4413         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
4414         * fold-const.c (fold_sign_changed_comparison): Likewise.
4415         (fold_binary): Optimize comparisons against widened operands if
4416         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
4418 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
4420         * config.gcc: Remove excess indentation.
4421         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
4423 2005-03-13  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4425         PR target/20288
4426         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
4427         (out_movhi_r_mr): Read low byte of volatile MEM first.
4428         (out_movhi_mr_r): Write high byte of volatile MEM first.
4430 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
4432         PR rtl-optimization/20306
4433         * expr.c (emit_move_complex): Set try_int false if mode is
4434         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
4435         emit_block_move if try_int is true.
4437 2005-03-11  Richard Henderson  <rth@redhat.com>
4439         PR target/20415
4440         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
4441         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
4442         to match.
4444 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
4446         * config/mips/mips.c (override_options): Only warn about -mint64
4447         deprecation if TARGET_INT64.
4449 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
4451         PR rtl-opt/20412
4452         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
4453         correct mode.
4455 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
4457         PR target/20322
4458         * combine.c (try_combine): If recog_for_combine added CLOBBERs
4459         to NEWI2PAT, fail to combine if they are used by NEWPAT.
4461 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
4463         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
4465 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
4467         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
4469 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
4471         PR c++/20375
4472         * function.c (struct assign_parm_data_one): Remove last_named
4473         field.
4474         (assign_parm_find_data_types): Don't determine last_named.
4475         Reorder named_parm determination.
4476         (assign_parms): Only setup varargs on the last non-varadic
4477         parameter.
4479 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
4481         PR inline-asm/20314
4482         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
4483         with multiple alternatives.
4485         * stmt.c (parse_output_constraint): Fix a typo.
4487 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
4489         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
4490         for non-offsettable memory references to cope with outstanding reload
4491         replacements.
4492         * config/s390/s390.md ("reload_outti"): Call find_replacement to
4493         avoid losing outstanding address reloads.
4494         ("reload_outdi", "reload_outdf"): Likewise.
4496 2005-03-08  Ira Rosen  <irar@il.ibm.com>
4498         PR tree-optimization/20122
4499         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
4500         condition of access function instead of base.
4502 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
4504         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
4505         output_e500_flip_gt_bit.
4507         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
4508         as bit 31.
4509         (rs6000_generate_compare): Fix logic to look at the correct bits.
4510         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
4511         Look at GT bit.
4512         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
4513         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
4514         gen_move_from_CR_gt_bit.
4516         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
4517         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
4518         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
4520         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
4521         (E500_CR_IOR_COMPARE): New constant.
4523 2005-03-08  Earl Chew <earl_chew@agilent.com>
4524             David Billinghurst <David.Billinghurst@riotinto.com>
4526         * config/i386/host-cygwin.c: New file to support precompiled
4527         headers on cygwin
4528         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
4529         * config.host: Use above files for cygwin host.
4531 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
4533         PR rtl-optimization/19683
4534         * reload1.c (choose_reload_regs): Pass the number of bits, not the
4535         number of bytes, to smallest_int_for_mode.  Fix arguments to
4536         REG_CANNOT_CHANGE_MODE_P.
4538 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
4540         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
4542 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
4544         * config/ia64/hpux.h (LINK_SPEC): Add -z.
4545         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
4546         PARALLEL for an empty structure.
4548 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
4550         * doc/c-tree.texi: Wrap comments in @r{}.
4551         * doc/cpp.texi: Likewise.
4552         * doc/cppinternals.texi: Likewise.
4553         * doc/extend.texi: Likewise.
4554         * doc/md.texi: Likewise.
4555         * doc/objc.texi: Likewise.
4556         * doc/sourcebuild.texi: Likewise.
4557         * doc/tm.texi: Likewise.
4558         * doc/tree-ssa.texi
4560 2005-03-04  Devang Patel  <dpatel@apple.com>
4562         PR tree-optimization/18815
4563         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
4564         loops with zero exit edges.
4566 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
4568         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
4569         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
4571 2005-03-05  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
4572             Joseph S. Myers  <joseph@codesourcery.com>
4574         PR c++/19797
4575         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
4576         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
4577         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
4578         * pa.c (get_plabel): Change argument to symbol_ref.  Call
4579         maybe_get_identifier instead of get_identifier.
4580         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
4581         (struct deferred_plabel): Replace name field with symbol field.
4582         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
4583         ASM_OUTPUT_EXTERNAL_REAL is defined.
4584         (output_global_address): Use output_addr_const for output of all
4585         symbol_refs.
4586         (output_deferred_plabels): Use symbol_ref instead of name for address
4587         output.
4588         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
4589         ASM_OUTPUT_SYMBOL_REF): New macros.
4590         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
4591         comment.
4592         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
4593         label.
4595 2005-03-04  Andrew Haley  <aph@redhat.com>
4597         * unwind-dw2-fde-glibc.c (struct
4598         unw_eh_callback_data.check_cache):
4599         (frame_hdr_cache): New.
4600         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
4601         Cache frame header info.
4603 2005-03-04  Daniel Jacobowitz  <dan@codesourcery.com>
4605         2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
4606         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
4607         for Thumb.
4608         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
4610 2005-03-04  Daniel Berlin <dberlin@dbrelin.org>
4612         Fix PR debug/20253
4614         * c-opts.c (c_common_parse_file): Call start_source_file
4615         and end_source_file at the approriate times.
4617         * dwarf2out.c (dwarf2out_finish): Don't auto-end
4618         the main file, it will be done for us now.
4620 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
4622         PR target/20277
4623         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
4624         -mcpu to override any other explicitly given flags.
4626 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
4628         PR c++/19916
4629         * varasm.c (initializer_constant_valid_p): Allow conversions
4630         between OFFSET_TYPEs.  Tidy.
4632 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
4634         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
4636 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
4638         * cgraph.h (struct cgraph_edge): Add prev_caller and
4639         prev_callee fields.
4640         (cgraph_node_remove_callees): Export.
4641         * cgraph.c (cgraph_create_edge): Initialize prev_caller
4642         and prev_callee.
4643         (cgraph_edge_remove_callee): New function.
4644         (cgraph_edge_remove_caller): Likewise.
4645         (cgraph_remove_edge): Use.
4646         (cgraph_redirect_edge_callee): Likewise.
4647         (cgraph_node_remove_callees): New function.
4648         (cgraph_node_remove_callers): Likewise.
4649         (cgraph_remove_node): Use.
4650         * tree-optimize.c (tree_rest_of_compilation): Use
4651         cgraph_node_remove_callees instead of manual loop.
4652         * cgraphunit.c (cgraph_finalize_function): Likewise.
4653         (cgraph_expand_function): Likewise.
4654         (cgraph_remove_unreachable_nodes): Likewise.
4656 2005-03-01  Roger Sayle  <roger@eyesopen.com>
4658         PR tree-optimization/20216
4659         * tree-chrec.c (tree_fold_factorial): Delete.
4660         (tree_fold_binomial): Change argument list to take a return type
4661         and change the type of K to unsigned int.  Rewrite to avoid explicit
4662         evaluation of factorials, and (recursively) calling fold to perform
4663         compile-time arithmetic.  Return NULL on (internal) overflow.
4664         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
4665         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
4666         if any intermediate calculation overflows.
4667         (chrec_apply): Update call to chrec_evaluate.
4669 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
4671         PR target/19065.
4672         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
4673         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
4674         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
4675         * config/cris/cris.md: Tweak comments referring to Q.
4676         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
4677         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
4678         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
4679         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
4680         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
4681         Insert spaces in constraints to align alternatives vertically for
4682         readability.
4683         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
4684         operand 1: "M".
4686 2005-02-28  Dale Johannesen  <dalej@apple.com>
4687             Stan Shebs  <shebs@apple.com>
4689         Rewrite of 64-bit Darwin structure-by-value pass/return.
4690         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
4691         intoffset, use_stack, named.
4692         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
4693         (rs6000_darwin64_record_arg_advance_flush):  New.
4694         (rs6000_darwin64_record_arg_advance_recurse): New.
4695         (rs6000_darwin64_record_arg_flush):  New.
4696         (rs6000_darwin64_record_arg_recurse):  New.
4697         (rs6000_darwin64_record_arg):  New.
4698         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
4699         (function_arg_boundary):  Handle 128-bit aligned structs.
4700         (function_arg_advance):  Rewrite darwin64 struct handling.
4701         (function_arg):  Call rs6000_darwin64_record_arg.
4702         (function_arg_partial_nregs):  Handle darwin64 structs.
4703         (rs6000_darwin64_function_value):  Remove.
4704         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
4706 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
4708         PR target/19819
4709         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
4710         and after reload in REG+REG indexed addresses without REG_POINTER
4711         set in the base and not set in the index.
4713 2005-02-28  Roger Sayle  <roger@eyesopen.com>
4715         PR middle-end/19874
4716         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
4717         between different machine modes is never a "useless" conversion.
4719 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
4721         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
4722         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
4723         installation directory first.
4725 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4727         PR rtl-optimization/17728
4728         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
4729         operand 0 from general_operand to move_dest_operand.
4731 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4733         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
4734         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
4735         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
4736         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
4738 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
4740         PR tree-opt/20188
4741         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
4742         for the lhs, also walk over the tree.  Likewise for rhs.
4744 2005-02-26  Joseph S. Myers  <joseph@codesourcery.com>
4746         * doc/invoke.texi, doc/standards.texi: Refer to
4747         gcc-4.0/c99status.html.
4749 2005-02-26  Paolo Carlini  <pcarlini@suse.de>
4751         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
4752         Clarify that the alternative way doesn't work in GNU C++.
4754 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
4756         PR target/19930
4757         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
4758         (LIBGCC2_HAS_DF_MODE): New.
4759         (LIBGCC2_HAS_XF_MODE): New.
4760         (LIBGCC2_HAS_TF_MODE): New.
4761         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
4762         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
4763         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
4764         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
4765         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
4766         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
4767         and add _fixtfdi, _fixunstfdi, _floatditf
4768         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
4769         L_fixunstfdi, L_floatditf.
4770         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
4771         (LIBGCC2_HAS_TF_MODE): Define.
4773 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
4775         PR tree-optimization/20204
4776         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
4777         REWRITE_THIS_STMT markers on PHI nodes.
4778         (rewrite_initialize_block): Likewise.
4780 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
4782         * version.c (version_string): Mark as prerelease.
4783         * doc/include/gcc-common.texi (DEVELOPMENT): @clear it.
4784         * configure.ac (is_release): Set to 1.
4785         * configure: Regenerated.
4787 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
4789         PR tree-optimization/19937
4790         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
4791         to the type of the induction variable.
4793 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
4795         PR rtl-optimization/20117
4796         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
4797         the block including noncopyable insn.
4799 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4801         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
4802         calls to find_reg_note.
4804 2005-02-24  Richard Henderson  <rth@redhat.com>
4806         PR tree-opt/20127
4807         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
4808         the type.
4810 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
4812         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
4813         vector types if to use base reg for misaligned non-word ld/std.
4815 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
4817         PR target/14619
4818         * config/cris/cris.c (cris_target_asm_function_prologue): Create
4819         dwarf2 label manually and put it after, not before the prologue.
4821 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
4823         PR target/19019
4824         * reload.c (operands_match_p): Only increment register number for
4825         SCALAR_INT_MODE_P modes in multiple hard registers.
4827         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
4828         Fix formatting.
4830 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4832         * ChangeLog.5: Fix log message typo(s).
4833         * ChangeLog.7: Likewise.
4834         * ChangeLog.tree-ssa: Likewise.
4835         * cfgexpand.c: Fix comment typo(s).
4836         * conflict.c: Likewise.
4837         * defaults.h: Likewise.
4838         * dwarf2out.c: Likewise.
4839         * gcse.c: Likewise.
4840         * ggc-page.c: Likewise.
4841         * tree-eh.c: Likewise.
4842         * tree-ssa-dom.c: Likewise.
4844 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
4846         PR target/19019
4847         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
4848         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
4849         if SHARED is defined.
4851         PR target/20196
4852         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
4853         allow splitting only if operands 0 and 3 don't overlap.
4855 2005-02-24  Richard Henderson  <rth@redhat.com>
4857         PR middle-end/19953
4858         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
4859         (fold_builtin_1): Call them.
4860         * fold-const.c (fold_complex_mult_parts): Split out from ...
4861         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
4862         (fold_complex_div_parts, fold_complex_div): New.
4863         (fold): Use them.
4864         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
4866 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4868         * tree-ssa-ccp.c (visit_assignment): Verify that result of
4869         VIEW_CONVERT_EXPR is_gimple_min_invariant.
4871         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
4872         (print_node): Likewise.
4873         Print TYPE_SIZES_GIMPLIFIED.
4875 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
4877         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
4878         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
4879         operands as commutative in constraints.
4881 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
4883         * tree-into-ssa.c: Re-organize internal functions.
4885 2005-02-24  Richard Henderson  <rth@redhat.com>
4887         PR middle-end/18902
4888         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
4889         for c99.
4890         * common.opt (fcx-limited-range): New.
4891         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
4892         * toplev.c (flag_complex_method): Initialize to 1.
4893         (process_options): Set flag_complex_method to 0 if
4894         flag_cx_limited_range.
4895         * doc/invoke.texi (-fcx-limited-range): New.
4897 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4899         * cse.c (delete_trivially_dead_insns): Speed up by using
4900         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
4901         prev_real_insn.
4903 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
4905         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
4906         functions when -mid-shared-library is being used.
4908 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
4910         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
4911         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
4912         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
4913         * system.h: Poison LINK_LIBGCC_SPECIAL.
4915 2005-02-23  James E Wilson  <wilson@specifixinc.com>
4917         * gengtype.c (note_insn_name): Make 1 element larger.
4919 2005-02-23  Roger Sayle  <roger@eyesopen.com>
4921         PR target/20018
4922         PR rtl-optimization/20097
4923         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
4924         BImode SUBREGs of SImode registers which confuse the ia64 backend.
4926 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
4928         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
4929         * t-aix52 (SHLIB_INSTALL): Same.
4931 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4933         * genpreds.c: Update copyright.
4935 2005-02-23  Michael Beach  <michaelb@ieee.org>
4937         PR target/20159
4938         * config/sparc/t-elf (startup files): Assemble with CPP.
4940 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
4942         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
4943         (write_predicate_expr): Likewise.
4945 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
4947         PR tree-optimization/20100
4948         PR tree-optimization/20115
4949         * tree-optimize.c (init_tree_optimization_passes): Remove
4950         pass_maybe_create_global_var.
4951         * tree-pass.h (pass_maybe_create_global_var): Remove.
4952         * tree-ssa-alias.c (aliases_computed_p): Declare.
4953         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
4954         (count_calls_and_maybe_create_global_var): Remove.
4955         (pass_maybe_create_global_var): Remove.
4956         (init_alias_info): Do not declare aliases_computed_p.
4957         (maybe_create_global_var): If the function contains no
4958         call-clobbered variables and a mix of pure/const and regular
4959         function calls, create .GLOBAL_VAR.
4960         Mark all call-clobbered variables for renaming.
4961         (merge_pointed_to_info): Update comment.
4962         (add_pointed_to_var): Likewise.
4963         (is_escape_site): Likewise.
4964         Accept struct alias_info * instead of size_t *.
4965         Update all users.
4966         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
4967         as necessary.
4968         * tree-ssa-operands.c (get_call_expr_operands): If
4969         ALIASES_COMPUTED_P is false, do not add call-clobbering
4970         operands.
4971         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
4972         (delete_tree_ssa): Likewise.
4974 2005-02-22  James E Wilson  <wilson@specifixinc.com>
4976         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
4977         (do_compile): Do call it here.
4979 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
4981         PR rtl-optimization/20017.
4982         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
4983         rest_of_handle_cse2, rest_of_handle_gcse): Call
4984         delete_dead_jumptables immediately before calling cleanup_cfg.
4986 2005-02-22  Devang Patel  <dpatel@apple.com>
4988         PR 19952
4989         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
4990         all labels
4992 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
4994         * config/rs6000/aix.h (WINT_TYPE): Define.
4996 2005-02-22  Stan Shebs  <shebs@apple.com>
4998         * config/rs6000/rs6000.c (rs6000_override_options): Default to
4999         natural alignment for 64-bit Darwin.
5000         (rs6000_parse_alignment_option): Warn about uses of -malign-power
5001         on 64-bit Darwin.
5002         * doc/invoke.texi: Document this.
5004 2005-02-22  DJ Delorie  <dj@redhat.com>
5006         * c-common.c (c_common_type_for_mode): Pass the mode's precision
5007         to make_[un]signed_type, not the mode itself.
5009 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5011         * cfg.c (cached_make_edge): Call make_edge if edge cache is
5012         not available.  Use tail calls wherever possible.
5013         (make_edge): Call unchecked_make_edge to create an edge.
5015         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
5016         (coalesce_ssa_name): Don't check for
5017         SSANORM_USE_COALESCE_LIST.
5018         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
5020 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
5022         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
5023         (rewrite_into_ssa): ... here.
5025 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
5027         PR tree-optimization/19786
5028         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
5029         tag to another's may-alias bitmap when adding to the other's list.
5031 2005-02-21  DJ Delorie  <dj@redhat.com>
5033         * tree-ssa-loop-ivopts.c (computation_cost): Start register
5034         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
5035         registers in unsupported ways.
5036         * expmed.c (init_expmed): Likewise.
5038 2005-02-21  Stan Cox  <scox@redhat.com>
5040         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
5042 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5044         * tree-cfg.c (fold_cond_expr_cond): New.
5045         (make_edges): Call fold_cond_expr_cond.
5046         (find_taken_edge): Accept nothing but INTEGER_CST.
5047         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
5048         and 1.
5049         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
5051         * flow.c (delete_dead_jumptables): Speed up by scanning insns
5052         that do not belong to any basic block.
5054 2005-02-21  Jeff Law  <law@redhat.com>
5056         * cfganal.c (find_unreachable_blocks): Manually CSE load of
5057         e->dest.
5059 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5061         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
5062         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
5063         Adjust their definitions.
5064         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
5065         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
5067         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
5068         genautomata.c, langhooks.c, langhooks.h, system.h,
5069         config/arm/lib1funcs.asm: Update copyright.
5071 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
5073         * dbxout.c (dbxout_function_end): Emit Lscope label always.
5075 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
5077         PR bootstrap/13770
5078         * doc/install.texi: Document --with-gc.
5080 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
5082         * simplify-rtx.c (simplify_unary_operation): Add a missing
5083         "break" statement.
5085 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5087         PR tree-optimization/18663
5088         * tree-ssa-dom.c (extract_range_from_cond): Return 0
5089         if the type has variable bounds.
5091 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5093         * gcse.c: Remove an obsolete comment.
5095         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
5097 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
5099         * doc/extend.texi (Function Attributes) <Attribute const>: The
5100         attribute "pure" is below this text, not above.
5102 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5104         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
5105         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
5106         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
5108 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
5110         PR 18785
5111         * langhooks.h (struct lang_hooks): Add to_target_charset.
5112         * langhooks.c (lhd_to_target_charset): New function.
5113         * langhooks-def.h: Declare lhd_to_target_charset.
5114         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
5115         (LANG_HOOKS_INITIALIZER): Update.
5116         * c-common.c (c_common_to_target_charset): New function.
5117         * c-common.h: Declare it.
5118         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
5119         c_common_to_target_charset.
5121         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
5122         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
5123         Delete definitions.
5124         * system.h: Poison them.
5125         * doc/tm.texi: Don't discuss them.
5126         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
5127         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
5128         (pp_c_char): Do not attempt to generate letter escapes for
5129         newline, tab, etc.
5130         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
5131         * config/mips/mips.c (mips_output_ascii): Likewise.
5133 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
5135         PR tree-optimization/19951
5136         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
5137         is abnormal.
5139 2005-02-19  Steven Bosscher  <stevenb@suse.de>
5141         PR middle-end/19698
5142         * function.h (struct function): New field `max_loop_depth'.
5143         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
5144         (flow_loops_find): Reset the max loop depth count before finding loops.
5145         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
5146         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
5147         (calculate_global_regs_live): Make sure the loop will terminate
5148         when the initial sets are not empty.
5150 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
5152         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
5153         object inside.
5154         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
5156 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
5158         PR other/19525
5159         * doc/invoke.texi: Remove documentation of %M spec.
5160         * gcc.c: Likewise.
5161         (init_spec): Remove %M suffix from -lgcc_s.
5162         (do_spec_1): Remove 'M' case.
5163         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
5164         to put shared libraries in the multilib directory.  Remove the
5165         shlib_so_soname substitution variable.  Don't add a multilib encoding
5166         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
5167         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
5168         SHLIB_INSTALL as well as SHLIB_LINK.
5169         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
5170         (SHLIB_NAME): Delete.
5171         (SHLIB_DIR): New macro.
5172         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
5173         (SHLIB_INSTALL): Adjust accordingly.
5174         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
5175         * config/t-slibgcc-sld: Likewise.
5176         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
5177         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
5178         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
5179         in $(SHLIB_DIR).
5180         (SHLIBUNWIND_INSTALL): Adjust accordingly.
5181         * config/i386/t-nwld (SHLIB_SONAME): Delete.
5182         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
5183         Use @shlib_base_name@ instead of @shlib_so_name@.
5184         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
5185         and @shlib_base_name@.so in @multilib_dir@.
5186         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
5187         to the install path.
5188         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
5189         (SHLIB_LINK): Remove previous workaround.
5190         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
5191         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
5192         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
5193         the install path.
5194         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
5195         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
5196         (SHLIB_INSTALL): Adjust accordingly.
5197         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
5198         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
5199         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
5200         config/t-slibgcc-elf-ver.
5202 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
5203             Jakub Jelinek  <jakub@redhat.com>
5205         PR tree-optimization/19828
5206         * tree-ssa-loop-im.c: Add a TODO comment.
5207         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
5208         without side-effects.
5210 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
5212         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
5213         call fold_convert.
5215 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
5217         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
5218         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
5219         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
5220         functions.
5221         (ia64_reorg): Delete fixup_errata call.
5222         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
5223         (TARGET_SWITCHES): Delete -mb-step entry.
5225 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
5227         PR c/20043
5228         * c-typeck.c (composite_type): Handle quals in transparent unions.
5229         (type_lists_compatible_p): Likewise.
5231 2005-02-18  Stan Shebs  <shebs@apple.com>
5233         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
5234         expressions in the .literal8 section.
5236 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
5238         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
5240 2005-02-18  Roger Sayle  <roger@eyesopen.com>
5242         * fold-const.c (constant_boolean_node): Always create values of the
5243         specified type, don't bother calling truthvalue_conversion.
5245 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
5247         * except.c (output_function_exception_table): Call
5248         assemble_external_libcall (eh_personality_libfunc).
5250 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
5252         PR target/19886
5253         * config/ia64/ia64.h (struct machine_function): Add state_num.
5254         * config/ia64/ia64.c (process_epilogue,
5255         process_for_unwind_directive): Use new unwind state numbers each
5256         time rather than state 1.
5258 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5260         PR target/20054
5261         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
5262         before the "*llgt_didi" pattern.
5264 2005-02-18  Jason Merrill  <jason@redhat.com>
5266         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
5268 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
5270         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
5271         (div0): Use it in place of ARM_FUNC_ALIAS.
5272         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
5274 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
5276         PR middle-end/20030
5277         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
5278         access, the lower bound of the array type if it exists.
5280 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
5282         PR c++/20008
5283         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
5284         cases that are out-of-range for the index type.
5286 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
5288         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
5289         (estimate_case_costs): Don't call convert.
5290         * expmed.c (expand_shift): Likewise.
5291         (make_tree): Call fold_convert instead of convert.
5293 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
5295         PR c++/19813
5296         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
5297         that ref to be marked MEM_READONLY_P doesn't have base that needs
5298         constructing.
5300 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
5302         * genautomata.c (output_get_cpu_unit_code_func,
5303         output_cpu_unit_reservation_p): Don't generate old-style function
5304         definitions.
5306 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
5308         PR c++/20023
5309         PR tree-optimization/20009
5310         * convert.c (convert_to_integer): Revert 2005-02-16 change.
5312         PR tree-optimization/18947
5313         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
5314         inline, remove all nodes that are inlined into the extern inline
5315         being redefined.
5317 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5319         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
5320         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
5321         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
5322         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
5323         Update copyright.
5325 2005-02-17  Roger Sayle  <roger@eyesopen.com>
5327         PR tree-optimization/19917
5328         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
5329         to be potentially trapping.
5331 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5333         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
5335 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5337         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
5338         tem becomes a local variable which is set to the value of the
5339         back end defined INITIAL_FRAME_ADDRESS macro.
5340         (expand_builtin_frame_address): Omit the base parameter to
5341         expand_builtin_return_addr.
5342         (expand_builtin_profile_func): Likewise.
5343         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
5344         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
5345         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
5347 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
5349         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
5350         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
5351         * config/frv/frv.c (frv_function_epilogue): Likewise.
5353 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
5355         * lambda-code (perfect_nestify): Remove mark/unmark
5356         for rewriting hack.
5357         * tree-loop-linear.c (linear_transform_loops): Add
5358         rewrite_into_ssa call so that ssa is correct for
5359         rewriting into loop closed.
5361 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
5363         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
5364         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
5365         BITMAP_FREE.
5366         * bt-load.c (btr_def_live_range, combine_btr_defs,
5367         migrate_btr_def, migrate_btr_defs): Likewise.
5368         * cfgcleanup.c (thread_jump): Likewise.
5369         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
5370         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
5371         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
5372         df_rd_local_compute, df_reg_info_compute): Likewise.
5373         * dominance.c (init_dom_info, free_dom_info): Likewise.
5374         * flow.c (init_propagate_block_info,
5375         free_propagate_block_info): Likewise.
5376         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
5377         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
5378         modify_reg_pav): Likewise.
5379         * loop-invariant.c (find_defs, find_invariant_insn,
5380         find_invariants, free_inv_motion_data): Likewise.
5381         * predict.c (tree_predict_by_opcode,
5382         estimate_bb_frequencies): Likewise.
5383         * stmt.c (expand_case): Likewise.
5384         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
5385         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
5386         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
5387         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
5388         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
5389         rewrite_ssa_into_ssa): Likewise.
5390         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5391         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
5392         analyze_edges_for_bb, perform_edge_inserts): Likewise.
5393         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
5394         * tree-sra.c (tree_sra): Likewise.
5395         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
5396         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
5397         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
5398         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
5399         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
5400         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
5401         Likewise.
5402         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
5403         calculate_live_on_entry, calculate_live_on_exit,
5404         build_tree_conflict_graph): Likewise.
5405         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
5406         record_important_candidates, set_use_iv_cost, find_depends,
5407         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
5408         tree_ssa_iv_optimize_finalize): Likewise.
5409         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
5410         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
5411         tree_duplicate_loop_to_header_edge): Likewise.
5412         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
5413         * tree-ssa.c (verify_flow_insensitive_alias_info,
5414         verify_name_tags, verify_ssa, init_tree_ssa,
5415         delete_tree_ssa): Likewise.
5416         * tree-ssanames.c (marked_ssa_names, init_ssanames,
5417         fini_ssanames): Likewise.
5418         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
5420 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
5422         * config/rs6000/t-rtems: Completely reworked.
5424 2005-02-17  Ira Rosen  <irar@il.ibm.com>
5426         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
5428 2005-02-17  Ira Rosen  <irar@il.ibm.com>
5430         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
5431         POINTER_TYPE_P when checking that type is a pointer.
5432         (vect_get_memtag): Remove.
5433         (vect_address_analysis): Use POINTER_TYPE_P. Call
5434         vect_object_analysis with dummy parameter for memtag.
5435         (vect_object_analysis): Extract memtag (functionality that
5436         used to be in vect_get_memtag and moved here). Fix printings.
5437         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
5438         with correct parameters. Remove call to vect_get_memtag.
5440 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
5442         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
5443         (tree-vectorizer.o): Added missing dependencies.
5445         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
5446         decleration.
5447         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
5448         declaration in tree-vectorizer.c, now has an extern declaration in
5449         tree-vectorizer.h).
5450         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
5451         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
5452         get_vectype_for_scalar_type, vect_is_simple_use,
5453         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
5454         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
5455         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
5456         vectorizable_store, vectorizable_operation, vectorizable_assignment,
5457         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
5458         find_loop_location): Likewise.
5460         * tree-vectorizer.c (langhooks.h): #include removed.
5461         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
5462         moved to tree-vectorized.h.
5463         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
5464         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
5465         get_vectype_for_scalar_type, vect_is_simple_use,
5466         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
5467         vect_supportable_dr_alignment, new_loop_vec_info,
5468         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
5469         vect_set_verbosity_level, find_loop_location): Likewise.
5471         (vect_analyze_loop): Function externalized. Declaration moved to
5472         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
5473         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
5474         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
5475         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
5476         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
5477         vect_enhance_data_refs_alignment, vect_analyze_operations,
5478         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
5479         vect_stmt_relevant_p, vect_get_loop_niters,
5480         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
5481         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
5482         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
5483         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
5484         vect_get_memtag): Likewise.
5486         (vectorizable_load): Function externalized. Declaration moved to
5487         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
5488         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
5489         vect_transform_loop): Likewise.
5490         (vect_transform_stmt): Moved to tree-vect-transform.c.
5491         (vect_align_data_ref, vect_create_destination_var,
5492         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
5493         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
5494         vect_get_vec_def_for_operand, vect_init_vector,
5495         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
5496         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
5497         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
5498         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
5499         vect_do_peeling_for_loop_bound): Likewise.
5501         * tree-vect-analyze.c: New file.
5502         * tree-vect-transform.c: New file.
5504 2005-02-17  Jason Merrill  <jason@redhat.com>
5506         PR mudflap/19319, c++/19317
5507         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
5508         slot explicit.
5510 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
5512         * doc/install.texi (Specific): Update link for Darwin-specific
5513         tool binary site.
5515 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
5517         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
5518         constant_boolean_node.
5520 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
5522         PR target/19019
5523         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
5524         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
5526 2005-02-16  Richard Henderson  <rth@redhat.com>
5528         PR 19920
5529         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
5530         with W_TYPE_SIZE.
5531         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
5532         replace uses with Wtype_MAXp1_F.
5533         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
5534         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
5535         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
5536         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
5537         and HAVE_TFMODE as appropriate.
5538         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
5539         (__floatdisf): Likewise.
5540         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
5541         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
5542         (Wtype_MAXp1_F): New.
5543         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
5544         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
5546 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
5548         * PR target/19162
5549         * arm.c (arm_apply_result_size): New function.
5550         * arm.h (APPLY_RESULT_SIZE): Define.
5551         * arm-protos.h (arm_apply_result_size): Add prototype.
5552         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
5553         (movxf): New expand.
5554         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
5555         (call_value_symbol): Remove predicate for operand 0.
5556         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
5557         (untyped_call): Rework to correclty return values for any type.
5558         (untyped_return): New expand.
5559         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
5561 2005-02-16  Stan Shebs  <shebs@apple.com>
5563         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
5564         * config/rs6000/t-darwin8: New, for 64-bit multilib.
5566 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
5568         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
5569         configure settings on Solaris 7 and later.
5571 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
5573         PR tree-optimization/19865
5574         * tree-optimize.c (init_tree_optimization_passes): Run
5575         pass_may_alias after pass_sra.
5577 2005-02-16  Richard Henderson  <rth@redhat.com>
5578             Stuart Hastings  <stuart@apple.com>
5580         PR debug/19521
5581         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
5582         Do nothing if debug info suppressed for this function.
5583         (dbxout_begin_function): Early exit if debug info suppressed for
5584         this function.
5586 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
5588         PR target/20007
5589         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
5590         find_basic_blocks.
5591         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5593         PR tree-optimization/19967
5594         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
5595         expand_builtin_strchr, expand_builtin_strrchr): Take a new
5596         argument TYPE.  Adjust calls to fold_builtin_XXX.
5597         (expand_builtin, fold_builtin_1): Adjust calls to
5598         expand_builtin_XXX.
5599         (fold_builtin_strchr, fold_builtin_strpbrk,
5600         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
5601         result to a requested type TYPE.
5603 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
5605         PR middle-end/19857
5606         * fold-const.c (fold): Don't optimize (T)(x & cst) to
5607         (T)x & (T)cst if (T)cst overflows.
5608         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
5609         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
5611 2005-02-15  Jeff Law  <law@redhat.com>
5613         * gcse.c (blocks_with_calls): New bitmap.
5614         (alloc_gcse_mem): Allocate it.
5615         (free_gcse_mem): Free it.
5616         (clear_modifY_mem_tables): Clear it.
5617         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
5618         when we encounter CALL_INSNs.
5619         (compute_transp, case MEM): Handle blocks with calls separate
5620         from blocks without calls.  Use bitmap iterators rather than
5621         FOR_EACH_BB.
5623 2005-02-15  Peter O'Gorman  <peter@pogma.com>
5625         PR bootstrap/18810
5626         * mklibgcc.in (vis_hide): Use a temporary object file, not
5627         -o /dev/null.
5629 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
5631         PR target/19924
5632         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
5633         access optimization.
5635 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
5636             Alan Modra  <amodra@bigpond.net.au>
5638         PR target/19019
5639         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
5640         (_xlqsub): Rename to __gcc_qsub.
5641         (_xlqmul): Rename to __gcc_qmul.
5642         (_xlqdiv): Rename to __gcc_qdiv.
5643         Provide versioned symbol aliases with old names.
5644         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
5645         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
5646         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
5647         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
5648         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
5650 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
5652         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
5653         Fold ~(A - 1) and ~(A + -1) to -A.
5655 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
5657         PR pch/14940
5658         PR target/19300
5659         * config/host-linux.c (linux_gt_pch_use_address): Copy from
5660         config/pa/pa-host.c:pa_gt_pch_use_address.
5662 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
5664         * tree-vn.c (get_value_handle): Make sure that given an
5665         is_gimple_min_invariant expression, we always return it.
5667 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5669         * passes.c (rest_of_handle_gcse): Fix a comment.
5671 2005-02-15  Jeff Law  <law@redhat.com>
5673         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
5674         bitmap.
5675         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
5676         (canon_list_insert, record_last_mem_set_info): Similarly.
5677         (clear_modify_mem_tables): Similarly.
5679 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5681         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
5682         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
5683         config/mips/mips.md, config/rs6000/aix.h,
5684         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
5686 2005-02-15  Richard Henderson  <rth@redhat.com>
5688         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
5689         call to be best_edge.
5691 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
5693         * basic-block.h: Adjust the prototype for find_basic_blocks.
5694         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
5695         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
5696         find_basic_blocks.
5698         * flow.c (recompute_reg_usage): Remove all arguments.
5699         * passes.c (rest_of_compilation): Adjust the call to
5700         recompute_reg_usage.
5701         * rtl.h: Adjust the prototype for recompute_reg_usage.
5703 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
5705         * tree-dump.c (dump_files): Update to reflect new member
5706         of dump_file_info.
5707         (dump_register): Add new argument.
5708         Set glob name.
5709         (dump_switch_p_1): Check against glob name if doglob was passed.
5710         (dump_switch_p): Check against regular first, then glob if
5711         we didn't have any hits on the dump name.
5712         * tree-optimize.c (register_one_dump_file):
5713         Pass in glob name as well.
5714         * tree-pass.h (struct dump_file_info): Add glob
5715         member.
5717 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
5719         PR preprocessor/16323
5720         * doc/invoke.texi: Document that -Wendif-labels is on by default.
5722 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
5724         PR target/19019
5725         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
5726         (trunctfdf2_internal1): New.
5727         (trunctfdf2_internal2): Renamed from trunctfdf2.
5729 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
5731         PR tree-optimization/19853
5732         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
5734 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
5736         * passes.c (rest_of_handle_loop_optimize): Remove calls to
5737         delete_dead_jumptables and cleanup_cfg.
5739 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
5741         * reload.c (find_reloads): Swap address_reloaded flags when
5742         swapping commutative operands.
5744 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
5746         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
5747         Use standard_iv_increment_position for computing the bsi position
5748         for create_iv.
5749         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
5750         the bsi position.
5752 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
5754         PR target/17428
5755         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
5756         life range of hard registers.
5757         * value-prof.c (insn_prefetch_values_to_profile): Only
5758         scan normal insns.
5760         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
5761         profile in libcalls.
5763 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
5765         * bitmap.h (bitmap_and_compl_into): Return bool.
5766         * bitmap.c (bitmap_and_compl_into): Return changed flag.
5768 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
5770         PR tree-optimization/19944
5771         * fold-const.c (fold): Re-add ABS_EXPR folding.
5773 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
5775         PR target/19019
5776         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
5777         {TARGET,MASK}_XL_COMPAT.
5778         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
5779         MASK_XL_COMPAT.
5780         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
5781         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
5782         TARGET_XL_COMPAT.
5783         (rs6000_arg_partial_bytes): Same.
5784         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
5785         and XL compatibility enabled.
5786         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
5787         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
5788         test to final condition.
5789         (cmptf_internal2): New.
5790         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
5791         xl-compat.  Add TFmode information to description.
5793 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
5795         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
5797 2005-02-13  Jason Merrill  <jason@redhat.com>
5799         PR c++/16405
5800         * fold-const.c (fold_indirect_ref_1): Split out from...
5801         (build_fold_indirect_ref): Here.
5802         (fold_indirect_ref): New fn.
5803         * tree.h: Declare it.
5804         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
5805         (gimplify_modify_expr_rhs): Likewise.
5806         (gimplify_expr): Likewise.
5808 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
5810         PR tree-optimization/14303
5811         PR tree-optimization/15784
5812         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
5813         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
5814         ABS_EXPR<x> != 0 to x != 0.
5816 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
5818         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
5819         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
5820         spelling conventions.
5822         * passes.c (rest_of_handle_gcse): Don't run cse_main and
5823         delete_trivially_dead_insns too many times.
5825         * passes.c (rest_of_handle_gcse): Remove dead assignments to
5826         tem and tem2.
5828 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5830         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
5831         (vect_is_simple_iv_evolution): Remove redundant parameter
5832         and step check.
5833         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
5834         without last parameter.
5835         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
5836         Return pointer step. Call vect_is_simple_iv_evolution without
5837         last parameter. Check only that the step is multiple of size
5838         type. Remove stmt_vinfo updates.
5839         (vect_get_memtag_and_dr): Remove.
5840         (vect_get_memtag): New function.
5841         (vect_address_analysis): New function.
5842         (vect_object_analysis): New function.
5843         (vect_analyze_data_refs): Call vect_object_analysis and
5844         vect_get_memtag. Update stmt_vinfo fields.
5846 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5848         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
5849         exist and are objects. Remove checks for pointer.
5850         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
5851         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
5852         (vect_create_data_ref_ptr): Likewise.
5853         (vect_base_addr_differ_p): New function.
5854         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
5855         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
5856         Don't set the DR_BASE_NAME field of data-ref.
5857         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
5859 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
5861         * optabs.h (enum optab_index): Add new OTI_ldexp.
5862         (ldexp_optab): Define corresponding macro.
5863         * optabs.c (init_optabs): Initialize ldexp_optab.
5864         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
5865         patterns.
5866         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
5867         using ldexp_optab.
5868         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
5869         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
5871         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
5872         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
5873         intrinsics.
5875 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5877         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
5878         to base_address.
5879         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
5880         stmt_vec_info.
5881         (vect_get_base_and_offset): Always return an address.
5882         (vect_create_addr_base_for_vector_ref): Remove treatment for
5883         different data reference types.
5884         (vect_compute_data_ref_alignment): Rename base to base_address in
5885         stmt_vec_info. Get the object in order to force its alignment.
5886         (vect_get_memtag_and_dr): Rename base to base_address in
5887         stmt_vec_info. Extract the object for memtag analysis.
5889 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
5891         PR regression/19898.
5892         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
5893         changes cc_status, use apply modified_in_p to part of cc_status
5894         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
5895         body.
5897 2005-02-11  Richard Henderson  <rth@redhat.com>
5899         * tree-complex.c (expand_complex_libcall): New.
5900         (expand_complex_multiplication): Use it for c99 compliance.
5901         (expand_complex_division): Likewise.
5902         * fold-const.c (fold_complex_add, fold_complex_mult): New.
5903         (fold): Call them.
5904         * builtins.c (built_in_names): Remove const.
5905         * tree.c (build_common_builtin_nodes): Build complex arithmetic
5906         builtins.
5907         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
5908         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
5909         (built_in_names): Remove const.
5910         * c-common.c (c_common_type_for_mode): Handle complex modes.
5911         * flags.h, toplev.c (flag_complex_method): Rename from
5912         flag_complex_divide_method.
5913         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
5914         __mulsc3, __muldc3, __mulxc3, __multc3): New.
5915         * libgcc2.h: Declare them.
5916         * libgcc-std.ver: Export them.
5917         * mklibgcc.in (lib2funcs): Build them.
5919 2005-02-11  Steven Bosscher  <stevenb@suse.de>
5921         PR tree-optimization/19876
5922         Partially revert my change from 2005-01-14
5923         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
5924         (compute_antic): ...and remove the loop here.
5926 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
5928         PR middle-end/19858
5929         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
5930         is number of inner's bits, avoid creating a BIT_FIELD_REF.
5932         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
5933         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
5935 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
5937         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
5938         offsets for the big-endian 32-bit case.
5940 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
5942         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
5944 2005-02-11  Dale Johannesen  <dalej@apple.com>
5946         * cselib.c (cselib_process_insn):  Clear out regs where
5947         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
5948         * reload.c (find_equiv_reg): Ditto.
5950 2005-02-11  Ian Lance Taylor  <ian@airs.com>
5952         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
5953         with no elements.
5955         * tree.c (build_function_type_list): Work correctly if there are
5956         no arguments.
5958 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
5960         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
5961         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
5962         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
5963         TARGET_ZARCH instead of TARGET_64BIT.
5965 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
5967         * config/rs6000/t-rtems:
5968         (MULTILIB_OPTIONS): Remove mcpu=602.
5969         (MUTLILIB_DIRNAMES): Remove m602.
5970         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
5971         Let mcpu=602 match mcpu=603.
5972         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
5974 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5976         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
5977         signal trampolines.
5979 2005-02-10  David Daney  <ddaney@avtrex.com>
5981         * config/alpha/linux-unwind.h: Add exception clause to copyright.
5982         * config/i386/linux-unwind.h: Likewise.
5983         * config/ia64/linux-unwind.h: Likewise.
5984         * config/mips/linux-unwind.h: Likewise.
5985         * config/pa/linux-unwind.h: Likewise.
5986         * config/rs6000/linux-unwind.h: Likewise.
5987         * config/s390/linux-unwind.h: Likewise.
5988         * config/sh/linux-unwind.h: Likewise.
5989         * config/sparc/linux-unwind.h: Likewise.
5991 2005-02-10  Steven Bosscher  <stevenb@suse.de>
5993         PR tree-optimization/17549
5994         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
5995         TER to replace a DEF with its expression if the DEF and the
5996         rhs of the expression we replace into have the same root
5997         variable.
5999 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
6001         * config/mips/mips.md: Fix the placement of the match_scratch in the
6002         lea64 peephole2.
6004 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6006         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
6007         Fix comment typos.
6009 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
6011         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
6012         (strip_offset): Handle addresses.
6013         (add_address_candidates): Use strip_offset.
6014         (difference_cost): Reflect strip_offset change.
6015         (force_var_cost, difference_cost): Strip nops.
6017 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6019         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
6021         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
6022         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
6023         config/cris/cris-protos.h, config/cris/cris.c: Update
6024         copyright.
6026 2005-02-10  Jeff Law  <law@redhat.com>
6028         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
6029         (lookup_avail_expr): Similarly.
6031 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
6033         * builtins.c (fold_builtin_powi): New function.
6034         (fold_builtin_1): Call it.
6036 2005-02-10  Steven Bosscher  <stevenb@suse.de>
6038         PR documentation/19309
6039         * doc/cpp.texi: The __GNUC__ and related predefined macros
6040         are also defined for the "standalone" cpp.
6041         Some non-GCC compilers may also define __GNUC__.
6043 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
6045         PR c/19342
6046         * c-typeck.c (common_type): New routine.  Old common_type renamed
6047         to...
6048         (c_common_type): ...this.
6049         (build_conditional_expr, build_binary_op): Use c_common_type instead
6050         of common_type.
6052 2005-02-10  Steven Bosscher  <stevenb@suse.de>
6054         * doc/md.texi: Replace @samp{length} with @code{length}.
6056 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
6058         PR tree-optimization/18687
6059         * tree-flow.h (find_loop_niter): Declare.
6060         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
6061         Try using scev even for loops with more than one exit.
6062         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
6063         (struct ivopts_data): Added niters field.
6064         (struct nfe_cache_elt): New.
6065         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
6066         functions.
6067         (tree_ssa_iv_optimize_init): Initialize niters cache.
6068         (determine_number_of_iterations): Removed.
6069         (find_induction_variables): Do not call determine_number_of_iterations.
6070         Access niters for single exit through niter_for_single_dom_exit.
6071         (add_iv_outer_candidates): Access niters for single exit through
6072         niter_for_single_dom_exit.
6073         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
6074         number_of_iterations_cond.
6075         (iv_period): New function.
6076         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
6077         (may_replace_final_value): Take data argument.  Use
6078         niter_for_single_dom_exit.
6079         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
6080         (rewrite_use_compare): Pass data to may_eliminate_iv.
6081         (rewrite_use_outer): Pass data to may_replace_final_value.
6082         (free_loop_data): Clean up the niters cache.
6083         (tree_ssa_iv_optimize_finalize): Free the niters cache.
6084         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
6085         * tree-ssa-loop-niter.c (find_loop_niter): New function.
6086         (find_loop_niter_by_eval): Use tree_int_cst_lt.
6087         (num_ending_zeros): Moved to tree.c.
6088         * tree.h (num_ending_zeros): Declare.
6089         * tree.c (num_ending_zeros): Moved from tree.c.
6091 2005-02-09  Richard Henderson  <rth@redhat.com>
6093         * builtins.c (DEF_BUILTIN): Add COND argument.
6094         * tree.h (DEF_BUILTIN): Likewise.
6095         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
6096         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
6097         match.
6098         (DEF_BUILTIN_STUB): New.
6099         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
6100         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
6101         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
6102         * c-common.c (DEF_BUILTIN): Add COND argument.
6103         * tree.c (local_define_builtin): New.
6104         (build_common_builtin_nodes): New.
6106 2005-02-09  Roger Sayle  <roger@eyesopen.com>
6108         * fold-const.c (fold_strip_sign_ops): New function to simplify a
6109         floating point expression ignoring the sign of the result.
6110         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
6111         (fold) <MULT_EXPR>: Use it to simplify x*x.
6112         * tree.h (fold_strip_sign_ops): Prototype here.
6113         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
6114         argument.  Use fold_strip_sign_ops to simplify the first argument.
6115         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
6116         first argument when the second argument is an even integer
6117         constant, but only with -funsafe_math_optimizations.
6118         (fold_builtin_1): Update call to fold_builtin_copysign.
6120 2005-02-09  Ian Lance Taylor  <ian@airs.com>
6122         PR middle-end/19583
6123         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
6124         just check whether EH_FILTER_FAILURE falls through.
6126 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
6128         * gcc/haifa-sched.c (schedule_block): Make queued sched group
6129         insns return to ready list in the next turn.
6131 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
6133         PR middle-end/19402
6134         * builtins.def: New __builtin_powi[lf].
6135         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
6136         (expand_builtin_powi): New function.
6137         (expand_builtin): Dispatch to expand_builtin_powi.
6138         * libgcc2.h: Add prototypes for __builtin_powi[lf].
6139         * libgcc2.c: Add __builtin_powi[lf] implementation.
6140         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
6141         * optabs.h: Add powi_optab.
6142         * optabs.c (init_optabs): Initialize powi_optab.
6143         * doc/extend.texi: Document __builtin_powi[lf].
6145 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
6147         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
6148         exists.
6150 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
6152         PR middle-end/19854
6153         * fold-const.c (try_move_mult_to_index): Remove redundant
6154         type argument.  Create ADDR_EXPR with correct type.
6155         (fold): Update callers of try_move_mult_to_index.  Convert
6156         result to the appropriate type.
6158 2005-02-09  Roger Sayle  <roger@eyesopen.com>
6160         PR target/19597
6161         * config/avr/avr.c (default_rtx_costs): Delete.
6162         (avr_operand_rtx_cost): New function.
6163         (avr_rtx_costs): Completely rewrite.
6165 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
6167         PR target/19806
6168         * config/cris/cris.c (in_code): New variable.
6169         (cris_output_addr_const): Now a static function, a wrapper for
6170         output_addr_const.
6171         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
6172         case from old cris_output_addr_const.
6173         (cris_asm_output_label_ref): Similar for LABEL_REF.
6174         (cris_output_addr_const_extra): Similar for UNSPEC.
6175         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
6176         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
6177         * config/cris/cris-protos.h (cris_output_addr_const): Remove
6178         declaration.
6179         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
6180         (cris_asm_output_label_ref): Declare.
6182 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
6184         PR preprocessor/19801
6185         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
6186         filenames that changed when libcpp was moved to the toplevel.
6188 2005-02-07  Roger Sayle  <roger@eyesopen.com>
6190         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
6191         zero extensions of BImode operands.  Call lowpart_subreg instead
6192         of gen_lowpart_common and gen_lowpart_SUBREG.
6194 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
6196         PR ada/19489
6197         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
6198         * configure.ac: Set cc_for_cross_gnattools.
6199         * configure: Regenerate.
6201 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
6203         PR target/19803
6204         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
6206 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
6208         PR debug/19327
6209         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
6210         of nested functions.
6212 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
6214         * doc/extend.texi: Document deprecated extensions allowing
6215         static floating-point members to have initializers and allowing
6216         floating-point literals in integral constant expressions.
6218 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6220         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
6221         config/darwin7.h, config/mips/mips.c,
6222         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
6223         Update copyright.
6225         * cse.c: Update comments.
6227 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
6229         PR middle-end/19775
6230         * builtins.c (fold_builtin_sqrt): Transform
6231         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
6232         pow(x,y*0.5).
6234 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
6235             Dorit Naishlos  <dorit@il.ibm.com>
6237         * doc/invoke.texi (ftree-vectorizer-verbose): New.
6238         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
6239         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
6240         was added.
6241         * tree.h (vect_set_verbosity_level): New extern function declaration
6242         added.
6243         * tree-vectorizer.h (verbosity_levels): New enum type.
6244         * tree-vectorizer.c (vect_debug_stats): Function removed.
6245         (vect_debug_details): Likewise.
6246         (vect_verbosity_level): Global variable was defined and initialized.
6247         (vect_dump): Global variable definition.
6248         (vect_print_dump_info): New function.
6249         (vect_set_dump_settings): New function.
6250         (vect_set_verbosity_level): New function.
6251         (vectorize_loops): Add call to vect_set_dump_settings.
6253         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
6254         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
6255         (slpeel_tree_peel_loop_to_edge): Likewise.
6257         (vect_analyze_offset_expr): Call to vect_print_dump_info with
6258         appropriate verbosity level instead of call to vect_debug_details
6259         or vect_debug_stats.
6260         (vect_get_base_and_offset):
6261         (vect_create_addr_base_for_vector_ref):
6262         (get_vectype_for_scalar_type):
6263         (vect_create_data_ref_ptr):
6264         (vect_init_vector):
6265         (vect_get_vec_def_for_operand):
6266         (vect_finish_stmt_generation):
6267         (vectorizable_assignment):
6268         (vectorizable_operation):
6269         (vectorizable_store):
6270         (vectorizable_load):
6271         (vect_transform_stmt):
6272         (vect_update_ivs_after_vectorizer):
6273         (vect_do_peeling_for_loop_bound):
6274         (vect_update_inits_of_drs):
6275         (vect_do_peeling_for_alignment):
6276         (vect_transform_loop):
6277         (vect_is_simple_use):
6278         (vect_analyze_operations):
6279         (vect_is_simple_iv_evolution):
6280         (vect_analyze_scalar_cycles):
6281         (vect_analyze_data_ref_dependence):
6282         (vect_analyze_data_ref_dependences):
6283         (vect_compute_data_ref_alignment):
6284         (vect_enhance_data_refs_alignment):
6285         (vect_analyze_data_refs_alignment):
6286         (vect_analyze_data_ref_access):
6287         (vect_analyze_data_ref_accesses):
6288         (vect_analyze_pointer_ref_access):
6289         (vect_get_memtag_and_dr):
6290         (vect_analyze_data_refs):
6291         (vect_mark_relevant):
6292         (vect_stmt_relevant_p):
6293         (vect_mark_stmts_to_be_vectorized):
6294         (vect_can_advance_ivs_p):
6295         (vect_get_loop_niters):
6296         (vect_analyze_loop_form):
6297         (vect_analyze_loop):
6298         (vectorize_loops): Likewise.
6300         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
6301         (vect_update_inits_of_drs):
6302         (vect_do_peeling_for_alignment):
6303         (vect_transform_loop):
6304         (vect_analyze_operations):
6305         (vect_analyze_scalar_cycles):
6306         (vect_analyze_data_ref_dependences):
6307         (vect_analyze_data_refs_alignment):
6308         (vect_analyze_data_ref_accesses):
6309         (vect_analyze_data_refs):
6310         (vect_mark_stmts_to_be_vectorized):
6311         (vect_get_loop_niters):
6312         (vect_analyze_loop_form):
6313         (vect_analyze_loop): Likewise.
6314         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
6316 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
6318         PR bootstrap/19796
6319         Revert:
6320         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
6321         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
6322         either -ffast-math or -funsafe-math-optimizations is in use.
6324         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
6325         * config/mips/irix-csr.c: New file.
6326         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
6327         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
6328         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
6329         executables.
6331 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
6333         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
6334         redundant, incorrect definitions.
6336         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
6337         expand.
6338         ("*tls_indirect_call"): New, reference hard regs directly.
6339         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
6341 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
6343         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
6344         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
6346 2005-02-06  Roger Sayle  <roger@eyesopen.com>
6348         PR rtl-optimization/19800
6349         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
6350         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
6351         gen_lowpart.
6353 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
6355         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
6357 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
6359         PR other/17135
6360         * doc/invoke.texi: Correct documentation of -freorder-functions.
6362 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
6364         PR other/14402
6365         * doc/invoke.texi: Don't mention gccbug.
6367 2005-02-06  Roger Sayle  <roger@eyesopen.com>
6368             Andrew Pinski  <pinskia@physics.uc.edu>
6369             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
6371         * simplify-rtx.c (simplify_relational_operation_1): Simplify
6372         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
6373         into just (zero_extract:SI FOO (const_int 1) BAR).
6375 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
6377         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
6378         macro locally.  Don't give last revision date.  Use GCC version
6379         number from gcc-common.texi.
6380         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
6381         revision date.  Use GCC version number from gcc-common.texi.
6382         Describe being a library as current state rather than as 3.x
6383         history.
6384         * doc/gcc.texi: Remove last update date.
6385         * doc/gccint.texi: Likewise.  Update copyright dates.
6386         * doc/install.texi: Update copyright dates.
6388 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
6390         PR other/7549
6391         * doc/invoke.texi: Mention for each option included in -Wall that
6392         it is included in -Wall.
6393         * doc/gcc.texi: Update copyright and last modification date.
6395 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
6397         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
6398         unnecessary cast to original induction variable increments.
6400 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
6402         PR tree-optimization/18219
6403         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
6404         in distributed form.
6406 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
6408         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
6409         Set bitpos and offset later in the function.  Do nothing if the
6410         target is a register and if the bitfield lies completely outside
6411         that register.
6412         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
6413         here.  Return an uninitialised register if the source value is stored
6414         in a register and the bitfield lies completely outside that register.
6416 2005-02-06  Steven Bosscher  <stevenb@suse.de>
6418         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
6419         not SET_DEST.
6421 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
6423         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
6425 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
6427         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
6428         * config/darwin8.h: New.
6429         * config/darwin7.h: Update comment.
6431 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
6432             Dorit Naishlos  <dorit@il.ibm.com>
6434         * tree-vectorizer.h (LOC): New type.
6435         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
6436         (loop_line_number): New field in struct _loop_vec_info.
6437         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
6439         * tree-vectorizer.c (input.h): Included.
6440         (find_loop_location): New function.
6441         (vect_debug_stats): Argument changed from loop to LOC. Computation of
6442         loop line number removed.
6443         (vect_debug_details): Likewise.
6444         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
6446         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
6447         call to vect_debug_details/stats changed from loop to loop_loc.
6448         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
6449         (slpeel_tree_peel_loop_to_edge): Likewise.
6451         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
6452         changed from NULL to UNKNOWN_LOC.
6453         (vect_get_base_and_offset):
6454         (vect_create_addr_base_for_vector_ref):
6455         (get_vectype_for_scalar_type):
6456         (vect_create_data_ref_ptr):
6457         (vect_init_vector):
6458         (vect_get_vec_def_for_operand):
6459         (vect_finish_stmt_generation):
6460         (vectorizable_assignment):
6461         (vectorizable_operation):
6462         (vectorizable_store):
6463         (vectorizable_load):
6464         (vect_transform_stmt):
6465         (vect_update_ivs_after_vectorizer):
6466         (vect_do_peeling_for_loop_bound):
6467         (vect_do_peeling_for_alignment):
6468         (vect_transform_loop):
6469         (vect_is_simple_use):
6470         (vect_analyze_operations):
6471         (vect_is_simple_iv_evolution):
6472         (vect_analyze_scalar_cycles):
6473         (vect_analyze_data_ref_dependences):
6474         (vect_compute_data_ref_alignment):
6475         (vect_enhance_data_refs_alignment):
6476         (vect_analyze_data_ref_access):
6477         (vect_analyze_data_ref_accesses):
6478         (vect_analyze_pointer_ref_access):
6479         (vect_get_memtag_and_dr):
6480         (vect_analyze_data_refs):
6481         (vect_mark_relevant):
6482         (vect_stmt_relevant_p):
6483         (vect_mark_stmts_to_be_vectorized):
6484         (vect_can_advance_ivs_p):
6485         (vect_get_loop_niters):
6486         (vect_analyze_loop):
6487         (vectorize_loops): Likewise.
6489         (vectorizable_load): Argument in call to vect_debug_details/stats
6490         changed from loop to LOOP_LOC (loop_vinfo).
6491         (vect_transform_loop):
6492         (vect_analyze_operations):
6493         (vect_analyze_scalar_cycles):
6494         (vect_analyze_data_ref_dependence):
6495         (vect_enhance_data_refs_alignment):
6496         (vect_analyze_data_ref_accesses):
6497         (vect_analyze_pointer_ref_access):
6498         (vect_analyze_data_refs):
6499         (vect_analyze_loop): Likewise.
6501         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
6502         changed from loop to loop_loc.
6504         (vect_enhance_data_refs_alignment): Removed unused variable loop.
6506 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
6507             Dorit Naishlos  <dorit@il.ibm.com>
6509         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
6510         declaration added.
6511         (vect_analyze_data_ref_dependences): Likewise.
6513         (vect_is_simple_use): Argument changed from loop structure to
6514         loop_vect_info structure.
6515         (vect_can_advance_ivs_p): Likewise.
6516         (vect_create_index_for_vector_ref): Likewise.
6517         (vect_update_ivs_after_vectorizer): Likewise.
6518         (new_stmt_vec_info): Likewise.
6520         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
6521         changed from loop to loop_vinfo.
6522         (vect_create_data_ref_ptr): First argument in call to
6523         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
6524         (vectorizable_assignment): Second argument in call to vect_is_simple_use
6525         was changed from loop to loop_vinfo.
6526         (vectorizable_operation): Likewise.
6527         (vectorizable_store): Likewise.
6528         (vect_mark_stmts_to_be_vectorized): Likewise.
6529         (vect_do_peeling_for_loop_bound): First argument in call to
6530         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
6531         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
6532         was changed from loop to loop_vinfo.
6533         (vect_analyze_data_ref_dependences): Third argument in call to
6534         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
6536         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
6537         (vect_create_data_ref_ptr): Likewise.
6538         (vect_init_vector): Likewise.
6539         (vect_get_vec_def_for_operand): Likewise.
6540         (vectorizable_assignment): Likewise.
6541         (vectorizable_operation): Likewise.
6542         (vectorizable_store): Likewise.
6543         (vectorizable_load): Likewise.
6544         (vect_update_ivs_after_vectorizer): Likewise.
6545         (vect_is_simple_use): Likewise.
6546         (vect_analyze_data_ref_dependence): Likewise.
6547         (vect_analyze_pointer_ref_access): Likewise.
6548         (vect_can_advance_ivs_p): Likewise.
6550         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
6551         before _stmt_vec_info.
6552         (_stmt_vec_info): Loop field replaced by loop_vec_info.
6553         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
6554         (new_stmt_vec_info): Argument changed from loop structure to
6555         loop_vect_info structure
6557         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
6558         (vect_analyze_offset_expr): Avoid 80 columns overflow.
6559         (vect_create_addr_base_for_vector_ref): Likewise.
6560         (vect_analyze_pointer_ref_access): Likewise.
6562 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
6564         PR tree-opt/19768
6565         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
6566         phi flag if the phi is abnormal.
6568 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
6570         PR tree-opt/19736
6571         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
6572         information for the new statement.
6574 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
6576         PR driver/19117
6577         * gcc.c (main): Include the target in -v output.
6579 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
6581         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
6582         Do not drop the extend if we'd have to add a paradoxical subreg
6583         later.  Include optabs.h and insn-codes.h.
6584         * Makefile.in (combine.o): Depend on $(OPTABS_H).
6586 2005-02-02  Roger Sayle  <roger@eyesopen.com>
6588         PR middle-end/19405
6589         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
6590         * fold-const.c (const_binop): Avoid constant folding floating
6591         point operations in modes that use composite representations.
6592         * simplify-rtx.c (simplify_binary_operation): Likewise.
6594 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
6596         * config/rs6000/altivec.md (altivec_dst): Make the first operand
6597         a REG, not a MEM.
6598         (altivec_dstt): Likewise.
6599         (altivec_dstst): Likewise.
6600         (altivec_dststt): Likewise.
6601         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
6602         of first operand.
6604 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
6606         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
6607         EXPR_LOCUS from orig_cond to the new cond_stmt.
6608         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
6609         the new vec_stmt.
6611 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
6613         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
6614         standard_iv_increment_position. Remove call to bsi_next
6615         (no need to bump the iterator anymore).
6616         (vect_create_index_for_vector_ref): Call
6617         standard_iv_increment_position. Remove second function argument.
6618         (vect_finish_stmt_generation): Remove call to bsi_next
6619         (no need to bump the iterator anymore).
6620         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
6621         to vect_create_index_for_vector_ref.
6623 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
6625         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
6626         phis are used out of the loop.
6628 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
6630         PR c/17807
6631         * c-decl.c (undef_nested_function): New variable.
6632         (pop_scope): Diagnose undefined nested functions.
6633         (finish_function): Don't attempt cgraph processing or genericizing
6634         if current top-level function contained an undefined nested
6635         function.  Reset undef_nested_function at the end of a top-level
6636         function.
6638 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
6640         * tree.c (build_int_cst_type): Take sign of the value into account
6641         when deciding whether sign extend the value.
6643 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
6645         PR c/18502
6646         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
6647         (cpp_options, cc1_options): Change %{std*&ansi} to
6648         %{std*&ansi&trigraphs}.
6650 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
6652         * cse.c: Update comments.
6654 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
6656         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
6657         arguments go on the stack.  Do not put complex doubles in odd/even
6658         pairs.
6660 2005-02-02  Steven Bosscher  <stevenb@suse.de>
6662         * doc/invoke.texi: Update the options enabled at -O1, -O2,
6663         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
6664         -ftree-pre, and -fthread-jumps.
6666 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
6668         PR tree-optimization/19578
6669         * tree-flow.h (modified_noreturn_calls): Declare.
6670         (noreturn_call_p): Declare.
6671         * tree-flow-inline.h (noreturn_call_p): New function.
6672         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
6673         * tree-cfg.c (modified_noreturn_calls): New variable.
6674         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
6675         that contain a mid-block noreturn call.
6676         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
6678 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
6680         * df.c (df_def_record_1, df_uses_record): Don't use
6681         DF_FOR_REGALLOC.
6682         * df.h (DF_FOR_REGALLOC): Remove.
6684 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
6686         PR c/19435
6687         * c-typeck.c (really_start_incremental_init): Reset
6688         constructor_max_index for arrays of incomplete type.
6690 2005-02-02  Jeff Law  <law@redhat.com>
6692         * gcse.c (struct reg_set): Store the block index where the register
6693         was set rather than the setting insn.
6694         (record_one_set, compute_transp): Corresponding changes.
6695         (pre_insert_copy_insn): Do not call replace_one_set.
6696         (replace_one_set): Remove.
6698 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
6700         PR other/15514
6701         * doc/gcov.texi: Fix typo.
6703 2005-02-01  Richard Henderson  <rth@redhat.com
6705         PR target/19680
6706         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
6707         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
6708         type to bool.
6709         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
6710         * config/i386/i386-protos.h: Update.
6712 2005-02-01  Steven Bosscher  <stevenb@suse.de>
6714         PR tree-optimization/19217
6715         * tree-cfg.c (verify_expr): Use the data field to see if TP was
6716         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
6717         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
6718         that it is walking a PHI node.
6720 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
6722         * doc/extend.texi (Nested Functions): Update.
6724 2005-02-01  Richard Henderson  <rth@redhat.com>
6726         PR 19696
6727         * optabs.c (expand_copysign_absneg): Export.
6728         * optabs.h (expand_copysign_absneg): Declare.
6729         * config/rs6000/rs6000.md (copysigntf3): New.
6731 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
6733         PR tree-optimization/19633
6734         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
6735         * tree-ssa-alias.c (init_alias_info): Initialize.
6736         (merge_pointed_to_info): Set.
6737         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
6738         (dump_points_to_info_for): Show value of pt_null.
6739         (struct count_ptr_d): Declare.
6740         (find_ptr_dereference): Remove.
6741         (ptr_is_dereferenced_by): Remove.
6742         (count_ptr_derefs): New local function.
6743         (count_uses_and_derefs): New local function.
6744         (compute_points_to_and_addr_escape): Call it.  If the number
6745         of dereferences is greater than zero, mark the pointer as
6746         dereferenced.  If there are fewer dereferences than uses of
6747         the pointer, the pointer's value escapes.
6749 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
6751         PR tree-optimization/19670
6752         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
6753         here...
6754         (verify_use): ... set it here, instead.
6756 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
6758         * doc/sourcebuild.texi (Test directives): Fix formatting.
6760         * doc/sourcebuild.texi (Test directives): Describe selector
6761         expressions.
6763 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
6765         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
6766         specific 64-bit CPUs.
6768 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
6770         PR target/16201
6771         * arm.c (arm_eliminable_register): New function.
6772         (adjacent_mem_locations): Don't allow eliminable registers.  Use
6773         HOST_WIDE_INT for address offsets.
6774         * arm-protos.h (arm_eliminable_register): Add prototype.
6776 2005-02-01  Steven Bosscher  <stevenb@suse.de>
6778         PR optimization/15242
6779         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
6780         * basic-block.h (duplicate_computed_gotos): Add prototype.
6781         * bb-reorder.c (duplicate_computed_gotos): New function to
6782         duplicate sufficiently small blocks ending in a computed jump.
6783         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
6784         if not optimizing for size.
6785         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
6786         never do tail merging for blocks ending in a computed jump.
6787         * doc/invoke.texi: Document the max-goto-duplication-insns param.
6789 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
6791         Patch from Richard Sandiford <rsandifo@redhat.com>
6792         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
6793         from inheriting a subreg equivalence with a non-spill register.
6795         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
6797 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
6799         * config/frv/frv.c (movcc_fp_destination_operand): New.
6800         (gpr_or_memory_operand): Fix typo in comment.
6801         (gpr_or_memory_operand_with_scratch): New.
6802         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
6803         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
6804         movcc_fp_destination_operand.
6805         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
6806         Legitimize memory addresses using a scratch register.
6808 2005-01-31  Jeff Law  <law@redhat.com>
6810         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
6811         bitmap a sparse bitmap instead of a simple bitmap.
6812         (mark_def_sites_initialize_block):  Corresponding changes.
6813         (ssa_mark_def_sites_initialize_block): Likewise.
6814         (ssa_mark_phi_uses): Likewise.
6815         (mark_def_site, ssa_mark_def_sites): Likewise.
6816         (mark_def_site_blocks): Likewise.
6817         (rewrite_ssa_into_ssa): Likewise.
6819         * tree-ssa-dom.c (record_cond): Pass correct variable type
6820         for last argument to htab_find_slot_with_hash.
6822         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
6823         effects when optimizing 0 % X.  Do not try to optimize X % 0.
6825 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
6827         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
6828         1_mmalua.
6830 2005-02-01  Eric Christopher  <echristo@redhat.com>
6832         * config/mips/mips.c (override_options): Warn if -mint64
6833         is used.
6834         * doc/invoke.texi (MIPS Options): Document that -mint64 is
6835         deprecated.
6837 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
6839         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
6840         timestamp.
6841         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
6842         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
6843         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
6844         (cached_regno): Initialize to INVALID_REGNUM.
6845         (cse_reg_info_table_size,
6846         cse_reg_info_table_first_uninitialized,
6847         cse_reg_info_timestamp): New.
6848         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
6849         get_cse_reg_info.
6850         (init_cse_reg_info, get_cse_reg_info_1): New.
6851         (get_cse_reg_info): Cache the last look-up.
6852         (new_basic_block): Update the code to clear mappings from
6853         registers to cse_reg_info entries.
6854         (cse_main): Call init_cse_reg_info.
6856         * cse.c (get_cse_reg_info): Update a comment.
6858 2005-01-31  Steven Bosscher  <stevenb@suse.de>
6860         PR c/19333
6861         * c-decl.c (start_decl): Do not warn about arrays of elements with
6862         an incomplete type here.
6863         (grokdeclarator): Do it here by making a pedwarn an error.
6864         * c-typeck.c (push_init_level): If there were previous errors with
6865         the constructor type, do not warn about braces for initializers.
6866         (process_init_element): Likewise for excess initializer elements.
6868 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
6870         * cse.c (delete_trivially_dead_insn): Don't iterate.
6872 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
6874         * config/rs6000/rs6000.md (copysignsf3): New expand.
6875         (copysigndf3): Likewise.
6877 2005-01-31  Steven Bosscher  <stevenb@suse.de>
6879         * recog.c (constrain_operands): Only look for earlyclobber operand
6880         conflicts if an '&' constraint was seen.
6882 2005-01-31  Marc Espie <espie@openbsd.org>
6884         * config.gcc: Don't include embedded systems fragment, switches default
6885         debugging format to ELF.
6886         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
6887         longer pick it up there.
6889 2005-01-31  Dale Johannesen  <dalej@apple.com>
6891         * doc/extend.texi (nested functions): Fix linkage description.
6892         Clarify that static is not allowed.
6894 2005-01-31  Dale Johannesen  <dalej@apple.com>
6896         * config/rs6000/darwin.md (movsf_low_di):  Make work.
6897         (movdf_low_di):  Make work.
6899 2005-01-31  Dale Johannesen  <dalej@apple.com>
6901         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
6902         Make work for 64 bit.
6904 2005-01-31  Roger Sayle  <roger@eyesopen.com>
6905             Dale Johannesen  <dalej@apple.com>
6907         PR middle-end/19650
6908         * fold-const.c (fold_binary_op_with_conditional_arg):
6909         Make types match original operands, before STRIP_NOPS.
6911 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
6913         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
6914         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
6915         (struct gcc_sigcontext): Delete.  Merge contents to..
6916         (struct gcc_ucontext): ..here.
6917         (get_sigcontext): Delete.
6918         (get_regs): New function, like get_sigcontext but return regs ptr.
6919         64-bit version finds regs from r1 to support vdso.
6920         (ppc_linux_aux_vector): New function.
6921         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
6922         and vector regs.
6924 2005-01-31  Ira Rosen  <irar@il.ibm.com>
6926         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
6927         sizetype.
6928         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
6929         redundant fold. Fix misalignment for MINUS_EXPR.
6930         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
6931         (vect_analyze_pointer_ref_access): Likewise.
6932         (vect_get_memtag_and_dr): Likewise.
6934 2005-01-31  Richard Henderson  <rth@redhat.com>
6936         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
6937         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
6938         absnegdf2_i387, absnegxf2_i387): Likewise.
6940 2005-01-31  Richard Henderson  <rth@redhat.com>
6942         PR 19696
6943         * optabs.c (expand_copysign_absneg): New.
6944         (expand_copysign_bit): Split out from ...
6945         (expand_copysign): ... here.  Use expand_copysign_absneg.
6947 2005-01-30  Roger Sayle  <roger@eyesopen.com>
6949         PR middle-end/19697
6950         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
6951         constant as the second operand and a register as the third.
6953 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
6955         PR target/19704
6956         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
6957         that dllimport'd functions do not use all call-clobbered registers
6958         to pass parameters.
6960 2005-01-30  Richard Henderson  <rth@redhat.com>
6962         PR 19696
6963         * optabs.c (expand_absneg_bit): Split out from expand_unop and
6964         expand_abs_nojump and generalize.  Use operand_subword and
6965         emit_no_conflict_block.  Support large modes.
6966         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
6967         back to maximum.
6968         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
6969         negation to subtraction.
6970         (expand_copysign): Check that the format has signed zeros.
6971         Use operand_subword and emit_no_conflict_block.  Support large modes.
6973 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
6975         Fix PR tree-optimization/19624
6977         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
6978         * tree-ssa-pre.c: Add cfgloop.h.
6979         Update comment.
6980         (pre_stats): New member, constified.
6981         (inserted_exprs): New static variable.
6982         (NECESSARY): New macro.
6983         (create_expression_by_pieces): Fold the expression, and
6984         mark it as defaulting to not necessary. Also put in
6985         inserted_exprs.
6986         (fully_constant_expression): New function.
6987         (insert_into_preds_of_block): Modify to not insert phis when we
6988         are playing with induction variables.
6989         Push phis onto the inserted_exprs vector, and mark them as not
6990         necessary by default.
6991         (insert_aux): Call fully_constant_expression on eprime.
6992         If all edges produce the same value, mark it constant.
6993         (mark_operand_necessary): New function.
6994         (remove_dead_inserted_code): New function.
6995         (init_pre): Init loop optimizer to get loop info.
6996         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
6997         (execute_pre): Commit edge inserts, then remove dead code.
6999 2005-01-30  Richard Henderson  <rth@redhat.com>
7001         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
7002         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
7004 2005-01-30  Richard Henderson  <rth@redhat.com>
7006         PR target/19700
7007         * config/i386/i386.c (ix86_expand_copysign): New.
7008         (ix86_split_copysign_const): New.
7009         (ix86_split_copysign_var): Rename from ix86_split_copysign,
7010         rearrange op1/nmask operands.
7011         * config/i386/i386-protos.h: Update.
7012         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
7013         (copysigndf3): Likewise.
7014         (copysignsf3_const, copysigndf3_const): New.
7015         (copysignsf3_var): Rename from copysignsf3, split out splitter
7016         and fix split predicate for X constraint.
7017         (copysigndf3_var): Similarly.
7019 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
7021         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
7022         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
7023         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
7025 2005-01-29  Richard Henderson  <rth@redhat.com>
7027         PR target/19690
7028         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
7029         of # and * in constraints.
7031 2005-01-29  Richard Henderson  <rth@redhat.com>
7033         PR middle-end/19689
7034         * expr.c (store_field): Don't strip sub-mode cast when the input
7035         data is even smaller.
7037 2005-01-29  Richard Henderson  <rth@redhat.com>
7039         PR middle-end/19687
7040         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
7041         union being empty.
7043 2005-01-29  Richard Henderson  <rth@redhat.com>
7045         * combine.c (make_field_assignment): Fix argument order
7046         to gen_int_mode.
7048 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
7050         PR tree-optimization/15791
7051         * fold-const.c (extract_array_ref): New function.
7052         (fold): Fold comparisons between &a[i] and &a[j] or
7053         semantically equivalent trees.
7055 2005-01-29  Jeff Law  <law@redhat.com>
7057         * gcse.c (insert_expr_in_table): Revamp handling of available
7058         and anticipatable occurrence lists to avoid unnecessary list
7059         walking.
7060         (insert_set_in_table): Similarly.
7062 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
7064         * c-common.c (fix_string_type): Just use c_build_qualified_type to
7065         build string type.
7066         (c_build_qualified_type): Build qualified array types with
7067         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
7068         * c-decl.c (c_make_fname_decl): Build unqualified array type
7069         before qualified type.
7070         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
7071         type is qualified, not just if type itself is.  Don't apply
7072         qualifiers to array type when declarator is processed.  Apply
7073         qualifiers to field type whether or not it is an array type.
7074         Don't handle array types specially for applying qualifiers to
7075         variables.
7076         * c-typeck.c (composite_type): Build unqualified element type and
7077         array type when forming composite of array types.
7078         (common_pointer_type, comptypes, comp_target_types,
7079         type_lists_compatible_p, build_indirect_ref, build_array_ref,
7080         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
7081         types.
7082         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
7083         (args2) in variables a1 and a2.
7085 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
7087         * cse.c (n_elements_made, max_elements_made): Remove.
7088         (insert): Don't touch n_elements_made.
7089         (cse_main): Don't touch n_elements_made or max_elements_made.
7091 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
7093         PR target/15384
7094         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
7095         configuration part of dp-bit.c to be lost.
7097 2005-01-28  Roger Sayle  <roger@eyesopen.com>
7099         * expmed.c (expand_mult_highpart_optab): When attempting to use
7100         a non-widening multiplication in a wider mode, the operands need
7101         to be converted (zero or sign extended) to that mode.
7103 2005-01-28  Ian Lance Taylor  <ian@airs.com>
7105         PR middle-end/16558
7106         PR middle-end/19583
7107         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
7108         through if both operands fall through.
7110 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
7112         * cse.c (fold_rtx) <PC>: Don't optimize.
7114 2005-01-28  Jeff Law  <law@redhat.com>
7116         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
7117         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
7119 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
7121         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
7122         cse_reg_info_used_list_end): Remove.
7123         (cse_reg_info_list, cse_reg_info_list_free): New.
7124         (get_cse_reg_info): When allocating an instance of
7125         cse_reg_info, add it to the beginning of the cse_reg_info_list
7126         list.  Remove code to maintain cse_reg_info_used_list.
7127         (new_basic_block): Reset the free list to the beginning of
7128         cse_reg_info_list.
7130 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
7132         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
7133         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
7134         (frv_expand_mdpackh_builtin): New function.
7135         (frv_expand_builtin): Use it to expand __MDPACKH.
7136         * doc/extend.texi (__MDPACKH): Update documentation.
7138 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
7140         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
7141         SSE_FLOAT_MODE_P for use_sse computation.
7143 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
7145         PR target/19663
7146         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
7148 2005-01-27  Richard Henderson  <rth@redhat.com>
7150         * builtins.c (expand_builtin_copysign): New.
7151         (expand_builtin): Call it.
7152         * genopinit.c (optabs): Add copysign_optab.
7153         * optabs.c (init_optabs): Initialize it.
7154         (expand_copysign): New.
7155         * optabs.h (OTI_copysign, copysign_optab): New.
7156         (expand_copysign): Declare.
7158         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
7159         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
7161         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
7162         (ix86_expand_fp_absneg_operator): ... here.
7163         (ix86_split_copysign): New.
7164         * config/i386/i386-protos.h: Update.
7165         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
7166         (copysignsf3, copysigndf3): New.
7168         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
7169         (copysignsf3, ncopysignsf3): New.
7170         (copysigndf3, ncopysigndf3): New.
7171         (copysignxf3, ncopysignxf3): New.
7172         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
7174 2005-01-27  Arend Bayer  <arend.bayer@web.de>
7175             Kazu Hirata  <kazu@cs.umass.edu>
7177         * cse.c: (find_best_addr): Don't call copy_rtx before calling
7178         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
7179         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
7180         NULL_RTX.
7182 2005-01-27  Jeff Law  <law@redhat.com>
7184         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
7185         definitions of SSA_NAMEs which are not being rewritten.
7186         (rewrite_ssa_into_ssa): Only initialize the current definition
7187         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
7188         If checking is enabled, assert that SSA_NAME_AUX is clear for all
7189         SSA_NAMEs before returning.
7191 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
7193         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
7194         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
7195         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
7196         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
7197         config/mips/iris6.h, config/sh/sh.c: Update copyright.
7199 2005-01-27  Steven Bosscher  <stevenb@suse.de>
7201         PR middle-end/17278
7202         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
7203         higher to -O2 and higher.  Likewise for tree PRE.
7204         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
7205         and better.
7207 2005-01-27  Ian Lance Taylor  <ian@airs.com>
7209         PR middle-end/19583
7210         * gimple-low.c (try_catch_may_fallthru): New static function.
7211         (block_may_fallthru): Handle TRY_CATCH_EXPR.
7212         * tree-inline.c (expand_call_inline): Don't warn about reaching
7213         the end of a non-void function being inlined if the function uses
7214         a return slot.
7216 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
7218         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
7220         PR c/18946
7221         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
7222         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
7223         (implicitly_declare): Handle error_mark_node.
7225 2005-01-27  Richard Henderson  <rth@redhat.com>
7227         PR tree-opt/14329
7228         * tree.h (struct tree_decl): Add debug_expr_is_from.
7229         (DECL_DEBUG_EXPR_IS_FROM): New.
7230         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
7231         * dwarf2out.c (dwarf2out_var_location): Update to match.
7232         * tree-outof-ssa.c (create_temp): Likewise.
7233         * var-tracking.c (track_expr_p): Likewise.
7234         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
7235         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
7236         * toplev.c (default_tree_printer): Likewise.
7238 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
7240         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
7241         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
7243 2005-01-27  Steven Bosscher  <stevenb@suse.de>
7245         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
7246         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
7247         ASM_CLOBBERS): Add tree checks.
7249         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
7250         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
7251         * c-common.def (SWITCH_STMT): Update to match.
7252         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
7253         macros instead of SWITCH_EXPR ones.
7254         * c-dump.c (c_dump_tree): Likewise.
7255         * c-gimplify.c (gimplify_switch_stmt): Likewise.
7256         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
7258         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
7260 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
7262         * unwind-dw2.c (execute_stack_op): Add missing cases for
7263         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
7265 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
7267         * config.gcc (Obsolete configurations): Remove 'dummy', add
7268         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
7269         sparc-*-openbsd*.
7271 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
7273         PR tree-optimization/19633
7274         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
7275         CALL_EXPRs.
7276         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
7277         are no call-clobbered variables.
7278         * tree-outof-ssa.c (check_replaceable): Return false for calls
7279         with side-effects.
7281 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
7283         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
7284         even for variables with NULL DECL_INITIAL.
7286 2005-01-26  Stuart Hastings  <stuart@apple.com>
7288         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
7290 2005-01-26  Richard Henderson  <rth@redhat.com>
7292         PR middle-end/18008
7293         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
7294         field's type.
7295         * expr.c (store_field): Strip conversions to odd-bit-sized types
7296         if the destination field width matches.
7298 2005-01-26  Richard Henderson  <rth@redhat.com>
7300         * c-decl.c, expmed.c, expr.c: Revert last change.
7302 2005-01-26  Richard Henderson  <rth@redhat.com>
7304         PR middle-end/18008
7305         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
7306         field's type.
7307         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
7308         if we don't need the bits above those present in the current mode.
7309         * expr.c (store_field): Strip conversions to odd-bit-sized types
7310         if the destination field width matches.
7312 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
7314         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
7315         either -ffast-math or -funsafe-math-optimizations is in use.
7317 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7319         PR target/19293
7320         PR target/19329
7321         * config/avr/avr.c (notice_update_cc): Only set condition code for
7322         ashrqi3 if shift count > 0.
7323         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
7324         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
7325         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
7326         count <= 0 as a no-op, and shift count >= width by copying zero
7327         or sign bit to all bits of the result.
7328         * config/avr/avr.md (all shifts): Add alternatives for zero shift
7329         count, with attribute "length" set to 0 and "cc" set to "none".
7331 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
7333         * doc/invoke.texi: Document -mTLS.
7335         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
7336         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
7337         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
7338         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
7339         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
7340         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
7341         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
7342         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
7344         * configure.ac: Check for a TLS capable gas.
7346         * configure: Regenerate.
7348 2005-01-26  Richard Henderson  <rth@redhat.com>
7350         PR middle-end/18008
7351         * combine.c (make_field_assignment): Simplify store to zero_extract
7352         from a source with an overlapping mask.
7354 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
7356         2004-11-11  Eric Christopher  <echristo@redhat.com>
7358         * config/frv/frv.md: Add fr400_integer automaton. Don't
7359         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
7360         to TYPE_MACC.
7362 2005-01-26  Steven Bosscher  <stevenb@suse.de>
7364         PR middle-end/16585
7365         * cfgbuild.c (make_edges): Do not clear or set
7366         current_function_has_computed_jump.
7367         * function.h (struct function): Remove the has_computed_jump field.
7368         (current_function_has_computed_jump): Do not define.
7369         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
7370         in a computed jump.  Ignore current_function_has_computed_jump.
7372 2005-01-26  Richard Henderson  <rth@redhat.com>
7374         PR middle-end/19515
7375         * expr.c (categorize_ctor_elements): New argument p_must_clear.
7376         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
7377         fully initialized.
7378         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
7379         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
7380         objects into static storage if they have more than one non-zero value.
7381         * tree.h (categorize_ctor_elements): Update decl.
7383 2005-01-26  Steven Bosscher  <stevenb@suse.de>
7385         PR middle-end/19616
7386         * tree.h (CALL_EXPR_TAILCALL): Add comment.
7387         * calls.c (check_sibcall_argument_overlap_1): Revert the change
7388         to this function from 2004-07-10.
7389         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
7390         the current function for tail call optimizations if the address
7391         of one of it its arguments is taken.
7393 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
7395         * cse.c (fold_rtx): Call equiv_constant only when necessary.
7397 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
7399         * function.c (expand_function_end): If current_function_calls_alloca,
7400         emit stack restore in a place that is reached when the function falls
7401         through at the end.
7403 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
7405         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
7406         rule to avoid matching inappropriate suffix rule.
7408 2005-01-26  Jan Hubicka  <jh@suse.cz>
7410         PR tree-optimization/19241
7411         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
7413 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
7415         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
7416         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
7417         of doubling.
7418         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
7419         <sim*>: Always use crt1.o, regardless of N in simN.
7420         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
7421         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
7422         (CRT_CALL_STATIC_FUNCTION): Remove.
7423         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
7424         use crt1.o, regardless of N in simN.
7425         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
7426         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
7427         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
7428         case isystem setting.
7429         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
7431 2005-01-25  Ian Lance Taylor  <ian@airs.com>
7433         * gimple-low.c (block_may_fallthru): Correct handling of
7434         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
7436 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
7438         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
7439         handlers to match indentation; nested under the mtune=* handler.
7440         Similar for mcpu= and march=.
7442 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
7444         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
7445         * config/mips/linux64.h (LIB_SPEC): Likewise.
7446         * config/mn10300/linux.h (LIB_SPEC): Likewise.
7447         * config/sh/linux.h (LIB_SPEC): Likewise.
7449 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
7451         * config/frv/frv.c (frv_legitimize_tls_address): New.
7452         (TARGET_HAVE_TLS): Define.
7453         (FRV_SYMBOL_REF_TLS_P): Define.
7454         (frv_override_options): Handle new register classes.
7455         (frv_legitimate_address_p): Reject tls addresses.
7456         (frv_legitimize_address): Handle TLS addresses.
7457         (gen_inlined_tls_plt): New.
7458         (gen_tlsmoff): New.
7459         (frv_legitimize_tls_address): New.
7460         (unspec_got_name): Add TLS entries.
7461         (got12_operand): Add R_FRV_TLSMOFF12 case.
7462         (frv_emit_move): Fixup TLS addresses.
7463         (frv_emit_movsi): Legitimize TLS addresses.
7465         * config/frv/frv.h (MASK_BIG_TLS): New.
7466         (TARGET_BIG_TLS): New.
7467         (HAVE_AS_TLS): Define.
7468         (TARGET_SWITCHES): Add -mTLS and -mtls options.
7469         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
7470         (REG_CLASS_NAMES): Same.
7471         (REG_CLASS_CONTENTS): Same.
7472         (CONSTRAINT_LEN): New.
7473         (REG_CLASS_FROM_CONSTRAINT): New.
7474         (PREDICATE_CODES): Add symbolic_operand.
7476         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
7477         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
7478         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
7479         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
7480         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
7481         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
7482         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
7483         GR9_REG, GR14_REG, LRREG.
7484         (type): Add load_or_call attribute.
7485         ("load_or_call"): New reservation.
7486         ("call_gettlsoff"): New.
7487         ("tls_indirect_call"): New.
7488         ("tls_load_gottlsoff12"): New.
7489         ("tlsoff_hilo"): New.
7490         ("tls_tlsdesc_ldd"): New.
7491         ("tls_tlsoff_ld"): New.
7492         ("tls_lddi"): New.
7494         * config/frv/frv-protos.h (symbolic_operand): Protoize.
7496         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
7498         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
7499         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
7500         * config/frv/frv.c (TLS_BIAS): Define.
7501         (frv_output_dwarf_dtprel): New.
7503 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
7505         PR rtl-optimization/19579
7506         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
7507         both A and B, see if they don't clobber registers the other expr uses.
7509 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
7511         * real.c (do_add): Initialize signalling and canonical members.
7513         * real.c (real_from_integer): Zero out destination.
7515 2005-01-18  Jan Hubicka  <jh@suse.cz>
7517         PR tree-optimize/19337
7518         * tree-inline.c (initialize_inlined_parameters): Copy
7519         saved_static_chain_decl only.
7521 2005-01-25  Richard Henderson  <rth@redhat.com>
7523         PR target/19556
7524         PR target/19584
7525         * config/i386/i386.c (x86_inter_unit_moves): Zero.
7526         (ix86_preferred_reload_class): Rewrite fp-constant section, with
7527         80387 enabled, to return a proper subclass.  Return the subset that
7528         overlaps with GENERAL_REGS for PLUS.
7529         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
7531 2005-01-25  Richard Henderson  <rth@redhat.com>
7533         PR middle-end/19609
7534         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
7536 2005-01-25  Roger Sayle  <roger@eyesopen.com>
7538         * expmed.c (choose_multiplier): Change interface to return the
7539         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
7540         (expand_divmod): Update calls to choose_multiplier.
7542 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7544         PR middle-end/19330
7545         * expmed.c (extract_bit_field): Use adjust_address instead of
7546         gen_lowpart when op0 is a MEM.
7548 2005-01-24  Steven Bosscher  <stevenb@suse.de>
7550         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
7552 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
7554         * config/mips/irix-csr.c: New file.
7555         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
7556         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
7557         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
7558         executables.
7560 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
7562         PR bootstrap/19364
7563         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
7564         sparc/elf.h, add sparc/sp-elf.h.
7565         (sparc-*-rtems*): Likewise.
7566         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
7567         tm-dwarf2.h, add sparc/sp-elf.h.
7568         (sparc86x-*-elf): Likewise.
7569         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
7570         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
7571         TARGET_OS_CPP_BUILTINS.
7572         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
7573         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
7574         Undefine it.
7575         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
7576         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
7577         (SWITCH_TAKES_ARG): Likewise.
7578         (LOCAL_LABEL_PREFIX): Likewise.
7579         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
7580         (TARGET_N_FORMAT_TYPES): Delete.
7581         (TARGET_FORMAT_TYPES): Likewise.
7582         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
7583         * config/sparc/elf.h: Delete.
7584         * config/sparc/sp-elf.h: New file.
7586 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
7588         * tree-flow-inline.h (phi_arg_from_edge): Remove.
7589         * tree-flow.h: Remove the corresponding prototype.
7590         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
7591         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
7593 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
7595         PR target/17751
7596         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
7597         for AIX ABI or ELF -fPIC.
7598         (rs6000_emit_load_toc_table): Don't create toc_section here.
7599         (rs6000_xcoff_file_start): Nor here.
7601 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
7603         * sh.c (ra.h): Don't #include.
7604         (hard_regs_intersect_p): New function, resurrected from ra.c.
7606         * sh.c: Fix 1996 Copyright.
7608 2005-01-24  Richard Henderson  <rth@redhat.com>
7609             Aldy Hernandez  <aldyh@redhat.com>
7611         * regrename.c (note_sets): Handle subregs.
7613 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
7615         PR bootstrap/18058
7616         * genconditions.c (write_header, write_conditions): Elide file if
7617         not GCC >= 3.0.1.
7619 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
7621         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
7622         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
7623         Update copyright.
7625 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
7627         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
7628         expand_builtin_printf, expand_builtin_fprintf,
7629         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
7630         checking against POINTER_TYPE.
7631         (validate_arglist): Handle POINTER_TYPE code by checking
7632         POINTER_TYPE_P.
7634 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
7636         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
7637         init_rtlanal): New.
7638         (for_each_rtx): Call for_each_rtx_1.
7639         * rtl.h (init_rtlanal): Declare.
7640         * toplev.c (backend_init): Call init_rtlanal.
7642 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
7644         * flow.c (propagate_one_insn): Formatting.
7646         PR middle-end/19551
7647         * flow.c (libcall_dead_p): Be more conservative if unsure.
7648         If there are any instructions between insn and call, see if they are
7649         all dead before saying the libcall is dead.
7651 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
7653         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
7654         operand constraint for operand 0.
7656 2005-01-23  Richard Henderson  <rth@redhat.com>
7658         PR 19486
7659         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
7660         edges leading to join block.
7662 2005-01-23  Roger Sayle  <roger@eyesopen.com>
7664         * expmed.c (expand_mult_highpart): Make static.  Change type of
7665         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
7666         (expand_divmod): Updates calls to expand_mult_highpart by using
7667         gen_int_mode to pass a CONST_INT rtx.
7668         * rtl.h (expand_mult_highpart): Remove prototype.
7670 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
7672         * flow.c (regset_bytes, regset_size): Remove.
7674         * cfganal.c: Fix a reference to Harvey's paper.
7676 2005-01-23  Steven Bosscher  <stevenb@suse.de>
7678         PR rtl-optimization/19464
7679         * tree-optimize.c (init_tree_optimization_passes): Add one more
7680         copyrename pass just before out-of-ssa.
7682 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
7684         PR bootstrap/18058
7685         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
7686         * ggc-none.c (ggc_free): Define.
7688 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
7690         * cse.c (max_reg, max_insn_uid): Remove.
7691         (cse_main): Don't access max_reg or max_insn_uid.
7693         * c-common.c (explicit_flag_signed_bitfields,
7694         lang_statement_code_p, lang_expand_function_end): Remove.
7695         * c-common.h: Remove the corresponding declarations.
7696         * c-opts.c (c_common_handle_option): Remove all write access
7697         to explicit_flag_signed_bitfields.
7699         * cgraph.c (cgraph_varpool_n_nodes): Remove.
7700         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
7701         * cgraph.h: Remove the corresponding declaration.
7703         * gcse.c (null_pointer_info): Remove.
7705 2005-01-23  Roger Sayle  <roger@eyesopen.com>
7706             Eric Botcazou  <ebotcazou@libertysurf.fr>
7708         * combine.c (simplify_logical): Only simplify logical expressions
7709         of the form ior(and(x,y),z) by the inverse distributive law if the
7710         result is cheaper than the original.
7712 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
7714         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
7715         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
7716         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
7717         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
7718         config/freebsd-spec.h, config/arm/arm.h,
7719         config/h8300/h8300.md, config/i386/i386.md,
7720         config/i386/predicates.md, config/i386/sse.md,
7721         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
7722         config/vax/vax.md: Fix comment typos.  Follow spelling
7723         conventions.
7725 2005-01-23  Steven Bosscher  <stevenb@suse.de>
7727         * gengtype.c (walk_type): Produce `not equal to' compares for loop
7728         tests, instead of `less than'.
7730 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
7732         * function.c (assign_parm_setup_block): When creating a new stack slot
7733         for a parameter, get its alignment from the parameter's DECL_ALIGN
7734         rather than the type's TYPE_ALIGN.  Make sure that the parameter
7735         is at least word aligned.
7737 2005-01-22  Roger Sayle  <roger@eyesopen.com>
7739         PR middle-end/19378
7740         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
7742 2005-01-22  Richard Henderson  <rth@redhat.com>
7744         PR target/19506
7745         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
7746         in both compare operands.
7747         (movdfcc_1_sse_max): Likewise.
7748         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
7749         (movdfcc_1_sse): Likewise.
7750         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
7751         scratch register as needed.
7753 2005-01-22  Richard Henderson  <rth@redhat.com>
7755         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
7757         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
7759 2005-01-22  Richard Henderson  <rth@redhat.com>
7761         * genopinit.c (optabs): Use smin/smax for floating point too.
7762         * doc/md.texi: Update to match.  Clarify that floating point
7763         results are undefined for +0/-0 and NaN.
7764         * doc/rtl.texi: Likewise.
7765         * rtl.def (SMIN, SMAX): Likewise
7766         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
7768         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
7769         leading 's' to the name.
7770         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
7771         smaxxf3, sminxf3): Likewise.
7772         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
7773         Likewise.
7775 2005-01-22  Paul Brook  <paul@codesourcery.com>
7777         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
7779 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
7781         * config/s390/s390.c (struct processor_costs): New fields
7782         dlgr, dlr, dr, dsgfr, dsgr.
7783         (z900_cost, z990_cost): Values for new fields.
7784         (s390_rtx_costs): New cases MEM und COMPARE in switch
7785         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
7786         DIV, MOD, UDIV, UMOD.
7788 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
7790         * config/s390/s390.md ("doloop_si64"): Reload input value directly
7791         into the register being decremented.
7792         ("doloop_si31", "doloop_di"): Likewise.
7793         ("*doloop_si_long"): Adapt pattern.
7795 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
7797         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
7798         access registers.
7799         (CLASS_MAX_NREGS): Likewise.
7801 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
7803         * doc/tree-ssa.texi (Statement Operands): Add example for new
7804         must-def macro. Note deprecation of old operands interface.
7806 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
7808         PR tree-optimization/19484
7809         * tree-cfg.c (remove_fallthru_edge): New function.
7810         (cleanup_control_flow): Remove fallthru edges from calls that are
7811         now known not to return.
7813 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
7815         Fix PR tree-optimization/19038
7816         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
7817         copies with loop variant ones.
7819 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
7821         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
7822         config/alpha/alpha-protos.h, config/alpha/alpha.h,
7823         config/alpha/alpha.md, config/alpha/predicates.md,
7824         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
7825         config/sparc/sol2.h: Update copyright.
7827         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
7828         first label to see if it is a nonlocal label.
7830 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
7831             Andrew Pinski  <pinskia@physics.uc.edu>
7833         PR target/19491
7834         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
7835         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
7837 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
7839         * config/rs6000/rtems.h: Update copyright.
7841 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
7843         PR target/19548
7844         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
7845         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
7846         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
7848 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7850         PR c/18809
7851         * c-typeck.c (convert_arguments): Check for error_mark_node.
7853 2005-01-21  Ian Lance Taylor  <ian@airs.com>
7855         PR tree-optimization/13000
7856         * tree-inline.c: Include "tree-flow.h".
7857         (expand_call_inline): If warn_return_type, warn if non-void inline
7858         function falls through.
7859         * tree-cfg.c (execute_warn_function_return): Don't warn about
7860         control reaching end if TREE_NO_WARNING is set.  Set
7861         TREE_NO_WARNING.
7862         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
7863         has been lowered.
7864         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
7865         branch if we don't need one.
7866         * c-typeck.c: Include "tree-flow.h"
7867         (c_finish_bc_stmt): Don't add a goto if the current statement
7868         list doesn't fall through to the current point.
7870 2005-01-21  Roger Sayle  <roger@eyesopen.com>
7872         PR rtl-optimization/576
7873         * real.c (real_arithmetic): Change return type from void to bool
7874         to return an indication that the result may be inexact.
7875         * real.h (real_arithmeric): Update prototype.
7876         * fold-const.c (const_binop):  Don't constant fold floating
7877         point expressions when the user specifies -frounding-math and
7878         the result may depend upon the run-time rounding mode.
7879         (fold_convert_const_real_from_real): Clean-up.
7880         (fold_initializer): Ignore flag_rounding_math for initializers.
7881         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
7882         constant fold FP operations with flag_rounding_math if the
7883         result may depend upon the run-time rounding mode.
7885 2005-01-21  Tom Tromey  <tromey@redhat.com>
7887         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
7889 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
7891         * tree-cfg.c: Fix comment typos.
7893 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
7895         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
7896         around the call to rest_of_handle_branch_target_load_optimize.
7898 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
7900         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
7901         (sparc64-*-openbsd*): Likewise.
7902         (sparclite-*-elf*): Include tm-dwarf2.h.
7903         (sparc86x-*-elf*): Likewise.
7904         (sparc64-*-elf*): Likewise.
7905         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
7906         (DBX_DEBUGGING_INFO): Likewise.
7907         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
7908         (PREFERRED_DEBUGGING_TYPE): Likewise.
7909         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
7910         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
7911         (PREFERRED_DEBUGGING_TYPE): Likewise.
7912         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
7913         (PREFERRED_DEBUGGING_TYPE): Likewise.
7914         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
7916 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
7918         PR target/18701
7919         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
7921 2005-01-20  Paul Brook  <paul@codesourcery.com>
7923         * doc/rtl.texi: Document value extension requirements for CONST_INT.
7925 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7927         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
7928         label is first in a sequence of labels.
7930         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
7932 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
7933             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
7935         * doc/sourcebuild.texi (Test Directives): New.
7937 2005-01-20  Roger Sayle  <roger@eyesopen.com>
7939         * real.c (real_floor): Don't leave the result uninitialized when
7940         mode is VOIDMode, but return the unrounded intermediate value.
7941         (real_ceil): Likewise.
7943 2005-01-20  Paul Brook  <paul@codesourcery.com>
7945         * config/arm/arm.md (insv): Use gen_int_mode.
7947 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
7949         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
7950         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7951         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7952         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7953         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7955 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
7957         Fix PR debug/19124
7958         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
7959         fbreg, so we have to assume we can't.
7960         (loc_descriptor_from_tree_1): Ditto.
7961         (containing_function_has_frame_base): New function.
7962         (add_location_or_const_value_attribute): Use it.
7963         Also try to generate a frame_base from a single element location
7964         list.
7966 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7968         PR tree-optimization/15349
7969         * timevar.def (TV_TREE_MERGE_PHI): New.
7970         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
7971         PHI_WANTED.
7972         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
7973         calls to tree_forwarder_block_p.
7974         (remove_forwarder_block_with_phi, merge_phi_nodes,
7975         gate_merge_phi, pass_merge_phi): New.
7976         * tree-optimize.c (init_tree_optimization_passes): Add
7977         pass_merge_phi.
7978         * tree-pass.h: Add an extern for pass_merge_phi;
7980 2005-01-20  Richard Henderson  <rth@redhat.com>
7982         PR target/19418
7983         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
7984         (_mm_castps_pd, _mm_castps_si128): New.
7985         (_mm_castsi128_ps, _mm_castsi128_pd): New.
7987 2005-01-20  Richard Henderson  <rth@redhat.com>
7989         PR target/19530
7990         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
7991         __builtin_ia32_vec_init_v2si.
7992         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
7993         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
7994         (ix86_init_mmx_sse_builtins): Create it.
7995         (ix86_expand_builtin): Expand it.
7996         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
7997         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
7998         (vec_extractv2si_0, vec_extractv2si_1): New.
8000 2005-01-20  Richard Henderson  <rth@redhat.com>
8002         PR target/16533
8003         * config/i386/i386.c (ix86_expand_push): New.
8004         * config/i386/mmx.md (push<MMXMODE>1): New.
8005         * config/i386/sse.md (push<SSEMODE>1): New.
8006         * config/i386/i386-protos.h: Update.
8008 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8010         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
8011         copyright.
8013 2005-01-20  Richard Henderson  <rth@redhat.com>
8015         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
8016         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
8018 2005-01-19  Richard Henderson  <rth@redhat.com>
8020         PR target/19350
8021         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
8022         to V4SFmode in SSE1 fallback load path.
8024 2005-01-19  Richard Henderson  <rth@redhat.com>
8026         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
8027         in QImode expansion to ix86_expand_vector_set.
8028         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
8030 2005-01-19  Richard Henderson  <rth@redhat.com>
8032         PR target/19511
8033         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
8034         subclass of the input class.
8035         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
8036         Always true for cross-SSE1 classes.  Rationalize conditionals.
8037         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
8038         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
8039         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
8040         (movdi_2): Add MMX/SSE zeros.
8041         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
8042         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
8043         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
8044         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
8045         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
8046         (zero_extendsidi2_rex64_1): Remove.
8047         (MOV0 peephole): Check GENERAL_REG_P.
8049 2005-01-19  Richard Henderson  <rth@redhat.com>
8051         PR target/19427
8052         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
8053         shufps elements.
8054         (ix86_expand_vector_extract): Likewise.
8056 2005-01-19  Richard Henderson  <rth@redhat.com>
8058         PR middle-end/19304
8059         * expr.c (emit_move_change_mode): New argument force; use
8060         simplify_gen_subreg if true.
8061         (emit_move_via_alt_mode): Merge into ...
8062         (emit_move_via_integer): ... here.
8063         (emit_move_ccmode): Use emit_move_change_mode directly.
8065 2005-01-19  Richard Henderson  <rth@redhat.com>
8067         PR target/19518
8068         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
8069         (alpha_preferred_reload_class): Handle CONST_VECTOR.
8070         (alpha_emit_set_const_1): Add no_output parameter; don't emit
8071         rtl if true.
8072         (alpha_emit_set_const): Likewise.  Make static.
8073         (alpha_emit_set_long_const): Make static.
8074         (alpha_extract_integer): Split out from alpha_expand_mov.
8075         (alpha_split_const_mov): Likewise.
8076         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
8077         (alpha_legitimate_constant_p): New.
8078         * config/alpha/alpha-protos.h: Update.
8079         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
8080         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
8081         * config/alpha/alpha.md (movsi): Add n alternative.
8082         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
8083         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
8084         (splitters for all of the above): Use alpha_split_const_mov.
8085         * config/alpha/predicates.md (non_add_const_operand): New.
8086         (non_zero_const_operand): New.
8087         (input_operand): Use alpha_legitimate_constant_p after reload.
8089 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
8091         PR tree-optimization/19038
8092         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
8093         (add_candidate): Add ivs with increment in latch only if
8094         allow_ip_end_pos_p is true.
8095         (determine_iv_cost): Use empty_block_p.
8097 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
8099         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
8100         (compute_dominance_frontiers): Ditto.
8102 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
8104         PR target/19529
8105         * config/sh/t-rtems: New.
8106         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
8108 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
8110         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
8111         the offset of the selected field.
8113 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
8115         * tree-cfg.c (remove_forwarder_block): Fix the check to
8116         prevent a nonlocal label from appearing in the middle of a
8117         basic block.
8119 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
8121         PR rtl-optimization/19462
8122         * reorg.c (find_end_label): Create return insn only if
8123         current_function_epilogue_delay_list is empty.
8125 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
8127         * doc/passes.texi: Remove paragraph mentioning new-ra.
8129 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
8131         PR rtl-optimization/15139
8132         * combine.c: Include params.h.
8133         (count_rtxs): New function.
8134         (record_value_for_reg): If replace_rtx would replace at least
8135         2 occurrences of REG in VALUE and TEM is really large, replace REG with
8136         (clobber (const_int 0)) instead of TEM.
8137         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
8138         * params.h (MAX_LAST_VALUE_RTL): New.
8139         * Makefile.in (combine.o): Depend on $(PARAMS_H).
8140         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
8142         PR c/17297
8143         * c-typeck.c (digest_init): Only call build_vector if all constructor
8144         elements are *_CST nodes.
8145         * gimplify.c (gimplify_init_constructor): Likewise.
8147         PR middle-end/19164
8148         * c-typeck.c (digest_init): Only call build_vector if inside_init
8149         is a CONSTRUCTOR.
8151 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
8153         * toplev.c (init_asm_output): Remove dead #ifdef.
8155 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8157         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
8159 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
8161         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
8162         accessing DECL_FUNCTION_CODE.
8163         * dojump.c (do_jump): Likewise.
8164         * gimplify.c (gimplify_call_expr): Likewise.
8165         * predict.c (expr_expected_value): Likewise.
8166         (strip_builtin_expect): Likewise.
8167         * tree-inline.c (estimate_num_insns_1): Likewise.
8168         * tree-ssa-loop-im.c (stmt_cost): Likewise
8169         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
8170         (tree_expr_nonnegative_p): Likewise.
8172 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
8174         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
8175         variant of the load_pcrel_sym pattern.
8176         * config/sparc/sparc.md (P macro): Move to the top.
8177         (load_pcrel_sym): Macroize using P.
8178         (save_register_window): Likewise.
8180 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
8182         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
8183         ("sordered"): Same.
8185 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
8187         PR C/19472
8188         * c-typeck.c (build_asm_expr): Strip nops off
8189         input memory operands.
8191 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
8193         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
8194         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
8195         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
8196         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
8198 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
8200         PR target/19379
8201         * config/i386/i386.c (override_options): If the 80387 is disabled,
8202         then do not return FP values using FP registers.
8204 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
8206         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
8207         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
8208         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
8209         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
8210         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
8211         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
8212         output.h, postreload-gcse.c, postreload.c, recog.c,
8213         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
8214         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
8215         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
8216         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
8217         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
8218         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
8219         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
8220         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
8222         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8223         config/alpha/alpha.c, config/arm/vfp.md,
8224         config/i386/emmintrin.h, config/i386/i386-modes.def,
8225         config/i386/i386-protos.h, config/i386/i386.h,
8226         config/i386/pmmintrin.h, config/i386/ppro.md,
8227         config/i386/predicates.md, config/i386/xmmintrin.h,
8228         config/i860/i860.c, config/ia64/ia64-modes.def,
8229         config/ia64/ia64-protos.h, config/ia64/ia64.h,
8230         config/ia64/ia64.md, config/ia64/itanium1.md,
8231         config/ia64/itanium2.md, config/ia64/predicates.md,
8232         config/iq2000/iq2000.h, config/mips/linux64.h,
8233         config/rs6000/aix41.h, config/rs6000/aix43.h,
8234         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
8235         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
8236         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
8237         config/sparc/linux64.h, config/sparc/litecoff.h,
8238         config/sparc/sp64-elf.h, config/sparc/sparc.c,
8239         config/sparc/sparc.h, config/sparc/sparc.md,
8240         config/sparc/sysv4-only.h: Update copyright.
8242 2005-01-18  Richard Henderson  <rth@redhat.com>
8244         PR target/19496
8245         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
8247 2005-01-18  Marc Espie  <espie@openbsd.org>
8248         * config/i386/openbsdelf.h: Typo.
8250 2005-01-18  Richard Henderson  <rth@redhat.com>
8252         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
8253         special case for sse.
8254         * config/i386/predicates.md (sse_comparison_operator): Likewise.
8256 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
8258         * tree-inline.c (estimate_num_insns_1): Added cases for
8259         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
8261 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
8263         PR rtl-optimization/19296
8264         * combine.c (simplify_comparison): Rewrite the condition under
8265         which a non-paradoxical SUBREG of a PLUS can be lifted when
8266         compared against a constant.
8268 2005-01-18  Andi Kleen <ak@muc.de>
8270         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
8271         * c.opt (-Wpointer-sign): Add.
8272         * doc/invoke.texi: (-Wpointer-sign): Add.
8274 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
8276         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
8277         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
8278         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
8279         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
8280         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
8281         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
8282         for TARGET_MIX_SSE_I387.
8283         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
8284         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
8285         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
8286         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
8287         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
8288         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
8289         TARGET_MIX_SSE_I387.
8290         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
8291         from expander.
8293 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
8295         PR target/19424
8296         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
8297         Add movaps alternative for xmm reg->reg move.
8299 2005-01-17  Jeff Law  <law@redhat.com>
8301         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
8302         at the end of the main DOM loop rather than just before DOM exits.
8304 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
8306         PR tree-optimization/19121
8307         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
8308         adding aliases to a name tag, also add them to the pointer's
8309         type tag.
8310         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
8311         sensitive alias info at all.  Only check that the two pointers
8312         have compatible pointed-to sets.
8313         * tree-ssa.c (verify_name_tags): Verify that the alias set of
8314         a pointer's type tag is a superset of the alias set of the
8315         pointer's name tag.
8317 2005-01-17  James E Wilson  <wilson@specifixinc.com>
8319         PR target/19357
8320         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
8321         comment to document why.
8323 2005-01-17  Richard Henderson  <rth@redhat.com>
8325         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
8326         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
8327         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
8328         sse2_vmsminv2df3_finite): New.
8329         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
8330         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
8331         Force op1 into register.
8333 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
8335         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
8336         bubblestrap from always rebuilding build directory.
8338 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
8340         * config/s390/s390.md ("*clc"): Remove incorrect '='.
8341         ("*cmpmem_short"): Likewise.
8343 2005-01-17  Steven Bosscher  <stevenb@suse.de>
8345         * basic-block.h: Document BB_* flags.
8346         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
8347         use an sbitmap instead.
8348         * sched-rgn.c (compute_trg_info): Likewise.
8350 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
8352         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
8353         redundant target_cpu_default and extra_parts lines.  Use the default
8354         "from-abi" ISA.
8355         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
8356         (SUBTARGET_EXTRA_SPECS): Delete.
8357         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
8358         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
8359         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
8360         and "n32" for -mabi=n32.
8362 2005-01-17  Ian Lance Taylor  <ian@airs.com>
8364         PR c/5675
8365         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
8366         fold constant variables into initial values.
8368 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
8370         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
8372         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
8373         through the statements backward.
8375 2005-01-17  Ian Lance Taylor  <ian@airs.com>
8377         PR middle-end/13127:
8378         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
8379         a variable set to the return value of the inlined function.
8381 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
8383         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
8384         when modes are tieable.
8386 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
8388         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
8389         of pthread_create to find out if threads are enabled.
8390         * gthr-posix95.h (__gthread_active_p): Likewise.
8392 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
8394         * common.opt (-fnew-ra): Remove.
8395         * ra*.*: Remove.
8396         * toplev.h (flag_new_regalloc): Remove.
8397         * Makefile.in (ra*.*): Don't mention.
8398         * passes.c (rest_of_handle_new_regalloc): Remove.
8399         (rest_of_handle_combine, rest_of_compilation): Always consider
8400         flag_new_regalloc as false.
8401         * doc/invoke.texi: Don't document -fnew-ra.
8403 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
8405         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
8406         last parameter to reg_scan.
8407         * loop.c (loop_optimize): Likewise.
8408         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
8409         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
8410         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8411         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8412         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
8413         * regclass.c (reg_scan): Likewise, for the declaration.
8414         * rtl.h (reg_scan): Likewise, for the prototype.
8416 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
8418         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
8419         mark_dfs_back_edges.
8421 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
8423         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
8424         (compute_avail): Uses don't go in tmp_gen.
8426 2005-01-16  Steven Bosscher  <stevenb@suse.de>
8428         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
8429         loop to look for a free slot in a page entry.
8431 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8433         PR target/16304
8434         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
8435         * toplev.c (compile_file): Call process_pending_assemble_output_defs
8436         just before targetm.asm_out.file_end.
8437         * tree.h (process_pending_assemble_output_defs): Declare.
8438         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
8439         New functions.
8440         (assemble_alias): Defer generation of assembly code for defines when
8441         TARGET_DEFERRED_OUTPUT_DEFS is true.
8442         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
8443         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
8444         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
8446 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8448         PR target/19336
8449         * pa.c (pa_scalar_mode_supported_p): New function.
8450         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8451         * pa.h (MIN_UNITS_PER_WORD): Add comment.
8453         * pa-protos.h (prefetch_operand): Delete.
8454         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
8455         * pa.c (prefetch_operand): Delete.
8456         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
8457         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
8458         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
8459         and prefetch_nocc_operand.
8460         * pa.md (prefetch): Rework to avoid reload problems handling short
8461         displacements when a cache control completer needs to be provided.
8462         (prefetch_32, prefetch_64): Delete.
8463         (prefetch_cc, prefetch_nocc): New patterns.
8465 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
8467         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
8469 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8471         PR ada/19388
8472         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
8473         exceeds maximum alignment for global common data.
8474         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
8475         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
8477 2004-01-15  Roger Sayle  <roger@eyesopen.com>
8479         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
8481 2004-01-15  Roger Sayle  <roger@eyesopen.com>
8483         * harg-reg-set.h (reg_class_names): Prototype global array.
8484         * regclass.c (reg_class_names): Declare here and initialize to
8485         REG_CLASS_NAMES.
8486         (dump_regclass): Remove local declaration of reg_class_names.
8487         (regclass): Likewise.
8488         * cfg.c (dump_flow_info): Likewise.
8489         * ra-debug.c (reg_class_names): Likewise.
8490         * regrename.c (reg_class_names): Likewise.
8491         * reload.c (reg_class_names): Likewise.
8492         * reload1.c (spill_failure): Likewise.
8493         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
8495 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
8497         * config/s390/s390.md ("reload_outti"): Remove predicate for
8498         output operand.  Abort if operand is not a MEM.
8499         ("reload_outdi", "reload_outdf"): Likewise.
8501 2005-01-15  Marc Espie  <espie@openbsd.org>
8503         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
8504         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
8505         * config/openbsd.h:  Fix C++ includes for native configurations.
8506         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
8507         Add trampoline support.
8508         * config/i386/openbsdelf.h: New.
8510 2005-01-15  Marc Espie  <espie@openbsd.org>
8512         * collect2.c (main): Explicitly parse -dynamic-linker option.
8514 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
8516         PR tree-optimization/19060
8517         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
8518         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
8519         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
8520         and handle extract_range_from_cond returning false.
8521         * fold-const.c (fold): Optimize comparisons with min/max even for
8522         width > HOST_BITS_PER_WIDE_INT.
8524 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
8526         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
8527         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
8528         Remove little endian multilib variants.
8529         Add mips32 multilib variant.
8531 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
8533         * explow.c (copy_all_reg, stabilize): Remove.
8534         * expr.h: Remove the corresponding prototypes.
8536         * rtlanal.c (regs_set_between_p): Remove.
8537         * rtl.h: Remove the corresponding prototype.
8539 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
8541         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
8542         to rs6000_nonimmediate_operand.
8543         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
8544         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
8545         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
8546         rs6000_nonimmediate_operand.
8547         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
8548         rs6000_nonimmediate_operand.
8550 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
8552         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
8554 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8556         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
8557         on e500v2.
8558         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
8559         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
8561         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
8562         (rs6k_nonimmediate_operand): New.
8563         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
8564         correctly.
8565         (legitimate_lo_sum_address_p): Same.
8566         (rs6000_legitimize_address): Same.
8567         (rs6000_legitimize_reload_address): Same.
8568         (rs6000_legitimate_address): Same.
8569         (spe_build_register_parallel): Pass DF and DC modes in a DI
8570         register.
8572         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
8573         to rs6k_nonimmediate_operand.
8575         * config/rs6000/spe.md ("*frob_df_di"): New.
8576         ("*frob_di_df"): New.
8577         ("*frob_di_df_2"): New.
8578         ("*mov_sidf_e500_subreg0"): New.
8579         ("*mov_sidf_e500_subreg4"): New.
8580         ("*movdf_e500_double"): Change predicate to
8581         rs6k_nonimmediate_operand.
8583 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8585         * postreload.c (move2add_note_store): Only call
8586         trunc_int_for_mode on scalar integers.
8588 2005-01-14  Steven Bosscher  <stevenb@suse.de>
8590         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
8591         replace BB_VISITED uses.
8592         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
8593         (propagate_necessity): Check the bitmap instead of BB_VISITED.
8594         (tree_dce_done): Free visited_control_parents.
8595         (perform_tree_ssa_dce): Allocate and clear it.
8596         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
8597         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
8598         instead of BB_VISITED.
8600 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
8602         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
8603         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
8604         Remove unused prototypes.
8606 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8608         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
8609         64-bit register usage.
8610         (spe_func_has_64bit_regs_p): Add FIXME note.
8612 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8614         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
8615         flag_finite_math_only with flag_unsafe_math_optimizations.
8617 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
8619         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
8620         end-of-stack check.
8621         (__tpf_eh_return): Copy TPF private stack area from the module
8622         boundary stack frame.  Add check for when module addresses are
8623         equal, but no stub address is found.
8625 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
8627         PR target/7525
8628         * arm.h (struct machine_function): Add call_via field.
8629         (thumb_call_via_label): Declare.
8630         * arm.c (thumb_call_via_label): New variable.
8631         (thumb_call_reg_needed): New variable.
8632         (arm_output_function_epilogue): For Thumb code, output any per-function
8633         call-indirect trampolines.
8634         (thumb_call_via_reg): New function.
8635         (arm_file_end): New function.
8636         (TARGET_ASM_FILE_END): Call arm_file_end.
8637         (aof_file_end): Likewise.
8638         * arm-protos.h (thumb_call_via_reg): Declare.
8639         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
8640         thumb_call_via_reg in normal case.
8642 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
8644         PR middle-end/19084
8645         PR rtl-optimization/19348
8646         * recog.c (peephole2_optimize): Do global life update if some peephole
8647         decides it doesn't need at least one of its inputs and that change
8648         influences liveness at the start of the basic block.
8650         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
8651         arguments instead of 1.
8653 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
8655         PR middle-end/18820
8656         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
8657         zero for nested functions needing a static chain or functions
8658         with a non-constant address.
8660 2005-01-13  Roger Sayle  <roger@eyesopen.com>
8662         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
8663         (and (sign_extend X) C) into (zero_extend (and X C)).
8665 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
8667         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
8669 2005-01-13  Richard Henderson  <rth@redhat.com>
8671         PR target/19009
8672         PR target/19250
8673         PR target/19252
8674         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
8675         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
8676         not just TARGET_SSE.
8677         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
8678         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
8679         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
8680         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
8681         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
8682         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
8683         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
8684         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
8685         (movdicc_c_rex64): Rename with '*'.
8686         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
8687         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
8688         (movsfcc_1_387): Rename from movsfcc_1.
8689         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
8690         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
8691         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
8692         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
8693         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
8694         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
8695         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
8696         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
8697         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
8698         sse_movdfcc_const0_4): Remove.
8699         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
8700         recognize min/max early.  Update for changed sse cmove patterns.
8701         (ix86_split_sse_movcc): New.
8702         * config/i386/i386-protos.h: Update.
8704 2005-01-13  Steven Bosscher  <stevenb@suse.de>
8706         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
8707         (fix_stmt_v_may_defs): Likewise.
8709 2005-01-13  Richard Henderson  <rth@redhat.com>
8711         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
8712         for converting the mask.
8714 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
8716         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
8717         definition to 600.
8719 2005-01-13  Richard Henderson  <rth@redhat.com>
8721         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
8722         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
8723         IX86_BUILTIN_MOVDQ2Q): Remove.
8724         (IX86_BUILTIN_VEC_EXT_V4SI): New.
8725         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
8726         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
8727         shuffling.
8728         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
8729         (sse2_pextrw): Fix immediate constraint.
8730         (sse2_loadq, sse2_loadq_rex64): Remove.
8731         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
8732         Use __builtin_ia32_vec_ext_<size>.
8733         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
8735 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
8737         * function.c (assign_parm_setup_block): Look inside original
8738         entry_parm when inspecting PARALLEL.
8740 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
8741             Joel Sherrill  <joel@oarcorp.com>
8743         PR target/19399
8744         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
8745         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
8746         rtems_gxx_recursive_mutex_init.
8747         (__gthread_recursive_mutex_lock): New function.
8748         (__gthread_recursive_mutex_trylock): Likewise.
8749         (__gthread_recursive_mutex_unlock): Likewise.
8751 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
8753         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
8755 2005-01-13  Jan Beulich  <jbeulich@novell.com>
8757         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
8758         (ashrti3_internal): Indicate output is early clobber. Generate result
8759         into output rather than first input. Use move for low word of output
8760         if shift count is exactly 64.
8761         (lshrti3_internal): Likewise.
8763 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
8765         PR target/18329
8766         PR target/18330
8767         * reload1.c (delete_output_reload): Don't delete an output reload
8768         if the pseudo lives longer than a single basic block.  Adjust and
8769         improve wording of comment.
8771 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
8773         PR target/19334
8774         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
8775         of TYPE_SIZE where we mean the number of bytes.
8777 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
8779         * function.c (assign_parm_setup_block): Relax condition on
8780         multi-register optimization.
8782 2005-01-12  Nick Clifton  <nickc@redhat.com>
8784         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
8785         an "in_delay_slot" attribute of "no" to prevent them being used in
8786         delay slots.  This is forbidden because they might generate
8787         exceptions.
8789 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
8791         PR target/19389
8792         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
8793         with r->Y and Y->r.
8795 2005-01-12  Nick Clifton  <nickc@redhat.com>
8797         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
8798         passed on to GAS) but do not define, as GAS no longer supports or
8799         needs the -m2000 option.
8801 2005-01-11  Roger Sayle  <roger@eyesopen.com>
8803         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
8804         type as args of unprototyped builtins aren't automatically promoted.
8805         (fold_builtin_abs): Likewise.
8807 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8809         * Makefile.in: Set a `build-warn' variable.
8811 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
8813         PR tree-optimization/17949
8814         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
8815         (find_interesting_uses_address): Use it.
8817 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
8819         * regrename.c (kill_value): Handle subreg's that won't simplify.
8821 2005-01-11  Richard Henderson  <rth@redhat.com>
8823         PR target/13366
8824         * config/i386/i386.h (enum ix86_builtins): Move ...
8825         * config/i386/i386.c: ... here.
8826         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
8827         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
8828         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
8829         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
8830         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
8831         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
8832         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
8833         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
8834         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
8835         IX86_BUILTIN_LOADDDUP): Remove.
8836         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
8837         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
8838         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
8839         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
8840         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
8841         (ix86_init_builtins): Make static.
8842         (ix86_init_mmx_sse_builtins): Update for changed builtins.
8843         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
8844         if all the modes match.  Otherwise, fake it.
8845         (get_element_number, ix86_expand_vec_init_builtin,
8846         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
8847         (ix86_expand_builtin): Make static.  Update for changed builtins.
8848         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
8849         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
8850         (ix86_expand_vector_init_duplicate): New.
8851         (ix86_expand_vector_init_low_nonzero): New.
8852         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
8853         Split out from ix86_expand_vector_init; handle integer modes.
8854         (ix86_expand_vector_init): Use them.
8855         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
8856         * config/i386/i386-protos.h: Update.
8857         * config/i386/predicates.md (reg_or_0_operand): New.
8858         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
8859         (movv2sf_internal): Likewise.  And a splitter to match them all.
8860         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
8861         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
8862         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
8863         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
8864         (mmx_pinsrw): Fix operand ordering.
8865         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
8866         rather than sse_loadss expander.
8867         (movv2df splitter): Similarly.
8868         (sse_loadss, sse_loadlss): Remove.
8869         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
8870         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
8871         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
8872         (sse3_movddup): Rename with '*'.
8873         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
8874         (sse2_loadsd): Remove.
8875         (vec_dupv2df_sse3): Rename from sse3_loadddup.
8876         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
8877         (sse2_pinsrw): Fix argument ordering.
8878         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
8879         (sse2_stored): Remove 'r' destination.
8880         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
8881         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
8882         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
8883         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
8884         vec_extractv16qi, vec_initv16qi): New.
8886         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
8887         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
8888         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
8889         constructor form.
8890         (_mm_load_pd, _mm_store_pd): Use plain dereference.
8891         (_mm_load_si128, _mm_store_si128): Likewise.
8892         (_mm_load1_pd): Use _mm_set1_pd.
8893         (_mm_load_sd): Use _mm_set_sd.
8894         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
8895         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
8896         (_mm_set_epi64): Use _mm_set_epi64x.
8897         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
8898         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
8899         _mm_setr_epi8): Use _mm_set_foo form.
8900         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
8901         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
8902         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
8903         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
8904         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
8905         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
8906         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
8907         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
8908         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
8909         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
8910         (_mm_movedup_pd): Use _mm_shuffle_pd.
8911         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
8912         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
8913         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
8914         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
8915         Use _mm_setzero_ps.
8916         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
8917         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
8918         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
8919         (_mm_store_ps): Use raw dereference.
8920         (_mm_store1_ps): Use _mm_storeu_ps.
8921         (_mm_storer_ps): Use _mm_store_ps.
8922         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
8923         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
8925 2005-01-11  Stan Shebs  <shebs@apple.com>
8927         * config/rs6000/rs6000.c (machopic_output_stub): Issue
8928         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
8930 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
8932         PR target/18761
8933         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
8934         Skip all DECLs except for FIELD_DECLs.
8936 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8938         * config/s390/s390.c (override_options): Return error if
8939         -mbackchain, -mpacked-stack and -mhard-float are used together.
8940         (s390_va_start): Remove the backchain && packed-stack special case.
8941         (s390_gimplify_va_arg): Likewise.
8942         * doc/invoke.texi: Remove the ABI incompatibility note.
8944 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8946         * config/s390/s390.c (struct s390_frame_layout): Remove
8947         save_backchain_p.
8948         (s390_frame_info, s390_emit_prologue): Replace occurrences of
8949         save_backchain_p with TARGET_BACKCHAIN.
8951 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
8953         PR target/18916
8954         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
8955         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
8956         * function.c (locate_and_pad_parm): Set new field.
8957         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
8958         Tweak where_pad test to include "none".  Always set mem align for
8959         stack_parm.
8960         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
8961         not sufficient for type.
8962         (assign_parm_setup_block): If stack_parm is zero on entry, always
8963         make a new stack local.  Block move old stack parm if necessary
8964         to new aligned stack local.
8965         (assign_parm_setup_stack): Use a block move to handle
8966         potentially misaligned entry_parm.
8967         (assign_parms_unsplit_complex): Specify required alignment when
8968         creating stack local.
8969         * calls.c (compute_argument_addresses): Override alignment of stack
8970         arg calculated from its type with the alignment given by
8971         FUNCTION_ARG_BOUNDARY.
8972         (store_one_arg): Likewise.
8974 2005-01-11  Jan Beulich  <jbeulich@novell.com>
8976         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
8977         Change respective itanium_class attribute to ialu.
8978         (shladdp4_internal): New.
8979         * config/ia64/predicates.md (shladd_log2_operand): New.
8981 2005-01-11  Richard Henderson  <rth@redhat.com>
8983         * expr.c (store_constructor): Use rtvec_alloc instead of
8984         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
8986 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
8988         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
8990 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
8992         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
8993         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
8994         (TARGET_RWRELOC): Define.
8995         (ia64_rwreloc_section_type_flags): Delete.
8996         (ia64_section_type_flags): New function.
8997         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
8998         (TARGET_RWRELOC): Define.
9000 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
9002         PR target/18987
9003         * config/ia64/ia64.c (process_set): For alloc insn, only call
9004         process_epilogue is !frame_pointer_needed.
9006 2005-01-10  Roger Sayle  <roger@eyesopen.com>
9008         PR c++/19355
9009         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
9010         unary operator and can't be treated as a binary/comparison operator.
9012 2005-01-10  Richard Henderson  <rth@redhat.com>
9014         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
9015         (ix86_return_in_memory): Likewise.
9016         (function_arg_advance):  Likewise.  Mirror structure in function_arg
9017         for choosing register to advance.
9019 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
9021         * tree-vectorizer.c, tree.def: Fix comment typos.
9023 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
9025         * config/s390/s390.c (struct processor_costs): 4 new fields:
9026         ddbr, ddr, debr, der.
9027         (s390_rtx_costs): More precise handling of divide instructions.
9029 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
9031         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
9033 2005-01-10  Jan Beulich  <jbeulich@novell.com>
9035         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
9036         names resulting from -ffunction-sections/-fdata-sections and linkonce
9037         ones.
9038         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
9039         based on the section name. Rearrange the section name comparison logic
9040         slightly so that each section name is compared against at most once.
9042 2005-01-10  Ben Elliston  <bje@au.ibm.com>
9044         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
9045         targets for which -fPIC reduces limitations on the GOT size.
9047 2005-01-09  Falk Hueffner  <falk@debian.org>
9049         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
9050         X/C1 cmpop C2.
9052 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
9054         PR target/18720
9055         * collect2.c (main): Set aixrtl_flag for -brtl option.
9056         (resolve_lib_name): Search for .so file extension before .a
9057         if aixrtl_flag set.
9059 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
9061         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
9062         (vect_analyze_data_refs_alignment): Add dump prints.
9064 2005-01-09  Ira Rosen  <irar@il.ibm.com>
9066         * tree-vectorizer.c (vect_analyze_offset_expr): Use
9067         expr_invariant_in_loop_p.
9068         Initialize outputs first thing in the function.
9069         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
9070         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
9071         (vect_analyze_pointer_ref_access): Check that the initial condition of
9072         the access function is loop invariant.
9074 2005-01-09  Richard Henderson  <rth@redhat.com>
9076         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
9077         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
9078         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
9079         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
9080         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
9081         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
9082         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
9083         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
9084         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
9085         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
9086         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
9087         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
9088         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
9089         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
9090         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
9091         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
9092         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
9093         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
9094         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
9095         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
9096         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
9097         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
9098         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
9099         mmx_ prefix.
9100         (mmx_clrdi, pavgusb): Remove.
9101         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
9102         with leading sse_ prefix.
9103         * config/i386/sse.md: Receive them.
9104         * config/i386/mmx.md: New file.
9105         (MMXMODE12, MMXMODE24, mmxvecsize): New.
9106         (subrv2sf3): Turn into expander for normal subtraction.
9107         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
9108         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
9109         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
9110         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
9111         commutative; use ix86_binary_operator_ok.
9112         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
9113         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
9114         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
9115         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
9116         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
9117         Macroize from existing patterns; use ix86_binary_operator_ok.
9118         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
9119         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
9120         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
9121         with vec_select+vec_concat.
9122         (mmx_pshufw, mmx_pshufw_1): Likewise.
9123         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
9124         (mmx_uavgv4hi3): Model correctly.
9125         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
9126         _mm_xor_si64): Remove casts.
9128 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
9130         PR tree-optimization/19224
9131         * tree-scalar-evolution.c (get_instantiated_value,
9132         set_instantiated_value): New functions.
9133         (instantiate_parameters_1): Cache the results.
9134         (instantiate_parameters, resolve_mixers): Initialize and free
9135         the cache.
9137 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
9139         * config/i386/i386.md (addhi_4): Correct reference in comment.
9140         (addqi_4): Same.
9142 2005-01-08  Richard Henderson  <rth@redhat.com>
9144         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
9145         (_mm_cvtsi128_si64x): Likewise.
9146         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
9147         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
9148         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
9149         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
9150         * config/i386/i386-protos.h: Update.
9151         * config/i386/i386.c (print_operand): Add 'H'.
9152         (ix86_fixup_binary_operands): Split out from ...
9153         (ix86_expand_binary_operator): ... here.
9154         (ix86_fixup_binary_operands_no_copy): New.
9155         (ix86_expand_fp_absneg_operator): Handle vector mode results.
9156         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
9157         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
9158         (safe_vector_operand): Use CONST0_RTX.
9159         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
9160         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
9161         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
9162         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
9163         special cases.
9164         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
9165         (IX86_BUILTIN_CMPNGESS): New.
9166         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
9167         (attr type): Add sselog1.
9168         (attr unit, attr memory): Handle it.
9169         (movti, movti_internal, movti_rex64): Move near other integer moves.
9170         (movtf, movtf_internal): Move near other fp moves.
9171         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
9172         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
9173         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
9174         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
9175         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
9176         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
9177         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
9178         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
9179         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
9180         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
9181         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
9182         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
9183         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
9184         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
9185         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
9186         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
9187         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
9188         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
9189         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
9190         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
9191         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
9192         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
9193         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
9194         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
9195         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
9196         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
9197         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
9198         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
9199         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
9200         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
9201         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
9202         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
9203         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
9204         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
9205         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
9206         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
9207         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
9208         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
9209         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
9210         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
9211         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
9212         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
9213         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
9214         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
9215         same time.
9216         (SSEPUSH, push<SSEPUSH>): Remove.
9217         (MMXPUSH, push<MMXPUSH>): Remove.
9218         (sse_movaps, sse_movaps_1, sse_movups): Remove.
9219         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
9220         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
9221         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
9222         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
9223         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
9224         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
9225         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
9226         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
9227         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
9228         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
9229         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
9230         (ppro_sse_log_V4SF): Handle sselog1.
9231         * config/i386/predicates.md (const_0_to_1_operand): New.
9232         (const_0_to_255_mul_8_operand): New.
9233         (const_1_to_31_operand): Rename from const_int_1_31_operand.
9234         (const_2_to_3_operand, const_4_to_7_operand): New.
9235         * config/i386/sse.md: New file.
9236         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
9237         (sse_movups): Rename from sse_movups_1.
9238         (sse_loadlss): Rename from sse_loadss_1.
9239         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
9240         from the name.
9241         (negv4sf2): Use ix86_expand_fp_absneg_operator.
9242         (absv4sf2, negv2df, absv2df): New.
9243         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
9244         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
9245         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
9246         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
9247         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
9248         (sse3_addsubv4sf3): Model correctly.
9249         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
9250         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
9251         (sse_movhlps): Model with vec_select+vec_concat.
9252         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
9253         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
9254         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
9255         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
9256         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
9257         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
9258         sse2_pshufhw_1): Likewise.
9259         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
9260         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
9261         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
9262         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
9263         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
9264         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
9265         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
9266         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
9267         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
9268         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
9269         sminv8hi3): Mark commutative
9270         operands.  Use ix86_binary_operator_ok.
9271         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
9272         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
9273         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
9274         sse2_punpcklqdq): Allow operand2 in memory.
9275         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
9276         sse2_movsd): Add memory alternatives.
9277         (sse_storelps): Turn expander into an insn; split after reload.
9278         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
9279         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
9281 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9283         * configure.ac (DWARF-2 debug_line): Use objdump.
9284         * configure: Regenerate.
9286 2005-01-08  Jeff Law  <law@redhat.com>
9287             Diego Novillo  <dnovillo@redhat.com>
9289         PR tree-optimization/18241
9290         * tree-nrv.c (tree_nrv): Ignore volatile return values.
9291         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
9292         statements with volatile operands.
9293         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
9294         operands after marking a statement with has_volatile_ops.
9296 2005-01-08  Roger Sayle  <roger@eyesopen.com>
9298         * tree.c (int_fits_type_p): Always honor integer constant
9299         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
9301 2005-01-08  Roger Sayle  <roger@eyesopen.com>
9303         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
9304         the latent bug in rtl_delete_block has been resolved.
9306 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
9308         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
9309         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
9311 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
9313         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
9314         library as @multilib_dir@/$(SHLIB_SONAME).
9316 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9318         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
9319         * configure: Regenerate.
9321 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
9323         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
9324         TYPE_MODE.
9326 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
9328         PR target/13674
9329         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
9330         Convert non-word aligned offset address using ld/std into
9331         indirect address.
9333 2005-01-07  Richard Henderson  <rth@redhat.com>
9335         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
9337 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
9339         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
9341 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
9343         PR tree-optimization/19283
9344         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
9345         is not shorter than the original type.
9347         PR rtl-optimization/19012
9348         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
9350         PR rtl-optimization/18861
9351         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
9352         (FULL_STATE): Define.
9353         (mark_tablejump_edge): New function.
9354         (purge_dead_tablejump_edges): New function.
9355         (find_bb_boundaries): Use it.
9357         PR tree-optimization/18828
9358         * builtins.c (expand_builtin_next_arg): Remove argument and all
9359         the argument checking.
9360         (expand_builtin): Adjust caller.
9361         (expand_builtin_va_start): Likewise.  Remove error for too many
9362         arguments.
9363         (fold_builtin_next_arg): Issue error for too many arguments.
9364         After checking arguments, replace them with magic arguments that
9365         prevent further checking of the args.
9367 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9369         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
9371 2005-01-06  Roger Sayle  <roger@eyesopen.com>
9373         PR target/6077
9374         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
9375         and %{.S:...} (and their negative variants) to test whether the
9376         input file is assembler or pre-processed-assembler independent of
9377         the actual filename extension.
9379 2005-01-06  Roger Sayle  <roger@eyesopen.com>
9381         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
9382         of sign or zero extended values.
9384 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
9386         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
9387         for IBM long double format correctly.
9389 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
9391         Fix PR tree-optimization/18792
9393         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
9394         to first_loop_depth, and use loop depth instead of loop number.
9395         (build_classic_dir_vector): Ditto.
9396         (compute_data_dependences_for_loop): Use depth, not loop number.
9397         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
9398         number. Pass in loops, instead of loop numbers.
9399         (gather_interchange_stats): Ditto.
9400         (linear_transform_loops): Ditto.
9402 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
9404         PR rtl-opt/13299
9405         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
9406         biv_fits_mode_p, extension_within_bounds_p): New functions.
9407         (check_ext_dependent_givs): Use them.
9409 2005-01-06  Roger Sayle  <roger@eyesopen.com>
9411         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
9412         more than one barrier, in which case we should delete them all.
9414 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
9416         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
9418 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
9420         Fix PR middle-end/19286
9421         Fix PR debug/19267
9422         * dwarf2out.c (gen_subprogram_die): If we've already tried to
9423         output this subprogram, simply ignore this attempt to do it again.
9424         (add_abstract_origin_attribute): Don't abort trying to add the abstract
9425         origin attribute if it's not possible.
9426         (gen_block_die): Don't ignore subblocks of "unused" blocks.
9427         (decls_for_scope): Ditto.
9428         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
9429         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
9431 2005-01-05  Richard Henderson  <rth@redhat.com>
9433         PR target/11327
9434         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
9435         (bdesc_2arg): Use it.
9436         (ix86_expand_binop_builtin): Force operands into registers
9437         when optimizing.
9438         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
9439         ix86_expand_sse_compare, ix86_expand_sse_comi,
9440         ix86_expand_builtin): Likewise.
9442 2005-01-05  Richard Henderson  <rth@redhat.com>
9444         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
9445         and VEC_SELECT.
9446         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
9447         (mulv4hi3): Set itanium_class mmmul.
9448         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
9449         (fpack): Rename from fpack_sfsf.
9451 2005-01-05  Richard Henderson  <rth@redhat.com>
9453         PR rtl-opt/10692
9454         * reload1.c (do_input_reload): Restrict the optimization deleteing
9455         a previous output reload to RELOAD_FOR_INPUT.
9457 2005-01-05  Steven Bosscher  <stevenb@suse.de>
9459         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
9460         comment that we fall through after case.
9461         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
9462         (distribute_links): Likewise.
9463         * cse.c (cse_insn): Likewise.
9464         * cselib.c (cselib_invalidate_mem): Likewise.
9465         * df.c: Update comments at the top of the file.
9466         (read_modify_subreg_p): Update comments here too.
9467         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
9468         * flow.c (mark_set_1): Likewise.
9469         (mark_used_regs): Likewise.
9470         * gcse.c (mems_conflict_for_gcse_p): Likewise.
9471         (canon_list_insert): Likewise.
9472         (mark_set): Likewise.
9473         (try_replace_reg): Likewise.
9474         (store_killed_in_insn): Likewise.
9475         * loop.c (count_one_set): Likewise.
9476         (basic_induction_var): Likewise.
9477         * postreload-gcse.c (find_mem_conflicts): Likewise.
9478         * postreload.c (reload_combine_note_store): Likewise.
9479         (move2add_note_store): Likewise.
9480         * reload.c (find_equiv_reg): Likewise.
9481         (mark_referenced_resources): Likewise.
9482         * rtlanal.c (set_noop_p): Likewise.
9483         (note_stores): Likewise.
9484         (note_uses): Likewise.
9485         * sched-deps.c (sched_analyze_1): Likewise.
9486         * sched-rgn.c (check_live_1): Likewise.
9487         (update_live_1): Likewise.
9488         * config/i860/i860.c: Likewise.
9490         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
9491         an lvalue.
9492         (ZERO_EXTRACT): Mention that this one can be an lvalue.
9494         * doc/rtl.texi: Update documentation for bit-fields and SET.
9496 2005-01-05  Roger Sayle  <roger@eyesopen.com>
9498         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
9500 2005-01-05  Jan Hubicka  <jh@suse.cz>
9501             Richard Henderson  <rth@redhat.com>
9503         PR target/18910
9504         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
9505         with an offset.
9507 2005-01-05  Richard Henderson  <rth@redhat.com>
9509         PR target/12902
9510         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
9511         (sse_shufps): Change operand 3 to const_int_operand.
9512         (sse2_storelps): Fix typo in template.
9513         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
9514         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
9515         (ix86_expand_builtin): Likewise.
9517 2005-01-05  Julian Brown  <julian@codesourcery.com>
9519         * config/arm/arm.c (arm_return_in_memory): Treat complex types
9520         as aggregates for AAPCS ABIs.
9522 2005-01-05  Stan Shebs  <shebs@apple.com>
9524         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
9525         Mach-O getters if ppc64.
9526         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
9527         size argument.
9528         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9529         signed four-byte field for global code case.
9530         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
9532 2005-01-05  Roger Sayle  <roger@eyesopen.com>
9534         PR middle-end/19100
9535         * c-common.c: Include real.h.
9536         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
9537         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
9538         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
9539         * Makefile.in (c-common.o): Update dependencies.
9541 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
9543         * c-parse.in (asm_string): Add trailing semicolon.
9545 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
9547         * c-parse.in (asm_string): New.  Don't allow wide strings in
9548         'asm'.
9549         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
9550         asm_string instead of STRING.
9552 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
9554         * c-typeck.c (constructor_no_implicit): Remove.
9555         (set_designator, process_init_element): Don't check
9556         constructor_no_implicit.
9558 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
9559             Kaz Kojima  <kkojima@gcc.gnu.org>
9561         PR target/16482
9562         * lcm.c (create_pre_exit): New.
9563         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
9564         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
9566 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
9568         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
9569         -msoft-float in target_float_switch.
9570         * arm.c (arm_override_options): Fix processing of target_float_switch.
9572 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
9574         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
9575         preferencing.
9577 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
9579         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
9580         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
9582 2005-01-04  Roger Sayle  <roger@eyesopen.com>
9584         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
9585         if deleting the then-block allows the test-block to fallthru to the
9586         else-block.
9588 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
9590         PR c/19152
9591         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
9592         after the full declaration if the are in two different TUs.
9594 2005-01-04  Richard Henderson  <rth@redhat.com>
9596         PR tree-opt/19158
9597         * tree-sra.c (generate_one_element_init): Just
9598         call gimplify_and_add.
9599         (generate_element_init): Record the
9600         new referenced variables and mark them for renaming
9601         and split out to ...
9602         (generate_element_init_1): This.
9603         (scalarize_init): Don't call push_gimplify_context/
9604         pop_gimplify_context.
9606 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
9608         * toplev.c (get_src_pwd): Handle failure of getpwd().
9610 2005-01-04  Roger Sayle  <roger@eyesopen.com>
9612         * fold-const.c (fold_single_bit_test): Delete unreachable handling
9613         of TRUTH_NOT_EXPR.
9614         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
9615         all the cases handled by it are inverted by invert_truthvalue.
9617 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9619         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
9620         (save_register_windowsi): Likewise.
9622 2005-01-04  Richard Henderson  <rth@redhat.com>
9624         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
9626 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
9628         PR middle-end/17767
9629         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
9630         any simplifications of vector mode comparison operators.
9631         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
9633 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
9634             Devang Patel  <dpatel@apple.com>
9636         PR tree-optimization/18308
9637         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
9638         the operands before creating a new expression.
9639         * dojump.c (do_jump): Make drop_through_label available
9640         for all cases.  Add expansion of COND_EXPR.
9642 2005-01-04  Ira Rosen  <irar@il.ibm.com>
9644         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
9645         INTEGER_CST instead of TREE_CONSTANT.
9646         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
9647         instead of TREE_CONSTANT.
9648         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
9649         instead of TREE_CONSTANT.
9651 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9653         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
9655 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
9657         PR target/19240
9658         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
9659         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
9661 2005-01-03  Richard Henderson  <rth@redhat.com>
9663         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
9664         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
9665         fold_convert_const_real_from_real): Split out from ...
9666         (fold_convert_const): ... here.
9668 2005-01-03  Richard Henderson  <rth@redhat.com>
9670         PR target/19235
9671         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
9672         (mov<MMXMODEI>_internal): Likewise.
9673         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
9674         Add V2SF case; use it for SSE1; don't use TI.
9675         (movdf_integer): Likewise.
9676         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
9678 2005-01-03  Ira Rosen  <irar@il.ibm.com>
9680         * tree-vectorizer.c (vect_strip_conversions): New function.
9681         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
9682         check for binary class.
9684 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
9686         Fix PR debug/17924
9687         Fix PR debug/19191
9688         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
9689         is a decl.
9690         * gimple-low.c (mark_blocks_with_used_vars): New function.
9691         (mark_blocks_with_used_subblocks): Ditto.
9692         (mark_used_blocks): Ditto.
9693         (pass_mark_used_blocks): New pass.
9694         * tree-inline.c: Include debug.h.
9695         (expand_call_inline): Call outlining_inline_function here.
9696         * tree-optimize.c (init_tree_optimization_passes): Add
9697         pass_mark_used_blocks.
9698         * tree-pass.h (pass_mark_used_blocks): New.
9699         * Makefile.in (tree-inline.o): Add debug.h dependency.
9701 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
9703         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
9704         VAR_DECLs to have weak_import attribute.
9706         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
9707         'struct ucontext'.
9709 2004-01-03  Steven Bosscher  <stevenb@suse.de>
9711         * passes.c (rest_of_compilation): Don't run regmove if only
9712         flag_expensive_optimizations, require flag_regmove instead.
9714 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9716         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
9717         register "sparc".
9718         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
9719         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9720         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
9721         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9723 2005-01-03  Richard Henderson  <rth@redhat.com>
9725         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
9726         (ia64_const_ok_for_letter_p): New.
9727         (ia64_const_double_ok_for_letter_p): New.
9728         (ia64_extra_constraint): New.
9729         (ia64_expand_vecint_compare): New.
9730         (ia64_expand_vcondu_v2si): New.
9731         (ia64_expand_vecint_cmov): New.
9732         (ia64_expand_vecint_minmax): New.
9733         (ia64_print_operand): Add 'v'.
9734         (ia64_preferred_reload_class): New.
9735         (ia64_vector_mode_supported_p): New.
9736         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
9737         (PREFERRED_RELOAD_CLASS): Move to function.
9738         (CONST_OK_FOR_LETTER_P): Move to function.
9739         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
9740         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
9741         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
9742         (EXTRA_CONSTRAINT): Move to function.
9743         * config/ia64/ia64.md: Include vect.md.
9744         (itanium_class): Add mmalua.
9745         (type): Handle it.
9746         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
9747         (1b_mmalua): New.
9748         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
9749         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
9750         CONST0_RTX.
9751         (const_int_2bit_operand): New.
9752         (fr_reg_or_0_operand): New.
9753         * config/ia64/ia64-modes.def: Add vector modes.
9754         * config/ia64/ia64-protos.h: Update.
9755         * config/ia64/vect.md: New file.
9757 2005-01-03  Richard Henderson  <rth@redhat.com>
9759         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
9761 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
9763         PR target/19236
9764         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
9765         to SFmode.
9766         (log1pdf2): Change mode of operands[0,1] to DFmode.
9768 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9770         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
9771         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
9772         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
9773         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
9774         SPARC_RELAXED_ORDERING.
9776 2005-01-03  Richard Henderson  <rth@redhat.com>
9777             Uros Bizjak  <uros@kss-loka.si>
9779         PR target/14631
9780         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
9781         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
9782         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
9783         handling.
9784         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
9785         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
9786         const_pow2_1_to_128_operand): New predicates.
9788 2005-01-02  Greg McGary  <greg@mcgary.org>
9790         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
9791         anonymous decls.
9792         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
9793         object.  [ptr_type]: Remove unused variable.
9794         Remember nearest addressable array-element or record-component
9795         when checking bitfield components.  Tolerate empty BIND_EXPR.
9797 2005-01-01  Richard Henderson  <rth@redhat.com>
9799         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
9800         that don't narrow the value.  Fail for other conversions.
9802 2005-01-01  Richard Henderson  <rth@redhat.com>
9804         PR c/19031
9805         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
9806         * c-lang.c (finish_file): Don't do it here.
9807         * objc/objc-act.c (objc_finish_file): Likewise.
9809         * cgraph.c (decl_assembler_name_equal): New.
9810         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
9811         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
9812         * cgraph.h (struct cgraph_varpool_node): Add next.
9813         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
9814         * varasm.c (assemble_alias): Mark the target as needed.
9816 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
9818         PR middle-end/19221
9819         * function.c (get_arg_pointer_save_area): Use entry_of_function
9820         instead of get_insns.
9822 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9823             Andrew Pinski  <pinskia@physics.uc.edu>
9824             James E. Wilson  <wilson@specifixinc.com>
9826         PR rtl-optimization/12092
9827         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
9828         is zero.
9830 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9831             Olivier Hainque  <hainque@act-europe.fr>
9833         * tree.c (int_fits_type_p): A narrower type always fits in a
9834         wider one, except for negative values into unsigned types.
9836 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9838         * tree.c (int_fits_type_p): Compare the result of force_fit_type
9839         with the original constant rather than require TREE_OVERFLOW.
9841 2005-01-01  Steven Bosscher  <stevenb@suse.de>
9843         PR middle-end/17544
9844         * c-decl.c (finish_function): If compiling C99, annotate the
9845         compiler generated return with the current file name and line 0.
9846         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
9847         the source line is greater than 0.
9848         (remove_bb): Likewise.
9850 See ChangeLog.12 for earlier changes.