OSDN Git Service

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