OSDN Git Service

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