]> gcc.gnu.org Git - gcc.git/blame - gcc/ChangeLog
re PR target/7525 ([ARM/Thumb] long calls stubs only in one code section, cannot...
[gcc.git] / gcc / ChangeLog
CommitLineData
b12a00f1
RE
12005-01-14 Richard Earnshaw <rearnsha@arm.com>
2
3 PR target/7525
4 * arm.h (struct machine_function): Add call_via field.
5 (thumb_call_via_label): Declare.
6 * arm.c (thumb_call_via_label): New variable.
7 (thumb_call_reg_needed): New variable.
8 (arm_output_function_epilogue): For Thumb code, output any per-function
9 call-indirect trampolines.
10 (thumb_call_via_reg): New function.
11 (arm_file_end): New function.
12 (TARGET_ASM_FILE_END): Call arm_file_end.
13 (aof_file_end): Likewise.
14 * arm-protos.h (thumb_call_via_reg): Declare.
15 * arm.md (call_reg_thumb, call_value_reg_thumb): Call
16 thumb_call_via_reg in normal case.
17
08a0c536
JJ
182005-01-14 Jakub Jelinek <jakub@redhat.com>
19
20 PR middle-end/19084
21 PR rtl-optimization/19348
22 * recog.c (peephole2_optimize): Do global life update if some peephole
23 decides it doesn't need at least one of its inputs and that change
24 influences liveness at the start of the basic block.
25
26 * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
27 arguments instead of 1.
28
eebeecac
EB
292005-01-14 Eric Botcazou <ebotcazou@libertysurf.fr>
30
31 PR middle-end/18820
32 * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
33 zero for nested functions needing a static chain or functions
34 with a non-constant address.
35
a0ee8b5f
RS
362005-01-13 Roger Sayle <roger@eyesopen.com>
37
38 * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
39 (and (sign_extend X) C) into (zero_extend (and X C)).
40
92018897
DB
412005-01-13 David O'Brien <obrien@FreeBSD.org>
42
43 * config/freebsd-spec.h: Make KSE pthread lib logic the default.
44
eaa49b49
RH
452005-01-13 Richard Henderson <rth@redhat.com>
46
2d1d3cb2 47 PR target/19009
eaa49b49
RH
48 PR target/19250
49 PR target/19252
50 * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
51 bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
52 not just TARGET_SSE.
53 (cmpfp_i_387): Rename from cmpfp_i. Move after sse patterns.
54 (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
55 (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
56 (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
57 (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
58 (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
59 (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
60 fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
61 (movdicc_c_rex64): Rename with '*'.
62 (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
63 (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
64 (movsfcc_1_387): Rename from movsfcc_1.
65 (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
66 (movdfcc_1, movdfcc_1_rex64): Add check for 387.
67 (sminsf3, smaxsf3, smindf3, smaxdf3): New.
68 (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
69 mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
70 maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
71 sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
72 sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
73 sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
74 sse_movdfcc_const0_4): Remove.
75 * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
76 recognize min/max early. Update for changed sse cmove patterns.
77 (ix86_split_sse_movcc): New.
78 * config/i386/i386-protos.h: Update.
79
1dff80c0
SB
802005-01-13 Steven Bosscher <stevenb@suse.de>
81
82 * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
83 (fix_stmt_v_may_defs): Likewise.
84
bb129a4f
RH
852005-01-13 Richard Henderson <rth@redhat.com>
86
87 * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
88 for converting the mask.
89
2cba2c8b
DE
902005-01-13 David Edelsohn <edelsohn@gnu.org>
91
92 * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
93 definition to 600.
94
ed9b5396
RH
952005-01-13 Richard Henderson <rth@redhat.com>
96
97 * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
98 IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
99 IX86_BUILTIN_MOVDQ2Q): Remove.
100 (IX86_BUILTIN_VEC_EXT_V4SI): New.
101 (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
102 (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
103 shuffling.
104 * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
105 (sse2_pextrw): Fix immediate constraint.
106 (sse2_loadq, sse2_loadq_rex64): Remove.
107 * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
108 Use __builtin_ia32_vec_ext_<size>.
109 (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
110
17284759
AH
1112005-01-13 Aldy Hernandez <aldyh@redhat.com>
112
113 * function.c (assign_parm_setup_block): Look inside original
114 entry_parm when inspecting PARALLEL.
115
5d58d2f8
RC
1162005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
117 Joel Sherrill <joel@oarcorp.com>
118
119 PR target/19399
120 * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
121 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
122 rtems_gxx_recursive_mutex_init.
123 (__gthread_recursive_mutex_lock): New function.
124 (__gthread_recursive_mutex_trylock): Likewise.
125 (__gthread_recursive_mutex_unlock): Likewise.
126
52786878
RC
1272005-01-13 Ralf Corsepius <ralf.corsepius@rtems.org>
128
129 * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
130
16d8386b
JB
1312005-01-13 Jan Beulich <jbeulich@novell.com>
132
133 * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
134 (ashrti3_internal): Indicate output is early clobber. Generate result
135 into output rather than first input. Use move for low word of output
136 if shift count is exactly 64.
137 (lshrti3_internal): Likewise.
138
0149f412
HPN
1392005-01-13 Hans-Peter Nilsson <hp@bitrange.com>
140
141 PR target/18329
142 PR target/18330
143 * reload1.c (delete_output_reload): Don't delete an output reload
144 if the pseudo lives longer than a single basic block. Adjust and
145 improve wording of comment.
146
e1e04267
AP
1472005-01-12 Andrew Pinski <pinskia@physics.uc.edu>
148
149 PR target/19334
150 * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
151 of TYPE_SIZE where we mean the number of bytes.
152
640019aa
AH
1532005-01-12 Aldy Hernandez <aldyh@redhat.com>
154
155 * function.c (assign_parm_setup_block): Relax condition on
156 multi-register optimization.
157
98e20ffd
NC
1582005-01-12 Nick Clifton <nickc@redhat.com>
159
160 * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
161 an "in_delay_slot" attribute of "no" to prevent them being used in
162 delay slots. This is forbidden because they might generate
163 exceptions.
164
409f61cd
AM
1652005-01-12 Alan Modra <amodra@bigpond.net.au>
166
167 PR target/19389
168 * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
169 with r->Y and Y->r.
170
ef6f5655
NC
1712005-01-12 Nick Clifton <nickc@redhat.com>
172
173 * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
174 passed on to GAS) but do not define, as GAS no longer supports or
175 needs the -m2000 option.
176
157b3890
RS
1772005-01-11 Roger Sayle <roger@eyesopen.com>
178
179 * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
180 type as args of unprototyped builtins aren't automatically promoted.
181 (fold_builtin_abs): Likewise.
182
9a43b902
KG
1832005-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
184
185 * Makefile.in: Set a `build-warn' variable.
186
0a915e3d
ZD
1872005-01-11 Zdenek Dvorak <dvorakz@suse.cz>
188
189 PR tree-optimization/17949
190 * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
191 (find_interesting_uses_address): Use it.
192
f351bfed
AH
1932005-01-11 Aldy Hernandez <aldyh@redhat.com>
194
195 * regrename.c (kill_value): Handle subreg's that won't simplify.
196
eb701deb
RH
1972005-01-11 Richard Henderson <rth@redhat.com>
198
199 PR target/13366
200 * config/i386/i386.h (enum ix86_builtins): Move ...
201 * config/i386/i386.c: ... here.
202 (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
203 IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
204 IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
205 IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
206 IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD, IX86_BUILTIN_STOREHPD,
207 IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
208 IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
209 IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
210 IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
211 IX86_BUILTIN_LOADDDUP): Remove.
212 (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
213 IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
214 IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
215 IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
216 IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
217 (ix86_init_builtins): Make static.
218 (ix86_init_mmx_sse_builtins): Update for changed builtins.
219 (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
220 if all the modes match. Otherwise, fake it.
221 (get_element_number, ix86_expand_vec_init_builtin,
222 ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
223 (ix86_expand_builtin): Make static. Update for changed builtins.
224 (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
225 operand instead of sse2_loadsd. Cast sse1 fallback to V4SFmode.
226 (ix86_expand_vector_init_duplicate): New.
227 (ix86_expand_vector_init_low_nonzero): New.
228 (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
229 Split out from ix86_expand_vector_init; handle integer modes.
230 (ix86_expand_vector_init): Use them.
231 (ix86_expand_vector_set, ix86_expand_vector_extract): New.
232 * config/i386/i386-protos.h: Update.
233 * config/i386/predicates.md (reg_or_0_operand): New.
234 * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
235 (movv2sf_internal): Likewise. And a splitter to match them all.
236 (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
237 vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
238 vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
239 vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
240 (mmx_pinsrw): Fix operand ordering.
241 * config/i386/sse.md (movv4sf splitter): Use direct pattern,
242 rather than sse_loadss expander.
243 (movv2df splitter): Similarly.
244 (sse_loadss, sse_loadlss): Remove.
245 (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
246 (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
247 (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
248 (sse3_movddup): Rename with '*'.
249 (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
250 (sse2_loadsd): Remove.
251 (vec_dupv2df_sse3): Rename from sse3_loadddup.
252 (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
253 (sse2_pinsrw): Fix argument ordering.
254 (sse2_loadld, sse2_loadq): Add sse1 alternatives.
255 (sse2_stored): Remove 'r' destination.
256 (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
257 vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
258 vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
259 vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
260 vec_extractv16qi, vec_initv16qi): New.
261
262 * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
263 (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
264 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
265 constructor form.
266 (_mm_load_pd, _mm_store_pd): Use plain dereference.
267 (_mm_load_si128, _mm_store_si128): Likewise.
268 (_mm_load1_pd): Use _mm_set1_pd.
269 (_mm_load_sd): Use _mm_set_sd.
270 (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
271 (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
272 (_mm_set_epi64): Use _mm_set_epi64x.
273 (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
274 _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
275 _mm_setr_epi8): Use _mm_set_foo form.
276 (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
277 (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
278 (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
279 (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
280 * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
281 (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
282 (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
283 (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
284 (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
285 * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
286 (_mm_movedup_pd): Use _mm_shuffle_pd.
287 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
288 _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
289 (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
290 _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
291 Use _mm_setzero_ps.
292 (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
293 (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
294 (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
295 (_mm_store_ps): Use raw dereference.
296 (_mm_store1_ps): Use _mm_storeu_ps.
297 (_mm_storer_ps): Use _mm_store_ps.
298 (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
299 (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
300
d9e4e4f5
SS
3012005-01-11 Stan Shebs <shebs@apple.com>
302
303 * config/rs6000/rs6000.c (machopic_output_stub): Issue
304 ldu instead of lwzu if 64-bit -mdynamic-no-pic.
305
85962ac8
AP
3062005-01-11 Andrew Pinski <pinskia@physics.uc.edu>
307
308 PR target/18761
309 * config/rs6000/rs6000.c (rs6000_special_round_type_align):
310 Skip all DECLs except for FIELD_DECLs.
311
6b78f6be
AK
3122005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
313
314 * config/s390/s390.c (override_options): Return error if
315 -mbackchain, -mpacked-stack and -mhard-float are used together.
316 (s390_va_start): Remove the backchain && packed-stack special case.
317 (s390_gimplify_va_arg): Likewise.
318 * doc/invoke.texi: Remove the ABI incompatibility note.
319
66480e91
AK
3202005-01-11 Andreas Krebbel <krebbel1@de.ibm.com>
321
322 * config/s390/s390.c (struct s390_frame_layout): Remove
323 save_backchain_p.
324 (s390_frame_info, s390_emit_prologue): Replace occurrences of
325 save_backchain_p with TARGET_BACKCHAIN.
326
bfc45551
AM
3272005-01-11 Alan Modra <amodra@bigpond.net.au>
328
329 PR target/18916
330 * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
331 * expr.h (struct locate_and_pad_arg_data): Add "boundary".
332 * function.c (locate_and_pad_parm): Set new field.
333 (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
334 Tweak where_pad test to include "none". Always set mem align for
335 stack_parm.
336 (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
337 not sufficient for type.
338 (assign_parm_setup_block): If stack_parm is zero on entry, always
339 make a new stack local. Block move old stack parm if necessary
340 to new aligned stack local.
341 (assign_parm_setup_stack): Use a block move to handle
342 potentially misaligned entry_parm.
343 (assign_parms_unsplit_complex): Specify required alignment when
344 creating stack local.
345 * calls.c (compute_argument_addresses): Override alignment of stack
346 arg calculated from its type with the alignment given by
347 FUNCTION_ARG_BOUNDARY.
348 (store_one_arg): Likewise.
349
d3f6e07b 3502005-01-11 Jan Beulich <jbeulich@novell.com>
bfc45551 351
d3f6e07b
JB
352 * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
353 Change respective itanium_class attribute to ialu.
354 (shladdp4_internal): New.
355 * config/ia64/predicates.md (shladd_log2_operand): New.
356
201dd46b
RH
3572005-01-11 Richard Henderson <rth@redhat.com>
358
359 * expr.c (store_constructor): Use rtvec_alloc instead of
360 alloca+gen_rtvec_v, and an incorrect number passed to alloca.
361
35c0104b
KH
3622005-01-11 Kazu Hirata <kazu@cs.umass.edu>
363
364 * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
365
abb8b19a
AM
3662005-01-11 Alan Modra <amodra@bigpond.net.au>
367
368 * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
369 * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
370 (TARGET_RWRELOC): Define.
371 (ia64_rwreloc_section_type_flags): Delete.
372 (ia64_section_type_flags): New function.
373 * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
374 (TARGET_RWRELOC): Define.
375
b1eae416
DM
3762005-01-10 David Mosberger <davidm@hpl.hp.com>
377
378 PR target/18987
379 * config/ia64/ia64.c (process_set): For alloc insn, only call
380 process_epilogue is !frame_pointer_needed.
381
18d00205
RS
3822005-01-10 Roger Sayle <roger@eyesopen.com>
383
384 PR c++/19355
385 * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
386 unary operator and can't be treated as a binary/comparison operator.
387
b3a1ca49
RH
3882005-01-10 Richard Henderson <rth@redhat.com>
389
390 * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
391 (ix86_return_in_memory): Likewise.
392 (function_arg_advance): Likewise. Mirror structure in function_arg
393 for choosing register to advance.
394
1618f948
KH
3952005-01-10 Kazu Hirata <kazu@cs.umass.edu>
396
397 * tree-vectorizer.c, tree.def: Fix comment typos.
398
98fd0d70
MD
3992005-01-10 Mark Dettinger <dettinge@de.ibm.com>
400
401 * config/s390/s390.c (struct processor_costs): 4 new fields:
402 ddbr, ddr, debr, der.
403 (s390_rtx_costs): More precise handling of divide instructions.
404
99757961
DE
4052005-01-10 David Edelsohn <edelsohn@gnu.org>
406
407 * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
408
826eb7ed
JB
4092005-01-10 Jan Beulich <jbeulich@novell.com>
410
411 * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
412 names resulting from -ffunction-sections/-fdata-sections and linkonce
413 ones.
414 * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
415 based on the section name. Rearrange the section name comparison logic
416 slightly so that each section name is compared against at most once.
417
068d4f38
BE
4182005-01-10 Ben Elliston <bje@au.ibm.com>
419
420 * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
421 targets for which -fPIC reduces limitations on the GOT size.
422
351bae3d
FH
4232005-01-09 Falk Hueffner <falk@debian.org>
424
425 * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
426 X/C1 cmpop C2.
427
7142ae77
DE
4282005-01-09 David Edelsohn <edelsohn@gnu.org>
429
430 PR target/18720
431 * collect2.c (main): Set aixrtl_flag for -brtl option.
432 (resolve_lib_name): Search for .so file extension before .a
433 if aixrtl_flag set.
434
5a3ed97a
DN
4352005-01-09 Dorit Naishlos <dorit@il.ibm.com>
436
437 * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
438 (vect_analyze_data_refs_alignment): Add dump prints.
439
db5dc63d
IR
4402005-01-09 Ira Rosen <irar@il.ibm.com>
441
442 * tree-vectorizer.c (vect_analyze_offset_expr): Use
443 expr_invariant_in_loop_p.
444 Initialize outputs first thing in the function.
445 (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
446 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
447 (vect_analyze_pointer_ref_access): Check that the initial condition of
448 the access function is loop invariant.
449
80e8bb90
RH
4502005-01-09 Richard Henderson <rth@redhat.com>
451
452 * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
453 (ix86_expand_builtin): Likewise. Frob MASKMOVQ wrt the input mem
454 just like MASKMOVDQU. Return plain zero for MMX_ZERO.
455 * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
456 mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
457 movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
458 movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
459 sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
460 ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
461 mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
462 mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
463 sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
464 mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
465 mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
466 gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
467 ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
468 mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
469 mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
470 mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
471 eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
472 pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
473 pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
474 pswapdv2sf2): Move to mmx.md; rename as necessary with leading
475 mmx_ prefix.
476 (mmx_clrdi, pavgusb): Remove.
477 (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
478 with leading sse_ prefix.
479 * config/i386/sse.md: Receive them.
480 * config/i386/mmx.md: New file.
481 (MMXMODE12, MMXMODE24, mmxvecsize): New.
482 (subrv2sf3): Turn into expander for normal subtraction.
483 (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
484 mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
485 mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
486 mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
487 commutative; use ix86_binary_operator_ok.
488 (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
489 mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
490 mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
491 mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
492 mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
493 Macroize from existing patterns; use ix86_binary_operator_ok.
494 (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
495 (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
496 mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise. Model
497 with vec_select+vec_concat.
498 (mmx_pshufw, mmx_pshufw_1): Likewise.
499 (mmx_uavgv8qi3): Merge pavgusb. Model correcty.
500 (mmx_uavgv4hi3): Model correctly.
501 * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
502 _mm_xor_si64): Remove casts.
503
eb0bc7af
ZD
5042005-01-09 Zdenek Dvorak <dvorakz@suse.cz>
505
506 PR tree-optimization/19224
507 * tree-scalar-evolution.c (get_instantiated_value,
508 set_instantiated_value): New functions.
509 (instantiate_parameters_1): Cache the results.
510 (instantiate_parameters, resolve_mixers): Initialize and free
511 the cache.
512
d1c9ce9f
DE
5132005-01-08 David Edelsohn <edelsohn@gnu.org>
514
515 * config/i386/i386.md (addhi_4): Correct reference in comment.
516 (addqi_4): Same.
517
ef719a44
RH
5182005-01-08 Richard Henderson <rth@redhat.com>
519
520 * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
521 (_mm_cvtsi128_si64x): Likewise.
522 (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
523 _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
524 the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
525 * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
526 * config/i386/i386-protos.h: Update.
527 * config/i386/i386.c (print_operand): Add 'H'.
528 (ix86_fixup_binary_operands): Split out from ...
529 (ix86_expand_binary_operator): ... here.
530 (ix86_fixup_binary_operands_no_copy): New.
531 (ix86_expand_fp_absneg_operator): Handle vector mode results.
532 (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
533 (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
534 (safe_vector_operand): Use CONST0_RTX.
535 (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
536 (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
537 CODE_FOR_sse2_maskmovdqu. Special case SSE version of MASKMOVDQU
538 expansion. Update names for sse{,2,3}_ prefixes. Remove *maskncmp*
539 special cases.
540 * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
541 (IX86_BUILTIN_CMPNGESS): New.
542 * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
543 (attr type): Add sselog1.
544 (attr unit, attr memory): Handle it.
545 (movti, movti_internal, movti_rex64): Move near other integer moves.
546 (movtf, movtf_internal): Move near other fp moves.
547 (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
548 vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
549 movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
550 movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
551 sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
552 sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
553 sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
554 mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
555 rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
556 sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
557 sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
558 sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
559 vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
560 smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
561 cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
562 cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
563 vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
564 vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
565 sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
566 sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
567 cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
568 cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
569 cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
570 cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
571 ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
572 subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
573 smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
574 sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
575 sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
576 sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
577 gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
578 ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
579 ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
580 sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
581 sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
582 sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
583 sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
584 sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
585 sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
586 sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
587 mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
588 addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
589 movsldup, lddqu, loadddup, movddup): Move to sse.md. Any with
590 non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
591 same time.
592 (SSEPUSH, push<SSEPUSH>): Remove.
593 (MMXPUSH, push<MMXPUSH>): Remove.
594 (sse_movaps, sse_movaps_1, sse_movups): Remove.
595 (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
596 (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
597 (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
598 (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
599 (maskncmpv2df3, vmmaskncmpv2df3): Remove.
600 (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
601 (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
602 * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
603 (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
604 * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
605 (ppro_sse_log_V4SF_load): Similarly. Handle sselog1.
606 (ppro_sse_log_V4SF): Handle sselog1.
607 * config/i386/predicates.md (const_0_to_1_operand): New.
608 (const_0_to_255_mul_8_operand): New.
609 (const_1_to_31_operand): Rename from const_int_1_31_operand.
610 (const_2_to_3_operand, const_4_to_7_operand): New.
611 * config/i386/sse.md: New file.
612 (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
613 (sse_movups): Rename from sse_movups_1.
614 (sse_loadlss): Rename from sse_loadss_1.
615 (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
616 from the name.
617 (negv4sf2): Use ix86_expand_fp_absneg_operator.
618 (absv4sf2, negv2df, absv2df): New.
619 (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
620 (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
621 iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
622 smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
623 umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
624 (sse3_addsubv4sf3): Model correctly.
625 sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
626 sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
627 (sse_movhlps): Model with vec_select+vec_concat.
628 (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
629 sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
630 sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
631 sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
632 sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
633 sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
634 sse2_pshufhw_1): Likewise.
635 (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
636 (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
637 sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
638 ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
639 sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
640 ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
641 (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
642 sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
643 mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
644 sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
645 sminv8hi3): Mark commutative
646 operands. Use ix86_binary_operator_ok.
647 (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
648 sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
649 sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
650 sse2_punpcklqdq): Allow operand2 in memory.
651 (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
652 sse2_movsd): Add memory alternatives.
653 (sse_storelps): Turn expander into an insn; split after reload.
654 (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
655 (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
656
080a5bb0
EB
6572005-01-08 Eric Botcazou <ebotcazou@libertysurf.fr>
658
659 * configure.ac (DWARF-2 debug_line): Use objdump.
660 * configure: Regenerate.
661
e79b60a7
DN
6622005-01-08 Jeff Law <law@redhat.com>
663 Diego Novillo <dnovillo@redhat.com>
664
a6331d85 665 PR tree-optimization/18241
e79b60a7
DN
666 * tree-nrv.c (tree_nrv): Ignore volatile return values.
667 * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
668 statements with volatile operands.
669 * tree-ssa-operands.c (add_stmt_operand): Do add volatile
670 operands after marking a statement with has_volatile_ops.
671
4634cf7e
RS
6722005-01-08 Roger Sayle <roger@eyesopen.com>
673
674 * tree.c (int_fits_type_p): Always honor integer constant
675 TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
676
88c0f1c6
RS
6772005-01-08 Roger Sayle <roger@eyesopen.com>
678
679 * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
680 the latent bug in rtl_delete_block has been resolved.
681
37e30acc
RS
6822005-01-08 Richard Sandiford <rsandifo@redhat.com>
683
684 * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
685 (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
686
943cb1d0
RS
6872005-01-08 Richard Sandiford <rsandifo@redhat.com>
688
689 * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
690 library as @multilib_dir@/$(SHLIB_SONAME).
691
1b5c0152
EB
6922005-01-07 Eric Botcazou <ebotcazou@libertysurf.fr>
693
694 * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
695 * configure: Regenerate.
696
b827788f
JJ
6972005-01-07 Jakub Jelinek <jakub@redhat.com>
698
699 * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
700 TYPE_MODE.
701
4937d02d
DE
7022005-01-07 David Edelsohn <edelsohn@gnu.org>
703
704 PR target/13674
705 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
706 Convert non-word aligned offset address using ld/std into
707 indirect address.
708
db396999
RH
7092005-01-07 Richard Henderson <rth@redhat.com>
710
711 * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
712
4600cc14
RS
7132005-01-07 Richard SAndiford <rsandifo@redhat.com>
714
715 * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
716
8870e212
JJ
7172005-01-07 Jakub Jelinek <jakub@redhat.com>
718
2a0958c5
JJ
719 PR tree-optimization/19283
720 * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
721 is not shorter than the original type.
722
ebc0c8bb
JJ
723 PR rtl-optimization/19012
724 * config/i386/i386.md (addqi_1_slp): Set memory attribute.
725
0210ae14
JJ
726 PR rtl-optimization/18861
727 * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
728 (FULL_STATE): Define.
729 (mark_tablejump_edge): New function.
730 (purge_dead_tablejump_edges): New function.
731 (find_bb_boundaries): Use it.
732
8870e212
JJ
733 PR tree-optimization/18828
734 * builtins.c (expand_builtin_next_arg): Remove argument and all
735 the argument checking.
736 (expand_builtin): Adjust caller.
737 (expand_builtin_va_start): Likewise. Remove error for too many
738 arguments.
739 (fold_builtin_next_arg): Issue error for too many arguments.
740 After checking arguments, replace them with magic arguments that
741 prevent further checking of the args.
742
9fb29c46
JDA
7432005-01-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
744
745 * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
746
9a3bf943
RS
7472005-01-06 Roger Sayle <roger@eyesopen.com>
748
749 PR target/6077
750 * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
751 and %{.S:...} (and their negative variants) to test whether the
752 input file is assembler or pre-processed-assembler independent of
753 the actual filename extension.
754
c79fc296
RS
7552005-01-06 Roger Sayle <roger@eyesopen.com>
756
757 * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
758 of sign or zero extended values.
759
59d7d767
GK
7602005-01-06 Geoffrey Keating <geoffk@apple.com>
761
762 * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
763 for IBM long double format correctly.
764
1f24dd47
DB
7652005-01-06 Daniel Berlin <dberlin@dberlin.org>
766
767 Fix PR tree-optimization/18792
768
769 * tree-data-ref.c (build_classic_dist_vector): Change first_loop
770 to first_loop_depth, and use loop depth instead of loop number.
771 (build_classic_dir_vector): Ditto.
772 (compute_data_dependences_for_loop): Use depth, not loop number.
773 * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
774 number. Pass in loops, instead of loop numbers.
775 (gather_interchange_stats): Ditto.
776 (linear_transform_loops): Ditto.
777
27916b83
RS
7782005-01-06 Richard Sandiford <rsandifo@redhat.com>
779
780 PR rtl-opt/13299
781 * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
782 biv_fits_mode_p, extension_within_bounds_p): New functions.
783 (check_ext_dependent_givs): Use them.
784
4ab80063
RS
7852005-01-06 Roger Sayle <roger@eyesopen.com>
786
787 * cfgrtl.c (rtl_delete_block): A basic block may be followed by
788 more than one barrier, in which case we should delete them all.
789
12d3e34b
TS
7902005-01-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
791
792 * gcc.c (process_command): Change year in 'gcc --version' to 2005.
793
9acf766f
DB
7942005-01-05 Daniel Berlin <dberlin@dberlin.org>
795
796 Fix PR middle-end/19286
797 Fix PR debug/19267
798 * dwarf2out.c (gen_subprogram_die): If we've already tried to
799 output this subprogram, simply ignore this attempt to do it again.
800 (add_abstract_origin_attribute): Don't abort trying to add the abstract
801 origin attribute if it's not possible.
802 (gen_block_die): Don't ignore subblocks of "unused" blocks.
803 (decls_for_scope): Ditto.
804 * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
805 (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
806
e358acde
RH
8072005-01-05 Richard Henderson <rth@redhat.com>
808
809 PR target/11327
810 * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
811 (bdesc_2arg): Use it.
812 (ix86_expand_binop_builtin): Force operands into registers
813 when optimizing.
814 (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
815 ix86_expand_sse_compare, ix86_expand_sse_comi,
816 ix86_expand_builtin): Likewise.
817
051d8245
RH
8182005-01-05 Richard Henderson <rth@redhat.com>
819
820 * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
821 and VEC_SELECT.
822 * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
823 (mulv4hi3): Set itanium_class mmmul.
824 (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
825 (fpack): Rename from fpack_sfsf.
826
19f17bb9
RH
8272005-01-05 Richard Henderson <rth@redhat.com>
828
829 PR rtl-opt/10692
830 * reload1.c (do_input_reload): Restrict the optimization deleteing
831 a previous output reload to RELOAD_FOR_INPUT.
832
46d096a3
SB
8332005-01-05 Steven Bosscher <stevenb@suse.de>
834
835 * combine.c (expand_compound_operation) <ZERO_EXTRACT>: Add
836 comment that we fall through after case.
837 (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
838 (distribute_links): Likewise.
839 * cse.c (cse_insn): Likewise.
840 * cselib.c (cselib_invalidate_mem): Likewise.
841 * df.c: Update comments at the top of the file.
842 (read_modify_subreg_p): Update comments here too.
843 (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
844 * flow.c (mark_set_1): Likewise.
845 (mark_used_regs): Likewise.
846 * gcse.c (mems_conflict_for_gcse_p): Likewise.
847 (canon_list_insert): Likewise.
848 (mark_set): Likewise.
849 (try_replace_reg): Likewise.
850 (store_killed_in_insn): Likewise.
851 * loop.c (count_one_set): Likewise.
852 (basic_induction_var): Likewise.
853 * postreload-gcse.c (find_mem_conflicts): Likewise.
854 * postreload.c (reload_combine_note_store): Likewise.
855 (move2add_note_store): Likewise.
856 * reload.c (find_equiv_reg): Likewise.
857 (mark_referenced_resources): Likewise.
858 * rtlanal.c (set_noop_p): Likewise.
859 (note_stores): Likewise.
860 (note_uses): Likewise.
861 * sched-deps.c (sched_analyze_1): Likewise.
862 * sched-rgn.c (check_live_1): Likewise.
863 (update_live_1): Likewise.
864 * config/i860/i860.c: Likewise.
865
866 * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
867 an lvalue.
868 (ZERO_EXTRACT): Mention that this one can be an lvalue.
869
870 * doc/rtl.texi: Update documentation for bit-fields and SET.
871
65a878f5
RS
8722005-01-05 Roger Sayle <roger@eyesopen.com>
873
874 * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
875
d2ad2c8a
JH
8762005-01-05 Jan Hubicka <jh@suse.cz>
877 Richard Henderson <rth@redhat.com>
878
879 PR target/18910
880 * config/i386/i386.c (ix86_expand_move): Handle tls symbols
881 with an offset.
882
2cdb3148
RH
8832005-01-05 Richard Henderson <rth@redhat.com>
884
885 PR target/12902
886 * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
887 (sse_shufps): Change operand 3 to const_int_operand.
888 (sse2_storelps): Fix typo in template.
889 (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
890 * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
891 (ix86_expand_builtin): Likewise.
892
8932005-01-05 Julian Brown <julian@codesourcery.com>
3dd7ab65
JB
894
895 * config/arm/arm.c (arm_return_in_memory): Treat complex types
896 as aggregates for AAPCS ABIs.
897
59d8fe27
SS
8982005-01-05 Stan Shebs <shebs@apple.com>
899
900 * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
901 Mach-O getters if ppc64.
902 * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
903 size argument.
904 * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
905 signed four-byte field for global code case.
906 (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
907
010c4d9c
RS
9082005-01-05 Roger Sayle <roger@eyesopen.com>
909
910 PR middle-end/19100
911 * c-common.c: Include real.h.
912 (c_common_truthvalue_conversion): Avoid destructively modifying expr.
913 Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
914 Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
915 * Makefile.in (c-common.o): Update dependencies.
916
9368fb8f
JM
9172005-01-05 Joseph S. Myers <joseph@codesourcery.com>
918
919 * c-parse.in (asm_string): Add trailing semicolon.
920
9143de5c
JM
9212005-01-05 Joseph S. Myers <joseph@codesourcery.com>
922
923 * c-parse.in (asm_string): New. Don't allow wide strings in
924 'asm'.
925 (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
926 asm_string instead of STRING.
927
0953878d
JM
9282005-01-05 Joseph S. Myers <joseph@codesourcery.com>
929
930 * c-typeck.c (constructor_no_implicit): Remove.
931 (set_designator, process_init_element): Don't check
932 constructor_no_implicit.
933
cf99f196
R
9342005-01-05 J"orn Rennecke <joern.rennecke@st.com>
935 Kaz Kojima <kkojima@gcc.gnu.org>
936
937 PR target/16482
938 * lcm.c (create_pre_exit): New.
939 (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
940 ENTRY_EXIT_EXTRA to 3. Use create_pre_exit.
941
712ecf4d
RE
9422004-01-05 Richard Earnshaw <rearnsha@arm.com>
943
944 * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
945 -msoft-float in target_float_switch.
946 * arm.c (arm_override_options): Fix processing of target_float_switch.
947
082cca25
RE
9482004-01-05 Richard Earnshaw <rearnsha@arm.com>
949
950 * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
951 preferencing.
952
c2b43d7a
UB
9532004-01-05 Uros Bizjak <uros@kss-loka.si>
954
955 * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
956 Replace i387 with 'i386 compiler' in -mfpmath=sse option.
957
e82f5749
RS
9582005-01-04 Roger Sayle <roger@eyesopen.com>
959
960 * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
961 if deleting the then-block allows the test-block to fallthru to the
962 else-block.
963
f8f5c4b3
AP
9642005-01-04 Andrew Pinski <pinskia@physics.uc.edu>
965
966 PR c/19152
967 * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
968 after the full declaration if the are in two different TUs.
969
9702005-01-04 Richard Henderson <rth@redhat.com>
fa588429
RH
971
972 PR tree-opt/19158
973 * tree-sra.c (generate_one_element_init): Just
974 call gimplify_and_add.
975 (generate_element_init): Record the
976 new referenced variables and mark them for renaming
977 and split out to ...
978 (generate_element_init_1): This.
979 (scalarize_init): Don't call push_gimplify_context/
980 pop_gimplify_context.
981
5f0c48ed
GK
9822005-01-04 Geoffrey Keating <geoffk@apple.com>
983
984 * toplev.c (get_src_pwd): Handle failure of getpwd().
985
e3523f56
RS
9862005-01-04 Roger Sayle <roger@eyesopen.com>
987
988 * fold-const.c (fold_single_bit_test): Delete unreachable handling
989 of TRUTH_NOT_EXPR.
990 (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
991 all the cases handled by it are inverted by invert_truthvalue.
992
9746bb27
EB
9932005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
994
995 * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
996 (save_register_windowsi): Likewise.
997
bfee926b
RH
9982005-01-04 Richard Henderson <rth@redhat.com>
999
1000 * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
1001
21e5076a
UB
10022005-01-04 Uros Bizjak <uros@kss-loka.si>
1003
1004 PR middle-end/17767
1005 * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
1006 any simplifications of vector mode comparison operators.
1007 * simplify-rtx.c (simplify_relational_operation): Fix variable name.
1008
8ea9d0c7
PB
10092005-01-04 Paolo Bonzini <bonzini@gnu.org>
1010 Devang Patel <dpatel@apple.com>
1011
1012 PR tree-optimization/18308
8ea9d0c7
PB
1013 * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
1014 the operands before creating a new expression.
1015 * dojump.c (do_jump): Make drop_through_label available
1016 for all cases. Add expansion of COND_EXPR.
1017
8c427b58
IR
10182005-01-04 Ira Rosen <irar@il.ibm.com>
1019
1020 * tree-vectorizer.c (vect_analyze_offset_expr): Test for
1021 INTEGER_CST instead of TREE_CONSTANT.
1022 (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
1023 instead of TREE_CONSTANT.
1024 (vect_analyze_pointer_ref_access): Test for INTEGER_CST
1025 instead of TREE_CONSTANT.
1026
8287d24a
EB
10272005-01-04 Eric Botcazou <ebotcazou@libertysurf.fr>
1028
1029 * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
1030
9e4ae64b
UB
10312005-01-04 Uros Bizjak <uros@kss-loka.si>
1032
1033 PR target/19240
1034 * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
1035 (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
1036
c756af79
RH
10372005-01-03 Richard Henderson <rth@redhat.com>
1038
1039 * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
1040 (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
1041 fold_convert_const_real_from_real): Split out from ...
1042 (fold_convert_const): ... here.
1043
d30c9461
RH
10442005-01-03 Richard Henderson <rth@redhat.com>
1045
1046 PR target/19235
1047 * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
1048 (mov<MMXMODEI>_internal): Likewise.
1049 (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
1050 Add V2SF case; use it for SSE1; don't use TI.
1051 (movdf_integer): Likewise.
1052 (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
1053
7d23434b
IR
10542005-01-03 Ira Rosen <irar@il.ibm.com>
1055
1056 * tree-vectorizer.c (vect_strip_conversions): New function.
1057 (vect_analyze_offset_expr): Call vect_strip_conversions. Add
1058 check for binary class.
1059
1eb3331e
DB
10602005-01-03 Daniel Berlin <dberlin@dberlin.org>
1061
1062 Fix PR debug/17924
1063 Fix PR debug/19191
1064 * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
1065 is a decl.
1066 * gimple-low.c (mark_blocks_with_used_vars): New function.
1067 (mark_blocks_with_used_subblocks): Ditto.
1068 (mark_used_blocks): Ditto.
1069 (pass_mark_used_blocks): New pass.
1070 * tree-inline.c: Include debug.h.
1071 (expand_call_inline): Call outlining_inline_function here.
1072 * tree-optimize.c (init_tree_optimization_passes): Add
1073 pass_mark_used_blocks.
1074 * tree-pass.h (pass_mark_used_blocks): New.
1075 * Makefile.in (tree-inline.o): Add debug.h dependency.
1076
a035080c
GK
10772005-01-03 Geoffrey Keating <geoffk@apple.com>
1078
d7001ae5
GK
1079 * config/darwin.c (darwin_handle_weak_import_attribute): Permit
1080 VAR_DECLs to have weak_import attribute.
1081
a035080c
GK
1082 * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
1083 'struct ucontext'.
1084
1ab219d3
SB
10852004-01-03 Steven Bosscher <stevenb@suse.de>
1086
1087 * passes.c (rest_of_compilation): Don't run regmove if only
1088 flag_expensive_optimizations, require flag_regmove instead.
1089
e6abef61
EB
10902005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
1091
1092 * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
1093 register "sparc".
1094 * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
1095 * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
1096 * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
1097 * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
1098
f61134e8
RH
10992005-01-03 Richard Henderson <rth@redhat.com>
1100
1101 * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
1102 (ia64_const_ok_for_letter_p): New.
1103 (ia64_const_double_ok_for_letter_p): New.
1104 (ia64_extra_constraint): New.
1105 (ia64_expand_vecint_compare): New.
1106 (ia64_expand_vcondu_v2si): New.
1107 (ia64_expand_vecint_cmov): New.
1108 (ia64_expand_vecint_minmax): New.
1109 (ia64_print_operand): Add 'v'.
1110 (ia64_preferred_reload_class): New.
1111 (ia64_vector_mode_supported_p): New.
1112 * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
1113 (PREFERRED_RELOAD_CLASS): Move to function.
1114 (CONST_OK_FOR_LETTER_P): Move to function.
1115 (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
1116 (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
1117 (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
1118 (EXTRA_CONSTRAINT): Move to function.
1119 * config/ia64/ia64.md: Include vect.md.
1120 (itanium_class): Add mmalua.
1121 (type): Handle it.
1122 * config/ia64/itanium1.md (1_mmalua): New. Add it to bypasses.
1123 (1b_mmalua): New.
1124 * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
1125 * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
1126 CONST0_RTX.
1127 (const_int_2bit_operand): New.
1128 (fr_reg_or_0_operand): New.
1129 * config/ia64/ia64-modes.def: Add vector modes.
1130 * config/ia64/ia64-protos.h: Update.
1131 * config/ia64/vect.md: New file.
1132
3198b947
RH
11332005-01-03 Richard Henderson <rth@redhat.com>
1134
1135 * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
1136
088df4c2
UB
11372005-01-03 Uros Bizjak <uros@kss-loka.si>
1138
1139 PR target/19236
1140 * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
1141 to SFmode.
1142 (log1pdf2): Change mode of operands[0,1] to DFmode.
1143
548a6c4f
EB
11442005-01-03 Eric Botcazou <ebotcazou@libertysurf.fr>
1145
1146 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
1147 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
1148 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
1149 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
1150 SPARC_RELAXED_ORDERING.
1151
0703dceb
RH
11522005-01-03 Richard Henderson <rth@redhat.com>
1153 Uros Bizjak <uros@kss-loka.si>
1154
1155 PR target/14631
1156 * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
1157 IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
1158 * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
1159 handling.
1160 (*mmx_pinsrw, *sse2_pinsrw): New patterns.
1161 * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
1162 const_pow2_1_to_128_operand): New predicates.
1163
97236777
GM
11642005-01-02 Greg McGary <greg@mcgary.org>
1165
1166 * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
1167 anonymous decls.
1168 (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
1169 object. [ptr_type]: Remove unused variable.
1170 Remember nearest addressable array-element or record-component
1171 when checking bitfield components. Tolerate empty BIND_EXPR.
1172
155a8213
RH
11732005-01-01 Richard Henderson <rth@redhat.com>
1174
1175 * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
1176 that don't narrow the value. Fail for other conversions.
1177
bedb9fc0
RH
11782005-01-01 Richard Henderson <rth@redhat.com>
1179
1180 PR c/19031
1181 * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
1182 * c-lang.c (finish_file): Don't do it here.
1183 * objc/objc-act.c (objc_finish_file): Likewise.
1184
1185 * cgraph.c (decl_assembler_name_equal): New.
1186 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
1187 (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
1188 * cgraph.h (struct cgraph_varpool_node): Add next.
1189 (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
1190 * varasm.c (assemble_alias): Mark the target as needed.
1191
1cb2fc7b
AP
11922005-01-01 Andrew Pinski <pinskia@physics.uc.edu>
1193
1194 PR middle-end/19221
1195 * function.c (get_arg_pointer_save_area): Use entry_of_function
1196 instead of get_insns.
1197
0ca5fbc0
RS
11982005-01-01 Roger Sayle <roger@eyesopen.com>
1199 Andrew Pinski <pinskia@physics.uc.edu>
1200 James E. Wilson <wilson@specifixinc.com>
1201
1202 PR rtl-optimization/12092
1203 * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
1204 is zero.
1205
91c537b7
RS
12062005-01-01 Roger Sayle <roger@eyesopen.com>
1207 Olivier Hainque <hainque@act-europe.fr>
1208
1209 * tree.c (int_fits_type_p): A narrower type always fits in a
1210 wider one, except for negative values into unsigned types.
1211
69618c49
RS
12122005-01-01 Roger Sayle <roger@eyesopen.com>
1213
1214 * tree.c (int_fits_type_p): Compare the result of force_fit_type
1215 with the original constant rather than require TREE_OVERFLOW.
1216
43e05e45
SB
12172005-01-01 Steven Bosscher <stevenb@suse.de>
1218
1219 PR middle-end/17544
1220 * c-decl.c (finish_function): If compiling C99, annotate the
1221 compiler generated return with the current file name and line 0.
1222 * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
1223 the source line is greater than 0.
1224 (remove_bb): Likewise.
1225
7a4515d7 1226See ChangeLog.12 for earlier changes.
This page took 0.199628 seconds and 5 git commands to generate.