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