1 2005-01-11 Roger Sayle <roger@eyesopen.com>
3 * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
4 type as args of unprototyped builtins aren't automatically promoted.
5 (fold_builtin_abs): Likewise.
7 2005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9 * Makefile.in: Set a `build-warn' variable.
11 2005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
13 PR tree-optimization/17949
14 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
15 (find_interesting_uses_address): Use it.
17 2005-01-11 Aldy Hernandez <aldyh@redhat.com>
19 * regrename.c (kill_value): Handle subreg's that won't simplify.
21 2005-01-11 Richard Henderson <rth@redhat.com>
24 * config/i386/i386.h (enum ix86_builtins): Move ...
25 * config/i386/i386.c: ... here.
26 (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
27 IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
28 IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
29 IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
30 IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
31 IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
32 IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
33 IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
34 IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
35 IX86_BUILTIN_LOADDDUP): Remove.
36 (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
37 IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
38 IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
39 IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
40 IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
41 (ix86_init_builtins): Make static.
42 (ix86_init_mmx_sse_builtins): Update for changed builtins.
43 (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
44 if all the modes match. Otherwise, fake it.
45 (get_element_number, ix86_expand_vec_init_builtin,
46 ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
47 (ix86_expand_builtin): Make static. Update for changed builtins.
48 (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
49 operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
50 (ix86_expand_vector_init_duplicate): New.
51 (ix86_expand_vector_init_low_nonzero): New.
52 (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
53 Split out from ix86_expand_vector_init; handle integer modes.
54 (ix86_expand_vector_init): Use them.
55 (ix86_expand_vector_set, ix86_expand_vector_extract): New.
56 * config/i386/i386-protos.h: Update.
57 * config/i386/predicates.md (reg_or_0_operand): New.
58 * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
59 (movv2sf_internal): Likewise. And a splitter to match them all.
60 (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
61 vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
62 vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
63 vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
64 (mmx_pinsrw): Fix operand ordering.
65 * config/i386/sse.md (movv4sf splitter): Use direct pattern,
66 rather than sse_loadss expander.
67 (movv2df splitter): Similarly.
68 (sse_loadss, sse_loadlss): Remove.
69 (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
70 (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
71 (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
72 (sse3_movddup): Rename with '*'.
73 (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
74 (sse2_loadsd): Remove.
75 (vec_dupv2df_sse3): Rename from sse3_loadddup.
76 (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
77 (sse2_pinsrw): Fix argument ordering.
78 (sse2_loadld, sse2_loadq): Add sse1 alternatives.
79 (sse2_stored): Remove 'r' destination.
80 (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
81 vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
82 vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
83 vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
84 vec_extractv16qi, vec_initv16qi): New.
86 * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
87 (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
88 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
90 (_mm_load_pd, _mm_store_pd): Use plain dereference.
91 (_mm_load_si128, _mm_store_si128): Likewise.
92 (_mm_load1_pd): Use _mm_set1_pd.
93 (_mm_load_sd): Use _mm_set_sd.
94 (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
95 (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
96 (_mm_set_epi64): Use _mm_set_epi64x.
97 (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
98 _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
99 _mm_setr_epi8): Use _mm_set_foo form.
100 (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
101 (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
102 (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
103 (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
104 * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
105 (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
106 (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
107 (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
108 (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
109 * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
110 (_mm_movedup_pd): Use _mm_shuffle_pd.
111 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
112 _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
113 (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
114 _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
116 (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
117 (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
118 (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
119 (_mm_store_ps): Use raw dereference.
120 (_mm_store1_ps): Use _mm_storeu_ps.
121 (_mm_storer_ps): Use _mm_store_ps.
122 (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
123 (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
125 2005-01-11 Stan Shebs <shebs@apple.com>
127 * config/rs6000/rs6000.c (machopic_output_stub): Issue
128 ldu instead of lwzu if 64-bit -mdynamic-no-pic.
130 2005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
133 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
134 Skip all DECLs except for FIELD_DECLs.
136 2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
138 * config/s390/s390.c (override_options): Return error if
139 -mbackchain, -mpacked-stack and -mhard-float are used together.
140 (s390_va_start): Remove the backchain && packed-stack special case.
141 (s390_gimplify_va_arg): Likewise.
142 * doc/invoke.texi: Remove the ABI incompatibility note.
144 2005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
146 * config/s390/s390.c (struct s390_frame_layout): Remove
148 (s390_frame_info, s390_emit_prologue): Replace occurrences of
149 save_backchain_p with TARGET_BACKCHAIN.
151 2005-01-11 Alan Modra <amodra@bigpond.net.au>
154 * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
155 * expr.h (struct locate_and_pad_arg_data): Add "boundary".
156 * function.c (locate_and_pad_parm): Set new field.
157 (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
158 Tweak where_pad test to include "none". Always set mem align for
160 (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
161 not sufficient for type.
162 (assign_parm_setup_block): If stack_parm is zero on entry, always
163 make a new stack local. Block move old stack parm if necessary
164 to new aligned stack local.
165 (assign_parm_setup_stack): Use a block move to handle
166 potentially misaligned entry_parm.
167 (assign_parms_unsplit_complex): Specify required alignment when
168 creating stack local.
169 * calls.c (compute_argument_addresses): Override alignment of stack
170 arg calculated from its type with the alignment given by
171 FUNCTION_ARG_BOUNDARY.
172 (store_one_arg): Likewise.
174 2005-01-11 Jan Beulich <jbeulich@novell.com>
176 * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
177 Change respective itanium_class attribute to ialu.
178 (shladdp4_internal): New.
179 * config/ia64/predicates.md (shladd_log2_operand): New.
181 2005-01-11 Richard Henderson <rth@redhat.com>
183 * expr.c (store_constructor): Use rtvec_alloc instead of
184 alloca+gen_rtvec_v, and an incorrect number passed to alloca.
186 2005-01-11 Kazu Hirata <kazu@cs.umass.edu>
188 * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
190 2005-01-11 Alan Modra <amodra@bigpond.net.au>
192 * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
193 * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
194 (TARGET_RWRELOC): Define.
195 (ia64_rwreloc_section_type_flags): Delete.
196 (ia64_section_type_flags): New function.
197 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
198 (TARGET_RWRELOC): Define.
200 2005-01-10 David Mosberger <davidm@hpl.hp.com>
203 * config/ia64/ia64.c (process_set): For alloc insn, only call
204 process_epilogue is !frame_pointer_needed.
206 2005-01-10 Roger Sayle <roger@eyesopen.com>
209 * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
210 unary operator and can't be treated as a binary/comparison operator.
212 2005-01-10 Richard Henderson <rth@redhat.com>
214 * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
215 (ix86_return_in_memory): Likewise.
216 (function_arg_advance): Likewise. Mirror structure in function_arg
217 for choosing register to advance.
219 2005-01-10 Kazu Hirata <kazu@cs.umass.edu>
221 * tree-vectorizer.c, tree.def: Fix comment typos.
223 2005-01-10 Mark Dettinger <dettinge@de.ibm.com>
225 * config/s390/s390.c (struct processor_costs): 4 new fields:
226 ddbr, ddr, debr, der.
227 (s390_rtx_costs): More precise handling of divide instructions.
229 2005-01-10 David Edelsohn <edelsohn@gnu.org>
231 * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
233 2005-01-10 Jan Beulich <jbeulich@novell.com>
235 * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
236 names resulting from -ffunction-sections/-fdata-sections and linkonce
238 * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
239 based on the section name. Rearrange the section name comparison logic
240 slightly so that each section name is compared against at most once.
242 2005-01-10 Ben Elliston <bje@au.ibm.com>
244 * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
245 targets for which -fPIC reduces limitations on the GOT size.
247 2005-01-09 Falk Hueffner <falk@debian.org>
249 * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
252 2005-01-09 David Edelsohn <edelsohn@gnu.org>
255 * collect2.c (main): Set aixrtl_flag for -brtl option.
256 (resolve_lib_name): Search for .so file extension before .a
259 2005-01-09 Dorit Naishlos <dorit@il.ibm.com>
261 * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
262 (vect_analyze_data_refs_alignment): Add dump prints.
264 2005-01-09 Ira Rosen <irar@il.ibm.com>
266 * tree-vectorizer.c (vect_analyze_offset_expr): Use
267 expr_invariant_in_loop_p.
268 Initialize outputs first thing in the function.
269 (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
270 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
271 (vect_analyze_pointer_ref_access): Check that the initial condition of
272 the access function is loop invariant.
274 2005-01-09 Richard Henderson <rth@redhat.com>
276 * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
277 (ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
278 just like MASKMOVDQU. Return plain zero for MMX_ZERO.
279 * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
280 mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
281 movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
282 movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
283 sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
284 ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
285 mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
286 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
287 sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
288 mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
289 mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
290 gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
291 ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
292 mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
293 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
294 mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
295 eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
296 pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
297 pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
298 pswapdv2sf2): Move to mmx.md; rename as necessary with leading
300 (mmx_clrdi, pavgusb): Remove.
301 (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
302 with leading sse_ prefix.
303 * config/i386/sse.md: Receive them.
304 * config/i386/mmx.md: New file.
305 (MMXMODE12, MMXMODE24, mmxvecsize): New.
306 (subrv2sf3): Turn into expander for normal subtraction.
307 (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
308 mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
309 mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
310 mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
311 commutative; use ix86_binary_operator_ok.
312 (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
313 mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
314 mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
315 mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
316 mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
317 Macroize from existing patterns; use ix86_binary_operator_ok.
318 (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
319 (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
320 mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
321 with vec_select+vec_concat.
322 (mmx_pshufw, mmx_pshufw_1): Likewise.
323 (mmx_uavgv8qi3): Merge pavgusb. Model correcty.
324 (mmx_uavgv4hi3): Model correctly.
325 * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
326 _mm_xor_si64): Remove casts.
328 2005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
330 PR tree-optimization/19224
331 * tree-scalar-evolution.c (get_instantiated_value,
332 set_instantiated_value): New functions.
333 (instantiate_parameters_1): Cache the results.
334 (instantiate_parameters, resolve_mixers): Initialize and free
337 2005-01-08 David Edelsohn <edelsohn@gnu.org>
339 * config/i386/i386.md (addhi_4): Correct reference in comment.
342 2005-01-08 Richard Henderson <rth@redhat.com>
344 * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
345 (_mm_cvtsi128_si64x): Likewise.
346 (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
347 _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
348 the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
349 * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
350 * config/i386/i386-protos.h: Update.
351 * config/i386/i386.c (print_operand): Add 'H'.
352 (ix86_fixup_binary_operands): Split out from ...
353 (ix86_expand_binary_operator): ... here.
354 (ix86_fixup_binary_operands_no_copy): New.
355 (ix86_expand_fp_absneg_operator): Handle vector mode results.
356 (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
357 (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
358 (safe_vector_operand): Use CONST0_RTX.
359 (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
360 (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
361 CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
362 expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
364 * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
365 (IX86_BUILTIN_CMPNGESS): New.
366 * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
367 (attr type): Add sselog1.
368 (attr unit, attr memory): Handle it.
369 (movti, movti_internal, movti_rex64): Move near other integer moves.
370 (movtf, movtf_internal): Move near other fp moves.
371 (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
372 vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
373 movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
374 movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
375 sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
376 sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
377 sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
378 mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
379 rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
380 sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
381 sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
382 sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
383 vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
384 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
385 cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
386 cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
387 vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
388 vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
389 sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
390 sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
391 cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
392 cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
393 cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
394 cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
395 ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
396 subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
397 smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
398 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
399 sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
400 sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
401 gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
402 ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
403 ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
404 sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
405 sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
406 sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
407 sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
408 sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
409 sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
410 sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
411 mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
412 addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
413 movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
414 non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
416 (SSEPUSH, push<SSEPUSH>): Remove.
417 (MMXPUSH, push<MMXPUSH>): Remove.
418 (sse_movaps, sse_movaps_1, sse_movups): Remove.
419 (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
420 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
421 (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
422 (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
423 (maskncmpv2df3, vmmaskncmpv2df3): Remove.
424 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
425 (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
426 * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
427 (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
428 * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
429 (ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
430 (ppro_sse_log_V4SF): Handle sselog1.
431 * config/i386/predicates.md (const_0_to_1_operand): New.
432 (const_0_to_255_mul_8_operand): New.
433 (const_1_to_31_operand): Rename from const_int_1_31_operand.
434 (const_2_to_3_operand, const_4_to_7_operand): New.
435 * config/i386/sse.md: New file.
436 (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
437 (sse_movups): Rename from sse_movups_1.
438 (sse_loadlss): Rename from sse_loadss_1.
439 (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
441 (negv4sf2): Use ix86_expand_fp_absneg_operator.
442 (absv4sf2, negv2df, absv2df): New.
443 (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
444 (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
445 iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
446 smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
447 umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
448 (sse3_addsubv4sf3): Model correctly.
449 sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
450 sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
451 (sse_movhlps): Model with vec_select+vec_concat.
452 (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
453 sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
454 sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
455 sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
456 sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
457 sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
458 sse2_pshufhw_1): Likewise.
459 (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
460 (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
461 sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
462 ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
463 sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
464 ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
465 (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
466 sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
467 mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
468 sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
469 sminv8hi3): Mark commutative
470 operands. Use ix86_binary_operator_ok.
471 (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
472 sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
473 sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
474 sse2_punpcklqdq): Allow operand2 in memory.
475 (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
476 sse2_movsd): Add memory alternatives.
477 (sse_storelps): Turn expander into an insn; split after reload.
478 (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
479 (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
481 2005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
483 * configure.ac (DWARF-2 debug_line): Use objdump.
484 * configure: Regenerate.
486 2005-01-08 Jeff Law <law@redhat.com>
487 Diego Novillo <dnovillo@redhat.com>
489 PR tree-optimization/18241
490 * tree-nrv.c (tree_nrv): Ignore volatile return values.
491 * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
492 statements with volatile operands.
493 * tree-ssa-operands.c (add_stmt_operand): Do add volatile
494 operands after marking a statement with has_volatile_ops.
496 2005-01-08 Roger Sayle <roger@eyesopen.com>
498 * tree.c (int_fits_type_p): Always honor integer constant
499 TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
501 2005-01-08 Roger Sayle <roger@eyesopen.com>
503 * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
504 the latent bug in rtl_delete_block has been resolved.
506 2005-01-08 Richard Sandiford <rsandifo@redhat.com>
508 * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
509 (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
511 2005-01-08 Richard Sandiford <rsandifo@redhat.com>
513 * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
514 library as @multilib_dir@/$(SHLIB_SONAME).
516 2005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
518 * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
519 * configure: Regenerate.
521 2005-01-07 Jakub Jelinek <jakub@redhat.com>
523 * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
526 2005-01-07 David Edelsohn <edelsohn@gnu.org>
529 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
530 Convert non-word aligned offset address using ld/std into
533 2005-01-07 Richard Henderson <rth@redhat.com>
535 * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
537 2005-01-07 Richard SAndiford <rsandifo@redhat.com>
539 * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
541 2005-01-07 Jakub Jelinek <jakub@redhat.com>
543 PR tree-optimization/19283
544 * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
545 is not shorter than the original type.
547 PR rtl-optimization/19012
548 * config/i386/i386.md (addqi_1_slp): Set memory attribute.
550 PR rtl-optimization/18861
551 * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
552 (FULL_STATE): Define.
553 (mark_tablejump_edge): New function.
554 (purge_dead_tablejump_edges): New function.
555 (find_bb_boundaries): Use it.
557 PR tree-optimization/18828
558 * builtins.c (expand_builtin_next_arg): Remove argument and all
559 the argument checking.
560 (expand_builtin): Adjust caller.
561 (expand_builtin_va_start): Likewise. Remove error for too many
563 (fold_builtin_next_arg): Issue error for too many arguments.
564 After checking arguments, replace them with magic arguments that
565 prevent further checking of the args.
567 2005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
569 * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
571 2005-01-06 Roger Sayle <roger@eyesopen.com>
574 * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
575 and %{.S:...} (and their negative variants) to test whether the
576 input file is assembler or pre-processed-assembler independent of
577 the actual filename extension.
579 2005-01-06 Roger Sayle <roger@eyesopen.com>
581 * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
582 of sign or zero extended values.
584 2005-01-06 Geoffrey Keating <geoffk@apple.com>
586 * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
587 for IBM long double format correctly.
589 2005-01-06 Daniel Berlin <dberlin@dberlin.org>
591 Fix PR tree-optimization/18792
593 * tree-data-ref.c (build_classic_dist_vector): Change first_loop
594 to first_loop_depth, and use loop depth instead of loop number.
595 (build_classic_dir_vector): Ditto.
596 (compute_data_dependences_for_loop): Use depth, not loop number.
597 * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
598 number. Pass in loops, instead of loop numbers.
599 (gather_interchange_stats): Ditto.
600 (linear_transform_loops): Ditto.
602 2005-01-06 Richard Sandiford <rsandifo@redhat.com>
605 * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
606 biv_fits_mode_p, extension_within_bounds_p): New functions.
607 (check_ext_dependent_givs): Use them.
609 2005-01-06 Roger Sayle <roger@eyesopen.com>
611 * cfgrtl.c (rtl_delete_block): A basic block may be followed by
612 more than one barrier, in which case we should delete them all.
614 2005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
616 * gcc.c (process_command): Change year in 'gcc --version' to 2005.
618 2005-01-05 Daniel Berlin <dberlin@dberlin.org>
620 Fix PR middle-end/19286
622 * dwarf2out.c (gen_subprogram_die): If we've already tried to
623 output this subprogram, simply ignore this attempt to do it again.
624 (add_abstract_origin_attribute): Don't abort trying to add the abstract
625 origin attribute if it's not possible.
626 (gen_block_die): Don't ignore subblocks of "unused" blocks.
627 (decls_for_scope): Ditto.
628 * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
629 (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
631 2005-01-05 Richard Henderson <rth@redhat.com>
634 * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
635 (bdesc_2arg): Use it.
636 (ix86_expand_binop_builtin): Force operands into registers
638 (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
639 ix86_expand_sse_compare, ix86_expand_sse_comi,
640 ix86_expand_builtin): Likewise.
642 2005-01-05 Richard Henderson <rth@redhat.com>
644 * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
646 * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
647 (mulv4hi3): Set itanium_class mmmul.
648 (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
649 (fpack): Rename from fpack_sfsf.
651 2005-01-05 Richard Henderson <rth@redhat.com>
654 * reload1.c (do_input_reload): Restrict the optimization deleteing
655 a previous output reload to RELOAD_FOR_INPUT.
657 2005-01-05 Steven Bosscher <stevenb@suse.de>
659 * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
660 comment that we fall through after case.
661 (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
662 (distribute_links): Likewise.
663 * cse.c (cse_insn): Likewise.
664 * cselib.c (cselib_invalidate_mem): Likewise.
665 * df.c: Update comments at the top of the file.
666 (read_modify_subreg_p): Update comments here too.
667 (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
668 * flow.c (mark_set_1): Likewise.
669 (mark_used_regs): Likewise.
670 * gcse.c (mems_conflict_for_gcse_p): Likewise.
671 (canon_list_insert): Likewise.
672 (mark_set): Likewise.
673 (try_replace_reg): Likewise.
674 (store_killed_in_insn): Likewise.
675 * loop.c (count_one_set): Likewise.
676 (basic_induction_var): Likewise.
677 * postreload-gcse.c (find_mem_conflicts): Likewise.
678 * postreload.c (reload_combine_note_store): Likewise.
679 (move2add_note_store): Likewise.
680 * reload.c (find_equiv_reg): Likewise.
681 (mark_referenced_resources): Likewise.
682 * rtlanal.c (set_noop_p): Likewise.
683 (note_stores): Likewise.
684 (note_uses): Likewise.
685 * sched-deps.c (sched_analyze_1): Likewise.
686 * sched-rgn.c (check_live_1): Likewise.
687 (update_live_1): Likewise.
688 * config/i860/i860.c: Likewise.
690 * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
692 (ZERO_EXTRACT): Mention that this one can be an lvalue.
694 * doc/rtl.texi: Update documentation for bit-fields and SET.
696 2005-01-05 Roger Sayle <roger@eyesopen.com>
698 * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
700 2005-01-05 Jan Hubicka <jh@suse.cz>
701 Richard Henderson <rth@redhat.com>
704 * config/i386/i386.c (ix86_expand_move): Handle tls symbols
707 2005-01-05 Richard Henderson <rth@redhat.com>
710 * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
711 (sse_shufps): Change operand 3 to const_int_operand.
712 (sse2_storelps): Fix typo in template.
713 (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
714 * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
715 (ix86_expand_builtin): Likewise.
717 2005-01-05 Julian Brown <julian@codesourcery.com>
719 * config/arm/arm.c (arm_return_in_memory): Treat complex types
720 as aggregates for AAPCS ABIs.
722 2005-01-05 Stan Shebs <shebs@apple.com>
724 * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
725 Mach-O getters if ppc64.
726 * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
728 * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
729 signed four-byte field for global code case.
730 (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
732 2005-01-05 Roger Sayle <roger@eyesopen.com>
735 * c-common.c: Include real.h.
736 (c_common_truthvalue_conversion): Avoid destructively modifying expr.
737 Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
738 Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
739 * Makefile.in (c-common.o): Update dependencies.
741 2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
743 * c-parse.in (asm_string): Add trailing semicolon.
745 2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
747 * c-parse.in (asm_string): New. Don't allow wide strings in
749 (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
750 asm_string instead of STRING.
752 2005-01-05 Joseph S. Myers <joseph@codesourcery.com>
754 * c-typeck.c (constructor_no_implicit): Remove.
755 (set_designator, process_init_element): Don't check
756 constructor_no_implicit.
758 2005-01-05 J"orn Rennecke <joern.rennecke@st.com>
759 Kaz Kojima <kkojima@gcc.gnu.org>
762 * lcm.c (create_pre_exit): New.
763 (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
764 ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
766 2004-01-05 Richard Earnshaw <rearnsha@arm.com>
768 * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
769 -msoft-float in target_float_switch.
770 * arm.c (arm_override_options): Fix processing of target_float_switch.
772 2004-01-05 Richard Earnshaw <rearnsha@arm.com>
774 * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
777 2004-01-05 Uros Bizjak <uros@kss-loka.si>
779 * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
780 Replace i387 with 'i386 compiler' in -mfpmath=sse option.
782 2005-01-04 Roger Sayle <roger@eyesopen.com>
784 * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
785 if deleting the then-block allows the test-block to fallthru to the
788 2005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
791 * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
792 after the full declaration if the are in two different TUs.
794 2005-01-04 Richard Henderson <rth@redhat.com>
797 * tree-sra.c (generate_one_element_init): Just
798 call gimplify_and_add.
799 (generate_element_init): Record the
800 new referenced variables and mark them for renaming
802 (generate_element_init_1): This.
803 (scalarize_init): Don't call push_gimplify_context/
804 pop_gimplify_context.
806 2005-01-04 Geoffrey Keating <geoffk@apple.com>
808 * toplev.c (get_src_pwd): Handle failure of getpwd().
810 2005-01-04 Roger Sayle <roger@eyesopen.com>
812 * fold-const.c (fold_single_bit_test): Delete unreachable handling
814 (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
815 all the cases handled by it are inverted by invert_truthvalue.
817 2005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
819 * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
820 (save_register_windowsi): Likewise.
822 2005-01-04 Richard Henderson <rth@redhat.com>
824 * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
826 2005-01-04 Uros Bizjak <uros@kss-loka.si>
829 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
830 any simplifications of vector mode comparison operators.
831 * simplify-rtx.c (simplify_relational_operation): Fix variable name.
833 2005-01-04 Paolo Bonzini <bonzini@gnu.org>
834 Devang Patel <dpatel@apple.com>
836 PR tree-optimization/18308
837 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
838 the operands before creating a new expression.
839 * dojump.c (do_jump): Make drop_through_label available
840 for all cases. Add expansion of COND_EXPR.
842 2005-01-04 Ira Rosen <irar@il.ibm.com>
844 * tree-vectorizer.c (vect_analyze_offset_expr): Test for
845 INTEGER_CST instead of TREE_CONSTANT.
846 (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
847 instead of TREE_CONSTANT.
848 (vect_analyze_pointer_ref_access): Test for INTEGER_CST
849 instead of TREE_CONSTANT.
851 2005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
853 * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
855 2005-01-04 Uros Bizjak <uros@kss-loka.si>
858 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
859 (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
861 2005-01-03 Richard Henderson <rth@redhat.com>
863 * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
864 (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
865 fold_convert_const_real_from_real): Split out from ...
866 (fold_convert_const): ... here.
868 2005-01-03 Richard Henderson <rth@redhat.com>
871 * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
872 (mov<MMXMODEI>_internal): Likewise.
873 (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
874 Add V2SF case; use it for SSE1; don't use TI.
875 (movdf_integer): Likewise.
876 (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
878 2005-01-03 Ira Rosen <irar@il.ibm.com>
880 * tree-vectorizer.c (vect_strip_conversions): New function.
881 (vect_analyze_offset_expr): Call vect_strip_conversions. Add
882 check for binary class.
884 2005-01-03 Daniel Berlin <dberlin@dberlin.org>
888 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
890 * gimple-low.c (mark_blocks_with_used_vars): New function.
891 (mark_blocks_with_used_subblocks): Ditto.
892 (mark_used_blocks): Ditto.
893 (pass_mark_used_blocks): New pass.
894 * tree-inline.c: Include debug.h.
895 (expand_call_inline): Call outlining_inline_function here.
896 * tree-optimize.c (init_tree_optimization_passes): Add
897 pass_mark_used_blocks.
898 * tree-pass.h (pass_mark_used_blocks): New.
899 * Makefile.in (tree-inline.o): Add debug.h dependency.
901 2005-01-03 Geoffrey Keating <geoffk@apple.com>
903 * config/darwin.c (darwin_handle_weak_import_attribute): Permit
904 VAR_DECLs to have weak_import attribute.
906 * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
909 2004-01-03 Steven Bosscher <stevenb@suse.de>
911 * passes.c (rest_of_compilation): Don't run regmove if only
912 flag_expensive_optimizations, require flag_regmove instead.
914 2005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
916 * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
918 * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
919 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
920 * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
921 * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
923 2005-01-03 Richard Henderson <rth@redhat.com>
925 * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
926 (ia64_const_ok_for_letter_p): New.
927 (ia64_const_double_ok_for_letter_p): New.
928 (ia64_extra_constraint): New.
929 (ia64_expand_vecint_compare): New.
930 (ia64_expand_vcondu_v2si): New.
931 (ia64_expand_vecint_cmov): New.
932 (ia64_expand_vecint_minmax): New.
933 (ia64_print_operand): Add 'v'.
934 (ia64_preferred_reload_class): New.
935 (ia64_vector_mode_supported_p): New.
936 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
937 (PREFERRED_RELOAD_CLASS): Move to function.
938 (CONST_OK_FOR_LETTER_P): Move to function.
939 (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
940 (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
941 (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
942 (EXTRA_CONSTRAINT): Move to function.
943 * config/ia64/ia64.md: Include vect.md.
944 (itanium_class): Add mmalua.
946 * config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
948 * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
949 * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
951 (const_int_2bit_operand): New.
952 (fr_reg_or_0_operand): New.
953 * config/ia64/ia64-modes.def: Add vector modes.
954 * config/ia64/ia64-protos.h: Update.
955 * config/ia64/vect.md: New file.
957 2005-01-03 Richard Henderson <rth@redhat.com>
959 * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
961 2005-01-03 Uros Bizjak <uros@kss-loka.si>
964 * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
966 (log1pdf2): Change mode of operands[0,1] to DFmode.
968 2005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
970 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
971 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
972 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
973 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
974 SPARC_RELAXED_ORDERING.
976 2005-01-03 Richard Henderson <rth@redhat.com>
977 Uros Bizjak <uros@kss-loka.si>
980 * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
981 IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
982 * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
984 (*mmx_pinsrw, *sse2_pinsrw): New patterns.
985 * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
986 const_pow2_1_to_128_operand): New predicates.
988 2005-01-02 Greg McGary <greg@mcgary.org>
990 * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
992 (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
993 object. [ptr_type]: Remove unused variable.
994 Remember nearest addressable array-element or record-component
995 when checking bitfield components. Tolerate empty BIND_EXPR.
997 2005-01-01 Richard Henderson <rth@redhat.com>
999 * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
1000 that don't narrow the value. Fail for other conversions.
1002 2005-01-01 Richard Henderson <rth@redhat.com>
1005 * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
1006 * c-lang.c (finish_file): Don't do it here.
1007 * objc/objc-act.c (objc_finish_file): Likewise.
1009 * cgraph.c (decl_assembler_name_equal): New.
1010 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
1011 (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
1012 * cgraph.h (struct cgraph_varpool_node): Add next.
1013 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
1014 * varasm.c (assemble_alias): Mark the target as needed.
1016 2005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
1019 * function.c (get_arg_pointer_save_area): Use entry_of_function
1020 instead of get_insns.
1022 2005-01-01 Roger Sayle <roger@eyesopen.com>
1023 Andrew Pinski <pinskia@physics.uc.edu>
1024 James E. Wilson <wilson@specifixinc.com>
1026 PR rtl-optimization/12092
1027 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
1030 2005-01-01 Roger Sayle <roger@eyesopen.com>
1031 Olivier Hainque <hainque@act-europe.fr>
1033 * tree.c (int_fits_type_p): A narrower type always fits in a
1034 wider one, except for negative values into unsigned types.
1036 2005-01-01 Roger Sayle <roger@eyesopen.com>
1038 * tree.c (int_fits_type_p): Compare the result of force_fit_type
1039 with the original constant rather than require TREE_OVERFLOW.
1041 2005-01-01 Steven Bosscher <stevenb@suse.de>
1044 * c-decl.c (finish_function): If compiling C99, annotate the
1045 compiler generated return with the current file name and line 0.
1046 * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
1047 the source line is greater than 0.
1048 (remove_bb): Likewise.
1050 See ChangeLog.12 for earlier changes.