1 2005-07-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4 * pa.md: Remove fcpy alternative from movhi and movqi patterns.
5 * pa32-regs.h (HARD_REGNO_NREGS): Return two floating point registers
6 for complex modes when generating code for PA 1.0.
7 (VALID_FP_MODE_P): New macro.
8 (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
9 sets for all general and floating point modes. Align wide floating
10 point modes to even register boundaries to comply with architectural
12 (CLASS_MAX_NREGS): Update to align with change to HARD_REGNO_NREGS.
13 * pa64-regs.h (HARD_REGNO_NREGS): Update comment and formatting.
14 (VALID_FP_MODE_P): New macro.
15 (HARD_REGNO_MODE_OK): Use VALID_FP_MODE_P. Use non-overlapping register
16 sets for all general and floating point modes. Align wide floating
17 point modes to even register boundaries to comply with architectural
20 2005-07-04 Diego Novillo <dnovillo@redhat.com>
22 * tree-dump.c (dump_files): Initialize dump number for .cgraph
25 2005-07-04 Diego Novillo <dnovillo@redhat.com>
27 * tree-ssa-structalias.c: Don't include expr.h.
29 2005-07-04 Diego Novillo <dnovillo@redhat.com>
31 * tree-iterator.h (TSI_NEW_STMT, TSI_SAME_STMT): Fix
34 2005-07-04 Daniel Berlin <dberlin@dberlin.org>
36 Fix PR tree-optimization/22279
38 * tree-ssa-structalias.c (offset_overlaps_with_access): Use
41 2005-07-04 J"orn Rennecke <joern.rennecke@st.com>
43 * sh.c (output_ieee_ccmpeq): Replace "\\;" with "\n\t".
45 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
47 * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
48 cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
49 config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
50 config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
51 config/stormy16/stormy16.c, config/v850/v850.c,
52 config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
53 except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
54 Avoid "." or "\n" at end of diagnostics and capital letters at
56 * combine.c, cse.c: Don't translate dump file output.
57 * toplev.c (print_version): Only translate output if going to
60 2005-07-03 Kazu Hirata <kazu@codesourcery.com>
62 * c-decl.c, tree-object-size.c, tree-vectorizer.c,
63 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
66 2005-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
68 * pa.c (fix_range): Fix typo in comment.
70 2005-07-03 Kazu Hirata <kazu@codesourcery.com>
72 * tree-vrp.c (extract_range_from_assert): Replace
73 fold (build (...)) with fold_build2.
75 2005-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
77 * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
78 gcc_gfc_char_table, init_dynamic_gfc_info): New.
79 (format_types_orig, handle_format_attribute): Add support for
82 2005-07-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
84 * varasm.c (assemble_variable): Fix format specifier thinko.
86 2005-07-03 Ira Rosen <irar@il.ibm.com>
88 PR tree-optimization/22029 (and 22135)
89 * tree-pretty-print.c (dump_generic_node): Check that the node is not
90 a phi node before calling dump_vops.
92 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
94 * tree-dump.h (dump_string_field): Declare.
95 * tree-dump.c: Use it instead of dump_string.
96 (dump_string_field): Make non-static.
98 2005-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
100 * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
101 up the minimal CFG stuff always when optimize > 0. Call
102 split_all_insns_noflow in PIC case if needed.
104 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
105 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
108 * c-decl.c (c_write_global_declarations): Dump contents of
110 * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
111 <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
112 <GOTO_EXPR>, <SWITCH_EXPR>: Add.
113 (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
116 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
118 * c-common.h (GCC_DIAG_STYLE): Define.
119 * c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC
120 version for format checking to 4.1.
121 * c-format.c: Include toplev.h after c-common.h.
122 (enum format_type): Add gcc_tdiag_format_type.
123 (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
124 gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
125 (format_types_orig): Add gcc_tdiag.
126 (init_dynamic_diag_info): Support gcc_tdiag formats.
127 (handle_format_attribute): Likewise.
128 * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
129 (GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC
130 version for format checking to 4.1.
131 (warning0, warning, error, pedwarn, sorry): Use
133 * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
134 (finish_aliases_1): Do not use %qE.
135 * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
136 config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
138 * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
139 parameter to unsigned HOST_WIDE_INT.
140 * config/v850/v850.c (v850_output_aligned_bss): Likewise.
142 2005-07-02 David Edelsohn <edelsohn@gnu.org>
145 * expr.c (write_complex_part): Use adjust_address for MEM.
146 (read_complex_part): Same.
148 2005-07-02 Daniel Berlin <dberlin@dberlin.org>
150 Fix PR tree-optimization/22280
152 * tree-sra.c (generate_element_init): Remove useless loop.
154 2005-07-02 Richard Henderson <rth@redhat.com>
156 * config/alpha/alpha.c (alpha_legitimize_address): Check for
158 (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
160 2005-07-02 Andrew Pinski <pinskia@physics.uc.edu>
163 * fold-const.c (fold_binary): Handle the return value of
164 fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
165 Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
167 2005-07-02 Jeff Law <law@redhat.com>
169 * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
170 a eliminate type conversion which feeds an equality comparison
171 if the original type or either operand in the comparison is a
174 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
176 * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
177 config/rs6000/rs6000.opt, params.def: Remove "." from end of help
179 * config/avr/avr.c: Do not use '`' as left quote.
180 * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
181 Remove "." from end of diagnostics. Make diagnostics start with
184 2005-07-02 Zack Weinberg <zack@codesourcery.com>
185 Joseph S. Myers <joseph@codesourcery.com>
187 * toplev.c (default_tree_printer): Handle setting location with
189 * c-objc.common.c (c_tree_printer): Likewise.
190 * c-format.c (gcc_diag_flag_specs): Add '+'.
191 (gcc_cdiag_char_table): Allow '+' flag for tree formats.
192 (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
194 * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
195 config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
196 config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
197 config/v850/v850.c, function.c, stor-layout.c, toplev.c,
198 tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
199 instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end
200 of diagnostics. Use %q+D not %s for a decl. Do not pass excess
201 format arguments where %J is used without %D.
203 2005-07-02 Jakub Jelinek <jakub@redhat.com>
205 * gcc.c (LINK_SSP_SPEC): Define.
206 (link_ssp_spec): New variable.
207 (LINK_COMMAND_SPEC): Add %(link_ssp).
208 (static_specs): Add link_ssp_spec.
209 * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
210 * configure: Rebuilt.
211 * config.in: Rebuilt.
213 * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
214 * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
215 * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
216 * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
217 * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
218 If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
219 -0x7008(2) instead of reading __stack_chk_guard variable.
220 * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
222 (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
223 (stack_protect_set, stack_protect_test): Use *_tls* patterns
224 if TARGET_THREAD_SSP_OFFSET is defined.
225 (stack_tls_protect_set_si, stack_tls_protect_set_di,
226 stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
229 2005-06-27 Richard Henderson <rth@redhat.com>
230 * libgcc-std.ver (GCC_4.1.0): New.
231 * libgcc.h (__stack_chk_guard): Declare.
232 (__stack_chk_fail, __stack_chk_fail_local): Declare.
233 * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
234 * mklibgcc.in (lib2funcs): Add them.
236 2005-07-01 Richard Henderson <rth@redhat.com>
238 * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
239 void * before struct sigcontext *.
240 (x86_fallback_frame_state): Likewise.
242 2005-07-01 James E. Wilson <wilson@specifixinc.com>
244 * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
246 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
249 * tree-ssa-reassoc.c (should_transpose): Fix which operand
250 we check for SSA_NAME for.
252 2005-06-29 Daniel Berlin <dberlin@dberlin.org>
254 Fix PR tree-optimization/22071
256 * tree-ssa-structalias.c (offset_overlaps_with_access): New
258 (get_constraint_for_component_ref): Use it.
260 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
263 * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
264 print out the last new line.
266 2005-07-01 Hans-Peter Nilsson <hp@axis.se>
268 * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
269 Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
270 * config/cris/cris.c (cris_conditional_register_usage): Adjust
271 reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
272 (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
273 (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
274 * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
275 (enum reg_class): New member CC0_REGS.
276 (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
277 (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
278 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
279 (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
280 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
281 Adjust for register now described.
283 2005-07-01 Jakub Jelinek <jakub@redhat.com>
286 * config/i386/i386.md (stack_protect_test_si,
287 stack_protect_test_di): Add earlyclobber for scratch 3.
288 * config/rs6000/rs6000.md (stack_protect_testsi,
289 stack_protect_testdi): Add earlyclobber for scratch 3,
290 remove earlyclobber from scratch 4.
292 2005-06-30 Diego Novillo <dnovillo@redhat.com>
296 * tree-ssa-alias.c (create_name_tags): Also process
297 non-dereferenced pointers.
298 Remove argument 'ai'. Update all callers.
300 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
302 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
303 Set to 0 for FRAME_GROWS_DOWNWARD.
304 (REGISTER_NAMES): Add sfp.
306 2005-07-01 Kelley Cook <kcook@gcc.gnu.org>
308 * config/arm/libunwind.S, config/arm/pr-support.c,
309 config/arm/unwind-arm.c, config/arm/unwind-arm.h,
310 config/c4x/predicates.md, tree-object-size.c: Update FSF address.
312 2005-06-30 Eric Botcazou <ebotcazou@libertysurf.fr>
315 * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
316 Preserve the 2nd register too, if present.
317 (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
318 Adjust call to emit_and_preserve.
320 2005-06-30 Zack Weinberg <zack@codesourcery.com>
321 Jakub Jelinek <jakub@redhat.com>
323 * pretty-print.h (PP_NL_ARGMAX): New.
324 (text_info): Add locus.
325 (struct chunk_info): New.
326 (output_buffer): Add formatted_obstack, chunk_obstack, and
327 cur_chunk_array. Change obstack to a pointer.
328 (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
329 (struct pretty_print_info): Replace ideal_maximum_length and
330 prefixing_rule with wrapping.
331 (pp_line_cutoff, pp_prefixing_rule): Update to match.
332 Update prototypes and wrapper macros throughout.
333 * pretty-print.c (pp_formatted_text_data, pp_append_r)
334 (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
335 (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
336 Update for changes to pp structure.
337 (pp_base_prepare_to_format, pp_base_format_text): Delete.
338 (pp_base_format, pp_base_output_formatted_text): New functions.
339 (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
340 (pp_verbatim): Clear text.locus.
341 (pp_printf): Likewise. Use pp_format and pp_output_formatted_text.
342 * c-objc-common.c (c_tree_printer): Update function signature.
343 * diagnostic.c (diagnostic_initialize): Update for changes to
345 (diagnostic_report_diagnostic): Call pp_format and then
346 pp_output_formatted_text.
347 (verbatim): Clear text.locus.
348 * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
349 Update for changes to pp structure.
351 * c-lang.c: No need to include c-pretty-print.h.
352 * Makefile.in: Remove bogus line containing only a tab.
353 (c-lang.o): Update dependencies.
354 * toplev.c (announce_function): Don't use verbatim.
355 (default_tree_printer): Update signature.
357 * objc/objc-lang.c: No need to include c-pretty-print.h.
358 * objc/Make-lang.in: Update dependencies.
360 2005-06-29 Daniel Berlin <dberlin@dberlin.org>
362 * tree-complex.c (complex_variable_components): Now a hashtable.
365 (create_components): Use referenced var iterator.
366 Initialize hashtable. Use cvc_insert/lookup.
367 (extract_components): Use cvc_insert/lookup.
368 (update_complex_components): Ditto.
369 (update_complex_components_on_edge): Ditto.
370 * tree-dfa.c (referenced_vars): Now a hashtable.
371 (dump_referenced_vars): Use iterator.
372 (referenced_var_lookup): New function.
373 (referenced_var_insert): Ditto.
374 (add_referenced_var): Use referenced_var_insert.
375 (mark_new_vars_to_rename): Use DECL_UID.
376 * tree-flow-inline.h (first_htab_element): New function.
378 (next_htab_element): Ditto.
379 (first_referenced_var): Ditto.
380 (end_referenced_vars_p): Ditto.
381 (next_referenced_var): Ditto.
382 (is_call_clobbered): Use DECL_UID.
383 (mark_call_clobbered): Ditto.
384 (clear_call_clobbered): Ditto.
385 (mark_non_addressable): Ditto.
386 * tree-flow.h (htab_iterator): New struct.
387 (FOR_EACH_HTAB_ELEMENT): New macro.
388 (struct int_tree_map): New struct.
389 (int_tree_map_hash): Prototype.
390 (int_tree_map_eq): Ditto.
391 (referenced_var_iterator): Ditto.
392 (FOR_EACH_REFERENCED_VAR): New macro.
393 (referenced_vars): Now a hashtable.
394 * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
395 (add_new_name_mapping): Ditto.
396 (mark_def_sites): Ditto.
397 (insert_phi_nodes): Use referenced_var iterator.
398 (mark_def_site_blocks): Ditto.
399 (mark_sym_for_renaming): Use DECL_UID.
400 * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
401 (lookup_element): Ditto.
402 (find_candidates_for_sra): Use referenced_vars iterator.
404 * tree-ssa-alias.c (NUM_REFERENCES): New macro.
405 (NUM_REFERENCES_CLEAR): Ditto.
406 (NUM_REFERENCES_INC): Ditto.
407 (NUM_REFERENCES_SET): Ditto.
408 (alias_obstack): New bitmap obstack.
409 (struct alias_map_d): Use bitmap, not sbitmap.
410 (struct alias_info): Remove num_references.
411 (init_alias_info): Use referenced_var iterator.
412 Initialize bitmap obstack.
413 (delete_alias_info): Use referenced_var iterator.
415 (compute_points_to_and_addr_escape): Use DECL_UID.
416 Use new NUM_REFERENCES macros.
417 (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
418 Use new NUM_REFERENCES macros.
419 (group_aliases_into): Update prototype to use bitmap.
420 (setup_pointers_and_addressables): Use referenced_vars iterator.
421 Use DECL_UID. Use new NUM_REFERENCES macros.
422 (add_pointed_to_var): Use DECL_UID.
423 (dump_alias_info): Use referenced_var iterator.
424 (add_type_alias): Ditto.
425 (used_portions): Now a hashtable.
426 (used_part_map_eq): New function.
427 (used_part_map_hash): Ditto.
428 (free_used_part_map): Ditto.
431 (get_or_create_used_part_for): Use up_lookup.
432 (create_overlap_variables_for): Ditto.
433 (find_used_portions): Use up_insert.
435 (create_structure_vars): Init used_portions hashtable, use
436 referenced_vars iterator.
437 * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
439 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
440 * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
441 (note_addressable): Ditto.
442 * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
443 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
444 referenced_var iterator.
446 (delete_tree_ssa): Ditto.
447 (int_tree_map_eq): New function.
448 (int_tree_map_hash): Ditto.
449 * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
450 (va_list_ptr_read): Ditto.
451 (va_list_counter_struct_op): Ditto.
452 (va_list_ptr_write): Ditto.
453 (check_va_list_escapes): Ditto.
454 (check_all_va_list_escapes): Ditto.
455 (execute_optimize_stdarg): Ditto.
456 * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
459 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
461 * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
462 (HARD_FRAME_POINTER_REGNUM): this.
464 2005-06-30 Jan Hubicka <jh@suse.cz>
466 * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
468 2005-06-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
471 * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
472 process_unification_queue, init_topo_info, topo_visit,
473 init_scc_info, free_scc_info, perform_var_substitution,
474 solve_graph): Use unsigned instead of uint.
476 2005-06-30 Jakub Jelinek <jakub@redhat.com>
478 * function.c (gen_stack_protect_test): Add third argument.
480 2005-06-30 J. D. Johnston <jjohnst@us.ibm.com>
482 * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
484 2005-06-30 Kazu Hirata <kazu@codesourcery.com>
486 * config/c4x/c4x-protos.h: Remove the prototypes for those
487 functions removed from c4x.c. Add prototypes for those
488 functions exported in c4x.c.
489 * config/c4x/c4x.c (any_operand, fp_zero_operand,
490 const_operand, stik_const_operand, not_const_operand,
491 reg_operand, r0r1_reg_operand, r2r3_reg_operand,
492 ext_low_reg_operand, ext_reg_operand, std_reg_operand,
493 std_or_reg_operand, addr_reg_operand, index_reg_operand,
494 dp_reg_operand, sp_reg_operand, st_reg_operand,
495 rc_reg_operand, call_address_operand,
496 symbolic_address_operand, dst_operand, src_operand,
497 src_hi_operand, lsrc_operand, tsrc_operand,
498 nonimmediate_src_operand, nonimmediate_lsrc_operand,
499 reg_or_const_operand, par_ind_operand, parallel_operand):
501 (c4x_immed_float_p, c4x_a_register, c4x_x_register,
502 c4x_K_constant, c4x_N_constant, c4x_O_constant,
503 c4x_S_indirect): Export.
504 * config/c4x/c4x.h (PREDICATE_CODES): Remove.
505 * config/c4x/c4x.md: Include predicates.md.
506 * config/c4x/predicates.md: New.
508 2005-06-30 Jakub Jelinek <jakub@redhat.com>
510 * function.c (stack_protect_epilogue): Pass label to
511 stack_protect_test, assume it emitted also the conditional
513 * doc/md.texi (stack_protect_test): Adjust documentation.
514 * config/i386/i386.md (stack_protect_test): Add third argument,
515 emit beq with operands[2].
516 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
517 flag_stack_protect != 0.
518 * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
520 (stack_protect_set, stack_protect_test): New expanders.
521 (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
522 stack_protect_testdi): New insns.
523 * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
524 (TARGET_STACK_PROTECT_FAIL): Define.
525 (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
527 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
528 (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
529 that addition of sfp doesn't change these.
530 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
531 REG_ALLOC_ORDER): Add sfp.
532 (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
533 (FRAME_POINTER_REGNUM): Define to 113.
534 (HARD_FRAME_POINTER_REGNUM): Define to 31.
535 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
536 (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
537 (ELIMINABLE_REGS): Never eliminate to
538 FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
539 instead. Add eliminations from FRAME_POINTER_REGNUM.
540 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
541 Include FRAME_POINTER_REGNUM.
542 (REGISTER_NAMES): Add sfp.
543 * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
544 (alt_reg_names): Likewise.
545 (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
546 (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
547 instead of FRAME_POINTER_REGNUM.
548 (rs6000_initial_elimination_offset): Never eliminate to
549 FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
550 instead. Add elimination offsets from FRAME_POINTER_REGNUM.
552 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
553 if DEFAULT_ABI == ABI_V4.
555 2005-06-30 Steven Bosscher <stevenb@suse.de>
557 * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
558 * tree.h (struct tree_decl): New field `tls_model'.
559 (DECL_TLS_MODEL): New.
560 (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
562 * rtl.h (decl_default_tls_model): Add prototype for it.
563 * varasm.c (decl_tls_model): Rewritten and renamed to ...
564 (decl_default_tls_model): ... this.
565 (default_encode_section_info): Use DECL_TLS_MODEL instead of
567 (assemble_variable): Replace DECL_THREAD_LOCAL with
569 (default_section_type_flags_1): Likewise.
570 (categorize_decl_for_section): Likewise.
571 * tree.c (staticp): Likewise.
572 (recompute_tree_invarant_for_addr_expr): Likewise.
573 * drawf2out (loc_descriptor_from_tree_1): Likewise.
574 * c-decl.c (diagnose_mismatched_decls): Likewise.
575 with DECL_THREAD_LOCAL_P.
576 (start_decl): Likewise.
577 * print-tree.c (print_node): Likewise. Print the TLS model.
578 (grokdeclarator): Set the default DECL_TLS_MODEL here.
579 * c-common.c (handle_tls_model_attribute): Rewrite to set the
580 TLS model up based on the attribute. Never add the attribute
581 to the decl's attributes list.
582 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
583 DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
585 2005-06-30 Zdenek Dvorak <dvorakz@suse.cz>
588 * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
591 2005-06-30 Bernd Schmidt <bernd.schmidt@analog.com>
593 * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
594 mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
597 2005-06-29 David Edelsohn <edelsohn@gnu.org>
599 * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
601 2005-06-29 Diego Novillo <dnovillo@redhat.com>
604 * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
605 when following copy-of chains.
607 2005-06-30 Jan Hubicka <jh@suse.cz>
609 * function.h (struct function): Add saved blocks/unexpanded var list.
610 * gimple-low.c (record_vars): Insert only VAR_DECLs.
611 * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
612 (remap_decl): Do not declare vars.
613 (remap_block): Do not care inserting blocks.
614 (remap_blocks): New function.
615 (copy_body_r): Update debug info.
616 (expand_call_inline): Duplicate callee block tree into caller;
617 copy all the unexpanded_var_list.
618 (save_body): Save unexpanded_var_list and blocks.
619 * tree-optimize.c (tree_rest_of_optimization): Restore
620 blocks/unexpanded_var_list.
622 2005-06-29 Richard Henderson <rth@redhat.com>
624 * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
625 plus for V4HImode UMAX.
627 2005-06-29 Joseph S. Myers <joseph@codesourcery.com>
629 * c-tree.h (default_function_array_conversion): Take and return
631 * c-typeck.c (default_function_array_conversion): Split into
632 array_to_pointer_conversion and function_to_pointer_conversion.
633 Take and return struct c_expr.
634 (array_to_pointer_conversion): Do not handle type qualifiers or
635 COMPOUND_EXPRs specially.
636 (build_function_call): Call function_to_pointer_conversion for
637 function designators.
638 (build_unary_op): Call array_to_pointer_conversion, not
639 default_function_array_conversion.
640 (digest_init, output_init_element): Likewise.
641 * c-parser.c: All callers of default_function_array_conversion
644 2005-06-29 Ziemowit Laski <zlaski@apple.com>
646 * config/darwin.c (machopic_select_section): constant ObjC string
647 objects now always have type "__builtin_ObjCString".
649 2005-06-29 Richard Henderson <rth@redhat.com>
651 * config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
653 2005-06-29 Richard Henderson <rth@redhat.com>
655 * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
656 (vect_create_epilog_for_reduction): Don't use vec_shr if the
657 operation is emulated.
658 (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
659 tests from vectorizable_operation.
661 2005-06-29 Caroline Tice <ctice@apple.com>
664 * varasm.c (assemble_start_function): Add "L" to beginning of
665 local labels, so assembler & linker treat them as local.
667 2005-06-29 Richard Henderson <rth@redhat.com>
669 * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
670 argument. Simplify canonicalization of condition. Use unsigned
671 saturating subtraction for QI and HImode unsigned compares. Use
672 bit arithmetic tricks for SImode unsigned compares.
673 * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
674 * config/i386/sse.md (SSEMODE14): New.
675 (umaxv8hi3): Use us_minus+plus to avoid vcond.
677 (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
678 (smin<SSEMODE14>3): Similarly with sminv16qi3.
679 (umin<SSEMODE24>3): Similarly with uminv8hi3.
681 2005-06-29 Ian Lance Taylor <ian@airs.com>
683 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
684 GEN_INT to gen_int_for_mode when storing register size to memory.
686 2005-06-29 Stuart Hastings <stuart@apple.com>
688 * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
689 * gcc/config/i386/emmintrin.h: Likewise.
690 * gcc/config/i386/pmmintrin.h: Likewise.
691 * gcc/config/i386/xmmintrin.h: Likewise.
693 2005-06-29 Steve Ellcey <sje@cup.hp.com>
696 * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
697 (SET_TYPE_VECTOR_SUBPARTS): New.
698 * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
699 SET_TYPE_VECTOR_SUBPARTS.
700 * tree-vect-transform.c (vect_transform_loop): Add cast.
702 2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
704 * config/s390/s390.c (s390_decompose_address): Accept invalid
705 displacements for addresses containing frame_pointer_rtx or
706 virtual_stack_vars_rtx.
707 (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
708 (s390_initial_elimination_offset): New offset when eliminating the
710 * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
711 (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
713 2006-06-28 Ziemowit Laski <zlaski@apple.com>
715 * c-common.c (flag_next_runtime): Move...
716 * toplev.c (flag_next_runtime): ... here.
717 * c-common.h (flag_next_runtime): Move...
718 * flags.h (flag_next_runtime): ... here.
719 * config/darwin-c.c: Include flags.h.
720 * config/t-darwin (darwin-c.o): Depend on flags.h.
722 2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
724 * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
725 Disable aliasing warning with void * cast.
726 (sh_fallback_frame_state): Likewise.
728 2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
730 * target.h (gcc_target): New field allocate_initial_value.
731 * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
732 (TARGET_INITIALIZER): Include it.
733 * integrate.c (allocate_initial_values): Use
734 targetm.allocate_initial_value.
735 * system.h: Poison ALLOCATE_INITIAL_VALUE.
736 * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
737 * config/sh/sh.c (sh_pr_n_sets): Make it static.
738 (sh_allocate_initila_value): New function.
739 (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
740 * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
741 * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
742 update from ALLOCATE_INITIAL_VALUE.
744 2005-06-28 Richard Henderson <rth@redhat.com>
746 * tree-vectorizer.c (vect_is_simple_reduction): Compare types
747 using TYPE_MAIN_VARIANT.
749 2005-06-28 Richard Henderson <rth@redhat.com>
751 * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
752 when using psubN.uuu.
754 2005-06-29 Kelley Cook <kcook@gcc.gnu.org>
756 * doc/gcc.texi: Update FSF address.
758 2005-06-28 Eric Christopher <echristo@redhat.com>
762 * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
763 Use. Fix detection of invalid extern inline redefinition.
765 2005-06-28 Diego Novillo <dnovillo@redhat.com>
767 * tree-optimize.c (init_tree_optimization_passes): Fix typo.
769 2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
771 * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
773 2005-06-28 Richard Henderson <rth@redhat.com>
775 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
776 saturating subtraction for QI and HImode unsigned compares. Use
777 bit arithmetic tricks for SImode unsigned compares.
778 (ia64_expand_vcondu_v2si): Remove.
779 (ia64_expand_vecint_cmov): Don't call it.
781 2005-06-28 Richard Henderson <rth@redhat.com>
783 * rtlanal.c (nonzero_bits1): Use the mode of the value for
784 determining integral-ness for comparisons.
786 2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
788 * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
790 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
792 * target.h (invalid_conversion, invalid_unary_op,
793 invalid_binary_op): New hooks.
794 * target-def.h (TARGET_INVALID_CONVERSION,
795 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
796 TARGET_INITIALIZER): Likewise.
797 * hooks.h (hook_constcharptr_tree_tree_null,
798 hook_constcharptr_int_tree_null,
799 hook_constcharptr_int_tree_tree_null): New.
800 * hooks.c (hook_constcharptr_tree_tree_null,
801 hook_constcharptr_int_tree_null,
802 hook_constcharptr_int_tree_tree_null): Likewise.
803 * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
804 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
805 * c-convert.c (convert): Use invalid_conversion hook.
806 * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
807 (build_binary_op): Use invalid_binary_op hook.
808 * config/ia64/ia64-modes.def: Define RFmode.
809 * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
810 (ia64_expand_movxf_movrf): New.
811 * config/ia64/ia64.md (movxf): Move code to
812 ia64_expand_movxf_movrf.
813 (movrf, movrf_internal): New.
814 * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
815 ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
816 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
817 (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
818 Add mode parameter. Make static.
819 (ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
821 (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
822 ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
823 (ia64_init_builtins): Set up __fpreg as RFmode.
824 (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
826 2006-06-28 Adrian Straetling <straetling@de.ibm.com>
828 * builtins.c: (expand_builtin_memset): Rewrite to support
829 'set_storage_via_setmem'.
830 * expr.c: (enum insn_code setmem_optab): Define.
831 (enum insn_code clrmem_optab): Remove.
832 (set_storage_via_setmem): New function.
833 (clear_storage_via_setmem): Remove.
834 (clear_storage): Replace call to "clear_storage_via_clrmem" with
835 "set_storage_via_setmem".
836 * expr.h: (set_storage_via_setmem): Declare.
837 (CLEAR_RATIO): Redefine using HAVE_setmemM.
838 * optabs.h: (enum insn_code setmem_optab): Declare.
839 (enum insn_code clrmem_optab): Remove.
840 * optabs.c: (init_optabs): Initialize setmem_optab.
841 (enum insn_code clrmem_optab): Remove.
842 * genopinit.c: (otabs): Likewise.
843 * doc/md.texi: Document new standard pattern 'setmem'. Remove
845 * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
847 * config/frv/frv.c: (frv_expand_block_clear): Likewise.
848 * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
849 * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
850 FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
851 * config/avr/avr.md: ("clrmemhi"): Likewise.
852 * config/frv/frv.md: ("clrmemsi"): Likewise.
853 * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
854 * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
855 * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
856 * config/s390/s390.md: ("clrmem<mode>"): Likewise.
858 2005-06-28 Paul Brook <paul@codesourcery.com>
860 * Makefile.in: Set and use UNWIND_H. Install as unwind.h.
861 * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
862 * except.c (add_ehspec_entry): Generate arm eabi filter lists.
863 (assign_filter_values): Ditto.
864 (output_ttype): New function.
865 (output_function_exception_table): Use output_ttype. Generate arm
867 (default_init_unwind_resume_libfunc): New function.
868 * except.h (default_init_unwind_resume_libfunc): Add prototype.
869 * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
870 * opts.c (decode_options): Use targetm.unwind_tables_default.
871 * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
872 (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
873 * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
874 and arm_eabi_unwinder.
875 * unwind-c.c: Support Arm EABI unwinder.
876 * unwind.h: Rename ...
877 * unwind-generic.h: ... To this.
878 * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
879 (TARGET_UNWID_TABLES_DEFAULT): Document.
881 * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
882 * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
883 (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
885 (thumb_pushpop, thumb_output_function_prologue): Output unwinding
887 (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
888 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
890 (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
891 * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
892 * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
893 ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
894 * config/arm/lib1funcs.asm: Include libunwind.S.
895 * config/arm/libgcc-bpabi.ver: Add unwinding routines.
896 * config/arm/libunwind.S: New file.
897 * config/arm/pr-support.c: New file.
898 * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
899 (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
900 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
901 * config/arm/unwind-arm.c: New file.
902 * config/arm/unwind-arm.h: New file.
903 * config/i386/t-netware (USER_H): Remove unwind.h.
904 * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
906 2005-06-28 DJ Delorie <dj@redhat.com>
908 * c-decl.c (pop_scope): Move warning control into warning call.
909 (diagnose_mismatched_decls): Likewise.
910 (pushdecl): Likewise.
911 (start_decl): Likewise.
912 (grokparms): Likewise.
913 (start_function): Likewise.
914 (store_parm_decls_newstyle): Likewise.
915 (store_parm_decls_oldstyle): Likewise.
916 (finish_function): Likewise.
917 (declspecs_add_scspec): Likewise.
918 * c-format.c (decode_format_attr): Likewise.
919 (maybe_read_dollar_number): Likewise.
920 (avoid_dollar_number): Likewise.
921 (finish_dollar_format_checking): Likewise.
922 (check_format_info): Likewise.
923 (check_format_info_main): Likewise.
924 (check_format_types): Likewise.
925 (format_type_warning): Likewise.
926 * c-typeck.c (function_types_compatible_p): Likewise.
927 (build_array_ref): Likewise.
928 (convert_arguments): Likewise.
929 (build_c_cast): Likewise.
930 (store_init_value): Likewise.
931 (process_init_element): Likewise.
932 (c_start_case): Likewise.
933 * stor-layout.c (finalize_record_size): Likewise.
934 * tree-cfg.c (execute_warn_function_noreturn): Likewise.
935 * tree-inline.c (expand_call_inline): Likewise.
937 2005-06-28 Uros Bizjak <uros@kss-loka.si>
940 * config/i386/i386.md (fist<mode>2_with_temp splitter):
941 Clobber memory operand, not scratch register.
943 2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
945 * config/s390/s390.c (machine_function): New field has_landing_pad_p.
946 (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
947 s390_regs_ever_clobbered): New functions.
948 (s390_return_addr_rtx): Use get_hard_reg_initial_value.
949 (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
950 Use s390_regs_ever_clobbered.
951 (s390_emit_prologue): Don't use r14 as temp reg if its content is used
952 for builtin_return_address.
953 * config/s390/s390.md ("exception_receiver"): New expander.
954 * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
957 2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
959 * except.c (current_function_has_exception_handlers): Function
960 description added and if statements merged.
962 2005-06-28 Richard Henderson <rth@redhat.com>
964 * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
965 (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
967 2005-06-27 Richard Henderson <rth@redhat.com>
969 * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
970 comparison operations.
971 (ia64_expand_vecint_minmax): Fix size of xops.
972 * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
973 (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
975 2005-06-27 Richard Henderson <rth@redhat.com>
977 * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
978 type for DEF and INIT_VAL. Pretend MIN/MAX need epilogue adjustment.
980 2005-06-27 Richard Henderson <rth@redhat.com>
982 * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
983 (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
985 2005-06-27 Richard Henderson <rth@redhat.com>
987 * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
988 duplicate little-endian adjustment.
990 2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
992 * doc/include/texinfo.tex: Import from upstream CVS.
994 2005-06-28 Jan Hubicka <jh@suse.cz>
996 * cgraph.c (cgraph_remove_node): Do not release function bodies until
997 full cgraph is built.
998 * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
999 * cgraphunit.c (cgraph_finalize_function): Update call of
1000 cgraph_decide_inlining_incrementally.
1001 (initialize_inline_failed): Break out of ...
1002 (cgraph_analyze_function): ... here.
1003 (rebuild_cgraph_edges): New function.
1004 (pass_rebuild_cgraph_edges): New pass.
1005 * common.opt (fearly-inlining): New flag.
1006 * ipa-inline.c: Include ggc.h
1007 (cgraph_clone_inlined_nodes): Avoid re-using of original copy
1008 when cgraph is not fully built.
1009 (cgraph_decide_inlining_incrementally): Add early mode.
1010 (cgraph_early_inlining): New function.
1011 (cgraph_gate_early_inlining): Likewise.
1012 (pass_early_ipa_inline): New pass.
1013 * ipa.c (cgraph_postorder): NULLify aux pointer.
1014 * tree-inline.c (expand_call_inline): Avoid warning early.
1015 * tree-optimize.c (pass_early_local_passes): New.
1016 (execute_cleanup_cfg_pre_ipa): New.
1017 (pass_cleanup_cfg): New.
1018 (register_dump_files): Fix handling subpasses of IPA pass.
1019 (init_tree_optimization_passes): Add early passes.
1020 (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
1021 * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
1022 pass_early_ipa_inline): New passes.
1023 * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
1025 * invoke.texi: Document early-inlining.
1027 2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
1029 * doc/include/fdl.texi: Merge in changes from upstream.
1030 * doc/include/gpl.texi: Likewise.
1032 2005-06-27 Diego Novillo <dnovillo@redhat.com>
1035 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
1036 casts between unsigned and signed types with different size
1039 2005-06-28 Jan Hubicka <jh@suse.cz>
1041 * tree-optimize.c (exercute_free_datastructures):
1042 Do not disband implicit edges; do not attempt to build insn list;
1043 do not free cfg annotations.
1044 (execute_free_cfg_annotations); Disband implicit edges here;
1045 free cfg annotations here too.
1046 (pass_free_cfg_annotations); New pass.
1047 (init_tree_optimization_passes); Add pass_free_cfg_annotations.
1048 * tree-ssa-operands.c (free_ssa_operands); Recover; export.
1049 * tree-ssa-operands.h (free_ssa_operands); declare.
1050 * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
1052 * tree-ssanames.c (release_defs): Kill addresses_taken.
1054 * basic-block.h (basic_block_def): Kill rbi.
1055 (reorder_block_def): Kill; Remove next field (replaced by aux);
1056 move other fields to ...
1057 (rtl_bb_info): ... here.
1058 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
1059 copy_bb, connect_traces, add_labels_and_missing_jumps
1060 fix_up_fall_thru_edges, fix_crossing_conditional_branches,
1061 duplicate_computed_gotos, partition_hot_cold_basic-blocks):
1062 Update to new fields.
1063 * cfg.c (initialize_bb_rbi): Kill.
1064 * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
1065 fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
1066 * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
1067 (try_redirect_by_replacing_jump): Update rbi references.
1068 (cfg_layout_split_block): Likewise.
1069 (cfg_layout_delete_block): Likewise.
1070 (cfg_layout_merge_blocks): Likewise.
1071 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1072 * passes.c (rest_of_handle_sms): Likewise.
1073 * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
1075 2005-06-27 David Edelsohn <edelsohn@gnu.org>
1077 * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
1078 in verbose_asm output.
1079 * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
1081 * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
1084 2005-06-27 Jakub Jelinek <jakub@redhat.com>
1086 * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
1087 (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
1088 (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
1089 (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
1090 ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
1091 * builtins.c: Include tree-flow.h.
1092 (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
1093 (expand_builtin_object_size, expand_builtin_memory_chk,
1094 maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
1095 compute_object_offset, compute_builtin_object_size,
1096 fold_builtin_object_size): New functions.
1097 (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
1098 (fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
1099 and BUILT_IN_{,F}PRINTF_UNLOCKED.
1100 (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
1101 fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
1102 fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
1103 fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
1105 * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
1106 BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
1107 BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
1108 BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
1109 BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
1110 BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
1111 BUILT_IN_VPRINTF_CHK): New builtins.
1112 * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
1114 (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
1115 BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
1116 BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
1117 BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
1118 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
1119 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
1120 BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
1121 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
1122 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
1123 * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
1124 DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
1125 * Makefile.in (OBJS-common): Add tree-object-size.o.
1126 (tree-object-size.o): Add dependencies.
1127 * tree-pass.h (pass_object_sizes): Add.
1128 * tree-optimize.c (init_tree_optimization_passes): Add
1130 * tree-object-size.c: New file.
1131 * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
1132 fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
1133 compute_builtin_object_size, init_object_sizes, fini_object_sizes):
1135 * tree-ssa-ccp.c (get_strlen): Rename to ...
1136 (get_maxval_strlen): ...this function. Handle also computing of maximum
1137 string length and maximum integral value.
1138 (ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
1139 instead of get_strlen. Pass CALLEE and ARGLIST variables to the
1140 folding functions instead of computing them again.
1141 (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
1142 into some other builtin.
1143 * doc/extend.texi (Object Size Checking): Document.
1145 * regrename.c (copy_value): Fix comment.
1147 * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
1148 instead of preprocessor conditionals.
1150 * targhooks.c (default_hidden_stack_protect_fail): Fall back to
1151 default_external_stack_protect_fail if visibility is not supported
1153 * config/i386/i386.c (ix86_stack_protect_fail): New function.
1154 (TARGET_STACK_PROTECT_FAIL): Define.
1155 * config/i386/i386.md (stack_protect_si): Change CLOBBER into
1157 (stack_protect_di): Likewise. Use %k2 instead of %2 to avoid
1158 invalid instruction xorl %rax, %rax.
1160 2005-06-27 Richard Henderson <rth@redhat.com>
1162 * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
1163 * cfgexpand.c: Include params.h.
1164 (has_protected_decls, has_short_buffer): New.
1165 (expand_stack_vars): Take a predicate to determine what to expand.
1166 (defer_stack_allocation): True when flag_stack_protect on.
1167 (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
1168 (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
1169 (stack_protect_classify_type, stack_protect_decl_phase): New.
1170 (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
1171 (add_stack_protection_conflicts, create_stack_guard): New.
1172 (expand_used_vars): Add stack protection logic.
1173 (tree_expand_cfg): Likewise.
1174 * common.opt (Wstack-protector): New.
1175 (fstack-protector, fstack-protector-all): New.
1176 * function.c: Include predict.h.
1177 (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
1178 wants to copy the parameter into the stack frame.
1179 (stack_protect_prologue, stack_protect_epilogue): New.
1180 (expand_function_end): Call stack_protect_epilogue. Do
1181 sjlj_emit_function_exit_after after naked_return_label.
1182 * function.h (struct function): Add stack_protect_guard.
1183 * params.def (PARAM_SSP_BUFFER_SIZE): New.
1184 * toplev.c (process_options): Disable flag_stack_protect and/or
1185 warn_stack_protect based on FRAME_GROWS_DOWNWARD.
1186 * tree.h (stack_protect_prologue): Declare.
1188 * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
1189 (TARGET_STACK_PROTECT_FAIL): New.
1190 (TARGET_INITIALIZER): Add them.
1191 * target.h (struct gcc_target): Add stack_protect_guard and
1193 * targhooks.c: Include ggc.h, gty header.
1194 (stack_chk_guard_decl, default_stack_protect_guard): New.
1195 (stack_chk_fail_decl, default_external_stack_protect_fail): New.
1196 (default_hidden_stack_protect_fail): New.
1197 * targhooks.h (default_stack_protect_guard): Declare.
1198 (default_external_stack_protect_fail): Declare.
1199 (default_hidden_stack_protect_fail): Declare.
1200 * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
1201 * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
1203 (conditional_trap, conditional_trap_1): Remove.
1204 (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
1205 (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
1206 * doc/md.texi (stack_protect_set, stack_protect_test): New.
1207 * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
1208 (TARGET_STACK_PROTECT_FAIL): New.
1210 * libgcc-std.ver (GCC_4.1.0): New.
1211 * libgcc.h (__stack_chk_guard): Declare.
1212 (__stack_chk_fail, __stack_chk_fail_local): Declare.
1213 * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
1214 * mklibgcc.in (lib2funcs): Add them.
1216 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1219 * c-common.c (check_function_sentinel): Pass in named argument
1220 list, skip over named arguments before looking for a sentinel.
1221 (check_function_arguments): Pass in named argument list.
1222 * c-common.h (check_function_arguments): Likewise.
1223 * c-typeck.c (build_function_call): Likewise.
1225 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1227 * genautomata.c (decl_mode_check_failed,
1228 regexp_mode_check_failed): Add noreturn attribute.
1230 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1232 * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
1233 * doc/invoke.texi: Fix typos.
1235 * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
1236 convert.c, lambda-code.c, predict.c, tree-cfg.c,
1237 tree-complex.c, tree-data-ref.c, tree-if-conv.c,
1238 tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
1239 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
1240 tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1241 tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
1242 tree.c: Use fold_buildN instead of fold (buildN (...)).
1244 2005-06-26 Gerald Pfeifer <gerald@pfeifer.com>
1246 * doc/install.texi (Specific): Do not specify the concrete
1247 versions of GCC provided by Cygwin. Simplify the part on
1250 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1252 * config/arc/arc-protos.c: Remove the prototype for
1254 * config/arc/arc.c (arc_finalize_pic): Remove.
1255 * config/arc/arc.h (FINALIZE_PIC): Likewise.
1256 * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
1257 * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
1259 2005-06-26 Jakub Jelinek <jakub@redhat.com>
1262 * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
1263 instead of alloca for really big argument sizes.
1266 * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
1267 earlier in the function.
1269 * regrename.c (copy_value): Don't replace fixed or global
1270 regs with older regs.
1272 * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
1273 * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
1274 instead of preprocessor conditionals.
1275 (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
1276 * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
1277 depending on if it was or was not defined previously.
1278 * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
1279 definition of FRAME_GROWS_DOWNWARD means frame grows downward.
1280 * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
1281 * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
1283 * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
1284 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
1285 * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
1286 * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
1287 * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
1288 * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
1289 * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
1290 * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
1292 * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
1293 * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
1294 * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
1295 * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
1296 * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
1297 * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
1298 * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
1299 * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
1300 * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
1301 * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
1302 * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
1303 * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
1304 * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
1305 * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
1306 * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
1307 * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
1308 * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
1309 * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
1310 * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
1312 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1314 PR tree-optimization/22026
1315 * tree-vrp.c (extract_range_from_binary_expr): Drop to
1316 VR_VARYING if a binary expression involving VR_ANTI_RANGE is
1317 PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
1319 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1321 * Makefile.in (OBJS-common): Remove duplicate object file
1324 2005-06-25 Jan Hubicka <jh@suse.cz>
1326 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
1327 * cfg.c (update_bb_profile_for_threading): Fix rescaling.
1329 * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
1331 (rest_of_compilation): Fix conditional on branch prob pass.
1332 * predict.c (tree_estimate_probability): Enable strip_builtin_expect
1333 when not loop optimizing.
1335 2005-06-25 Bernd Schmidt <bernd.schmidt@analog.com>
1337 * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
1339 (movbi): Add alternative to set CC to zero.
1340 (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
1341 compare_ltu): Now named patterns.
1343 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1345 * all files: Update FSF address in copyright headers.
1347 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1349 * gengtype.c: Update FSF address in copyright header.
1350 (create_file): Update FSF in outputed copyright header.
1352 2005-06-24 Kazu Hirata <kazu@codesourcery.com>
1354 * cfglayout.c (block_locators_locs, line_locators_locs,
1355 line_locators_lines, file_locators_locs): Change the type to
1357 (insn_locators_initialize, change_scope, insn_scope,
1358 locator_line, insn_line, locator_file): Use VEC instead of
1361 2005-06-24 Jason Merrill <jason@redhat.com>
1363 * tree-nrv.c (tree_nrv): Fix to check assignments to the
1364 RESULT_DECL rather than just RETURN_EXPRs.
1365 (finalize_nrv_r): Adjust.
1367 2005-06-24 Jan Hubicka <jh@suse.cz>
1369 * tree-optimize.c (init_tree_optimization_passes): Fix flags of
1370 all_passes and all_ipa_passes.
1372 * c-common.c: Include cgraph.h
1373 (handle_externally_visible_attribute): New function.
1374 (c_common_att): Add "externally_visible" attribute.
1375 * cgraph.c (decide_is_variable_needed): Obey externally
1377 (cgraph_varpool_finalize_decl): Avoid redundant checking.
1378 * cgraph.h (struct cgraph_node): New flag externally_visible.
1379 (decide_is_function_needed): Obey externally visible flag.
1380 (cgraph_finalize_function): Avoid redundant checks.
1381 (cgraph_function_and_variable_visibility): Bring symbols local
1383 * common.opt (fwhole-program): New flag.
1385 * doc/invoke.texi (-fwhole-program): Document.
1387 2005-06-24 Mark Mitchell <mark@codesourcery.com>
1390 * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
1393 2005-06-23 Mark Mitchell <mark@codesourcery.com>
1396 * tree-ssa-operands.c (get_expr_operands): Check the volatility of
1397 the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
1399 2005-06-24 Jan Hubicka <jh@suse.cz>
1401 * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
1403 2005-06-23 Jeff Law <law@redhat.com>
1405 * tree-optimize.c (init_tree_optimization_passes): Move
1406 copy prop pass to run just before VRP.
1407 * tree-vrp.c (remove_range_assertions): Remove copies created
1408 by ASSERT_EXPR removal.
1410 2005-06-23 Kazu Hirata <kazu@codesourcery.com>
1412 PR tree-optimization/22117
1413 * tree-vrp.c (extract_range_from_binary_expr): Compute a
1414 correct range when adding two pointers.
1416 2005-06-23 Jason Merrill <jason@redhat.com>
1419 Leave the return slot target in the MODIFY_EXPR rather than making
1420 it an argument, but only use it if the CALL_EXPR has a flag set.
1421 * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
1422 CALL_EXPR_RETURN_SLOT_OPT.
1423 * calls.c (expand_call): Adjust.
1424 * tree-inline.c (expand_call_inline): Adjust.
1425 * tree-pretty-print.c (dump_generic_node): Adjust.
1427 And set the flag as appropriate.
1428 * gimplify.c (gimplify_modify_expr_rhs): Set
1429 CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
1430 * tree-nrv.c (execute_return_slot_opt): Set
1431 CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
1432 * tree-pass.h: Declare pass_return_slot.
1433 * tree-optimize.c (init_tree_optimization_passes): Add it.
1435 2005-06-23 David Edelsohn <edelsohn@gnu.org>
1438 * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
1439 * config/rs6000/rs6000.md: Move atomic instructions to ...
1440 * config/rs6000/sync.md: Here.
1441 Change sync_compare_and_swap<mode> to define_expand. All stwcx
1442 patterns test PPC405_ERRATUM77.
1444 2005-06-23 Jan Hubicka <jh@suse.cz>
1446 * tree-inline.c (copy_body_r): Remap labels correctly.
1448 2005-06-22 Alan Modra <amodra@bigpond.net.au>
1450 * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
1452 2005-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1455 * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
1456 the same as the other cast operands.
1457 (output_addressed_constants): Likewise.
1459 2005-06-21 Jeff Law <law@redhat.com>
1461 * tree-vrp.c (extract_range_from_unary_expr): Handle type
1464 2005-06-21 Dorit Nuzman <dorit@il.ibm.com>
1466 * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
1467 (reduc_plus_optab): Removed. Replcaed with...
1468 (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
1469 * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
1470 reduc_uplus_optab instead of reduc_plus_optab.
1471 (expand_vec_shift_expr): New function.
1472 (init_optabs): Initialize new optabs. Remove initialization of
1474 (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
1475 for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
1476 * optabs.h (OTI_reduc_plus): Removed. Replaced with...
1477 (OTI_reduc_splus, OTI_reduc_uplus): New.
1478 (reduc_plus_optab): Removed. Replcaed with...
1479 (reduc_splus_optab, reduc_uplus_optab): New optabs.
1480 (vec_shl_optab, vec_shr_optab): New optabs.
1481 (expand_vec_shift_expr): New function declaration.
1483 * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
1484 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1485 * expr.c (expand_expr_real_1): Handle new tree-codes.
1486 * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
1487 * tree-vect-generic.c (expand_vector_operations_1): Add assert.
1489 * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
1490 alternatives for generating reduction epilog code.
1491 (vectorizable_reduction): Don't fail of direct reduction support is
1493 (vectorizable_target_reduction_pattern): Likewise.
1495 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1496 reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
1497 reduc_plus_v4si, reduc_plus_v4sf): Removed.
1498 (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
1499 reduc_splus_<mode>, reduc_uplus_v16qi): New.
1501 2005-06-20 Daniel Berlin <dberlin@dberlin.org>
1503 * c-typeck.c (build_function_call): Set fundecl = function again.
1504 * tree-ssa-alias.c (find_used_portions): Address taking causes the
1505 entire variable to be used.
1506 * tree-ssa-structalias.c (do_structure_copy): Fix handling of
1507 unknown size variables, and structure copies from addressof
1508 operations. Simplify how we do *a = *b type structure copies.
1509 (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
1510 way. READONLY's address is not taken by default.
1511 INTEGER dereference should point to anything.
1512 (create_variable_info_for): It's okay for the first field to not start
1515 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
1517 config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
1519 2005-06-20 Roger Sayle <roger@eyesopen.com>
1520 Fariborz Jahanian <fjahanian@apple.com>
1522 * combine.c (simplify_set): Simplify setting of CC register
1523 by removing redundant compare with 0 on RHS.
1525 2005-06-20 Jan Beulich <jbeulich@novell.com>
1527 * config/i386/netware-libgcc.def: Update copyright.
1528 * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
1529 __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
1530 * config/i386/netware.c (gen_stdcall_decoration,
1531 gen_fastd_decoration): Merge into ...
1532 (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
1534 (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
1535 (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
1536 * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
1537 libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
1538 * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
1539 use of NX_MUTEX_RECURSIVE.
1541 2005-06-19 Roger Sayle <roger@eyesopen.com>
1543 * fold-const.c (swap_tree_comparison): Add support for unordered
1544 floating point comparisons.
1545 * tree-vrp.c (opposite_comparison): Delete.
1546 (extract_range_from_assert): Replace calls to opposite_comparison
1547 with calls to swap_tree_comparison.
1548 (register_edge_assert_for): Likewise.
1549 (vrp_evaluate_conditional): Likewise.
1551 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
1553 * integrate.c (allocate_initial_values): Update the references
1554 to global_live_at_start and global_live_at_end.
1556 2005-06-20 Jan Hubicka <jh@suse.cz>
1558 * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
1559 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
1561 * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
1562 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1563 Update call of duplicate_loop_to_header_edge.
1564 (apply_opt_in_copies): Clear out aux pointers.
1566 2005-06-19 Joseph S. Myers <joseph@codesourcery.com>
1568 * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1569 (ix86_mangle_fundamental_type): New.
1570 * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1571 (ia64_mangle_fundamental_type): New.
1573 2005-06-19 Roger Sayle <roger@eyesopen.com>
1575 * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
1577 * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
1578 CONSTANT_CLASS_P nodes.
1580 2005-06-19 Richard Henderson <rth@redhat.com>
1582 * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
1583 the shift is always required.
1585 2005-06-19 Richard Henderson <rth@redhat.com>
1587 * config/ia64/ia64-modes.def (V4SF): Add.
1588 * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
1589 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
1590 integer mode changes in fp regs.
1591 * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
1592 * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
1593 (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
1594 (vcondv2sf): Use gen_fpack
1595 (fpack): Remove * from name.
1596 (fswap, fmix_l, fmix_r, fmix_lr): New.
1597 (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
1598 (vec_extractv2sf_1, vec_extractv2sf): New.
1600 2005-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
1602 * combine.c (make_compound_operation): Use simplify_subreg. Delete
1603 a optimization already done by simplify_subreg.
1605 2005-06-19 Ulrich Weigand <uweigand@de.ibm.com>
1607 * loop.c (scan_loop): Do not consider insns setting the frame
1608 pointer to be candidates for hoisting.
1610 2005-06-19 Uros Bizjak <uros@kss-loka.si>
1612 * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
1613 Remove instruction patterns.
1614 (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
1615 (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
1616 Set "unit" attribute to "i387".
1617 (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
1618 (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
1620 (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
1621 (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
1622 attribute to "i387" when "type" attribute equals "multi".
1623 (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
1624 (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
1625 (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
1626 (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
1627 attribute to "i387" when "type" attribute equals "multi".
1628 * config/i386/mmx.md (*mov<mode>_internal_rex64)
1629 (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
1630 Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
1631 (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
1632 * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
1633 (sse_cvttpd2pi): Set "unit" attribute to "mmx".
1634 (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
1635 to "mmx" for "y" operand 1.
1637 2005-06-19 Uros Bizjak <uros@kss-loka.si>
1639 * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
1640 for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
1641 and SSE registers to determine if regno is valid.
1642 (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
1643 TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
1645 2005-06-18 Richard Henderson <rth@redhat.com>
1647 * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
1648 for control-altering statements; set it again for returns.
1649 (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
1652 2005-06-18 Richard Henderson <rth@redhat.com>
1655 * tree-ssa-pre.c (create_expression_by_pieces): Set
1656 DECL_COMPLEX_GIMPLE_REG_P.
1657 (insert_into_preds_of_block): Likewise.
1659 2005-06-18 Steven Bosscher <stevenb@suse.de>
1661 * Makefile.in: Fix tree-cfgcleanup.c dependencies.
1663 2005-06-18 Richard Henderson <rth@redhat.com>
1665 * expr.c (store_constructor): Use store of 0 to indicate value
1666 death instead of a clobber.
1668 * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
1669 * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
1670 * config/i386/sse.md (reduc_plus_v4sf): New.
1671 (reduc_smax_v4sf, reduc_smin_v4sf): New.
1673 2005-06-18 James A. Morrison <phython@gcc.gnu.org>
1675 * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
1676 nonnegative values of X.
1678 2005-06-18 Uros Bizjak <uros@kss-loka.si>
1680 * doc/md.texi (Standard Names): Change insn pattern name
1681 from truncM2 to btruncM2 for 'trunc' built-in description.
1682 Add rintM2 insn pattern description.
1684 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1686 * c-decl.c (locate_old_decl): Add format attribute.
1687 (implicit_decl_warning): Likewise.
1689 * diagnostic.h (verbatim): Move ...
1690 * toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG.
1691 * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
1693 2005-06-18 Roger Sayle <roger@eyesopen.com>
1696 * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
1698 2005-06-18 Dorit Nuzman <dorit@il.ibm.com>
1700 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
1702 * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
1703 OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
1704 (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1705 reduc_plus_optab): New optabs for reduction.
1706 * expr.c (expand_expr_real_1): Handle new tree-codes.
1707 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1708 * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
1710 * optabs.c (optab_for_tree_code): Handle new tree-codes.
1711 (init_optabs): Initialize new optabs.
1712 * genopinit.c (optabs): Define handlers for new optabs.
1714 * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
1715 case of a phi that is marked as relevant. Call vectorizable_reduction.
1716 (vect_mark_relevant): Phis may be marked as relevant.
1717 (vect_mark_stmts_to_be_vectorized): The use corresponding to the
1718 reduction variable in a reduction stmt does not mark its defining phi
1719 as relevant. Update documentation accordingly.
1720 (vect_can_advance_ivs_p): Skip reduction phis.
1721 * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
1722 additional argument. Handle reduction.
1723 (vect_create_destination_var): Update call to vect_get_new_vect_var.
1724 Handle non-vector argument.
1725 (get_initial_def_for_reduction): New function.
1726 (vect_create_epilog_for_reduction): New function.
1727 (vectorizable_reduction): New function.
1728 (vect_get_new_vect_var): Handle new vect_var_kind.
1729 (vectorizable_assignment, vectorizable_operation, vectorizable_store,
1730 vectorizable_condition): Update call to vect_get_new_vect_var.
1731 (vect_transform_stmt): Call vectorizable_reduction.
1732 (vect_update_ivs_after_vectorizer): Skip reduction phis.
1733 (vect_transform_loop): Skip if stmt is both not relevant and not live.
1734 * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1735 (vect_is_simple_reduction): Was empty - added implementation.
1736 * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1737 (reduc_vec_info_type): New enum vect_def_type value.
1738 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1739 reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1740 reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1742 * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1743 ENABLE_CHECKING around gcc_assert.
1744 * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1745 (vect_do_peeling_for_alignment, vect_transform_loop,
1746 vect_get_vec_def_for_operand): Likewise.
1748 2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
1750 * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1751 big-endian unnamed __float80 value.
1753 2005-06-18 Richard Henderson <rth@redhat.com>
1756 * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1759 2005-06-17 Richard Henderson <rth@redhat.com>
1761 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1762 initialize_original_copy_tables and free_original_copy_tables.
1763 (vect_do_peeling_for_alignment): Likewise.
1765 2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
1767 * bb-reorder.c (find_traces_1_round): Use succ block frequency
1768 instead of edge frequency for calls to better_edge_p.
1770 2005-06-17 Andrew Pinski <pinskia@physics.uc.edu>
1773 * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1775 2005-06-17 Steve Ellcey <sje@cup.hp.com>
1778 * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1779 (PROFILE_HOOK): New.
1780 (PROFILE_BEFORE_PROLOGUE): Undef.
1781 (NO_PROFILE_COUNTERS): New.
1782 * config/ia64/ia64-protos.h (ia64_profile_hook): New.
1783 * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1784 (gen_mcount_func_rtx): New.
1785 (ia64_profile_hook): New.
1786 * config/ia64/ia64.md (ip_value): New.
1788 2005-06-17 Devang Patel <dpatel@apple.com>
1790 * config/rs6000/predicates.md (s5bit_cint_operand,
1791 u5bit_cint_operand): New.
1792 * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1793 altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1794 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1795 5 bit constant check.
1797 2005-06-17 Richard Henderson <rth@redhat.com>
1799 * local-alloc.c (update_equiv_regs): Update reg_equiv_init
1800 properly when moving an initialization insn.
1802 2005-06-17 Paolo Bonzini <bonzini@gnu.org>
1804 * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1806 * configure.ac: Regenerate.
1808 2005-06-17 Jan Hubicka <jh@suse.cz>
1810 * tree-optimize.c (execute_ipa_pass_list): New.
1811 (ipa_passes): Use it.
1813 2005-06-16 Richard Henderson <rth@redhat.com>
1816 * tree-complex.c (update_phi_components): Avoid no-op moves.
1818 2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
1820 * Makefile.in (cc1-checksum.c): Use
1821 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1823 2005-06-16 Geoffrey Keating <geoffk@apple.com>
1825 * gengtype.c (adjust_field_rtx_def): Don't add a skip to
1828 * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1830 (SHLIB_REVISION): Delete.
1831 (SHLIB_VERSTRING): Update to compensate.
1832 (SHLIB_SONAME): Just use one '.' in the name.
1834 2005-06-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1836 PR tree-optimization/22018
1837 * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1839 2005-06-16 Richard Henderson <rth@redhat.com>
1842 * builtins.c (fold_builtin_complex_mul): Remove.
1843 (fold_builtin_complex_div): Remove.
1844 (fold_builtin_1): Don't call them.
1845 * fold-const.c (fold_complex_add, fold_complex_mult_parts,
1846 fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1847 (fold_binary): Don't call them. Don't expand complex comparisons to
1848 elementary comparisons.
1849 * tree-complex.c (init_dont_simulate_again): Enhance search for
1850 stmts that require decomposition.
1851 (complex_visit_stmt): Handle RETURN_EXPR properly.
1852 (create_components): Handle no referenced variables properly.
1853 * tree.h (fold_complex_mult_parts): Remove.
1854 (fold_complex_div_parts): Remove.
1856 2005-06-16 Richard Guenther <rguenth@gcc.gnu.org>
1858 * doc/extend.texi: Document sseregparm target attribute.
1859 Clarify fastcall and regparm documentation.
1860 * config/i386/i386.h: Adjust float_in_sse documentation.
1861 * config/i386/i386.c: Add new target attribute sseregparm.
1862 (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1864 (ix86_handle_cconv_attribute): ... here. Also handle
1865 sseregparm attribute.
1866 (ix86_comp_type_attributes): Compare sseregparm attributes.
1867 (ix86_function_sseregparm): New function, split out from ...
1868 (init_cumulative_args): ... here. Use to decide use
1869 of SSE registers and error in case of missing support.
1870 (ix86_value_regno): Likewise.
1871 (function_arg_advance): Do not bail out for DFmode if we need
1872 to pass doubles in registers.
1873 (function_arg): Likewise.
1875 2005-06-16 Paolo Bonzini <bonzini@gnu.org>
1876 Daniel Jacobowitz <dan@codesourcery.com>
1877 Alan Modra <amodra.bigpond.net.au>
1879 * configure.ac (gcc_version): Set near the beginning.
1880 (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
1881 found in the tree. Use gcc_AC_PROG to find the tools in the system.
1882 (objdump): Do not look for it.
1883 * Makefile.in (NM_FOR_TARGET): Point to ./nm
1884 (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1885 ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1886 (as, ld, nm): New rules.
1887 (libgcc.mk): Depend on them.
1888 * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1889 gcc_AC_BUILD_EXEEXT): New.
1890 (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1891 * configure: Regenerate.
1893 2005-06-16 Jan Hubicka <jh@suse.cz>
1895 * basic-block.h (rtl_bb_info): Break out head_, end_,
1896 global_live_at_start, global_live_at_end from ...
1897 (basic_block_def): ... here; update all references
1899 (init_rtl_bb_info): Declare.
1900 * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1902 * cfgrtl.c: Include ggc.h
1903 (create_basic_block_structure): Init bb info.
1904 (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1905 (init_rtl_bb_info): New function.
1906 (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1907 * cfghooks.c (merge_block): Do not copy global_live_at_end here.
1908 * cfg.c (clear_bb_flags): Skip BB_RTL flag.
1909 (dump_flow_info): Gueard global_live_* dumping.
1911 * Makefile.in (cfg.o): Add new dependencies.
1912 * basic-block.h (reorder_block_def): Kill
1913 original/copy/duplicated/copy_number fields.
1914 (BB_DUPLICATED): New flag.
1915 (initialize_original_copy_tables, free_original_copy_tables,
1916 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1917 * cfg.c: Include hashtab.h and alloc-pool.h
1918 (bb_original, bb_copy, original_copy_bb_pool): New static vars.
1919 (htab_bb_copy_original_entry): New struct.
1920 (bb_copy_original_hash, bb_copy_original_eq): New static functions.
1921 (initialize_original_copy_tables, free_original_copy_tables,
1922 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1924 * cfghooks.c (duplicate_block): Update original/copy handling.
1925 * cfglayout.c (fixup_reorder_chain): Likewise.
1926 (cfg_layout_initialize): Initialize orignal_copy tables.
1927 (cfg_layout_finalize): FInalize original_copy tables.
1928 (can_copy_bbs_p): Use BB_DUPLICATED flag.
1929 (copy_bbs): Likewise.
1930 * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1931 (duplicate_loop_to_header_edge): Likewise; update handling of
1933 (loop_version): Likewise.
1934 * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1935 * except.c (expand_resx_expr): Check that reg->resume is not set.
1936 * loop-unroll.c (unroll_loop_constant_iterations,
1937 unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1938 copy/original handling.
1939 * loop-unwitch.c (unswitch_loop): Likewise.
1940 * tree-cfg.c (create_bb): Do not initialize RBI.
1941 (disband_implicit_edges): Do not kill RBI.
1942 (add_phi_args_after_copy_bb): Use new original/copy mapping.
1943 (add_phi_args_after_copy): Use BB_DUPLICATED flag.
1944 (tree_duplicate_sese_region): Update original/copy handling.
1945 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1946 * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1947 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1949 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
1952 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1953 integer types whos ranges are different are not useless.
1955 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
1958 * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1961 2005-06-15 Diego Novillo <dnovillo@redhat.com>
1963 * tree-ssa-structalias.c (dump_solution_for_var): Reformat
1965 (dump_sa_points_to_info): Make extern.
1966 (debug_sa_points_to_info): New.
1967 * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1969 (dump_sa_points_to_info): Declare.
1970 (debug_sa_points_to_info): Declare.
1972 2005-06-15 Joseph S. Myers <joseph@codesourcery.com>
1974 * c-tree.h (default_function_array_conversion): Declare.
1975 * c-typeck.c (default_function_array_conversion): Export. Correct
1977 (default_conversion): Do not call
1978 default_function_array_conversion. Do not allow FUNCTION_TYPE.
1979 (build_function_call): Call default_function_array_conversion on
1981 (convert_arguments): Do not call it on the function arguments.
1982 (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1983 TRUTH_NOT_EXPR. Call default_function_array_conversion for taking
1984 address of ARRAY_REF.
1985 (build_compound_expr): Do not call
1986 default_function_array_conversion.
1987 (build_c_cast): Do not call default_function_array_conversion.
1988 (convert_for_assignment): Do not call default_conversion.
1989 (digest_init): Call default_function_array_conversion to convert
1990 string constants and compound literals to pointers, but not
1992 (output_init_element): Likewise.
1993 (build_asm_expr): Do not call default_function_array_conversion.
1994 (c_process_expr_stmt): Likewise.
1995 (c_objc_common_truthvalue_conversion): Likewise. Do not allow
1997 * c-parser.c (c_parser_expression_conv): New.
1998 (c_parser_asm_operands, c_parser_expr_list): Add convert_p
1999 argument. All callers changed. Call
2000 default_function_array_conversion if convert_p.
2001 (c_parser_initializer, c_parser_initval): Call
2002 default_function_array_conversion except for string constants and
2004 (c_parser_initelt): Call default_function_array_conversion for
2005 ObjC expression received.
2006 (c_parser_statement_after_labels): Call c_parser_expression_conv
2007 for return and expression statements.
2008 (c_parser_paren_condition, c_parser_for_statement,
2009 c_parser_conditional_expression): Call c_parser_expression_conv.
2010 (c_parser_expr_no_commas, c_parser_conditional_expression,
2011 c_parser_binary_expression, c_parser_cast_expression,
2012 c_parser_unary_expression): Call
2013 default_function_array_conversion.
2015 2005-06-15 Diego Novillo <dnovillo@redhat.com>
2017 * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
2018 when the result overflows.
2020 2005-06-15 David Ung <davidu@mips.com>
2022 * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
2025 2005-06-15 Richard Sandiford <richard@codesourcery.com>
2027 * doc/invoke.texi (-mips16): Fix typo.
2029 2005-06-15 David Ung <davidu@mips.com>
2031 * config/mips/mips.h (GENERATE_MIPS16E): New definition.
2032 * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
2033 Changed expand condition to exclude generating of "and" if
2034 GENERATE_MIPS16E is true.
2035 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
2036 matching mips16e zeb/zeh.
2037 (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
2039 (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
2041 * doc/invoke.texi (MIPS Options): Add comment to -mips16
2042 indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
2044 2005-06-15 Diego Novillo <dnovillo@redhat.com>
2047 * tree-vrp.c (vrp_int_const_binop): New.
2048 (extract_range_from_binary_expr): Call it.
2049 Unify handling division and multiplication.
2051 2005-06-15 Aldy Hernandez <aldyh@redhat.com>
2053 * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
2055 * c-common.c (same_scalar_type_ignoring_signedness): New.
2057 * c-typeck.c (build_binary_op): Check compatability of vector
2058 types. Move error report after switch.
2059 Do not clobber code[01] on *_DIV_EXPR case.
2061 * testsuite/gcc.dg/simd-1.c: Update error messages.
2062 * testsuite/gcc.dg/simd-1b.c: Re-enable tests. Update error
2064 * testsuite/gcc.dg/simd-2.c: Update error messages.
2065 * testsuite/gcc.dg/simd-4.c: New.
2067 2005-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
2069 * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
2070 * local-alloc.c: Include "ggc.h" and "reload.h".
2071 (struct equivalence): New member is_arg_equivalence.
2072 (local_alloc): Always call update_equiv_regs.
2073 (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
2074 Detect equivalences made by stores to memory in a second pass.
2075 Return early if not optimizing.
2076 Initialize reg_equiv_init for all equivalences; treat equivalences for
2077 REG_EQUIV notes existing before this pass specially.
2078 (no_equiv): Don't clear reg_equiv_init or remove notes if the
2079 is_arg_equivalence field is set.
2080 * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
2081 * reload1.c (reg_equiv_init): No longer static.
2082 (reg_equiv_init_size): New variable.
2083 (reload): Don't allocate reg_equiv_init; don't free it when done but
2085 Restructure equivalence set up code not to set reg_equiv_init, but to
2086 clear it when we can't use an equivalence.
2087 Undo change disabling equivalences for MEM_READONLY_P memrefs.
2088 Dump equivalencing insns to dump_file.
2090 2005-06-14 Richard Sandiford <richard@codesourcery.com>
2092 * config/mips/mips.c (machine_function): Add varargs_size field.
2093 (mips_setup_incoming_varargs): Store the amount of extra stack space
2094 there rather than in *pretend_size. When saving registers, always
2095 expect virtual_incoming_args_rtx to point to the start of the
2097 (mips_va_start): Remove alignment hack. Handle all
2098 !EABI_FLOAT_VARARGS_P cases in the same way.
2099 (compute_frame_size): Handle varargs_size. Remove the redundant
2100 !TARGET_OLDABI condition in the handling of pretend_args_size.
2101 (mips_initial_elimination_offset): Remove the now-redundant check
2104 2005-06-14 Jeff Law <law@redhat.com>
2106 * tree-vrp.c (local_fold): Remove.
2107 (simplify_using_ranges): Use fold_convert, not local_fold. Tweak
2108 DIV/MOD case slightly for readability.
2110 2005-06-14 Frank Ch. Eigler <fche@redhat.com>
2113 * tree-mudflap.c (mudflap_finish_file): Exclude non-public
2114 rather than static objects (!) from libmudflap registration.
2116 2005-06-14 Richard Sandiford <richard@codesourcery.com>
2118 * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
2119 (var_ref): Take the option's flags as a second parameter. Check
2121 * optc-gen.awk: Declare local state variables. Pass flags to var_ref.
2123 2005-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
2126 * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
2127 unsigned index numbers.
2129 2005-06-13 Geoffrey Keating <geoffk@apple.com>
2131 * Makefile.in (install-man): Doesn't really depend on installdirs.
2132 (various rules for installing manpages): Do depend on installdirs.
2134 2005-06-14 Nathan Sidwell <nathan@codesourcery.com>
2136 * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
2137 read_encoded_value_with_base call.
2138 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
2139 * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
2140 * unwind-dw2.c (extract_cie_info): Fix aliasing in
2141 read_encoded_value call.
2142 (execute_cfa_program, uw_frame_state_for): Likewise.
2144 2005-06-13 Roger Sayle <roger@eyesopen.com>
2146 PR rtl-optimization/22053
2147 * reg-stack.c (compensate_edge): Correct mistake in the assertion
2148 checking of EDGE_ABNORMAL_CALL edges; complex return values can
2149 result in the top two stack slots, st(0) and st(1), being live.
2151 2005-06-13 Jeff Law <law@redhat.com>
2153 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
2154 simplify DIV, MOD or ABS expressions using VRP information.
2155 Remove WALK_DATA parameter. Prototype and all callers updated.
2156 (eliminate_redundant_computations): Remove WALK_DATA parameter.
2157 Prototype and all callers updated.
2158 (optimize_stmt): WALK_DATA parameter is now unused.
2160 * tree-vrp.c (local_fold): New function. Like fold, but
2161 strips useless type conversions in the result.
2162 (simplify_using_ranges): New function, largely cribbed from
2163 tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
2164 (vrp_finalize): Call simplify_using_ranges.
2166 2005-06-13 Mark Mitchell <mark@codesourcery.com>
2168 * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
2169 assembler in 64-bit mode.
2171 2005-06-13 David Edelsohn <edelsohn@gnu.org>
2173 Revert scc_operand patch.
2174 * config/rs6000/predicates.md (scc_operand): Delete.
2175 * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
2177 2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
2180 * fold-const.c (split_address_to_core_and_offset): Always return
2181 the address of the base object.
2183 2005-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
2185 * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
2187 2005-06-12 Richard Henderson <rth@redhat.com>
2190 * tree-complex.c (update_complex_components_on_edge): New.
2191 (update_parameter_components): Use it.
2192 (update_phi_components): Likewise.
2193 (expand_complex_move): Likewise for is_ctrl_altering_stmt.
2195 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
2197 PR tree-optimization/14796
2198 * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
2201 2005-06-12 Kazu Hirata <kazu@codesourcery.com>
2203 * cgraphunit.c, tree-ssa-loop-ivopts.c,
2204 tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
2205 config/sparc/sparc.c: Fix comment typos.
2207 2005-06-12 Richard Earnshaw <richard.earnshaw@arm.com>
2209 * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
2210 (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
2211 * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
2212 (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
2214 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
2216 PR tree-optimization/14796
2217 * fold-const.c (fold_binary): Transform (A >> C) << C into
2219 <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
2221 2005-06-11 Geoffrey Keating <geoffk@apple.com>
2223 * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
2224 (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
2226 (reg_or_sub_cint_operand): Likewise.
2227 (mask_operand): Handle DImode.
2228 (mask64_operand): Delete.
2229 (and64_operand): Delete.
2230 * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
2231 instead of mask64_operand.
2232 (print_operand): Likewise.
2233 (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
2234 reg_or_sub_cint_operand instead of *64_* variants.
2235 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
2236 instead of mask64_operand.
2237 * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
2241 (add<mode>3): Use reg_or_add_cint_operand.
2243 (sub<mode>3): Use reg_or_sub_cint_operand.
2244 (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
2245 mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
2246 cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
2247 ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
2248 ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
2249 return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
2250 various unnamed patterns): New.
2251 (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
2252 cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
2253 ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
2254 return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
2255 udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
2256 cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
2257 ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
2258 return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
2259 movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
2262 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
2264 * rtl.h (to_rtx_code): Remove.
2265 * machmode.h (to_machine_mode): Likewise.
2266 * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
2268 (apply_mode_maps): Likewise.
2269 (read_rtx_1): Likewise.
2270 (apply_code_macro): Replace to to_rtx_code with explicit cast.
2271 (check_code_macro): Likewise.
2272 (read_rtx_1): Likewise.
2274 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
2276 * c-typeck.c (convert_for_assignment): Avoid checking
2277 OPT_Wc___compat, as it is always true.
2279 2005-06-11 David Edelsohn <edelsohn@gnu.org>
2281 * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
2283 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
2285 Fix PR tree-optimization/22005
2286 Fix PR tree-optimization/22025
2288 * tree-ssa-structalias.c (struct variable_info): Add has_union
2290 (create_variable_info_for): Mark variables containing unions.
2291 Don't sort the field stack if notokay is true.
2292 (find_what_p_points_to): Convert variables containing unions back
2293 to their SFT's if necessary.
2295 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
2297 * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
2298 is an INTEGER_CST before calling int_cst_value.
2300 2005-06-10 Uros Bizjak <uros@kss-loka.si>
2303 * config/i386/i386.c (ix86_function_value_regno_p): Return true
2304 for FIRST_MMX_REG if TARGET_MMX.
2305 (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
2307 (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
2308 (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2310 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
2312 * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
2313 and access function against chrec_dont_know.
2315 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
2317 * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
2319 (exit_phi_for_loop_p): New function.
2320 (can_put_in_inner_loop): Ditto.
2321 (can_convert_to_perfect_nest): Ditto.
2322 (perfect_nestify): Create iv with right type.
2323 Rewrite statements in correct order.
2325 2005-06-10 Keith Besaw <kbesaw@us.ibm.com>
2327 * tree-ssa-alias.c (new_type_alias): Use existing type
2328 tag if VAR has just one in its may_aliases list.
2330 2005-06-10 Fariborz Jahanian <fjahanian@apple.com>
2332 * rs6000/predicates.md (scc_operand): New.
2333 * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2335 2005-06-10 Dorit Nuzman <dorit@il.ibm.com>
2337 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
2338 dependence-distance modulo VF is 0 are recorded in the
2339 SAME_ALIGN_REFs VEC in each DR.
2340 (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
2341 alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
2342 DR we want to peel for, is set to 0.
2343 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
2344 * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
2346 * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
2347 (_stmt_vec_info): Added new field same_align_refs.
2348 (STMT_VINFO_SAME_ALIGN_REFS): New macro.
2350 2005-06-10 Nathan Sidwell <nathan@codesourcery.com>
2352 * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2354 2005-06-10 Alan Modra <amodra@bigpond.net.au>
2356 * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
2357 * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
2358 * config/rs6000/rs6000.c (output_function_profiler): Obey
2359 NO_PROFILE_COUNTERS. Handle TARGET_SECURE_PLT. Use "bcl 20,31"
2360 for -fPIC. Delete save_lr and substitute its value into strings.
2362 2005-06-09 Dale Johannesen <dalej@apple.com>
2364 * config/i386/i386.c (optimization_options): Make -fno-math-errno
2365 the default on Darwin.
2366 * config/rs6000/rs6000.c (optimization_options): Ditto.
2367 * doc/invoke.texi (-fno-math-errno): Document.
2369 2005-06-09 Dale Johannesen <dalej@apple.com>
2371 * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
2372 Change to TARGET_INVALID_WITHIN_DOLOOP.
2374 2005-06-09 David Edelsohn <edelsohn@gnu.org>
2376 * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
2377 * config/rs6000/predicates.md (scc_eq_operand): New.
2379 2005-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
2381 * config/sh/sh.md (mextr_rl): Set buffer size properly.
2382 (*mextr_lr): Likewise.
2384 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
2387 * c.opt (Wc++-compat): New.
2388 * doc/invoke.texi (-Wc++-compat): Document.
2389 * c-typeck.c (convert_for_assignment): Check for implicit
2390 conversion void* -> T*.
2392 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.edu>
2394 * machmode.h (to_machine_mode): New.
2395 * rtl.h (to_rtx_code): Likewise.
2396 * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
2397 (print_c_condition): Convert return value of htab_find().
2398 (apply_code_macro): Add explicit cast when convertin to enums.
2399 (apply_mode_maps): Likewise.
2400 (check_code_macro): Likewise.
2401 (read_rtx_1): Likewise.
2403 2005-06-09 Richard Henderson <rth@redhat.com>
2405 * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
2406 Use SCALAR_FLOAT_MODE_P.
2407 * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
2408 (fselect): Rename from fpcmp; use %F.
2411 2005-06-09 Jan Hubicka <jh@suse.cz>
2413 * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
2414 local statics when doing unit-at-a-time.
2415 (cgraph_varpool_assemble_pending_decls): Output debug info.
2416 * dwarf2out.c (decls_for_scope): Skip local statics.
2417 (dwarf2out_decl): Handle local statics.
2418 * passes.c (rest_of_decl_compilation): Do not differentiate
2419 local and global statics in unit-at-a-time.
2420 * tree-inline.c (remap_decls): Put local static into
2421 unexpanded_vars_list rather than introducing duplicated VAR_DECL
2424 2005-06-09 Daniel Berlin <dberlin@dberlin.org>
2426 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
2429 2005-06-08 Daniel Berlin <dberlin@dberlin.org>
2431 * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2432 * tree-flow.h (find_what_p_points_to): Add prototype.
2433 (push_fields_onto_fieldstack): Ditto.
2434 (sort_fieldstack): Ditto.
2435 * tree-optimize.c (init_tree_optimization_passes): Add
2436 pass_build_pta and pass_del_pta.
2437 * tree-pass.h (pass_build_pta): New structure.
2438 (pass_del_pta): Ditto.
2439 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
2440 using new alias analyzer.
2441 (push_fields_onto_fieldstack): Removed from here.
2442 (bitpos_of_field): Ditto.
2443 (fieldoff_compare): Ditto.
2444 * tree-ssa-structalias.c: New file.
2445 * tree-ssa-structalias.h: Ditto.
2447 2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
2449 * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
2452 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
2454 * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
2455 * config/bfin/bfin.h (enum bfin_builtins): ... here.
2457 2005-06-09 Adrian Straetling <straetling@de.ibm.com>
2459 * target.h (insn_valid_within_doloop): Rename into
2460 "invalid_within_doloop". Change return type to "const char *".
2462 * targhooks.h (default_insn_valid_within_doloop): Rename into
2463 "default_invalid_within_doloop".
2464 * targhooks.c (default_insn_valid_within_doloop): Likewise.
2466 * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
2467 into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
2468 "default_invalid_within_doloop".
2469 * hooks.c (hook_constcharptr_rtx_null): New function.
2470 (hook_bool_rtx_true): Remove.
2471 * hooks.h (hook_constcharptr_rtx_null): Declare.
2472 (hook_bool_rtx_true): Remove.
2473 * loop-doloop.c (doloop_valid_p): Temporarily store return value of
2474 "invalid_within_doloop" and print error message if non-null.
2476 * doc/tm.texi: Update documentation.
2477 * config/s390/s390.c: Adjust to new hook name and new default hook.
2478 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
2479 into "rs6000_invalid_within_doloop".
2480 (rs6000_invalid_within_doloop): Change return type to "static const
2481 char *" and replace return values. Update Comment.
2483 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
2485 * config/bfin/bfin.opt (mlong-calls): New.
2486 * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
2487 if TARGET_LONG_CALLS.
2489 2005-06-09 Richard Henderson <rth@redhat.com>
2492 * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
2493 (struct tree_decl): Add gimple_reg_flag.
2494 * integrate.c (copy_decl_for_inlining): Copy it.
2495 * gimplify.c (internal_get_tmp_var): Set it.
2496 (gimplify_bind_expr): Likewise.
2497 (gimplify_function_tree): Likewise.
2498 (gimplify_modify_expr_complex_part): New.
2499 (gimplify_modify_expr): Use it.
2500 * tree-gimple.c (is_gimple_reg_type): Allow complex.
2501 (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
2503 * tree-complex.c (complex_lattice_t): New.
2504 (complex_lattice_values, complex_variable_components): New.
2505 (some_nonzerop, find_lattice_value, is_complex_reg,
2506 init_parameter_lattice_values, init_dont_simulate_again,
2507 complex_visit_stmt, complex_visit_phi, create_components,
2508 update_complex_components, update_parameter_components,
2509 update_phi_components, update_all_vops, expand_complex_move): New.
2510 (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
2512 (update_complex_assignment): Use update_complex_components;
2513 handle updates of return_expr properly.
2514 (expand_complex_addition): Use complex lattice values.
2515 (expand_complex_multiplication): Likewise.
2516 (expand_complex_division): Likewise.
2517 (expand_complex_libcall): Use update_complex_components.
2518 (expand_complex_comparison): Use update_stmt.
2519 (expand_complex_operations_1): Use expand_complex_move, retrieve
2521 (tree_lower_complex): Compute lattice values.
2522 (tree_lower_complex_O0): Duplicate from tree_lower_complex.
2523 (pass_lower_complex_O0): Rename from pass_lower_complex.
2524 (pass_lower_complex, gate_no_optimization): New.
2525 * tree-optimize.c (init_tree_optimization_passes): Update for
2526 complex pass changes.
2527 * tree-pass.h (pass_lower_complex_O0): Declare.
2529 2005-06-08 Dale Johannesen <dalej@apple.com>
2531 * config/darwin.c (darwin_binds_local_p): New.
2532 * config/darwin-protos.h (darwin_binds_local_p): Declare it.
2533 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
2534 * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
2535 (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
2537 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
2539 * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
2540 rs6000_isel, rs6000_spe, rs6000_alignment_string,
2541 rs6000_sched_restricted_insns_priority_str,
2542 rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2544 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
2546 * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
2547 instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
2548 * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
2549 multiplier_allowed_in_address_p, get_address_cost): Ditto.
2551 2005-06-08 Richard Henderson <rth@redhat.com>
2553 * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
2554 * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
2555 Emit out3 load right after alloc.
2557 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
2559 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2560 rs6000_explicit_options.
2562 2005-06-08 Richard Henderson <rth@redhat.com>
2564 * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
2565 * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
2567 * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2569 2005-06-08 Joseph S. Myers <joseph@codesourcery.com>
2571 * config/sol2-c.c (cmn_err_char_table): Allow width for %b
2574 2005-06-08 James A. Morrison <phython@gcc.gnu.org>
2577 * config/sparc/sparc.c (sparc_fold_builtin): New function
2578 (sparc_vis_mul8x16): New function.
2579 (sparc_handle_vis_mul8x16): New function.
2580 (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2582 2005-06-08 David Edelsohn <edelsohn@gnu.org>
2584 * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
2586 (call_indirect_nonlocal_aix64): Same.
2587 (call_value_indirect_nonlocal_aix32): Same.
2588 (call_value_indirect_nonlocal_aix64): Same.
2591 (eq): Use CLZ splitter for compare with zero.
2593 2005-06-08 Bernd Schmidt <bernd.schmidt@analog.com>
2595 * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
2596 everything larger than 8 bytes in memory.
2598 * config/bfin/bfin.h (enum bfin_builtins): New.
2599 * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2601 (csync, ssync): New insn patterns.
2602 * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2604 (def_builtin): New macro.
2605 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2607 From Jie Zhang <jie.zhang@analog.com>
2608 * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
2609 behavior of the native assembler in VDSP. So change accordingly.
2611 2005-06-08 Sebastian Pop <pop@cri.ensmp.fr>
2613 * tree-data-ref.c (compute_estimated_nb_iterations,
2614 analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
2615 analyze_subscript_affine_affine, find_data_references_in_loop):
2616 Fixed to use chrec_contains_undetermined to test the values of
2617 loop->estimated_nb_iterations.
2618 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2619 Compute the estimation only when loop->estimated_nb_iterations
2620 has not yet been initialized.
2621 (convert_step_widening, scev_probably_wraps_p): Add a call to
2622 estimate_numbers_of_iterations_loop.
2623 * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2625 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2628 * dwarf2out.c (add_loc_descr_op_piece): Move to the
2629 DWARF2_DEBUGGING_INFO section.
2631 2005-06-08 Richard Henderson <rth@redhat.com>
2634 * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2636 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2639 * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
2640 * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
2641 (TARGET_ASM_OUT): Add it.
2642 * doc/tm.texi (Debugging Info): Document it.
2643 * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
2644 Test it instead of ASM_OUTPUT_DWARF_DTPREL.
2645 (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
2646 * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
2647 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
2648 * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
2649 (gen_inlined_tls_plt): Remove unused variable MEM.
2650 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
2651 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2652 * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
2653 * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
2655 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
2656 * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2657 * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
2658 * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
2660 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
2661 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2662 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
2663 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
2665 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
2666 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2667 * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
2668 * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
2670 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
2671 * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2672 * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
2673 (TARGET_GNU_TLS): Define to 1.
2674 * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
2675 * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
2677 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
2678 if TARGET_GNU_TLS only.
2679 * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2681 * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
2682 (sparc-*-solaris2*): Likewise on Solaris 7 and up.
2684 2005-06-07 Dale Johannesen <dalej@apple.com>
2686 * config/i386/i386.md (movqi_1): Fix case where source
2687 is memory and destination EDI.
2689 2005-06-08 Kazu Hirata <kazu@codesourcery.com>
2691 * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2693 2005-06-07 Eric Christopher <echristo@redhat.com>
2695 * system.h: Poison EXTRA_CC_MODES.
2696 * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
2697 * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
2698 * doc/md.texi (Jump Patterns): Replace reference to
2699 EXTRA_CC_MODES with machine-modes.def.
2700 * doc/rtl.texi (Machine Modes): Ditto.
2702 2005-06-07 Richard Henderson <rth@redhat.com>
2704 * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
2705 (assemble_start_function): Fix strcmp confusion.
2707 2005-06-07 Uros Bizjak <uros@kss-loka.si>
2709 * config/i386/i386.h (enum ix86_entity): New.
2710 (enum ix86_stack_slot): New.
2711 (OPTIMIZE_MODE_SWITCHING): Redefine to use
2712 ix86_optimize_mode_switching[] array.
2713 (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
2714 (MODE_NEEDED): Use ix86_mode_needed() function.
2715 (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
2717 (struct machine_function): Use optimize_mode_switching[] array.
2719 * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
2720 (ix86_mode_needed): New function.
2721 (emit_i387_cw_initialization): Cleanup. Use mode to calculate
2722 correct stack positions for stored control words.
2723 (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
2724 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
2726 [IX86_BUILTIN_STMXCSR]: Same.
2728 * config/i386/i386-protos.h (assign_stack_local): Change prototype.
2729 (emit_i387_cw_initialization): Change prototype.
2730 (ix86_mode_needed): New prototype.
2732 * config/i386/i386.md (i387_cw attribute): Change order of elements.
2733 (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
2734 (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
2735 (*fist<mode>2_ceil_1): Change constant in call to
2736 assign_386_stack_local to SLOT_TEMP.
2737 (*fix_trunc<mode>_i387_1): Change constant in call to
2738 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2739 Use new ix86_optimize_mode_switching[] array.
2740 (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
2741 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2742 Use new ix86_optimize_mode_switching[] array.
2743 (frndintxf2_ceil, *fist<mode>2_ceil_1): Change constants in call to
2744 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2745 Use new ix86_optimize_mode_switching[] array.
2746 (frndintxf2_trunc): Change constants in call to
2747 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2748 Use new ix86_optimize_mode_switching[] array.
2749 (frndintxf2_mask_pm): Change constants in call to
2750 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2751 Use new ix86_optimize_mode_switching[] array.
2753 (define_peephole2): Change constant from 17 to FLAGS_REG;
2755 2005-06-07 Richard Henderson <rth@redhat.com>
2758 * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2760 2005-06-07 Dale Johannesen <dalej@apple.com>
2762 * tree-nested.c (finalize_nesting_tree_1): Disable
2763 warn_padded around layout_type call.
2765 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
2767 * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2770 2005-06-07 Eric Christopher <echristo@redhat.com>
2772 * config/mips/predicates.md: Revert previous patch.
2774 2005-06-07 Jakub Jelinek <jakub@redhat.com>
2777 * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2780 2005-06-07 Diego Novillo <dnovillo@redhat.com>
2782 * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2783 (thread_stats): New local variable.
2784 (redirect_edges): Increment count of threaded edges.
2785 (thread_through_all_blocks): Initialize thread_stats.
2786 Display number of threaded jumps if TDF_STATS is enabled.
2788 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
2790 * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2791 the current bit index with no modulo.
2793 2005-06-07 Sebastian Pop <pop@cri.ensmp.fr>
2795 PR 18403 and meta PR 21861.
2796 * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2797 * tree-chrec.c: Include cfgloop.h and tree-flow.h.
2798 (evolution_function_is_invariant_rec_p,
2799 evolution_function_is_invariant_p): New.
2800 (chrec_convert): Use an extra parameter AT_STMT for refining the
2801 information that is passed down to convert_step. Integrate the
2802 code that was in count_ev_in_wider_type.
2803 * tree-chrec.h (count_ev_in_wider_type): Removed.
2804 (chrec_convert): Modify its declaration.
2805 (evolution_function_is_invariant_p): Declared.
2806 (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2807 * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2808 (scev_probably_wraps_p): Declared.
2809 * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2810 (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2811 Use an extra parameter AT_STMT for refining the information that is
2812 passed down to convert_step.
2813 (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2814 analyze_scalar_evolution_1): Initialize AT_STMT with the current
2816 (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2817 * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
2818 can_count_iv_in_wider_type to use convert_step.
2819 * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
2820 code that is independent of the loop over the known iteration
2821 bounds to convert_step_widening, the rest is moved to
2822 proved_non_wrapping_p.
2823 (scev_probably_wraps_p): New.
2824 (can_count_iv_in_wider_type): Renamed convert_step.
2825 * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2826 Use scev_probably_wraps_p for computing init_is_max.
2827 (vrp_visit_assignment): Pass the current analyzed statement to
2828 adjust_range_with_scev.
2829 (execute_vrp): Call estimate_numbers_of_iterations for refining the
2830 information provided by scev analyzer.
2832 2005-06-07 Eric Christopher <echristo@redhat.com>
2834 * config/mips/predicates.md (sleu_operand): Use
2835 IN_RANGE to specify range of operand.
2837 2005-06-07 Steven Bosscher <stevenb@suse.de>
2839 PR tree-optimization/21847
2840 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2841 -fnon-call-exceptions, also mark statements inherently
2842 necessary if they may throw.
2844 2005-06-07 Adrian Straetling <straetling@de.ibm.com>
2846 * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2847 ("type"): Add "sem" to 'type' attribute.
2848 ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2849 "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2850 "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2851 "*sync_compare_and_swap_ccsi"): New patterns.
2852 * config/s390/2064.md: ("z_sem"): New insn_reservation.
2853 * config/s390/2084.md: ("x_sem"): New insn_reservation.
2854 * config/s390/s390.c: (s390_compare_emitted): New global variable.
2855 (s390_emit_compare): Do not emit comparison again after cas.
2856 * config/s390/s390.h (s390_compare_emitted): Declare.
2858 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
2860 * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2861 sbitmap_iter_cond, sbitmap_iter_next): New.
2862 * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2863 modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2864 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2865 uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2867 2005-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2869 * tree-ssa-address.c: New file.
2870 * Makefile.in (tree-ssa-address.o): Add.
2871 * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2872 INDIRECT_REFs. Handle TARGET_MEM_REFs.
2873 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2874 * tree-flow.h (struct mem_address): New.
2875 (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2876 (create_mem_ref, addr_for_mem_ref, get_address_description,
2877 maybe_fold_tmr, multiplier_allowed_in_address_p,
2878 multiply_by_cost): Declare.
2879 * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2880 * tree-pretty-print.c (dump_generic_node): Ditto.
2881 * tree-ssa-loop-im.c (for_each_index): Ditto.
2882 * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2883 find_interesting_uses_address): Ditto.
2884 (rewrite_address_base, build_addr_strip_iref): Removed.
2885 (struct affine_tree_combination): Moved to tree-flow.h.
2886 (get_ref_tag, copy_ref_info): New functions.
2887 (rewrite_use_address): Produce TARGET_MEM_REFs.
2888 (tree_ssa_iv_optimize): Do not call update_ssa
2889 and rewrite_into_loop_closed_ssa.
2890 (tree_to_aff_combination): Use build_fold_addr_expr instead of
2891 build_addr_strip_iref.
2892 (unshare_aff_combination): New function.
2893 (fold_affine_sum): Removed.
2894 (get_computation_at): Use get_computation_aff. Unshare the result.
2895 (get_computation_aff, multiplier_allowed_in_address_p): New function.
2896 (multiply_by_cost): Exported.
2897 (get_address_cost): Use multiplier_allowed_in_address_p.
2898 * tree-ssa-operands.c (get_tmr_operands): New function.
2899 (get_expr_operands): Handle TARGET_MEM_REFs.
2900 * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2901 (build): Handle 7 arguments.
2902 (build7_stat): New function.
2903 * tree.def (TARGET_MEM_DEF): New.
2904 * tree.h (REF_ORIGINAL): Removed.
2905 (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2906 TMR_TAG, build7): New macros.
2907 (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2908 * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2909 * doc/c-tree.texi: Document TARGET_MEM_REF.
2910 * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2912 2005-06-07 Jakub Jelinek <jakub@redhat.com>
2915 * dwarf2out.c (add_loc_descr_op_piece): New function.
2916 (multiple_reg_loc_descriptor, concat_loc_descriptor,
2917 loc_descriptor): Use it.
2918 * var-tracking.c: Include regs.h and expr.h.
2919 (emit_note_insn_var_location): Skip over pieces where offset
2920 is smaller than previous offset plus previous piece mode size.
2921 Optimize adjacent hard registers or memory locations.
2922 * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2924 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
2926 * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2928 * gimplify.c (gimplify_cond_expr): No need to fix up the
2931 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
2933 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2936 2005-06-07 Geoffrey Keating <geoffk@apple.com>
2938 * config/rs6000/host-darwin.c (segv_handler): Widen the possible
2939 'stwux' instructions that are considered to be stack decrements.
2941 * rtlanal.c (subreg_offset_representable_p): Handle objects
2944 2005-06-06 Uros Bizjak <uros@kss-loka.si>
2946 * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2947 in call to pre_edge_lcm.
2949 2005-06-06 Kaz Kojima <kkojima@gcc.gnu.org>
2951 * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2952 (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2953 (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2955 (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2956 dwarf register number for SHmedia.
2957 (shmedia_fallback_frame_state): New.
2958 (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2960 * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2962 2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net>
2964 * c-lex.c (lex_string): Use XOBFINISH.
2965 * collect2.c (extract_string, dump_file): Likewise.
2966 * dbxout.c (dbxout_finish_complex_stabs): Likewise.
2967 * gcc.c (init_spec, build_search_list, convert_filename,
2968 set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2969 * genpreds.c (write_predicate_subfunction): Likewise.
2970 * genflags.c (main): Likewise.
2971 * read-rtl.c (mode_attr_index, apply_macro_to_string,
2972 join_c_conditions, read_quoted_string, read_braced_string,
2973 read_rtx_1): Likewise.
2974 * stringpool.c (ggc_alloc_string): Likewise.
2975 * tlink.c (obstack_fgets, recompile_files): Likewise.
2977 2005-06-06 Jakub Jelinek <jakub@redhat.com>
2979 * intl.h (G_): New macro.
2980 * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2981 instead of msgid for argument name.
2982 * tree-ssa.c (warn_uninit): Likewise.
2983 * c-parser.c (c_parser_error): Likewise.
2984 * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2985 * config/darwin-c.c (BAD): Likewise.
2986 * config/c4x/c4x-c.c (BAD): Likewise.
2987 * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2988 * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2989 * c-common.c (c_parse_error): Likewise.
2990 * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2991 warning0, pedwarn, error, sorry, fatal_error, internal_error):
2993 (fnotice): Use cmsgid instead of msgid for argument name.
2994 * gcov.c (fnotice): Likewise.
2995 * protoize.c (notice): Likewise.
2996 * final.c (output_operand_lossage): Likewise.
2997 * gcc.c (fatal, notice): Likewise.
2998 (error): Use gmsgid instead of msgid for argument name.
2999 * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
3000 of msgid for argument name.
3001 (error): Use gmsgid instead of msgid for argument name.
3002 * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
3004 * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
3005 * tree-inline.c (inline_forbidden_p_1): Likewise.
3006 * ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
3007 conventions for marking translations.
3008 * doc/install.texi: Mention gettext 0.14.5 or later requirement.
3010 * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
3013 * fold-const.c (operand_equal_p): Don't return 1, if element
3014 chains for 2 VECTOR_CSTs are not the same length.
3017 * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
3018 not all VECTOR_CST elements are given.
3020 * combine.c (try_combine): Use hard_regno_nregs array instead of
3021 HARD_REGNO_NREGS macro.
3022 * config/rs6000/rs6000.c (rs6000_split_multireg_move,
3023 rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
3024 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
3026 2005-06-06 Daniel Berlin <dberlin@dberlin.org>
3028 * tree-ssa-reassoc.o: New.
3029 (OBJS-common): Add tree-ssa-reassoc.o
3030 * timevar.def: Add TV_TREE_REASSOC
3031 * tree-optimize.c (pass_reassoc): Add call.
3032 * tree-pass.h (pass_reassoc): Add.
3033 * tree-ssa-reassoc.c: New file.
3035 2005-06-06 Eric Christopher <echristo@redhat.com>
3038 * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
3040 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3042 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
3043 HAVE_GAS_MAX_SKIP_P2ALIGN.
3044 (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
3046 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3048 * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
3049 getopt.h dependency.
3050 (mips-tdump.o): Likewise.
3052 2005-06-06 Jan Hubicka <jh@suse.cz>
3054 * predict.c (tree_predict_edge): Don't drop useless predictions;
3055 check that it is not called too late in the game.
3056 (gate_estimate_probability): New gate.
3057 (pass_profile): Gate.
3058 * tree-mudflap.c (mf_build_check_statement_for): Do not drop
3059 predictions; update CFG instead.
3060 * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
3062 2005-06-06 Jie Zhang <jie.zhang@analog.com>
3064 * config.gcc (bfin*-uclinux*): New.
3065 * config/bfin/uclinux.h: New file.
3067 2005-06-06 Ben Elliston <bje@au.ibm.com>
3069 * doc/md.texi (Insn Splitting): Fix some wording.
3071 2005-06-05 David Edelsohn <edelsohn@gnu.org>
3073 * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
3074 (rs6000_emit_swdivdf): New function.
3075 * config/rs6000/rs6000.md (fres): New pattern.
3076 (divsf3): Add approximation through rs6000_emit_swdivsf.
3077 (fred): New pattern.
3078 (divdf3): Add approximation through rs6000_emit_swdivdf.
3079 * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
3080 (rs6000_emit_swdivdf): Declare.
3081 * config/rs6000/rs6000.opt (mswdiv): New option.
3082 * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
3084 2005-06-05 Zdenek Dvorak <dvorakz@suse.cz>
3086 PR tree-optimization/21846
3087 * tree-cfg.c (replace_uses_by): Update information stored at loops.
3088 * tree-flow.h (substitute_in_loop_info): Declare.
3089 * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
3090 Ensure that chrec_dont_know and chrec_known have a type.
3091 * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
3093 2005-06-05 Steven Bosscher <stevenb@suse.de>
3095 * config/i386/i386.c (x86_use_loop): Remove.
3096 * config/i386/i386.h (x86_use_loop): Remove extern decl.
3097 (TARGET_USE_LOOP): Remove.
3098 * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
3099 Also remove related define_splits.
3101 2005-06-05 Dorit Nuzman <dorit@il.ibm.com>
3103 * tree-flow.h (stmt_ann_d): Move aux to ...
3104 (tree_ann_common_d): ... here.
3105 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
3106 move_computations_stmt, schedule_sm): Update references to
3108 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
3109 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
3110 call to set_stmt_info.
3111 (vect_transform_loop): Likewise.
3112 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
3115 * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
3117 (vect_mark_relevant): Takes two additional arguments - live_p and
3118 relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
3119 (vect_stmt_relevant_p): Differentiate between a live stmt and a
3120 relevant stmt. Return two values = live_p and relevant_p.
3121 (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
3122 vect_stmt_relevant_p with additional arguments. Phis are no longer
3123 put into the worklist (analyzed seperately in analyze_scalar_cycles).
3124 (vect_determine_vectorization_factor): Also check for LIVE_P, because a
3125 stmt that is marked as irrelevant and live, cause it's only used out
3126 side the loop, may need to be vectorized (e.g. reduction).
3127 (vect_analyze_operations): Examine phis. Call
3128 vectorizable_live_operation for for LIVE_P stmts. Check if
3130 (vect_analyze_scalar_cycles): Update documentation. Don't fail
3131 vectorization - just classify the scalar cycles created by the loop
3132 phis. Call vect_is_simple_reduction.
3133 (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
3134 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
3135 call to set_stmt_info.
3136 (vect_get_vec_def_for_operand): Code reorganized - the code that
3137 classifies the type of use was factored out to vect_is_simple_use.
3138 (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
3139 additional arguments.
3140 (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
3141 and computes a loop_vec_def.
3142 (vectorizable_operation, vectorizable_load, vectorizable_condition):
3144 (vectorizable_live_operation): New.
3145 (vect_transform_stmt): Handle LIVE_P stmts.
3146 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
3147 STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
3148 (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
3149 (vect_is_simple_use): Determine the type of the def and return it
3150 in a new function argument. Consider vect_reduction_def and
3151 vect_induction_def, but for now these are not supported.
3152 (vect_is_simple_reduction): New. Empty for now.
3153 * tree-vectorizer.h (vect_def_type): New enum type.
3154 (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
3155 (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
3156 (vect_is_simple_use): New arguments added to function declaration.
3157 (vect_is_simple_reduction): New function declaration.
3158 (vectorizable_live_operation): New function declaration.
3160 * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
3161 (vect_can_advance_ivs_p): Likewise.
3162 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
3164 2005-06-05 Eric Christopher <echristo@redhat.com>
3166 * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
3168 2005-06-05 Hans-Peter Nilsson <hp@bitrange.com>
3171 * config/mmix/mmix.md ("*movdicc_real_foldable")
3172 ("*movdfcc_real_foldable", "*bCC_foldable")
3173 ("*bCC_inverted_foldable"): Specify DImode for register being
3176 2005-06-04 Roger Sayle <roger@eyesopen.com>
3178 * reg-stack.c (struct block_info_def): Correct grammar typo.
3179 (compensate_edge): Clean-up. Perform as little work as possible
3180 when src and dest stacks match. Avoid modifying block_info.
3181 Reorder and simplify assertion checks. Avoid unnecessary copying
3182 of regstack structure.
3183 (convert_regs_1): Set the done flag here...
3184 (convert_regs_2): ... instead of here.
3186 2005-06-04 Dale Johannesen <dalej@apple.com>
3188 * config/rs6000/rs6000.c (no_global_regs_above): New.
3189 (rs6000_emit_prologue): Use it; cosmetic formatting fixes.
3190 (rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
3191 (rs6000_conditional_register_usage): Don't put Darwin PIC
3192 register in global_regs.
3193 (rs6000_stack_info): Don't set lr_save_p just because Darwin
3195 (rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
3196 if not done by lr_save_p.
3197 * config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
3198 Use rotate instead of ashift.
3199 (call_indirect_nonlocal_sysv): Prefer CTR to LR.
3200 (call_value_indirect_nonlocal_sysv): Ditto.
3202 2005-06-04 Jan Hubicka <jh@suse.cz>
3204 * cgraphunit.c (cgraph_reset_node): Break out from ...
3205 (cgraph_finalize_function): ... here.
3206 (cgraph_finalize_compilation_unit): Reset nodes where backend
3209 2005-06-04 Richard Henderson <rth@redhat.com>
3212 * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
3213 until we've passed initial ldgp.
3215 2005-06-04 Daniel Berlin <dberlin@dberlin.org>
3217 * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
3218 * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
3219 * expr.c (expand_var): Ditto.
3220 * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
3221 * gimplify.c (gimplify_decl_expr): Ditto.
3222 (gimplify_expr): Ditto.
3223 * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
3224 * tree.c (value_expr_for_decl): New.
3225 (print_value_expr_statistics): New.
3226 (init_ttree): Init value_expr_for_decl.
3227 (decl_value_expr_lookup): New.
3228 (decl_value_expr_insert): Ditto.
3229 (copy_node_stat): Copy DECL_VALUE_EXPR status.
3230 * tree.h (DECL_VALUE_EXPR): Use hashtable.
3231 (SET_DECL_VALUE_EXPR): New.
3232 (DECL_HAS_VALUE_EXPR_P): New.
3234 2005-06-04 Steven Bosscher <stevenb@suse.de>
3236 * lcm.c: Move all mode-switching related functions from here...
3237 * mode-switching.c: ...to this new file.
3238 * doc/passes.texi: Update accordingly.
3240 * basic-block.h (label_value_list): Remove extern decl.
3241 * cfgrtl.c (label_value_list): Remove.
3242 (can_delete_label_p): Don't look at it.
3243 * cfgcleanup.c (cleanup_cfg): Don't free it.
3245 * common.opt: Don't refer to non-existing flag_alias_check.
3247 2005-06-04 David Edelsohn <edelsohn@gnu.org>
3249 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
3251 2005-06-04 Kazu Hirata <kazu@codesourcery.com>
3253 * function.c (prologue, epilogue, sibcall_epilogue): Change
3254 their types to VEC(int,heap)*.
3255 (free_after_compilation): Free the three vectors above.
3256 (init_function_for_compilation, record_insns, contains,
3257 prologue_epilogue_contains, sibcall_epilogue_contains,
3258 reposition_prologue_and_epilogue_notes): Use VEC instead of
3259 VARRAY. (init_function_once): Remove.
3260 * function.h: Remove the prototype for init_function_once.
3261 * toplev.c (backend_init): Don't call init_function_once.
3263 2005-06-04 Jan Hubicka <jh@suse.cz>
3265 * predict.c (tree_predict_edge): Do not predict entry edge and
3266 single succestor edge.
3268 2005-06-04 Joseph S. Myers <joseph@codesourcery.com>
3271 * c-typeck.c (push_init_level): Don't pop levels without braces if
3274 2005-06-03 Sebastian Pop <pop@cri.ensmp.fr>
3276 * tree-data-ref.c (compute_self_dependence): New function.
3277 (compute_all_dependences): Use it.
3279 2005-06-03 Geoffrey Keating <geoffk@apple.com>
3281 * c-parser.c (c_parser_parms_declarator): Don't use chainon().
3282 (c_parser_expr_list): Don't use chainon().
3284 * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
3285 when -isysroot passed.
3287 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
3290 * c-decl.c (start_function): Restore label_context_stack_se and
3291 label_context_stack_vm if returning with an error.
3293 2005-06-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
3295 * configure.ac: Check declaration for asprintf, needed by
3297 * configure: Regenerate.
3298 * config.in: Likewise.
3300 2005-06-03 Diego Novillo <dnovillo@redhat.com>
3302 * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
3303 allocate info array.
3304 * tree-vrp.c (extract_range_from_unary_expr): Set resulting
3305 range to varying in cast expressions that change
3308 2005-06-03 Eric Christopher <echristo@redhat.com>
3310 * config/mips/mips.opt: Add RejectNegative to divide-breaks and
3313 2005-06-03 Jan Hubicka <jh@suse.cz>
3315 * basic-block.h (remove_predictions_associated_with_edge): Declare.
3316 * cfg.c (remove_edge): Use it.
3317 * predict.c (remove_predictions_associated_with_edge): New function.
3319 2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
3321 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3322 Clear call_realy_used_regs[r2] when ABI_AIX.
3324 2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
3327 * fold-const.c (fold_binary): Fix type mismatches in folding
3330 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
3332 * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
3335 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
3337 * collect2.c (maybe_unlink): Use unlink_if_ordinary.
3339 2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
3341 * reload1.c (reload): Revert my previous patch.
3343 2005-06-03 Nick Clifton <nickc@redhat.com>
3345 * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
3348 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
3350 PR tree-optimization/21849
3351 * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
3353 2005-06-02 Richard Henderson <rth@redhat.com>
3355 * Makefile.in (tree-vect-generic.o): New.
3356 (OBJS-common, GTFILES, s-gtype): Add it.
3357 * tree-complex.c (build_replicated_const, vector_inner_type,
3358 vector_last_type, vector_last_nunits, build_word_mode_vector_type,
3359 elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
3360 do_negate, expand_vector_piecewise, expand_vector_parallel,
3361 expand_vector_addition, expand_vector_operation,
3362 type_for_widest_vector_mode, expand_vector_operations_1,
3363 gate_expand_vector_operations, expand_vector_operations,
3364 pass_lower_vector_ssa): Move to tree-vect-generic.c.
3365 (tree_lower_complex): Rename from tree_lower_operations.
3366 (pass_lower_complex): Rename from pass_pre_expand.
3367 * tree-vect-generic.c: New file.
3368 * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
3369 (pass_lower_vector): New.
3370 * tree-optimize.c (init_tree_optimization_passes): Update to match.
3372 2005-06-02 Richard Henderson <rth@redhat.com>
3374 * modulo-sched.c (doloop_register_get): Protect against
3375 doloop_end not defined.
3377 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
3379 * config/sh/sh.c (general_movsrc_operand,
3380 general_movdst_operand, arith_reg_operand, arith_reg_dest,
3381 logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
3382 fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
3383 xor_operand, cmp_operand, logical_operand, and_operand,
3384 fpscr_operand, fpul_operand, symbol_ref_operand,
3385 commutative_float_operator, noncommutative_float_operator,
3386 unary_float_operator, binary_float_operator,
3387 binary_logical_operator, equality_comparison_operator,
3388 greater_comparison_operator, less_comparison_operator,
3389 shift_operator, logical_operator, target_reg_operand,
3390 target_operand, mextr_bit_offset, extend_reg_operand,
3391 trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
3392 general_extend_operand, ua_address_operand,
3393 cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
3394 sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
3395 shift_count_reg_operand, shift_count_operand,
3396 unaligned_load_operand): Move to ...
3397 * config/sh/predicates.md: ... here.
3398 * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3401 2005-06-02 Andrew Pinski <pinskia@physics.uc.edu>
3403 * tree.c (build_common_builtin_nodes): Fix the return type on