1 2004-12-15 Richard Sandiford <rsandifo@redhat.com>
3 * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to
4 decide whether an argument is double-word aligned.
6 2004-12-15 Richard Henderson <rth@redhat.com>
8 * config/i386/i386.md: Fix missing modes on cmove splitters.
10 2004-12-15 Jan Beulich <jbeulich@novell.com>
12 * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h.
14 2004-12-15 Uros Bizjak <uros@kss-loka.si>
16 * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2,
17 *floatsisf2_i387, *floatsisf2_sse, floatdisf2,
18 *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse,
19 floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse,
20 floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387,
21 *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2):
22 Unify enable constraint with respect to TARGET_80387, TARGET_SSE,
23 TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
24 (*float?i?f_i387): Rename to *float?i?f2_mixed.
25 (*float?i?f2_1): Rename to *float?i?f2_i387.
26 (*float?i?f2_i387_only): Rename to *float?i?f2_i387.
27 (float?ixf2): Penalize integer register operand.
29 2004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32 * configure.ac: Add GAS check for HP-UX .nsubspa comdat.
33 * configure, config.in: Rebuilt.
34 * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete
36 * config/pa/pa.c (pa_select_section): Allow uninitialized variables in
37 one-only (comdat) subspaces.
38 * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define.
39 (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are
41 (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common.
43 2004-12-14 Ian Lance Taylor <ian@wasabisystems.com>
45 * combine.c (combine_validate_cost): Consider cost of
46 undobuf.other_insn rather than always allowing the recombination
49 2004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
51 * pa-host.c (MAP_FAILED): Define if not defined.
52 (pa_gt_pch_use_address): Handle short reads.
54 2004-12-14 Richard Henderson <rth@redhat.com>
57 * config/i386/i386.c (x86_use_bt): New.
58 (ix86_expand_unary_operator): Use MEM_P.
59 (ix86_expand_fp_absneg_operator): New.
60 * config/i386/i386.h (x86_use_bt): Declare.
62 * config/i386/i386-protos.h: Update.
63 * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator.
64 (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise.
65 (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs,
66 negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if,
67 abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs,
68 absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove.
69 (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed,
70 absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New. Merge all
71 neg and abs splitters. Handle DFmode in general regs in 64-bit mode.
72 (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math.
73 (btsq, btrq, btcq): New. Add peepholes as well.
74 (movv4sf_internal splitter): Postpone til after reload.
75 (movv2di_internal splitter): Likewise.
76 * config/i386/predicates.md (const_0_to_63_operand): New.
77 (absneg_operator): New.
79 2004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
81 * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P):
82 Check register number and that reg_renumber is nonzero before using it.
84 2004-12-14 Steve Ellcey <sje@cup.hp.com>
86 * doc/invoke.texi (IA-64 options): Add existing options that
87 weren't already listed.
89 2004-12-14 Jeff Law <law@redhat.com>
91 * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target
92 partition to conflict_graph_merge_regs.
94 2004-12-14 Uttam Pawar <uttamp@us.ibm.com>
95 Janis Johnson <janis187@us.ibm.com>
97 * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors
98 for vector types with invalid component types.
100 2004-12-14 Jakub Jelinek <jakub@redhat.com>
103 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2,
104 expand_builtin_mathfn_3): Avoid using arguments passed to
105 save_expr after that call.
107 * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
108 LOAD_EXTEND_OP is not defined.
109 (fold): Likewise. If flag_syntax_only, don't depend on BITS_PER_WORD.
111 2004-12-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
113 * tree.def, doc/c-tree.texi: Correctly document restrictions on the
116 2004-12-14 Kazu Hirata <kazu@cs.umass.edu>
118 * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1.
120 2004-12-14 Richard Earnshaw <rearnsha@arm.com>
123 arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs)
124 (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling
127 2004-12-14 Diego Novillo <dnovillo@redhat.com>
129 * tree-gimple.c (get_base_address): Update documentation.
131 2004-12-13 Richard Henderson <rth@redhat.com>
134 * passes.c (rest_of_clean_state): Fix computation of
135 preferred_incoming_stack_boundary.
137 2004-12-13 Wolfgang Bangerth <bangerth@dealii.org>
139 * reload.h: Remove struct needs and its only use.
141 2004-12-13 Roger Sayle <roger@eyesopen.com>
143 PR rtl-optimization/18928
144 * simplify_rtx.c (plus_minus_operand_p): New function to encode
145 the test for suitable operands for calls to simplify_plus_minus.
146 Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P.
147 (simplify_binary_operation): Use plus_minus_operand_p.
149 2004-12-13 Alexandre Oliva <aoliva@redhat.com>
152 * tree-inline.c (setup_one_parameter): Don't directly map a
153 parameter to the address of another variable of the same
156 2004-13-12 Steven Bosscher <stevenb@suse.de>
158 * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we
159 can never create autoinc insns after reload.
161 2004-12-13 Jeff Law <law@redhat.com>
162 Kazu Hirata <kazu@cs.umass.edu>
164 * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a
165 PHI argument is set from a PHI_RESULT in the same block and the
166 PHI argument is not the same as the PHI result.
168 2004-12-13 David Edelsohn <edelsohn@gnu.org>
170 * xcoffout.c (xcoffout_declare_function): Always strip storage
173 2004-12-13 Andrew Pinski <pinskia@physics.uc.edu>
176 * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic
177 problem, adding a space at the end of the string before concatenation.
179 2004-12-13 Kazu Hirata <kazu@cs.umass.edu>
181 * c-common.c (fname_as_string): Free namep if we are returning
184 * tree-ssa-dom.c (record_edge_info): Fix memory leak.
186 2004-12-13 Andrew Pinski <pinskia@physics.uc.edu>
188 * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND.
190 2004-12-13 Kazu Hirata <kazu@cs.umass.edu>
192 * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by
193 doing a pointer comparison.
195 * tree-ssa-dom.c (record_equivalences_from_phis): Add a
198 * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment
201 2004-12-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
203 * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to
204 the list rather than replacing the existing value.
206 2004-12-13 Richard Henderson <rth@redhat.com>
208 * cfg.c (dump_flow_info): Don't dump pseudo info after reload.
210 2004-12-13 Richard Henderson <rth@redhat.com>
212 * Makefile.in (insn-preds.o): Depend on REGS_H.
213 * genpreds.c (write_insn_preds_c): Include regs.h.
214 * config/i386/predicates.md (index_register_operand): Use
215 REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P.
217 * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'.
218 * config/i386/i386.md (lea_general_1, lea_general_1_zext,
219 lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext,
220 adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea,
221 ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea,
222 ashlqi3_1_lea): Use 'l' for index register operand.
223 (ashldi3_1_rex64 splitter): Use index_register_operand.
224 (ashlsi3_1 splitter): Be more careful with modes.
226 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
229 * defaults.h (TARGET_USE_JCR_SECTION): New macro.
230 * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
231 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
234 2004-12-13 Uros Bizjak <uros@kss-loka.si>
238 * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd):
239 Fix wrong vec_merge selector bitmask.
241 2004-12-12 Richard Henderson <rth@redhat.com>
244 * reg-stack.c (move_nan_for_stack_reg): New.
245 (subst_stack_regs_pat): Use it.
246 (move_for_stack_reg): Handle source register not live with a nan.
248 2004-12-12 Richard Henderson <rth@redhat.com>
250 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch
251 errors across operations.
253 2004-12-12 Di-an Jan <dianj@freeshell.org>
255 * doc/passes.texi (Pass Manager): Correct list of source files.
257 2004-12-12 Richard Henderson <rth@redhat.com>
259 * expr.c (emit_move_change_mode): New.
260 (emit_move_via_alt_mode): Use it.
262 2004-12-12 Nathanael Nerode <neroden@gcc.gnu.org>
263 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
266 * dojump.c (do_compare_and_jump): Only canonicalize function pointers
267 in a comparison if both sides are function pointers.
269 2004-12-12 Richard Henderson <rth@redhat.com>
272 * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
273 and compare_operator to propagate the input CC mode to the output.
274 * config/i386/predicates.md (compare_operator): New.
276 2004-12-12 Andrew Pinski <pinskia@physics.uc.edu>
279 * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR,
281 (handled_component_p): Likewise.
283 2004-12-12 Kazu Hirata <kazu@cs.umass.edu>
285 * reg-stack.c (convert_regs_2): Free stack.
287 * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix
290 2004-12-12 Daniel Berlin <dberlin@dberlin.org>
292 * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null.
293 * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real
296 2004-12-12 Diego Novillo <dnovillo@redhat.com>
298 * tree-gimple.c (get_base_address): Update documentation.
300 2004-12-12 Kazu Hirata <kazu@cs.umass.edu>
302 * lcm.c (optimize_mode_switching): Free ptr even when mode_set
305 2004-12-12 Roger Sayle <roger@eyesopen.com>
307 * reg-stack.c (change_stack): Avoid placing the new top-of-stack in
308 its correct location during popping if we need to permute the stack
309 afterwards. Attempt to preserve the original stack ordering.
311 2004-12-12 Kazu Hirata <kazu@cs.umass.edu>
313 * lcm.c (optimize_mode_switching): Free insert and delete in
316 2004-12-11 David Edelsohn <edelsohn@gnu.org>
317 Ulrich Weigand <uweigand@de.ibm.com>
320 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
321 constants into all register classes intersecting with FLOAT_REGS
323 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
324 * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
325 choosing register preferences.
326 (movdi_internal64): Same.
328 2004-12-11 Kazu Hirata <kazu@cs.umass.edu>
330 * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX
331 before we release an SSA_NAME.
333 2004-12-11 Roger Sayle <roger@eyesopen.com>
336 * fold-const.c (fold_unwidened_comparison): Use omit_one_operand
337 instead of constant_boolean_node as arg0 may have side-effects.
339 2004-12-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
341 * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH
342 file to anonymous private map.
344 2004-12-10 Roger Sayle <roger@eyesopen.com>
348 * dojump.c (do_jump): When attempting to reverse the effects of
349 fold_single_bit_test, we need to STRIP_NOPS and narrowing type
350 conversions, and handle BIT_XOR_EXPR that's used to invert the
351 sense of the single bit test.
353 2004-12-10 Devang Patel <dpatel@apple.com>
356 * gcc.c (main): Do not break out of loop when error is reported while
357 processing one source file.
359 2004-12-10 Diego Novillo <dnovillo@redhat.com>
361 * tree-into-ssa.c (REWRITE_THIS_STMT): Define.
362 (mark_def_sites): Clear REWRITE_THIS_STMT for statements that
363 don't need any operands rewritten.
364 (rewrite_stmt): Ignore statements that don't need to be
366 (rewrite_operand): Validate that an existing SSA_NAME is
367 identical to the current reaching definition of the operand.
369 2004-12-10 Diego Novillo <dnovillo@redhat.com>
371 * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function.
372 * tree-vectorizer.c (vectorizable_load): Call it.
373 * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare.
374 * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming.
376 2004-12-10 Kazu Hirata <kazu@cs.umass.edu>
378 * regmove.c (combine_stack_adjustments_for_block): Free
379 memlist if it hasn't been freed.
381 2004-12-10 Ziemowit Laski <zlaski@apple.com>
383 * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC
384 pointer field is set before dereferencing it.
386 2004-12-10 Andrew Pinski <pinskia@physics.uc.edu>
389 * tree-cfg.c (remove_bb): Put the moved label at the beginning
392 2004-12-10 Kazu Hirata <kazu@cs.umass.edu>
394 * tree-data-ref.c (free_data_refs): Free each data_reference
397 * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a
398 call to is_gimple_min_invariant if we know the result.
400 2004-12-10 Jeff Law <law@redhat.com>
402 * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
403 redundant test of v_ann->mem_tag_kind.
405 * tree-ssa-operands.c (get_indirect_ref_operands): Remove
406 redundant conditional clearing opf_kill_def.
408 2004-12-10 Richard Sandiford <rsandifo@redhat.com>
410 * config/frv/frv-modes.def: Fix comment typos.
411 (CC_NZ): Define new mode.
412 * config/frv/frv-protos.h (frv_select_cc_mode): Declare.
413 (condexec_intop_cmp_operator): Delete.
414 * config/frv/frv.c (comparison_string): New function.
415 (frv_print_operand): Use it to handle 'c' and 'C'.
416 (relational_operator): Redefine in terms of integer_relational_operator
417 and float_relational_operator.
418 (signed_relational_operator, unsigned_relational_operator): Delete.
419 (integer_relational_operator): New predicate, combining the above.
420 Check the mode of the first operand but leave frv.md to check the rest.
421 (float_relational_operator): Just check the mode of the first operand
422 and leave frv.md to check the rest.
423 (intop_compare_operator): Assume the result is compared with zero
424 in mode CC_NZmode. Allow PLUS and MINUS. Leave frv.md to check
425 the operand predicates.
426 (condexec_intop_cmp_operator): Delete.
427 (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
428 (frv_hard_regno_mode_ok): Handle CC_NZmode.
429 (frv_select_cc_mode): New function.
430 * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
431 (REVERSIBLE_CC_MODE): Include CC_NZmode.
432 (PREDICATE_CODES): Replace entries for signed_relational_operand and
433 unsigned_relational_operator with one for integer_relational_operator.
434 Delete entry for condexec_intop_cmp_operator.
435 * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
436 (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
437 (*combo_intop_compare2, *combo_intop_compare4): Delete.
438 (*combo_intop_compare1): Change mode to CC_NZ.
439 (*combo_intop_compare2): Likewise. Renamed from *combo_intop_compare3.
440 (branch_{un,}signed_true, branch_{un,}signed_false)
441 (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
442 (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
443 (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
444 (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
445 (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
446 (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
447 pattern pairs. Use integer_relational_operator. Remove mode from
450 2004-12-10 Mark Dettinger <dettinge@de.ibm.com>
452 * config/s390/s390.c (struct processor_costs): New fields ml,
454 (s390_rtx_costs): Added the missing handling of multiply & add,
455 square root, and umulsidi.
457 2004-12-10 Kazu Hirata <kazu@cs.umass.edu>
459 * expmed.c (synth_mult): Initialize new_limit.latency before
460 making a recursive call.
462 2004-12-10 Nick Clifton <nickc@redhat.com>
464 * config/mn10300/mn10300.c (legitimate_address_p): Reject address
465 whose index is itself the sum of two other parts.
467 2004-12-10 Alan Modra <amodra@bigpond.net.au>
469 * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink.
471 2004-12-10 Uros Bizjak <uros@kss-loka.si>
473 * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi".
475 2004-12-09 Richard Henderson <rth@redhat.com>
478 * attribs.c (decl_attributes): Use relayout_decl.
479 * c-common.c (handle_mode_attribute): Copy all relevant type
480 parameters from the new underlying integral type.
482 2004-12-09 Richard Henderson <rth@redhat.com>
484 * c-common.c (shorten_compare): Don't special-case min/maxval
487 2004-12-09 Richard Sandiford <rsandifo@redhat.com>
489 * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
490 the request subreg is entirely contained in the requested component.
491 (simplify_gen_subreg): Return null for CONCATs that are rejected
493 * expmed.c (store_bit_field): Create a temporary when changing the
494 value to an integer mode.
496 2004-12-09 David Edelsohn <edelsohn@gnu.org>
498 * real.c (ibm_extended): Correct comment.
500 2004-12-09 Stan Shebs <shebs@apple.com>
502 * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
503 formerly in darwin-tramp.asm.
504 * config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
505 * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
506 * config/rs6000/t-darwin: Add dependencies.
508 2004-12-09 Richard Henderson <rth@redhat.com>
511 * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
512 (test_qi_1, andqi_2): Do not promote to simode.
514 2004-12-09 Andrew Pinski <pinskia@physics.uc.edu>
517 * tree-chrec.c (chrec_convert): Use fold_convert
520 2004-12-09 Matt Rice <ratmice@yahoo.com>
522 PR preprocessor/18102
523 * c-incpath.c (remove_duplicates): Check for construct
526 2004-12-09 Dorit Naishlos <dorit@il.ibm.com>
528 * genopinit.c (vec_realign_store_optab): Initialization removed.
529 * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed.
530 * optabs.h (optab_index): OTI_vec_realign_store Removed.
531 (vec_realign_store_optab): Removed.
532 * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed.
533 * target.h (builtin_mask_for_store): Removed.
534 * tree.def (REALIGN_STORE_EXPR): Removed.
535 * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed.
536 (altivec_builtin_mask_for_store): Removed.
537 (altivec_init_builtins): Removed initialization of
538 altivec_builtin_mask_for_store.
540 * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
541 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New.
543 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
545 * tree.def (SET_TYPE): Remove.
546 (CONSTRUCTOR): Update description.
547 * builtins.c (type_to_class) Remove SET_TYPE case.
548 * dbxout.c (dbxout_type): Likewise.
549 * dwarf2out.c (is_base_type): Likewise.
550 (gen_set_type_die): Remove.
551 (gen_type_die): Remove SET_TYPE case.
552 * expr.c (count_type_elements): Likewise.
553 (mostly_zeroes_p): Likewise.
554 (store_constructor): Likewise.
555 * print_tree.c (print_node): Likewise.
556 * stor-layout.c (layout_type): Likewise.
557 * tree-browser.c (browse_tree): Likewise.
558 * tree-inline.c (remap_type): Likewise.
559 * tree-pretty-print.c (dump_generic_node): Likewise.
560 * tree.c (type_contains_plaeholder_1, type_hash_eq,
561 variably_modified_type_p, initializer_zerop): Likewise.
562 * tree.h (SET_OR_ARRAY_CHECK): Remove.
563 (AGGREGATE_TYPE_P): Remove SET_TYPE check.
564 (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
565 * typeclass.h (enum type_class): Remove set_type_class.
566 * varasm.c (const_hash_1): Remove SET_TYPE case.
567 (compare_constant, copy_constant, output_constant): Likewise.
568 * config/i386/i386.c (classify_argument): Likewise.
569 * config/ia64/ia64.c (hfa_element_mode): Likewise.
570 * config/sparc/sparc.c (sparc_type_code): Likewise.
573 * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case.
575 2004-12-08 Richard Henderson <rth@redhat.com>
577 * config/i386/i386.md: Use FLAGS_REG everywhere.
579 2004-12-08 Eric Christopher <echristo@redhat.com>
581 * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
582 to avoid call to default function.
584 2004-12-08 Zack Weinberg <zack@codesourcery.com>
587 * varasm.c (pending_assemble_externals): New static.
588 (assemble_external_real): Meat of assemble_external split out
589 to this new function.
590 (process_pending_assemble_externals): New function.
591 (assemble_external): Use gcc_assert. If flag_unit_at_a_time
592 is true and the basic test passes, merely cons the decl onto
593 the pending list to be handled later.
594 * tree.h: Declare process_pending_assemble_externals.
595 * cgraphunit.c (cgraph_optimize): Call it.
597 * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL.
599 2004-12-08 Kazu Hirata <kazu@cs.umass.edu>
601 * cfgloopmanip.c (create_preheader): Speed up by "unrolling"
602 and simplifying FOR_EACH_EDGE.
604 2004-12-08 Richard Sandiford <rsandifo@redhat.com>
606 * config/frv/frv.c (frv_sort_insn_group): Always initialize
609 2004-12-08 Nathan Sidwell <nathan@codesourcery.com>
612 * gimplify.c (canonicalize_addr_expr): Cope with array of
614 (gimplify_conversion): Remove redundant checks.
616 * doc/trouble.texi (Non-bugs): Clarify empty loop removal.
618 2004-12-08 Uros Bizjak <uros@kss-loka.si>
620 * config/i386/i386.c (output_387_binary_op,
621 ix86_prepare_fp_compare_args): Fix is_sse condition.
623 2004-12-07 Uros Bizjak <uros@kss-loka.si>
625 * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
628 * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
629 Use EFLAGS_P only when fcomi insn should be used. Fix handling
630 of eflags_p variable. Change alt table accordingly. For non-fcomi
631 compare insn always use trailing fnstsw insn. Fix intmode
632 calculation for ficom insn.
633 (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
634 ix86_free_from_memory when "pushed" is specified.
635 (ix86_expand_branch): Change call to ix86_split_fp_branch.
637 * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
638 Change eflags_p parameter in call to output_fp_compare.
639 (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
640 (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
641 *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf. Change eflags_p
642 parameter in call to output_fp_compare.
643 (*cmpfp_2_u): Remove.
644 (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
645 in call to output_fp_compare.
646 (*ficom_1): Remove insn definition and corresponding define_split.
647 (*cmpfp_si): New insn definition.
648 (*fp_jcc_8): New insn definition. Add new splitters for
649 "memory_operand" and "register_operand".
650 (define_split): Add new parameter in call to ix86_split_fp_branch.
652 config/i386/predicates.md (float_operator): New predicate.
654 2004-12-08 Kazu Hirata <kazu@cs.umass.edu>
656 * c-common.c (verify_tree): Don't check code length if we know
657 we are handling tcc_unary.
658 * print_tree.c (print_node): Remove code to handle RTL
659 appearing as a part of a tree node.
660 * tree-gimple.c (recalculate_side_effects): Rename fro as len.
661 * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
662 (PROCESS_ARG): Don't refer to fro.
663 (build2_stat, build3_stat, build4_stat): Don't compute fro.
665 2004-12-07 Roger Sayle <roger@eyesopen.com>
668 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
669 (expand_mult): Special case powers of two to avoid synth_mult.
670 * loop.c (product_cheap_p): Handle case where expand_mult does
671 require/generate any instructions (i.e. multiplication by zero).
673 2004-12-07 Richard Henderson <rth@redhat.com>
675 * tree-pretty-print.c (dump_array_domain): Split out from
676 dump_generic_node; fix off-by-one error on zero-based array bounds.
677 (dump_generic_node): Use it.
678 (print_declaration): Likewise.
680 2004-12-08 Richard Guenther <richard.guenther@uni-tuebingen.de>
682 * doc/invoke.texi: Adjust default values for
683 large-function-growth and inline-unit-growth to match
684 params.def. Clarify used algorithm.
686 2004-12-07 David Mosberger <davidm@hpl.hp.com>
689 * config/ia64/ia64.c (ia64_assemble_integer): Add support for
690 emitting unaligned pointer-sized integers.
692 2004-12-07 Steven Bosscher <stevenb@suse.de>
695 * c-typeck.c (c_start_case): Set orig_type to error_mark_node
696 when the type of the controlling expression is not a valid type.
698 2004-12-07 Steven Bosscher <stevenb@suse.de>
700 PR tree-optimization/17340
701 * tree-ssa-pre.c (compute_antic): Fix comment.
702 (compute_avail): Do not recurse, instead do a DFS using a stack
704 (execute_pre): Adjust.
706 2004-12-07 Ziemowit Laski <zlaski@apple.com>
708 * c-tree.h (struct lang_type): Rename 'objc_protocols' field
711 2004-12-07 Eric Christopher <echristo@redhat.com>
714 * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define.
716 2004-12-07 Eric Christopher <echristo@redhat.com>
718 * config/mips/mips-protos.h (mips_valid_pointer_mode): Move
720 * config/mips/mips.c: ... here. Make static.
722 2004-12-07 Eric Christopher <echristo@redhat.com>
725 * config/mips/mips.c (mips_vector_mode_supported_p): New function.
726 (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above.
728 2004-12-07 Kazu Hirata <kazu@cs.umass.edu>
730 * c-common.c, expr.c, fold-const.c, print-tree.c,
731 tree-gimple.c, tree-inline.c, tree-pretty-print.c,
732 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of
733 first_rtl_op with TREE_CODE_LENGTH.
734 * tree.c (first_rtl_op): Remove.
735 Replace uses of first_rtl_op with TREE_CODE_LENGTH.
736 * tree.h: Remove the prototype for first_rtl_op.
738 2004-12-07 David Edelsohn <edelsohn@gnu.org>
740 * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
741 Revert 2004-12-01 change.
743 2004-12-06 Ziemowit Laski <zlaski@apple.com>
745 * c-tree.h (struct lang_type): Add 'objc_protocols' field.
747 2004-12-06 DJ Delorie <dj@redhat.com>
749 * reload.c (find_valid_class): Fix logic to test inner mode as well.
750 (push_reload): Pass inner mode.
752 2004-12-06 Eric Christopher <echristo@redhat.com>
754 * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
756 2004-12-06 Aldy Hernandez <aldyh@redhat.com>
758 * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
760 2004-12-06 Zdenek Dvorak <dvorakz@suse.cz>
761 Kazu Hirata <kazu@cs.umass.edu>
763 PR tree-optimization/18601
764 * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
765 (tree_forwarder_block_p): Do not consider blocks that are its own
766 successors forwarders.
767 (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
768 (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
770 * tree-flow.h (bb_ann_d): Remove forwardable.
772 2004-12-06 Kazu Hirata <kazu@cs.umass.edu>
774 * expr.c (expand_expr_real_1): Remove an "if" whose condition
777 2004-12-06 Roger Sayle <roger@eyesopen.com>
779 * c-gimplify.c (gimplify_c_loop): Improve initial implementations
780 for loops whose conditions are known at compile-time.
781 * gimplify.c (append_to_statement_list_1): Remove side_effects
782 parameter, this function should never be called if its false.
783 (append_to_statement_list): Only call append_to_statement_list_1
784 if t is non-NULL tree with side-effects.
785 (append_to_statement_list_force): Likewise, if t is not NULL.
787 2004-12-06 J"orn Rennecke <joern.rennecke@st.com>
789 * bt-load.c (btr_def_s): New member own_end;
790 (add_btr_to_live_range): Add second parameter. Changed caller.
791 (clear_btr_from_live_range): Clear btrs_live_at_end bit
792 for the register its definition basic block if own_end is set.
793 (augment_live_range): Also take btrs_live_at_end into account.
794 (combine_btr_defs): Don't bother with
795 other_def->other_btr_uses_after_use if it pertains to a different
797 (move_btr_def): Set def->other_btr_uses_before_def after
798 calling combine_btr_defs."
800 * bt-load.c (augment_live_range): New argument full_range.
803 * bt-load.c (move_tr_def): Set other_tr_uses_before_def
804 taking new btr assignment into account.
806 2004-12-05 Daniel Berlin <dberlin@dberlin.org>
808 * tree-ssa-alias.c (create_global_var): Use void_type_node,
811 2004-12-05 Kazu Hirata <kazu@cs.umass.edu>
813 * expr.c (expand_expr_real_1): Abort on COND_EXPR of
816 2004-12-05 Richard Henderson <rth@redhat.com>
819 * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
820 (builtin_setjmp_receiver_er_sl_1): Use it.
821 (builtin_setjmp_receiver_er_1): Likewise.
822 (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
823 (builtin_setjmp_receiver): Don't split for explicit relocs until
825 (exception_receiver): Likewise.
827 2004-12-05 Andrew Pinski <pinskia@physics.uc.edu>
829 * mklibgcc.in (vis_hide): Add the prototype for the test.
831 2004-12-05 Roger Sayle <roger@eyesopen.com>
833 * c-typeck.c (c_finish_loop): Improve initial implementations
834 for loops whose conditions are known at compile-time.
836 2004-12-05 Kazu Hirata <kazu@cs.umass.edu>
838 * builtins.c: Fix comment typos.
840 2004-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
843 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
844 the first/last insn is a sequence, return the first/last insn of the
848 * mklibgcc.in (vis_hide): Use implementation instead of declaration
851 2004-12-04 Richard Henderson <rth@redhat.com>
853 * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
854 use ofs in BWX two byte special case.
855 (alpha_expand_unaligned_store): Likewise.
857 2004-12-04 Kazu Hirata <kazu@cs.umass.edu>
859 * gcse.c (gcse_main): Add a comment.
861 2004-12-04 Andrew Pinski <pinskia@physics.uc.edu>
864 * builtins.c (fold_builtin_next_arg): Export and return true
865 when there is a warning or an error.
866 (expand_builtin_va_start): When fold_builtin_next_arg returns true,
868 (expand_builtin): Likewise.
869 * gimplify.c (gimplify_call_expr): Error out if there is not
870 enough arguments to va_start. Call fold_builtin_next_arg also
871 on the second argument.
872 * tree.h (fold_builtin_next_arg): Prototype.
874 2004-12-04 Alan Modra <amodra@bigpond.net.au>
876 * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
877 Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
878 SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
879 * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
880 shlib_dir and shlib_so_name.
881 * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
882 * config/t-libunwind-elf (SHLIB_NAME): Likewise.
883 * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
884 * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
885 * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
886 (SHLIB_LINK): Don't use shlib_dir when creating symlink.
888 2004-12-03 Roger Sayle <roger@eyesopen.com>
890 * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
892 2004-12-03 Richard Henderson <rth@redhat.com>
894 * alias.c (component_uses_parent_alias_set): Rename from
895 can_address_p. Return bool. Reverse the sense of the result.
896 Reinstate the check for alias set zero.
897 (get_alias_set): Update to match.
898 * alias.h (component_uses_parent_alias_set): Likewise.
899 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
900 * expr.c (expand_assignment): Likewise.
901 * expr.h: Remove commented out prototypes that were moved to alias.h.
903 2004-12-03 Richard Henderson <rth@redhat.com>
905 * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
906 (TARGET_CANNOT_FORCE_CONST_MEM): New.
908 2004-12-04 Alan Modra <amodra@bigpond.net.au>
911 * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
913 * sched-ebb.c (schedule_ebb): Likewise.
915 2004-12-03 Andreas Schwab <schwab@suse.de>
917 * Makefile.in (HOSTHOOKS_DEF_H): Define.
918 (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
919 (host-default.o): Likewise.
921 2004-12-03 Eric Christopher <echristo@redhat.com>
923 * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
924 pophi): Add number of arguments to name so that the
925 pattern is recognized as a named pattern.
927 2004-12-03 Janis Johnson <janis187@us.ibm.com>
929 * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
931 2004-12-03 Andreas Tobler <a.tobler@schweiz.ch>
933 * config/rs6000/rs6000.c (rs6000_override_options): Protect
934 darwin_one_byte_bool with #if.
936 2004-12-03 Paolo Bonzini <bonzini@gnu.org>
938 * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
940 2004-12-03 H.J. Lu <hongjiu.lu@intel.com>
942 * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
944 2004-12-03 Richard Sandiford <rsandifo@redhat.com>
946 * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
947 Set libstdcxx_incdir directly.
948 * configure: Regenerate.
950 2004-12-03 Kazu Hirata <kazu@cs.umass.edu>
952 * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
953 "if" whose condition is always true.
955 * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
958 2004-12-02 Stan Shebs <shebs@apple.com>
960 * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
961 Darwin default to one-byte bools.
963 2004-12-02 Richard Henderson <rth@redhat.com>
966 * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
968 2004-12-03 Ben Elliston <bje@au.ibm.com>
970 * doc/cfg.texi (Edges): Update. Document the edge_iterator data
971 type and its methods.
973 2004-12-02 Richard Henderson <rth@redhat.com>
975 * expr.c (write_complex_part): Use simplify_gen_subreg when the
976 submode is at least as large as a word.
977 (read_complex_part): Likewise.
979 2004-12-02 H.J. Lu <hongjiu.lu@intel.com>
982 * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
983 multilib at a time. Don't build the default set. Don't add
984 EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
985 filter for shared libunwind and libgcc.
987 2004-12-02 Roger Sayle <roger@eyesopen.com>
990 * config/i386/i386.c (override_options): If -fomit-frame-pointer has
991 already been specified, ignore the -momit-leaf-frame-pointer option.
993 2004-12-02 H.J. Lu <hongjiu.lu@intel.com>
995 * varasm.c (make_decl_rtl): Add the missing `;'.
997 2004-12-02 Andrew Pinski <pinskia@physics.uc.edu>
999 * tree.c (is_attribute_p): Split out to ..
1000 (is_attribute_with_length_p): Here. Use IDENTIFIER_LENGTH instead
1001 of strlen and compare the string lengths before calling strcmp.
1002 (lookup_attribute): Call is_attribute_with_length_p instead of
1005 2004-12-02 Devang Patel <dpatel@apple.com>
1007 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
1008 * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
1009 * config/i386/darwin.h (CC1_SPEC): Same.
1011 2004-12-02 Richard Henderson <rth@redhat.com>
1013 * optabs.c (lowpart_subreg_maybe_copy): New.
1014 (expand_unop, expand_abs_nojump): Use it.
1016 2004-12-02 J"orn Rennecke <joern.rennecke@st.com>
1018 * sh.md (extv, extzv): Add pattern predicate.
1020 2004-12-02 Kazu Hirata <kazu@cs.umass.edu>
1022 * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
1025 * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
1028 * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
1030 2004-12-02 Jeff Law <law@redhat.com>
1032 * tree-eh.c: Revert yesterday's change.
1034 2004-12-02 Andrew Pinski <pinskia@physics.uc.edu>
1036 * varasm.c (decode_reg_name): Revert change to check for zero
1038 (make_decl_rtl): Make sure that we call decode_reg_name only
1041 2004-12-02 Dorit Naishlos <dorit@il.ibm.com>
1044 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
1045 then and else labels.
1047 2004-12-02 Andreas Schwab <schwab@suse.de>
1049 * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
1050 (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
1051 (STAGE2_FLAGS_TO_PASS): Likewise.
1053 * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
1055 2004-12-02 Richard Sandiford <rsandifo@redhat.com>
1057 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version. Remove
1058 now-redundant AC_SUBSTs.
1059 * aclocal.m4: Include ../config/gcc-version.m4.
1060 * configure: Regenerate.
1062 2004-12-02 Alan Modra <amodra@bigpond.net.au>
1064 * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
1065 #ifdef RELOCATABLE_NEEDS_FIXUP.
1067 2004-12-01 Roger Sayle <roger@eyesopen.com>
1070 * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
1071 Intel assembler syntax by using %A1 instead of %*%1.
1073 2004-12-01 Richard Henderson <rth@redhat.com>
1075 * expr.c (expand_assignment): Handle CONCAT both as a final
1076 destination and as a middle point.
1078 2004-12-01 Jeff Law <law@redhat.com>
1080 * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
1081 (honor_protect_cleanup_actions): Only create save_eptr and
1082 save_filt if they do not already exist.
1083 (lower_eh_constructs): Wipe all knowledge of save_eptr and
1084 save_filt before returning.
1086 2004-12-02 Kazu Hirata <kazu@cs.umass.edu>
1088 * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
1090 2004-12-02 Alan Modra <amodra@bigpond.net.au>
1093 * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
1094 #ifdef RELOCATABLE_NEEDS_FIXUP with if.
1095 * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
1096 of target_flags_explicit.
1097 * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
1098 case. Define as 0 for non-biarch.
1100 2004-12-01 Zack Weinberg <zack@codesourcery.com>
1102 * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
1103 Change temporary file tag from a prefix to an infix.
1105 2004-12-02 Andreas Schwab <schwab@suse.de>
1107 * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
1109 2004-12-01 Andrew Pinski <pinskia@physics.uc.edu>
1113 * tree-ssa-alias.c (init_alias_info): Get statement operands for all
1114 the statements if aliases_computed_p is true.
1116 2004-12-01 Mark Mitchell <mark@codesourcery.com>
1118 * Makefile.in (WERROR): New variable.
1119 (STRICT2_WARN): Use it.
1120 (STAGE2_FLAGS_TO_PASS): Likewise.
1121 * config/i386/x-mingw32 (WERROR): Add -Wno-format.
1123 2004-12-01 Richard Henderson <rth@redhat.com>
1125 * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
1128 2004-12-01 Diego Novillo <dnovillo@redhat.com>
1130 PR tree-optimization/18291
1131 * tree-ssa-copy.c (merge_alias_info): Fix merging of
1132 flow-sensitive alias information. If the new pointer has no
1133 name tag, copy it from the original pointer. Otherwise, make
1134 sure that the pointed-to sets have a common intersection.
1136 2004-12-01 Richard Henderson <rth@redhat.com>
1139 * emit-rtl.c (gen_complex_constant_part): Remove.
1140 (gen_realpart, gen_imagpart): Remove.
1141 * rtl.h (gen_realpart, gen_imagpart): Remove.
1142 * expmed.c (extract_bit_field): Remove CONCAT hack catering to
1143 gen_realpart/gen_imagpart.
1144 * expr.c (write_complex_part, read_complex_part): New.
1145 (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
1146 emit_move_complex_push, emit_move_complex, emit_move_ccmode,
1147 emit_move_multi_word): Split out from ...
1148 (emit_move_insn_1): ... here.
1149 (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
1150 <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
1151 * function.c (assign_parm_setup_reg): Hard-code transformations
1152 instead of using gen_realpart/gen_imagpart.
1154 * expr.c (optimize_bitfield_assignment_op): Split out from ...
1155 (expand_assignment): ... here. Use handled_component_p to gate
1156 get_inner_reference code. Simplify MEM handling. Special case
1157 CONCAT destinations.
1159 * expmed.c (store_bit_field): Use simplify_gen_subreg instead
1160 of gen_rtx_SUBREG directly.
1162 2004-12-01 David Edelsohn <edelsohn@gnu.org>
1163 Nathan Sidwell <nathan@codesourcery.com>
1166 * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
1171 2004-12-01 Nathan Sidwell <nathan@codesourcery.com>
1174 * params.c (set_param_value): Add range check.
1175 * params.def: Add min and max values. Reformat long strings.
1176 * params.h (struct param_info): Add min and max fields.
1177 (enum compiler_param): Adjust DEFPARAM.
1178 * toplev.c (lang_independent_params): Likewise.
1180 2004-12-01 Alan Modra <amodra@bigpond.net.au>
1183 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
1185 2004-12-01 Joseph S. Myers <joseph@codesourcery.com>
1187 * doc/standards.texi: Update for C99 TC2.
1189 2004-11-30 Jeff Law <law@redhat.com>
1191 * sbitmap.c (sbitmap_any_common_bits): New function.
1192 * sbitmap.h (sbitmap_any_common_bits): Prototype.
1193 * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
1194 No longer allocate/free "psp", "pss" sbitmaps.
1195 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
1197 (group_aliases): Similarly.
1199 2004-11-30 Nathan Sidwell <nathan@codesourcery.com>
1201 * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
1202 uninitialized variable.
1204 2004-11-30 Eric Christopher <echristo@redhat.com>
1206 * fold-const.c (fold_widened_comparison): Make sure that we're
1207 passing an INTEGER_TYPE to int_fits_type_p.
1208 (fold): Clean up comment.
1210 2004-11-30 Zack Weinberg <zack@codesourcery.com>
1212 * mklibgcc.in: Correct calculation of libgcc_s_soname and
1213 libunwind_soname. Use $out, not $outS, in commands for
1214 no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above
1215 library build rules, make $libunwind_so and $libgcc_s_so
1216 depend on them in the normal fashion, and filter those objects
1217 out of @shlib_objs@.
1219 2004-11-30 Janis Johnson <janis187@us.ibm.com>
1221 * config/rs6000/altivec.h (vec_step_help): Support const vector types.
1223 2004-11-30 Andrew Pinski <pinskia@physics.uc.edu>
1226 * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
1227 pass right after fold builtins.
1229 2004-11-30 Andreas Krebbel <krebbel1@de.ibm.com>
1231 * config/s390/s390-modes.def: Added cc modes documentation.
1232 * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
1233 s390_expand_addcc): Added cc mode comments.
1234 * config/s390/s390.md: Removed old cc mode documentation.
1236 2004-11-30 Mark Dettinger <dettinge@de.ibm.com>
1238 * config/s390/s390.c (struct processor_costs): New data type.
1239 (s390_cost, z900_cost, z990_cost): New global variables.
1240 (override_options): Initialize s390_cost.
1241 (s390_rtx_costs): Reimplement.
1243 2004-11-29 Daniel Berlin <dberlin@dberlin.org>
1245 Fix PR tree-optimization/18673
1247 * tree-ssa-pre.c: Remove splay-tree.h include.
1248 (bitmap_value_replace_in_set): Fix to add if it does not exist.
1249 (find_or_generate_expression): Remove now-wrong condition.
1250 (create_expression_by_pieces): Fix condition and comment reason
1252 (insert_aux): Fix condition and comment reasons for it.
1253 Factor insertion code from here.
1254 (insert_into_preds_of_block): To here. Fix conditions in factored
1255 function and comment reasons for them.
1257 2004-11-30 Ira Rosen <irar@il.ibm.com>
1260 * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
1261 variable for data_reference when looking for memtag.
1263 2004-11-30 Jakub Jelinek <jakub@redhat.com>
1265 * c-opts.c (check_deps_environment_vars): If spec != NULL, set
1268 2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
1270 * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
1271 tree_low_cst instead of TREE_INT_CST_LOW.
1273 2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
1276 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
1277 decls that are assembled before vectorization takes place.
1278 (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
1280 2004-11-30 Ulrich Weigand <uweigand@de.ibm.com>
1282 * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
1283 if local_alloc modified jumps.
1285 2004-11-30 Alan Modra <amodra@bigpond.net.au>
1287 * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
1289 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
1292 2004-11-30 Zack Weinberg <zack@codesourcery.com>
1294 * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
1295 * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
1297 * mklibgcc.in: Drastic restructure for comprehensibility.
1298 Remove the old hidden-directive hack.
1299 Eliminate support for .txt files in LIB2ADD etc (never used).
1300 Eliminate support for assembly source files in LIB2ADDEH* and
1301 LIBUNWIND (also never used).
1302 Build up dependency lists for libraries incrementally.
1303 If we have SHLIB_LINK, compile each file twice, once for the
1304 static and once for the shared library; also probe for
1305 -fvisibility=hidden in the generated libgcc.mk. If found,
1306 pass that and -DHIDE_EXPORTS to the compilation of every C
1307 source file going into the static library. If found, generate
1308 hidden-directive lists for every assembly source file going
1309 into the static library, but incorporate them with -include
1311 Write comments into generated libgcc.mk to facilitate debugging.
1312 * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
1313 * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
1315 * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
1318 2004-11-29 Richard Henderson <rth@redhat.com>
1320 * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
1321 (handled_component_p): Likewise.
1322 * alias.c (can_address_p): Reformat and simplify. Handle
1323 REAL/IMAGPART_EXPR. Do not disable addressability based on
1325 * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
1326 check for REAL/IMAGPART_EXPR.
1327 * gimplify.c (gimplify_compound_lval): Likewise.
1328 * tree-cfg.c (verify_expr): Likewise.
1329 * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
1330 * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
1331 (convert_local_reference): Likewise.
1332 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
1334 2004-11-30 Alan Modra <amodra@bigpond.net.au>
1336 * expr.c (emit_group_load_1): Don't die on const_int orig_src.
1338 2004-11-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1341 * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
1342 * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
1343 and host_xmake_file using new host configuration files.
1345 2004-11-29 Roger Sayle <roger@eyesopen.com>
1347 * reg-stack.c (change_stack): Improve algorithm used to pop regs
1348 off the stack to maximize ffreep usage and reduce fxch count.
1350 2004-11-30 James A. Morrison <phython@gcc.gnu.org>
1353 * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
1356 2004-11-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1358 * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
1359 REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
1361 2004-11-30 Ben Elliston <bje@au.ibm.com>
1363 * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
1365 2004-11-29 Andrew Pinski <pinskia@physics.uc.edu>
1368 * c-common.c (handle_visibility_attribute): When the type decl
1369 is really a identifier node, warn about being ignored and return.
1371 2004-11-29 Richard Henderson <rth@redhat.com>
1373 * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
1375 2004-11-29 Steven Bosscher <stevenb@suse.de>
1377 * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
1378 Remove CASE_DROPS_THROUGH checks, it is never defined.
1379 * cfglyout.c (fixup_reorder_chain): Likewise.
1380 * cfgrtl.c (rtl_verify_flow_info): Likewise.
1381 * stmt.c (expand_case): Likewise.
1382 * cfgbuild.c (make_edges): Likewise. Also remove force_fallthru,
1384 * system.h (CASE_DROPS_THROUGH): Poison.
1385 * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
1386 * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
1388 * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
1390 2004-11-29 Andrew Pinski <pinskia@physics.uc.edu>
1393 * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
1396 2004-11-29 Diego Novillo <dnovillo@redhat.com>
1398 PR tree-optimization/18712
1399 * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
1400 WORK_STACK by reference.
1401 Call VEC_safe_push instead of VEC_quick_push.
1404 2004-11-29 Daniel Jacobowitz <dan@codesourcery.com>
1407 * Makefile.in (c-lang.o): Update dependencies.
1408 * c-lang.c: Include "c-pragma.h".
1409 (finish_file): Call maybe_apply_pending_pragma_weaks.
1410 * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
1411 * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
1413 2004-11-29 Richard Henderson <rth@redhat.com>
1416 * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
1417 outside the referenced object.
1419 2004-11-29 Kazu Hirata <kazu@cs.umass.edu>
1421 * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
1422 EDGE_PRED instead of PHI_ARG_EDGE.
1423 * tree-ssa-live.c: Likewise.
1424 * tree-ssa-loop-manip.c: Likewise.
1425 * tree-ssa.c: Likewise.
1427 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
1428 simplifying edge manipulation.
1430 * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
1433 * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
1436 * cfg.c (flow_obstack): Remove.
1437 (flow_firstobj): Likewise.
1438 (init_flow): Remove all uses of flow_obstack.
1440 2004-11-29 Alan Modra <amodra@bigpond.net.au>
1442 * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
1445 2004-11-29 Nathan Sidwell <nathan@codesourcery.com>
1447 * opts.c (decode_options): Do not set max-inline-insns-rtl.
1448 (common_handle_option): Likewise.
1449 * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
1450 * params.h (MAX_INLINE_INSNS_RTL): Remove.
1451 * doc/invoke.texi (max-inline-insns-rtl): Remove.
1453 2004-11-29 Alan Modra <amodra@bigpond.net.au>
1456 * varasm.c (default_elf_select_section_1): Pass decl to named_section.
1458 2004-11-28 Andrew Pinski <pinskia@physics.uc.edu>
1461 * gimplify.c (gimplify_asm_expr): If the length of an output operand
1462 is zero, do not process it, just let it go through.
1464 2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1465 Diego Novillo <dnovillo@redhat.com>
1467 PR/18662, also backported from tree-cleanup-branch.
1468 * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
1469 always call maybe_clean_eh_stmt and modify_stmt.
1471 2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1474 * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
1475 Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
1476 * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
1477 add an inverse VIEW_CONVERT_EXPR to const_val.
1480 * tree-nested.c (check_for_nested_with_variably_modified): New.
1481 (create_nesting_tree): Call it.
1483 * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
1484 special code for assigning to non-pointer.
1485 (is_escape_site): If RHS is a conversion between pointer and integer
1486 types, this is an escape site.
1488 * gcse.c (insert_store): Error if try to insert store on abnormal edge.
1489 (store_motion): Don't move store if any edge we'd want to move it
1492 * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
1493 non-zero lower bound.
1495 * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
1497 2004-11-28 Matt Kraai <kraai@alumni.cmu.edu>
1500 * opts.c (find_opt): Require that the input match a switch exactly
1501 or that the switch take a joined option to be interpreted as a
1502 match for another language.
1504 2004-11-28 Andrew Pinski <pinskia@physics.uc.edu>
1506 * timevar.def (TV_TREE_REDPHI): New timevar.
1507 * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
1509 2004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
1511 PR preprocessor/17651
1512 * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
1513 flag_no_line_commands.
1514 * c-ppoutput.c (pp_file_change): Remove now-redundant check of
1517 2004-11-28 Theodore A. Roth <troth@openavr.org>
1519 * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
1520 warning if the function name does not begin with "__vector" and the
1521 function has either the 'signal' or 'interrupt' attribute.
1523 2004-11-28 Theodore A. Roth <troth@openavr.org>
1525 * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
1526 atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
1527 atmega325, atmega3250, atmega645 and atmega6450.
1528 * config/avr/avr.h (LINK_SPEC): Ditto.
1530 (LIBGCC_SPEC): Ditto.
1531 (CRT_BINUTILS_SPECS): Ditto.
1532 * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
1534 2004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
1536 PR preprocessor/17610
1537 * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
1539 2004-11-28 Jeff Law <law@redhat.com>
1541 * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
1542 (pass_maybe_create_global_var): New.
1543 * tree-pass.h (pass_maybe_create_global_var): Declare.
1544 * tree-optimize.c (init_tree_optimization_passes): Link in
1545 pass_maybe_create_global_var.
1547 2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1549 * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
1551 2004-11-28 Ulrich Weigand <uweigand@de.ibm.com>
1553 PR rtl-optimization/18420
1554 * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
1556 2004-11-28 Steven Bosscher <stevenb@suse.de>
1557 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1559 * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
1560 * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
1561 that the case is in range, to make sure the casesi insn is always
1562 in range and never falls through.
1563 (casesi1): Add comment to explain why casesi never falls through.
1564 Remove the unnamed special case casesi pattern.
1566 2004-11-28 Hans-Peter Nilsson <hp@bitrange.com>
1569 * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
1570 "*movdicc_real". Only match reversible comparisons.
1571 ("*movdicc_real_nonreversible"): New pattern, split from
1572 "*movdicc_real". Match only nonreversible comparisons. Exclude
1573 reversed alternatives.
1574 ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
1577 2004-11-27 Richard Henderson <rth@redhat.com>
1579 * config/ia64/ia64.md: Move all define_predicate's ...
1580 * config/ia64/predicates.md: ... here. New file.
1582 2004-11-27 Per Bothner <per@bothner.com>
1585 Re-applied following, with two modifications: add a URL for the
1586 fixed cctools; only exit if $build = $target.
1588 2004-10-18 Kelley Cook <kcook@gcc.gnu.org>
1589 * configure.ac (powerpc-*-darwin*): Require assembler to support
1591 * configure: Regenerate.
1593 2004-11-28 David Edelsohn <edelsohn@gnu.org>
1596 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
1597 EQ, GTU, and LTU costs. Add costs for GT, LT, and UNORDERED.
1598 Distinguish between SImode and DImode CONST_INT.
1600 2004-11-28 Andreas Fischer <a_fisch@gmx.de>
1601 Alan Modra <amodra@bigpond.net.au>
1604 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
1605 functions, strings and thread-local vars.
1607 2004-11-28 Alan Modra <amodra@bigpond.net.au>
1609 * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
1610 * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
1611 * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
1612 to allow non-darwin ABIs to optimize away code.
1613 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
1615 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
1617 * tree.c (operand_equal_for_phi_arg_p): New.
1618 * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
1619 * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
1620 Replace operand_equal_p with operand_for_phi_arg_p
1623 * bb-reorder.c (find_traces_1_round): Speed up by using
1624 EDGE_COUNT instead of FOR_EACH_EDGE.
1626 * fold-const.c, config/i386/linux64.h: Fix comment typos.
1628 2004-11-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1631 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
1633 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
1635 * config/i386/linux.h: Fix a comment typo.
1636 * doc/extend.texi: Fix a typo.
1638 2004-11-27 Jeff Law <law@redhat.com>
1640 * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
1643 2004-11-27 Jakub Jelinek <jakub@redhat.com>
1645 * config/i386/linux64.h (REG_NAME): Define.
1647 2004-11-27 Jakub Jelinek <jakub@redhat.com>
1649 * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
1650 unsigned and type signed, build ABS_EXPR with signed_type (ctype)
1651 and only afterwards convert to ctype.
1653 2004-11-27 Richard Sandiford <rsandifo@redhat.com>
1655 * config/mips/mips-protos.h (function_arg_boundary): Declare.
1656 * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
1657 (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
1658 (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
1659 * config/mips/mips.c (function_arg_boundary): New function.
1660 Impose a maximum alignment of STACK_BOUNDARY.
1662 2004-11-27 Jakub Jelinek <jakub@redhat.com>
1664 PR rtl-optimization/17825
1665 * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
1668 2004-11-27 Alan Modra <amodra@bigpond.net.au>
1671 * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
1672 from rs6000_default_long_calls for libcalls.
1674 2004-11-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1676 * expmed.c (extract_bit_field): When extracting from non-integer mode,
1677 force a SUBREG into a register because we may be taking a further
1680 2004-11-27 Di-an Jan <dianj@freeshell.org>
1682 * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
1684 2004-11-26 Robert Millan <robertmh@gnu.org>
1686 Changes for k*bsd-gnu support.
1687 * config/i386/linux.h: Define REG_NAME to allow overriding of
1688 register names in sc structure.
1689 * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
1691 * config.gcc: Detect x86_64-k*bsd-gnu systems.
1693 2004-11-26 Jeff Law <law@redhat.com>
1695 * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
1696 retrieve annotations or pointer info before it's necessary.
1697 Reorder tests for early continue of the loop. Manually CSE
1700 2004-11-26 Eric Botcazou <ebotcazou@libertysurf.fr>
1702 * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
1703 * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
1704 (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
1705 * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
1706 to a fixed reg if the source is the Return Address register.
1707 Implement new Rule 15.
1708 * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
1709 * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
1710 sparc_dwarf_handle_frame_unspec.
1711 (gen_save_register_window): New function.
1712 (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
1713 (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
1714 (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
1715 Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
1716 (sparc_asm_function_prologue): Do not emit call frame debugging info.
1717 (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
1718 (sparc_expand_epilogue): Likewise.
1719 (sparc_dwarf_handle_frame_unspec): New function.
1720 * config/sparc/sparc.md (save_register_window): Remove.
1721 (save_register_windowdi): Rewrite modelled on the callframe debug info.
1722 (save_register_windowsi): Likewise.
1724 2004-11-26 Alexandre Oliva <aoliva@redhat.com>
1726 * config/frv/frv-protos.h: Guard ifcvt functions declarations with
1727 BB_HEAD, not BLOCK_HEAD.
1729 2004-11-26 Alexandre Oliva <aoliva@redhat.com>
1731 * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
1732 scratch insns that set a register live at the join point.
1734 2004-11-26 Kazu Hirata <kazu@cs.umass.edu>
1736 * cse.c, tree-ssa-operands.c: Fix comment typos.
1738 * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
1740 2004-11-26 James A. Morrison <phython@gcc.gnu.org>
1743 * doc/extend.texi (SPARC VIS Built-in Functions): New section.
1745 2004-11-26 Kazu Hirata <kazu@cs.umass.edu>
1747 * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
1748 check that tests if all edges go to the same destination.
1750 * bitmap.c (bitmap_find_bit): Speed up by traversing from
1751 head->first if that seems profitable.
1753 2004-11-25 Jeff Law <law@redhat.com>
1755 * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
1756 * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
1757 (pass_loop_done): Use TV_TREE_LOOP_FINI.
1759 2004-11-26 Alan Modra <amodra@bigpond.net.au>
1761 PR rtl-optimization/16356
1762 * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
1763 separate output register and one less jump. Enable for powerpc64.
1764 (floatdisf2): Adjust for above.
1766 2004-11-25 Bob Wilson <bob.wilson@acm.org>
1768 * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
1769 (GCC_DRIVER_HOST_INITIALIZATION): Define.
1771 2004-11-25 Andrew Pinski <pinskia@physics.uc.edu>
1774 * tree-complex.c (vector_inner_type): New variable moved from
1775 build_word_mode_vector_type.
1776 (vector_last_type): Likewise.
1777 (vector_last_nunits): Likewise.
1778 (build_word_mode_vector_type): Use the new variables.
1779 * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
1780 (GTFILES): Add tree-complex.c.
1781 (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
1783 2004-11-25 Bob Wilson <bob.wilson@acm.org>
1785 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
1786 __XTENSA_WINDOWED_ABI__.
1788 2004-11-25 Richard Henderson <rth@redhat.com>
1790 * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument. Save
1791 args_size adjustments for calls even with cfa as stack pointer.
1792 Search calls for stack adjustments after the insn is issued.
1793 (dwarf2out_frame_debug): Add after_p argument; pass it on.
1794 * dwarf2out.h (dwarf2out_frame_debug): Update to match.
1795 * final.c (final_start_function, final_scan_insn): Likewise.
1797 2004-11-25 Richard Henderson <rth@redhat.com>
1800 * reload1.c (set_initial_eh_label_offset): New.
1801 (set_initial_label_offsets): Use it.
1803 2004-11-25 Kaz Kojima <kkojima@gcc.gnu.org>
1805 * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
1806 before calling life_analysis and release them after.
1808 2004-11-25 Kazu Hirata <kazu@cs.umass.edu>
1810 * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
1813 2004-11-25 Andrew Pinski <pinskia@physics.uc.edu>
1815 * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
1816 BITMAP_OBSTACK_ALLOC.
1817 (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
1819 2004-11-25 Andrew Pinski <pinskia@physics.uc.edu>
1821 parts of PR rtl-opt/18463, rtl-opt/17647
1822 * cse.c (canon_for_address): New function.
1823 (find_best_addr): Call canon_for_address before getting the
1824 address's cost when checking if we should take that address.
1826 2004-11-25 Kazu Hirata <kazu@cs.umass.edu>
1828 * tree-phinodes.c (add_phi_arg): Take "tree" instead of
1829 "tree *" as the first argument.
1830 * tree-flow.h: Update the prototype of add_phi_arg.
1831 * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
1832 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
1833 tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
1834 tree-vectorizer.c: Update all call sites of add_phi_arg.
1836 2004-11-25 Nathan Sidwell <nathan@codesourcery.com>
1838 * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1839 * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
1840 (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
1841 (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
1843 2004-11-25 Andrew MacLeod <amacleod@redhat.com>
1845 PR tree-optimization/18587
1846 * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
1847 call clobbered caches as invalid.
1848 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New. Flag
1849 indicating whether the call clobbered operand cache is valid.
1850 (ssa_ro_call_cache_valid): New. Flag indicating whether the
1851 pure/const call operand cache is valid.
1852 (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New. Cached
1853 list of operands for cached call virtual operands.
1854 (clobbered_aliased_loads, clobbered_aliased_stores,
1855 ro_call_aliased_load): New. flags caching whether alias bits are
1856 to be set in call stmt's.
1857 (fini_ssa_operands): Remove call operand caches if present.
1858 (get_expr_operands, get_asm_expr_operands,
1859 get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
1860 (get_call_expr_operands): Add call clobbered variables first.
1861 (add_stmt_operand): Take stmt annotation rather than stmt as a param.
1862 (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
1863 if it is valid, otherise fill the cache.
1864 * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
1865 * tree-flow.h (struct var_ann_d): Add in_vuse_list and
1866 in_v_may_def_list bits.
1867 * tree-ssa-operands.c (cleanup_v_may_defs): New. Clear the
1868 in_list bits for the v_may_def elements and empty the operand
1870 (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
1871 VUSES by checking the in_v_may_def_list bit.
1872 (append_v_may_def, append_vuse): Use the in_list bit rather than
1873 scanning the array for duplicates.
1875 2004-11-25 Ulrich Weigand <uweigand@de.ibm.com>
1877 * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
1878 displacements are not short.
1880 2004-11-25 Ulrich Weigand <uweigand@de.ibm.com>
1882 * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
1885 2004-11-25 Mark Mitchell <mark@codesourcery.com>
1888 * c-common.h (lvalue_use): Move here from c-ctypeck.c.
1889 (lvalue_or_else): Declare.
1890 * c-common.c (lvalue_or_else): Move here from c-typeck.c.
1891 * c-typeck.c (lvalue_use): Remove.
1892 (lvalue_or_else): Remove.
1895 * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
1896 unemitted variables with static storage duration.
1898 2004-11-25 Gerald Pfeifer <gerald@pfeifer.com>
1900 * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
1903 2004-11-25 Nathan Sidwell <nathan@codesourcery.com>
1905 * config/rs6000/altivec.md (VIshort): New mode macro.
1906 (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
1908 (altivec_vaddu<VI_char>s): ... this.
1909 (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
1911 (altivec_vadds<VI_char>s): ... this.
1912 (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
1914 (altivec_vsubu<VI_char>s): ... this.
1915 (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
1917 (altivec_vsubs<VI_char>s): ... this.
1918 (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
1920 (altivec_vavgu<VI_char>): ... this.
1921 (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
1923 (altivec_vavgs<VI_char>): ... this.
1924 (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
1925 (altivec_vmsumu<VI_char>m): ... this.
1926 (altivec_vmsummbm, altivec_vmsummhm): Replace
1928 (altivec_vmsumm<VI_char>m): ... this.
1929 (altivec_vandc): Remove.
1930 (*andc<mode>3): Renamed to ...
1931 (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
1932 (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
1934 (altivec_vrl<VI_char>): ... this.
1935 (altivec_vslb, altivec_vslh, altivec_vslw): Replace
1937 (altivec_vsl<VI_char>): ... this.
1938 (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
1940 (altivec_vsr<VI_char>): ... this.
1941 (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
1943 (altivec_vsra<VI_char>): ... this.
1944 (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
1945 (altivec_vsum4s<VI_char>s): ... this.
1946 (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
1948 (altivec_vperm_<mode>): ... this.
1949 (altivec_vsel_4sf): Rename to ...
1950 (altivec_vsel_v4sf): ... here.
1951 (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
1953 (altivec_vsel_<mode>): ... this.
1954 (altivec_vsldoi_4si, altivec_vsldoi_8hi,
1955 altivec_vsldoi_16qi): Rename to ...
1956 (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
1957 altivec_vsldoi_v16qi): ... here.
1958 (altivec_vsldoi_4sf): Rename to ...
1959 (altivec_vsldoi_v4sf): ... here.
1960 (altivec_predicate_v4si, altivec_predicate_v8hi,
1961 altivec_predicate_v16qi): Replace with ...
1962 (altivec_predicate_<mode>): ... this.
1963 (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
1965 (altivec_lve<VI_char>x): ... this.
1966 (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
1968 (altivec_stve<VI_char>x): ... this.
1969 (absv16qi2, absv8hi2, absv4si2): Replace
1971 (abs<mode>2): ... this.
1972 (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
1974 (altivec_abss_<mode>): ... this.
1975 (vec_realign_load_v16qi, vec_realign_load_v8hi,
1976 vec_realign_load_v4si): Replace with ...
1977 (vec_realign_load_<mode>): ... this.
1978 * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
1980 (rs6000_expand_ternop_builtin): Likewise.
1982 2004-11-25 Andrew Haley <aph@redhat.com>
1984 * gcc.c (process_command): Don't supply -v to linker.
1986 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
1988 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
1989 instead of `%s' in diagnostic.
1991 2004-11-25 Nathan Sidwell <nathan@codesourcery.com>
1993 * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
1994 (FREE_REG_SET): Adjust.
1995 * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
1996 * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
1997 (BITMAP_ALLOC): ... here.
1998 (BITMAP_OBSTACK_FREE): Rename to ...
1999 (BITMAP_FREE): Don't check for NULL bitmap here.
2000 * tree-ssa-pre.c (value_insert_into_set_bitmap,
2001 bitmap_set_new): Use new names.
2003 * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
2004 * df.c (df_free): Likewise.
2005 * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
2006 * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
2008 * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
2009 (ALLOC_REG_SET): ... here.
2010 (FREE_REG_SET): Adjust.
2011 (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
2012 * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
2013 * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
2014 * cfgrtl.c (rtl_split_block, rtl_split_edge,
2015 safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
2016 * flow.c (update_life_info, calculate_global_regs_live,
2017 allocate_bb_life_data, init_propagate_block_info): Adjust.
2018 * global.c (build_insn_chain): Adjust.
2019 * ifcvt.c (dead_or_predicable): Adjust.
2020 * loop-iv.c (simplify_using_initial_values): Adjust.
2021 * recog.c (peephole2_optimize): Adjust.
2022 * sched-deps.c (init_deps_global): Adjust.
2024 2004-11-25 Ralf Corsepius <ralf.corsepius@rtems.org>
2026 * config.gcc (avr-*-rtems*): Fix typo.
2028 2004-11-25 J"orn Rennecke <joern.rennecke@st.com>
2030 * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
2032 2004-11-24 Jeff Law <law@redhat.com>
2034 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
2035 the number of queries to random elements in the ai->written_vars
2038 2004-11-24 Roger Sayle <roger@eyesopen.com>
2040 * config/i386/i386.c (override_options): Disable x87 fancy math
2041 intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
2043 2004-11-24 Roger Sayle <roger@eyesopen.com>
2045 * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
2046 system header conflict on AIX 5.2.
2047 * configure: Regenerate.
2049 2004-11-24 Kazu Hirata <kazu@cs.umass.edu>
2051 * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
2052 instead of calling phi_arg_from_edge.
2054 * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
2057 2004-11-24 Ben Elliston <bje@au.ibm.com>
2059 * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
2060 * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
2061 * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
2064 2004-11-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2066 * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
2068 * tree-inline.c (copy_body_r): Explicitly copy a constant if the
2069 type will be remapped.
2071 2004-11-24 Steven Bosscher <stevenb@suse.de>
2073 * c-opts.c (c_common_post_options): Don't clear
2074 flag_inline_functions.
2075 * dojump.c (clear_pending_stack_adjust): Remove check on
2076 flag_inline_functions, it's always true.
2077 * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
2078 that can never trigger.
2079 * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
2080 flag_inline_trees, now that flag_inline_functions is never
2082 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
2083 flag_inline_functions at optimization levels greater than
2084 or equal to 3. This is already done by default.
2086 2004-11-24 Kazu Hirata <kazu@cs.umass.edu>
2088 * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
2089 instead to find the PHI argument. Do not take I as an
2091 (eliminate_phi): Adjust the call to eliminate_build. Do not
2092 take I as an argument.
2093 (rewrite_trees): Adjust the call to eliminate_phi.
2095 2004-11-24 Richard Sandiford <rsandifo@redhat.com>
2097 * optabs.h (force_expand_binop): Declare.
2098 * optabs.c (force_expand_binop): Export.
2099 * stmt.c (shift_return_value): Delete.
2100 (expand_return): Don't call it.
2101 * expr.h (shift_return_value): Declare.
2102 * calls.c (shift_returned_value): Delete in favor of...
2103 (shift_return_value): ...this new function. Leave the caller to check
2104 for non-BLKmode values passed in the msb of a register. Take said mode
2105 and a shift direction as argument. Operate on the hard function value,
2107 (expand_call): Adjust accordingly.
2108 * function.c (expand_function_start): If a non-BLKmode return value
2109 is padded at the last significant end of the return register, use the
2110 return value's natural mode for the DECL_RESULT, not the mode of the
2112 (expand_function_end): Shift the same sort of return values left by
2113 the appropriate amount.
2115 2004-11-24 Matt Austern <austern@apple.com>
2117 * recog.c (recog_memoized_1): Remove.
2118 * recog.h (recog_memoized_1): Remove declaration.
2119 (recog_memoized): Change from macro to inline function.
2121 2004-11-24 Devang Patel <dpatel@apple.com>
2124 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
2125 * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
2127 2004-11-24 Devang Patel <dpatel@apple.com>
2129 * gcc.c (process_command): Supply -v to linker.
2131 2004-11-24 David Edelsohn <edelsohn@gnu.org>
2132 Paolo Bonzini <bonzini@gnu.org>
2134 * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
2135 vector modes without ALTIVEC_ABI. Use GCC vector instead of
2137 (rs6000_pass_by_reference): Split conditional into pieces. Use
2138 GCC vector instead of synthetic vector.
2140 2004-11-24 Aldy Hernandez <aldyh@redhat.com>
2142 * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
2143 thread-local variable is invariant.
2145 2004-11-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2147 * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
2148 Handle TYPE_REF_CAN_ALIAS_ALL.
2149 (print_declaration): Print array dimensions like dump_generic_node.
2151 * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
2152 ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
2154 2004-11-24 Nathan Sidwell <nathan@codesourcery.com>
2156 * bitmap.c (INLINE): Do not define.
2157 (bitmap_elem_to_freelist, bitmap_element_free,
2158 bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
2159 bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
2161 2004-11-24 Kazu Hirata <kazu@cs.umass.edu>
2163 * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
2164 find the index of a PHI argument. Use e->dest_idx instead.
2165 Replace hint with index.
2167 * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
2170 2004-11-24 Diego Novillo <dnovillo@redhat.com>
2172 * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
2173 regarding PT_MALLOC.
2175 2004-11-24 Joseph Myers <joseph@codesourcery.com>
2177 * config/i386/i386.c (optimization_options): Use
2178 SUBTARGET_OPTIMIZATION_OPTIONS.
2179 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
2180 (TARGET_SUBTARGET_DEFAULT): Don't include
2181 MASK_OMIT_LEAF_FRAME_POINTER.
2183 2004-11-24 Mark Mitchell <mark@codesourcery.com>
2185 * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
2188 2004-11-24 Joseph Myers <joseph@codesourcery.com>
2190 * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
2191 Use amd64 instead of 64.
2193 2004-11-24 Mark Mitchell <mark@codesourcery.com>
2194 Joseph Myers <joseph@codesourcery.com>
2196 * crtstuff.c (IN_LIBGCC2): Define it.
2197 (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
2198 instead of HAVE_LD_RO_RW_SECTION_MIXING.
2199 * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
2200 * dwarf2out.c (named_section_eh_frame_section): Check
2201 EH_TABLES_CAN_BE_READ_ONLY.
2202 * except.c (default_exception_section): Likewise.
2203 * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
2204 * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.
2206 2004-11-24 Kazu Hirata <kazu@cs.umass.edu>
2208 * tree-ssa-pre.c (phi_translate): Use find_edge to find the
2209 index of a PHI argument.
2211 * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use
2212 find_edge to find the index of a PHI argument.
2214 2004-11-24 Steven Bosscher <stevenb@suse.de>
2216 * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR
2217 and LABELED_BLOCK_EXPR.
2218 * gimplify.c (gimplify_labeled_block_expr): Remove.
2219 (gimplify_exit_block_expr): Remove.
2220 (gimplify_expr): Don't call them.
2221 * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR
2222 and LABELED_BLOCK_EXPR.
2223 (estimate_num_insns_1): Likewise.
2224 (walk_tree): Likewise.
2225 * tree-pretty-print.c (dump_generic_node): Don't handle
2226 EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR.
2227 * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def.
2228 (LABELED_BLOCK_EXPR): Likewise.
2229 * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h.
2230 (LABELED_BLOCK_BODY): Likewise.
2231 (EXIT_BLOCK_LABELED_BLOCK): Likewise.
2232 (EXIT_BLOCK_RETURN): Removed.
2234 2004-11-24 Steven Bosscher <stevenb@suse.de>
2236 * cfgrtl.c (rtl_delete_block): Fix comment.
2237 * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG
2238 or BLOCK_END insn notes.
2239 * jump.c (squeeze_notes): Likewise.
2240 * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and
2241 EH_REGION_END notes, we never have them to begin with.
2242 * sched-deps.c (sched_analyze_insn): When updating loop notes,
2243 verify that we have indeed only recorded loop notes.
2244 (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes.
2245 Only record loop notes.
2247 * cfgexpand.c (tree_expand_cfg): Fix comment.
2249 * passes.c (rest_of_compilation): Don't do a second call to
2250 convert_from_eh_region_ranges from here, it's already called
2252 * except.c (resolve_fixup_regions): Remove.
2253 (remove_fixup_regions): Remove.
2254 (convert_from_eh_region_ranges_1): Remove.
2255 (convert_from_eh_region_ranges): Remove the case where EH is
2256 not already lowered at the tree level. We always lower there.
2258 2004-11-24 Paolo Bonzini <bonzini@gnu.org>
2261 * tree.c (make_vector_type): Move qualifiers to the vector type,
2262 use the inner type's main variant and build a main variant for
2263 the vector type if necessary.
2264 (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS.
2266 2004-11-24 Eric Botcazou <ebotcazou@libertysurf.fr>
2268 * target.h (late_rtl_prologue_epilogue): Remove.
2269 * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
2270 * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE.
2271 * passes.c (rest_of_handle_prologue_epilogue): Remove and move
2272 remaining bits to...
2273 (rest_of_handle_flow2): ...here.
2274 (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue.
2275 * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove.
2277 2004-11-23 Mark Mitchell <mark@codesourcery.com>
2279 * hwint.h (HOST_LONG_LONG_FORMAT): New macro. Use it throughout.
2280 * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define.
2281 * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document.
2283 2004-11-24 Daniel Jacobowitz <dan@codesourcery.com>
2285 * config/i386/i386.c (override_options): Move
2286 SUBTARGET_OVERRIDE_OPTIONS before defaulting
2287 flag_omit_frame_pointer.
2289 2004-11-23 Richard Henderson <rth@redhat.com>
2291 * rtl.h (validate_subreg): Declare.
2292 * emit-rtl.c (validate_subreg): New.
2293 (gen_rtx_SUBREG): Use it.
2294 * simplify-rtx.c (simplify_subreg): Likewise.
2295 (simplify_gen_subreg): Likewise. Remove duplicate asserts.
2296 * expr.c (emit_move_insn_1): Tidy complex move code. Use memory
2297 fallback whenever gen_realpart/gen_imagpart would not be able to
2300 2004-11-23 Richard Henderson <rth@redhat.com>
2302 * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of
2303 hard-coding avoiding calls to gen_rtx_SUBREG. Split complex return
2306 2004-11-23 Diego Novillo <dnovillo@redhat.com>
2308 PR tree-optimization/18618
2309 * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare.
2310 (insert_phi_nodes_for): Change third argument to VEC(basic_block).
2311 * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap).
2313 (stmts_to_rescan): Likewise.
2314 (const_and_copies_stack): Likewise.
2315 (nonzero_vars_stack): Likewise.
2316 (vrp_variables_stack): Likewise.
2318 2004-11-23 Richard Henderson <rth@redhat.com>
2320 * cse.c (record_jump_cond_subreg): New.
2321 (record_jump_cond): Use it instead of gen_lowpart.
2323 2004-11-23 Daniel Jacobowitz <dan@codesourcery.com>
2324 Joseph Myers <joseph@codesourcery.com>
2326 * config/sol2-c.c (solaris_register_pragmas): Use
2327 c_register_pragma_with_expansion.
2328 * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define.
2329 * c-pragma.c (c_register_pragma): Update call to
2330 cpp_register_pragma.
2331 (c_register_pragma_with_expansion): New function.
2332 (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION.
2333 * c-pragma.h (c_register_pragma_with_expansion): New prototype.
2334 * doc/extend.texi (Solaris Pragmas): Mention macro expansion for
2336 * doc/tm.texi (c_register_pragma_with_expansion,
2337 HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document.
2339 2004-11-23 Richard Henderson <rth@redhat.com>
2341 * combine.c (gen_lowpart_for_combine): Factor out mode of x as well
2342 as mode sizes into local temporaries. Unify failure path.
2344 2004-11-23 Richard Henderson <rth@redhat.com>
2346 * emit-rtl.c, rtl.h (subreg_hard_regno): Remove.
2347 * caller-save.c (mark_set_regs): Use subreg_regno instead.
2348 * final.c (alter_subreg): Likewise.
2349 * local-alloc.c (reg_is_born): Likewise.
2351 2004-11-23 Richard Henderson <rth@redhat.com>
2353 * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly
2354 instead of using a SUBREG temporary.
2356 2004-11-23 Kazu Hirata <kazu@cs.umass.edu>
2358 * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering
2361 2004-11-23 Zack Weinberg <zack@codesourcery.com>
2363 * function.h (struct function): Remove calls_longjmp.
2364 (current_function_calls_longjmp): Delete.
2365 * tree.h (ECF_LONGJMP): Delete.
2366 (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN)
2367 (ECF_LIBCALL_BLOCK): Everybody slide down one.
2368 (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments.
2369 * builtins.c (expand_builtin_longjmp): Don't set
2370 current_function_calls_longjmp.
2371 * calls.c (special_function_p): Mark longjmp and siglongjmp
2372 with ECF_NORETURN, not ECF_LONGJMP.
2373 (emit_call_1, expand_call, emit_library_call_value_1):
2374 Don't check for ECF_LONGJMP.
2375 * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt)
2376 (need_fake_edge_p): Likewise.
2378 * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP.
2379 * system.h: Poison NON_SAVING_SETJMP.
2380 * function.c (use_register_for_decl)
2381 * gcse.c (compute_hash_table_work, compute_store_table)
2382 * postreload-gcse.c (record_opr_changes)
2383 * reload.c (find_equiv_reg)
2384 * reload1.c (reload)
2385 * config/i386/i386.c (ix86_can_use_return_insn_p):
2386 Remove code conditional on NON_SAVING_SETJMP.
2387 * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP.
2389 * config/i386/sysv3.h: Delete file.
2390 * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete.
2392 2004-11-23 Dorit Naishlos <dorit@il.ibm.com>
2394 * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if
2395 the vectorization factor is greater than the iteration count.
2396 (vect_gen_niters_for_prolog_loop): No need to calculate min if the
2397 iteration count is known.
2399 (vect_build_symbol_bound): Removed. Its functionality moved to
2400 vect_generate_tmps_on_preheader.
2401 (vect_generate_tmps_on_preheader): Moved content of
2402 vect_build_symbol_bound here instead of calling it. Changed some
2405 (vect_build_loop_niters): We don't expect a new_bb to be generated -
2407 (vect_gen_niters_for_prolog_loop): Likewise.
2408 (vect_gen_niters_for_prolog_loo): Likewise.
2410 (slpeel_make_loop_iterate_ntimes): Use buildN instead of build.
2411 (slpeel_add_loop_guard): Likewise.
2412 (slpeel_tree_peel_loop_to_edge): Likewise.
2413 (vect_do_peeling_for_alignment): Likewise.
2415 (vect_get_first_index): Missing space.
2417 2004-11-23 Ulrich Weigand <uweigand@de.ibm.com>
2419 * config/s390/s390.md ("*iordi3"): Mark commutative.
2420 ("*iorsi3_zarch", "*iorsi3_esa"): Likewise.
2422 2004-11-23 Kazu Hirata <kazu@cs.umass.edu>
2424 * tree-phinode.c (resize_phi_node): Abort when LEN is strictly
2425 greater than PHI_ARG_CAPACITY.
2426 (reserve_phi_args_for_new_edge): Initialize the new PHI
2427 argument to NULL_TREE. Increment PHI_NUM_ARGS.
2428 (add_phi_arg): Add a PHI argument to the slot given by
2430 (remove_phi_arg_num): Do not write to PHI_ARG_EDGE.
2431 * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx.
2432 * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI
2433 argument by looking at PHI_ARG_DEF.
2434 (verify_phi_args): Check for a missing PHI argument. Remove
2435 the check for duplicate PHI arguments.
2436 * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED.
2437 (phi_arg_d): Remove e.
2439 * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up
2440 by restricting to the case with two outgoing edges.
2442 2004-11-23 Andreas Krebbel <krebbel1@de.ibm.com>
2444 * config/s390/s390.c (s390_backchain_string): Removed.
2445 (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info)
2446 (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg):
2447 Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and
2448 TARGET_KERNEL_BACKCHAIN to reflect the new options.
2449 * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros.
2450 (TARGET_KERNEL_BACKCHAIN): Removed.
2451 (TARGET_BACKCHAIN): Former triple state option change to a target flag.
2452 (TARGET_PACKED_STACK): New macro.
2453 (TARGET_SWITCHES): New switches added.
2454 (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain"
2456 (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK.
2457 * config/s390/s390.md ("allocate_stack", "restore_stack_block")
2458 ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect
2459 the change in target switch semantics.
2460 * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed.
2461 (TARGET_DEFAULT): MASK_BACKCHAIN added.
2462 * doc/invoke.texi: Added documentation for the new/changed options.
2464 2004-11-23 Uros Bizjak <uros@kss-loka.si>
2466 PR rtl-optimization/18614
2467 * simplify-rtx.c (simplify_binary_operation): Do not
2468 simplify inner elements of constant arguments of
2471 2004-11-23 Eric Botcazou <ebotcazou@libertysurf.fr>
2473 * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use
2476 2004-11-23 Kazu Hirata <kazu@cs.umass.edu>
2478 * tree-phinode.c (make_phi_node): Use a new variable,
2479 capacity, to receive the return value of ideal_phi_node_len.
2481 2004-11-23 Eric Botcazou <ebotcazou@libertysurf.fr>
2483 * gthr-solaris.h (__gthread_recursive_mutex_t): New type.
2484 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
2485 __gthread_recursive_mutex_init_function.
2486 (__gthread_key_create): Properly cast -1.
2487 (__gthread_recursive_mutex_init_function): New function.
2488 (__gthread_recursive_mutex_lock): Rewrite.
2489 (__gthread_recursive_mutex_trylock): Likewise.
2490 (__gthread_recursive_mutex_unlock): Likewise.
2492 2004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org>
2494 * config/c4x/t-rtems: New.
2495 * config.gcc: Reflect having added c4x/t-rtems.
2497 2004-11-23 Dorit Naishlos <dorit@il.ibm.com>
2501 * tree-vectorizer.c (vect_create_data_ref_ptr): Use
2502 lang_hooks.types.type_for_size instead of integer_type_node for the
2505 2004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org>
2507 * config.gcc (h8300-*-rtems*): Use h8300/t-rtems.
2509 2004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org>
2511 * config/arm/t-rtems: New.
2512 * config.gcc: Reflect having added arm/t-rtems.
2514 2004-11-23 Kazu Hirata <kazu@cs.umass.edu>
2516 * tree-cfg.c (tree_execute_on_growing_pred): New.
2517 (tree_cfg_hooks): Add tree_execute_on_growing_pred.
2518 * tree-flow.h: Add a prototype for
2519 reserve_phi_args_for_new_edge.
2520 * tree-phinodes.c (reserve_phi_args_for_new_edge): New.
2521 (add_phi_arg): Don't resize a PHI array.
2523 2004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org>
2525 * config.gcc: Add avr-*-rtems*.
2526 * config/avr/t-rtems: New.
2527 * config/avr/rtems.h: New.
2529 2004-11-22 Daniel Berlin <dberlin@dberlin.org>
2531 * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's
2532 always the same as op1. Use bitmap_ior_into and bitmap_and_into.
2533 Add comment to function.
2535 2004-11-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2538 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__.
2540 PR rtl-optimization/14838
2541 * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a
2543 (get_last_nonnote_insn): Don't assume last insn is a note.
2545 2004-11-22 Roger Sayle <roger@eyesopen.com>
2547 * fold-const.c (nondestructive_fold_binary_to_constant): Rename
2548 to fold_binary_to_constant.
2549 (nondestructive_fold_unary_to_constant): Likewise, rename to
2550 fold_unary_to_constant.
2551 (fold_relational_hi_lo): Update call to fold_binary_to_constant.
2552 * tree.h (nondestructive_fold_binary_to_constant): Update prototype.
2553 (nondestructive_fold_unary_to_constant): Likewise.
2554 * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant
2555 and fold_binary_to_constant.
2556 * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
2557 (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY
2558 and EXEC_UNARY with calls to fold_*nary_to_constant.
2559 * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros.
2560 (idx_find_step): Replace uses of EXEC_BINARY with calls to
2561 fold_binary_to_constant.
2563 2004-11-22 Nick Clifton <nickc@redhat.com>
2565 * sbitmap.c (sbitmap_union_of_preds): Remove redundant
2566 initialisation of 'e'.
2568 2004-11-22 Roger Sayle <roger@eyesopen.com>
2570 * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro.
2571 * config/i386/i386.c (override_options): Set MASK_NO_FANCY_MATH_387
2572 automatically for targets without TARGET_80387.
2573 * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2,
2574 sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2,
2575 *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3,
2576 fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2,
2577 *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2,
2578 *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3,
2579 *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2,
2580 atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2,
2581 atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2,
2582 acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2,
2583 log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2,
2584 fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2,
2585 logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2,
2586 expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2,
2587 exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2,
2588 rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2,
2589 floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2,
2590 frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2,
2591 frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2):
2592 Simplify conditionals using TARGET_USE_FANCY_MATH_387.
2594 2004-11-22 Dale Johannesen <dalej@apple.com>
2596 * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Conditionalize
2597 properly and comment.
2599 2004-11-22 James A. Morrison <phython@gcc.gnu.org
2601 * config/sparc/sparc.c: Include insn-codes.h and langhooks.h.
2602 (sparc_init_builtins): New function.
2603 (sparc_init_vis_builtins): Create builtin functions for VIS
2605 (sparc_expand_builtin): Expand builtin functions for VIS instructions.
2606 (TARGET_INIT_BUILTINS): Define to sparc_init_builtins.
2607 (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin.
2608 (def_builtin): New macro for creating builtin functions.
2609 (P): New mode macro for pointer types.
2610 (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND,
2611 UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL,
2612 UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants.
2613 (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis,
2614 fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
2615 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis,
2616 faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns.
2618 2004-11-22 Devang Patel <dpatel@apple.com>
2620 * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks.
2622 2004-11-22 Devang Patel <dpatel@apple.com>
2624 * tree-if-conv.c (if_convertable_phi_p): Rename to ...
2625 (if_convertible_phi_p): ... new name.
2626 (if_convertable_modify_expr_p): Rename to ...
2627 (if_convertible_modify_expr_p): ... new name.
2628 (if_convertable_stmt_p): Rename to ...
2629 (if_convertible_stmt_p): ... new name.
2630 (if_convertable_bb_p): Rename to ...
2631 (if_convertible_bb_p): ... new name.
2632 (if_convertable_loop_p): Rename to ...
2633 (if_convertible_loop_p): ... new name.
2635 2004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2638 * configure.ac (threading): Accept 'posix95'.
2639 * configure: Regenerate.
2640 * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6,
2641 include sol26.h and default to posix95 threads if have_pthread_h.
2642 (sparc-*-solaris2*): Likewise.
2643 * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined.
2644 * gthr-posix95.h: New file.
2645 * config/sol26.h: New file.
2646 * doc/install.texi (--enable-threads): Document 'posix95'.
2648 2004-11-23 Ben Elliston <bje@au.ibm.com>
2650 * pointer-set.h (pointer_set_contains): Remove.
2651 * pointer-set.c (pointer_set_contains): Likewise.
2653 2004-11-22 Dale Johannesen <dalej@apple.com>
2655 * calls.c (expand_call): Do not call preserve_temp_slots.
2657 2004-11-22 Kazu Hirata <kazu@cs.umass.edu>
2659 * tree-flow.h: Remove the prototype for remove_phi_arg.
2660 Add a prototype for remove_phi_args.
2661 * tree-phinodes.c (remove_phi_arg): Remove.
2662 (remove_phi_args): New.
2663 * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead
2666 * cfg.c (unchecked_make_edge): Call execute_on_growing_pred
2667 after making an edge.
2668 (remove_edge): Call execute_on_shrinking_pred before removing
2670 (redirect_edge_succ): Call execute_on_growing_pred and
2671 execute_on_shrinking_pred.
2672 * cfghooks.c (execute_on_growing_pred): New.
2673 (execute_on_shrinking_pred): Likewise.
2674 * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and
2675 execute_on_shrinking_pred.
2676 Add prototypes for execute_on_growing_pred and
2677 execute_on_shrinking_pred.
2678 * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to
2679 execute_on_growing_pred and execute_on_shrinking_pred.
2680 (cfg_layout_rtl_cfg_hook): Likewise.
2681 * tree-cfg.c (tree_cfg_hooks): Likewise.
2683 * tree-cfg.c (tree_execute_on_shrinking_pred): New.
2684 (tree_cfg_hooks): Use it.
2685 * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args.
2686 (ssa_redirect_edge): Don't call remove_phi_arg_num.
2688 * tree-phinodes.c (remove_phi_arg_num): Make it static.
2689 * tree-flow.h: Remove the corresponding prototype.
2691 * tree-ssa.c (ssa_remove_edge): Remove.
2692 * tree-flow.h: Remove the corresponding prototype.
2693 * tree-cfg.c: Replace ssa_remove_edge with remove_edge.
2694 * basic-block.h: Likewise.
2695 * tree-if-conv.c: Likewise.
2696 * tree-ssa-threadupdate.c: Likewise.
2698 2004-11-23 Ben Elliston <bje@au.ibm.com>
2700 * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of
2701 @table to list the BSI methods. Use individual @findex directives
2702 instead of one with a comma-separated list of index entries.
2704 2004-11-22 Zdenek Dvorak <dvorakz@suse.cz>
2706 PR tree-optimization/18529
2707 * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function.
2708 (simple_operand_p): Use STRIP_NOPS. Consider SSA names simple.
2709 (fold): Call fold_to_nonsharp_ineq_using_bound.
2710 * tree-ssa-loop-niter.c (simplify_replace_tree): New function.
2711 (number_of_iterations_cond): Fold the expressions before futher
2713 (tree_simplify_using_condition): Handle case when cond or expr is
2714 an EQ_EXPR specially.
2716 2004-11-22 Daniel Berlin <dberlin@dberlin.org>
2718 * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be
2719 SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes.
2721 2004-11-22 David Edelsohn <edelsohn@gnu.org>
2722 Fariborz Jahanian <fjahanian@apple.com>
2724 * config/rs6000/rs6000.c (rs6000_return_in_memory): Test
2726 (function_arg_boundary): Align 8 to 16 byte vectors like SPE.
2727 Align 16 byte and larger vectors like Altivec.
2728 (function_arg_advance): Pass any 16 byte vector like Altivec vector.
2729 (function_arg): Same.
2730 (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI.
2732 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
2735 * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying
2738 2004-11-22 Richard Henderson <rth@redhat.com>
2740 * function.c (assign_parm_setup_block): Revert 11-13 change to
2741 forcably re-mode a (possibly BLKmode) hard register.
2743 2004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr>
2745 * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN.
2747 2004-11-22 David Edelsohn <edelsohn@gnu.org>
2749 * config/rs6000/power4.md: Remove delay between dispatch and issue
2750 associated with dispatch group slots 3 and 4.
2751 * config/rs6000/power5.md: Same.
2753 2004-11-21 Jeff Law <law@redhat.com>
2755 * cfg.c (cached_make_edge): Use find_edge rather than an inlined
2757 * cfgbuild.c (make_edges): Likewise.
2758 * cfghooks.c (can_duplicate_block_p): Likewise.
2759 * cfgloop.c (loop_latch_edge): Likewise.
2760 * cfgloopmanip.c (force_single_succ_latches): Likewise.
2761 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
2762 * predict.c (predict_loops, propagate_freq): Likewise.
2763 * tracer.c (tail_duplicate): Likewise.
2764 * tree-cfg.c (disband_implicit_edges): Likewise.
2765 (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise.
2767 2004-11-22 Nick Clifton <nickc@redhat.com>
2769 * sbitmap.c (sbitmap_union_of_preds): Remove redundant
2770 initialisation of 'e'.
2772 2004-11-22 Kazu Hirata <kazu@cs.umass.edu>
2774 PR rtl-optimization/18599
2775 * regrename.c (copyprop_hardreg_forward): Speed up by putting
2776 BB_VISITED flags on basic blocks as we process them.
2778 2004-11-22 Nathan Sidwell <nathan@codesourcery.com>
2781 * config/rs6000/altivec.md (VI_char): New mode attribute.
2782 (addv16qi3, addv8hi3, addv4ai3): Replace with ...
2783 (add<mode>3): ... this.
2784 (subv16qi3, subv8hi3, subv4ai3): Replace with ...
2785 (sub<mode>3): ... this.
2786 (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ...
2787 (smax<mode>3): ... this.
2788 (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ...
2789 (smin<mode>3): ... this.
2790 (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ...
2791 (umax<mode>3): ... this.
2792 (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ...
2793 (umin<mode>3): ... this.
2794 (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2795 (and<mode>3): ... this.
2796 (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2797 (ior<mode>3): ... this.
2798 (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ...
2799 (xor<mode>3): ... this.
2800 (andv16qi3, andv8hi3, andv4ai3): Replace with ...
2801 (and<mode>3): ... this.
2802 (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ...
2803 (ior<mode>3): ... this.
2804 (altivec_vnor): Replace with ...
2805 (altivec_nor<mode>): ... this.
2806 (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ...
2807 (one_cmpl<mode>2): ... this.
2808 (altivec_vandc): New expander.
2809 (*andc<mode>3): New insn.
2810 * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names.
2812 2004-11-22 Dorit Naishlos <dorit@il.ibm.com>
2815 * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when
2816 creating iv instead of integer_type.
2817 (vect_build_loop_niters): Remove redundant code.
2818 (vect_transform_loop_bound): Removed (duplicates functionality of
2819 make_loop_iterate_ntimes.
2820 (vect_gen_niters_for_prolog_loop): Add documentation. Call
2821 lang_hooks.types.type_for_size to create a type of the required size.
2822 Use that type instead of integer_type. Remove redundant code.
2823 (vect_update_niters_after_peeling): Use type of niters instead of
2825 (vect_transform_loop): Unify handling of known and unknown loop bound
2826 cases. Call make_loop_iterate_ntimes instead of
2827 vect_transform_loop_bound.
2829 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
2832 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to
2835 2004-11-22 Dorit Naishlos <dorit@il.ibm.com>
2838 * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found.
2840 2004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2842 * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on
2844 * config/m32r/t-linux (SHLIB_MAPFILES): Override to use
2845 m32r/libgcc-glibc.ver.
2846 * config/m32r/libgcc-glibc.ver: Add New file.
2848 2004-11-22 Nathan Sidwell <nathan@codesourcery.com>
2850 * bitmap.h (struct bitmap_obstack): New obstack type.
2851 (struct bitmap_head_def): Replace using_obstack with obstack
2853 (bitmap_default_obstack): New.
2854 (bitmap_initialize): Make inline, does not do allocation.
2855 (bitmap_release_memory): Remove.
2856 (bitmap_obstack_initialize, bitmap_obstack_release): Declare.
2857 (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2858 bitmap_obstack_free, bitmap_malloc_free): Declare.
2859 (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust.
2860 (BITMAP_FREE): Replace with ...
2861 (BITMAP_OBSTACK_FREE): ... this.
2862 (BITMAP_XFREE): Adjust.
2863 (BITMAP_INIT_ONCE): Remove.
2864 * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove.
2865 (bitmap_default_obstack): New.
2866 (bitmap_elem_to_freelist): Adjust.
2867 (bitmap_element_allocate): Adjust. Break initialization into ...
2868 (bitmap_obstack_initialize): ... here.
2869 (bitmap_release_memory): Replace with ...
2870 (bitmap_obstack_release): ... this.
2871 (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc,
2872 bitmap_obstack_free, bitmap_malloc_free): New.
2873 (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use
2875 (bitmap_initialize): Move to bitmap.h.
2876 * gengtype.c (open_base_files): Add obstack.h to ifiles.
2877 * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h.
2878 * basic-block.h (INIT_REG_SET): Allocate from reg_obstack.
2879 (INITIALIZE_REG_SET): Remove.
2880 (FREE_REG_SET): Use BITMAP_OBSTACK_FREE.
2881 (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove.
2882 (flow_obstack): Do not declare.
2883 (reg_obstack): Declare.
2884 * regs.h: Include obstack.h.
2885 * tree-optimize.c (tree_rest_of_compilation): Initialize and
2886 release bitmap obstack here.
2887 * bb-reorder.c: #include regs, not basic-block.
2888 (fix_crossing_conditional_branches): Allocate regsets from
2890 * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or
2892 * caller-save.c: Include regs.h earlier.
2893 * cfg.c: Do not include basic-block.h or obstack.h.
2894 (reg_obstack): Define.
2895 * cfganal.c: Include obstack.h
2896 * cfgcleanyp.c: Do not include basic-block.h. Include regs.h
2898 * cfglayout.c: Do not include obstack.h.
2899 (flow_obstack): Remove declaration.
2900 (cfg_layout_duplicate_bb): Use reg_obstack.
2901 * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h.
2902 * cfgrtl.c (rtl_split_block): Use reg_obstack.
2903 (force_nonfallthru_and_redirect, rtl_split_edge): Likewise.
2904 (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust.
2905 (cfg_layout_split_edge): Use reg_obstack.
2906 * cse.c: Include regs.h earlier.
2907 * ddg.c: Do not include basic-block.h.
2908 * dominance.c: Inlude obstack.h.
2909 * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust.
2910 (calculate_global_regs_live): Likewise.
2911 (allocate_bb_life_data): Use reg_obstack.
2912 (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET.
2913 * global.c: Do not include basic-block.h.
2914 (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust.
2915 * graph.c: Include obstack.h.
2916 * haifa-sched.c: Do not include basic-block.h.
2917 * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust.
2918 * local-alloc.c: Do not include basic-block.h.
2919 * loop-init.c, loop-invariant.c: Include obstack.h.
2920 * loop-iv.c: Likewise.
2921 (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET,
2923 * loop-unroll.c, loop-unswitch.c: Inlude obstack.h.
2924 * modulo-sched.c: Do not include basic-block.h.
2925 * passes.c (rest_of_handle_final): Do not call
2926 regset_release_memory.
2927 * ra-debug.c: Include regs.h earlier. Do not include
2929 * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust.
2930 * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET.
2931 (allocate_reg_info): Do not call MAX_REGNO_REG_SET.
2932 (regset_release_memory): Remove.
2933 * resource.c: Do not include basic-block.h.
2934 * rtlanal.c: Do not include basic-block.h.
2935 * sbitmap.c: Include obstack.h.
2936 * sched-deps.c: Do not include basic-block.h.
2937 (reg_pending_sets_head, reg_pending_clobbers_head,
2938 reg_pending_uses_head): Remove.
2939 (init_deps_global): Use OBSTACK_ALLOC_REG_SET.
2940 * sched-ebb.c: Do not include basic-block.h.
2941 * sched-rgn.c: Likewise.
2942 * tree-if-conv.c (get_loop_body_in_if_conv_order): Use
2944 * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE.
2945 * tree-sra.c (decide_instantiations): Adjust bitmap
2947 * tree-ssa-dce.c: Include obstack.h.
2948 * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack.
2949 (value_insert_into_set_bitmap): Remove useless bitmap_clear.
2950 (bitmap_set_new): Likewise.
2951 (init_pre): Initialize bitmap obstack.
2952 (fini_pre): Release bitmap obstack.
2953 * tree-ssanames.c (ssa_names_to_rewrite): Make static.
2954 (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL.
2955 (mark_for_rewrite, unmark_for_rewrite): Likewise.
2956 (marked_ssa_names): Likewise.
2957 (init_ssanames): Use BITMAP_XMALLOC.
2958 (fini_ssanames): Use BITMAP_XFREE.
2959 * web.c: Include obstack.h
2961 2004-11-22 Nick Clifton <nickc@redhat.com>
2963 * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge
2964 predecessor in the first for-loop.
2966 2004-11-21 Stan Shebs <shebs@apple.com>
2968 * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add
2970 (function_arg): Move darwin test up, sniff mode first for
2971 efficiency, test for union type.
2973 2004-11-21 Dale Johannesen <dalej@apple.com>
2975 * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
2977 2004-11-21 Jeff Law <law@redhat.com>
2979 * tree-ssa.c (verify_use): Fix comment.
2980 (verify_phi_args): Check that the number of incoming edges matches
2981 the number of PHI arguments. Check that each PHI argument is
2982 either an SSA_NAME or an invariant. Coalesce tests for PHIs for
2983 dead or duplicated edges. Clear e->aux earlier and avoid separate
2984 loop to clear e->aux and test for missed edges.
2985 (verify_ssa): Remove first walk over statements. Move checking
2986 of PHI args into verify_phi_args. Move checking of statements
2987 with aliased stores and V_MAY_DEFS into the remaining loop over
2988 the statements. Register defs by walking through the formal
2991 2004-11-21 Roger Sayle <roger@eyesopen.com>
2994 * dojump.c (compare_from_rtx): Clarify mode argument in function
2995 description. Correct order of mode/cmp_mode arguments in call to
2996 simplify_relational_operation. Check "tem" for COMPARISON_P.
2998 2004-11-21 Paolo Bonzini <bonzini@gnu.org>
2999 David Edelsohn <edelsohn@gnu.org>
3002 * config/rs6000/rs6000.c (rs6000_return_in_memory): Return
3003 synthetic vectors in memory.
3004 (function_arg_boundary): Align large synthetic vectors.
3005 (rs6000_pass_by_reference): Pass synthetic vectors in memory.
3007 2004-11-21 Jeff Law <law@redhat.com>
3009 * cfg.c (update_bb_profile_for_threading): Do not rescale the
3010 successor probabilities if they are not going to change. Pull
3011 division out of loop if we do need to rescale successor probabilities.
3013 * tree-ssa-threadupdate.c (redirection_data_hash): Use the
3014 index of the destination block for the hash value rather than
3017 2004-11-20 Joseph S. Myers <joseph@codesourcery.com>
3019 * c-typeck.c (build_array_ref): Don't check for index == 0. Make
3020 checks for neither argument being an array or pointer (swapping
3021 the arguments if necessary), the array argument being a pointer to
3022 or array of functions and for -Wchar-subscripts warnings upfront.
3024 2004-11-20 Jeff Law <law@redhat.com>
3026 * regrename.c (copyprop_hardreg_forward): Only search for a
3027 previously processed block if the current block only has one
3030 2004-11-20 Kazu Hirata <kazu@cs.umass.edu>
3032 * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment
3034 * config/arm/arm.c: Follow spelling conventions.
3036 2004-11-20 Richard Earnshaw <rearnsha@arm.com>
3038 * arm.c (arm_override_options): Use arm_ld_sched rather than testing
3039 a bit in tune_flags.
3040 (const_double_needs_minipool): Likewise. Split most of the code out
3042 (arm_const_double_inline_cost): ... new function here.
3043 * arm-protos.h (arm_const_double_inline_cost): Add prototype.
3044 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double-
3045 word constants of length 2, 3 and 4 insns respectively.
3046 (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint.
3047 * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc]
3048 constraints. Set insn lenghts accordingly.
3050 2004-11-19 Jeff Law <law@redhat.com>
3052 * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with
3053 a hash table. Extensive modifications throughout to support
3056 (struct local_info): New.
3057 (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE
3059 (redirection_data): Now a hashtable.
3060 (redirection_data_hash, redirection_data_eq): New.
3061 (lookup_redirection_data, create_duplicates): New.
3062 (create_edge_and_update_destionation_phis): New.
3063 (fixup_template_block, redirect_edges): New.
3064 (thread_block): Use hash table traversals instead of loops over
3065 varray entries or incoming edge vectors.
3067 2004-11-19 Kazu Hirata <kazu@cs.umass.edu>
3069 * basic-block.h (edge_def): Add dest_idx.
3070 * cfg.c (unchecked_make_edge): Initialize dest_idx.
3071 (remove_edge): Simplify the disconnection of an edge from its
3073 (redirect_edge_succ): Likewise.
3074 * cfghooks.c (verify_flow_info): Check the consistency of
3075 dest_idx for each edge.
3077 2004-11-19 Aldy Hernandez <aldyh@redhat.com>
3079 * simplify-rtx.c (simplify_ternary_operation): Use
3082 2004-11-19 Kazu Hirata <kazu@cs.umass.edu>
3084 * tree-cfg.c (reinstall_phi_args): New.
3085 (tree_split_edge): Use it after redirecting an edge. Don't
3086 modify PHI_ARG_EDGE.
3088 2004-11-19 Andreas Tobler <a.tobler@schweiz.ch>
3090 * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only
3091 if checking is enabled.
3093 2004-11-19 Joseph S. Myers <joseph@codesourcery.com>
3095 * c-decl.c (push_scope): Remove "\n" from end of diagnostic for
3096 too many nested scopes.
3098 2004-11-19 Dorit Naishlos <dorit@il.ibm.com>
3101 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme
3102 changed to suppoer uses-after-loop and to void creating flow paths
3103 that shouldn't exist.
3104 (slpeel_update_phi_nodes_for_guard): Takes additional two arguments.
3105 Modified to fit the new peeling scheme. Avoid quadratic behavior.
3106 (slpeel_add_loop_guard): Takes additional argument.
3107 (slpeel_verify_cfg_after_peeling): New function.
3108 (vect_update_ivs_after_vectorizer): Takes additional argument. Updated
3109 documentation. Use 'exit-bb' instead of creating 'new-bb'.
3110 (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit
3111 the new peeling scheme.
3112 (copy_phi_nodes): Function removed. Its functionality moved to
3113 update_phis_for_duplicate_loop.
3114 (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes
3115 moved here. Added documentation. Modified to fit the new peeling scheme.
3116 (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not
3117 needed - done in slpeel_tree_peel_loop_to_edge.
3118 (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted.
3119 (vect_do_peeling_for_loop_bound): Add documentation. Call
3120 slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer
3121 with additional argument.
3122 (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling.
3124 (vect_finish_stmt_generation): Avoid 80 column oveflow.
3126 2004-11-19 Dorit Naishlos <dorit@il.ibm.com>
3128 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two
3130 (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes
3131 without last two arguments. Update single_exit of loops.
3132 (vect_update_niters_after_peeling): Removed. Its functionality was
3133 moved to vect_do_peeling_for_alignment.
3134 (vect_do_peeling_for_loop_bound): New name for function previously
3135 called vect_transform_for_unknown_loop_bound.
3136 (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes
3137 instead of code that duplicates the same functionality.
3138 (vect_do_peeling_for_alignment): Functionality of
3139 vect_update_niters_after_peeling moved here.
3140 (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound -
3141 previously named vect_transform_for_unknown_loop_bound - for both known
3142 and unknown loop bound cases.
3144 2004-11-19 Dorit Naishlos <dorit@il.ibm.com>
3146 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function
3147 previously called verify_loop_for_duplication. All conditions compacted
3148 into one compound condition. Removed debug dumps.
3149 (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the
3150 functionality moved to vect_can_advance_ivs_p, and some to
3151 vect_analyze_loop_form.
3152 (vect_can_advance_ivs_p): New function. Contains functionality that was
3153 taken out of vect_analyze_loop_with_symbolic_num_of_iters.
3154 (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p.
3155 (vect_analyze_operations): Call vect_can_advance_ivs_p and
3156 slpeel_can_duplicate_loop_p.
3157 (vect_get_loop_niters): Added documentation.
3158 (vect_analyze_loop_form): Check the loop entry always - not only in case
3159 of unknown loop bound. Create preheader and exit bb if necessary. Apply
3160 a check that used to take place in
3161 vect_analyze_loop_with_symbolic_num_of_iters.
3162 (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING.
3163 Remove redundant call to rewrite_into_loop_closed_ssa.
3164 (vect_compute_data_refs_alignment): Removed obsolete comment.
3166 2004-11-19 Dorit Naishlos <dorit@il.ibm.com>
3168 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for
3169 function previously called tree_duplicate_loop_to_edge.
3170 (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function
3171 previously called tree_duplicate_loop_to_edge_cfg.
3172 (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to
3174 (slpeel_update_phi_nodes_for_guard): Likewise.
3175 (slpeel_make_loop_iterate_ntimes): Likewise.
3176 (slpeel_add_loop_guard): Likewise.
3177 (allocate_new_names, free_new_names): Function declaration moved to top
3179 (rename_use_op, rename_def_op): Likewise.
3180 (rename_variables_in_bb, rename_variables_in_loop): Likewise.
3181 (vect_generate_tmps_on_preheader): Function declaration moved.
3182 (vect_transform_for_unknown_loop_bound): Added missing function
3185 2004-11-19 Andrew Pinski <pinskia@physics.uc.edu>
3188 * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree).
3189 Define a VEC(tree_on_heap) for head.
3190 (register_new_def): Change second argument to be a VEC(tree_on_heap).
3191 * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap).
3192 (tree_ssa_dominator_optimize): Initialize block_defs_stack with
3193 the VEC(tree_on_heap) function. Also free it before returning.
3194 (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
3195 for block_defs_stack.
3196 (restore_currdefs_to_original_value): Use VEC_length instead of
3197 VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
3198 (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
3199 for block_defs_stack.
3200 * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap).
3201 (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE
3202 for block_defs_stack.
3203 (ssa_register_new_def): Likewise.
3204 (ssa_rewrite_initialize_block): Likewise.
3205 (rewrite_finalize_block): Use VEC_length instead of
3206 VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP.
3207 (ssa_rewrite_finalize_block): Likewise.
3208 (register_new_def): Change second argument to be a VEC(tree_on_heap).
3209 Use VEC_safe_push instead of VARRAY_PUSH_TREE.
3210 (rewrite_blocks): Initialize block_defs_stack with
3211 the VEC(tree_on_heap) function. Also free it before returning.
3212 (rewrite_ssa_into_ssa): Likewise.
3214 2004-11-19 Fariborz Jahanian <fjahanian@apple.com>
3216 * config/darwin.c (machopic_data_defined_p): return 1 for
3217 MACHOPIC_DEFINED_FUNCTION.
3219 2004-11-19 Jeff Law <law@redhat.com>
3221 * tree-ssa.c (verify_ssa): Remove redundant checking of PHI
3224 2004-11-19 Paul Brook <paul@codesourcery.com>
3227 * varasm.c (default_assemble_integer): Allow pointer-sized values.
3230 2004-11-19 Nick Clifton <nickc@redhat.com>
3232 * config/stormy16/stormy16.c (combine_bnp): Add code to handle
3233 zero_extension and lshiftrt insns.
3234 Replace uses of XEXP(...) with either SET_DEST() or SET_SRC()
3236 * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns
3237 to handle bp and bn insn patterns with a zero_extend rtx
3240 2004-11-19 Ian Lance Taylor <ian@wasabisystems.com>
3242 * config/arm/arm.md (generic_sched): Make const.
3244 2004-11-19 Kazu Hirata <kazu@cs.umass.edu>
3246 * emit-rtl.c (classify_insn): Make it static.
3247 * rtl.h: Remove the corresponding prototype.
3249 * integrate.c (has_func_hard_reg_initial_val,
3250 get_func_hard_reg_initial_val): Make them static.
3251 * integrate.h: Remove the corresponding prototypes.
3253 2004-11-19 Ben Elliston <bje@au.ibm.com>
3255 * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0.
3256 (dw2_asm_output_delta_sleb128): Likewise.
3257 * dwarf2asm.c (dw2_asm_output_pcrel): Likewise.
3258 (dw2_asm_output_delta_sleb128): Likewise.
3260 2004-11-19 Adam Nemet <anemet@lnxw.com>
3262 * tree-ssa-alias.c: Fix comment.
3264 2004-11-19 Kazu Hirata <kazu@cs.umass.edu>
3266 * tree-outof-ssa.c: Fix a comment typo.
3268 2004-11-19 Ben Elliston <bje@au.ibm.com>
3270 * predict.h (predict_insn): Remove extern declaration.
3271 * predict.c (predict_insn): Make static.
3273 2004-11-19 Alan Modra <amodra@bigpond.net.au>
3275 * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs.
3277 2004-11-18 Nicolas Pitre <nico@cam.org>
3279 * config/arm/arm.c (const_double_needs_minipool): New function to
3280 determine if a CONST_DOUBLE should be pushed to the minipool.
3281 (note_invalid_constants): Use it.
3283 2004-11-18 Paul Brook <paul@codesourcery.com>
3285 * config/arm/arm.c (target_float_switch): New variable..
3286 (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and
3287 target_float_switch.
3288 * config/arm/arm.h (target_float_switch): Declare.
3289 (ARM_FLAG_SOFT_FLOAT): Remove.
3290 (TARGET_SWITCHES): Remove hard-float and soft-float.
3291 (TARGET_OPTIONS): Add hard-float and soft-float.
3292 (TARGET_DEFAULT_FLOAT_ABI): Define.
3293 * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define
3294 (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT.
3295 * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT.
3296 * config/arm/netbsd-elf.h: Ditto.
3297 * config/arm/netbsd.h: Ditto.
3298 * config/arm/pe.h: Ditto.
3299 * config/arm/unknown-elf.h: Ditto.
3300 * config/arm/wince-pe.h: Ditto.
3301 * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3302 * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3303 * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define.
3305 2004-11-18 Nathan Sidwell <nathan@codesourcery.com>
3307 * config/rs6000/altivec.md (VI, VF, V): New mode macros.
3308 (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi,
3309 altivec_lvx_4sf): Rename and replace with ...
3310 (altivec_lvx_<mode>): ... mode macro version.
3311 (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi,
3312 altivec_stvx_4sf): Rename and replace with ...
3313 (altivec_stvx_<mode>): ... mode macro version.
3314 (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ...
3315 (mov<mode>): ... mode macro version.
3316 (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1,
3317 *movv4sf_internal1): Replace with ...
3318 (*mov<mode>_internal): ... mode macro version.
3319 (get_vrsave_internal, *set_vrsave_internal, *save_world,
3320 *restore_world): Unquote output statements.
3321 * config/rs6000/rs6000.c (altivec_expand_ld_builtin,
3322 altivec_expand_st_builtin): Adjust insn names.
3324 2004-11-18 Aldy Hernandez <aldyh@redhat.com>
3326 * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert
3328 (rs6000_override_options): Likewise.
3329 (spe_build_register_parallel): Handle complex doubles on e500v2.
3330 (rs6000_spe_function_arg): Likewise.
3331 (function_arg): Likewise.
3332 (rs6000_function_value): Likewise.
3333 (rs6000_libcall_value): Likewise.
3335 2004-11-18 Andrew Pinski <pinskia@physics.uc.edu>
3337 * ifcvt.c (find_if_block): Move the check for the number of edges
3338 above the loops checking for complex edges.
3339 Remove the counting of edges as we use EDGE_COUNT now.
3341 2004-11-18 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
3343 * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
3344 TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3
3346 2004-11-18 Andreas Schwab <schwab@suse.de>
3348 * config/i386/i386.md (define_peephole2): Revert last change.
3350 2004-11-18 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
3352 * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
3353 TARGET_ASM_FILE_END to file_end_indicate_exec_stack.
3355 2004-11-18 Diego Novillo <dnovillo@redhat.com>
3357 * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead
3360 2004-11-18 Jon Grimm <jgrimm2@us.ibm.com>
3362 * Makefile.in (macro_list): Depend on s-macro_list.
3363 (s-macro_list): New target.
3365 2004-11-18 Nathan Sidwell <nathan@codesourcery.com>
3368 * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
3369 (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
3370 (fold_range_test): Adjust.
3371 (fold_truthop): Use it.
3372 * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ...
3373 (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here.
3375 2004-11-18 Uros Bizjak <uros@kss-loka.si>
3377 * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to
3378 insn split constraint.
3379 (define_peephole2): Remove unneeded "&& 1" from peephole2
3382 2004-11-18 Ben Elliston <bje@au.ibm.com>
3384 * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item
3385 element for bsi_prev; use @findex instead.
3387 2004-11-18 Ben Elliston <bje@au.ibm.com>
3389 * opts.h (add_input_filename): Remove extern declaration.
3390 * opts.c (add_input_filename): Make static.
3392 2004-11-17 Mark Mitchell <mark@codesourcery.com>
3394 * config/i386/i386.c (i386_solaris_elf_named_section): Mark with
3397 2004-11-17 Zack Weinberg <zack@codesourcery.com>
3399 * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN.
3400 * system.h: Poison it.
3401 * doc/tm.texi: Delete its documentation.
3403 2004-11-18 Daniel Jacobowitz <dan@codesourcery.com>
3404 Mark Mitchell <mark@codesourcery.com>
3406 * config/i386/sol2-10.h, config/i386/t-sol2-10: New files.
3407 * config/i386/i386.c (i386_solaris_elf_named_section): New
3409 * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10.
3410 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle
3412 (ASM_QUAD): Don't undefine for biarch targets.
3413 * config/i386/t-sol2: Introduce multilib support.
3415 2004-11-18 Ben Elliston <bje@au.ibm.com>
3417 * cgraphunit.c: Replace "it's" with "its" and fix a typo.
3419 2004-11-18 Ben Elliston <bje@au.ibm.com>
3421 * cgraph.h: Replace "it's" with "its" throughout.
3423 2004-11-18 Ben Elliston <bje@au.ibm.com>
3425 * doc/rtl.texi (Flags): Grammar fix.
3427 2004-11-17 Kazu Hirata <kazu@cs.umass.edu>
3429 * expmed.c (alg_code): Add alg_unknown.
3430 (alg_hash_entry): New.
3431 (NUM_ALG_HASH_ENTRIES): Likewise.
3432 (alg_hash): Likewise.
3433 (synth_mult): Cache the result into alg_hash.
3435 2004-11-17 Zack Weinberg <zack@codesourcery.com>
3437 * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with
3438 config/rs6000/libgcc-ppc64.ver.
3440 2004-11-17 Kazu Hirata <kazu@cs.umass.edu>
3442 * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when
3443 checking if an unconditional return is followed by a barrier.
3445 * jump.c (condjump_p): Remove unreachable code.
3447 * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h,
3448 tree-chrec.h, tree-flow.h, tree-scalar-evolution.h,
3449 tree-ssa-live.h, tree.h: Remove unused prototypes.
3451 2004-11-17 Jeff Law <law@redhat.com>
3453 * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader.
3454 (edge_to_cases_elt): Renamed from edge_to_case_leader.
3455 (edge_to_cases_hash): Renamed from edge_to_case_leader_hash.
3456 (edge_to_cases_eq): Renamed from edge_to_case_leader_eq.
3457 (edge_to_cases_cleanup, recording_case_labels_p): New functions.
3458 (get_cases_for_edge): New function.
3459 (start_recording_case_labels, end_recording_case_labels): Similarly.
3460 (record_switch_edge): Don't muck with the CASE_LABEL. Instead
3461 chain equivalent CASE_LABEL_EXPRs together.
3462 (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill.
3463 (make_switch_expr_edges): Do not record edge/cases here.
3464 (cleanup_tree_cfg): Record cases around the call to thread_jumps.
3465 (split_critical_edges): Record cases around the edge splitting code.
3466 (cleanup_dead_labels): Use CASE_LABEL again.
3467 (tree_redirect_edge_and_branch): If we have a mapping from edge
3468 to cases, use it to handle redirections. Else do it the slow way.
3469 * tree.h (CASE_LEADER_OR_LABEL): Kill.
3470 (CASE_LABEL): Revert to just looking at the tree's second operand.
3471 * tree.c (get_case_label): Kill.
3473 2004-11-17 Diego Novillo <dnovillo@redhat.com>
3475 PR tree-optimization/18307
3476 * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and
3477 'orig' are the same node.
3478 (collect_points_to_info_r): Do not call merge_pointed_to_info