OSDN Git Service

* cse.c: (find_best_addr): Don't call copy_rtx before calling
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-01-27  Arend Bayer  <arend.bayer@web.de>
2             Kazu Hirata  <kazu@cs.umass.edu>
3
4         * cse.c: (find_best_addr): Don't call copy_rtx before calling
5         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
6         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
7         NULL_RTX.
8
9 2005-01-27  Jeff Law  <law@redhat.com>
10
11         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
12         definitions of SSA_NAMEs which are not being rewritten.
13         (rewrite_ssa_into_ssa): Only initialize the current definition
14         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
15         If checking is enabled, assert that SSA_NAME_AUX is clear for all
16         SSA_NAMEs before returning.
17
18 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
19
20         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
21         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
22         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
23         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
24         config/mips/iris6.h, config/sh/sh.c: Update copyright.
25
26 2005-01-27  Steven Bosscher  <stevenb@suse.de>
27
28         PR middle-end/17278
29         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
30         higher to -O2 and higher.  Likewise for tree PRE.
31         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
32         and better.
33
34 2005-01-27  Ian Lance Taylor  <ian@c2micro.com>
35
36         PR middle-end/19583
37         * gimple-low.c (try_catch_may_fallthru): New static function.
38         (block_may_fallthru): Handle TRY_CATCH_EXPR.
39         * tree-inline.c (expand_call_inline): Don't warn about reaching
40         the end of a non-void function being inlined if the function uses
41         a return slot.
42
43 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
44
45         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
46
47         PR c/18946
48         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
49         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
50         (implicitly_declare): Handle error_mark_node.
51
52 2005-01-27  Richard Henderson  <rth@redhat.com>
53
54         PR tree-opt/14329
55         * tree.h (struct tree_decl): Add debug_expr_is_from.
56         (DECL_DEBUG_EXPR_IS_FROM): New.
57         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
58         * dwarf2out.c (dwarf2out_var_location): Update to match.
59         * tree-outof-ssa.c (create_temp): Likewise.
60         * var-tracking.c (track_expr_p): Likewise.
61         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
62         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
63         * toplev.c (default_tree_printer): Likewise.
64
65 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
66
67         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
68         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
69
70 2005-01-27  Steven Bosscher  <stevenb@suse.de>
71
72         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
73         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
74         ASM_CLOBBERS): Add tree checks.
75
76         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
77         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
78         * c-common.def (SWITCH_STMT): Update to match.
79         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
80         macros instead of SWITCH_EXPR ones.
81         * c-dump.c (c_dump_tree): Likewise.
82         * c-gimplify.c (gimplify_switch_stmt): Likewise.
83         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
84
85         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
86
87 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
88
89         * unwind-dw2.c (execute_stack_op): Add missing cases for
90         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
91
92 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
93
94         * config.gcc (Obsolete configurations): Remove 'dummy', add
95         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
96         sparc-*-openbsd*.
97
98 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
99
100         PR tree-optimization/19633
101         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
102         CALL_EXPRs.
103         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
104         are no call-clobbered variables.
105         * tree-outof-ssa.c (check_replaceable): Return false for calls
106         with side-effects.
107
108 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
109
110         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
111         even for variables with NULL DECL_INITIAL.
112
113 2005-01-26  Stuart Hastings  <stuart@apple.com>
114
115         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
116
117 2005-01-26  Richard Henderson  <rth@redhat.com>
118
119         PR middle-end/18008
120         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
121         field's type.
122         * expr.c (store_field): Strip conversions to odd-bit-sized types
123         if the destination field width matches.
124
125 2005-01-26  Richard Henderson  <rth@redhat.com>
126
127         * c-decl.c, expmed.c, expr.c: Revert last change.
128
129 2005-01-26  Richard Henderson  <rth@redhat.com>
130
131         PR middle-end/18008
132         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
133         field's type.
134         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
135         if we don't need the bits above those present in the current mode.
136         * expr.c (store_field): Strip conversions to odd-bit-sized types
137         if the destination field width matches.
138
139 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
140
141         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
142         either -ffast-math or -funsafe-math-optimizations is in use.
143
144 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
145
146         PR target/19293
147         PR target/19329
148         * config/avr/avr.c (notice_update_cc): Only set condition code for
149         ashrqi3 if shift count > 0.
150         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
151         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
152         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
153         count <= 0 as a no-op, and shift count >= width by copying zero
154         or sign bit to all bits of the result.
155         * config/avr/avr.md (all shifts): Add alternatives for zero shift
156         count, with attribute "length" set to 0 and "cc" set to "none".
157
158 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
159
160         * doc/invoke.texi: Document -mTLS.
161
162         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
163         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
164         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
165         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
166         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
167         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
168         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
169         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
170
171         * configure.ac: Check for a TLS capable gas.
172
173         * configure: Regenerate.
174
175 2005-01-26  Richard Henderson  <rth@redhat.com>
176
177         PR middle-end/18008
178         * combine.c (make_field_assignment): Simplify store to zero_extract
179         from a source with an overlapping mask.
180
181 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
182
183         2004-11-11  Eric Christopher  <echristo@redhat.com>
184
185         * config/frv/frv.md: Add fr400_integer automaton. Don't
186         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
187         to TYPE_MACC.
188
189 2005-01-26  Steven Bosscher  <stevenb@suse.de>
190
191         PR middle-end/16585
192         * cfgbuild.c (make_edges): Do not clear or set
193         current_function_has_computed_jump.
194         * function.h (struct function): Remove the has_computed_jump field.
195         (current_function_has_computed_jump): Do not define.
196         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
197         in a computed jump.  Ignore current_function_has_computed_jump.
198
199 2005-01-26  Richard Henderson  <rth@redhat.com>
200
201         PR middle-end/19515
202         * expr.c (categorize_ctor_elements): New argument p_must_clear.
203         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
204         fully initialized.
205         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
206         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
207         objects into static storage if they have more than one non-zero value.
208         * tree.h (categorize_ctor_elements): Update decl.
209
210 2005-01-26  Steven Bosscher  <stevenb@suse.de>
211
212         PR middle-end/19616     
213         * tree.h (CALL_EXPR_TAILCALL): Add comment.
214         * calls.c (check_sibcall_argument_overlap_1): Revert the change
215         to this function from 2004-07-10.
216         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
217         the current function for tail call optimizations if the address
218         of one of it its arguments is taken.
219
220 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
221
222         * cse.c (fold_rtx): Call equiv_constant only when necessary.
223
224 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
225
226         * function.c (expand_function_end): If current_function_calls_alloca,
227         emit stack restore in a place that is reached when the function falls
228         through at the end.
229
230 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
231
232         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
233         rule to avoid matching inappropriate suffix rule.
234
235 2005-01-26  Jan Hubicka  <jh@suse.cz>
236
237         PR tree-optimization/19241
238         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
239
240 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
241
242         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
243         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
244         of doubling.
245         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
246         <sim*>: Always use crt1.o, regardless of N in simN.
247         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
248         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
249         (CRT_CALL_STATIC_FUNCTION): Remove.
250         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
251         use crt1.o, regardless of N in simN.
252         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
253         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
254         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
255         case isystem setting.
256         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
257
258 2005-01-25  Ian Lance Taylor  <ian@airs.com>
259
260         * gimple-low.c (block_may_fallthru): Correct handling of
261         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
262
263 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
264
265         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
266         handlers to match indentation; nested under the mtune=* handler.
267         Similar for mcpu= and march=.
268
269 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
270
271         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
272         * config/mips/linux64.h (LIB_SPEC): Likewise.
273         * config/mn10300/linux.h (LIB_SPEC): Likewise.
274         * config/sh/linux.h (LIB_SPEC): Likewise.
275
276 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
277
278         * config/frv/frv.c (frv_legitimize_tls_address): New.
279         (TARGET_HAVE_TLS): Define.
280         (FRV_SYMBOL_REF_TLS_P): Define.
281         (frv_override_options): Handle new register classes.
282         (frv_legitimate_address_p): Reject tls addresses.
283         (frv_legitimize_address): Handle TLS addresses.
284         (gen_inlined_tls_plt): New.
285         (gen_tlsmoff): New.
286         (frv_legitimize_tls_address): New.
287         (unspec_got_name): Add TLS entries.
288         (got12_operand): Add R_FRV_TLSMOFF12 case.
289         (frv_emit_move): Fixup TLS addresses.
290         (frv_emit_movsi): Legitimize TLS addresses.
291
292         * config/frv/frv.h (MASK_BIG_TLS): New.
293         (TARGET_BIG_TLS): New.
294         (HAVE_AS_TLS): Define.
295         (TARGET_SWITCHES): Add -mTLS and -mtls options.
296         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
297         (REG_CLASS_NAMES): Same.
298         (REG_CLASS_CONTENTS): Same.
299         (CONSTRAINT_LEN): New.
300         (REG_CLASS_FROM_CONSTRAINT): New.
301         (PREDICATE_CODES): Add symbolic_operand.
302
303         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
304         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
305         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
306         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
307         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
308         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
309         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
310         GR9_REG, GR14_REG, LRREG.
311         (type): Add load_or_call attribute.
312         ("load_or_call"): New reservation.
313         ("call_gettlsoff"): New.
314         ("tls_indirect_call"): New.
315         ("tls_load_gottlsoff12"): New.
316         ("tlsoff_hilo"): New.
317         ("tls_tlsdesc_ldd"): New.
318         ("tls_tlsoff_ld"): New.
319         ("tls_lddi"): New.
320
321         * config/frv/frv-protos.h (symbolic_operand): Protoize.
322
323         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
324
325         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
326         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
327         * config/frv/frv.c (TLS_BIAS): Define.
328         (frv_output_dwarf_dtprel): New.
329
330 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
331
332         PR rtl-optimization/19579
333         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
334         both A and B, see if they don't clobber registers the other expr uses.
335
336 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
337
338         * real.c (do_add): Initialize signalling and canonical members.
339
340         * real.c (real_from_integer): Zero out destination.
341
342 2005-01-18  Jan Hubicka  <jh@suse.cz>
343
344         PR tree-optimize/19337
345         * tree-inline.c (initialize_inlined_parameters): Copy
346         saved_static_chain_decl only.
347
348 2005-01-25  Richard Henderson  <rth@redhat.com>
349
350         PR target/19556
351         PR target/19584
352         * config/i386/i386.c (x86_inter_unit_moves): Zero.
353         (ix86_preferred_reload_class): Rewrite fp-constant section, with
354         80387 enabled, to return a proper subclass.  Return the subset that
355         overlaps with GENERAL_REGS for PLUS.
356         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
357
358 2005-01-25  Richard Henderson  <rth@redhat.com>
359
360         PR middle-end/19609
361         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
362
363 2005-01-25  Roger Sayle  <roger@eyesopen.com>
364
365         * expmed.c (choose_multiplier): Change interface to return the
366         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
367         (expand_divmod): Update calls to choose_multiplier.
368
369 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
370
371         PR middle-end/19330
372         * expmed.c (extract_bit_field): Use adjust_address instead of
373         gen_lowpart when op0 is a MEM.
374
375 2005-01-24  Steven Bosscher  <stevenb@suse.de>
376
377         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
378
379 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
380
381         * config/mips/irix-csr.c: New file.
382         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
383         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
384         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
385         executables.
386
387 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
388
389         PR bootstrap/19364
390         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
391         sparc/elf.h, add sparc/sp-elf.h.
392         (sparc-*-rtems*): Likewise.
393         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
394         tm-dwarf2.h, add sparc/sp-elf.h.
395         (sparc86x-*-elf): Likewise.
396         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
397         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
398         TARGET_OS_CPP_BUILTINS.
399         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
400         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
401         Undefine it.
402         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
403         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
404         (SWITCH_TAKES_ARG): Likewise.
405         (LOCAL_LABEL_PREFIX): Likewise.
406         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
407         (TARGET_N_FORMAT_TYPES): Delete.
408         (TARGET_FORMAT_TYPES): Likewise.
409         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
410         * config/sparc/elf.h: Delete.
411         * config/sparc/sp-elf.h: New file.
412
413 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
414
415         * tree-flow-inline.h (phi_arg_from_edge): Remove.
416         * tree-flow.h: Remove the corresponding prototype.
417         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
418         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
419
420 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
421
422         PR target/17751
423         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
424         for AIX ABI or ELF -fPIC.
425         (rs6000_emit_load_toc_table): Don't create toc_section here.
426         (rs6000_xcoff_file_start): Nor here.
427
428 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
429
430         * sh.c (ra.h): Don't #include.
431         (hard_regs_intersect_p): New function, resurrected from ra.c.
432
433         * sh.c: Fix 1996 Copyright.
434
435 2005-01-24  Richard Henderson  <rth@redhat.com>
436             Aldy Hernandez  <aldyh@redhat.com>
437
438         * regrename.c (note_sets): Handle subregs.
439
440 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
441
442         PR bootstrap/18058
443         * genconditions.c (write_header, write_conditions): Elide file if
444         not GCC >= 3.0.1.
445
446 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
447
448         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
449         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
450         Update copyright.
451
452 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
453
454         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
455         expand_builtin_printf, expand_builtin_fprintf,
456         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
457         checking against POINTER_TYPE.
458         (validate_arglist): Handle POINTER_TYPE code by checking
459         POINTER_TYPE_P.
460
461 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
462
463         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
464         init_rtlanal): New.
465         (for_each_rtx): Call for_each_rtx_1.
466         * rtl.h (init_rtlanal): Declare.
467         * toplev.c (backend_init): Call init_rtlanal.
468
469 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
470
471         * flow.c (propagate_one_insn): Formatting.
472
473         PR middle-end/19551
474         * flow.c (libcall_dead_p): Be more conservative if unsure.
475         If there are any instructions between insn and call, see if they are
476         all dead before saying the libcall is dead.
477
478 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
479
480         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
481         operand constraint for operand 0.
482
483 2005-01-23  Richard Henderson  <rth@redhat.com>
484
485         PR 19486
486         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
487         edges leading to join block.
488
489 2005-01-23  Roger Sayle  <roger@eyesopen.com>
490
491         * expmed.c (expand_mult_highpart): Make static.  Change type of
492         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
493         (expand_divmod): Updates calls to expand_mult_highpart by using
494         gen_int_mode to pass a CONST_INT rtx.
495         * rtl.h (expand_mult_highpart): Remove prototype.
496
497 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
498
499         * flow.c (regset_bytes, regset_size): Remove.
500
501         * cfganal.c: Fix a reference to Harvey's paper.
502
503 2005-01-23  Steven Bosscher  <stevenb@suse.de>
504
505         PR rtl-optimization/19464
506         * tree-optimize.c (init_tree_optimization_passes): Add one more
507         copyrename pass just before out-of-ssa.
508
509 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
510
511         PR bootstrap/18058
512         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
513         * ggc-none.c (ggc_free): Define.
514
515 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
516
517         * cse.c (max_reg, max_insn_uid): Remove.
518         (cse_main): Don't access max_reg or max_insn_uid.
519
520         * c-common.c (explicit_flag_signed_bitfields,
521         lang_statement_code_p, lang_expand_function_end): Remove.
522         * c-common.h: Remove the corresponding declarations.
523         * c-opts.c (c_common_handle_option): Remove all write access
524         to explicit_flag_signed_bitfields.
525
526         * cgraph.c (cgraph_varpool_n_nodes): Remove.
527         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
528         * cgraph.h: Remove the corresponding declaration.
529
530         * gcse.c (null_pointer_info): Remove.
531
532 2005-01-23  Roger Sayle  <roger@eyesopen.com>
533             Eric Botcazou  <ebotcazou@libertysurf.fr>
534
535         * combine.c (simplify_logical): Only simplify logical expressions
536         of the form ior(and(x,y),z) by the inverse distributive law if the
537         result is cheaper than the original.
538
539 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
540
541         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
542         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
543         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
544         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
545         config/freebsd-spec.h, config/arm/arm.h,
546         config/h8300/h8300.md, config/i386/i386.md,
547         config/i386/predicates.md, config/i386/sse.md,
548         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
549         config/vax/vax.md: Fix comment typos.  Follow spelling
550         conventions.
551
552 2005-01-23  Steven Bosscher  <stevenb@suse.de>
553
554         * gengtype.c (walk_type): Produce `not equal to' compares for loop
555         tests, instead of `less than'.
556
557 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
558
559         * function.c (assign_parm_setup_block): When creating a new stack slot
560         for a parameter, get its alignment from the parameter's DECL_ALIGN
561         rather than the type's TYPE_ALIGN.  Make sure that the parameter
562         is at least word aligned.
563
564 2005-01-22  Roger Sayle  <roger@eyesopen.com>
565
566         PR middle-end/19378
567         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
568
569 2005-01-22  Richard Henderson  <rth@redhat.com>
570
571         PR target/19506
572         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
573         in both compare operands.
574         (movdfcc_1_sse_max): Likewise.
575         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
576         (movdfcc_1_sse): Likewise.
577         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
578         scratch register as needed.
579
580 2005-01-22  Richard Henderson  <rth@redhat.com>
581
582         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
583
584         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
585
586 2005-01-22  Richard Henderson  <rth@redhat.com>
587
588         * genopinit.c (optabs): Use smin/smax for floating point too.
589         * doc/md.texi: Update to match.  Clarify that floating point
590         results are undefined for +0/-0 and NaN.
591         * doc/rtl.texi: Likewise.
592         * rtl.def (SMIN, SMAX): Likewise
593         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
594
595         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
596         leading 's' to the name.
597         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
598         smaxxf3, sminxf3): Likewise.
599         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
600         Likewise.
601
602 2005-01-22  Paul Brook  <paul@codesourcery.com>
603
604         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
605
606 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
607
608         * config/s390/s390.c (struct processor_costs): New fields 
609         dlgr, dlr, dr, dsgfr, dsgr.
610         (z900_cost, z990_cost): Values for new fields.
611         (s390_rtx_costs): New cases MEM und COMPARE in switch
612         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
613         DIV, MOD, UDIV, UMOD.
614
615 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
616
617         * config/s390/s390.md ("doloop_si64"): Reload input value directly
618         into the register being decremented.
619         ("doloop_si31", "doloop_di"): Likewise.
620         ("*doloop_si_long"): Adapt pattern.
621
622 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
623
624         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
625         access registers.
626         (CLASS_MAX_NREGS): Likewise.
627
628 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
629
630         * doc/tree-ssa.texi (Statement Operands): Add example for new
631         must-def macro. Note deprecation of old operands interface.
632
633 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
634
635         PR tree-optimization/19484
636         * tree-cfg.c (remove_fallthru_edge): New function.
637         (cleanup_control_flow): Remove fallthru edges from calls that are
638         now known not to return.
639
640 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
641
642         Fix PR tree-optimization/19038
643         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
644         copies with loop variant ones.
645
646 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
647
648         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
649         config/alpha/alpha-protos.h, config/alpha/alpha.h,
650         config/alpha/alpha.md, config/alpha/predicates.md,
651         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
652         config/sparc/sol2.h: Update copyright.
653
654         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
655         first label to see if it is a nonlocal label.
656
657 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
658             Andrew Pinski  <pinskia@physics.uc.edu>
659
660         PR target/19491
661         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
662         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
663
664 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
665
666         * config/rs6000/rtems.h: Update copyright.
667
668 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
669
670         PR target/19548
671         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
672         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
673         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
674
675 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
676
677         PR c/18809
678         * c-typeck.c (convert_arguments): Check for error_mark_node.
679
680 2005-01-21  Ian Lance Taylor  <ian@airs.com>
681
682         PR tree-optimization/13000
683         * tree-inline.c: Include "tree-flow.h".
684         (expand_call_inline): If warn_return_type, warn if non-void inline
685         function falls through.
686         * tree-cfg.c (execute_warn_function_return): Don't warn about
687         control reaching end if TREE_NO_WARNING is set.  Set
688         TREE_NO_WARNING.
689         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
690         has been lowered.
691         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
692         branch if we don't need one.
693         * c-typeck.c: Include "tree-flow.h"
694         (c_finish_bc_stmt): Don't add a goto if the current statement
695         list doesn't fall through to the current point.
696
697 2005-01-21  Roger Sayle  <roger@eyesopen.com>
698
699         PR rtl-optimization/576
700         * real.c (real_arithmetic): Change return type from void to bool
701         to return an indication that the result may be inexact.
702         * real.h (real_arithmeric): Update prototype.
703         * fold-const.c (const_binop):  Don't constant fold floating
704         point expressions when the user specifies -frounding-math and
705         the result may depend upon the run-time rounding mode.
706         (fold_convert_const_real_from_real): Clean-up.
707         (fold_initializer): Ignore flag_rounding_math for initializers.
708         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
709         constant fold FP operations with flag_rounding_math if the
710         result may depend upon the run-time rounding mode.
711
712 2005-01-21  Tom Tromey  <tromey@redhat.com>
713
714         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
715
716 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
717
718         * tree-cfg.c: Fix comment typos.
719
720 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
721
722         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
723         around the call to rest_of_handle_branch_target_load_optimize.
724
725 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
726
727         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
728         (sparc64-*-openbsd*): Likewise.
729         (sparclite-*-elf*): Include tm-dwarf2.h.
730         (sparc86x-*-elf*): Likewise.
731         (sparc64-*-elf*): Likewise.
732         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
733         (DBX_DEBUGGING_INFO): Likewise.
734         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
735         (PREFERRED_DEBUGGING_TYPE): Likewise.
736         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
737         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
738         (PREFERRED_DEBUGGING_TYPE): Likewise.
739         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
740         (PREFERRED_DEBUGGING_TYPE): Likewise.
741         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
742
743 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
744
745         PR target/18701
746         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
747
748 2005-01-20  Paul Brook  <paul@codesourcery.com>
749
750         * doc/rtl.texi: Document value extension requirements for CONST_INT.
751
752 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
753
754         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
755         label is first in a sequence of labels.
756
757         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
758
759 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
760             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
761
762         * doc/sourcebuild.texi (Test Directives): New.
763
764 2005-01-20  Roger Sayle  <roger@eyesopen.com>
765
766         * real.c (real_floor): Don't leave the result uninitialized when
767         mode is VOIDMode, but return the unrounded intermediate value.
768         (real_ceil): Likewise.
769
770 2005-01-20  Paul Brook  <paul@codesourcery.com>
771
772         * config/arm/arm.md (insv): Use gen_int_mode.
773
774 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
775
776         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
777         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
778         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
779         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
780         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
781
782 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
783
784         Fix PR debug/19124
785         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
786         fbreg, so we have to assume we can't.
787         (loc_descriptor_from_tree_1): Ditto.
788         (containing_function_has_frame_base): New function.
789         (add_location_or_const_value_attribute): Use it.
790         Also try to generate a frame_base from a single element location
791         list.
792         
793 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
794
795         PR tree-optimization/15349
796         * timevar.def (TV_TREE_MERGE_PHI): New.
797         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
798         PHI_WANTED.
799         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
800         calls to tree_forwarder_block_p.
801         (remove_forwarder_block_with_phi, merge_phi_nodes,
802         gate_merge_phi, pass_merge_phi): New.
803         * tree-optimize.c (init_tree_optimization_passes): Add
804         pass_merge_phi.
805         * tree-pass.h: Add an extern for pass_merge_phi;
806
807 2005-01-20  Richard Henderson  <rth@redhat.com>
808
809         PR target/19418
810         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
811         (_mm_castps_pd, _mm_castps_si128): New.
812         (_mm_castsi128_ps, _mm_castsi128_pd): New.
813
814 2005-01-20  Richard Henderson  <rth@redhat.com>
815
816         PR target/19530
817         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
818         __builtin_ia32_vec_init_v2si.
819         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
820         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
821         (ix86_init_mmx_sse_builtins): Create it.
822         (ix86_expand_builtin): Expand it.
823         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
824         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
825         (vec_extractv2si_0, vec_extractv2si_1): New.
826
827 2005-01-20  Richard Henderson  <rth@redhat.com>
828
829         PR target/16533
830         * config/i386/i386.c (ix86_expand_push): New.
831         * config/i386/mmx.md (push<MMXMODE>1): New.
832         * config/i386/sse.md (push<SSEMODE>1): New.
833         * config/i386/i386-protos.h: Update.
834
835 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
836
837         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
838         copyright.
839
840 2005-01-20  Richard Henderson  <rth@redhat.com>
841
842         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
843         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
844
845 2005-01-19  Richard Henderson  <rth@redhat.com>
846
847         PR target/19350
848         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
849         to V4SFmode in SSE1 fallback load path.
850
851 2005-01-19  Richard Henderson  <rth@redhat.com>
852
853         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
854         in QImode expansion to ix86_expand_vector_set.
855         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
856
857 2005-01-19  Richard Henderson  <rth@redhat.com>
858
859         PR target/19511
860         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
861         subclass of the input class.
862         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
863         Always true for cross-SSE1 classes.  Rationalize conditionals.
864         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
865         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
866         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
867         (movdi_2): Add MMX/SSE zeros.
868         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
869         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
870         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
871         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
872         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
873         (zero_extendsidi2_rex64_1): Remove.
874         (MOV0 peephole): Check GENERAL_REG_P.
875
876 2005-01-19  Richard Henderson  <rth@redhat.com>
877
878         PR target/19427
879         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
880         shufps elements.
881         (ix86_expand_vector_extract): Likewise.
882
883 2005-01-19  Richard Henderson  <rth@redhat.com>
884
885         PR middle-end/19304
886         * expr.c (emit_move_change_mode): New argument force; use
887         simplify_gen_subreg if true.
888         (emit_move_via_alt_mode): Merge into ...
889         (emit_move_via_integer): ... here.
890         (emit_move_ccmode): Use emit_move_change_mode directly.
891
892 2005-01-19  Richard Henderson  <rth@redhat.com>
893
894         PR target/19518
895         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
896         (alpha_preferred_reload_class): Handle CONST_VECTOR.
897         (alpha_emit_set_const_1): Add no_output parameter; don't emit
898         rtl if true.
899         (alpha_emit_set_const): Likewise.  Make static.
900         (alpha_emit_set_long_const): Make static.
901         (alpha_extract_integer): Split out from alpha_expand_mov.
902         (alpha_split_const_mov): Likewise.
903         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
904         (alpha_legitimate_constant_p): New.
905         * config/alpha/alpha-protos.h: Update.
906         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
907         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
908         * config/alpha/alpha.md (movsi): Add n alternative.
909         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
910         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
911         (splitters for all of the above): Use alpha_split_const_mov.
912         * config/alpha/predicates.md (non_add_const_operand): New.
913         (non_zero_const_operand): New.
914         (input_operand): Use alpha_legitimate_constant_p after reload.
915
916 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
917
918         PR tree-optimization/19038
919         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
920         (add_candidate): Add ivs with increment in latch only if
921         allow_ip_end_pos_p is true.
922         (determine_iv_cost): Use empty_block_p.
923
924 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
925
926         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
927         (compute_dominance_frontiers): Ditto.
928
929 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
930
931         PR target/19529
932         * config/sh/t-rtems: New. 
933         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
934
935 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
936
937         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
938         the offset of the selected field.
939
940 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
941
942         * tree-cfg.c (remove_forwarder_block): Fix the check to
943         prevent a nonlocal label from appearing in the middle of a
944         basic block.
945
946 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
947
948         PR rtl-optimization/19462
949         * reorg.c (find_end_label): Create return insn only if
950         current_function_epilogue_delay_list is empty.
951
952 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
953
954         * doc/passes.texi: Remove paragraph mentioning new-ra.
955
956 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
957
958         PR rtl-optimization/15139
959         * combine.c: Include params.h.
960         (count_rtxs): New function.
961         (record_value_for_reg): If replace_rtx would replace at least
962         2 occurrences of REG in VALUE and TEM is really large, replace REG with
963         (clobber (const_int 0)) instead of TEM.
964         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
965         * params.h (MAX_LAST_VALUE_RTL): New.
966         * Makefile.in (combine.o): Depend on $(PARAMS_H).
967         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
968
969         PR c/17297
970         * c-typeck.c (digest_init): Only call build_vector if all constructor
971         elements are *_CST nodes.
972         * gimplify.c (gimplify_init_constructor): Likewise.
973
974         PR middle-end/19164
975         * c-typeck.c (digest_init): Only call build_vector if inside_init
976         is a CONSTRUCTOR.
977
978 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
979
980         * toplev.c (init_asm_output): Remove dead #ifdef.
981
982 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
983
984         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
985
986 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
987
988         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
989         accessing DECL_FUNCTION_CODE.
990         * dojump.c (do_jump): Likewise.
991         * gimplify.c (gimplify_call_expr): Likewise.
992         * predict.c (expr_expected_value): Likewise.
993         (strip_builtin_expect): Likewise.
994         * tree-inline.c (estimate_num_insns_1): Likewise.
995         * tree-ssa-loop-im.c (stmt_cost): Likewise
996         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
997         (tree_expr_nonnegative_p): Likewise.
998
999 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1000
1001         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
1002         variant of the load_pcrel_sym pattern.
1003         * config/sparc/sparc.md (P macro): Move to the top.
1004         (load_pcrel_sym): Macroize using P.
1005         (save_register_window): Likewise.
1006
1007 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
1008
1009         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
1010         ("sordered"): Same.
1011
1012 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
1013
1014         PR C/19472
1015         * c-typeck.c (build_asm_expr): Strip nops off
1016         input memory operands.
1017
1018 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
1019
1020         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
1021         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
1022         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
1023         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
1024
1025 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
1026
1027         PR target/19379
1028         * config/i386/i386.c (override_options): If the 80387 is disabled,
1029         then do not return FP values using FP registers.
1030
1031 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
1032
1033         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
1034         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
1035         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
1036         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
1037         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
1038         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
1039         output.h, postreload-gcse.c, postreload.c, recog.c,
1040         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
1041         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
1042         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
1043         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
1044         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
1045         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
1046         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
1047         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
1048
1049         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
1050         config/alpha/alpha.c, config/arm/vfp.md,
1051         config/i386/emmintrin.h, config/i386/i386-modes.def,
1052         config/i386/i386-protos.h, config/i386/i386.h,
1053         config/i386/pmmintrin.h, config/i386/ppro.md,
1054         config/i386/predicates.md, config/i386/xmmintrin.h,
1055         config/i860/i860.c, config/ia64/ia64-modes.def,
1056         config/ia64/ia64-protos.h, config/ia64/ia64.h,
1057         config/ia64/ia64.md, config/ia64/itanium1.md,
1058         config/ia64/itanium2.md, config/ia64/predicates.md,
1059         config/iq2000/iq2000.h, config/mips/linux64.h,
1060         config/rs6000/aix41.h, config/rs6000/aix43.h,
1061         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
1062         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
1063         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
1064         config/sparc/linux64.h, config/sparc/litecoff.h,
1065         config/sparc/sp64-elf.h, config/sparc/sparc.c,
1066         config/sparc/sparc.h, config/sparc/sparc.md,
1067         config/sparc/sysv4-only.h: Update copyright.
1068
1069 2005-01-18  Richard Henderson  <rth@redhat.com>
1070
1071         PR target/19496
1072         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
1073
1074 2005-01-18  Marc Espie  <espie@openbsd.org>
1075         * config/i386/openbsdelf.h: Typo.
1076
1077 2005-01-18  Richard Henderson  <rth@redhat.com>
1078
1079         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
1080         special case for sse.
1081         * config/i386/predicates.md (sse_comparison_operator): Likewise.
1082
1083 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
1084
1085         * tree-inline.c (estimate_num_insns_1): Added cases for
1086         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
1087
1088 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1089
1090         PR rtl-optimization/19296
1091         * combine.c (simplify_comparison): Rewrite the condition under
1092         which a non-paradoxical SUBREG of a PLUS can be lifted when
1093         compared against a constant.
1094
1095 2005-01-18  Andi Kleen <ak@muc.de>
1096
1097         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
1098         * c.opt (-Wpointer-sign): Add.
1099         * doc/invoke.texi: (-Wpointer-sign): Add.
1100
1101 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
1102
1103         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
1104         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
1105         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
1106         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
1107         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
1108         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
1109         for TARGET_MIX_SSE_I387.
1110         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
1111         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
1112         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
1113         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
1114         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
1115         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
1116         TARGET_MIX_SSE_I387.
1117         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
1118         from expander.
1119
1120 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
1121
1122         PR target/19424
1123         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
1124         Add movaps alternative for xmm reg->reg move.
1125
1126 2005-01-17  Jeff Law  <law@redhat.com>
1127
1128         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
1129         at the end of the main DOM loop rather than just before DOM exits.
1130
1131 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
1132
1133         PR tree-optimization/19121
1134         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
1135         adding aliases to a name tag, also add them to the pointer's
1136         type tag.
1137         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
1138         sensitive alias info at all.  Only check that the two pointers
1139         have compatible pointed-to sets.
1140         * tree-ssa.c (verify_name_tags): Verify that the alias set of
1141         a pointer's type tag is a superset of the alias set of the
1142         pointer's name tag.
1143
1144 2005-01-17  James E Wilson  <wilson@specifixinc.com>
1145
1146         PR target/19357
1147         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
1148         comment to document why.
1149
1150 2005-01-17  Richard Henderson  <rth@redhat.com>
1151
1152         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
1153         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
1154         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
1155         sse2_vmsminv2df3_finite): New.
1156         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
1157         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
1158         Force op1 into register.
1159
1160 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
1161
1162         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
1163         bubblestrap from always rebuilding build directory.
1164
1165 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
1166
1167         * config/s390/s390.md ("*clc"): Remove incorrect '='.
1168         ("*cmpmem_short"): Likewise.
1169
1170 2005-01-17  Steven Bosscher  <stevenb@suse.de>
1171
1172         * basic-block.h: Document BB_* flags.
1173         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
1174         use an sbitmap instead.
1175         * sched-rgn.c (compute_trg_info): Likewise.
1176
1177 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
1178
1179         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
1180         redundant target_cpu_default and extra_parts lines.  Use the default
1181         "from-abi" ISA.
1182         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
1183         (SUBTARGET_EXTRA_SPECS): Delete.
1184         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
1185         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
1186         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
1187         and "n32" for -mabi=n32.
1188
1189 2005-01-17  Ian Lance Taylor  <ian@airs.com>
1190
1191         PR c/5675
1192         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
1193         fold constant variables into initial values.
1194
1195 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
1196
1197         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
1198
1199         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
1200         through the statements backward.
1201
1202 2005-01-17  Ian Lance Taylor  <ian@airs.com>
1203
1204         PR middle-end/13127:
1205         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
1206         a variable set to the return value of the inlined function.
1207
1208 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
1209
1210         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
1211         when modes are tieable.
1212
1213 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
1214
1215         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
1216         of pthread_create to find out if threads are enabled.
1217         * gthr-posix95.h (__gthread_active_p): Likewise.
1218
1219 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
1220
1221         * common.opt (-fnew-ra): Remove.
1222         * ra*.*: Remove.
1223         * toplev.h (flag_new_regalloc): Remove.
1224         * Makefile.in (ra*.*): Don't mention.
1225         * passes.c (rest_of_handle_new_regalloc): Remove.
1226         (rest_of_handle_combine, rest_of_compilation): Always consider
1227         flag_new_regalloc as false.
1228         * doc/invoke.texi: Don't document -fnew-ra.
1229
1230 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
1231
1232         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
1233         last parameter to reg_scan.
1234         * loop.c (loop_optimize): Likewise.
1235         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
1236         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
1237         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
1238         rest_of_handle_gcse, rest_of_handle_loop_optimize,
1239         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
1240         * regclass.c (reg_scan): Likewise, for the declaration.
1241         * rtl.h (reg_scan): Likewise, for the prototype.
1242
1243 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
1244
1245         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
1246         mark_dfs_back_edges.
1247
1248 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
1249
1250         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
1251         (compute_avail): Uses don't go in tmp_gen.
1252
1253 2005-01-16  Steven Bosscher  <stevenb@suse.de>
1254
1255         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
1256         loop to look for a free slot in a page entry.
1257
1258 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1259
1260         PR target/16304
1261         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
1262         * toplev.c (compile_file): Call process_pending_assemble_output_defs
1263         just before targetm.asm_out.file_end.
1264         * tree.h (process_pending_assemble_output_defs): Declare.
1265         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
1266         New functions.
1267         (assemble_alias): Defer generation of assembly code for defines when
1268         TARGET_DEFERRED_OUTPUT_DEFS is true.
1269         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
1270         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
1271         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
1272
1273 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1274
1275         PR target/19336
1276         * pa.c (pa_scalar_mode_supported_p): New function.
1277         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
1278         * pa.h (MIN_UNITS_PER_WORD): Add comment.
1279
1280         * pa-protos.h (prefetch_operand): Delete.
1281         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
1282         * pa.c (prefetch_operand): Delete.
1283         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
1284         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
1285         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
1286         and prefetch_nocc_operand.
1287         * pa.md (prefetch): Rework to avoid reload problems handling short
1288         displacements when a cache control completer needs to be provided.
1289         (prefetch_32, prefetch_64): Delete.
1290         (prefetch_cc, prefetch_nocc): New patterns.
1291
1292 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
1293
1294         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
1295
1296 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1297
1298         PR ada/19388
1299         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
1300         exceeds maximum alignment for global common data.
1301         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
1302         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
1303
1304 2004-01-15  Roger Sayle  <roger@eyesopen.com>
1305
1306         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
1307
1308 2004-01-15  Roger Sayle  <roger@eyesopen.com>
1309
1310         * harg-reg-set.h (reg_class_names): Prototype global array.
1311         * regclass.c (reg_class_names): Declare here and initialize to
1312         REG_CLASS_NAMES.
1313         (dump_regclass): Remove local declaration of reg_class_names.
1314         (regclass): Likewise.
1315         * cfg.c (dump_flow_info): Likewise.
1316         * ra-debug.c (reg_class_names): Likewise.
1317         * regrename.c (reg_class_names): Likewise.
1318         * reload.c (reg_class_names): Likewise.
1319         * reload1.c (spill_failure): Likewise.
1320         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
1321
1322 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
1323
1324         * config/s390/s390.md ("reload_outti"): Remove predicate for
1325         output operand.  Abort if operand is not a MEM.
1326         ("reload_outdi", "reload_outdf"): Likewise.
1327
1328 2005-01-15  Marc Espie  <espie@openbsd.org>
1329
1330         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
1331         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
1332         * config/openbsd.h:  Fix C++ includes for native configurations.
1333         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
1334         Add trampoline support.
1335         * config/i386/openbsdelf.h: New.
1336
1337 2005-01-15  Marc Espie  <espie@openbsd.org>
1338
1339         * collect2.c (main): Explicitly parse -dynamic-linker option.
1340
1341 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
1342
1343         PR tree-optimization/19060
1344         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
1345         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
1346         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
1347         and handle extract_range_from_cond returning false.
1348         * fold-const.c (fold): Optimize comparisons with min/max even for
1349         width > HOST_BITS_PER_WIDE_INT.
1350
1351 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
1352
1353         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
1354         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS): 
1355         Remove little endian multilib variants.
1356         Add mips32 multilib variant.
1357
1358 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
1359
1360         * explow.c (copy_all_reg, stabilize): Remove.
1361         * expr.h: Remove the corresponding prototypes.
1362
1363         * rtlanal.c (regs_set_between_p): Remove.
1364         * rtl.h: Remove the corresponding prototype.
1365
1366 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
1367
1368         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
1369         to rs6000_nonimmediate_operand.
1370         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
1371         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
1372         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
1373         rs6000_nonimmediate_operand.
1374         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
1375         rs6000_nonimmediate_operand.
1376
1377 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
1378
1379         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
1380
1381 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1382
1383         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
1384         on e500v2.
1385         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
1386         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
1387
1388         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
1389         (rs6k_nonimmediate_operand): New.
1390         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
1391         correctly.
1392         (legitimate_lo_sum_address_p): Same.
1393         (rs6000_legitimize_address): Same.
1394         (rs6000_legitimize_reload_address): Same.
1395         (rs6000_legitimate_address): Same.
1396         (spe_build_register_parallel): Pass DF and DC modes in a DI
1397         register.
1398
1399         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
1400         to rs6k_nonimmediate_operand.
1401
1402         * config/rs6000/spe.md ("*frob_df_di"): New.
1403         ("*frob_di_df"): New.
1404         ("*frob_di_df_2"): New.
1405         ("*mov_sidf_e500_subreg0"): New.
1406         ("*mov_sidf_e500_subreg4"): New.
1407         ("*movdf_e500_double"): Change predicate to
1408         rs6k_nonimmediate_operand.
1409
1410 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1411
1412         * postreload.c (move2add_note_store): Only call
1413         trunc_int_for_mode on scalar integers.
1414
1415 2005-01-14  Steven Bosscher  <stevenb@suse.de>
1416
1417         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
1418         replace BB_VISITED uses.
1419         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
1420         (propagate_necessity): Check the bitmap instead of BB_VISITED.
1421         (tree_dce_done): Free visited_control_parents.
1422         (perform_tree_ssa_dce): Allocate and clear it.
1423         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
1424         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
1425         instead of BB_VISITED.
1426
1427 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
1428
1429         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
1430         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
1431         Remove unused prototypes.
1432
1433 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1434
1435         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
1436         64-bit register usage.
1437         (spe_func_has_64bit_regs_p): Add FIXME note.
1438
1439 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
1440
1441         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
1442         flag_finite_math_only with flag_unsafe_math_optimizations.
1443
1444 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
1445
1446         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
1447         end-of-stack check.
1448         (__tpf_eh_return): Copy TPF private stack area from the module
1449         boundary stack frame.  Add check for when module addresses are
1450         equal, but no stub address is found.
1451
1452 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
1453
1454         PR target/7525
1455         * arm.h (struct machine_function): Add call_via field.
1456         (thumb_call_via_label): Declare.
1457         * arm.c (thumb_call_via_label): New variable.
1458         (thumb_call_reg_needed): New variable.
1459         (arm_output_function_epilogue): For Thumb code, output any per-function
1460         call-indirect trampolines.
1461         (thumb_call_via_reg): New function.
1462         (arm_file_end): New function.
1463         (TARGET_ASM_FILE_END): Call arm_file_end.
1464         (aof_file_end): Likewise.
1465         * arm-protos.h (thumb_call_via_reg): Declare.
1466         * arm.md (call_reg_thumb, call_value_reg_thumb): Call 
1467         thumb_call_via_reg in normal case.
1468
1469 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
1470
1471         PR middle-end/19084
1472         PR rtl-optimization/19348
1473         * recog.c (peephole2_optimize): Do global life update if some peephole
1474         decides it doesn't need at least one of its inputs and that change
1475         influences liveness at the start of the basic block.
1476
1477         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
1478         arguments instead of 1.
1479
1480 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1481
1482         PR middle-end/18820
1483         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
1484         zero for nested functions needing a static chain or functions
1485         with a non-constant address.
1486
1487 2005-01-13  Roger Sayle  <roger@eyesopen.com>
1488
1489         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
1490         (and (sign_extend X) C) into (zero_extend (and X C)).
1491
1492 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
1493
1494         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
1495
1496 2005-01-13  Richard Henderson  <rth@redhat.com>
1497
1498         PR target/19009
1499         PR target/19250
1500         PR target/19252
1501         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
1502         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
1503         not just TARGET_SSE.
1504         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
1505         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
1506         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
1507         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
1508         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
1509         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
1510         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
1511         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
1512         (movdicc_c_rex64): Rename with '*'.
1513         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
1514         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
1515         (movsfcc_1_387): Rename from movsfcc_1.
1516         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
1517         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
1518         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
1519         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
1520         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
1521         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
1522         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
1523         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
1524         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
1525         sse_movdfcc_const0_4): Remove.
1526         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
1527         recognize min/max early.  Update for changed sse cmove patterns.
1528         (ix86_split_sse_movcc): New.
1529         * config/i386/i386-protos.h: Update.
1530
1531 2005-01-13  Steven Bosscher  <stevenb@suse.de>
1532
1533         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
1534         (fix_stmt_v_may_defs): Likewise.
1535
1536 2005-01-13  Richard Henderson  <rth@redhat.com>
1537
1538         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
1539         for converting the mask.
1540
1541 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
1542
1543         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
1544         definition to 600.
1545
1546 2005-01-13  Richard Henderson  <rth@redhat.com>
1547
1548         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
1549         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
1550         IX86_BUILTIN_MOVDQ2Q): Remove.
1551         (IX86_BUILTIN_VEC_EXT_V4SI): New.
1552         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
1553         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after 
1554         shuffling.
1555         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
1556         (sse2_pextrw): Fix immediate constraint.
1557         (sse2_loadq, sse2_loadq_rex64): Remove.
1558         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
1559         Use __builtin_ia32_vec_ext_<size>.
1560         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
1561
1562 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
1563
1564         * function.c (assign_parm_setup_block): Look inside original
1565         entry_parm when inspecting PARALLEL.
1566
1567 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
1568             Joel Sherrill  <joel@oarcorp.com>
1569
1570         PR target/19399
1571         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
1572         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
1573         rtems_gxx_recursive_mutex_init.
1574         (__gthread_recursive_mutex_lock): New function.
1575         (__gthread_recursive_mutex_trylock): Likewise.
1576         (__gthread_recursive_mutex_unlock): Likewise.
1577
1578 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
1579
1580         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
1581
1582 2005-01-13  Jan Beulich  <jbeulich@novell.com>
1583
1584         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
1585         (ashrti3_internal): Indicate output is early clobber. Generate result
1586         into output rather than first input. Use move for low word of output
1587         if shift count is exactly 64.
1588         (lshrti3_internal): Likewise.
1589
1590 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
1591
1592         PR target/18329
1593         PR target/18330
1594         * reload1.c (delete_output_reload): Don't delete an output reload
1595         if the pseudo lives longer than a single basic block.  Adjust and
1596         improve wording of comment.
1597
1598 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
1599
1600         PR target/19334
1601         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
1602         of TYPE_SIZE where we mean the number of bytes.
1603
1604 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
1605
1606         * function.c (assign_parm_setup_block): Relax condition on
1607         multi-register optimization.
1608
1609 2005-01-12  Nick Clifton  <nickc@redhat.com>
1610
1611         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
1612         an "in_delay_slot" attribute of "no" to prevent them being used in
1613         delay slots.  This is forbidden because they might generate
1614         exceptions.
1615
1616 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
1617
1618         PR target/19389
1619         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
1620         with r->Y and Y->r.
1621
1622 2005-01-12  Nick Clifton  <nickc@redhat.com>
1623
1624         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
1625         passed on to GAS) but do not define, as GAS no longer supports or
1626         needs the -m2000 option.
1627
1628 2005-01-11  Roger Sayle  <roger@eyesopen.com>
1629
1630         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
1631         type as args of unprototyped builtins aren't automatically promoted.
1632         (fold_builtin_abs): Likewise.
1633
1634 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1635
1636         * Makefile.in: Set a `build-warn' variable.
1637
1638 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
1639
1640         PR tree-optimization/17949
1641         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
1642         (find_interesting_uses_address): Use it.
1643
1644 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
1645
1646         * regrename.c (kill_value): Handle subreg's that won't simplify.
1647
1648 2005-01-11  Richard Henderson  <rth@redhat.com>
1649
1650         PR target/13366
1651         * config/i386/i386.h (enum ix86_builtins): Move ...
1652         * config/i386/i386.c: ... here.
1653         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
1654         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
1655         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
1656         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
1657         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
1658         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
1659         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
1660         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
1661         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
1662         IX86_BUILTIN_LOADDDUP): Remove.
1663         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
1664         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
1665         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
1666         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
1667         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
1668         (ix86_init_builtins): Make static.
1669         (ix86_init_mmx_sse_builtins): Update for changed builtins.
1670         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
1671         if all the modes match.  Otherwise, fake it.
1672         (get_element_number, ix86_expand_vec_init_builtin,
1673         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
1674         (ix86_expand_builtin): Make static.  Update for changed builtins.
1675         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
1676         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
1677         (ix86_expand_vector_init_duplicate): New.
1678         (ix86_expand_vector_init_low_nonzero): New.
1679         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
1680         Split out from ix86_expand_vector_init; handle integer modes.
1681         (ix86_expand_vector_init): Use them.
1682         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
1683         * config/i386/i386-protos.h: Update.
1684         * config/i386/predicates.md (reg_or_0_operand): New.
1685         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
1686         (movv2sf_internal): Likewise.  And a splitter to match them all.
1687         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
1688         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
1689         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
1690         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
1691         (mmx_pinsrw): Fix operand ordering.
1692         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
1693         rather than sse_loadss expander.
1694         (movv2df splitter): Similarly.
1695         (sse_loadss, sse_loadlss): Remove.
1696         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
1697         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
1698         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
1699         (sse3_movddup): Rename with '*'.
1700         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
1701         (sse2_loadsd): Remove.
1702         (vec_dupv2df_sse3): Rename from sse3_loadddup.
1703         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
1704         (sse2_pinsrw): Fix argument ordering.
1705         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
1706         (sse2_stored): Remove 'r' destination.
1707         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
1708         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
1709         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
1710         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
1711         vec_extractv16qi, vec_initv16qi): New.
1712
1713         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
1714         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x, 
1715         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
1716         constructor form.
1717         (_mm_load_pd, _mm_store_pd): Use plain dereference.
1718         (_mm_load_si128, _mm_store_si128): Likewise.
1719         (_mm_load1_pd): Use _mm_set1_pd.
1720         (_mm_load_sd): Use _mm_set_sd.
1721         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
1722         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
1723         (_mm_set_epi64): Use _mm_set_epi64x.
1724         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
1725         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
1726         _mm_setr_epi8): Use _mm_set_foo form.
1727         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
1728         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
1729         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
1730         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
1731         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
1732         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
1733         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
1734         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
1735         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
1736         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
1737         (_mm_movedup_pd): Use _mm_shuffle_pd.
1738         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
1739         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
1740         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
1741         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
1742         Use _mm_setzero_ps.
1743         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
1744         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
1745         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
1746         (_mm_store_ps): Use raw dereference.
1747         (_mm_store1_ps): Use _mm_storeu_ps.
1748         (_mm_storer_ps): Use _mm_store_ps.
1749         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
1750         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
1751
1752 2005-01-11  Stan Shebs  <shebs@apple.com>
1753
1754         * config/rs6000/rs6000.c (machopic_output_stub): Issue
1755         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
1756
1757 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
1758
1759         PR target/18761
1760         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
1761         Skip all DECLs except for FIELD_DECLs.
1762
1763 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
1764
1765         * config/s390/s390.c (override_options): Return error if
1766         -mbackchain, -mpacked-stack and -mhard-float are used together.
1767         (s390_va_start): Remove the backchain && packed-stack special case.
1768         (s390_gimplify_va_arg): Likewise.
1769         * doc/invoke.texi: Remove the ABI incompatibility note.
1770
1771 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
1772
1773         * config/s390/s390.c (struct s390_frame_layout): Remove 
1774         save_backchain_p.
1775         (s390_frame_info, s390_emit_prologue): Replace occurrences of
1776         save_backchain_p with TARGET_BACKCHAIN.
1777
1778 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
1779
1780         PR target/18916
1781         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
1782         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
1783         * function.c (locate_and_pad_parm): Set new field.
1784         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
1785         Tweak where_pad test to include "none".  Always set mem align for
1786         stack_parm.
1787         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
1788         not sufficient for type.
1789         (assign_parm_setup_block): If stack_parm is zero on entry, always
1790         make a new stack local.  Block move old stack parm if necessary
1791         to new aligned stack local.
1792         (assign_parm_setup_stack): Use a block move to handle
1793         potentially misaligned entry_parm.
1794         (assign_parms_unsplit_complex): Specify required alignment when
1795         creating stack local.
1796         * calls.c (compute_argument_addresses): Override alignment of stack
1797         arg calculated from its type with the alignment given by
1798         FUNCTION_ARG_BOUNDARY.
1799         (store_one_arg): Likewise.
1800
1801 2005-01-11  Jan Beulich  <jbeulich@novell.com>
1802
1803         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
1804         Change respective itanium_class attribute to ialu.
1805         (shladdp4_internal): New.
1806         * config/ia64/predicates.md (shladd_log2_operand): New.
1807
1808 2005-01-11  Richard Henderson  <rth@redhat.com>
1809
1810         * expr.c (store_constructor): Use rtvec_alloc instead of
1811         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
1812
1813 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
1814
1815         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
1816
1817 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
1818
1819         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
1820         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
1821         (TARGET_RWRELOC): Define.
1822         (ia64_rwreloc_section_type_flags): Delete.
1823         (ia64_section_type_flags): New function.
1824         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
1825         (TARGET_RWRELOC): Define.
1826
1827 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
1828
1829         PR target/18987
1830         * config/ia64/ia64.c (process_set): For alloc insn, only call
1831         process_epilogue is !frame_pointer_needed.
1832
1833 2005-01-10  Roger Sayle  <roger@eyesopen.com>
1834
1835         PR c++/19355
1836         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
1837         unary operator and can't be treated as a binary/comparison operator.
1838
1839 2005-01-10  Richard Henderson  <rth@redhat.com>
1840
1841         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
1842         (ix86_return_in_memory): Likewise.
1843         (function_arg_advance):  Likewise.  Mirror structure in function_arg
1844         for choosing register to advance.
1845
1846 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
1847
1848         * tree-vectorizer.c, tree.def: Fix comment typos.
1849
1850 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
1851
1852         * config/s390/s390.c (struct processor_costs): 4 new fields:
1853         ddbr, ddr, debr, der.
1854         (s390_rtx_costs): More precise handling of divide instructions.
1855
1856 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
1857
1858         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
1859
1860 2005-01-10  Jan Beulich  <jbeulich@novell.com>
1861
1862         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
1863         names resulting from -ffunction-sections/-fdata-sections and linkonce
1864         ones.
1865         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
1866         based on the section name. Rearrange the section name comparison logic
1867         slightly so that each section name is compared against at most once.
1868
1869 2005-01-10  Ben Elliston  <bje@au.ibm.com>
1870
1871         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
1872         targets for which -fPIC reduces limitations on the GOT size.
1873
1874 2005-01-09  Falk Hueffner  <falk@debian.org>
1875
1876         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
1877         X/C1 cmpop C2.
1878
1879 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
1880
1881         PR target/18720
1882         * collect2.c (main): Set aixrtl_flag for -brtl option.
1883         (resolve_lib_name): Search for .so file extension before .a
1884         if aixrtl_flag set.
1885
1886 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
1887
1888         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
1889         (vect_analyze_data_refs_alignment): Add dump prints.
1890
1891 2005-01-09  Ira Rosen  <irar@il.ibm.com>
1892
1893         * tree-vectorizer.c (vect_analyze_offset_expr): Use 
1894         expr_invariant_in_loop_p.
1895         Initialize outputs first thing in the function.
1896         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
1897         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
1898         (vect_analyze_pointer_ref_access): Check that the initial condition of 
1899         the access function is loop invariant.
1900
1901 2005-01-09  Richard Henderson  <rth@redhat.com>
1902
1903         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
1904         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
1905         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
1906         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
1907         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
1908         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
1909         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
1910         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
1911         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
1912         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
1913         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
1914         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
1915         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
1916         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
1917         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
1918         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
1919         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
1920         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd, 
1921         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
1922         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
1923         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
1924         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
1925         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
1926         mmx_ prefix.
1927         (mmx_clrdi, pavgusb): Remove.
1928         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename 
1929         with leading sse_ prefix.
1930         * config/i386/sse.md: Receive them.
1931         * config/i386/mmx.md: New file.
1932         (MMXMODE12, MMXMODE24, mmxvecsize): New.
1933         (subrv2sf3): Turn into expander for normal subtraction.
1934         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
1935         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
1936         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
1937         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
1938         commutative; use ix86_binary_operator_ok.
1939         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
1940         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
1941         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
1942         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3, 
1943         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
1944         Macroize from existing patterns; use ix86_binary_operator_ok.
1945         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
1946         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
1947         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
1948         with vec_select+vec_concat.
1949         (mmx_pshufw, mmx_pshufw_1): Likewise.
1950         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
1951         (mmx_uavgv4hi3): Model correctly.
1952         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
1953         _mm_xor_si64): Remove casts.
1954
1955 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
1956
1957         PR tree-optimization/19224
1958         * tree-scalar-evolution.c (get_instantiated_value,
1959         set_instantiated_value): New functions.
1960         (instantiate_parameters_1): Cache the results.
1961         (instantiate_parameters, resolve_mixers): Initialize and free
1962         the cache.
1963
1964 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
1965
1966         * config/i386/i386.md (addhi_4): Correct reference in comment.
1967         (addqi_4): Same.
1968
1969 2005-01-08  Richard Henderson  <rth@redhat.com>
1970
1971         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
1972         (_mm_cvtsi128_si64x): Likewise.
1973         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
1974         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
1975         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
1976         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
1977         * config/i386/i386-protos.h: Update.
1978         * config/i386/i386.c (print_operand): Add 'H'.
1979         (ix86_fixup_binary_operands): Split out from ...
1980         (ix86_expand_binary_operator): ... here.
1981         (ix86_fixup_binary_operands_no_copy): New.
1982         (ix86_expand_fp_absneg_operator): Handle vector mode results.
1983         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
1984         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
1985         (safe_vector_operand): Use CONST0_RTX.
1986         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
1987         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
1988         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
1989         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
1990         special cases.
1991         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
1992         (IX86_BUILTIN_CMPNGESS): New.
1993         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
1994         (attr type): Add sselog1.
1995         (attr unit, attr memory): Handle it.
1996         (movti, movti_internal, movti_rex64): Move near other integer moves.
1997         (movtf, movtf_internal): Move near other fp moves.
1998         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
1999         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
2000         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal, 
2001         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
2002         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
2003         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
2004         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
2005         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
2006         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
2007         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3, 
2008         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3, 
2009         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3, 
2010         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
2011         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
2012         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
2013         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
2014         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
2015         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
2016         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
2017         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
2018         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
2019         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
2020         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
2021         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
2022         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
2023         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
2024         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
2025         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
2026         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
2027         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3, 
2028         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
2029         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
2030         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
2031         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw, 
2032         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
2033         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
2034         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq, 
2035         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
2036         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
2037         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
2038         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
2039         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
2040         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
2041         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
2042         same time.
2043         (SSEPUSH, push<SSEPUSH>): Remove.
2044         (MMXPUSH, push<MMXPUSH>): Remove.
2045         (sse_movaps, sse_movaps_1, sse_movups): Remove.
2046         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
2047         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
2048         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
2049         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
2050         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
2051         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
2052         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
2053         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
2054         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
2055         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
2056         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
2057         (ppro_sse_log_V4SF): Handle sselog1.
2058         * config/i386/predicates.md (const_0_to_1_operand): New.
2059         (const_0_to_255_mul_8_operand): New.
2060         (const_1_to_31_operand): Rename from const_int_1_31_operand.
2061         (const_2_to_3_operand, const_4_to_7_operand): New.
2062         * config/i386/sse.md: New file.
2063         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
2064         (sse_movups): Rename from sse_movups_1.
2065         (sse_loadlss): Rename from sse_loadss_1.
2066         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
2067         from the name.
2068         (negv4sf2): Use ix86_expand_fp_absneg_operator.
2069         (absv4sf2, negv2df, absv2df): New.
2070         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
2071         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
2072         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
2073         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
2074         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
2075         (sse3_addsubv4sf3): Model correctly.
2076         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
2077         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
2078         (sse_movhlps): Model with vec_select+vec_concat.
2079         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup, 
2080         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
2081         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
2082         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
2083         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
2084         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw, 
2085         sse2_pshufhw_1): Likewise.
2086         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
2087         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
2088         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
2089         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
2090         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
2091         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.       
2092         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
2093         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
2094         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
2095         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
2096         sminv8hi3): Mark commutative
2097         operands.  Use ix86_binary_operator_ok.
2098         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
2099         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
2100         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
2101         sse2_punpcklqdq): Allow operand2 in memory.
2102         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
2103         sse2_movsd): Add memory alternatives.
2104         (sse_storelps): Turn expander into an insn; split after reload.
2105         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
2106         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
2107
2108 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2109
2110         * configure.ac (DWARF-2 debug_line): Use objdump.
2111         * configure: Regenerate.
2112
2113 2005-01-08  Jeff Law  <law@redhat.com>
2114             Diego Novillo  <dnovillo@redhat.com>
2115
2116         PR tree-optimization/18241
2117         * tree-nrv.c (tree_nrv): Ignore volatile return values.
2118         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
2119         statements with volatile operands.
2120         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
2121         operands after marking a statement with has_volatile_ops.
2122
2123 2005-01-08  Roger Sayle  <roger@eyesopen.com>
2124
2125         * tree.c (int_fits_type_p): Always honor integer constant
2126         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
2127
2128 2005-01-08  Roger Sayle  <roger@eyesopen.com>
2129
2130         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
2131         the latent bug in rtl_delete_block has been resolved.
2132
2133 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
2134
2135         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
2136         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
2137
2138 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
2139
2140         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
2141         library as @multilib_dir@/$(SHLIB_SONAME).
2142
2143 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2144
2145         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
2146         * configure: Regenerate.
2147
2148 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
2149
2150         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
2151         TYPE_MODE.
2152
2153 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
2154
2155         PR target/13674
2156         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
2157         Convert non-word aligned offset address using ld/std into
2158         indirect address.
2159
2160 2005-01-07  Richard Henderson  <rth@redhat.com>
2161
2162         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
2163
2164 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
2165
2166         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
2167
2168 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
2169
2170         PR tree-optimization/19283
2171         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
2172         is not shorter than the original type.
2173
2174         PR rtl-optimization/19012
2175         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
2176
2177         PR rtl-optimization/18861
2178         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
2179         (FULL_STATE): Define.
2180         (mark_tablejump_edge): New function.
2181         (purge_dead_tablejump_edges): New function.
2182         (find_bb_boundaries): Use it.
2183
2184         PR tree-optimization/18828
2185         * builtins.c (expand_builtin_next_arg): Remove argument and all
2186         the argument checking.
2187         (expand_builtin): Adjust caller.
2188         (expand_builtin_va_start): Likewise.  Remove error for too many
2189         arguments.
2190         (fold_builtin_next_arg): Issue error for too many arguments.
2191         After checking arguments, replace them with magic arguments that
2192         prevent further checking of the args.
2193
2194 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2195
2196         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
2197
2198 2005-01-06  Roger Sayle  <roger@eyesopen.com>
2199
2200         PR target/6077
2201         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
2202         and %{.S:...} (and their negative variants) to test whether the
2203         input file is assembler or pre-processed-assembler independent of
2204         the actual filename extension.
2205
2206 2005-01-06  Roger Sayle  <roger@eyesopen.com>
2207
2208         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
2209         of sign or zero extended values.
2210
2211 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
2212
2213         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
2214         for IBM long double format correctly.
2215
2216 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
2217         
2218         Fix PR tree-optimization/18792
2219
2220         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
2221         to first_loop_depth, and use loop depth instead of loop number.
2222         (build_classic_dir_vector): Ditto.
2223         (compute_data_dependences_for_loop): Use depth, not loop number.
2224         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop 
2225         number. Pass in loops, instead of loop numbers.
2226         (gather_interchange_stats): Ditto.
2227         (linear_transform_loops): Ditto.
2228
2229 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
2230
2231         PR rtl-opt/13299
2232         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
2233         biv_fits_mode_p, extension_within_bounds_p): New functions.
2234         (check_ext_dependent_givs): Use them.
2235
2236 2005-01-06  Roger Sayle  <roger@eyesopen.com>
2237
2238         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
2239         more than one barrier, in which case we should delete them all.
2240
2241 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
2242
2243         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
2244
2245 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
2246         
2247         Fix PR middle-end/19286
2248         Fix PR debug/19267
2249         * dwarf2out.c (gen_subprogram_die): If we've already tried to
2250         output this subprogram, simply ignore this attempt to do it again.
2251         (add_abstract_origin_attribute): Don't abort trying to add the abstract
2252         origin attribute if it's not possible.
2253         (gen_block_die): Don't ignore subblocks of "unused" blocks.
2254         (decls_for_scope): Ditto.
2255         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
2256         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
2257         
2258 2005-01-05  Richard Henderson  <rth@redhat.com>
2259
2260         PR target/11327
2261         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
2262         (bdesc_2arg): Use it.
2263         (ix86_expand_binop_builtin): Force operands into registers
2264         when optimizing.
2265         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
2266         ix86_expand_sse_compare, ix86_expand_sse_comi, 
2267         ix86_expand_builtin): Likewise.
2268
2269 2005-01-05  Richard Henderson  <rth@redhat.com>
2270
2271         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
2272         and VEC_SELECT.
2273         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
2274         (mulv4hi3): Set itanium_class mmmul.
2275         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
2276         (fpack): Rename from fpack_sfsf.
2277
2278 2005-01-05  Richard Henderson  <rth@redhat.com>
2279
2280         PR rtl-opt/10692
2281         * reload1.c (do_input_reload): Restrict the optimization deleteing
2282         a previous output reload to RELOAD_FOR_INPUT.
2283
2284 2005-01-05  Steven Bosscher  <stevenb@suse.de>
2285
2286         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
2287         comment that we fall through after case.
2288         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
2289         (distribute_links): Likewise.
2290         * cse.c (cse_insn): Likewise.
2291         * cselib.c (cselib_invalidate_mem): Likewise.
2292         * df.c: Update comments at the top of the file.
2293         (read_modify_subreg_p): Update comments here too.
2294         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
2295         * flow.c (mark_set_1): Likewise.
2296         (mark_used_regs): Likewise.
2297         * gcse.c (mems_conflict_for_gcse_p): Likewise.
2298         (canon_list_insert): Likewise.
2299         (mark_set): Likewise.
2300         (try_replace_reg): Likewise.
2301         (store_killed_in_insn): Likewise.
2302         * loop.c (count_one_set): Likewise.
2303         (basic_induction_var): Likewise.
2304         * postreload-gcse.c (find_mem_conflicts): Likewise.
2305         * postreload.c (reload_combine_note_store): Likewise.
2306         (move2add_note_store): Likewise.
2307         * reload.c (find_equiv_reg): Likewise.
2308         (mark_referenced_resources): Likewise.
2309         * rtlanal.c (set_noop_p): Likewise.
2310         (note_stores): Likewise.
2311         (note_uses): Likewise.
2312         * sched-deps.c (sched_analyze_1): Likewise.
2313         * sched-rgn.c (check_live_1): Likewise.
2314         (update_live_1): Likewise.
2315         * config/i860/i860.c: Likewise.
2316
2317         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
2318         an lvalue.
2319         (ZERO_EXTRACT): Mention that this one can be an lvalue.
2320
2321         * doc/rtl.texi: Update documentation for bit-fields and SET.
2322
2323 2005-01-05  Roger Sayle  <roger@eyesopen.com>
2324
2325         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
2326
2327 2005-01-05  Jan Hubicka  <jh@suse.cz>
2328             Richard Henderson  <rth@redhat.com>
2329
2330         PR target/18910
2331         * config/i386/i386.c (ix86_expand_move): Handle tls symbols 
2332         with an offset.
2333
2334 2005-01-05  Richard Henderson  <rth@redhat.com>
2335
2336         PR target/12902
2337         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
2338         (sse_shufps): Change operand 3 to const_int_operand.
2339         (sse2_storelps): Fix typo in template.
2340         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
2341         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
2342         (ix86_expand_builtin): Likewise.
2343
2344 2005-01-05  Julian Brown  <julian@codesourcery.com>
2345
2346         * config/arm/arm.c (arm_return_in_memory): Treat complex types
2347         as aggregates for AAPCS ABIs.
2348
2349 2005-01-05  Stan Shebs  <shebs@apple.com>
2350
2351         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
2352         Mach-O getters if ppc64.
2353         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
2354         size argument.
2355         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
2356         signed four-byte field for global code case.
2357         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
2358
2359 2005-01-05  Roger Sayle  <roger@eyesopen.com>
2360
2361         PR middle-end/19100
2362         * c-common.c: Include real.h.
2363         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
2364         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
2365         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
2366         * Makefile.in (c-common.o): Update dependencies.
2367
2368 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
2369
2370         * c-parse.in (asm_string): Add trailing semicolon.
2371
2372 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
2373
2374         * c-parse.in (asm_string): New.  Don't allow wide strings in
2375         'asm'.
2376         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
2377         asm_string instead of STRING.
2378
2379 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
2380
2381         * c-typeck.c (constructor_no_implicit): Remove.
2382         (set_designator, process_init_element): Don't check
2383         constructor_no_implicit.
2384
2385 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
2386             Kaz Kojima  <kkojima@gcc.gnu.org>
2387
2388         PR target/16482
2389         * lcm.c (create_pre_exit): New.
2390         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
2391         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
2392
2393 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
2394
2395         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
2396         -msoft-float in target_float_switch.
2397         * arm.c (arm_override_options): Fix processing of target_float_switch.
2398
2399 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
2400
2401         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
2402         preferencing.
2403
2404 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
2405
2406         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
2407         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
2408
2409 2005-01-04  Roger Sayle  <roger@eyesopen.com>
2410
2411         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
2412         if deleting the then-block allows the test-block to fallthru to the
2413         else-block.
2414
2415 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
2416
2417         PR c/19152
2418         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
2419         after the full declaration if the are in two different TUs.
2420
2421 2005-01-04  Richard Henderson  <rth@redhat.com>
2422
2423         PR tree-opt/19158
2424         * tree-sra.c (generate_one_element_init): Just
2425         call gimplify_and_add.
2426         (generate_element_init): Record the
2427         new referenced variables and mark them for renaming
2428         and split out to ...
2429         (generate_element_init_1): This.
2430         (scalarize_init): Don't call push_gimplify_context/
2431         pop_gimplify_context.
2432
2433 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
2434
2435         * toplev.c (get_src_pwd): Handle failure of getpwd().
2436
2437 2005-01-04  Roger Sayle  <roger@eyesopen.com>
2438
2439         * fold-const.c (fold_single_bit_test): Delete unreachable handling
2440         of TRUTH_NOT_EXPR.
2441         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
2442         all the cases handled by it are inverted by invert_truthvalue.
2443
2444 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2445
2446         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
2447         (save_register_windowsi): Likewise.
2448
2449 2005-01-04  Richard Henderson  <rth@redhat.com>
2450
2451         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
2452
2453 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
2454
2455         PR middle-end/17767
2456         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
2457         any simplifications of vector mode comparison operators.
2458         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
2459
2460 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
2461             Devang Patel  <dpatel@apple.com>
2462
2463         PR tree-optimization/18308
2464         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
2465         the operands before creating a new expression.
2466         * dojump.c (do_jump): Make drop_through_label available
2467         for all cases.  Add expansion of COND_EXPR.
2468
2469 2005-01-04  Ira Rosen  <irar@il.ibm.com>
2470
2471         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
2472         INTEGER_CST instead of TREE_CONSTANT.
2473         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
2474         instead of TREE_CONSTANT.
2475         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
2476         instead of TREE_CONSTANT.
2477
2478 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2479
2480         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
2481
2482 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
2483
2484         PR target/19240
2485         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
2486         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
2487
2488 2005-01-03  Richard Henderson  <rth@redhat.com>
2489
2490         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
2491         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
2492         fold_convert_const_real_from_real): Split out from ...
2493         (fold_convert_const): ... here.
2494
2495 2005-01-03  Richard Henderson  <rth@redhat.com>
2496
2497         PR target/19235
2498         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
2499         (mov<MMXMODEI>_internal): Likewise.
2500         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
2501         Add V2SF case; use it for SSE1; don't use TI.
2502         (movdf_integer): Likewise.
2503         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
2504
2505 2005-01-03  Ira Rosen  <irar@il.ibm.com>
2506
2507         * tree-vectorizer.c (vect_strip_conversions): New function.
2508         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
2509         check for binary class. 
2510
2511 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
2512
2513         Fix PR debug/17924
2514         Fix PR debug/19191
2515         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
2516         is a decl.
2517         * gimple-low.c (mark_blocks_with_used_vars): New function.
2518         (mark_blocks_with_used_subblocks): Ditto.
2519         (mark_used_blocks): Ditto.
2520         (pass_mark_used_blocks): New pass.
2521         * tree-inline.c: Include debug.h.
2522         (expand_call_inline): Call outlining_inline_function here.
2523         * tree-optimize.c (init_tree_optimization_passes): Add
2524         pass_mark_used_blocks. 
2525         * tree-pass.h (pass_mark_used_blocks): New.
2526         * Makefile.in (tree-inline.o): Add debug.h dependency.
2527
2528 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
2529
2530         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
2531         VAR_DECLs to have weak_import attribute.
2532
2533         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
2534         'struct ucontext'.
2535
2536 2004-01-03  Steven Bosscher  <stevenb@suse.de>
2537
2538         * passes.c (rest_of_compilation): Don't run regmove if only
2539         flag_expensive_optimizations, require flag_regmove instead.
2540
2541 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2542
2543         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
2544         register "sparc".
2545         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
2546         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2547         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
2548         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2549
2550 2005-01-03  Richard Henderson  <rth@redhat.com>
2551
2552         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
2553         (ia64_const_ok_for_letter_p): New.
2554         (ia64_const_double_ok_for_letter_p): New.
2555         (ia64_extra_constraint): New.
2556         (ia64_expand_vecint_compare): New.
2557         (ia64_expand_vcondu_v2si): New.
2558         (ia64_expand_vecint_cmov): New.
2559         (ia64_expand_vecint_minmax): New.
2560         (ia64_print_operand): Add 'v'.
2561         (ia64_preferred_reload_class): New.
2562         (ia64_vector_mode_supported_p): New.
2563         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
2564         (PREFERRED_RELOAD_CLASS): Move to function.
2565         (CONST_OK_FOR_LETTER_P): Move to function.
2566         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
2567         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
2568         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
2569         (EXTRA_CONSTRAINT): Move to function.
2570         * config/ia64/ia64.md: Include vect.md.
2571         (itanium_class): Add mmalua.
2572         (type): Handle it.
2573         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
2574         (1b_mmalua): New.
2575         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
2576         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
2577         CONST0_RTX.
2578         (const_int_2bit_operand): New.
2579         (fr_reg_or_0_operand): New.
2580         * config/ia64/ia64-modes.def: Add vector modes.
2581         * config/ia64/ia64-protos.h: Update.
2582         * config/ia64/vect.md: New file.
2583
2584 2005-01-03  Richard Henderson  <rth@redhat.com>
2585
2586         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
2587
2588 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
2589
2590         PR target/19236
2591         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
2592         to SFmode.
2593         (log1pdf2): Change mode of operands[0,1] to DFmode.
2594
2595 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2596
2597         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
2598         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
2599         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
2600         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
2601         SPARC_RELAXED_ORDERING.
2602
2603 2005-01-03  Richard Henderson  <rth@redhat.com>
2604             Uros Bizjak  <uros@kss-loka.si>
2605
2606         PR target/14631
2607         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
2608         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
2609         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
2610         handling.
2611         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
2612         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
2613         const_pow2_1_to_128_operand): New predicates.
2614
2615 2005-01-02  Greg McGary  <greg@mcgary.org>
2616
2617         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
2618         anonymous decls.
2619         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
2620         object.  [ptr_type]: Remove unused variable.
2621         Remember nearest addressable array-element or record-component
2622         when checking bitfield components.  Tolerate empty BIND_EXPR.
2623
2624 2005-01-01  Richard Henderson  <rth@redhat.com>
2625
2626         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
2627         that don't narrow the value.  Fail for other conversions.
2628
2629 2005-01-01  Richard Henderson  <rth@redhat.com>
2630
2631         PR c/19031
2632         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
2633         * c-lang.c (finish_file): Don't do it here.
2634         * objc/objc-act.c (objc_finish_file): Likewise.
2635
2636         * cgraph.c (decl_assembler_name_equal): New.
2637         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
2638         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
2639         * cgraph.h (struct cgraph_varpool_node): Add next.
2640         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
2641         * varasm.c (assemble_alias): Mark the target as needed.
2642
2643 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
2644
2645         PR middle-end/19221
2646         * function.c (get_arg_pointer_save_area): Use entry_of_function
2647         instead of get_insns.
2648
2649 2005-01-01  Roger Sayle  <roger@eyesopen.com>
2650             Andrew Pinski  <pinskia@physics.uc.edu>
2651             James E. Wilson  <wilson@specifixinc.com>
2652
2653         PR rtl-optimization/12092
2654         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
2655         is zero.
2656
2657 2005-01-01  Roger Sayle  <roger@eyesopen.com>
2658             Olivier Hainque  <hainque@act-europe.fr>
2659
2660         * tree.c (int_fits_type_p): A narrower type always fits in a
2661         wider one, except for negative values into unsigned types.
2662
2663 2005-01-01  Roger Sayle  <roger@eyesopen.com>
2664
2665         * tree.c (int_fits_type_p): Compare the result of force_fit_type
2666         with the original constant rather than require TREE_OVERFLOW.
2667
2668 2005-01-01  Steven Bosscher  <stevenb@suse.de>
2669
2670         PR middle-end/17544
2671         * c-decl.c (finish_function): If compiling C99, annotate the
2672         compiler generated return with the current file name and line 0.
2673         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
2674         the source line is greater than 0.
2675         (remove_bb): Likewise.
2676
2677 See ChangeLog.12 for earlier changes.