1 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
3 * bb-reorder.c, c-pch.c, c-pragma.c, c.opt, cfghooks.c, cfgloop.c,
4 cfgrtl.c, cgraphunit.c, config/c4x/c4x.c, config/cris/cris.c,
5 config/frv/frv.c, config/host-darwin.c, config/iq2000/iq2000.c,
6 config/lynx.h, config/m68k/m68k.c, config/pa/pa.c, config/sh/sh.h,
7 config/stormy16/stormy16.c, config/v850/v850.c,
8 config/vax/netbsd-elf.h, coverage.c, dwarf2out.c, emit-rtl.c,
9 except.c, gcc.c, tree-cfg.c, tree-eh.c, tree-ssa.c, xcoffout.c:
10 Avoid "." or "\n" at end of diagnostics and capital letters at
12 * combine.c, cse.c: Don't translate dump file output.
13 * toplev.c (print_version): Only translate output if going to
16 2005-07-03 Kazu Hirata <kazu@codesourcery.com>
18 * c-decl.c, tree-object-size.c, tree-vectorizer.c,
19 config/arm/unwind-arm.c, config/arm/unwind-arm.h: Fix comment
22 2005-07-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
24 * pa.c (fix_range): Fix typo in comment.
26 2005-07-03 Kazu Hirata <kazu@codesourcery.com>
28 * tree-vrp.c (extract_range_from_assert): Replace
29 fold (build (...)) with fold_build2.
31 2005-07-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
33 * c-format.c (gcc_gfc_format_type, gcc_gfc_flag_pairs,
34 gcc_gfc_char_table, init_dynamic_gfc_info): New.
35 (format_types_orig, handle_format_attribute): Add support for
38 2005-07-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
40 * varasm.c (assemble_variable): Fix format specifier thinko.
42 2005-07-03 Ira Rosen <irar@il.ibm.com>
44 PR tree-optimization/22029 (and 22135)
45 * tree-pretty-print.c (dump_generic_node): Check that the node is not
46 a phi node before calling dump_vops.
48 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
50 * tree-dump.h (dump_string_field): Declare.
51 * tree-dump.c: Use it instead of dump_string.
52 (dump_string_field): Make non-static.
54 2005-07-03 Kaz Kojima <kkojima@gcc.gnu.org>
56 * config/sh/sh.c (sh_output_mi_thunk): Initialize and clean
57 up the minimal CFG stuff always when optimize > 0. Call
58 split_all_insns_noflow in PIC case if needed.
60 2005-07-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
61 Christian Ehrhardt <ehrhardt@mathematik.uni-ulm.de>
64 * c-decl.c (c_write_global_declarations): Dump contents of
66 * tree-dump.c (dequeue_and_dump): Dump abstract origin of a decl.
67 <TRY_FINALLY_EXPR>, <RETURN_EXPR>, <CASE_LABEL_EXPR>, <LABEL_EXPR>,
68 <GOTO_EXPR>, <SWITCH_EXPR>: Add.
69 (dump_enabled_p): Return TRUE if PHASE is TDI_all and any dump
72 2005-07-03 Joseph S. Myers <joseph@codesourcery.com>
74 * c-common.h (GCC_DIAG_STYLE): Define.
75 * c-tree.h (GCC_DIAG_STYLE): Do not define. Change minimum GCC
76 version for format checking to 4.1.
77 * c-format.c: Include toplev.h after c-common.h.
78 (enum format_type): Add gcc_tdiag_format_type.
79 (gcc_tdiag_length_specs, gcc_tdiag_flag_pairs,
80 gcc_tdiag_flag_specs, gcc_tdiag_char_table): New.
81 (format_types_orig): Add gcc_tdiag.
82 (init_dynamic_diag_info): Support gcc_tdiag formats.
83 (handle_format_attribute): Likewise.
84 * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Remove.
85 (GCC_DIAG_STYLE): Default to __gcc_tdiag__. Change minimum GCC
86 version for format checking to 4.1.
87 (warning0, warning, error, pedwarn, sorry): Use
89 * config/rs6000/rs6000.c (altivec_expand_builtin), varasm.c
90 (finish_aliases_1): Do not use %qE.
91 * config/arm/arm.c, config/i386/i386.c, config/mmix/mmix.c,
92 config/pdp11/pdp11.c, stor-layout.c, tree-eh.c, tree-ssa.c:
94 * config/v850/v850-protos.h (v850_output_aligned_bss): Change size
95 parameter to unsigned HOST_WIDE_INT.
96 * config/v850/v850.c (v850_output_aligned_bss): Likewise.
98 2005-07-02 David Edelsohn <edelsohn@gnu.org>
101 * expr.c (write_complex_part): Use adjust_address for MEM.
102 (read_complex_part): Same.
104 2005-07-02 Daniel Berlin <dberlin@dberlin.org>
106 Fix PR tree-optimization/22280
108 * tree-sra.c (generate_element_init): Remove useless loop.
110 2005-07-02 Richard Henderson <rth@redhat.com>
112 * config/alpha/alpha.c (alpha_legitimize_address): Check for
114 (alpha_stdarg_optimize_hook): Use DECL_UID with va_list_vars.
116 2005-07-02 Andrew Pinski <pinskia@physics.uc.edu>
119 * fold-const.c (fold_binary): Handle the return value of
120 fold_to_nonsharp_ineq_using_bound if we get back the same operand back.
121 Implement "X +- C1 CMP C2" folding to "X CMP C2 -+ C1".
123 2005-07-02 Jeff Law <law@redhat.com>
125 * tree-ssa-dom.c (find_equivalent_equality_comparison): Do not
126 a eliminate type conversion which feeds an equality comparison
127 if the original type or either operand in the comparison is a
130 2005-07-02 Joseph S. Myers <joseph@codesourcery.com>
132 * c.opt, common.opt, config/bfin/bfin.opt, config/pa/pa.opt,
133 config/rs6000/rs6000.opt, params.def: Remove "." from end of help
135 * config/avr/avr.c: Do not use '`' as left quote.
136 * config/rs6000/rs6000.c, config/s390/s390.c, opts.c, tree.c:
137 Remove "." from end of diagnostics. Make diagnostics start with
140 2005-07-02 Zack Weinberg <zack@codesourcery.com>
141 Joseph S. Myers <joseph@codesourcery.com>
143 * toplev.c (default_tree_printer): Handle setting location with
145 * c-objc.common.c (c_tree_printer): Likewise.
146 * c-format.c (gcc_diag_flag_specs): Add '+'.
147 (gcc_cdiag_char_table): Allow '+' flag for tree formats.
148 (format_types_orig): Allow '+' flag for gcc_diag and gcc_cdiag
150 * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c,
151 config/arm/pe.c, config/i386/winnt.c, config/ia64/ia64.c,
152 config/mcore/mcore.c, config/sh/symbian.c, config/sol2.c,
153 config/v850/v850.c, function.c, stor-layout.c, toplev.c,
154 tree-inline.c, tree-optimize.c, tree.c, varasm.c: Use '+' flag
155 instead of %J or %H. Use 'q' flag for quoting. Avoid '.' at end
156 of diagnostics. Use %q+D not %s for a decl. Do not pass excess
157 format arguments where %J is used without %D.
159 2005-07-02 Jakub Jelinek <jakub@redhat.com>
161 * gcc.c (LINK_SSP_SPEC): Define.
162 (link_ssp_spec): New variable.
163 (LINK_COMMAND_SPEC): Add %(link_ssp).
164 (static_specs): Add link_ssp_spec.
165 * configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
166 * configure: Rebuilt.
167 * config.in: Rebuilt.
169 * config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
170 * config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
171 * config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
172 * config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
173 * config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
174 If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
175 -0x7008(2) instead of reading __stack_chk_guard variable.
176 * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
178 (UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
179 (stack_protect_set, stack_protect_test): Use *_tls* patterns
180 if TARGET_THREAD_SSP_OFFSET is defined.
181 (stack_tls_protect_set_si, stack_tls_protect_set_di,
182 stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
185 2005-06-27 Richard Henderson <rth@redhat.com>
186 * libgcc-std.ver (GCC_4.1.0): New.
187 * libgcc.h (__stack_chk_guard): Declare.
188 (__stack_chk_fail, __stack_chk_fail_local): Declare.
189 * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
190 * mklibgcc.in (lib2funcs): Add them.
192 2005-07-01 Richard Henderson <rth@redhat.com>
194 * config/i386/linux-unwind.h (x86_64_fallback_frame_state): Cast to
195 void * before struct sigcontext *.
196 (x86_fallback_frame_state): Likewise.
198 2005-07-01 James E. Wilson <wilson@specifixinc.com>
200 * doc/invoke.texi (-funit-at-a-time): Correct grammar in second bullet.
202 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
205 * tree-ssa-reassoc.c (should_transpose): Fix which operand
206 we check for SSA_NAME for.
208 2005-06-29 Daniel Berlin <dberlin@dberlin.org>
210 Fix PR tree-optimization/22071
212 * tree-ssa-structalias.c (offset_overlaps_with_access): New
214 (get_constraint_for_component_ref): Use it.
216 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
219 * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
220 print out the last new line.
222 2005-07-01 Hans-Peter Nilsson <hp@axis.se>
224 * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
225 Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
226 * config/cris/cris.c (cris_conditional_register_usage): Adjust
227 reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
228 (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
229 (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
230 * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
231 (enum reg_class): New member CC0_REGS.
232 (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
233 (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
234 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
235 (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
236 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
237 Adjust for register now described.
239 2005-07-01 Jakub Jelinek <jakub@redhat.com>
242 * config/i386/i386.md (stack_protect_test_si,
243 stack_protect_test_di): Add earlyclobber for scratch 3.
244 * config/rs6000/rs6000.md (stack_protect_testsi,
245 stack_protect_testdi): Add earlyclobber for scratch 3,
246 remove earlyclobber from scratch 4.
248 2005-06-30 Diego Novillo <dnovillo@redhat.com>
252 * tree-ssa-alias.c (create_name_tags): Also process
253 non-dereferenced pointers.
254 Remove argument 'ai'. Update all callers.
256 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
258 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
259 Set to 0 for FRAME_GROWS_DOWNWARD.
260 (REGISTER_NAMES): Add sfp.
262 2005-07-01 Kelley Cook <kcook@gcc.gnu.org>
264 * config/arm/libunwind.S, config/arm/pr-support.c,
265 config/arm/unwind-arm.c, config/arm/unwind-arm.h,
266 config/c4x/predicates.md, tree-object-size.c: Update FSF address.
268 2005-06-30 Eric Botcazou <ebotcazou@libertysurf.fr>
271 * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
272 Preserve the 2nd register too, if present.
273 (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
274 Adjust call to emit_and_preserve.
276 2005-06-30 Zack Weinberg <zack@codesourcery.com>
277 Jakub Jelinek <jakub@redhat.com>
279 * pretty-print.h (PP_NL_ARGMAX): New.
280 (text_info): Add locus.
281 (struct chunk_info): New.
282 (output_buffer): Add formatted_obstack, chunk_obstack, and
283 cur_chunk_array. Change obstack to a pointer.
284 (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
285 (struct pretty_print_info): Replace ideal_maximum_length and
286 prefixing_rule with wrapping.
287 (pp_line_cutoff, pp_prefixing_rule): Update to match.
288 Update prototypes and wrapper macros throughout.
289 * pretty-print.c (pp_formatted_text_data, pp_append_r)
290 (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
291 (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
292 Update for changes to pp structure.
293 (pp_base_prepare_to_format, pp_base_format_text): Delete.
294 (pp_base_format, pp_base_output_formatted_text): New functions.
295 (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
296 (pp_verbatim): Clear text.locus.
297 (pp_printf): Likewise. Use pp_format and pp_output_formatted_text.
298 * c-objc-common.c (c_tree_printer): Update function signature.
299 * diagnostic.c (diagnostic_initialize): Update for changes to
301 (diagnostic_report_diagnostic): Call pp_format and then
302 pp_output_formatted_text.
303 (verbatim): Clear text.locus.
304 * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
305 Update for changes to pp structure.
307 * c-lang.c: No need to include c-pretty-print.h.
308 * Makefile.in: Remove bogus line containing only a tab.
309 (c-lang.o): Update dependencies.
310 * toplev.c (announce_function): Don't use verbatim.
311 (default_tree_printer): Update signature.
313 * objc/objc-lang.c: No need to include c-pretty-print.h.
314 * objc/Make-lang.in: Update dependencies.
316 2005-06-29 Daniel Berlin <dberlin@dberlin.org>
318 * tree-complex.c (complex_variable_components): Now a hashtable.
321 (create_components): Use referenced var iterator.
322 Initialize hashtable. Use cvc_insert/lookup.
323 (extract_components): Use cvc_insert/lookup.
324 (update_complex_components): Ditto.
325 (update_complex_components_on_edge): Ditto.
326 * tree-dfa.c (referenced_vars): Now a hashtable.
327 (dump_referenced_vars): Use iterator.
328 (referenced_var_lookup): New function.
329 (referenced_var_insert): Ditto.
330 (add_referenced_var): Use referenced_var_insert.
331 (mark_new_vars_to_rename): Use DECL_UID.
332 * tree-flow-inline.h (first_htab_element): New function.
334 (next_htab_element): Ditto.
335 (first_referenced_var): Ditto.
336 (end_referenced_vars_p): Ditto.
337 (next_referenced_var): Ditto.
338 (is_call_clobbered): Use DECL_UID.
339 (mark_call_clobbered): Ditto.
340 (clear_call_clobbered): Ditto.
341 (mark_non_addressable): Ditto.
342 * tree-flow.h (htab_iterator): New struct.
343 (FOR_EACH_HTAB_ELEMENT): New macro.
344 (struct int_tree_map): New struct.
345 (int_tree_map_hash): Prototype.
346 (int_tree_map_eq): Ditto.
347 (referenced_var_iterator): Ditto.
348 (FOR_EACH_REFERENCED_VAR): New macro.
349 (referenced_vars): Now a hashtable.
350 * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
351 (add_new_name_mapping): Ditto.
352 (mark_def_sites): Ditto.
353 (insert_phi_nodes): Use referenced_var iterator.
354 (mark_def_site_blocks): Ditto.
355 (mark_sym_for_renaming): Use DECL_UID.
356 * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
357 (lookup_element): Ditto.
358 (find_candidates_for_sra): Use referenced_vars iterator.
360 * tree-ssa-alias.c (NUM_REFERENCES): New macro.
361 (NUM_REFERENCES_CLEAR): Ditto.
362 (NUM_REFERENCES_INC): Ditto.
363 (NUM_REFERENCES_SET): Ditto.
364 (alias_obstack): New bitmap obstack.
365 (struct alias_map_d): Use bitmap, not sbitmap.
366 (struct alias_info): Remove num_references.
367 (init_alias_info): Use referenced_var iterator.
368 Initialize bitmap obstack.
369 (delete_alias_info): Use referenced_var iterator.
371 (compute_points_to_and_addr_escape): Use DECL_UID.
372 Use new NUM_REFERENCES macros.
373 (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
374 Use new NUM_REFERENCES macros.
375 (group_aliases_into): Update prototype to use bitmap.
376 (setup_pointers_and_addressables): Use referenced_vars iterator.
377 Use DECL_UID. Use new NUM_REFERENCES macros.
378 (add_pointed_to_var): Use DECL_UID.
379 (dump_alias_info): Use referenced_var iterator.
380 (add_type_alias): Ditto.
381 (used_portions): Now a hashtable.
382 (used_part_map_eq): New function.
383 (used_part_map_hash): Ditto.
384 (free_used_part_map): Ditto.
387 (get_or_create_used_part_for): Use up_lookup.
388 (create_overlap_variables_for): Ditto.
389 (find_used_portions): Use up_insert.
391 (create_structure_vars): Init used_portions hashtable, use
392 referenced_vars iterator.
393 * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
395 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
396 * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
397 (note_addressable): Ditto.
398 * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
399 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
400 referenced_var iterator.
402 (delete_tree_ssa): Ditto.
403 (int_tree_map_eq): New function.
404 (int_tree_map_hash): Ditto.
405 * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
406 (va_list_ptr_read): Ditto.
407 (va_list_counter_struct_op): Ditto.
408 (va_list_ptr_write): Ditto.
409 (check_va_list_escapes): Ditto.
410 (check_all_va_list_escapes): Ditto.
411 (execute_optimize_stdarg): Ditto.
412 * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
415 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
417 * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
418 (HARD_FRAME_POINTER_REGNUM): this.
420 2005-06-30 Jan Hubicka <jh@suse.cz>
422 * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
424 2005-06-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
427 * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
428 process_unification_queue, init_topo_info, topo_visit,
429 init_scc_info, free_scc_info, perform_var_substitution,
430 solve_graph): Use unsigned instead of uint.
432 2005-06-30 Jakub Jelinek <jakub@redhat.com>
434 * function.c (gen_stack_protect_test): Add third argument.
436 2005-06-30 J. D. Johnston <jjohnst@us.ibm.com>
438 * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
440 2005-06-30 Kazu Hirata <kazu@codesourcery.com>
442 * config/c4x/c4x-protos.h: Remove the prototypes for those
443 functions removed from c4x.c. Add prototypes for those
444 functions exported in c4x.c.
445 * config/c4x/c4x.c (any_operand, fp_zero_operand,
446 const_operand, stik_const_operand, not_const_operand,
447 reg_operand, r0r1_reg_operand, r2r3_reg_operand,
448 ext_low_reg_operand, ext_reg_operand, std_reg_operand,
449 std_or_reg_operand, addr_reg_operand, index_reg_operand,
450 dp_reg_operand, sp_reg_operand, st_reg_operand,
451 rc_reg_operand, call_address_operand,
452 symbolic_address_operand, dst_operand, src_operand,
453 src_hi_operand, lsrc_operand, tsrc_operand,
454 nonimmediate_src_operand, nonimmediate_lsrc_operand,
455 reg_or_const_operand, par_ind_operand, parallel_operand):
457 (c4x_immed_float_p, c4x_a_register, c4x_x_register,
458 c4x_K_constant, c4x_N_constant, c4x_O_constant,
459 c4x_S_indirect): Export.
460 * config/c4x/c4x.h (PREDICATE_CODES): Remove.
461 * config/c4x/c4x.md: Include predicates.md.
462 * config/c4x/predicates.md: New.
464 2005-06-30 Jakub Jelinek <jakub@redhat.com>
466 * function.c (stack_protect_epilogue): Pass label to
467 stack_protect_test, assume it emitted also the conditional
469 * doc/md.texi (stack_protect_test): Adjust documentation.
470 * config/i386/i386.md (stack_protect_test): Add third argument,
471 emit beq with operands[2].
472 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
473 flag_stack_protect != 0.
474 * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
476 (stack_protect_set, stack_protect_test): New expanders.
477 (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
478 stack_protect_testdi): New insns.
479 * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
480 (TARGET_STACK_PROTECT_FAIL): Define.
481 (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
483 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
484 (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
485 that addition of sfp doesn't change these.
486 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
487 REG_ALLOC_ORDER): Add sfp.
488 (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
489 (FRAME_POINTER_REGNUM): Define to 113.
490 (HARD_FRAME_POINTER_REGNUM): Define to 31.
491 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
492 (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
493 (ELIMINABLE_REGS): Never eliminate to
494 FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
495 instead. Add eliminations from FRAME_POINTER_REGNUM.
496 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
497 Include FRAME_POINTER_REGNUM.
498 (REGISTER_NAMES): Add sfp.
499 * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
500 (alt_reg_names): Likewise.
501 (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
502 (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
503 instead of FRAME_POINTER_REGNUM.
504 (rs6000_initial_elimination_offset): Never eliminate to
505 FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
506 instead. Add elimination offsets from FRAME_POINTER_REGNUM.
508 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
509 if DEFAULT_ABI == ABI_V4.
511 2005-06-30 Steven Bosscher <stevenb@suse.de>
513 * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
514 * tree.h (struct tree_decl): New field `tls_model'.
515 (DECL_TLS_MODEL): New.
516 (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
518 * rtl.h (decl_default_tls_model): Add prototype for it.
519 * varasm.c (decl_tls_model): Rewritten and renamed to ...
520 (decl_default_tls_model): ... this.
521 (default_encode_section_info): Use DECL_TLS_MODEL instead of
523 (assemble_variable): Replace DECL_THREAD_LOCAL with
525 (default_section_type_flags_1): Likewise.
526 (categorize_decl_for_section): Likewise.
527 * tree.c (staticp): Likewise.
528 (recompute_tree_invarant_for_addr_expr): Likewise.
529 * drawf2out (loc_descriptor_from_tree_1): Likewise.
530 * c-decl.c (diagnose_mismatched_decls): Likewise.
531 with DECL_THREAD_LOCAL_P.
532 (start_decl): Likewise.
533 * print-tree.c (print_node): Likewise. Print the TLS model.
534 (grokdeclarator): Set the default DECL_TLS_MODEL here.
535 * c-common.c (handle_tls_model_attribute): Rewrite to set the
536 TLS model up based on the attribute. Never add the attribute
537 to the decl's attributes list.
538 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
539 DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
541 2005-06-30 Zdenek Dvorak <dvorakz@suse.cz>
544 * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
547 2005-06-30 Bernd Schmidt <bernd.schmidt@analog.com>
549 * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
550 mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
553 2005-06-29 David Edelsohn <edelsohn@gnu.org>
555 * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
557 2005-06-29 Diego Novillo <dnovillo@redhat.com>
560 * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
561 when following copy-of chains.
563 2005-06-30 Jan Hubicka <jh@suse.cz>
565 * function.h (struct function): Add saved blocks/unexpanded var list.
566 * gimple-low.c (record_vars): Insert only VAR_DECLs.
567 * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
568 (remap_decl): Do not declare vars.
569 (remap_block): Do not care inserting blocks.
570 (remap_blocks): New function.
571 (copy_body_r): Update debug info.
572 (expand_call_inline): Duplicate callee block tree into caller;
573 copy all the unexpanded_var_list.
574 (save_body): Save unexpanded_var_list and blocks.
575 * tree-optimize.c (tree_rest_of_optimization): Restore
576 blocks/unexpanded_var_list.
578 2005-06-29 Richard Henderson <rth@redhat.com>
580 * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
581 plus for V4HImode UMAX.
583 2005-06-29 Joseph S. Myers <joseph@codesourcery.com>
585 * c-tree.h (default_function_array_conversion): Take and return
587 * c-typeck.c (default_function_array_conversion): Split into
588 array_to_pointer_conversion and function_to_pointer_conversion.
589 Take and return struct c_expr.
590 (array_to_pointer_conversion): Do not handle type qualifiers or
591 COMPOUND_EXPRs specially.
592 (build_function_call): Call function_to_pointer_conversion for
593 function designators.
594 (build_unary_op): Call array_to_pointer_conversion, not
595 default_function_array_conversion.
596 (digest_init, output_init_element): Likewise.
597 * c-parser.c: All callers of default_function_array_conversion
600 2005-06-29 Ziemowit Laski <zlaski@apple.com>
602 * config/darwin.c (machopic_select_section): constant ObjC string
603 objects now always have type "__builtin_ObjCString".
605 2005-06-29 Richard Henderson <rth@redhat.com>
607 * config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
609 2005-06-29 Richard Henderson <rth@redhat.com>
611 * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
612 (vect_create_epilog_for_reduction): Don't use vec_shr if the
613 operation is emulated.
614 (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
615 tests from vectorizable_operation.
617 2005-06-29 Caroline Tice <ctice@apple.com>
620 * varasm.c (assemble_start_function): Add "L" to beginning of
621 local labels, so assembler & linker treat them as local.
623 2005-06-29 Richard Henderson <rth@redhat.com>
625 * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
626 argument. Simplify canonicalization of condition. Use unsigned
627 saturating subtraction for QI and HImode unsigned compares. Use
628 bit arithmetic tricks for SImode unsigned compares.
629 * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
630 * config/i386/sse.md (SSEMODE14): New.
631 (umaxv8hi3): Use us_minus+plus to avoid vcond.
633 (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
634 (smin<SSEMODE14>3): Similarly with sminv16qi3.
635 (umin<SSEMODE24>3): Similarly with uminv8hi3.
637 2005-06-29 Ian Lance Taylor <ian@airs.com>
639 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
640 GEN_INT to gen_int_for_mode when storing register size to memory.
642 2005-06-29 Stuart Hastings <stuart@apple.com>
644 * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
645 * gcc/config/i386/emmintrin.h: Likewise.
646 * gcc/config/i386/pmmintrin.h: Likewise.
647 * gcc/config/i386/xmmintrin.h: Likewise.
649 2005-06-29 Steve Ellcey <sje@cup.hp.com>
652 * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
653 (SET_TYPE_VECTOR_SUBPARTS): New.
654 * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
655 SET_TYPE_VECTOR_SUBPARTS.
656 * tree-vect-transform.c (vect_transform_loop): Add cast.
658 2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
660 * config/s390/s390.c (s390_decompose_address): Accept invalid
661 displacements for addresses containing frame_pointer_rtx or
662 virtual_stack_vars_rtx.
663 (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
664 (s390_initial_elimination_offset): New offset when eliminating the
666 * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
667 (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
669 2006-06-28 Ziemowit Laski <zlaski@apple.com>
671 * c-common.c (flag_next_runtime): Move...
672 * toplev.c (flag_next_runtime): ... here.
673 * c-common.h (flag_next_runtime): Move...
674 * flags.h (flag_next_runtime): ... here.
675 * config/darwin-c.c: Include flags.h.
676 * config/t-darwin (darwin-c.o): Depend on flags.h.
678 2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
680 * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
681 Disable aliasing warning with void * cast.
682 (sh_fallback_frame_state): Likewise.
684 2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
686 * target.h (gcc_target): New field allocate_initial_value.
687 * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
688 (TARGET_INITIALIZER): Include it.
689 * integrate.c (allocate_initial_values): Use
690 targetm.allocate_initial_value.
691 * system.h: Poison ALLOCATE_INITIAL_VALUE.
692 * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
693 * config/sh/sh.c (sh_pr_n_sets): Make it static.
694 (sh_allocate_initila_value): New function.
695 (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
696 * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
697 * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
698 update from ALLOCATE_INITIAL_VALUE.
700 2005-06-28 Richard Henderson <rth@redhat.com>
702 * tree-vectorizer.c (vect_is_simple_reduction): Compare types
703 using TYPE_MAIN_VARIANT.
705 2005-06-28 Richard Henderson <rth@redhat.com>
707 * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
708 when using psubN.uuu.
710 2005-06-29 Kelley Cook <kcook@gcc.gnu.org>
712 * doc/gcc.texi: Update FSF address.
714 2005-06-28 Eric Christopher <echristo@redhat.com>
718 * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
719 Use. Fix detection of invalid extern inline redefinition.
721 2005-06-28 Diego Novillo <dnovillo@redhat.com>
723 * tree-optimize.c (init_tree_optimization_passes): Fix typo.
725 2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
727 * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
729 2005-06-28 Richard Henderson <rth@redhat.com>
731 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
732 saturating subtraction for QI and HImode unsigned compares. Use
733 bit arithmetic tricks for SImode unsigned compares.
734 (ia64_expand_vcondu_v2si): Remove.
735 (ia64_expand_vecint_cmov): Don't call it.
737 2005-06-28 Richard Henderson <rth@redhat.com>
739 * rtlanal.c (nonzero_bits1): Use the mode of the value for
740 determining integral-ness for comparisons.
742 2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
744 * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
746 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
748 * target.h (invalid_conversion, invalid_unary_op,
749 invalid_binary_op): New hooks.
750 * target-def.h (TARGET_INVALID_CONVERSION,
751 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
752 TARGET_INITIALIZER): Likewise.
753 * hooks.h (hook_constcharptr_tree_tree_null,
754 hook_constcharptr_int_tree_null,
755 hook_constcharptr_int_tree_tree_null): New.
756 * hooks.c (hook_constcharptr_tree_tree_null,
757 hook_constcharptr_int_tree_null,
758 hook_constcharptr_int_tree_tree_null): Likewise.
759 * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
760 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
761 * c-convert.c (convert): Use invalid_conversion hook.
762 * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
763 (build_binary_op): Use invalid_binary_op hook.
764 * config/ia64/ia64-modes.def: Define RFmode.
765 * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
766 (ia64_expand_movxf_movrf): New.
767 * config/ia64/ia64.md (movxf): Move code to
768 ia64_expand_movxf_movrf.
769 (movrf, movrf_internal): New.
770 * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
771 ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
772 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
773 (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
774 Add mode parameter. Make static.
775 (ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
777 (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
778 ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
779 (ia64_init_builtins): Set up __fpreg as RFmode.
780 (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
782 2006-06-28 Adrian Straetling <straetling@de.ibm.com>
784 * builtins.c: (expand_builtin_memset): Rewrite to support
785 'set_storage_via_setmem'.
786 * expr.c: (enum insn_code setmem_optab): Define.
787 (enum insn_code clrmem_optab): Remove.
788 (set_storage_via_setmem): New function.
789 (clear_storage_via_setmem): Remove.
790 (clear_storage): Replace call to "clear_storage_via_clrmem" with
791 "set_storage_via_setmem".
792 * expr.h: (set_storage_via_setmem): Declare.
793 (CLEAR_RATIO): Redefine using HAVE_setmemM.
794 * optabs.h: (enum insn_code setmem_optab): Declare.
795 (enum insn_code clrmem_optab): Remove.
796 * optabs.c: (init_optabs): Initialize setmem_optab.
797 (enum insn_code clrmem_optab): Remove.
798 * genopinit.c: (otabs): Likewise.
799 * doc/md.texi: Document new standard pattern 'setmem'. Remove
801 * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
803 * config/frv/frv.c: (frv_expand_block_clear): Likewise.
804 * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
805 * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
806 FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
807 * config/avr/avr.md: ("clrmemhi"): Likewise.
808 * config/frv/frv.md: ("clrmemsi"): Likewise.
809 * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
810 * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
811 * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
812 * config/s390/s390.md: ("clrmem<mode>"): Likewise.
814 2005-06-28 Paul Brook <paul@codesourcery.com>
816 * Makefile.in: Set and use UNWIND_H. Install as unwind.h.
817 * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
818 * except.c (add_ehspec_entry): Generate arm eabi filter lists.
819 (assign_filter_values): Ditto.
820 (output_ttype): New function.
821 (output_function_exception_table): Use output_ttype. Generate arm
823 (default_init_unwind_resume_libfunc): New function.
824 * except.h (default_init_unwind_resume_libfunc): Add prototype.
825 * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
826 * opts.c (decode_options): Use targetm.unwind_tables_default.
827 * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
828 (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
829 * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
830 and arm_eabi_unwinder.
831 * unwind-c.c: Support Arm EABI unwinder.
832 * unwind.h: Rename ...
833 * unwind-generic.h: ... To this.
834 * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
835 (TARGET_UNWID_TABLES_DEFAULT): Document.
837 * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
838 * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
839 (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
841 (thumb_pushpop, thumb_output_function_prologue): Output unwinding
843 (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
844 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
846 (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
847 * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
848 * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
849 ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
850 * config/arm/lib1funcs.asm: Include libunwind.S.
851 * config/arm/libgcc-bpabi.ver: Add unwinding routines.
852 * config/arm/libunwind.S: New file.
853 * config/arm/pr-support.c: New file.
854 * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
855 (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
856 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
857 * config/arm/unwind-arm.c: New file.
858 * config/arm/unwind-arm.h: New file.
859 * config/i386/t-netware (USER_H): Remove unwind.h.
860 * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
862 2005-06-28 DJ Delorie <dj@redhat.com>
864 * c-decl.c (pop_scope): Move warning control into warning call.
865 (diagnose_mismatched_decls): Likewise.
866 (pushdecl): Likewise.
867 (start_decl): Likewise.
868 (grokparms): Likewise.
869 (start_function): Likewise.
870 (store_parm_decls_newstyle): Likewise.
871 (store_parm_decls_oldstyle): Likewise.
872 (finish_function): Likewise.
873 (declspecs_add_scspec): Likewise.
874 * c-format.c (decode_format_attr): Likewise.
875 (maybe_read_dollar_number): Likewise.
876 (avoid_dollar_number): Likewise.
877 (finish_dollar_format_checking): Likewise.
878 (check_format_info): Likewise.
879 (check_format_info_main): Likewise.
880 (check_format_types): Likewise.
881 (format_type_warning): Likewise.
882 * c-typeck.c (function_types_compatible_p): Likewise.
883 (build_array_ref): Likewise.
884 (convert_arguments): Likewise.
885 (build_c_cast): Likewise.
886 (store_init_value): Likewise.
887 (process_init_element): Likewise.
888 (c_start_case): Likewise.
889 * stor-layout.c (finalize_record_size): Likewise.
890 * tree-cfg.c (execute_warn_function_noreturn): Likewise.
891 * tree-inline.c (expand_call_inline): Likewise.
893 2005-06-28 Uros Bizjak <uros@kss-loka.si>
896 * config/i386/i386.md (fist<mode>2_with_temp splitter):
897 Clobber memory operand, not scratch register.
899 2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
901 * config/s390/s390.c (machine_function): New field has_landing_pad_p.
902 (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
903 s390_regs_ever_clobbered): New functions.
904 (s390_return_addr_rtx): Use get_hard_reg_initial_value.
905 (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
906 Use s390_regs_ever_clobbered.
907 (s390_emit_prologue): Don't use r14 as temp reg if its content is used
908 for builtin_return_address.
909 * config/s390/s390.md ("exception_receiver"): New expander.
910 * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
913 2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
915 * except.c (current_function_has_exception_handlers): Function
916 description added and if statements merged.
918 2005-06-28 Richard Henderson <rth@redhat.com>
920 * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
921 (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
923 2005-06-27 Richard Henderson <rth@redhat.com>
925 * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
926 comparison operations.
927 (ia64_expand_vecint_minmax): Fix size of xops.
928 * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
929 (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
931 2005-06-27 Richard Henderson <rth@redhat.com>
933 * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
934 type for DEF and INIT_VAL. Pretend MIN/MAX need epilogue adjustment.
936 2005-06-27 Richard Henderson <rth@redhat.com>
938 * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
939 (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
941 2005-06-27 Richard Henderson <rth@redhat.com>
943 * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
944 duplicate little-endian adjustment.
946 2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
948 * doc/include/texinfo.tex: Import from upstream CVS.
950 2005-06-28 Jan Hubicka <jh@suse.cz>
952 * cgraph.c (cgraph_remove_node): Do not release function bodies until
953 full cgraph is built.
954 * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
955 * cgraphunit.c (cgraph_finalize_function): Update call of
956 cgraph_decide_inlining_incrementally.
957 (initialize_inline_failed): Break out of ...
958 (cgraph_analyze_function): ... here.
959 (rebuild_cgraph_edges): New function.
960 (pass_rebuild_cgraph_edges): New pass.
961 * common.opt (fearly-inlining): New flag.
962 * ipa-inline.c: Include ggc.h
963 (cgraph_clone_inlined_nodes): Avoid re-using of original copy
964 when cgraph is not fully built.
965 (cgraph_decide_inlining_incrementally): Add early mode.
966 (cgraph_early_inlining): New function.
967 (cgraph_gate_early_inlining): Likewise.
968 (pass_early_ipa_inline): New pass.
969 * ipa.c (cgraph_postorder): NULLify aux pointer.
970 * tree-inline.c (expand_call_inline): Avoid warning early.
971 * tree-optimize.c (pass_early_local_passes): New.
972 (execute_cleanup_cfg_pre_ipa): New.
973 (pass_cleanup_cfg): New.
974 (register_dump_files): Fix handling subpasses of IPA pass.
975 (init_tree_optimization_passes): Add early passes.
976 (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
977 * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
978 pass_early_ipa_inline): New passes.
979 * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
981 * invoke.texi: Document early-inlining.
983 2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
985 * doc/include/fdl.texi: Merge in changes from upstream.
986 * doc/include/gpl.texi: Likewise.
988 2005-06-27 Diego Novillo <dnovillo@redhat.com>
991 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
992 casts between unsigned and signed types with different size
995 2005-06-28 Jan Hubicka <jh@suse.cz>
997 * tree-optimize.c (exercute_free_datastructures):
998 Do not disband implicit edges; do not attempt to build insn list;
999 do not free cfg annotations.
1000 (execute_free_cfg_annotations); Disband implicit edges here;
1001 free cfg annotations here too.
1002 (pass_free_cfg_annotations); New pass.
1003 (init_tree_optimization_passes); Add pass_free_cfg_annotations.
1004 * tree-ssa-operands.c (free_ssa_operands); Recover; export.
1005 * tree-ssa-operands.h (free_ssa_operands); declare.
1006 * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
1008 * tree-ssanames.c (release_defs): Kill addresses_taken.
1010 * basic-block.h (basic_block_def): Kill rbi.
1011 (reorder_block_def): Kill; Remove next field (replaced by aux);
1012 move other fields to ...
1013 (rtl_bb_info): ... here.
1014 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
1015 copy_bb, connect_traces, add_labels_and_missing_jumps
1016 fix_up_fall_thru_edges, fix_crossing_conditional_branches,
1017 duplicate_computed_gotos, partition_hot_cold_basic-blocks):
1018 Update to new fields.
1019 * cfg.c (initialize_bb_rbi): Kill.
1020 * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
1021 fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
1022 * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
1023 (try_redirect_by_replacing_jump): Update rbi references.
1024 (cfg_layout_split_block): Likewise.
1025 (cfg_layout_delete_block): Likewise.
1026 (cfg_layout_merge_blocks): Likewise.
1027 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1028 * passes.c (rest_of_handle_sms): Likewise.
1029 * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
1031 2005-06-27 David Edelsohn <edelsohn@gnu.org>
1033 * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
1034 in verbose_asm output.
1035 * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
1037 * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
1040 2005-06-27 Jakub Jelinek <jakub@redhat.com>
1042 * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
1043 (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
1044 (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
1045 (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
1046 ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
1047 * builtins.c: Include tree-flow.h.
1048 (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
1049 (expand_builtin_object_size, expand_builtin_memory_chk,
1050 maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
1051 compute_object_offset, compute_builtin_object_size,
1052 fold_builtin_object_size): New functions.
1053 (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
1054 (fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
1055 and BUILT_IN_{,F}PRINTF_UNLOCKED.
1056 (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
1057 fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
1058 fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
1059 fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
1061 * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
1062 BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
1063 BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
1064 BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
1065 BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
1066 BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
1067 BUILT_IN_VPRINTF_CHK): New builtins.
1068 * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
1070 (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
1071 BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
1072 BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
1073 BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
1074 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
1075 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
1076 BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
1077 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
1078 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
1079 * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
1080 DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
1081 * Makefile.in (OBJS-common): Add tree-object-size.o.
1082 (tree-object-size.o): Add dependencies.
1083 * tree-pass.h (pass_object_sizes): Add.
1084 * tree-optimize.c (init_tree_optimization_passes): Add
1086 * tree-object-size.c: New file.
1087 * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
1088 fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
1089 compute_builtin_object_size, init_object_sizes, fini_object_sizes):
1091 * tree-ssa-ccp.c (get_strlen): Rename to ...
1092 (get_maxval_strlen): ...this function. Handle also computing of maximum
1093 string length and maximum integral value.
1094 (ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
1095 instead of get_strlen. Pass CALLEE and ARGLIST variables to the
1096 folding functions instead of computing them again.
1097 (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
1098 into some other builtin.
1099 * doc/extend.texi (Object Size Checking): Document.
1101 * regrename.c (copy_value): Fix comment.
1103 * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
1104 instead of preprocessor conditionals.
1106 * targhooks.c (default_hidden_stack_protect_fail): Fall back to
1107 default_external_stack_protect_fail if visibility is not supported
1109 * config/i386/i386.c (ix86_stack_protect_fail): New function.
1110 (TARGET_STACK_PROTECT_FAIL): Define.
1111 * config/i386/i386.md (stack_protect_si): Change CLOBBER into
1113 (stack_protect_di): Likewise. Use %k2 instead of %2 to avoid
1114 invalid instruction xorl %rax, %rax.
1116 2005-06-27 Richard Henderson <rth@redhat.com>
1118 * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
1119 * cfgexpand.c: Include params.h.
1120 (has_protected_decls, has_short_buffer): New.
1121 (expand_stack_vars): Take a predicate to determine what to expand.
1122 (defer_stack_allocation): True when flag_stack_protect on.
1123 (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
1124 (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
1125 (stack_protect_classify_type, stack_protect_decl_phase): New.
1126 (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
1127 (add_stack_protection_conflicts, create_stack_guard): New.
1128 (expand_used_vars): Add stack protection logic.
1129 (tree_expand_cfg): Likewise.
1130 * common.opt (Wstack-protector): New.
1131 (fstack-protector, fstack-protector-all): New.
1132 * function.c: Include predict.h.
1133 (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
1134 wants to copy the parameter into the stack frame.
1135 (stack_protect_prologue, stack_protect_epilogue): New.
1136 (expand_function_end): Call stack_protect_epilogue. Do
1137 sjlj_emit_function_exit_after after naked_return_label.
1138 * function.h (struct function): Add stack_protect_guard.
1139 * params.def (PARAM_SSP_BUFFER_SIZE): New.
1140 * toplev.c (process_options): Disable flag_stack_protect and/or
1141 warn_stack_protect based on FRAME_GROWS_DOWNWARD.
1142 * tree.h (stack_protect_prologue): Declare.
1144 * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
1145 (TARGET_STACK_PROTECT_FAIL): New.
1146 (TARGET_INITIALIZER): Add them.
1147 * target.h (struct gcc_target): Add stack_protect_guard and
1149 * targhooks.c: Include ggc.h, gty header.
1150 (stack_chk_guard_decl, default_stack_protect_guard): New.
1151 (stack_chk_fail_decl, default_external_stack_protect_fail): New.
1152 (default_hidden_stack_protect_fail): New.
1153 * targhooks.h (default_stack_protect_guard): Declare.
1154 (default_external_stack_protect_fail): Declare.
1155 (default_hidden_stack_protect_fail): Declare.
1156 * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
1157 * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
1159 (conditional_trap, conditional_trap_1): Remove.
1160 (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
1161 (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
1162 * doc/md.texi (stack_protect_set, stack_protect_test): New.
1163 * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
1164 (TARGET_STACK_PROTECT_FAIL): New.
1166 * libgcc-std.ver (GCC_4.1.0): New.
1167 * libgcc.h (__stack_chk_guard): Declare.
1168 (__stack_chk_fail, __stack_chk_fail_local): Declare.
1169 * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
1170 * mklibgcc.in (lib2funcs): Add them.
1172 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1175 * c-common.c (check_function_sentinel): Pass in named argument
1176 list, skip over named arguments before looking for a sentinel.
1177 (check_function_arguments): Pass in named argument list.
1178 * c-common.h (check_function_arguments): Likewise.
1179 * c-typeck.c (build_function_call): Likewise.
1181 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1183 * genautomata.c (decl_mode_check_failed,
1184 regexp_mode_check_failed): Add noreturn attribute.
1186 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1188 * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
1189 * doc/invoke.texi: Fix typos.
1191 * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
1192 convert.c, lambda-code.c, predict.c, tree-cfg.c,
1193 tree-complex.c, tree-data-ref.c, tree-if-conv.c,
1194 tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
1195 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
1196 tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1197 tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
1198 tree.c: Use fold_buildN instead of fold (buildN (...)).
1200 2005-06-26 Gerald Pfeifer <gerald@pfeifer.com>
1202 * doc/install.texi (Specific): Do not specify the concrete
1203 versions of GCC provided by Cygwin. Simplify the part on
1206 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1208 * config/arc/arc-protos.c: Remove the prototype for
1210 * config/arc/arc.c (arc_finalize_pic): Remove.
1211 * config/arc/arc.h (FINALIZE_PIC): Likewise.
1212 * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
1213 * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
1215 2005-06-26 Jakub Jelinek <jakub@redhat.com>
1218 * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
1219 instead of alloca for really big argument sizes.
1222 * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
1223 earlier in the function.
1225 * regrename.c (copy_value): Don't replace fixed or global
1226 regs with older regs.
1228 * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
1229 * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
1230 instead of preprocessor conditionals.
1231 (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
1232 * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
1233 depending on if it was or was not defined previously.
1234 * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
1235 definition of FRAME_GROWS_DOWNWARD means frame grows downward.
1236 * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
1237 * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
1239 * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
1240 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
1241 * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
1242 * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
1243 * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
1244 * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
1245 * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
1246 * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
1248 * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
1249 * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
1250 * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
1251 * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
1252 * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
1253 * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
1254 * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
1255 * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
1256 * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
1257 * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
1258 * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
1259 * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
1260 * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
1261 * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
1262 * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
1263 * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
1264 * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
1265 * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
1266 * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
1268 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1270 PR tree-optimization/22026
1271 * tree-vrp.c (extract_range_from_binary_expr): Drop to
1272 VR_VARYING if a binary expression involving VR_ANTI_RANGE is
1273 PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
1275 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1277 * Makefile.in (OBJS-common): Remove duplicate object file
1280 2005-06-25 Jan Hubicka <jh@suse.cz>
1282 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
1283 * cfg.c (update_bb_profile_for_threading): Fix rescaling.
1285 * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
1287 (rest_of_compilation): Fix conditional on branch prob pass.
1288 * predict.c (tree_estimate_probability): Enable strip_builtin_expect
1289 when not loop optimizing.
1291 2005-06-25 Bernd Schmidt <bernd.schmidt@analog.com>
1293 * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
1295 (movbi): Add alternative to set CC to zero.
1296 (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
1297 compare_ltu): Now named patterns.
1299 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1301 * all files: Update FSF address in copyright headers.
1303 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1305 * gengtype.c: Update FSF address in copyright header.
1306 (create_file): Update FSF in outputed copyright header.
1308 2005-06-24 Kazu Hirata <kazu@codesourcery.com>
1310 * cfglayout.c (block_locators_locs, line_locators_locs,
1311 line_locators_lines, file_locators_locs): Change the type to
1313 (insn_locators_initialize, change_scope, insn_scope,
1314 locator_line, insn_line, locator_file): Use VEC instead of
1317 2005-06-24 Jason Merrill <jason@redhat.com>
1319 * tree-nrv.c (tree_nrv): Fix to check assignments to the
1320 RESULT_DECL rather than just RETURN_EXPRs.
1321 (finalize_nrv_r): Adjust.
1323 2005-06-24 Jan Hubicka <jh@suse.cz>
1325 * tree-optimize.c (init_tree_optimization_passes): Fix flags of
1326 all_passes and all_ipa_passes.
1328 * c-common.c: Include cgraph.h
1329 (handle_externally_visible_attribute): New function.
1330 (c_common_att): Add "externally_visible" attribute.
1331 * cgraph.c (decide_is_variable_needed): Obey externally
1333 (cgraph_varpool_finalize_decl): Avoid redundant checking.
1334 * cgraph.h (struct cgraph_node): New flag externally_visible.
1335 (decide_is_function_needed): Obey externally visible flag.
1336 (cgraph_finalize_function): Avoid redundant checks.
1337 (cgraph_function_and_variable_visibility): Bring symbols local
1339 * common.opt (fwhole-program): New flag.
1341 * doc/invoke.texi (-fwhole-program): Document.
1343 2005-06-24 Mark Mitchell <mark@codesourcery.com>
1346 * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
1349 2005-06-23 Mark Mitchell <mark@codesourcery.com>
1352 * tree-ssa-operands.c (get_expr_operands): Check the volatility of
1353 the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
1355 2005-06-24 Jan Hubicka <jh@suse.cz>
1357 * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
1359 2005-06-23 Jeff Law <law@redhat.com>
1361 * tree-optimize.c (init_tree_optimization_passes): Move
1362 copy prop pass to run just before VRP.
1363 * tree-vrp.c (remove_range_assertions): Remove copies created
1364 by ASSERT_EXPR removal.
1366 2005-06-23 Kazu Hirata <kazu@codesourcery.com>
1368 PR tree-optimization/22117
1369 * tree-vrp.c (extract_range_from_binary_expr): Compute a
1370 correct range when adding two pointers.
1372 2005-06-23 Jason Merrill <jason@redhat.com>
1375 Leave the return slot target in the MODIFY_EXPR rather than making
1376 it an argument, but only use it if the CALL_EXPR has a flag set.
1377 * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
1378 CALL_EXPR_RETURN_SLOT_OPT.
1379 * calls.c (expand_call): Adjust.
1380 * tree-inline.c (expand_call_inline): Adjust.
1381 * tree-pretty-print.c (dump_generic_node): Adjust.
1383 And set the flag as appropriate.
1384 * gimplify.c (gimplify_modify_expr_rhs): Set
1385 CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
1386 * tree-nrv.c (execute_return_slot_opt): Set
1387 CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
1388 * tree-pass.h: Declare pass_return_slot.
1389 * tree-optimize.c (init_tree_optimization_passes): Add it.
1391 2005-06-23 David Edelsohn <edelsohn@gnu.org>
1394 * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
1395 * config/rs6000/rs6000.md: Move atomic instructions to ...
1396 * config/rs6000/sync.md: Here.
1397 Change sync_compare_and_swap<mode> to define_expand. All stwcx
1398 patterns test PPC405_ERRATUM77.
1400 2005-06-23 Jan Hubicka <jh@suse.cz>
1402 * tree-inline.c (copy_body_r): Remap labels correctly.
1404 2005-06-22 Alan Modra <amodra@bigpond.net.au>
1406 * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
1408 2005-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1411 * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
1412 the same as the other cast operands.
1413 (output_addressed_constants): Likewise.
1415 2005-06-21 Jeff Law <law@redhat.com>
1417 * tree-vrp.c (extract_range_from_unary_expr): Handle type
1420 2005-06-21 Dorit Nuzman <dorit@il.ibm.com>
1422 * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
1423 (reduc_plus_optab): Removed. Replcaed with...
1424 (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
1425 * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
1426 reduc_uplus_optab instead of reduc_plus_optab.
1427 (expand_vec_shift_expr): New function.
1428 (init_optabs): Initialize new optabs. Remove initialization of
1430 (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
1431 for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
1432 * optabs.h (OTI_reduc_plus): Removed. Replaced with...
1433 (OTI_reduc_splus, OTI_reduc_uplus): New.
1434 (reduc_plus_optab): Removed. Replcaed with...
1435 (reduc_splus_optab, reduc_uplus_optab): New optabs.
1436 (vec_shl_optab, vec_shr_optab): New optabs.
1437 (expand_vec_shift_expr): New function declaration.
1439 * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
1440 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1441 * expr.c (expand_expr_real_1): Handle new tree-codes.
1442 * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
1443 * tree-vect-generic.c (expand_vector_operations_1): Add assert.
1445 * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
1446 alternatives for generating reduction epilog code.
1447 (vectorizable_reduction): Don't fail of direct reduction support is
1449 (vectorizable_target_reduction_pattern): Likewise.
1451 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1452 reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
1453 reduc_plus_v4si, reduc_plus_v4sf): Removed.
1454 (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
1455 reduc_splus_<mode>, reduc_uplus_v16qi): New.
1457 2005-06-20 Daniel Berlin <dberlin@dberlin.org>
1459 * c-typeck.c (build_function_call): Set fundecl = function again.
1460 * tree-ssa-alias.c (find_used_portions): Address taking causes the
1461 entire variable to be used.
1462 * tree-ssa-structalias.c (do_structure_copy): Fix handling of
1463 unknown size variables, and structure copies from addressof
1464 operations. Simplify how we do *a = *b type structure copies.
1465 (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
1466 way. READONLY's address is not taken by default.
1467 INTEGER dereference should point to anything.
1468 (create_variable_info_for): It's okay for the first field to not start
1471 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
1473 config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
1475 2005-06-20 Roger Sayle <roger@eyesopen.com>
1476 Fariborz Jahanian <fjahanian@apple.com>
1478 * combine.c (simplify_set): Simplify setting of CC register
1479 by removing redundant compare with 0 on RHS.
1481 2005-06-20 Jan Beulich <jbeulich@novell.com>
1483 * config/i386/netware-libgcc.def: Update copyright.
1484 * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
1485 __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
1486 * config/i386/netware.c (gen_stdcall_decoration,
1487 gen_fastd_decoration): Merge into ...
1488 (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
1490 (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
1491 (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
1492 * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
1493 libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
1494 * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
1495 use of NX_MUTEX_RECURSIVE.
1497 2005-06-19 Roger Sayle <roger@eyesopen.com>
1499 * fold-const.c (swap_tree_comparison): Add support for unordered
1500 floating point comparisons.
1501 * tree-vrp.c (opposite_comparison): Delete.
1502 (extract_range_from_assert): Replace calls to opposite_comparison
1503 with calls to swap_tree_comparison.
1504 (register_edge_assert_for): Likewise.
1505 (vrp_evaluate_conditional): Likewise.
1507 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
1509 * integrate.c (allocate_initial_values): Update the references
1510 to global_live_at_start and global_live_at_end.
1512 2005-06-20 Jan Hubicka <jh@suse.cz>
1514 * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
1515 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
1517 * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
1518 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1519 Update call of duplicate_loop_to_header_edge.
1520 (apply_opt_in_copies): Clear out aux pointers.
1522 2005-06-19 Joseph S. Myers <joseph@codesourcery.com>
1524 * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1525 (ix86_mangle_fundamental_type): New.
1526 * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1527 (ia64_mangle_fundamental_type): New.
1529 2005-06-19 Roger Sayle <roger@eyesopen.com>
1531 * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
1533 * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
1534 CONSTANT_CLASS_P nodes.
1536 2005-06-19 Richard Henderson <rth@redhat.com>
1538 * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
1539 the shift is always required.
1541 2005-06-19 Richard Henderson <rth@redhat.com>
1543 * config/ia64/ia64-modes.def (V4SF): Add.
1544 * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
1545 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
1546 integer mode changes in fp regs.
1547 * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
1548 * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
1549 (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
1550 (vcondv2sf): Use gen_fpack
1551 (fpack): Remove * from name.
1552 (fswap, fmix_l, fmix_r, fmix_lr): New.
1553 (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
1554 (vec_extractv2sf_1, vec_extractv2sf): New.
1556 2005-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
1558 * combine.c (make_compound_operation): Use simplify_subreg. Delete
1559 a optimization already done by simplify_subreg.
1561 2005-06-19 Ulrich Weigand <uweigand@de.ibm.com>
1563 * loop.c (scan_loop): Do not consider insns setting the frame
1564 pointer to be candidates for hoisting.
1566 2005-06-19 Uros Bizjak <uros@kss-loka.si>
1568 * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
1569 Remove instruction patterns.
1570 (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
1571 (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
1572 Set "unit" attribute to "i387".
1573 (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
1574 (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
1576 (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
1577 (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
1578 attribute to "i387" when "type" attribute equals "multi".
1579 (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
1580 (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
1581 (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
1582 (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
1583 attribute to "i387" when "type" attribute equals "multi".
1584 * config/i386/mmx.md (*mov<mode>_internal_rex64)
1585 (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
1586 Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
1587 (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
1588 * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
1589 (sse_cvttpd2pi): Set "unit" attribute to "mmx".
1590 (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
1591 to "mmx" for "y" operand 1.
1593 2005-06-19 Uros Bizjak <uros@kss-loka.si>
1595 * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
1596 for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
1597 and SSE registers to determine if regno is valid.
1598 (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
1599 TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
1601 2005-06-18 Richard Henderson <rth@redhat.com>
1603 * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
1604 for control-altering statements; set it again for returns.
1605 (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
1608 2005-06-18 Richard Henderson <rth@redhat.com>
1611 * tree-ssa-pre.c (create_expression_by_pieces): Set
1612 DECL_COMPLEX_GIMPLE_REG_P.
1613 (insert_into_preds_of_block): Likewise.
1615 2005-06-18 Steven Bosscher <stevenb@suse.de>
1617 * Makefile.in: Fix tree-cfgcleanup.c dependencies.
1619 2005-06-18 Richard Henderson <rth@redhat.com>
1621 * expr.c (store_constructor): Use store of 0 to indicate value
1622 death instead of a clobber.
1624 * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
1625 * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
1626 * config/i386/sse.md (reduc_plus_v4sf): New.
1627 (reduc_smax_v4sf, reduc_smin_v4sf): New.
1629 2005-06-18 James A. Morrison <phython@gcc.gnu.org>
1631 * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
1632 nonnegative values of X.
1634 2005-06-18 Uros Bizjak <uros@kss-loka.si>
1636 * doc/md.texi (Standard Names): Change insn pattern name
1637 from truncM2 to btruncM2 for 'trunc' built-in description.
1638 Add rintM2 insn pattern description.
1640 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1642 * c-decl.c (locate_old_decl): Add format attribute.
1643 (implicit_decl_warning): Likewise.
1645 * diagnostic.h (verbatim): Move ...
1646 * toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG.
1647 * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
1649 2005-06-18 Roger Sayle <roger@eyesopen.com>
1652 * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
1654 2005-06-18 Dorit Nuzman <dorit@il.ibm.com>
1656 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
1658 * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
1659 OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
1660 (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1661 reduc_plus_optab): New optabs for reduction.
1662 * expr.c (expand_expr_real_1): Handle new tree-codes.
1663 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1664 * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
1666 * optabs.c (optab_for_tree_code): Handle new tree-codes.
1667 (init_optabs): Initialize new optabs.
1668 * genopinit.c (optabs): Define handlers for new optabs.
1670 * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
1671 case of a phi that is marked as relevant. Call vectorizable_reduction.
1672 (vect_mark_relevant): Phis may be marked as relevant.
1673 (vect_mark_stmts_to_be_vectorized): The use corresponding to the
1674 reduction variable in a reduction stmt does not mark its defining phi
1675 as relevant. Update documentation accordingly.
1676 (vect_can_advance_ivs_p): Skip reduction phis.
1677 * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
1678 additional argument. Handle reduction.
1679 (vect_create_destination_var): Update call to vect_get_new_vect_var.
1680 Handle non-vector argument.
1681 (get_initial_def_for_reduction): New function.
1682 (vect_create_epilog_for_reduction): New function.
1683 (vectorizable_reduction): New function.
1684 (vect_get_new_vect_var): Handle new vect_var_kind.
1685 (vectorizable_assignment, vectorizable_operation, vectorizable_store,
1686 vectorizable_condition): Update call to vect_get_new_vect_var.
1687 (vect_transform_stmt): Call vectorizable_reduction.
1688 (vect_update_ivs_after_vectorizer): Skip reduction phis.
1689 (vect_transform_loop): Skip if stmt is both not relevant and not live.
1690 * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1691 (vect_is_simple_reduction): Was empty - added implementation.
1692 * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1693 (reduc_vec_info_type): New enum vect_def_type value.
1694 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1695 reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1696 reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1698 * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1699 ENABLE_CHECKING around gcc_assert.
1700 * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1701 (vect_do_peeling_for_alignment, vect_transform_loop,
1702 vect_get_vec_def_for_operand): Likewise.
1704 2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
1706 * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1707 big-endian unnamed __float80 value.
1709 2005-06-18 Richard Henderson <rth@redhat.com>
1712 * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1715 2005-06-17 Richard Henderson <rth@redhat.com>
1717 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1718 initialize_original_copy_tables and free_original_copy_tables.
1719 (vect_do_peeling_for_alignment): Likewise.
1721 2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
1723 * bb-reorder.c (find_traces_1_round): Use succ block frequency
1724 instead of edge frequency for calls to better_edge_p.
1726 2005-06-17 Andrew Pinski <pinskia@physics.uc.edu>
1729 * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1731 2005-06-17 Steve Ellcey <sje@cup.hp.com>
1734 * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1735 (PROFILE_HOOK): New.
1736 (PROFILE_BEFORE_PROLOGUE): Undef.
1737 (NO_PROFILE_COUNTERS): New.
1738 * config/ia64/ia64-protos.h (ia64_profile_hook): New.
1739 * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1740 (gen_mcount_func_rtx): New.
1741 (ia64_profile_hook): New.
1742 * config/ia64/ia64.md (ip_value): New.
1744 2005-06-17 Devang Patel <dpatel@apple.com>
1746 * config/rs6000/predicates.md (s5bit_cint_operand,
1747 u5bit_cint_operand): New.
1748 * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1749 altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1750 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1751 5 bit constant check.
1753 2005-06-17 Richard Henderson <rth@redhat.com>
1755 * local-alloc.c (update_equiv_regs): Update reg_equiv_init
1756 properly when moving an initialization insn.
1758 2005-06-17 Paolo Bonzini <bonzini@gnu.org>
1760 * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1762 * configure.ac: Regenerate.
1764 2005-06-17 Jan Hubicka <jh@suse.cz>
1766 * tree-optimize.c (execute_ipa_pass_list): New.
1767 (ipa_passes): Use it.
1769 2005-06-16 Richard Henderson <rth@redhat.com>
1772 * tree-complex.c (update_phi_components): Avoid no-op moves.
1774 2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
1776 * Makefile.in (cc1-checksum.c): Use
1777 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1779 2005-06-16 Geoffrey Keating <geoffk@apple.com>
1781 * gengtype.c (adjust_field_rtx_def): Don't add a skip to
1784 * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1786 (SHLIB_REVISION): Delete.
1787 (SHLIB_VERSTRING): Update to compensate.
1788 (SHLIB_SONAME): Just use one '.' in the name.
1790 2005-06-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1792 PR tree-optimization/22018
1793 * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1795 2005-06-16 Richard Henderson <rth@redhat.com>
1798 * builtins.c (fold_builtin_complex_mul): Remove.
1799 (fold_builtin_complex_div): Remove.
1800 (fold_builtin_1): Don't call them.
1801 * fold-const.c (fold_complex_add, fold_complex_mult_parts,
1802 fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1803 (fold_binary): Don't call them. Don't expand complex comparisons to
1804 elementary comparisons.
1805 * tree-complex.c (init_dont_simulate_again): Enhance search for
1806 stmts that require decomposition.
1807 (complex_visit_stmt): Handle RETURN_EXPR properly.
1808 (create_components): Handle no referenced variables properly.
1809 * tree.h (fold_complex_mult_parts): Remove.
1810 (fold_complex_div_parts): Remove.
1812 2005-06-16 Richard Guenther <rguenth@gcc.gnu.org>
1814 * doc/extend.texi: Document sseregparm target attribute.
1815 Clarify fastcall and regparm documentation.
1816 * config/i386/i386.h: Adjust float_in_sse documentation.
1817 * config/i386/i386.c: Add new target attribute sseregparm.
1818 (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1820 (ix86_handle_cconv_attribute): ... here. Also handle
1821 sseregparm attribute.
1822 (ix86_comp_type_attributes): Compare sseregparm attributes.
1823 (ix86_function_sseregparm): New function, split out from ...
1824 (init_cumulative_args): ... here. Use to decide use
1825 of SSE registers and error in case of missing support.
1826 (ix86_value_regno): Likewise.
1827 (function_arg_advance): Do not bail out for DFmode if we need
1828 to pass doubles in registers.
1829 (function_arg): Likewise.
1831 2005-06-16 Paolo Bonzini <bonzini@gnu.org>
1832 Daniel Jacobowitz <dan@codesourcery.com>
1833 Alan Modra <amodra.bigpond.net.au>
1835 * configure.ac (gcc_version): Set near the beginning.
1836 (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
1837 found in the tree. Use gcc_AC_PROG to find the tools in the system.
1838 (objdump): Do not look for it.
1839 * Makefile.in (NM_FOR_TARGET): Point to ./nm
1840 (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1841 ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1842 (as, ld, nm): New rules.
1843 (libgcc.mk): Depend on them.
1844 * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1845 gcc_AC_BUILD_EXEEXT): New.
1846 (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1847 * configure: Regenerate.
1849 2005-06-16 Jan Hubicka <jh@suse.cz>
1851 * basic-block.h (rtl_bb_info): Break out head_, end_,
1852 global_live_at_start, global_live_at_end from ...
1853 (basic_block_def): ... here; update all references
1855 (init_rtl_bb_info): Declare.
1856 * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1858 * cfgrtl.c: Include ggc.h
1859 (create_basic_block_structure): Init bb info.
1860 (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1861 (init_rtl_bb_info): New function.
1862 (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1863 * cfghooks.c (merge_block): Do not copy global_live_at_end here.
1864 * cfg.c (clear_bb_flags): Skip BB_RTL flag.
1865 (dump_flow_info): Gueard global_live_* dumping.
1867 * Makefile.in (cfg.o): Add new dependencies.
1868 * basic-block.h (reorder_block_def): Kill
1869 original/copy/duplicated/copy_number fields.
1870 (BB_DUPLICATED): New flag.
1871 (initialize_original_copy_tables, free_original_copy_tables,
1872 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1873 * cfg.c: Include hashtab.h and alloc-pool.h
1874 (bb_original, bb_copy, original_copy_bb_pool): New static vars.
1875 (htab_bb_copy_original_entry): New struct.
1876 (bb_copy_original_hash, bb_copy_original_eq): New static functions.
1877 (initialize_original_copy_tables, free_original_copy_tables,
1878 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1880 * cfghooks.c (duplicate_block): Update original/copy handling.
1881 * cfglayout.c (fixup_reorder_chain): Likewise.
1882 (cfg_layout_initialize): Initialize orignal_copy tables.
1883 (cfg_layout_finalize): FInalize original_copy tables.
1884 (can_copy_bbs_p): Use BB_DUPLICATED flag.
1885 (copy_bbs): Likewise.
1886 * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1887 (duplicate_loop_to_header_edge): Likewise; update handling of
1889 (loop_version): Likewise.
1890 * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1891 * except.c (expand_resx_expr): Check that reg->resume is not set.
1892 * loop-unroll.c (unroll_loop_constant_iterations,
1893 unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1894 copy/original handling.
1895 * loop-unwitch.c (unswitch_loop): Likewise.
1896 * tree-cfg.c (create_bb): Do not initialize RBI.
1897 (disband_implicit_edges): Do not kill RBI.
1898 (add_phi_args_after_copy_bb): Use new original/copy mapping.
1899 (add_phi_args_after_copy): Use BB_DUPLICATED flag.
1900 (tree_duplicate_sese_region): Update original/copy handling.
1901 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1902 * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1903 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1905 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
1908 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1909 integer types whos ranges are different are not useless.
1911 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
1914 * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1917 2005-06-15 Diego Novillo <dnovillo@redhat.com>
1919 * tree-ssa-structalias.c (dump_solution_for_var): Reformat
1921 (dump_sa_points_to_info): Make extern.
1922 (debug_sa_points_to_info): New.
1923 * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1925 (dump_sa_points_to_info): Declare.
1926 (debug_sa_points_to_info): Declare.
1928 2005-06-15 Joseph S. Myers <joseph@codesourcery.com>
1930 * c-tree.h (default_function_array_conversion): Declare.
1931 * c-typeck.c (default_function_array_conversion): Export. Correct
1933 (default_conversion): Do not call
1934 default_function_array_conversion. Do not allow FUNCTION_TYPE.
1935 (build_function_call): Call default_function_array_conversion on
1937 (convert_arguments): Do not call it on the function arguments.
1938 (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1939 TRUTH_NOT_EXPR. Call default_function_array_conversion for taking
1940 address of ARRAY_REF.
1941 (build_compound_expr): Do not call
1942 default_function_array_conversion.
1943 (build_c_cast): Do not call default_function_array_conversion.
1944 (convert_for_assignment): Do not call default_conversion.
1945 (digest_init): Call default_function_array_conversion to convert
1946 string constants and compound literals to pointers, but not
1948 (output_init_element): Likewise.
1949 (build_asm_expr): Do not call default_function_array_conversion.
1950 (c_process_expr_stmt): Likewise.
1951 (c_objc_common_truthvalue_conversion): Likewise. Do not allow
1953 * c-parser.c (c_parser_expression_conv): New.
1954 (c_parser_asm_operands, c_parser_expr_list): Add convert_p
1955 argument. All callers changed. Call
1956 default_function_array_conversion if convert_p.
1957 (c_parser_initializer, c_parser_initval): Call
1958 default_function_array_conversion except for string constants and
1960 (c_parser_initelt): Call default_function_array_conversion for
1961 ObjC expression received.
1962 (c_parser_statement_after_labels): Call c_parser_expression_conv
1963 for return and expression statements.
1964 (c_parser_paren_condition, c_parser_for_statement,
1965 c_parser_conditional_expression): Call c_parser_expression_conv.
1966 (c_parser_expr_no_commas, c_parser_conditional_expression,
1967 c_parser_binary_expression, c_parser_cast_expression,
1968 c_parser_unary_expression): Call
1969 default_function_array_conversion.
1971 2005-06-15 Diego Novillo <dnovillo@redhat.com>
1973 * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
1974 when the result overflows.
1976 2005-06-15 David Ung <davidu@mips.com>
1978 * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
1981 2005-06-15 Richard Sandiford <richard@codesourcery.com>
1983 * doc/invoke.texi (-mips16): Fix typo.
1985 2005-06-15 David Ung <davidu@mips.com>
1987 * config/mips/mips.h (GENERATE_MIPS16E): New definition.
1988 * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
1989 Changed expand condition to exclude generating of "and" if
1990 GENERATE_MIPS16E is true.
1991 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
1992 matching mips16e zeb/zeh.
1993 (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
1995 (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
1997 * doc/invoke.texi (MIPS Options): Add comment to -mips16
1998 indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
2000 2005-06-15 Diego Novillo <dnovillo@redhat.com>
2003 * tree-vrp.c (vrp_int_const_binop): New.
2004 (extract_range_from_binary_expr): Call it.
2005 Unify handling division and multiplication.
2007 2005-06-15 Aldy Hernandez <aldyh@redhat.com>
2009 * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
2011 * c-common.c (same_scalar_type_ignoring_signedness): New.
2013 * c-typeck.c (build_binary_op): Check compatability of vector
2014 types. Move error report after switch.
2015 Do not clobber code[01] on *_DIV_EXPR case.
2017 * testsuite/gcc.dg/simd-1.c: Update error messages.
2018 * testsuite/gcc.dg/simd-1b.c: Re-enable tests. Update error
2020 * testsuite/gcc.dg/simd-2.c: Update error messages.
2021 * testsuite/gcc.dg/simd-4.c: New.
2023 2005-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
2025 * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
2026 * local-alloc.c: Include "ggc.h" and "reload.h".
2027 (struct equivalence): New member is_arg_equivalence.
2028 (local_alloc): Always call update_equiv_regs.
2029 (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
2030 Detect equivalences made by stores to memory in a second pass.
2031 Return early if not optimizing.
2032 Initialize reg_equiv_init for all equivalences; treat equivalences for
2033 REG_EQUIV notes existing before this pass specially.
2034 (no_equiv): Don't clear reg_equiv_init or remove notes if the
2035 is_arg_equivalence field is set.
2036 * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
2037 * reload1.c (reg_equiv_init): No longer static.
2038 (reg_equiv_init_size): New variable.
2039 (reload): Don't allocate reg_equiv_init; don't free it when done but
2041 Restructure equivalence set up code not to set reg_equiv_init, but to
2042 clear it when we can't use an equivalence.
2043 Undo change disabling equivalences for MEM_READONLY_P memrefs.
2044 Dump equivalencing insns to dump_file.
2046 2005-06-14 Richard Sandiford <richard@codesourcery.com>
2048 * config/mips/mips.c (machine_function): Add varargs_size field.
2049 (mips_setup_incoming_varargs): Store the amount of extra stack space
2050 there rather than in *pretend_size. When saving registers, always
2051 expect virtual_incoming_args_rtx to point to the start of the
2053 (mips_va_start): Remove alignment hack. Handle all
2054 !EABI_FLOAT_VARARGS_P cases in the same way.
2055 (compute_frame_size): Handle varargs_size. Remove the redundant
2056 !TARGET_OLDABI condition in the handling of pretend_args_size.
2057 (mips_initial_elimination_offset): Remove the now-redundant check
2060 2005-06-14 Jeff Law <law@redhat.com>
2062 * tree-vrp.c (local_fold): Remove.
2063 (simplify_using_ranges): Use fold_convert, not local_fold. Tweak
2064 DIV/MOD case slightly for readability.
2066 2005-06-14 Frank Ch. Eigler <fche@redhat.com>
2069 * tree-mudflap.c (mudflap_finish_file): Exclude non-public
2070 rather than static objects (!) from libmudflap registration.
2072 2005-06-14 Richard Sandiford <richard@codesourcery.com>
2074 * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
2075 (var_ref): Take the option's flags as a second parameter. Check
2077 * optc-gen.awk: Declare local state variables. Pass flags to var_ref.
2079 2005-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
2082 * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
2083 unsigned index numbers.
2085 2005-06-13 Geoffrey Keating <geoffk@apple.com>
2087 * Makefile.in (install-man): Doesn't really depend on installdirs.
2088 (various rules for installing manpages): Do depend on installdirs.
2090 2005-06-14 Nathan Sidwell <nathan@codesourcery.com>
2092 * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
2093 read_encoded_value_with_base call.
2094 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
2095 * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
2096 * unwind-dw2.c (extract_cie_info): Fix aliasing in
2097 read_encoded_value call.
2098 (execute_cfa_program, uw_frame_state_for): Likewise.
2100 2005-06-13 Roger Sayle <roger@eyesopen.com>
2102 PR rtl-optimization/22053
2103 * reg-stack.c (compensate_edge): Correct mistake in the assertion
2104 checking of EDGE_ABNORMAL_CALL edges; complex return values can
2105 result in the top two stack slots, st(0) and st(1), being live.
2107 2005-06-13 Jeff Law <law@redhat.com>
2109 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
2110 simplify DIV, MOD or ABS expressions using VRP information.
2111 Remove WALK_DATA parameter. Prototype and all callers updated.
2112 (eliminate_redundant_computations): Remove WALK_DATA parameter.
2113 Prototype and all callers updated.
2114 (optimize_stmt): WALK_DATA parameter is now unused.
2116 * tree-vrp.c (local_fold): New function. Like fold, but
2117 strips useless type conversions in the result.
2118 (simplify_using_ranges): New function, largely cribbed from
2119 tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
2120 (vrp_finalize): Call simplify_using_ranges.
2122 2005-06-13 Mark Mitchell <mark@codesourcery.com>
2124 * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
2125 assembler in 64-bit mode.
2127 2005-06-13 David Edelsohn <edelsohn@gnu.org>
2129 Revert scc_operand patch.
2130 * config/rs6000/predicates.md (scc_operand): Delete.
2131 * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
2133 2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
2136 * fold-const.c (split_address_to_core_and_offset): Always return
2137 the address of the base object.
2139 2005-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
2141 * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
2143 2005-06-12 Richard Henderson <rth@redhat.com>
2146 * tree-complex.c (update_complex_components_on_edge): New.
2147 (update_parameter_components): Use it.
2148 (update_phi_components): Likewise.
2149 (expand_complex_move): Likewise for is_ctrl_altering_stmt.
2151 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
2153 PR tree-optimization/14796
2154 * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
2157 2005-06-12 Kazu Hirata <kazu@codesourcery.com>
2159 * cgraphunit.c, tree-ssa-loop-ivopts.c,
2160 tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
2161 config/sparc/sparc.c: Fix comment typos.
2163 2005-06-12 Richard Earnshaw <richard.earnshaw@arm.com>
2165 * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
2166 (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
2167 * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
2168 (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
2170 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
2172 PR tree-optimization/14796
2173 * fold-const.c (fold_binary): Transform (A >> C) << C into
2175 <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
2177 2005-06-11 Geoffrey Keating <geoffk@apple.com>
2179 * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
2180 (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
2182 (reg_or_sub_cint_operand): Likewise.
2183 (mask_operand): Handle DImode.
2184 (mask64_operand): Delete.
2185 (and64_operand): Delete.
2186 * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
2187 instead of mask64_operand.
2188 (print_operand): Likewise.
2189 (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
2190 reg_or_sub_cint_operand instead of *64_* variants.
2191 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
2192 instead of mask64_operand.
2193 * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
2197 (add<mode>3): Use reg_or_add_cint_operand.
2199 (sub<mode>3): Use reg_or_sub_cint_operand.
2200 (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
2201 mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
2202 cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
2203 ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
2204 ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
2205 return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
2206 various unnamed patterns): New.
2207 (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
2208 cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
2209 ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
2210 return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
2211 udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
2212 cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
2213 ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
2214 return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
2215 movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
2218 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
2220 * rtl.h (to_rtx_code): Remove.
2221 * machmode.h (to_machine_mode): Likewise.
2222 * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
2224 (apply_mode_maps): Likewise.
2225 (read_rtx_1): Likewise.
2226 (apply_code_macro): Replace to to_rtx_code with explicit cast.
2227 (check_code_macro): Likewise.
2228 (read_rtx_1): Likewise.
2230 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
2232 * c-typeck.c (convert_for_assignment): Avoid checking
2233 OPT_Wc___compat, as it is always true.
2235 2005-06-11 David Edelsohn <edelsohn@gnu.org>
2237 * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
2239 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
2241 Fix PR tree-optimization/22005
2242 Fix PR tree-optimization/22025
2244 * tree-ssa-structalias.c (struct variable_info): Add has_union
2246 (create_variable_info_for): Mark variables containing unions.
2247 Don't sort the field stack if notokay is true.
2248 (find_what_p_points_to): Convert variables containing unions back
2249 to their SFT's if necessary.
2251 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
2253 * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
2254 is an INTEGER_CST before calling int_cst_value.
2256 2005-06-10 Uros Bizjak <uros@kss-loka.si>
2259 * config/i386/i386.c (ix86_function_value_regno_p): Return true
2260 for FIRST_MMX_REG if TARGET_MMX.
2261 (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
2263 (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
2264 (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2266 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
2268 * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
2269 and access function against chrec_dont_know.
2271 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
2273 * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
2275 (exit_phi_for_loop_p): New function.
2276 (can_put_in_inner_loop): Ditto.
2277 (can_convert_to_perfect_nest): Ditto.
2278 (perfect_nestify): Create iv with right type.
2279 Rewrite statements in correct order.
2281 2005-06-10 Keith Besaw <kbesaw@us.ibm.com>
2283 * tree-ssa-alias.c (new_type_alias): Use existing type
2284 tag if VAR has just one in its may_aliases list.
2286 2005-06-10 Fariborz Jahanian <fjahanian@apple.com>
2288 * rs6000/predicates.md (scc_operand): New.
2289 * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2291 2005-06-10 Dorit Nuzman <dorit@il.ibm.com>
2293 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
2294 dependence-distance modulo VF is 0 are recorded in the
2295 SAME_ALIGN_REFs VEC in each DR.
2296 (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
2297 alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
2298 DR we want to peel for, is set to 0.
2299 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
2300 * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
2302 * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
2303 (_stmt_vec_info): Added new field same_align_refs.
2304 (STMT_VINFO_SAME_ALIGN_REFS): New macro.
2306 2005-06-10 Nathan Sidwell <nathan@codesourcery.com>
2308 * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2310 2005-06-10 Alan Modra <amodra@bigpond.net.au>
2312 * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
2313 * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
2314 * config/rs6000/rs6000.c (output_function_profiler): Obey
2315 NO_PROFILE_COUNTERS. Handle TARGET_SECURE_PLT. Use "bcl 20,31"
2316 for -fPIC. Delete save_lr and substitute its value into strings.
2318 2005-06-09 Dale Johannesen <dalej@apple.com>
2320 * config/i386/i386.c (optimization_options): Make -fno-math-errno
2321 the default on Darwin.
2322 * config/rs6000/rs6000.c (optimization_options): Ditto.
2323 * doc/invoke.texi (-fno-math-errno): Document.
2325 2005-06-09 Dale Johannesen <dalej@apple.com>
2327 * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
2328 Change to TARGET_INVALID_WITHIN_DOLOOP.
2330 2005-06-09 David Edelsohn <edelsohn@gnu.org>
2332 * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
2333 * config/rs6000/predicates.md (scc_eq_operand): New.
2335 2005-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
2337 * config/sh/sh.md (mextr_rl): Set buffer size properly.
2338 (*mextr_lr): Likewise.
2340 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
2343 * c.opt (Wc++-compat): New.
2344 * doc/invoke.texi (-Wc++-compat): Document.
2345 * c-typeck.c (convert_for_assignment): Check for implicit
2346 conversion void* -> T*.
2348 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.edu>
2350 * machmode.h (to_machine_mode): New.
2351 * rtl.h (to_rtx_code): Likewise.
2352 * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
2353 (print_c_condition): Convert return value of htab_find().
2354 (apply_code_macro): Add explicit cast when convertin to enums.
2355 (apply_mode_maps): Likewise.
2356 (check_code_macro): Likewise.
2357 (read_rtx_1): Likewise.
2359 2005-06-09 Richard Henderson <rth@redhat.com>
2361 * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
2362 Use SCALAR_FLOAT_MODE_P.
2363 * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
2364 (fselect): Rename from fpcmp; use %F.
2367 2005-06-09 Jan Hubicka <jh@suse.cz>
2369 * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
2370 local statics when doing unit-at-a-time.
2371 (cgraph_varpool_assemble_pending_decls): Output debug info.
2372 * dwarf2out.c (decls_for_scope): Skip local statics.
2373 (dwarf2out_decl): Handle local statics.
2374 * passes.c (rest_of_decl_compilation): Do not differentiate
2375 local and global statics in unit-at-a-time.
2376 * tree-inline.c (remap_decls): Put local static into
2377 unexpanded_vars_list rather than introducing duplicated VAR_DECL
2380 2005-06-09 Daniel Berlin <dberlin@dberlin.org>
2382 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
2385 2005-06-08 Daniel Berlin <dberlin@dberlin.org>
2387 * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2388 * tree-flow.h (find_what_p_points_to): Add prototype.
2389 (push_fields_onto_fieldstack): Ditto.
2390 (sort_fieldstack): Ditto.
2391 * tree-optimize.c (init_tree_optimization_passes): Add
2392 pass_build_pta and pass_del_pta.
2393 * tree-pass.h (pass_build_pta): New structure.
2394 (pass_del_pta): Ditto.
2395 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
2396 using new alias analyzer.
2397 (push_fields_onto_fieldstack): Removed from here.
2398 (bitpos_of_field): Ditto.
2399 (fieldoff_compare): Ditto.
2400 * tree-ssa-structalias.c: New file.
2401 * tree-ssa-structalias.h: Ditto.
2403 2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
2405 * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
2408 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
2410 * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
2411 * config/bfin/bfin.h (enum bfin_builtins): ... here.
2413 2005-06-09 Adrian Straetling <straetling@de.ibm.com>
2415 * target.h (insn_valid_within_doloop): Rename into
2416 "invalid_within_doloop". Change return type to "const char *".
2418 * targhooks.h (default_insn_valid_within_doloop): Rename into
2419 "default_invalid_within_doloop".
2420 * targhooks.c (default_insn_valid_within_doloop): Likewise.
2422 * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
2423 into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
2424 "default_invalid_within_doloop".
2425 * hooks.c (hook_constcharptr_rtx_null): New function.
2426 (hook_bool_rtx_true): Remove.
2427 * hooks.h (hook_constcharptr_rtx_null): Declare.
2428 (hook_bool_rtx_true): Remove.
2429 * loop-doloop.c (doloop_valid_p): Temporarily store return value of
2430 "invalid_within_doloop" and print error message if non-null.
2432 * doc/tm.texi: Update documentation.
2433 * config/s390/s390.c: Adjust to new hook name and new default hook.
2434 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
2435 into "rs6000_invalid_within_doloop".
2436 (rs6000_invalid_within_doloop): Change return type to "static const
2437 char *" and replace return values. Update Comment.
2439 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
2441 * config/bfin/bfin.opt (mlong-calls): New.
2442 * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
2443 if TARGET_LONG_CALLS.
2445 2005-06-09 Richard Henderson <rth@redhat.com>
2448 * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
2449 (struct tree_decl): Add gimple_reg_flag.
2450 * integrate.c (copy_decl_for_inlining): Copy it.
2451 * gimplify.c (internal_get_tmp_var): Set it.
2452 (gimplify_bind_expr): Likewise.
2453 (gimplify_function_tree): Likewise.
2454 (gimplify_modify_expr_complex_part): New.
2455 (gimplify_modify_expr): Use it.
2456 * tree-gimple.c (is_gimple_reg_type): Allow complex.
2457 (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
2459 * tree-complex.c (complex_lattice_t): New.
2460 (complex_lattice_values, complex_variable_components): New.
2461 (some_nonzerop, find_lattice_value, is_complex_reg,
2462 init_parameter_lattice_values, init_dont_simulate_again,
2463 complex_visit_stmt, complex_visit_phi, create_components,
2464 update_complex_components, update_parameter_components,
2465 update_phi_components, update_all_vops, expand_complex_move): New.
2466 (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
2468 (update_complex_assignment): Use update_complex_components;
2469 handle updates of return_expr properly.
2470 (expand_complex_addition): Use complex lattice values.
2471 (expand_complex_multiplication): Likewise.
2472 (expand_complex_division): Likewise.
2473 (expand_complex_libcall): Use update_complex_components.
2474 (expand_complex_comparison): Use update_stmt.
2475 (expand_complex_operations_1): Use expand_complex_move, retrieve
2477 (tree_lower_complex): Compute lattice values.
2478 (tree_lower_complex_O0): Duplicate from tree_lower_complex.
2479 (pass_lower_complex_O0): Rename from pass_lower_complex.
2480 (pass_lower_complex, gate_no_optimization): New.
2481 * tree-optimize.c (init_tree_optimization_passes): Update for
2482 complex pass changes.
2483 * tree-pass.h (pass_lower_complex_O0): Declare.
2485 2005-06-08 Dale Johannesen <dalej@apple.com>
2487 * config/darwin.c (darwin_binds_local_p): New.
2488 * config/darwin-protos.h (darwin_binds_local_p): Declare it.
2489 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
2490 * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
2491 (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
2493 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
2495 * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
2496 rs6000_isel, rs6000_spe, rs6000_alignment_string,
2497 rs6000_sched_restricted_insns_priority_str,
2498 rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2500 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
2502 * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
2503 instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
2504 * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
2505 multiplier_allowed_in_address_p, get_address_cost): Ditto.
2507 2005-06-08 Richard Henderson <rth@redhat.com>
2509 * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
2510 * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
2511 Emit out3 load right after alloc.
2513 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
2515 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2516 rs6000_explicit_options.
2518 2005-06-08 Richard Henderson <rth@redhat.com>
2520 * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
2521 * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
2523 * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2525 2005-06-08 Joseph S. Myers <joseph@codesourcery.com>
2527 * config/sol2-c.c (cmn_err_char_table): Allow width for %b
2530 2005-06-08 James A. Morrison <phython@gcc.gnu.org>
2533 * config/sparc/sparc.c (sparc_fold_builtin): New function
2534 (sparc_vis_mul8x16): New function.
2535 (sparc_handle_vis_mul8x16): New function.
2536 (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2538 2005-06-08 David Edelsohn <edelsohn@gnu.org>
2540 * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
2542 (call_indirect_nonlocal_aix64): Same.
2543 (call_value_indirect_nonlocal_aix32): Same.
2544 (call_value_indirect_nonlocal_aix64): Same.
2547 (eq): Use CLZ splitter for compare with zero.
2549 2005-06-08 Bernd Schmidt <bernd.schmidt@analog.com>
2551 * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
2552 everything larger than 8 bytes in memory.
2554 * config/bfin/bfin.h (enum bfin_builtins): New.
2555 * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2557 (csync, ssync): New insn patterns.
2558 * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2560 (def_builtin): New macro.
2561 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2563 From Jie Zhang <jie.zhang@analog.com>
2564 * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
2565 behavior of the native assembler in VDSP. So change accordingly.
2567 2005-06-08 Sebastian Pop <pop@cri.ensmp.fr>
2569 * tree-data-ref.c (compute_estimated_nb_iterations,
2570 analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
2571 analyze_subscript_affine_affine, find_data_references_in_loop):
2572 Fixed to use chrec_contains_undetermined to test the values of
2573 loop->estimated_nb_iterations.
2574 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2575 Compute the estimation only when loop->estimated_nb_iterations
2576 has not yet been initialized.
2577 (convert_step_widening, scev_probably_wraps_p): Add a call to
2578 estimate_numbers_of_iterations_loop.
2579 * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2581 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2584 * dwarf2out.c (add_loc_descr_op_piece): Move to the
2585 DWARF2_DEBUGGING_INFO section.
2587 2005-06-08 Richard Henderson <rth@redhat.com>
2590 * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2592 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2595 * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
2596 * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
2597 (TARGET_ASM_OUT): Add it.
2598 * doc/tm.texi (Debugging Info): Document it.
2599 * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
2600 Test it instead of ASM_OUTPUT_DWARF_DTPREL.
2601 (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
2602 * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
2603 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
2604 * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
2605 (gen_inlined_tls_plt): Remove unused variable MEM.
2606 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
2607 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2608 * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
2609 * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
2611 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
2612 * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2613 * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
2614 * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
2616 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
2617 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2618 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
2619 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
2621 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
2622 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2623 * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
2624 * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
2626 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
2627 * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2628 * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
2629 (TARGET_GNU_TLS): Define to 1.
2630 * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
2631 * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
2633 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
2634 if TARGET_GNU_TLS only.
2635 * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2637 * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
2638 (sparc-*-solaris2*): Likewise on Solaris 7 and up.
2640 2005-06-07 Dale Johannesen <dalej@apple.com>
2642 * config/i386/i386.md (movqi_1): Fix case where source
2643 is memory and destination EDI.
2645 2005-06-08 Kazu Hirata <kazu@codesourcery.com>
2647 * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2649 2005-06-07 Eric Christopher <echristo@redhat.com>
2651 * system.h: Poison EXTRA_CC_MODES.
2652 * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
2653 * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
2654 * doc/md.texi (Jump Patterns): Replace reference to
2655 EXTRA_CC_MODES with machine-modes.def.
2656 * doc/rtl.texi (Machine Modes): Ditto.
2658 2005-06-07 Richard Henderson <rth@redhat.com>
2660 * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
2661 (assemble_start_function): Fix strcmp confusion.
2663 2005-06-07 Uros Bizjak <uros@kss-loka.si>
2665 * config/i386/i386.h (enum ix86_entity): New.
2666 (enum ix86_stack_slot): New.
2667 (OPTIMIZE_MODE_SWITCHING): Redefine to use
2668 ix86_optimize_mode_switching[] array.
2669 (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
2670 (MODE_NEEDED): Use ix86_mode_needed() function.
2671 (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
2673 (struct machine_function): Use optimize_mode_switching[] array.
2675 * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
2676 (ix86_mode_needed): New function.
2677 (emit_i387_cw_initialization): Cleanup. Use mode to calculate
2678 correct stack positions for stored control words.
2679 (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
2680 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
2682 [IX86_BUILTIN_STMXCSR]: Same.
2684 * config/i386/i386-protos.h (assign_stack_local): Change prototype.
2685 (emit_i387_cw_initialization): Change prototype.
2686 (ix86_mode_needed): New prototype.
2688 * config/i386/i386.md (i387_cw attribute): Change order of elements.
2689 (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
2690 (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
2691 (*fist<mode>2_ceil_1): Change constant in call to
2692 assign_386_stack_local to SLOT_TEMP.
2693 (*fix_trunc<mode>_i387_1): Change constant in call to
2694 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2695 Use new ix86_optimize_mode_switching[] array.
2696 (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
2697 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2698 Use new ix86_optimize_mode_switching[] array.
2699 (frndintxf2_ceil, *fist<mode>2_ceil_1): Change constants in call to
2700 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2701 Use new ix86_optimize_mode_switching[] array.
2702 (frndintxf2_trunc): Change constants in call to
2703 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2704 Use new ix86_optimize_mode_switching[] array.
2705 (frndintxf2_mask_pm): Change constants in call to
2706 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2707 Use new ix86_optimize_mode_switching[] array.
2709 (define_peephole2): Change constant from 17 to FLAGS_REG;
2711 2005-06-07 Richard Henderson <rth@redhat.com>
2714 * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2716 2005-06-07 Dale Johannesen <dalej@apple.com>
2718 * tree-nested.c (finalize_nesting_tree_1): Disable
2719 warn_padded around layout_type call.
2721 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
2723 * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2726 2005-06-07 Eric Christopher <echristo@redhat.com>
2728 * config/mips/predicates.md: Revert previous patch.
2730 2005-06-07 Jakub Jelinek <jakub@redhat.com>
2733 * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2736 2005-06-07 Diego Novillo <dnovillo@redhat.com>
2738 * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2739 (thread_stats): New local variable.
2740 (redirect_edges): Increment count of threaded edges.
2741 (thread_through_all_blocks): Initialize thread_stats.
2742 Display number of threaded jumps if TDF_STATS is enabled.
2744 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
2746 * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2747 the current bit index with no modulo.
2749 2005-06-07 Sebastian Pop <pop@cri.ensmp.fr>
2751 PR 18403 and meta PR 21861.
2752 * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2753 * tree-chrec.c: Include cfgloop.h and tree-flow.h.
2754 (evolution_function_is_invariant_rec_p,
2755 evolution_function_is_invariant_p): New.
2756 (chrec_convert): Use an extra parameter AT_STMT for refining the
2757 information that is passed down to convert_step. Integrate the
2758 code that was in count_ev_in_wider_type.
2759 * tree-chrec.h (count_ev_in_wider_type): Removed.
2760 (chrec_convert): Modify its declaration.
2761 (evolution_function_is_invariant_p): Declared.
2762 (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2763 * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2764 (scev_probably_wraps_p): Declared.
2765 * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2766 (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2767 Use an extra parameter AT_STMT for refining the information that is
2768 passed down to convert_step.
2769 (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2770 analyze_scalar_evolution_1): Initialize AT_STMT with the current
2772 (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2773 * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
2774 can_count_iv_in_wider_type to use convert_step.
2775 * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
2776 code that is independent of the loop over the known iteration
2777 bounds to convert_step_widening, the rest is moved to
2778 proved_non_wrapping_p.
2779 (scev_probably_wraps_p): New.
2780 (can_count_iv_in_wider_type): Renamed convert_step.
2781 * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2782 Use scev_probably_wraps_p for computing init_is_max.
2783 (vrp_visit_assignment): Pass the current analyzed statement to
2784 adjust_range_with_scev.
2785 (execute_vrp): Call estimate_numbers_of_iterations for refining the
2786 information provided by scev analyzer.
2788 2005-06-07 Eric Christopher <echristo@redhat.com>
2790 * config/mips/predicates.md (sleu_operand): Use
2791 IN_RANGE to specify range of operand.
2793 2005-06-07 Steven Bosscher <stevenb@suse.de>
2795 PR tree-optimization/21847
2796 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2797 -fnon-call-exceptions, also mark statements inherently
2798 necessary if they may throw.
2800 2005-06-07 Adrian Straetling <straetling@de.ibm.com>
2802 * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2803 ("type"): Add "sem" to 'type' attribute.
2804 ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2805 "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2806 "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2807 "*sync_compare_and_swap_ccsi"): New patterns.
2808 * config/s390/2064.md: ("z_sem"): New insn_reservation.
2809 * config/s390/2084.md: ("x_sem"): New insn_reservation.
2810 * config/s390/s390.c: (s390_compare_emitted): New global variable.
2811 (s390_emit_compare): Do not emit comparison again after cas.
2812 * config/s390/s390.h (s390_compare_emitted): Declare.
2814 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
2816 * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2817 sbitmap_iter_cond, sbitmap_iter_next): New.
2818 * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2819 modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2820 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2821 uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2823 2005-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2825 * tree-ssa-address.c: New file.
2826 * Makefile.in (tree-ssa-address.o): Add.
2827 * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2828 INDIRECT_REFs. Handle TARGET_MEM_REFs.
2829 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2830 * tree-flow.h (struct mem_address): New.
2831 (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2832 (create_mem_ref, addr_for_mem_ref, get_address_description,
2833 maybe_fold_tmr, multiplier_allowed_in_address_p,
2834 multiply_by_cost): Declare.
2835 * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2836 * tree-pretty-print.c (dump_generic_node): Ditto.
2837 * tree-ssa-loop-im.c (for_each_index): Ditto.
2838 * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2839 find_interesting_uses_address): Ditto.
2840 (rewrite_address_base, build_addr_strip_iref): Removed.
2841 (struct affine_tree_combination): Moved to tree-flow.h.
2842 (get_ref_tag, copy_ref_info): New functions.
2843 (rewrite_use_address): Produce TARGET_MEM_REFs.
2844 (tree_ssa_iv_optimize): Do not call update_ssa
2845 and rewrite_into_loop_closed_ssa.
2846 (tree_to_aff_combination): Use build_fold_addr_expr instead of
2847 build_addr_strip_iref.
2848 (unshare_aff_combination): New function.
2849 (fold_affine_sum): Removed.
2850 (get_computation_at): Use get_computation_aff. Unshare the result.
2851 (get_computation_aff, multiplier_allowed_in_address_p): New function.
2852 (multiply_by_cost): Exported.
2853 (get_address_cost): Use multiplier_allowed_in_address_p.
2854 * tree-ssa-operands.c (get_tmr_operands): New function.
2855 (get_expr_operands): Handle TARGET_MEM_REFs.
2856 * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2857 (build): Handle 7 arguments.
2858 (build7_stat): New function.
2859 * tree.def (TARGET_MEM_DEF): New.
2860 * tree.h (REF_ORIGINAL): Removed.
2861 (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2862 TMR_TAG, build7): New macros.
2863 (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2864 * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2865 * doc/c-tree.texi: Document TARGET_MEM_REF.
2866 * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2868 2005-06-07 Jakub Jelinek <jakub@redhat.com>
2871 * dwarf2out.c (add_loc_descr_op_piece): New function.
2872 (multiple_reg_loc_descriptor, concat_loc_descriptor,
2873 loc_descriptor): Use it.
2874 * var-tracking.c: Include regs.h and expr.h.
2875 (emit_note_insn_var_location): Skip over pieces where offset
2876 is smaller than previous offset plus previous piece mode size.
2877 Optimize adjacent hard registers or memory locations.
2878 * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2880 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
2882 * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2884 * gimplify.c (gimplify_cond_expr): No need to fix up the
2887 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
2889 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2892 2005-06-07 Geoffrey Keating <geoffk@apple.com>
2894 * config/rs6000/host-darwin.c (segv_handler): Widen the possible
2895 'stwux' instructions that are considered to be stack decrements.
2897 * rtlanal.c (subreg_offset_representable_p): Handle objects
2900 2005-06-06 Uros Bizjak <uros@kss-loka.si>
2902 * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2903 in call to pre_edge_lcm.
2905 2005-06-06 Kaz Kojima <kkojima@gcc.gnu.org>
2907 * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2908 (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2909 (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2911 (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2912 dwarf register number for SHmedia.
2913 (shmedia_fallback_frame_state): New.
2914 (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2916 * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2918 2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net>
2920 * c-lex.c (lex_string): Use XOBFINISH.
2921 * collect2.c (extract_string, dump_file): Likewise.
2922 * dbxout.c (dbxout_finish_complex_stabs): Likewise.
2923 * gcc.c (init_spec, build_search_list, convert_filename,
2924 set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2925 * genpreds.c (write_predicate_subfunction): Likewise.
2926 * genflags.c (main): Likewise.
2927 * read-rtl.c (mode_attr_index, apply_macro_to_string,
2928 join_c_conditions, read_quoted_string, read_braced_string,
2929 read_rtx_1): Likewise.
2930 * stringpool.c (ggc_alloc_string): Likewise.
2931 * tlink.c (obstack_fgets, recompile_files): Likewise.
2933 2005-06-06 Jakub Jelinek <jakub@redhat.com>
2935 * intl.h (G_): New macro.
2936 * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2937 instead of msgid for argument name.
2938 * tree-ssa.c (warn_uninit): Likewise.
2939 * c-parser.c (c_parser_error): Likewise.
2940 * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2941 * config/darwin-c.c (BAD): Likewise.
2942 * config/c4x/c4x-c.c (BAD): Likewise.
2943 * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2944 * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2945 * c-common.c (c_parse_error): Likewise.
2946 * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2947 warning0, pedwarn, error, sorry, fatal_error, internal_error):
2949 (fnotice): Use cmsgid instead of msgid for argument name.
2950 * gcov.c (fnotice): Likewise.
2951 * protoize.c (notice): Likewise.
2952 * final.c (output_operand_lossage): Likewise.
2953 * gcc.c (fatal, notice): Likewise.
2954 (error): Use gmsgid instead of msgid for argument name.
2955 * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2956 of msgid for argument name.
2957 (error): Use gmsgid instead of msgid for argument name.
2958 * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2960 * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2961 * tree-inline.c (inline_forbidden_p_1): Likewise.
2962 * ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
2963 conventions for marking translations.
2964 * doc/install.texi: Mention gettext 0.14.5 or later requirement.
2966 * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2969 * fold-const.c (operand_equal_p): Don't return 1, if element
2970 chains for 2 VECTOR_CSTs are not the same length.
2973 * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
2974 not all VECTOR_CST elements are given.
2976 * combine.c (try_combine): Use hard_regno_nregs array instead of
2977 HARD_REGNO_NREGS macro.
2978 * config/rs6000/rs6000.c (rs6000_split_multireg_move,
2979 rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
2980 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2982 2005-06-06 Daniel Berlin <dberlin@dberlin.org>
2984 * tree-ssa-reassoc.o: New.
2985 (OBJS-common): Add tree-ssa-reassoc.o
2986 * timevar.def: Add TV_TREE_REASSOC
2987 * tree-optimize.c (pass_reassoc): Add call.
2988 * tree-pass.h (pass_reassoc): Add.
2989 * tree-ssa-reassoc.c: New file.
2991 2005-06-06 Eric Christopher <echristo@redhat.com>
2994 * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2996 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2998 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2999 HAVE_GAS_MAX_SKIP_P2ALIGN.
3000 (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
3002 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
3004 * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
3005 getopt.h dependency.
3006 (mips-tdump.o): Likewise.
3008 2005-06-06 Jan Hubicka <jh@suse.cz>
3010 * predict.c (tree_predict_edge): Don't drop useless predictions;
3011 check that it is not called too late in the game.
3012 (gate_estimate_probability): New gate.
3013 (pass_profile): Gate.
3014 * tree-mudflap.c (mf_build_check_statement_for): Do not drop
3015 predictions; update CFG instead.
3016 * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
3018 2005-06-06 Jie Zhang <jie.zhang@analog.com>
3020 * config.gcc (bfin*-uclinux*): New.
3021 * config/bfin/uclinux.h: New file.
3023 2005-06-06 Ben Elliston <bje@au.ibm.com>
3025 * doc/md.texi (Insn Splitting): Fix some wording.
3027 2005-06-05 David Edelsohn <edelsohn@gnu.org>
3029 * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
3030 (rs6000_emit_swdivdf): New function.
3031 * config/rs6000/rs6000.md (fres): New pattern.
3032 (divsf3): Add approximation through rs6000_emit_swdivsf.
3033 (fred): New pattern.
3034 (divdf3): Add approximation through rs6000_emit_swdivdf.
3035 * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
3036 (rs6000_emit_swdivdf): Declare.
3037 * config/rs6000/rs6000.opt (mswdiv): New option.
3038 * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
3040 2005-06-05 Zdenek Dvorak <dvorakz@suse.cz>
3042 PR tree-optimization/21846
3043 * tree-cfg.c (replace_uses_by): Update information stored at loops.
3044 * tree-flow.h (substitute_in_loop_info): Declare.
3045 * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
3046 Ensure that chrec_dont_know and chrec_known have a type.
3047 * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
3049 2005-06-05 Steven Bosscher <stevenb@suse.de>
3051 * config/i386/i386.c (x86_use_loop): Remove.
3052 * config/i386/i386.h (x86_use_loop): Remove extern decl.
3053 (TARGET_USE_LOOP): Remove.
3054 * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
3055 Also remove related define_splits.
3057 2005-06-05 Dorit Nuzman <dorit@il.ibm.com>
3059 * tree-flow.h (stmt_ann_d): Move aux to ...
3060 (tree_ann_common_d): ... here.
3061 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
3062 move_computations_stmt, schedule_sm): Update references to
3064 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
3065 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
3066 call to set_stmt_info.
3067 (vect_transform_loop): Likewise.
3068 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
3071 * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
3073 (vect_mark_relevant): Takes two additional arguments - live_p and
3074 relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
3075 (vect_stmt_relevant_p): Differentiate between a live stmt and a
3076 relevant stmt. Return two values = live_p and relevant_p.
3077 (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
3078 vect_stmt_relevant_p with additional arguments. Phis are no longer
3079 put into the worklist (analyzed seperately in analyze_scalar_cycles).
3080 (vect_determine_vectorization_factor): Also check for LIVE_P, because a
3081 stmt that is marked as irrelevant and live, cause it's only used out
3082 side the loop, may need to be vectorized (e.g. reduction).
3083 (vect_analyze_operations): Examine phis. Call
3084 vectorizable_live_operation for for LIVE_P stmts. Check if
3086 (vect_analyze_scalar_cycles): Update documentation. Don't fail
3087 vectorization - just classify the scalar cycles created by the loop
3088 phis. Call vect_is_simple_reduction.
3089 (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
3090 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
3091 call to set_stmt_info.
3092 (vect_get_vec_def_for_operand): Code reorganized - the code that
3093 classifies the type of use was factored out to vect_is_simple_use.
3094 (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
3095 additional arguments.
3096 (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
3097 and computes a loop_vec_def.
3098 (vectorizable_operation, vectorizable_load, vectorizable_condition):
3100 (vectorizable_live_operation): New.
3101 (vect_transform_stmt): Handle LIVE_P stmts.
3102 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
3103 STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
3104 (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
3105 (vect_is_simple_use): Determine the type of the def and return it
3106 in a new function argument. Consider vect_reduction_def and
3107 vect_induction_def, but for now these are not supported.
3108 (vect_is_simple_reduction): New. Empty for now.
3109 * tree-vectorizer.h (vect_def_type): New enum type.
3110 (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
3111 (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
3112 (vect_is_simple_use): New arguments added to function declaration.
3113 (vect_is_simple_reduction): New function declaration.
3114 (vectorizable_live_operation): New function declaration.
3116 * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
3117 (vect_can_advance_ivs_p): Likewise.
3118 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
3120 2005-06-05 Eric Christopher <echristo@redhat.com>
3122 * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
3124 2005-06-05 Hans-Peter Nilsson <hp@bitrange.com>
3127 * config/mmix/mmix.md ("*movdicc_real_foldable")
3128 ("*movdfcc_real_foldable", "*bCC_foldable")
3129 ("*bCC_inverted_foldable"): Specify DImode for register being
3132 2005-06-04 Roger Sayle <roger@eyesopen.com>
3134 * reg-stack.c (struct block_info_def): Correct grammar typo.
3135 (compensate_edge): Clean-up. Perform as little work as possible
3136 when src and dest stacks match. Avoid modifying block_info.
3137 Reorder and simplify assertion checks. Avoid unnecessary copying
3138 of regstack structure.
3139 (convert_regs_1): Set the done flag here...
3140 (convert_regs_2): ... instead of here.
3142 2005-06-04 Dale Johannesen <dalej@apple.com>
3144 * config/rs6000/rs6000.c (no_global_regs_above): New.
3145 (rs6000_emit_prologue): Use it; cosmetic formatting fixes.
3146 (rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
3147 (rs6000_conditional_register_usage): Don't put Darwin PIC
3148 register in global_regs.
3149 (rs6000_stack_info): Don't set lr_save_p just because Darwin
3151 (rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
3152 if not done by lr_save_p.
3153 * config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
3154 Use rotate instead of ashift.
3155 (call_indirect_nonlocal_sysv): Prefer CTR to LR.
3156 (call_value_indirect_nonlocal_sysv): Ditto.
3158 2005-06-04 Jan Hubicka <jh@suse.cz>
3160 * cgraphunit.c (cgraph_reset_node): Break out from ...
3161 (cgraph_finalize_function): ... here.
3162 (cgraph_finalize_compilation_unit): Reset nodes where backend
3165 2005-06-04 Richard Henderson <rth@redhat.com>
3168 * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
3169 until we've passed initial ldgp.
3171 2005-06-04 Daniel Berlin <dberlin@dberlin.org>
3173 * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
3174 * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
3175 * expr.c (expand_var): Ditto.
3176 * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
3177 * gimplify.c (gimplify_decl_expr): Ditto.
3178 (gimplify_expr): Ditto.
3179 * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
3180 * tree.c (value_expr_for_decl): New.
3181 (print_value_expr_statistics): New.
3182 (init_ttree): Init value_expr_for_decl.
3183 (decl_value_expr_lookup): New.
3184 (decl_value_expr_insert): Ditto.
3185 (copy_node_stat): Copy DECL_VALUE_EXPR status.
3186 * tree.h (DECL_VALUE_EXPR): Use hashtable.
3187 (SET_DECL_VALUE_EXPR): New.
3188 (DECL_HAS_VALUE_EXPR_P): New.
3190 2005-06-04 Steven Bosscher <stevenb@suse.de>
3192 * lcm.c: Move all mode-switching related functions from here...
3193 * mode-switching.c: ...to this new file.
3194 * doc/passes.texi: Update accordingly.
3196 * basic-block.h (label_value_list): Remove extern decl.
3197 * cfgrtl.c (label_value_list): Remove.
3198 (can_delete_label_p): Don't look at it.
3199 * cfgcleanup.c (cleanup_cfg): Don't free it.
3201 * common.opt: Don't refer to non-existing flag_alias_check.
3203 2005-06-04 David Edelsohn <edelsohn@gnu.org>
3205 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
3207 2005-06-04 Kazu Hirata <kazu@codesourcery.com>
3209 * function.c (prologue, epilogue, sibcall_epilogue): Change
3210 their types to VEC(int,heap)*.
3211 (free_after_compilation): Free the three vectors above.
3212 (init_function_for_compilation, record_insns, contains,
3213 prologue_epilogue_contains, sibcall_epilogue_contains,
3214 reposition_prologue_and_epilogue_notes): Use VEC instead of
3215 VARRAY. (init_function_once): Remove.
3216 * function.h: Remove the prototype for init_function_once.
3217 * toplev.c (backend_init): Don't call init_function_once.
3219 2005-06-04 Jan Hubicka <jh@suse.cz>
3221 * predict.c (tree_predict_edge): Do not predict entry edge and
3222 single succestor edge.
3224 2005-06-04 Joseph S. Myers <joseph@codesourcery.com>
3227 * c-typeck.c (push_init_level): Don't pop levels without braces if
3230 2005-06-03 Sebastian Pop <pop@cri.ensmp.fr>
3232 * tree-data-ref.c (compute_self_dependence): New function.
3233 (compute_all_dependences): Use it.
3235 2005-06-03 Geoffrey Keating <geoffk@apple.com>
3237 * c-parser.c (c_parser_parms_declarator): Don't use chainon().
3238 (c_parser_expr_list): Don't use chainon().
3240 * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
3241 when -isysroot passed.
3243 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
3246 * c-decl.c (start_function): Restore label_context_stack_se and
3247 label_context_stack_vm if returning with an error.
3249 2005-06-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
3251 * configure.ac: Check declaration for asprintf, needed by
3253 * configure: Regenerate.
3254 * config.in: Likewise.
3256 2005-06-03 Diego Novillo <dnovillo@redhat.com>
3258 * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
3259 allocate info array.
3260 * tree-vrp.c (extract_range_from_unary_expr): Set resulting
3261 range to varying in cast expressions that change
3264 2005-06-03 Eric Christopher <echristo@redhat.com>
3266 * config/mips/mips.opt: Add RejectNegative to divide-breaks and
3269 2005-06-03 Jan Hubicka <jh@suse.cz>
3271 * basic-block.h (remove_predictions_associated_with_edge): Declare.
3272 * cfg.c (remove_edge): Use it.
3273 * predict.c (remove_predictions_associated_with_edge): New function.
3275 2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
3277 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3278 Clear call_realy_used_regs[r2] when ABI_AIX.
3280 2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
3283 * fold-const.c (fold_binary): Fix type mismatches in folding
3286 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
3288 * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
3291 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
3293 * collect2.c (maybe_unlink): Use unlink_if_ordinary.
3295 2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
3297 * reload1.c (reload): Revert my previous patch.
3299 2005-06-03 Nick Clifton <nickc@redhat.com>
3301 * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
3304 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
3306 PR tree-optimization/21849
3307 * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
3309 2005-06-02 Richard Henderson <rth@redhat.com>
3311 * Makefile.in (tree-vect-generic.o): New.
3312 (OBJS-common, GTFILES, s-gtype): Add it.
3313 * tree-complex.c (build_replicated_const, vector_inner_type,
3314 vector_last_type, vector_last_nunits, build_word_mode_vector_type,
3315 elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
3316 do_negate, expand_vector_piecewise, expand_vector_parallel,
3317 expand_vector_addition, expand_vector_operation,
3318 type_for_widest_vector_mode, expand_vector_operations_1,
3319 gate_expand_vector_operations, expand_vector_operations,
3320 pass_lower_vector_ssa): Move to tree-vect-generic.c.
3321 (tree_lower_complex): Rename from tree_lower_operations.
3322 (pass_lower_complex): Rename from pass_pre_expand.
3323 * tree-vect-generic.c: New file.
3324 * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
3325 (pass_lower_vector): New.
3326 * tree-optimize.c (init_tree_optimization_passes): Update to match.
3328 2005-06-02 Richard Henderson <rth@redhat.com>
3330 * modulo-sched.c (doloop_register_get): Protect against
3331 doloop_end not defined.
3333 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
3335 * config/sh/sh.c (general_movsrc_operand,
3336 general_movdst_operand, arith_reg_operand, arith_reg_dest,
3337 logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
3338 fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
3339 xor_operand, cmp_operand, logical_operand, and_operand,
3340 fpscr_operand, fpul_operand, symbol_ref_operand,
3341 commutative_float_operator, noncommutative_float_operator,
3342 unary_float_operator, binary_float_operator,
3343 binary_logical_operator, equality_comparison_operator,
3344 greater_comparison_operator, less_comparison_operator,
3345 shift_operator, logical_operator, target_reg_operand,
3346 target_operand, mextr_bit_offset, extend_reg_operand,
3347 trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
3348 general_extend_operand, ua_address_operand,
3349 cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
3350 sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
3351 shift_count_reg_operand, shift_count_operand,
3352 unaligned_load_operand): Move to ...
3353 * config/sh/predicates.md: ... here.
3354 * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3357 2005-06-02 Andrew Pinski <pinskia@physics.uc.edu>
3359 * tree.c (build_common_builtin_nodes): Fix the return type on
3362 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
3364 * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
3365 (find_interesting_uses_address): Use build_fold_addr_expr instead.
3366 (strip_offset_1): Likewise.
3367 (tree_to_aff_combination): Likewise.
3369 2005-06-02 DJ Delorie <dj@redhat.com>
3371 * convert.c (convert_to_pointer): Avoid recursion if no conversion
3374 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
3376 * tree-chrec.c (chrec_fold_plus_1): Ensure we build
3377 binary operations with the correct types.
3378 * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
3379 for all computation.
3381 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
3383 * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
3384 config/rs6000/rs6000.md: Fix comment typos. Follow splling
3386 * doc/install.texi: Fix a typo.
3388 2005-06-02 Jan Hubicka <jh@suse.cz>
3390 * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
3391 inline functions are not local.
3393 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
3395 * gimplify.c (gimplify_ctx): Change the type of case_labels to
3397 (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
3400 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
3402 * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
3405 2005-06-02 Ulrich Weigand <uweigand@de.ibm.com>
3407 * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
3409 (s390_dump_pool): Likewise.
3410 (s390_mainpool_start, s390_mainpool_finish): Likewise.
3411 (s390_chunkify_start): Likewise.
3412 (s390_dump_execute): Remove.
3413 (s390_reorg): Handle out-of-pool execute templates.
3415 2005-06-02 Adrian Straetling <straetling@de.ibm.com>
3417 * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
3420 2005-06-02 Jan Hubicka <jh@suse.cz>
3422 * cgraph.c (cgraph_node): Maintain master clones.
3423 (cgraph_remove_node): Likewise.
3424 (availability_names): New static variable.
3425 (dump_cgraph_node): Dump availability.
3426 (dump_cgraph_varpool_node): Likewise.
3427 (cgraph_is_master_clone, cgraph_master_clone,
3428 cgraph_function_body_availability,
3429 cgraph_variable_initializer_availability): New functions.
3430 * cgraph.h (availability): New enum.
3431 (struct cgraph_node): Add master_clone.
3432 (cgraph_is_master_clone, cgraph_master_clone,
3433 cgraph_function_body_availability,
3434 cgraph_variable_initializer_availability): Declare.
3435 * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
3436 (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
3437 * ipa-inline.c (cgraph_decide_inlining): Do not call
3438 cgraph_remove_unreachable_nodes.
3440 * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
3443 2005-06-02 Diego Novillo <dnovillo@redhat.com>
3446 * tree-vrp.c (nonnull_arg_p): New.
3447 (get_value_range): Call it.
3449 2005-06-02 Eric Christopher <echristo@redhat.com>
3451 * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
3453 (mips_rtx_cost_data): New datatype.
3454 (MEMORY_MOVE_COST): Use data from structure.
3455 (BRANCH_COST): Ditto.
3456 (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
3457 * config/mips/mips.md (cpu): Rework for processor_type changes.
3458 * config/mips/mips.c (mips_cost): New variable.
3459 (DEFAULT_COSTS): Define.
3460 (mips_rtx_cost_data): New.
3461 (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
3462 for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
3463 FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
3464 (override_options): Set cost data.
3465 (mips_register_move_cost): Formatting changes.
3466 (bdesc_arrays): Use PROCESSOR_MAX.
3467 (mips_init_builtins): Ditto.
3469 2005-06-02 Diego Novillo <dnovillo@redhat.com>
3472 * doc/invoke.texi: Document -ftree-vrp.
3474 2005-06-02 Dorit Nuzman <dorit@il.ibm.com>
3476 PR tree-optimization/21734
3477 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
3478 phi_result when current_def is not available.
3479 (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
3482 2005-06-02 David Edelsohn <edelsohn@gnu.org>
3484 * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
3485 (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
3487 2005-06-02 Diego Novillo <dnovillo@redhat.com>
3489 * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
3491 2005-06-02 Jan Hubicka <jh@suse.cz>
3493 * cgraph.c (dump_cgraph_node): Print new flags.
3494 (dump_cgraph_varpool_node): Likewise.
3495 (decide_variable_is_needed): Initialize externally_visible flag.
3496 * cgraph.h (cgraph_local_info): Add externally_visible flag.
3497 (cgraph_varpool_node): Likewise.
3498 (cgraph_function_flags_ready): Declare.
3499 * cgraph.c (cgraph_mark_local_functions): Rename to ...
3500 (cgraph_function_and_variable_visibility) ... this one; handle
3501 externally_visible flags.
3502 (decide_is_function_needed): Set externally_visible flag.
3503 (cgraph_finalize_function): Deal properly with early cleanups.
3504 (cgraph_optimize): Update call of
3505 cgraph_function_and_variable_visibility.
3507 2005-06-02 Steven Bosscher <stevenb@suse.de>
3508 Mostafa Hagog <mustafa@il.ibm.com>
3510 * cfgloop.h (doloop_condition_get): Make external.
3511 * loop-doloop.c (doloop_condition_get): Generalize to make it
3512 usable in modulo-sched.c.
3513 * modulo-sched.c (doloop_register_get): Use
3514 doloop_condition_get instead of duplicating it.
3516 2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
3518 * reload1.c (reload): Undo 2005-04-20 change. Make sure we detect
3519 the correct set of init_insns that need deletion.
3520 * local-alloc.c (update_equiv_regs): When substituting sole definition
3521 into sole use of a reg, delete it from liveness information.
3523 2005-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
3525 * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
3527 2005-06-01 Diego Novillo <dnovillo@redhat.com>
3529 PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
3530 PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
3531 * fold-const.c (invert_tree_comparison): Make extern.
3532 * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
3533 (struct value_range_def): Limewise.
3534 (get_value_range): Remove.
3535 (dump_value_range): Remove.
3536 (dump_all_value_ranges): Remove.
3537 (debug_all_value_ranges): Remove.
3538 (vrp_evaluate_conditional): Declare.
3539 * tree-ssa-propagate.c (struct prop_stats_d): Add field
3541 (substitute_and_fold): Add argument use_ranges_p.
3543 If use_ranges_p is true, call fold_predicate_in to fold
3544 predicates using range information.
3545 Ignore ASSERT_EXPRs.
3546 Change debugging output to only show statements that have been
3548 (replace_phi_args_in): Move debugging output code from
3549 substitute and fold.
3550 (fold_predicate_in): New local function.
3551 * tree-ssa-propagate.h (enum value_range_type): Move from
3553 (struct value_range_d): Likewise.
3555 (value_range_t): Rename from value_range.
3556 * tree-vrp.c (found_in_subgraph): Rename from found.
3557 (get_opposite_operand): Remove.
3558 (struct assert_locus_d): Declare.
3559 (assert_locus_t): Declare.
3560 (need_assert_for): Declare.
3561 (asserts_for): Declare.
3562 (blocks_visited): Declare.
3563 (vr_value): Declare.
3564 (set_value_range): Add argument 'equiv'.
3565 Don't drop to VARYING ranges that cover all values in the
3567 Make deep copy of equivalence set 'equiv'.
3568 (copy_value_range): New local function.
3569 (set_value_range_to_undefined): New local function.
3570 (compare_values): Return -2 if either value has overflowed.
3571 (range_includes_zero_p): New local function.
3572 (extract_range_from_assert): Flip the predicate code if the
3573 name being asserted is on the RHS of the predicate.
3574 Avoid creating unnecessary symbolic ranges if the comparison
3575 includes another name with a known numeric range.
3576 Update the equivalnce set of the new range when asserting
3578 (extract_range_from_ssa_name): Update the equivalence set of
3579 the new range with VAR.
3580 (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
3581 If -fwrapv is used, set the resulting range to VARYING if the
3582 operation overflows. Otherwise, use TYPE_MIN_VALUE and
3583 TYPE_MAX_VALUE to represent -INF and +INF.
3584 Fix handling of *_DIV_EXPR.
3585 (extract_range_from_unary_expr): Handle MINUS_EXPR and
3586 ABS_EXPR properly by switching the range around if necessary.
3587 (extract_range_from_comparison): New local function.
3588 (extract_range_from_expr): Call it.
3589 (adjust_range_with_scev): Do not adjust the range if using
3590 wrapping arithmetic (-fwrapv).
3591 (dump_value_range): Also show equivalence set.
3592 Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
3593 (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
3594 (infer_value_range): Change return value to bool.
3595 Add arguments 'comp_code_p' and 'val_p'.
3596 Do not attempt to infer ranges from statements that may throw.
3597 Store the comparison code in comp_code_p.
3598 Store the other operand to be used in the predicate in val_p.
3599 (dump_asserts_for): New.
3600 (debug_asserts_for): New.
3601 (dump_all_asserts): New.
3602 (debug_all_asserts): New.
3603 (register_new_assert_for): New.
3604 (register_edge_assert_for): New.
3605 (find_conditional_asserts): New.
3606 (find_assert_locations): New.
3607 (process_assert_insertions_for): New.
3608 (process_assert_insertions): New.
3609 (insert_range_assertions): Initialize found_in_subgraph,
3610 blocks_visited, need_assert_for and asserts_for.
3611 Call find_assert_locations and process_assert_insertions.
3612 (remove_range_assertions): Add more documentation.
3613 (vrp_initialize): Change return type to void.
3614 Do not try to guess if running VRP is worth it.
3615 (compare_name_with_value): New.
3616 (compare_names): New.
3617 (vrp_evaluate_conditional): Add argument 'use_equiv_p'. If
3618 use_equiv_p is true, call compare_names and
3619 compare_name_with_value to compare all the ranges for every
3620 name in the equivalence set of the predicate operands.
3622 (vrp_meet): Try harder not to derive a VARYING range.
3623 If two values meet, the resulting equivalence set is the
3624 intersection of the two equivalence sets.
3625 (vrp_visit_phi_node): Call copy_value_range to get the current
3626 range information of the LHS.
3627 (vrp_finalize): Create a value vector representing all the
3628 names that ended up with exactly one value in their range.
3629 Call substitute_and_fold.
3630 (execute_vrp): Document equivalence sets in ranges.
3631 * tree.h (SSA_NAME_VALUE_RANGE): Remove.
3632 (struct tree_ssa_name): Remove field value_range.
3633 (invert_tree_comparison): Declare.
3635 2005-06-01 Daniel Berlin <dberlin@dberlin.org>
3637 Fix PR tree-optimization/21839
3639 * gimplify.c (zero_sized_field_decl): New function.
3640 (gimplify_init_ctor_eval): Use it.
3642 2005-06-01 Josh Conner <jconner@apple.com>
3645 * gimplify.c (gimplify_init_constructor): Don't spill initializer
3646 to read-only memory if it's sparse.
3648 2005-06-01 Ramana Radhakrishnan <ramana@codito.com>
3650 * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP.
3651 Add documentation for REG_SETJMP
3653 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
3655 * stmt.c (expand_case): Use build_int_cst.
3656 (node_has_low_bound): Likewise, and correct type mismatch.
3657 (node_has_high_bound): Likewise.
3658 * fold-const.c (fold_binary): Ensure we build trees
3659 with the correct types - undo what STRIP_NOPS possibly did.
3661 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
3663 * tree.h (fold_indirect_ref_1): Export from fold-const.c.
3664 * fold-const.c (fold_indirect_ref_1): No longer static.
3665 * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
3666 folding, if possible.
3668 2005-06-01 Joseph S. Myers <joseph@codesourcery.com>
3670 * common.opt (fjump-tables): New.
3671 * doc/invoke.texi (-fno-jump-tables): Document.
3672 * stmt.c (expand_end_case_type): Do not emit jump tables unless
3675 2005-06-01 Richard Earnshaw <richard.earnshaw@arm.com>
3677 * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
3678 (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
3679 (sunlt, sunle): Enable patterns on VFP.
3681 * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
3682 f_stored, f_flag, f_cvt.
3683 (generic_sched): No-longer used for the arm1020e and arm1022e cores.
3684 Include arm1020e.md.
3685 * vfp.md (fmstat): New cpu unit. Add an exclusion set between it and
3686 the ds and fmac pipelines. Re-work all load and store patterns and
3687 all conversion patterns to use new attributes. Adjust reservation
3688 descriptions accordingly.
3689 * arm1020e.md: New file.
3690 * t-arm: Add dependency.
3692 2005-06-01 Jan Hubicka <jh@suse.cz>
3694 * except.c (struct eh_region): Kill unused fields.
3695 * basic-block.h (struct basic_block_def): Likewise.
3697 2005-06-01 J"orn Rennecke <joern.rennecke@st.com>
3699 PR rtl-optimization/21767
3700 * rtl.h (function_invariant_p): Re-add declaration.
3701 * reload1.c (function_invariant_p): No longer static.
3702 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
3703 might have become invalid.
3705 2005-06-01 Jakub Jelinek <jakub@redhat.com>
3709 * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
3710 on variable sizes types if a decl is a pointer to a VLA.
3711 (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
3712 Call gimplify_type_sizes on aggregate fields. Prevent infinite
3715 * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
3717 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
3718 _mm_set_ps, _mm_setr_ps): Add __extension__.
3719 * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
3720 _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
3721 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
3723 (_mm_clflush): Don't use return in void function.
3725 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
3726 _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
3727 Use __inline instead of inline.
3729 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
3731 * fold-const.c (fold_binary): Fix types in strlen vs.
3732 zero comparison folding.
3734 2005-06-01 Richard Henderson <rth@redhat.com>
3736 * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
3737 * config.in, configure: Rebuild.
3738 * config/alpha/alpha.c (print_operand): Add 'j'.
3739 * alpha.md (divmodsi_internal_er_1): Use it.
3740 (divmoddi_internal_er_1): Likewise.
3742 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3744 * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
3745 * opts.h (print_filtered_help): Delete.
3746 * opts.c (handle_option, decode_options): Remove calls to
3748 (print_target_help): New function.
3749 (common_option, print_help): Call print_target_help instead of
3750 display_target_options.
3751 (print_filtered_help): Make static.
3752 * toplev.h (display_target_options, set_target_switch): Delete.
3753 * toplev.c (target_switches, target_options, display_target_options)
3754 (set_target_switch): Delete.
3755 (print_switch_values): Remove handling of TARGET_SWITCHES and
3757 (default_get_pch_validity): Likewise. Only treat target_flags
3758 specially if targetm.check_pch_target_flags is nonnull.
3759 (pch_option_mismatch): New function.
3760 (default_pch_valid_p): Use it. Remove handling of TARGET_SWITCHES
3761 and TARGET_OPTIONS. Only treat target_flags specially if
3762 targetm.check_pch_target_flags is nonnull.
3763 * config/ia64/ia64.c (ia64_override_options): Don't mention
3764 TARGET_OPTIONS in comment.
3765 * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
3766 * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
3767 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
3768 interaction with TARGET_SWITCHES.
3769 (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3771 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3773 * config/sh/sh.c (multcosts): Check sh_multcost rather than
3775 (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
3776 (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
3777 (cut2_workaround_str): Delete.
3778 * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
3779 (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
3780 (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
3781 * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
3782 (mgettrcost=, multcost=): New options.
3784 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3786 * opts.h (cl_option_state): New structure.
3787 (get_option_state): Declare.
3788 * opts.c (get_option_state): New function.
3789 * toplev.c (option_affects_pch_p): New function.
3790 (default_get_pch_validity): Store the state of all options for which
3791 option_affects_pch_p returns true.
3792 (default_pch_valid_p): Check the state of those options here.
3793 Only check target_flags separately if targetm.check_pch_target_Flags
3794 is nonnull or if TARGET_SWITCHES is defined.
3796 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3798 * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
3801 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3803 * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
3805 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3807 * gcse.c (compute_transp, load_killed_in_block): Use
3810 2005-06-01 David.Billinghurst <David.Billinghurst@riotinto.com>
3813 * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
3815 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3817 * errors.h (warning, error, fatal, internal_error): Add printf
3819 * genmodes.c (make_vector_mode): Fix format arguments.
3821 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3823 * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
3824 config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
3825 lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
3826 tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
3827 tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
3828 tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
3829 tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
3830 tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3831 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
3832 tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
3833 tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
3834 tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
3835 tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
3836 errors.h and include toplev.h if necessary.
3838 * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
3839 errors.h otherwise include toplev.h.
3841 * Makefile.in: Update dependencies.
3843 2005-06-01 Danny Smith <dannysmith@users.sourceforge.net>
3845 * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
3847 2005-05-31 Geoffrey Keating <geoffk@geoffk.org>
3849 * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
3850 * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
3851 be complemented for big-endian. Mask for AND must be rotated,
3852 not shifted. Handle short operands with NOT on the memory
3855 2005-05-30 Daniel Berlin <dberlin@dberlin.org>
3857 * c-objc-common.c (c_tree_printer): Check flag before hashtable.
3858 Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
3859 * dwarf2out.c (dwarf2out_var_location): Ditto.
3860 * toplev.c (default_tree_printer): Ditto.
3861 * tree-outof-ssa.c (create_temp): Ditto.
3862 * tree-sra.c (instantiate_element): Ditto.
3863 * var-tracking.c (track_expr_p): Ditto.
3864 * tree.c (struct tree_map): New structure.
3865 (debug_expr_for_decl): New.
3866 (tree_map_eq): New function.
3867 (tree_map_hash): Ditto.
3868 (tree_map_marked_p): Ditto.
3869 (print_debug_expr_statistics): Ditto.
3870 (decl_debug_expr_lookup): Ditto.
3871 (decl_debug_expr_insert): Ditto.
3872 (dump_tree_statistics): Dump debug_expr hashtable stats.
3873 * tree.h (DECL_DEBUG_EXPR): Change
3874 (SET_DECL_DEBUG_EXPR): Add.
3876 2005-06-01 Alan Modra <amodra@bigpond.net.au>
3878 * configure.ac: Add --enable-secureplt.
3879 (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
3880 * config.in: Regenerate.
3881 * configure: Regenerate.
3882 * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
3883 rs6000/secureplt.h to tm_file when enable_secureplt.
3884 * doc/invoke.texi (msecure-plt, mbss-plt): Document.
3885 * doc/install.texi: Document --enable-targets and --enable-secureplt.
3886 Correct xrefs to "Using the GNU Compiler Collection (GCC)".
3887 * config/rs6000/secureplt.h: New file.
3888 * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
3889 (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
3891 (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
3892 (CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
3893 (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
3894 * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
3895 * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
3896 * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
3897 TARGET_SECURE_PLT got register load sequence.
3898 (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
3900 (rs6000_elf_declare_function_name): Don't emit toc address offset
3901 word when TARGET_SECURE_PLT.
3902 * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
3903 (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
3904 (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
3905 (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
3907 (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
3908 sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
3910 * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
3911 (__trampoline_setup): Likewise. Init r30 before plt call.
3913 2005-05-31 DJ Delorie <dj@redhat.com>
3915 * expr.c (convert_move): When a partial_int requires multiple
3916 conversion steps, make sure successive steps convert the
3917 intermediate value, not the original value.
3919 * expmed.c (expand_mult): Convert partial_int multiplies to
3920 shift/add combinations too.
3922 * genmodes.c (mode_data): Add wider_2x.
3923 (calc_wider_mode): Calculate twice-wider mode too.
3924 (emit_mode_wider): Emit twice-wider mode too.
3925 * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
3926 * expr.c (expand_expr_real_1): Use it for expanding
3929 2005-05-31 Zdenek Dvorak <dvorakz@suse.cz>
3931 PR tree-optimization/21817
3932 * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
3934 2005-05-31 Pat Haugen <pthaugen@us.ibm.com>
3936 * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
3939 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
3943 * fold-const.c (fold_checksum_tree): Copy types also if
3944 TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
3945 Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
3947 Tail recurse TREE_LIST's TREE_CHAIN.
3949 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
3952 * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
3953 SSA_NAME twice and cause the loop to become finite. Remove the test
3956 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
3958 * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
3961 2005-05-31 Richard Sandiford <rsandifo@redhat.com>
3963 * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
3964 the documentation to make it more future-proof.
3965 (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
3966 * target.h (gcc_target): Add check_pch_target_flags.
3967 * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
3968 (TARGET_INITIALIZER): Include it.
3969 * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
3970 * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
3971 * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
3972 (sh_check_pch_target_flags): New function.
3973 (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
3975 2005-05-31 Richard Guenther <rguenth@gcc.gnu.org>
3977 * fold-const.c (extract_array_ref): Handle more cases,
3978 do some useful canonicalization of the base.
3979 (fold_binary): Explicitly deal with arrays of zero-sized