OSDN Git Service

c10fefa4dcc805cfa8569c7051c764ad447a99ac
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
2
3         * config/s390/s390.c (override_options): Return error if
4         -mbackchain, -mpacked-stack and -mhard-float are used together.
5         (s390_va_start): Remove the backchain && packed-stack special case.
6         (s390_gimplify_va_arg): Likewise.
7         * doc/invoke.texi: Remove the ABI incompatibility note.
8
9 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
10
11         * config/s390/s390.c (struct s390_frame_layout): Remove 
12         save_backchain_p.
13         (s390_frame_info, s390_emit_prologue): Replace occurrences of
14         save_backchain_p with TARGET_BACKCHAIN.
15
16 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
17
18         PR target/18916
19         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
20         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
21         * function.c (locate_and_pad_parm): Set new field.
22         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
23         Tweak where_pad test to include "none".  Always set mem align for
24         stack_parm.
25         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
26         not sufficient for type.
27         (assign_parm_setup_block): If stack_parm is zero on entry, always
28         make a new stack local.  Block move old stack parm if necessary
29         to new aligned stack local.
30         (assign_parm_setup_stack): Use a block move to handle
31         potentially misaligned entry_parm.
32         (assign_parms_unsplit_complex): Specify required alignment when
33         creating stack local.
34         * calls.c (compute_argument_addresses): Override alignment of stack
35         arg calculated from its type with the alignment given by
36         FUNCTION_ARG_BOUNDARY.
37         (store_one_arg): Likewise.
38
39 2005-01-11  Jan Beulich  <jbeulich@novell.com>
40
41         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
42         Change respective itanium_class attribute to ialu.
43         (shladdp4_internal): New.
44         * config/ia64/predicates.md (shladd_log2_operand): New.
45
46 2005-01-11  Richard Henderson  <rth@redhat.com>
47
48         * expr.c (store_constructor): Use rtvec_alloc instead of
49         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
50
51 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
52
53         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
54
55 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
56
57         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
58         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
59         (TARGET_RWRELOC): Define.
60         (ia64_rwreloc_section_type_flags): Delete.
61         (ia64_section_type_flags): New function.
62         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
63         (TARGET_RWRELOC): Define.
64
65 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
66
67         PR target/18987
68         * config/ia64/ia64.c (process_set): For alloc insn, only call
69         process_epilogue is !frame_pointer_needed.
70
71 2005-01-10  Roger Sayle  <roger@eyesopen.com>
72
73         PR c++/19355
74         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
75         unary operator and can't be treated as a binary/comparison operator.
76
77 2005-01-10  Richard Henderson  <rth@redhat.com>
78
79         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
80         (ix86_return_in_memory): Likewise.
81         (function_arg_advance):  Likewise.  Mirror structure in function_arg
82         for choosing register to advance.
83
84 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
85
86         * tree-vectorizer.c, tree.def: Fix comment typos.
87
88 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
89
90         * config/s390/s390.c (struct processor_costs): 4 new fields:
91         ddbr, ddr, debr, der.
92         (s390_rtx_costs): More precise handling of divide instructions.
93
94 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
95
96         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
97
98 2005-01-10  Jan Beulich  <jbeulich@novell.com>
99
100         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
101         names resulting from -ffunction-sections/-fdata-sections and linkonce
102         ones.
103         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
104         based on the section name. Rearrange the section name comparison logic
105         slightly so that each section name is compared against at most once.
106
107 2005-01-10  Ben Elliston  <bje@au.ibm.com>
108
109         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
110         targets for which -fPIC reduces limitations on the GOT size.
111
112 2005-01-09  Falk Hueffner  <falk@debian.org>
113
114         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
115         X/C1 cmpop C2.
116
117 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
118
119         PR target/18720
120         * collect2.c (main): Set aixrtl_flag for -brtl option.
121         (resolve_lib_name): Search for .so file extension before .a
122         if aixrtl_flag set.
123
124 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
125
126         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
127         (vect_analyze_data_refs_alignment): Add dump prints.
128
129 2005-01-09  Ira Rosen  <irar@il.ibm.com>
130
131         * tree-vectorizer.c (vect_analyze_offset_expr): Use 
132         expr_invariant_in_loop_p.
133         Initialize outputs first thing in the function.
134         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
135         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
136         (vect_analyze_pointer_ref_access): Check that the initial condition of 
137         the access function is loop invariant.
138
139 2005-01-09  Richard Henderson  <rth@redhat.com>
140
141         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
142         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
143         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
144         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
145         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
146         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
147         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
148         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
149         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
150         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
151         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
152         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
153         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
154         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
155         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
156         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
157         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
158         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd, 
159         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
160         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
161         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
162         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
163         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
164         mmx_ prefix.
165         (mmx_clrdi, pavgusb): Remove.
166         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename 
167         with leading sse_ prefix.
168         * config/i386/sse.md: Receive them.
169         * config/i386/mmx.md: New file.
170         (MMXMODE12, MMXMODE24, mmxvecsize): New.
171         (subrv2sf3): Turn into expander for normal subtraction.
172         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
173         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
174         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
175         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
176         commutative; use ix86_binary_operator_ok.
177         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
178         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
179         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
180         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3, 
181         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
182         Macroize from existing patterns; use ix86_binary_operator_ok.
183         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
184         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
185         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
186         with vec_select+vec_concat.
187         (mmx_pshufw, mmx_pshufw_1): Likewise.
188         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
189         (mmx_uavgv4hi3): Model correctly.
190         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
191         _mm_xor_si64): Remove casts.
192
193 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
194
195         PR tree-optimization/19224
196         * tree-scalar-evolution.c (get_instantiated_value,
197         set_instantiated_value): New functions.
198         (instantiate_parameters_1): Cache the results.
199         (instantiate_parameters, resolve_mixers): Initialize and free
200         the cache.
201
202 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
203
204         * config/i386/i386.md (addhi_4): Correct reference in comment.
205         (addqi_4): Same.
206
207 2005-01-08  Richard Henderson  <rth@redhat.com>
208
209         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
210         (_mm_cvtsi128_si64x): Likewise.
211         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
212         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
213         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
214         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
215         * config/i386/i386-protos.h: Update.
216         * config/i386/i386.c (print_operand): Add 'H'.
217         (ix86_fixup_binary_operands): Split out from ...
218         (ix86_expand_binary_operator): ... here.
219         (ix86_fixup_binary_operands_no_copy): New.
220         (ix86_expand_fp_absneg_operator): Handle vector mode results.
221         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
222         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
223         (safe_vector_operand): Use CONST0_RTX.
224         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
225         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
226         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
227         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
228         special cases.
229         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
230         (IX86_BUILTIN_CMPNGESS): New.
231         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
232         (attr type): Add sselog1.
233         (attr unit, attr memory): Handle it.
234         (movti, movti_internal, movti_rex64): Move near other integer moves.
235         (movtf, movtf_internal): Move near other fp moves.
236         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
237         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
238         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal, 
239         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
240         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
241         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
242         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
243         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
244         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
245         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3, 
246         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3, 
247         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3, 
248         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
249         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
250         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
251         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
252         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
253         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
254         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
255         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
256         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
257         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
258         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
259         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
260         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
261         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
262         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
263         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
264         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
265         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3, 
266         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
267         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
268         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
269         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw, 
270         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
271         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
272         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq, 
273         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
274         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
275         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
276         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
277         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
278         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
279         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
280         same time.
281         (SSEPUSH, push<SSEPUSH>): Remove.
282         (MMXPUSH, push<MMXPUSH>): Remove.
283         (sse_movaps, sse_movaps_1, sse_movups): Remove.
284         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
285         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
286         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
287         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
288         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
289         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
290         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
291         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
292         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
293         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
294         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
295         (ppro_sse_log_V4SF): Handle sselog1.
296         * config/i386/predicates.md (const_0_to_1_operand): New.
297         (const_0_to_255_mul_8_operand): New.
298         (const_1_to_31_operand): Rename from const_int_1_31_operand.
299         (const_2_to_3_operand, const_4_to_7_operand): New.
300         * config/i386/sse.md: New file.
301         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
302         (sse_movups): Rename from sse_movups_1.
303         (sse_loadlss): Rename from sse_loadss_1.
304         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
305         from the name.
306         (negv4sf2): Use ix86_expand_fp_absneg_operator.
307         (absv4sf2, negv2df, absv2df): New.
308         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
309         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
310         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
311         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
312         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
313         (sse3_addsubv4sf3): Model correctly.
314         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
315         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
316         (sse_movhlps): Model with vec_select+vec_concat.
317         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup, 
318         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
319         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
320         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
321         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
322         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw, 
323         sse2_pshufhw_1): Likewise.
324         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
325         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
326         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
327         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
328         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
329         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.       
330         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
331         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
332         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
333         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
334         sminv8hi3): Mark commutative
335         operands.  Use ix86_binary_operator_ok.
336         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
337         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
338         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
339         sse2_punpcklqdq): Allow operand2 in memory.
340         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
341         sse2_movsd): Add memory alternatives.
342         (sse_storelps): Turn expander into an insn; split after reload.
343         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
344         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
345
346 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
347
348         * configure.ac (DWARF-2 debug_line): Use objdump.
349         * configure: Regenerate.
350
351 2005-01-08  Jeff Law  <law@redhat.com>
352             Diego Novillo  <dnovillo@redhat.com>
353
354         PR tree-optimization/18241
355         * tree-nrv.c (tree_nrv): Ignore volatile return values.
356         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
357         statements with volatile operands.
358         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
359         operands after marking a statement with has_volatile_ops.
360
361 2005-01-08  Roger Sayle  <roger@eyesopen.com>
362
363         * tree.c (int_fits_type_p): Always honor integer constant
364         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
365
366 2005-01-08  Roger Sayle  <roger@eyesopen.com>
367
368         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
369         the latent bug in rtl_delete_block has been resolved.
370
371 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
372
373         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
374         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
375
376 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
377
378         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
379         library as @multilib_dir@/$(SHLIB_SONAME).
380
381 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
382
383         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
384         * configure: Regenerate.
385
386 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
387
388         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
389         TYPE_MODE.
390
391 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
392
393         PR target/13674
394         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
395         Convert non-word aligned offset address using ld/std into
396         indirect address.
397
398 2005-01-07  Richard Henderson  <rth@redhat.com>
399
400         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
401
402 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
403
404         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
405
406 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
407
408         PR tree-optimization/19283
409         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
410         is not shorter than the original type.
411
412         PR rtl-optimization/19012
413         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
414
415         PR rtl-optimization/18861
416         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
417         (FULL_STATE): Define.
418         (mark_tablejump_edge): New function.
419         (purge_dead_tablejump_edges): New function.
420         (find_bb_boundaries): Use it.
421
422         PR tree-optimization/18828
423         * builtins.c (expand_builtin_next_arg): Remove argument and all
424         the argument checking.
425         (expand_builtin): Adjust caller.
426         (expand_builtin_va_start): Likewise.  Remove error for too many
427         arguments.
428         (fold_builtin_next_arg): Issue error for too many arguments.
429         After checking arguments, replace them with magic arguments that
430         prevent further checking of the args.
431
432 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
433
434         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
435
436 2005-01-06  Roger Sayle  <roger@eyesopen.com>
437
438         PR target/6077
439         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
440         and %{.S:...} (and their negative variants) to test whether the
441         input file is assembler or pre-processed-assembler independent of
442         the actual filename extension.
443
444 2005-01-06  Roger Sayle  <roger@eyesopen.com>
445
446         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
447         of sign or zero extended values.
448
449 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
450
451         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
452         for IBM long double format correctly.
453
454 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
455         
456         Fix PR tree-optimization/18792
457
458         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
459         to first_loop_depth, and use loop depth instead of loop number.
460         (build_classic_dir_vector): Ditto.
461         (compute_data_dependences_for_loop): Use depth, not loop number.
462         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop 
463         number. Pass in loops, instead of loop numbers.
464         (gather_interchange_stats): Ditto.
465         (linear_transform_loops): Ditto.
466
467 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
468
469         PR rtl-opt/13299
470         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
471         biv_fits_mode_p, extension_within_bounds_p): New functions.
472         (check_ext_dependent_givs): Use them.
473
474 2005-01-06  Roger Sayle  <roger@eyesopen.com>
475
476         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
477         more than one barrier, in which case we should delete them all.
478
479 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
480
481         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
482
483 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
484         
485         Fix PR middle-end/19286
486         Fix PR debug/19267
487         * dwarf2out.c (gen_subprogram_die): If we've already tried to
488         output this subprogram, simply ignore this attempt to do it again.
489         (add_abstract_origin_attribute): Don't abort trying to add the abstract
490         origin attribute if it's not possible.
491         (gen_block_die): Don't ignore subblocks of "unused" blocks.
492         (decls_for_scope): Ditto.
493         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
494         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
495         
496 2005-01-05  Richard Henderson  <rth@redhat.com>
497
498         PR target/11327
499         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
500         (bdesc_2arg): Use it.
501         (ix86_expand_binop_builtin): Force operands into registers
502         when optimizing.
503         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
504         ix86_expand_sse_compare, ix86_expand_sse_comi, 
505         ix86_expand_builtin): Likewise.
506
507 2005-01-05  Richard Henderson  <rth@redhat.com>
508
509         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
510         and VEC_SELECT.
511         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
512         (mulv4hi3): Set itanium_class mmmul.
513         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
514         (fpack): Rename from fpack_sfsf.
515
516 2005-01-05  Richard Henderson  <rth@redhat.com>
517
518         PR rtl-opt/10692
519         * reload1.c (do_input_reload): Restrict the optimization deleteing
520         a previous output reload to RELOAD_FOR_INPUT.
521
522 2005-01-05  Steven Bosscher  <stevenb@suse.de>
523
524         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
525         comment that we fall through after case.
526         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
527         (distribute_links): Likewise.
528         * cse.c (cse_insn): Likewise.
529         * cselib.c (cselib_invalidate_mem): Likewise.
530         * df.c: Update comments at the top of the file.
531         (read_modify_subreg_p): Update comments here too.
532         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
533         * flow.c (mark_set_1): Likewise.
534         (mark_used_regs): Likewise.
535         * gcse.c (mems_conflict_for_gcse_p): Likewise.
536         (canon_list_insert): Likewise.
537         (mark_set): Likewise.
538         (try_replace_reg): Likewise.
539         (store_killed_in_insn): Likewise.
540         * loop.c (count_one_set): Likewise.
541         (basic_induction_var): Likewise.
542         * postreload-gcse.c (find_mem_conflicts): Likewise.
543         * postreload.c (reload_combine_note_store): Likewise.
544         (move2add_note_store): Likewise.
545         * reload.c (find_equiv_reg): Likewise.
546         (mark_referenced_resources): Likewise.
547         * rtlanal.c (set_noop_p): Likewise.
548         (note_stores): Likewise.
549         (note_uses): Likewise.
550         * sched-deps.c (sched_analyze_1): Likewise.
551         * sched-rgn.c (check_live_1): Likewise.
552         (update_live_1): Likewise.
553         * config/i860/i860.c: Likewise.
554
555         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
556         an lvalue.
557         (ZERO_EXTRACT): Mention that this one can be an lvalue.
558
559         * doc/rtl.texi: Update documentation for bit-fields and SET.
560
561 2005-01-05  Roger Sayle  <roger@eyesopen.com>
562
563         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
564
565 2005-01-05  Jan Hubicka  <jh@suse.cz>
566             Richard Henderson  <rth@redhat.com>
567
568         PR target/18910
569         * config/i386/i386.c (ix86_expand_move): Handle tls symbols 
570         with an offset.
571
572 2005-01-05  Richard Henderson  <rth@redhat.com>
573
574         PR target/12902
575         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
576         (sse_shufps): Change operand 3 to const_int_operand.
577         (sse2_storelps): Fix typo in template.
578         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
579         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
580         (ix86_expand_builtin): Likewise.
581
582 2005-01-05  Julian Brown  <julian@codesourcery.com>
583
584         * config/arm/arm.c (arm_return_in_memory): Treat complex types
585         as aggregates for AAPCS ABIs.
586
587 2005-01-05  Stan Shebs  <shebs@apple.com>
588
589         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
590         Mach-O getters if ppc64.
591         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
592         size argument.
593         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
594         signed four-byte field for global code case.
595         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
596
597 2005-01-05  Roger Sayle  <roger@eyesopen.com>
598
599         PR middle-end/19100
600         * c-common.c: Include real.h.
601         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
602         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
603         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
604         * Makefile.in (c-common.o): Update dependencies.
605
606 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
607
608         * c-parse.in (asm_string): Add trailing semicolon.
609
610 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
611
612         * c-parse.in (asm_string): New.  Don't allow wide strings in
613         'asm'.
614         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
615         asm_string instead of STRING.
616
617 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
618
619         * c-typeck.c (constructor_no_implicit): Remove.
620         (set_designator, process_init_element): Don't check
621         constructor_no_implicit.
622
623 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
624             Kaz Kojima  <kkojima@gcc.gnu.org>
625
626         PR target/16482
627         * lcm.c (create_pre_exit): New.
628         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
629         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
630
631 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
632
633         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
634         -msoft-float in target_float_switch.
635         * arm.c (arm_override_options): Fix processing of target_float_switch.
636
637 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
638
639         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
640         preferencing.
641
642 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
643
644         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
645         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
646
647 2005-01-04  Roger Sayle  <roger@eyesopen.com>
648
649         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
650         if deleting the then-block allows the test-block to fallthru to the
651         else-block.
652
653 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
654
655         PR c/19152
656         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
657         after the full declaration if the are in two different TUs.
658
659 2005-01-04  Richard Henderson  <rth@redhat.com>
660
661         PR tree-opt/19158
662         * tree-sra.c (generate_one_element_init): Just
663         call gimplify_and_add.
664         (generate_element_init): Record the
665         new referenced variables and mark them for renaming
666         and split out to ...
667         (generate_element_init_1): This.
668         (scalarize_init): Don't call push_gimplify_context/
669         pop_gimplify_context.
670
671 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
672
673         * toplev.c (get_src_pwd): Handle failure of getpwd().
674
675 2005-01-04  Roger Sayle  <roger@eyesopen.com>
676
677         * fold-const.c (fold_single_bit_test): Delete unreachable handling
678         of TRUTH_NOT_EXPR.
679         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
680         all the cases handled by it are inverted by invert_truthvalue.
681
682 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
683
684         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
685         (save_register_windowsi): Likewise.
686
687 2005-01-04  Richard Henderson  <rth@redhat.com>
688
689         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
690
691 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
692
693         PR middle-end/17767
694         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
695         any simplifications of vector mode comparison operators.
696         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
697
698 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
699             Devang Patel  <dpatel@apple.com>
700
701         PR tree-optimization/18308
702         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
703         the operands before creating a new expression.
704         * dojump.c (do_jump): Make drop_through_label available
705         for all cases.  Add expansion of COND_EXPR.
706
707 2005-01-04  Ira Rosen  <irar@il.ibm.com>
708
709         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
710         INTEGER_CST instead of TREE_CONSTANT.
711         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
712         instead of TREE_CONSTANT.
713         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
714         instead of TREE_CONSTANT.
715
716 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
717
718         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
719
720 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
721
722         PR target/19240
723         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
724         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
725
726 2005-01-03  Richard Henderson  <rth@redhat.com>
727
728         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
729         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
730         fold_convert_const_real_from_real): Split out from ...
731         (fold_convert_const): ... here.
732
733 2005-01-03  Richard Henderson  <rth@redhat.com>
734
735         PR target/19235
736         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
737         (mov<MMXMODEI>_internal): Likewise.
738         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
739         Add V2SF case; use it for SSE1; don't use TI.
740         (movdf_integer): Likewise.
741         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
742
743 2005-01-03  Ira Rosen  <irar@il.ibm.com>
744
745         * tree-vectorizer.c (vect_strip_conversions): New function.
746         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
747         check for binary class. 
748
749 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
750
751         Fix PR debug/17924
752         Fix PR debug/19191
753         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
754         is a decl.
755         * gimple-low.c (mark_blocks_with_used_vars): New function.
756         (mark_blocks_with_used_subblocks): Ditto.
757         (mark_used_blocks): Ditto.
758         (pass_mark_used_blocks): New pass.
759         * tree-inline.c: Include debug.h.
760         (expand_call_inline): Call outlining_inline_function here.
761         * tree-optimize.c (init_tree_optimization_passes): Add
762         pass_mark_used_blocks. 
763         * tree-pass.h (pass_mark_used_blocks): New.
764         * Makefile.in (tree-inline.o): Add debug.h dependency.
765
766 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
767
768         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
769         VAR_DECLs to have weak_import attribute.
770
771         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
772         'struct ucontext'.
773
774 2004-01-03  Steven Bosscher  <stevenb@suse.de>
775
776         * passes.c (rest_of_compilation): Don't run regmove if only
777         flag_expensive_optimizations, require flag_regmove instead.
778
779 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
780
781         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
782         register "sparc".
783         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
784         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
785         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
786         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
787
788 2005-01-03  Richard Henderson  <rth@redhat.com>
789
790         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
791         (ia64_const_ok_for_letter_p): New.
792         (ia64_const_double_ok_for_letter_p): New.
793         (ia64_extra_constraint): New.
794         (ia64_expand_vecint_compare): New.
795         (ia64_expand_vcondu_v2si): New.
796         (ia64_expand_vecint_cmov): New.
797         (ia64_expand_vecint_minmax): New.
798         (ia64_print_operand): Add 'v'.
799         (ia64_preferred_reload_class): New.
800         (ia64_vector_mode_supported_p): New.
801         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
802         (PREFERRED_RELOAD_CLASS): Move to function.
803         (CONST_OK_FOR_LETTER_P): Move to function.
804         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
805         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
806         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
807         (EXTRA_CONSTRAINT): Move to function.
808         * config/ia64/ia64.md: Include vect.md.
809         (itanium_class): Add mmalua.
810         (type): Handle it.
811         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
812         (1b_mmalua): New.
813         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
814         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
815         CONST0_RTX.
816         (const_int_2bit_operand): New.
817         (fr_reg_or_0_operand): New.
818         * config/ia64/ia64-modes.def: Add vector modes.
819         * config/ia64/ia64-protos.h: Update.
820         * config/ia64/vect.md: New file.
821
822 2005-01-03  Richard Henderson  <rth@redhat.com>
823
824         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
825
826 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
827
828         PR target/19236
829         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
830         to SFmode.
831         (log1pdf2): Change mode of operands[0,1] to DFmode.
832
833 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
834
835         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
836         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
837         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
838         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
839         SPARC_RELAXED_ORDERING.
840
841 2005-01-03  Richard Henderson  <rth@redhat.com>
842             Uros Bizjak  <uros@kss-loka.si>
843
844         PR target/14631
845         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
846         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
847         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
848         handling.
849         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
850         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
851         const_pow2_1_to_128_operand): New predicates.
852
853 2005-01-02  Greg McGary  <greg@mcgary.org>
854
855         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
856         anonymous decls.
857         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
858         object.  [ptr_type]: Remove unused variable.
859         Remember nearest addressable array-element or record-component
860         when checking bitfield components.  Tolerate empty BIND_EXPR.
861
862 2005-01-01  Richard Henderson  <rth@redhat.com>
863
864         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
865         that don't narrow the value.  Fail for other conversions.
866
867 2005-01-01  Richard Henderson  <rth@redhat.com>
868
869         PR c/19031
870         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
871         * c-lang.c (finish_file): Don't do it here.
872         * objc/objc-act.c (objc_finish_file): Likewise.
873
874         * cgraph.c (decl_assembler_name_equal): New.
875         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
876         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
877         * cgraph.h (struct cgraph_varpool_node): Add next.
878         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
879         * varasm.c (assemble_alias): Mark the target as needed.
880
881 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
882
883         PR middle-end/19221
884         * function.c (get_arg_pointer_save_area): Use entry_of_function
885         instead of get_insns.
886
887 2005-01-01  Roger Sayle  <roger@eyesopen.com>
888             Andrew Pinski  <pinskia@physics.uc.edu>
889             James E. Wilson  <wilson@specifixinc.com>
890
891         PR rtl-optimization/12092
892         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
893         is zero.
894
895 2005-01-01  Roger Sayle  <roger@eyesopen.com>
896             Olivier Hainque  <hainque@act-europe.fr>
897
898         * tree.c (int_fits_type_p): A narrower type always fits in a
899         wider one, except for negative values into unsigned types.
900
901 2005-01-01  Roger Sayle  <roger@eyesopen.com>
902
903         * tree.c (int_fits_type_p): Compare the result of force_fit_type
904         with the original constant rather than require TREE_OVERFLOW.
905
906 2005-01-01  Steven Bosscher  <stevenb@suse.de>
907
908         PR middle-end/17544
909         * c-decl.c (finish_function): If compiling C99, annotate the
910         compiler generated return with the current file name and line 0.
911         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
912         the source line is greater than 0.
913         (remove_bb): Likewise.
914
915 See ChangeLog.12 for earlier changes.