OSDN Git Service

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