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