1 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
4 * tree-ssa-reassoc.c (should_transpose): Fix which operand
5 we check for SSA_NAME for.
7 2005-06-29 Daniel Berlin <dberlin@dberlin.org>
9 Fix PR tree-optimization/22071
11 * tree-ssa-structalias.c (offset_overlaps_with_access): New
13 (get_constraint_for_component_ref): Use it.
15 2005-07-01 Andrew Pinski <pinskia@physics.uc.edu>
18 * diagnostic.c (diagnostic_report_current_module): Use pp_newline to
19 print out the last new line.
21 2005-07-01 Hans-Peter Nilsson <hp@axis.se>
23 * config/cris/cris.md (CRIS_CC0_REGNUM): New constant.
24 Swap numbers for CRIS_AP_REGNUM and CRIS_MOF_REGNUM.
25 * config/cris/cris.c (cris_conditional_register_usage): Adjust
26 reg_names[CRIS_CC0_REGNUM] for early CRIS versions.
27 (cris_print_operand) <case REG>: Handle CRIS_CC0_REGNUM.
28 (cris_md_asm_clobbers): Clobber CRIS_CC0_REGNUM for all asms.
29 * config/cris/cris.h (CRIS_CANONICAL_CC0_REGNUM): New macro.
30 (enum reg_class): New member CC0_REGS.
31 (REG_CLASS_FROM_LETTER): Add 'c' for CC0_REGS.
32 (FIRST_PSEUDO_REGISTER, CALL_USED_REGISTERS, REG_ALLOC_ORDER)
33 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, REG_CLASS_NAMES)
34 (CRIS_SPECIAL_REGS_CONTENTS, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
35 (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
36 Adjust for register now described.
38 2005-07-01 Jakub Jelinek <jakub@redhat.com>
41 * config/i386/i386.md (stack_protect_test_si,
42 stack_protect_test_di): Add earlyclobber for scratch 3.
43 * config/rs6000/rs6000.md (stack_protect_testsi,
44 stack_protect_testdi): Add earlyclobber for scratch 3,
45 remove earlyclobber from scratch 4.
47 2005-06-30 Diego Novillo <dnovillo@redhat.com>
51 * tree-ssa-alias.c (create_name_tags): Also process
52 non-dereferenced pointers.
53 Remove argument 'ai'. Update all callers.
55 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
57 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
58 Set to 0 for FRAME_GROWS_DOWNWARD.
59 (REGISTER_NAMES): Add sfp.
61 2005-07-01 Kelley Cook <kcook@gcc.gnu.org>
63 * config/arm/libunwind.S, config/arm/pr-support.c,
64 config/arm/unwind-arm.c, config/arm/unwind-arm.h,
65 config/c4x/predicates.md, tree-object-size.c: Update FSF address.
67 2005-06-30 Eric Botcazou <ebotcazou@libertysurf.fr>
70 * config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
71 Preserve the 2nd register too, if present.
72 (sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
73 Adjust call to emit_and_preserve.
75 2005-06-30 Zack Weinberg <zack@codesourcery.com>
76 Jakub Jelinek <jakub@redhat.com>
78 * pretty-print.h (PP_NL_ARGMAX): New.
79 (text_info): Add locus.
80 (struct chunk_info): New.
81 (output_buffer): Add formatted_obstack, chunk_obstack, and
82 cur_chunk_array. Change obstack to a pointer.
83 (pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
84 (struct pretty_print_info): Replace ideal_maximum_length and
85 prefixing_rule with wrapping.
86 (pp_line_cutoff, pp_prefixing_rule): Update to match.
87 Update prototypes and wrapper macros throughout.
88 * pretty-print.c (pp_formatted_text_data, pp_append_r)
89 (pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
90 (pp_base_last_position_in_text, pp_base_newline, pp_base_character):
91 Update for changes to pp structure.
92 (pp_base_prepare_to_format, pp_base_format_text): Delete.
93 (pp_base_format, pp_base_output_formatted_text): New functions.
94 (pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
95 (pp_verbatim): Clear text.locus.
96 (pp_printf): Likewise. Use pp_format and pp_output_formatted_text.
97 * c-objc-common.c (c_tree_printer): Update function signature.
98 * diagnostic.c (diagnostic_initialize): Update for changes to
100 (diagnostic_report_diagnostic): Call pp_format and then
101 pp_output_formatted_text.
102 (verbatim): Clear text.locus.
103 * diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
104 Update for changes to pp structure.
106 * c-lang.c: No need to include c-pretty-print.h.
107 * Makefile.in: Remove bogus line containing only a tab.
108 (c-lang.o): Update dependencies.
109 * toplev.c (announce_function): Don't use verbatim.
110 (default_tree_printer): Update signature.
112 * objc/objc-lang.c: No need to include c-pretty-print.h.
113 * objc/Make-lang.in: Update dependencies.
115 2005-06-29 Daniel Berlin <dberlin@dberlin.org>
117 * tree-complex.c (complex_variable_components): Now a hashtable.
120 (create_components): Use referenced var iterator.
121 Initialize hashtable. Use cvc_insert/lookup.
122 (extract_components): Use cvc_insert/lookup.
123 (update_complex_components): Ditto.
124 (update_complex_components_on_edge): Ditto.
125 * tree-dfa.c (referenced_vars): Now a hashtable.
126 (dump_referenced_vars): Use iterator.
127 (referenced_var_lookup): New function.
128 (referenced_var_insert): Ditto.
129 (add_referenced_var): Use referenced_var_insert.
130 (mark_new_vars_to_rename): Use DECL_UID.
131 * tree-flow-inline.h (first_htab_element): New function.
133 (next_htab_element): Ditto.
134 (first_referenced_var): Ditto.
135 (end_referenced_vars_p): Ditto.
136 (next_referenced_var): Ditto.
137 (is_call_clobbered): Use DECL_UID.
138 (mark_call_clobbered): Ditto.
139 (clear_call_clobbered): Ditto.
140 (mark_non_addressable): Ditto.
141 * tree-flow.h (htab_iterator): New struct.
142 (FOR_EACH_HTAB_ELEMENT): New macro.
143 (struct int_tree_map): New struct.
144 (int_tree_map_hash): Prototype.
145 (int_tree_map_eq): Ditto.
146 (referenced_var_iterator): Ditto.
147 (FOR_EACH_REFERENCED_VAR): New macro.
148 (referenced_vars): Now a hashtable.
149 * tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
150 (add_new_name_mapping): Ditto.
151 (mark_def_sites): Ditto.
152 (insert_phi_nodes): Use referenced_var iterator.
153 (mark_def_site_blocks): Ditto.
154 (mark_sym_for_renaming): Use DECL_UID.
155 * tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
156 (lookup_element): Ditto.
157 (find_candidates_for_sra): Use referenced_vars iterator.
159 * tree-ssa-alias.c (NUM_REFERENCES): New macro.
160 (NUM_REFERENCES_CLEAR): Ditto.
161 (NUM_REFERENCES_INC): Ditto.
162 (NUM_REFERENCES_SET): Ditto.
163 (alias_obstack): New bitmap obstack.
164 (struct alias_map_d): Use bitmap, not sbitmap.
165 (struct alias_info): Remove num_references.
166 (init_alias_info): Use referenced_var iterator.
167 Initialize bitmap obstack.
168 (delete_alias_info): Use referenced_var iterator.
170 (compute_points_to_and_addr_escape): Use DECL_UID.
171 Use new NUM_REFERENCES macros.
172 (compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
173 Use new NUM_REFERENCES macros.
174 (group_aliases_into): Update prototype to use bitmap.
175 (setup_pointers_and_addressables): Use referenced_vars iterator.
176 Use DECL_UID. Use new NUM_REFERENCES macros.
177 (add_pointed_to_var): Use DECL_UID.
178 (dump_alias_info): Use referenced_var iterator.
179 (add_type_alias): Ditto.
180 (used_portions): Now a hashtable.
181 (used_part_map_eq): New function.
182 (used_part_map_hash): Ditto.
183 (free_used_part_map): Ditto.
186 (get_or_create_used_part_for): Use up_lookup.
187 (create_overlap_variables_for): Ditto.
188 (find_used_portions): Use up_insert.
190 (create_structure_vars): Init used_portions hashtable, use
191 referenced_vars iterator.
192 * tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
194 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
195 * tree-ssa-operands.c (get_asm_expr_operands): Ditto.
196 (note_addressable): Ditto.
197 * tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
198 * tree-ssa.c (verify_flow_insensitive_alias_info): Use
199 referenced_var iterator.
201 (delete_tree_ssa): Ditto.
202 (int_tree_map_eq): New function.
203 (int_tree_map_hash): Ditto.
204 * tree-stdarg.c (find_va_list_reference): Use DECL_UID.
205 (va_list_ptr_read): Ditto.
206 (va_list_counter_struct_op): Ditto.
207 (va_list_ptr_write): Ditto.
208 (check_va_list_escapes): Ditto.
209 (check_all_va_list_escapes): Ditto.
210 (execute_optimize_stdarg): Ditto.
211 * tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
214 2005-06-30 Andrew Pinski <pinskia@physics.uc.edu>
216 * config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
217 (HARD_FRAME_POINTER_REGNUM): this.
219 2005-06-30 Jan Hubicka <jh@suse.cz>
221 * ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
223 2005-06-30 Francois-Xavier Coudert <coudert@clipper.ens.fr>
226 * tree-ssa-structalias.c (build_constraint_graph, scc_visit,
227 process_unification_queue, init_topo_info, topo_visit,
228 init_scc_info, free_scc_info, perform_var_substitution,
229 solve_graph): Use unsigned instead of uint.
231 2005-06-30 Jakub Jelinek <jakub@redhat.com>
233 * function.c (gen_stack_protect_test): Add third argument.
235 2005-06-30 J. D. Johnston <jjohnst@us.ibm.com>
237 * gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
239 2005-06-30 Kazu Hirata <kazu@codesourcery.com>
241 * config/c4x/c4x-protos.h: Remove the prototypes for those
242 functions removed from c4x.c. Add prototypes for those
243 functions exported in c4x.c.
244 * config/c4x/c4x.c (any_operand, fp_zero_operand,
245 const_operand, stik_const_operand, not_const_operand,
246 reg_operand, r0r1_reg_operand, r2r3_reg_operand,
247 ext_low_reg_operand, ext_reg_operand, std_reg_operand,
248 std_or_reg_operand, addr_reg_operand, index_reg_operand,
249 dp_reg_operand, sp_reg_operand, st_reg_operand,
250 rc_reg_operand, call_address_operand,
251 symbolic_address_operand, dst_operand, src_operand,
252 src_hi_operand, lsrc_operand, tsrc_operand,
253 nonimmediate_src_operand, nonimmediate_lsrc_operand,
254 reg_or_const_operand, par_ind_operand, parallel_operand):
256 (c4x_immed_float_p, c4x_a_register, c4x_x_register,
257 c4x_K_constant, c4x_N_constant, c4x_O_constant,
258 c4x_S_indirect): Export.
259 * config/c4x/c4x.h (PREDICATE_CODES): Remove.
260 * config/c4x/c4x.md: Include predicates.md.
261 * config/c4x/predicates.md: New.
263 2005-06-30 Jakub Jelinek <jakub@redhat.com>
265 * function.c (stack_protect_epilogue): Pass label to
266 stack_protect_test, assume it emitted also the conditional
268 * doc/md.texi (stack_protect_test): Adjust documentation.
269 * config/i386/i386.md (stack_protect_test): Add third argument,
270 emit beq with operands[2].
271 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
272 flag_stack_protect != 0.
273 * config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
275 (stack_protect_set, stack_protect_test): New expanders.
276 (stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
277 stack_protect_testdi): New insns.
278 * config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
279 (TARGET_STACK_PROTECT_FAIL): Define.
280 (rs6000_generate_compare): Handle UNSPEC_SP_TEST.
282 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
283 (DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
284 that addition of sfp doesn't change these.
285 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
286 REG_ALLOC_ORDER): Add sfp.
287 (INT_REGNO_P): Include FRAME_POINTER_REGNUM.
288 (FRAME_POINTER_REGNUM): Define to 113.
289 (HARD_FRAME_POINTER_REGNUM): Define to 31.
290 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
291 (STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
292 (ELIMINABLE_REGS): Never eliminate to
293 FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
294 instead. Add eliminations from FRAME_POINTER_REGNUM.
295 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
296 Include FRAME_POINTER_REGNUM.
297 (REGISTER_NAMES): Add sfp.
298 * config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
299 (alt_reg_names): Likewise.
300 (rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
301 (rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
302 instead of FRAME_POINTER_REGNUM.
303 (rs6000_initial_elimination_offset): Never eliminate to
304 FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
305 instead. Add elimination offsets from FRAME_POINTER_REGNUM.
307 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
308 if DEFAULT_ABI == ABI_V4.
310 2005-06-30 Steven Bosscher <stevenb@suse.de>
312 * coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
313 * tree.h (struct tree_decl): New field `tls_model'.
314 (DECL_TLS_MODEL): New.
315 (DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
317 * rtl.h (decl_default_tls_model): Add prototype for it.
318 * varasm.c (decl_tls_model): Rewritten and renamed to ...
319 (decl_default_tls_model): ... this.
320 (default_encode_section_info): Use DECL_TLS_MODEL instead of
322 (assemble_variable): Replace DECL_THREAD_LOCAL with
324 (default_section_type_flags_1): Likewise.
325 (categorize_decl_for_section): Likewise.
326 * tree.c (staticp): Likewise.
327 (recompute_tree_invarant_for_addr_expr): Likewise.
328 * drawf2out (loc_descriptor_from_tree_1): Likewise.
329 * c-decl.c (diagnose_mismatched_decls): Likewise.
330 with DECL_THREAD_LOCAL_P.
331 (start_decl): Likewise.
332 * print-tree.c (print_node): Likewise. Print the TLS model.
333 (grokdeclarator): Set the default DECL_TLS_MODEL here.
334 * c-common.c (handle_tls_model_attribute): Rewrite to set the
335 TLS model up based on the attribute. Never add the attribute
336 to the decl's attributes list.
337 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
338 DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
340 2005-06-30 Zdenek Dvorak <dvorakz@suse.cz>
343 * tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
346 2005-06-30 Bernd Schmidt <bernd.schmidt@analog.com>
348 * config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
349 mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
352 2005-06-29 David Edelsohn <edelsohn@gnu.org>
354 * config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
356 2005-06-29 Diego Novillo <dnovillo@redhat.com>
359 * tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
360 when following copy-of chains.
362 2005-06-30 Jan Hubicka <jh@suse.cz>
364 * function.h (struct function): Add saved blocks/unexpanded var list.
365 * gimple-low.c (record_vars): Insert only VAR_DECLs.
366 * tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
367 (remap_decl): Do not declare vars.
368 (remap_block): Do not care inserting blocks.
369 (remap_blocks): New function.
370 (copy_body_r): Update debug info.
371 (expand_call_inline): Duplicate callee block tree into caller;
372 copy all the unexpanded_var_list.
373 (save_body): Save unexpanded_var_list and blocks.
374 * tree-optimize.c (tree_rest_of_optimization): Restore
375 blocks/unexpanded_var_list.
377 2005-06-29 Richard Henderson <rth@redhat.com>
379 * config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
380 plus for V4HImode UMAX.
382 2005-06-29 Joseph S. Myers <joseph@codesourcery.com>
384 * c-tree.h (default_function_array_conversion): Take and return
386 * c-typeck.c (default_function_array_conversion): Split into
387 array_to_pointer_conversion and function_to_pointer_conversion.
388 Take and return struct c_expr.
389 (array_to_pointer_conversion): Do not handle type qualifiers or
390 COMPOUND_EXPRs specially.
391 (build_function_call): Call function_to_pointer_conversion for
392 function designators.
393 (build_unary_op): Call array_to_pointer_conversion, not
394 default_function_array_conversion.
395 (digest_init, output_init_element): Likewise.
396 * c-parser.c: All callers of default_function_array_conversion
399 2005-06-29 Ziemowit Laski <zlaski@apple.com>
401 * config/darwin.c (machopic_select_section): constant ObjC string
402 objects now always have type "__builtin_ObjCString".
404 2005-06-29 Richard Henderson <rth@redhat.com>
406 * config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
408 2005-06-29 Richard Henderson <rth@redhat.com>
410 * tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
411 (vect_create_epilog_for_reduction): Don't use vec_shr if the
412 operation is emulated.
413 (vectorizable_reduction): Duplicate vect_min_worthwhile_factor
414 tests from vectorizable_operation.
416 2005-06-29 Caroline Tice <ctice@apple.com>
419 * varasm.c (assemble_start_function): Add "L" to beginning of
420 local labels, so assembler & linker treat them as local.
422 2005-06-29 Richard Henderson <rth@redhat.com>
424 * config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
425 argument. Simplify canonicalization of condition. Use unsigned
426 saturating subtraction for QI and HImode unsigned compares. Use
427 bit arithmetic tricks for SImode unsigned compares.
428 * config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
429 * config/i386/sse.md (SSEMODE14): New.
430 (umaxv8hi3): Use us_minus+plus to avoid vcond.
432 (smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
433 (smin<SSEMODE14>3): Similarly with sminv16qi3.
434 (umin<SSEMODE24>3): Similarly with uminv8hi3.
436 2005-06-29 Ian Lance Taylor <ian@airs.com>
438 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
439 GEN_INT to gen_int_for_mode when storing register size to memory.
441 2005-06-29 Stuart Hastings <stuart@apple.com>
443 * gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
444 * gcc/config/i386/emmintrin.h: Likewise.
445 * gcc/config/i386/pmmintrin.h: Likewise.
446 * gcc/config/i386/xmmintrin.h: Likewise.
448 2005-06-29 Steve Ellcey <sje@cup.hp.com>
451 * tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
452 (SET_TYPE_VECTOR_SUBPARTS): New.
453 * tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
454 SET_TYPE_VECTOR_SUBPARTS.
455 * tree-vect-transform.c (vect_transform_loop): Add cast.
457 2005-06-29 Andreas Krebbel <krebbel1@de.ibm.com>
459 * config/s390/s390.c (s390_decompose_address): Accept invalid
460 displacements for addresses containing frame_pointer_rtx or
461 virtual_stack_vars_rtx.
462 (s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
463 (s390_initial_elimination_offset): New offset when eliminating the
465 * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
466 (STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
468 2006-06-28 Ziemowit Laski <zlaski@apple.com>
470 * c-common.c (flag_next_runtime): Move...
471 * toplev.c (flag_next_runtime): ... here.
472 * c-common.h (flag_next_runtime): Move...
473 * flags.h (flag_next_runtime): ... here.
474 * config/darwin-c.c: Include flags.h.
475 * config/t-darwin (darwin-c.o): Depend on flags.h.
477 2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
479 * config/sh/linux-unwind.h (shmedia_fallback_frame_state):
480 Disable aliasing warning with void * cast.
481 (sh_fallback_frame_state): Likewise.
483 2005-06-29 Kaz Kojima <kkojima@gcc.gnu.org>
485 * target.h (gcc_target): New field allocate_initial_value.
486 * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
487 (TARGET_INITIALIZER): Include it.
488 * integrate.c (allocate_initial_values): Use
489 targetm.allocate_initial_value.
490 * system.h: Poison ALLOCATE_INITIAL_VALUE.
491 * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
492 * config/sh/sh.c (sh_pr_n_sets): Make it static.
493 (sh_allocate_initila_value): New function.
494 (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
495 * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
496 * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
497 update from ALLOCATE_INITIAL_VALUE.
499 2005-06-28 Richard Henderson <rth@redhat.com>
501 * tree-vectorizer.c (vect_is_simple_reduction): Compare types
502 using TYPE_MAIN_VARIANT.
504 2005-06-28 Richard Henderson <rth@redhat.com>
506 * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
507 when using psubN.uuu.
509 2005-06-29 Kelley Cook <kcook@gcc.gnu.org>
511 * doc/gcc.texi: Update FSF address.
513 2005-06-28 Eric Christopher <echristo@redhat.com>
517 * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
518 Use. Fix detection of invalid extern inline redefinition.
520 2005-06-28 Diego Novillo <dnovillo@redhat.com>
522 * tree-optimize.c (init_tree_optimization_passes): Fix typo.
524 2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
526 * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
528 2005-06-28 Richard Henderson <rth@redhat.com>
530 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
531 saturating subtraction for QI and HImode unsigned compares. Use
532 bit arithmetic tricks for SImode unsigned compares.
533 (ia64_expand_vcondu_v2si): Remove.
534 (ia64_expand_vecint_cmov): Don't call it.
536 2005-06-28 Richard Henderson <rth@redhat.com>
538 * rtlanal.c (nonzero_bits1): Use the mode of the value for
539 determining integral-ness for comparisons.
541 2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
543 * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
545 2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
547 * target.h (invalid_conversion, invalid_unary_op,
548 invalid_binary_op): New hooks.
549 * target-def.h (TARGET_INVALID_CONVERSION,
550 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
551 TARGET_INITIALIZER): Likewise.
552 * hooks.h (hook_constcharptr_tree_tree_null,
553 hook_constcharptr_int_tree_null,
554 hook_constcharptr_int_tree_tree_null): New.
555 * hooks.c (hook_constcharptr_tree_tree_null,
556 hook_constcharptr_int_tree_null,
557 hook_constcharptr_int_tree_tree_null): Likewise.
558 * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
559 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
560 * c-convert.c (convert): Use invalid_conversion hook.
561 * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
562 (build_binary_op): Use invalid_binary_op hook.
563 * config/ia64/ia64-modes.def: Define RFmode.
564 * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
565 (ia64_expand_movxf_movrf): New.
566 * config/ia64/ia64.md (movxf): Move code to
567 ia64_expand_movxf_movrf.
568 (movrf, movrf_internal): New.
569 * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
570 ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
571 TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
572 (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
573 Add mode parameter. Make static.
574 (ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
576 (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
577 ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
578 (ia64_init_builtins): Set up __fpreg as RFmode.
579 (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
581 2006-06-28 Adrian Straetling <straetling@de.ibm.com>
583 * builtins.c: (expand_builtin_memset): Rewrite to support
584 'set_storage_via_setmem'.
585 * expr.c: (enum insn_code setmem_optab): Define.
586 (enum insn_code clrmem_optab): Remove.
587 (set_storage_via_setmem): New function.
588 (clear_storage_via_setmem): Remove.
589 (clear_storage): Replace call to "clear_storage_via_clrmem" with
590 "set_storage_via_setmem".
591 * expr.h: (set_storage_via_setmem): Declare.
592 (CLEAR_RATIO): Redefine using HAVE_setmemM.
593 * optabs.h: (enum insn_code setmem_optab): Declare.
594 (enum insn_code clrmem_optab): Remove.
595 * optabs.c: (init_optabs): Initialize setmem_optab.
596 (enum insn_code clrmem_optab): Remove.
597 * genopinit.c: (otabs): Likewise.
598 * doc/md.texi: Document new standard pattern 'setmem'. Remove
600 * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
602 * config/frv/frv.c: (frv_expand_block_clear): Likewise.
603 * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
604 * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
605 FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
606 * config/avr/avr.md: ("clrmemhi"): Likewise.
607 * config/frv/frv.md: ("clrmemsi"): Likewise.
608 * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
609 * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
610 * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
611 * config/s390/s390.md: ("clrmem<mode>"): Likewise.
613 2005-06-28 Paul Brook <paul@codesourcery.com>
615 * Makefile.in: Set and use UNWIND_H. Install as unwind.h.
616 * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
617 * except.c (add_ehspec_entry): Generate arm eabi filter lists.
618 (assign_filter_values): Ditto.
619 (output_ttype): New function.
620 (output_function_exception_table): Use output_ttype. Generate arm
622 (default_init_unwind_resume_libfunc): New function.
623 * except.h (default_init_unwind_resume_libfunc): Add prototype.
624 * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
625 * opts.c (decode_options): Use targetm.unwind_tables_default.
626 * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
627 (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
628 * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
629 and arm_eabi_unwinder.
630 * unwind-c.c: Support Arm EABI unwinder.
631 * unwind.h: Rename ...
632 * unwind-generic.h: ... To this.
633 * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
634 (TARGET_UNWID_TABLES_DEFAULT): Document.
636 * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
637 * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
638 (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
640 (thumb_pushpop, thumb_output_function_prologue): Output unwinding
642 (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
643 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
645 (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
646 * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
647 * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
648 ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
649 * config/arm/lib1funcs.asm: Include libunwind.S.
650 * config/arm/libgcc-bpabi.ver: Add unwinding routines.
651 * config/arm/libunwind.S: New file.
652 * config/arm/pr-support.c: New file.
653 * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
654 (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
655 * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
656 * config/arm/unwind-arm.c: New file.
657 * config/arm/unwind-arm.h: New file.
658 * config/i386/t-netware (USER_H): Remove unwind.h.
659 * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
661 2005-06-28 DJ Delorie <dj@redhat.com>
663 * c-decl.c (pop_scope): Move warning control into warning call.
664 (diagnose_mismatched_decls): Likewise.
665 (pushdecl): Likewise.
666 (start_decl): Likewise.
667 (grokparms): Likewise.
668 (start_function): Likewise.
669 (store_parm_decls_newstyle): Likewise.
670 (store_parm_decls_oldstyle): Likewise.
671 (finish_function): Likewise.
672 (declspecs_add_scspec): Likewise.
673 * c-format.c (decode_format_attr): Likewise.
674 (maybe_read_dollar_number): Likewise.
675 (avoid_dollar_number): Likewise.
676 (finish_dollar_format_checking): Likewise.
677 (check_format_info): Likewise.
678 (check_format_info_main): Likewise.
679 (check_format_types): Likewise.
680 (format_type_warning): Likewise.
681 * c-typeck.c (function_types_compatible_p): Likewise.
682 (build_array_ref): Likewise.
683 (convert_arguments): Likewise.
684 (build_c_cast): Likewise.
685 (store_init_value): Likewise.
686 (process_init_element): Likewise.
687 (c_start_case): Likewise.
688 * stor-layout.c (finalize_record_size): Likewise.
689 * tree-cfg.c (execute_warn_function_noreturn): Likewise.
690 * tree-inline.c (expand_call_inline): Likewise.
692 2005-06-28 Uros Bizjak <uros@kss-loka.si>
695 * config/i386/i386.md (fist<mode>2_with_temp splitter):
696 Clobber memory operand, not scratch register.
698 2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
700 * config/s390/s390.c (machine_function): New field has_landing_pad_p.
701 (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
702 s390_regs_ever_clobbered): New functions.
703 (s390_return_addr_rtx): Use get_hard_reg_initial_value.
704 (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
705 Use s390_regs_ever_clobbered.
706 (s390_emit_prologue): Don't use r14 as temp reg if its content is used
707 for builtin_return_address.
708 * config/s390/s390.md ("exception_receiver"): New expander.
709 * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
712 2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
714 * except.c (current_function_has_exception_handlers): Function
715 description added and if statements merged.
717 2005-06-28 Richard Henderson <rth@redhat.com>
719 * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
720 (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
722 2005-06-27 Richard Henderson <rth@redhat.com>
724 * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
725 comparison operations.
726 (ia64_expand_vecint_minmax): Fix size of xops.
727 * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
728 (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
730 2005-06-27 Richard Henderson <rth@redhat.com>
732 * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
733 type for DEF and INIT_VAL. Pretend MIN/MAX need epilogue adjustment.
735 2005-06-27 Richard Henderson <rth@redhat.com>
737 * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
738 (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
740 2005-06-27 Richard Henderson <rth@redhat.com>
742 * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
743 duplicate little-endian adjustment.
745 2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
747 * doc/include/texinfo.tex: Import from upstream CVS.
749 2005-06-28 Jan Hubicka <jh@suse.cz>
751 * cgraph.c (cgraph_remove_node): Do not release function bodies until
752 full cgraph is built.
753 * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
754 * cgraphunit.c (cgraph_finalize_function): Update call of
755 cgraph_decide_inlining_incrementally.
756 (initialize_inline_failed): Break out of ...
757 (cgraph_analyze_function): ... here.
758 (rebuild_cgraph_edges): New function.
759 (pass_rebuild_cgraph_edges): New pass.
760 * common.opt (fearly-inlining): New flag.
761 * ipa-inline.c: Include ggc.h
762 (cgraph_clone_inlined_nodes): Avoid re-using of original copy
763 when cgraph is not fully built.
764 (cgraph_decide_inlining_incrementally): Add early mode.
765 (cgraph_early_inlining): New function.
766 (cgraph_gate_early_inlining): Likewise.
767 (pass_early_ipa_inline): New pass.
768 * ipa.c (cgraph_postorder): NULLify aux pointer.
769 * tree-inline.c (expand_call_inline): Avoid warning early.
770 * tree-optimize.c (pass_early_local_passes): New.
771 (execute_cleanup_cfg_pre_ipa): New.
772 (pass_cleanup_cfg): New.
773 (register_dump_files): Fix handling subpasses of IPA pass.
774 (init_tree_optimization_passes): Add early passes.
775 (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
776 * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
777 pass_early_ipa_inline): New passes.
778 * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
780 * invoke.texi: Document early-inlining.
782 2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
784 * doc/include/fdl.texi: Merge in changes from upstream.
785 * doc/include/gpl.texi: Likewise.
787 2005-06-27 Diego Novillo <dnovillo@redhat.com>
790 * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
791 casts between unsigned and signed types with different size
794 2005-06-28 Jan Hubicka <jh@suse.cz>
796 * tree-optimize.c (exercute_free_datastructures):
797 Do not disband implicit edges; do not attempt to build insn list;
798 do not free cfg annotations.
799 (execute_free_cfg_annotations); Disband implicit edges here;
800 free cfg annotations here too.
801 (pass_free_cfg_annotations); New pass.
802 (init_tree_optimization_passes); Add pass_free_cfg_annotations.
803 * tree-ssa-operands.c (free_ssa_operands); Recover; export.
804 * tree-ssa-operands.h (free_ssa_operands); declare.
805 * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
807 * tree-ssanames.c (release_defs): Kill addresses_taken.
809 * basic-block.h (basic_block_def): Kill rbi.
810 (reorder_block_def): Kill; Remove next field (replaced by aux);
811 move other fields to ...
812 (rtl_bb_info): ... here.
813 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
814 copy_bb, connect_traces, add_labels_and_missing_jumps
815 fix_up_fall_thru_edges, fix_crossing_conditional_branches,
816 duplicate_computed_gotos, partition_hot_cold_basic-blocks):
817 Update to new fields.
818 * cfg.c (initialize_bb_rbi): Kill.
819 * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
820 fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
821 * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
822 (try_redirect_by_replacing_jump): Update rbi references.
823 (cfg_layout_split_block): Likewise.
824 (cfg_layout_delete_block): Likewise.
825 (cfg_layout_merge_blocks): Likewise.
826 * function.c (thread_prologue_and_epilogue_insns): Likewise.
827 * passes.c (rest_of_handle_sms): Likewise.
828 * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
830 2005-06-27 David Edelsohn <edelsohn@gnu.org>
832 * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
833 in verbose_asm output.
834 * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
836 * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
839 2005-06-27 Jakub Jelinek <jakub@redhat.com>
841 * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
842 (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
843 (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
844 (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
845 ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
846 * builtins.c: Include tree-flow.h.
847 (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
848 (expand_builtin_object_size, expand_builtin_memory_chk,
849 maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
850 compute_object_offset, compute_builtin_object_size,
851 fold_builtin_object_size): New functions.
852 (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
853 (fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
854 and BUILT_IN_{,F}PRINTF_UNLOCKED.
855 (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
856 fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
857 fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
858 fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
860 * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
861 BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
862 BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
863 BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
864 BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
865 BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
866 BUILT_IN_VPRINTF_CHK): New builtins.
867 * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
869 (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
870 BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
871 BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
872 BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
873 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
874 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
875 BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
876 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
877 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
878 * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
879 DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
880 * Makefile.in (OBJS-common): Add tree-object-size.o.
881 (tree-object-size.o): Add dependencies.
882 * tree-pass.h (pass_object_sizes): Add.
883 * tree-optimize.c (init_tree_optimization_passes): Add
885 * tree-object-size.c: New file.
886 * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
887 fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
888 compute_builtin_object_size, init_object_sizes, fini_object_sizes):
890 * tree-ssa-ccp.c (get_strlen): Rename to ...
891 (get_maxval_strlen): ...this function. Handle also computing of maximum
892 string length and maximum integral value.
893 (ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
894 instead of get_strlen. Pass CALLEE and ARGLIST variables to the
895 folding functions instead of computing them again.
896 (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
897 into some other builtin.
898 * doc/extend.texi (Object Size Checking): Document.
900 * regrename.c (copy_value): Fix comment.
902 * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
903 instead of preprocessor conditionals.
905 * targhooks.c (default_hidden_stack_protect_fail): Fall back to
906 default_external_stack_protect_fail if visibility is not supported
908 * config/i386/i386.c (ix86_stack_protect_fail): New function.
909 (TARGET_STACK_PROTECT_FAIL): Define.
910 * config/i386/i386.md (stack_protect_si): Change CLOBBER into
912 (stack_protect_di): Likewise. Use %k2 instead of %2 to avoid
913 invalid instruction xorl %rax, %rax.
915 2005-06-27 Richard Henderson <rth@redhat.com>
917 * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
918 * cfgexpand.c: Include params.h.
919 (has_protected_decls, has_short_buffer): New.
920 (expand_stack_vars): Take a predicate to determine what to expand.
921 (defer_stack_allocation): True when flag_stack_protect on.
922 (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
923 (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
924 (stack_protect_classify_type, stack_protect_decl_phase): New.
925 (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
926 (add_stack_protection_conflicts, create_stack_guard): New.
927 (expand_used_vars): Add stack protection logic.
928 (tree_expand_cfg): Likewise.
929 * common.opt (Wstack-protector): New.
930 (fstack-protector, fstack-protector-all): New.
931 * function.c: Include predict.h.
932 (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
933 wants to copy the parameter into the stack frame.
934 (stack_protect_prologue, stack_protect_epilogue): New.
935 (expand_function_end): Call stack_protect_epilogue. Do
936 sjlj_emit_function_exit_after after naked_return_label.
937 * function.h (struct function): Add stack_protect_guard.
938 * params.def (PARAM_SSP_BUFFER_SIZE): New.
939 * toplev.c (process_options): Disable flag_stack_protect and/or
940 warn_stack_protect based on FRAME_GROWS_DOWNWARD.
941 * tree.h (stack_protect_prologue): Declare.
943 * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
944 (TARGET_STACK_PROTECT_FAIL): New.
945 (TARGET_INITIALIZER): Add them.
946 * target.h (struct gcc_target): Add stack_protect_guard and
948 * targhooks.c: Include ggc.h, gty header.
949 (stack_chk_guard_decl, default_stack_protect_guard): New.
950 (stack_chk_fail_decl, default_external_stack_protect_fail): New.
951 (default_hidden_stack_protect_fail): New.
952 * targhooks.h (default_stack_protect_guard): Declare.
953 (default_external_stack_protect_fail): Declare.
954 (default_hidden_stack_protect_fail): Declare.
955 * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
956 * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
958 (conditional_trap, conditional_trap_1): Remove.
959 (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
960 (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
961 * doc/md.texi (stack_protect_set, stack_protect_test): New.
962 * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
963 (TARGET_STACK_PROTECT_FAIL): New.
965 * libgcc-std.ver (GCC_4.1.0): New.
966 * libgcc.h (__stack_chk_guard): Declare.
967 (__stack_chk_fail, __stack_chk_fail_local): Declare.
968 * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
969 * mklibgcc.in (lib2funcs): Add them.
971 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
974 * c-common.c (check_function_sentinel): Pass in named argument
975 list, skip over named arguments before looking for a sentinel.
976 (check_function_arguments): Pass in named argument list.
977 * c-common.h (check_function_arguments): Likewise.
978 * c-typeck.c (build_function_call): Likewise.
980 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
982 * genautomata.c (decl_mode_check_failed,
983 regexp_mode_check_failed): Add noreturn attribute.
985 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
987 * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
988 * doc/invoke.texi: Fix typos.
990 * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
991 convert.c, lambda-code.c, predict.c, tree-cfg.c,
992 tree-complex.c, tree-data-ref.c, tree-if-conv.c,
993 tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
994 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
995 tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
996 tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
997 tree.c: Use fold_buildN instead of fold (buildN (...)).
999 2005-06-26 Gerald Pfeifer <gerald@pfeifer.com>
1001 * doc/install.texi (Specific): Do not specify the concrete
1002 versions of GCC provided by Cygwin. Simplify the part on
1005 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1007 * config/arc/arc-protos.c: Remove the prototype for
1009 * config/arc/arc.c (arc_finalize_pic): Remove.
1010 * config/arc/arc.h (FINALIZE_PIC): Likewise.
1011 * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
1012 * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
1014 2005-06-26 Jakub Jelinek <jakub@redhat.com>
1017 * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
1018 instead of alloca for really big argument sizes.
1021 * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
1022 earlier in the function.
1024 * regrename.c (copy_value): Don't replace fixed or global
1025 regs with older regs.
1027 * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
1028 * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
1029 instead of preprocessor conditionals.
1030 (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
1031 * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
1032 depending on if it was or was not defined previously.
1033 * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
1034 definition of FRAME_GROWS_DOWNWARD means frame grows downward.
1035 * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
1036 * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
1038 * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
1039 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
1040 * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
1041 * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
1042 * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
1043 * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
1044 * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
1045 * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
1047 * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
1048 * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
1049 * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
1050 * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
1051 * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
1052 * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
1053 * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
1054 * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
1055 * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
1056 * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
1057 * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
1058 * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
1059 * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
1060 * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
1061 * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
1062 * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
1063 * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
1064 * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
1065 * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
1067 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1069 PR tree-optimization/22026
1070 * tree-vrp.c (extract_range_from_binary_expr): Drop to
1071 VR_VARYING if a binary expression involving VR_ANTI_RANGE is
1072 PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
1074 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
1076 * Makefile.in (OBJS-common): Remove duplicate object file
1079 2005-06-25 Jan Hubicka <jh@suse.cz>
1081 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
1082 * cfg.c (update_bb_profile_for_threading): Fix rescaling.
1084 * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
1086 (rest_of_compilation): Fix conditional on branch prob pass.
1087 * predict.c (tree_estimate_probability): Enable strip_builtin_expect
1088 when not loop optimizing.
1090 2005-06-25 Bernd Schmidt <bernd.schmidt@analog.com>
1092 * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
1094 (movbi): Add alternative to set CC to zero.
1095 (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
1096 compare_ltu): Now named patterns.
1098 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1100 * all files: Update FSF address in copyright headers.
1102 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
1104 * gengtype.c: Update FSF address in copyright header.
1105 (create_file): Update FSF in outputed copyright header.
1107 2005-06-24 Kazu Hirata <kazu@codesourcery.com>
1109 * cfglayout.c (block_locators_locs, line_locators_locs,
1110 line_locators_lines, file_locators_locs): Change the type to
1112 (insn_locators_initialize, change_scope, insn_scope,
1113 locator_line, insn_line, locator_file): Use VEC instead of
1116 2005-06-24 Jason Merrill <jason@redhat.com>
1118 * tree-nrv.c (tree_nrv): Fix to check assignments to the
1119 RESULT_DECL rather than just RETURN_EXPRs.
1120 (finalize_nrv_r): Adjust.
1122 2005-06-24 Jan Hubicka <jh@suse.cz>
1124 * tree-optimize.c (init_tree_optimization_passes): Fix flags of
1125 all_passes and all_ipa_passes.
1127 * c-common.c: Include cgraph.h
1128 (handle_externally_visible_attribute): New function.
1129 (c_common_att): Add "externally_visible" attribute.
1130 * cgraph.c (decide_is_variable_needed): Obey externally
1132 (cgraph_varpool_finalize_decl): Avoid redundant checking.
1133 * cgraph.h (struct cgraph_node): New flag externally_visible.
1134 (decide_is_function_needed): Obey externally visible flag.
1135 (cgraph_finalize_function): Avoid redundant checks.
1136 (cgraph_function_and_variable_visibility): Bring symbols local
1138 * common.opt (fwhole-program): New flag.
1140 * doc/invoke.texi (-fwhole-program): Document.
1142 2005-06-24 Mark Mitchell <mark@codesourcery.com>
1145 * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
1148 2005-06-23 Mark Mitchell <mark@codesourcery.com>
1151 * tree-ssa-operands.c (get_expr_operands): Check the volatility of
1152 the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
1154 2005-06-24 Jan Hubicka <jh@suse.cz>
1156 * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
1158 2005-06-23 Jeff Law <law@redhat.com>
1160 * tree-optimize.c (init_tree_optimization_passes): Move
1161 copy prop pass to run just before VRP.
1162 * tree-vrp.c (remove_range_assertions): Remove copies created
1163 by ASSERT_EXPR removal.
1165 2005-06-23 Kazu Hirata <kazu@codesourcery.com>
1167 PR tree-optimization/22117
1168 * tree-vrp.c (extract_range_from_binary_expr): Compute a
1169 correct range when adding two pointers.
1171 2005-06-23 Jason Merrill <jason@redhat.com>
1174 Leave the return slot target in the MODIFY_EXPR rather than making
1175 it an argument, but only use it if the CALL_EXPR has a flag set.
1176 * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
1177 CALL_EXPR_RETURN_SLOT_OPT.
1178 * calls.c (expand_call): Adjust.
1179 * tree-inline.c (expand_call_inline): Adjust.
1180 * tree-pretty-print.c (dump_generic_node): Adjust.
1182 And set the flag as appropriate.
1183 * gimplify.c (gimplify_modify_expr_rhs): Set
1184 CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
1185 * tree-nrv.c (execute_return_slot_opt): Set
1186 CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
1187 * tree-pass.h: Declare pass_return_slot.
1188 * tree-optimize.c (init_tree_optimization_passes): Add it.
1190 2005-06-23 David Edelsohn <edelsohn@gnu.org>
1193 * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
1194 * config/rs6000/rs6000.md: Move atomic instructions to ...
1195 * config/rs6000/sync.md: Here.
1196 Change sync_compare_and_swap<mode> to define_expand. All stwcx
1197 patterns test PPC405_ERRATUM77.
1199 2005-06-23 Jan Hubicka <jh@suse.cz>
1201 * tree-inline.c (copy_body_r): Remap labels correctly.
1203 2005-06-22 Alan Modra <amodra@bigpond.net.au>
1205 * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
1207 2005-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1210 * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
1211 the same as the other cast operands.
1212 (output_addressed_constants): Likewise.
1214 2005-06-21 Jeff Law <law@redhat.com>
1216 * tree-vrp.c (extract_range_from_unary_expr): Handle type
1219 2005-06-21 Dorit Nuzman <dorit@il.ibm.com>
1221 * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
1222 (reduc_plus_optab): Removed. Replcaed with...
1223 (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
1224 * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
1225 reduc_uplus_optab instead of reduc_plus_optab.
1226 (expand_vec_shift_expr): New function.
1227 (init_optabs): Initialize new optabs. Remove initialization of
1229 (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
1230 for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
1231 * optabs.h (OTI_reduc_plus): Removed. Replaced with...
1232 (OTI_reduc_splus, OTI_reduc_uplus): New.
1233 (reduc_plus_optab): Removed. Replcaed with...
1234 (reduc_splus_optab, reduc_uplus_optab): New optabs.
1235 (vec_shl_optab, vec_shr_optab): New optabs.
1236 (expand_vec_shift_expr): New function declaration.
1238 * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
1239 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1240 * expr.c (expand_expr_real_1): Handle new tree-codes.
1241 * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
1242 * tree-vect-generic.c (expand_vector_operations_1): Add assert.
1244 * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
1245 alternatives for generating reduction epilog code.
1246 (vectorizable_reduction): Don't fail of direct reduction support is
1248 (vectorizable_target_reduction_pattern): Likewise.
1250 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1251 reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
1252 reduc_plus_v4si, reduc_plus_v4sf): Removed.
1253 (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
1254 reduc_splus_<mode>, reduc_uplus_v16qi): New.
1256 2005-06-20 Daniel Berlin <dberlin@dberlin.org>
1258 * c-typeck.c (build_function_call): Set fundecl = function again.
1259 * tree-ssa-alias.c (find_used_portions): Address taking causes the
1260 entire variable to be used.
1261 * tree-ssa-structalias.c (do_structure_copy): Fix handling of
1262 unknown size variables, and structure copies from addressof
1263 operations. Simplify how we do *a = *b type structure copies.
1264 (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
1265 way. READONLY's address is not taken by default.
1266 INTEGER dereference should point to anything.
1267 (create_variable_info_for): It's okay for the first field to not start
1270 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
1272 config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
1274 2005-06-20 Roger Sayle <roger@eyesopen.com>
1275 Fariborz Jahanian <fjahanian@apple.com>
1277 * combine.c (simplify_set): Simplify setting of CC register
1278 by removing redundant compare with 0 on RHS.
1280 2005-06-20 Jan Beulich <jbeulich@novell.com>
1282 * config/i386/netware-libgcc.def: Update copyright.
1283 * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
1284 __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
1285 * config/i386/netware.c (gen_stdcall_decoration,
1286 gen_fastd_decoration): Merge into ...
1287 (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
1289 (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
1290 (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
1291 * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
1292 libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
1293 * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
1294 use of NX_MUTEX_RECURSIVE.
1296 2005-06-19 Roger Sayle <roger@eyesopen.com>
1298 * fold-const.c (swap_tree_comparison): Add support for unordered
1299 floating point comparisons.
1300 * tree-vrp.c (opposite_comparison): Delete.
1301 (extract_range_from_assert): Replace calls to opposite_comparison
1302 with calls to swap_tree_comparison.
1303 (register_edge_assert_for): Likewise.
1304 (vrp_evaluate_conditional): Likewise.
1306 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
1308 * integrate.c (allocate_initial_values): Update the references
1309 to global_live_at_start and global_live_at_end.
1311 2005-06-20 Jan Hubicka <jh@suse.cz>
1313 * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
1314 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
1316 * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
1317 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1318 Update call of duplicate_loop_to_header_edge.
1319 (apply_opt_in_copies): Clear out aux pointers.
1321 2005-06-19 Joseph S. Myers <joseph@codesourcery.com>
1323 * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1324 (ix86_mangle_fundamental_type): New.
1325 * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1326 (ia64_mangle_fundamental_type): New.
1328 2005-06-19 Roger Sayle <roger@eyesopen.com>
1330 * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
1332 * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
1333 CONSTANT_CLASS_P nodes.
1335 2005-06-19 Richard Henderson <rth@redhat.com>
1337 * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
1338 the shift is always required.
1340 2005-06-19 Richard Henderson <rth@redhat.com>
1342 * config/ia64/ia64-modes.def (V4SF): Add.
1343 * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
1344 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
1345 integer mode changes in fp regs.
1346 * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
1347 * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
1348 (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
1349 (vcondv2sf): Use gen_fpack
1350 (fpack): Remove * from name.
1351 (fswap, fmix_l, fmix_r, fmix_lr): New.
1352 (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
1353 (vec_extractv2sf_1, vec_extractv2sf): New.
1355 2005-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
1357 * combine.c (make_compound_operation): Use simplify_subreg. Delete
1358 a optimization already done by simplify_subreg.
1360 2005-06-19 Ulrich Weigand <uweigand@de.ibm.com>
1362 * loop.c (scan_loop): Do not consider insns setting the frame
1363 pointer to be candidates for hoisting.
1365 2005-06-19 Uros Bizjak <uros@kss-loka.si>
1367 * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
1368 Remove instruction patterns.
1369 (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
1370 (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
1371 Set "unit" attribute to "i387".
1372 (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
1373 (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
1375 (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
1376 (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
1377 attribute to "i387" when "type" attribute equals "multi".
1378 (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
1379 (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
1380 (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
1381 (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
1382 attribute to "i387" when "type" attribute equals "multi".
1383 * config/i386/mmx.md (*mov<mode>_internal_rex64)
1384 (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
1385 Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
1386 (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
1387 * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
1388 (sse_cvttpd2pi): Set "unit" attribute to "mmx".
1389 (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
1390 to "mmx" for "y" operand 1.
1392 2005-06-19 Uros Bizjak <uros@kss-loka.si>
1394 * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
1395 for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
1396 and SSE registers to determine if regno is valid.
1397 (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
1398 TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
1400 2005-06-18 Richard Henderson <rth@redhat.com>
1402 * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
1403 for control-altering statements; set it again for returns.
1404 (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
1407 2005-06-18 Richard Henderson <rth@redhat.com>
1410 * tree-ssa-pre.c (create_expression_by_pieces): Set
1411 DECL_COMPLEX_GIMPLE_REG_P.
1412 (insert_into_preds_of_block): Likewise.
1414 2005-06-18 Steven Bosscher <stevenb@suse.de>
1416 * Makefile.in: Fix tree-cfgcleanup.c dependencies.
1418 2005-06-18 Richard Henderson <rth@redhat.com>
1420 * expr.c (store_constructor): Use store of 0 to indicate value
1421 death instead of a clobber.
1423 * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
1424 * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
1425 * config/i386/sse.md (reduc_plus_v4sf): New.
1426 (reduc_smax_v4sf, reduc_smin_v4sf): New.
1428 2005-06-18 James A. Morrison <phython@gcc.gnu.org>
1430 * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
1431 nonnegative values of X.
1433 2005-06-18 Uros Bizjak <uros@kss-loka.si>
1435 * doc/md.texi (Standard Names): Change insn pattern name
1436 from truncM2 to btruncM2 for 'trunc' built-in description.
1437 Add rintM2 insn pattern description.
1439 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1441 * c-decl.c (locate_old_decl): Add format attribute.
1442 (implicit_decl_warning): Likewise.
1444 * diagnostic.h (verbatim): Move ...
1445 * toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG.
1446 * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
1448 2005-06-18 Roger Sayle <roger@eyesopen.com>
1451 * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
1453 2005-06-18 Dorit Nuzman <dorit@il.ibm.com>
1455 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
1457 * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
1458 OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
1459 (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1460 reduc_plus_optab): New optabs for reduction.
1461 * expr.c (expand_expr_real_1): Handle new tree-codes.
1462 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1463 * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
1465 * optabs.c (optab_for_tree_code): Handle new tree-codes.
1466 (init_optabs): Initialize new optabs.
1467 * genopinit.c (optabs): Define handlers for new optabs.
1469 * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
1470 case of a phi that is marked as relevant. Call vectorizable_reduction.
1471 (vect_mark_relevant): Phis may be marked as relevant.
1472 (vect_mark_stmts_to_be_vectorized): The use corresponding to the
1473 reduction variable in a reduction stmt does not mark its defining phi
1474 as relevant. Update documentation accordingly.
1475 (vect_can_advance_ivs_p): Skip reduction phis.
1476 * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
1477 additional argument. Handle reduction.
1478 (vect_create_destination_var): Update call to vect_get_new_vect_var.
1479 Handle non-vector argument.
1480 (get_initial_def_for_reduction): New function.
1481 (vect_create_epilog_for_reduction): New function.
1482 (vectorizable_reduction): New function.
1483 (vect_get_new_vect_var): Handle new vect_var_kind.
1484 (vectorizable_assignment, vectorizable_operation, vectorizable_store,
1485 vectorizable_condition): Update call to vect_get_new_vect_var.
1486 (vect_transform_stmt): Call vectorizable_reduction.
1487 (vect_update_ivs_after_vectorizer): Skip reduction phis.
1488 (vect_transform_loop): Skip if stmt is both not relevant and not live.
1489 * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1490 (vect_is_simple_reduction): Was empty - added implementation.
1491 * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1492 (reduc_vec_info_type): New enum vect_def_type value.
1493 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1494 reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1495 reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1497 * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1498 ENABLE_CHECKING around gcc_assert.
1499 * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1500 (vect_do_peeling_for_alignment, vect_transform_loop,
1501 vect_get_vec_def_for_operand): Likewise.
1503 2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
1505 * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1506 big-endian unnamed __float80 value.
1508 2005-06-18 Richard Henderson <rth@redhat.com>
1511 * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1514 2005-06-17 Richard Henderson <rth@redhat.com>
1516 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1517 initialize_original_copy_tables and free_original_copy_tables.
1518 (vect_do_peeling_for_alignment): Likewise.
1520 2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
1522 * bb-reorder.c (find_traces_1_round): Use succ block frequency
1523 instead of edge frequency for calls to better_edge_p.
1525 2005-06-17 Andrew Pinski <pinskia@physics.uc.edu>
1528 * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1530 2005-06-17 Steve Ellcey <sje@cup.hp.com>
1533 * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1534 (PROFILE_HOOK): New.
1535 (PROFILE_BEFORE_PROLOGUE): Undef.
1536 (NO_PROFILE_COUNTERS): New.
1537 * config/ia64/ia64-protos.h (ia64_profile_hook): New.
1538 * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1539 (gen_mcount_func_rtx): New.
1540 (ia64_profile_hook): New.
1541 * config/ia64/ia64.md (ip_value): New.
1543 2005-06-17 Devang Patel <dpatel@apple.com>
1545 * config/rs6000/predicates.md (s5bit_cint_operand,
1546 u5bit_cint_operand): New.
1547 * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1548 altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1549 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1550 5 bit constant check.
1552 2005-06-17 Richard Henderson <rth@redhat.com>
1554 * local-alloc.c (update_equiv_regs): Update reg_equiv_init
1555 properly when moving an initialization insn.
1557 2005-06-17 Paolo Bonzini <bonzini@gnu.org>
1559 * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1561 * configure.ac: Regenerate.
1563 2005-06-17 Jan Hubicka <jh@suse.cz>
1565 * tree-optimize.c (execute_ipa_pass_list): New.
1566 (ipa_passes): Use it.
1568 2005-06-16 Richard Henderson <rth@redhat.com>
1571 * tree-complex.c (update_phi_components): Avoid no-op moves.
1573 2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
1575 * Makefile.in (cc1-checksum.c): Use
1576 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1578 2005-06-16 Geoffrey Keating <geoffk@apple.com>
1580 * gengtype.c (adjust_field_rtx_def): Don't add a skip to
1583 * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1585 (SHLIB_REVISION): Delete.
1586 (SHLIB_VERSTRING): Update to compensate.
1587 (SHLIB_SONAME): Just use one '.' in the name.
1589 2005-06-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1591 PR tree-optimization/22018
1592 * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1594 2005-06-16 Richard Henderson <rth@redhat.com>
1597 * builtins.c (fold_builtin_complex_mul): Remove.
1598 (fold_builtin_complex_div): Remove.
1599 (fold_builtin_1): Don't call them.
1600 * fold-const.c (fold_complex_add, fold_complex_mult_parts,
1601 fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1602 (fold_binary): Don't call them. Don't expand complex comparisons to
1603 elementary comparisons.
1604 * tree-complex.c (init_dont_simulate_again): Enhance search for
1605 stmts that require decomposition.
1606 (complex_visit_stmt): Handle RETURN_EXPR properly.
1607 (create_components): Handle no referenced variables properly.
1608 * tree.h (fold_complex_mult_parts): Remove.
1609 (fold_complex_div_parts): Remove.
1611 2005-06-16 Richard Guenther <rguenth@gcc.gnu.org>
1613 * doc/extend.texi: Document sseregparm target attribute.
1614 Clarify fastcall and regparm documentation.
1615 * config/i386/i386.h: Adjust float_in_sse documentation.
1616 * config/i386/i386.c: Add new target attribute sseregparm.
1617 (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1619 (ix86_handle_cconv_attribute): ... here. Also handle
1620 sseregparm attribute.
1621 (ix86_comp_type_attributes): Compare sseregparm attributes.
1622 (ix86_function_sseregparm): New function, split out from ...
1623 (init_cumulative_args): ... here. Use to decide use
1624 of SSE registers and error in case of missing support.
1625 (ix86_value_regno): Likewise.
1626 (function_arg_advance): Do not bail out for DFmode if we need
1627 to pass doubles in registers.
1628 (function_arg): Likewise.
1630 2005-06-16 Paolo Bonzini <bonzini@gnu.org>
1631 Daniel Jacobowitz <dan@codesourcery.com>
1632 Alan Modra <amodra.bigpond.net.au>
1634 * configure.ac (gcc_version): Set near the beginning.
1635 (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
1636 found in the tree. Use gcc_AC_PROG to find the tools in the system.
1637 (objdump): Do not look for it.
1638 * Makefile.in (NM_FOR_TARGET): Point to ./nm
1639 (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1640 ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1641 (as, ld, nm): New rules.
1642 (libgcc.mk): Depend on them.
1643 * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1644 gcc_AC_BUILD_EXEEXT): New.
1645 (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1646 * configure: Regenerate.
1648 2005-06-16 Jan Hubicka <jh@suse.cz>
1650 * basic-block.h (rtl_bb_info): Break out head_, end_,
1651 global_live_at_start, global_live_at_end from ...
1652 (basic_block_def): ... here; update all references
1654 (init_rtl_bb_info): Declare.
1655 * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1657 * cfgrtl.c: Include ggc.h
1658 (create_basic_block_structure): Init bb info.
1659 (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1660 (init_rtl_bb_info): New function.
1661 (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1662 * cfghooks.c (merge_block): Do not copy global_live_at_end here.
1663 * cfg.c (clear_bb_flags): Skip BB_RTL flag.
1664 (dump_flow_info): Gueard global_live_* dumping.
1666 * Makefile.in (cfg.o): Add new dependencies.
1667 * basic-block.h (reorder_block_def): Kill
1668 original/copy/duplicated/copy_number fields.
1669 (BB_DUPLICATED): New flag.
1670 (initialize_original_copy_tables, free_original_copy_tables,
1671 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1672 * cfg.c: Include hashtab.h and alloc-pool.h
1673 (bb_original, bb_copy, original_copy_bb_pool): New static vars.
1674 (htab_bb_copy_original_entry): New struct.
1675 (bb_copy_original_hash, bb_copy_original_eq): New static functions.
1676 (initialize_original_copy_tables, free_original_copy_tables,
1677 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1679 * cfghooks.c (duplicate_block): Update original/copy handling.
1680 * cfglayout.c (fixup_reorder_chain): Likewise.
1681 (cfg_layout_initialize): Initialize orignal_copy tables.
1682 (cfg_layout_finalize): FInalize original_copy tables.
1683 (can_copy_bbs_p): Use BB_DUPLICATED flag.
1684 (copy_bbs): Likewise.
1685 * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1686 (duplicate_loop_to_header_edge): Likewise; update handling of
1688 (loop_version): Likewise.
1689 * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1690 * except.c (expand_resx_expr): Check that reg->resume is not set.
1691 * loop-unroll.c (unroll_loop_constant_iterations,
1692 unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1693 copy/original handling.
1694 * loop-unwitch.c (unswitch_loop): Likewise.
1695 * tree-cfg.c (create_bb): Do not initialize RBI.
1696 (disband_implicit_edges): Do not kill RBI.
1697 (add_phi_args_after_copy_bb): Use new original/copy mapping.
1698 (add_phi_args_after_copy): Use BB_DUPLICATED flag.
1699 (tree_duplicate_sese_region): Update original/copy handling.
1700 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1701 * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1702 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1704 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
1707 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1708 integer types whos ranges are different are not useless.
1710 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
1713 * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1716 2005-06-15 Diego Novillo <dnovillo@redhat.com>
1718 * tree-ssa-structalias.c (dump_solution_for_var): Reformat
1720 (dump_sa_points_to_info): Make extern.
1721 (debug_sa_points_to_info): New.
1722 * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1724 (dump_sa_points_to_info): Declare.
1725 (debug_sa_points_to_info): Declare.
1727 2005-06-15 Joseph S. Myers <joseph@codesourcery.com>
1729 * c-tree.h (default_function_array_conversion): Declare.
1730 * c-typeck.c (default_function_array_conversion): Export. Correct
1732 (default_conversion): Do not call
1733 default_function_array_conversion. Do not allow FUNCTION_TYPE.
1734 (build_function_call): Call default_function_array_conversion on
1736 (convert_arguments): Do not call it on the function arguments.
1737 (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1738 TRUTH_NOT_EXPR. Call default_function_array_conversion for taking
1739 address of ARRAY_REF.
1740 (build_compound_expr): Do not call
1741 default_function_array_conversion.
1742 (build_c_cast): Do not call default_function_array_conversion.
1743 (convert_for_assignment): Do not call default_conversion.
1744 (digest_init): Call default_function_array_conversion to convert
1745 string constants and compound literals to pointers, but not
1747 (output_init_element): Likewise.
1748 (build_asm_expr): Do not call default_function_array_conversion.
1749 (c_process_expr_stmt): Likewise.
1750 (c_objc_common_truthvalue_conversion): Likewise. Do not allow
1752 * c-parser.c (c_parser_expression_conv): New.
1753 (c_parser_asm_operands, c_parser_expr_list): Add convert_p
1754 argument. All callers changed. Call
1755 default_function_array_conversion if convert_p.
1756 (c_parser_initializer, c_parser_initval): Call
1757 default_function_array_conversion except for string constants and
1759 (c_parser_initelt): Call default_function_array_conversion for
1760 ObjC expression received.
1761 (c_parser_statement_after_labels): Call c_parser_expression_conv
1762 for return and expression statements.
1763 (c_parser_paren_condition, c_parser_for_statement,
1764 c_parser_conditional_expression): Call c_parser_expression_conv.
1765 (c_parser_expr_no_commas, c_parser_conditional_expression,
1766 c_parser_binary_expression, c_parser_cast_expression,
1767 c_parser_unary_expression): Call
1768 default_function_array_conversion.
1770 2005-06-15 Diego Novillo <dnovillo@redhat.com>
1772 * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
1773 when the result overflows.
1775 2005-06-15 David Ung <davidu@mips.com>
1777 * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
1780 2005-06-15 Richard Sandiford <richard@codesourcery.com>
1782 * doc/invoke.texi (-mips16): Fix typo.
1784 2005-06-15 David Ung <davidu@mips.com>
1786 * config/mips/mips.h (GENERATE_MIPS16E): New definition.
1787 * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
1788 Changed expand condition to exclude generating of "and" if
1789 GENERATE_MIPS16E is true.
1790 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
1791 matching mips16e zeb/zeh.
1792 (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
1794 (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
1796 * doc/invoke.texi (MIPS Options): Add comment to -mips16
1797 indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
1799 2005-06-15 Diego Novillo <dnovillo@redhat.com>
1802 * tree-vrp.c (vrp_int_const_binop): New.
1803 (extract_range_from_binary_expr): Call it.
1804 Unify handling division and multiplication.
1806 2005-06-15 Aldy Hernandez <aldyh@redhat.com>
1808 * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
1810 * c-common.c (same_scalar_type_ignoring_signedness): New.
1812 * c-typeck.c (build_binary_op): Check compatability of vector
1813 types. Move error report after switch.
1814 Do not clobber code[01] on *_DIV_EXPR case.
1816 * testsuite/gcc.dg/simd-1.c: Update error messages.
1817 * testsuite/gcc.dg/simd-1b.c: Re-enable tests. Update error
1819 * testsuite/gcc.dg/simd-2.c: Update error messages.
1820 * testsuite/gcc.dg/simd-4.c: New.
1822 2005-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
1824 * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
1825 * local-alloc.c: Include "ggc.h" and "reload.h".
1826 (struct equivalence): New member is_arg_equivalence.
1827 (local_alloc): Always call update_equiv_regs.
1828 (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
1829 Detect equivalences made by stores to memory in a second pass.
1830 Return early if not optimizing.
1831 Initialize reg_equiv_init for all equivalences; treat equivalences for
1832 REG_EQUIV notes existing before this pass specially.
1833 (no_equiv): Don't clear reg_equiv_init or remove notes if the
1834 is_arg_equivalence field is set.
1835 * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
1836 * reload1.c (reg_equiv_init): No longer static.
1837 (reg_equiv_init_size): New variable.
1838 (reload): Don't allocate reg_equiv_init; don't free it when done but
1840 Restructure equivalence set up code not to set reg_equiv_init, but to
1841 clear it when we can't use an equivalence.
1842 Undo change disabling equivalences for MEM_READONLY_P memrefs.
1843 Dump equivalencing insns to dump_file.
1845 2005-06-14 Richard Sandiford <richard@codesourcery.com>
1847 * config/mips/mips.c (machine_function): Add varargs_size field.
1848 (mips_setup_incoming_varargs): Store the amount of extra stack space
1849 there rather than in *pretend_size. When saving registers, always
1850 expect virtual_incoming_args_rtx to point to the start of the
1852 (mips_va_start): Remove alignment hack. Handle all
1853 !EABI_FLOAT_VARARGS_P cases in the same way.
1854 (compute_frame_size): Handle varargs_size. Remove the redundant
1855 !TARGET_OLDABI condition in the handling of pretend_args_size.
1856 (mips_initial_elimination_offset): Remove the now-redundant check
1859 2005-06-14 Jeff Law <law@redhat.com>
1861 * tree-vrp.c (local_fold): Remove.
1862 (simplify_using_ranges): Use fold_convert, not local_fold. Tweak
1863 DIV/MOD case slightly for readability.
1865 2005-06-14 Frank Ch. Eigler <fche@redhat.com>
1868 * tree-mudflap.c (mudflap_finish_file): Exclude non-public
1869 rather than static objects (!) from libmudflap registration.
1871 2005-06-14 Richard Sandiford <richard@codesourcery.com>
1873 * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
1874 (var_ref): Take the option's flags as a second parameter. Check
1876 * optc-gen.awk: Declare local state variables. Pass flags to var_ref.
1878 2005-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1881 * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
1882 unsigned index numbers.
1884 2005-06-13 Geoffrey Keating <geoffk@apple.com>
1886 * Makefile.in (install-man): Doesn't really depend on installdirs.
1887 (various rules for installing manpages): Do depend on installdirs.
1889 2005-06-14 Nathan Sidwell <nathan@codesourcery.com>
1891 * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
1892 read_encoded_value_with_base call.
1893 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1894 * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
1895 * unwind-dw2.c (extract_cie_info): Fix aliasing in
1896 read_encoded_value call.
1897 (execute_cfa_program, uw_frame_state_for): Likewise.
1899 2005-06-13 Roger Sayle <roger@eyesopen.com>
1901 PR rtl-optimization/22053
1902 * reg-stack.c (compensate_edge): Correct mistake in the assertion
1903 checking of EDGE_ABNORMAL_CALL edges; complex return values can
1904 result in the top two stack slots, st(0) and st(1), being live.
1906 2005-06-13 Jeff Law <law@redhat.com>
1908 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
1909 simplify DIV, MOD or ABS expressions using VRP information.
1910 Remove WALK_DATA parameter. Prototype and all callers updated.
1911 (eliminate_redundant_computations): Remove WALK_DATA parameter.
1912 Prototype and all callers updated.
1913 (optimize_stmt): WALK_DATA parameter is now unused.
1915 * tree-vrp.c (local_fold): New function. Like fold, but
1916 strips useless type conversions in the result.
1917 (simplify_using_ranges): New function, largely cribbed from
1918 tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
1919 (vrp_finalize): Call simplify_using_ranges.
1921 2005-06-13 Mark Mitchell <mark@codesourcery.com>
1923 * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
1924 assembler in 64-bit mode.
1926 2005-06-13 David Edelsohn <edelsohn@gnu.org>
1928 Revert scc_operand patch.
1929 * config/rs6000/predicates.md (scc_operand): Delete.
1930 * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
1932 2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
1935 * fold-const.c (split_address_to_core_and_offset): Always return
1936 the address of the base object.
1938 2005-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
1940 * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
1942 2005-06-12 Richard Henderson <rth@redhat.com>
1945 * tree-complex.c (update_complex_components_on_edge): New.
1946 (update_parameter_components): Use it.
1947 (update_phi_components): Likewise.
1948 (expand_complex_move): Likewise for is_ctrl_altering_stmt.
1950 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
1952 PR tree-optimization/14796
1953 * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
1956 2005-06-12 Kazu Hirata <kazu@codesourcery.com>
1958 * cgraphunit.c, tree-ssa-loop-ivopts.c,
1959 tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
1960 config/sparc/sparc.c: Fix comment typos.
1962 2005-06-12 Richard Earnshaw <richard.earnshaw@arm.com>
1964 * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
1965 (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
1966 * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
1967 (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
1969 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
1971 PR tree-optimization/14796
1972 * fold-const.c (fold_binary): Transform (A >> C) << C into
1974 <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
1976 2005-06-11 Geoffrey Keating <geoffk@apple.com>
1978 * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
1979 (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
1981 (reg_or_sub_cint_operand): Likewise.
1982 (mask_operand): Handle DImode.
1983 (mask64_operand): Delete.
1984 (and64_operand): Delete.
1985 * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
1986 instead of mask64_operand.
1987 (print_operand): Likewise.
1988 (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
1989 reg_or_sub_cint_operand instead of *64_* variants.
1990 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
1991 instead of mask64_operand.
1992 * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
1996 (add<mode>3): Use reg_or_add_cint_operand.
1998 (sub<mode>3): Use reg_or_sub_cint_operand.
1999 (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
2000 mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
2001 cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
2002 ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
2003 ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
2004 return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
2005 various unnamed patterns): New.
2006 (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
2007 cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
2008 ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
2009 return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
2010 udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
2011 cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
2012 ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
2013 return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
2014 movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
2017 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
2019 * rtl.h (to_rtx_code): Remove.
2020 * machmode.h (to_machine_mode): Likewise.
2021 * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
2023 (apply_mode_maps): Likewise.
2024 (read_rtx_1): Likewise.
2025 (apply_code_macro): Replace to to_rtx_code with explicit cast.
2026 (check_code_macro): Likewise.
2027 (read_rtx_1): Likewise.
2029 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
2031 * c-typeck.c (convert_for_assignment): Avoid checking
2032 OPT_Wc___compat, as it is always true.
2034 2005-06-11 David Edelsohn <edelsohn@gnu.org>
2036 * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
2038 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
2040 Fix PR tree-optimization/22005
2041 Fix PR tree-optimization/22025
2043 * tree-ssa-structalias.c (struct variable_info): Add has_union
2045 (create_variable_info_for): Mark variables containing unions.
2046 Don't sort the field stack if notokay is true.
2047 (find_what_p_points_to): Convert variables containing unions back
2048 to their SFT's if necessary.
2050 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
2052 * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
2053 is an INTEGER_CST before calling int_cst_value.
2055 2005-06-10 Uros Bizjak <uros@kss-loka.si>
2058 * config/i386/i386.c (ix86_function_value_regno_p): Return true
2059 for FIRST_MMX_REG if TARGET_MMX.
2060 (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
2062 (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
2063 (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2065 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
2067 * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
2068 and access function against chrec_dont_know.
2070 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
2072 * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
2074 (exit_phi_for_loop_p): New function.
2075 (can_put_in_inner_loop): Ditto.
2076 (can_convert_to_perfect_nest): Ditto.
2077 (perfect_nestify): Create iv with right type.
2078 Rewrite statements in correct order.
2080 2005-06-10 Keith Besaw <kbesaw@us.ibm.com>
2082 * tree-ssa-alias.c (new_type_alias): Use existing type
2083 tag if VAR has just one in its may_aliases list.
2085 2005-06-10 Fariborz Jahanian <fjahanian@apple.com>
2087 * rs6000/predicates.md (scc_operand): New.
2088 * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2090 2005-06-10 Dorit Nuzman <dorit@il.ibm.com>
2092 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
2093 dependence-distance modulo VF is 0 are recorded in the
2094 SAME_ALIGN_REFs VEC in each DR.
2095 (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
2096 alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
2097 DR we want to peel for, is set to 0.
2098 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
2099 * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
2101 * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
2102 (_stmt_vec_info): Added new field same_align_refs.
2103 (STMT_VINFO_SAME_ALIGN_REFS): New macro.
2105 2005-06-10 Nathan Sidwell <nathan@codesourcery.com>
2107 * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2109 2005-06-10 Alan Modra <amodra@bigpond.net.au>
2111 * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
2112 * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
2113 * config/rs6000/rs6000.c (output_function_profiler): Obey
2114 NO_PROFILE_COUNTERS. Handle TARGET_SECURE_PLT. Use "bcl 20,31"
2115 for -fPIC. Delete save_lr and substitute its value into strings.
2117 2005-06-09 Dale Johannesen <dalej@apple.com>
2119 * config/i386/i386.c (optimization_options): Make -fno-math-errno
2120 the default on Darwin.
2121 * config/rs6000/rs6000.c (optimization_options): Ditto.
2122 * doc/invoke.texi (-fno-math-errno): Document.
2124 2005-06-09 Dale Johannesen <dalej@apple.com>
2126 * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
2127 Change to TARGET_INVALID_WITHIN_DOLOOP.
2129 2005-06-09 David Edelsohn <edelsohn@gnu.org>
2131 * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
2132 * config/rs6000/predicates.md (scc_eq_operand): New.
2134 2005-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
2136 * config/sh/sh.md (mextr_rl): Set buffer size properly.
2137 (*mextr_lr): Likewise.
2139 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
2142 * c.opt (Wc++-compat): New.
2143 * doc/invoke.texi (-Wc++-compat): Document.
2144 * c-typeck.c (convert_for_assignment): Check for implicit
2145 conversion void* -> T*.
2147 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.edu>
2149 * machmode.h (to_machine_mode): New.
2150 * rtl.h (to_rtx_code): Likewise.
2151 * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
2152 (print_c_condition): Convert return value of htab_find().
2153 (apply_code_macro): Add explicit cast when convertin to enums.
2154 (apply_mode_maps): Likewise.
2155 (check_code_macro): Likewise.
2156 (read_rtx_1): Likewise.
2158 2005-06-09 Richard Henderson <rth@redhat.com>
2160 * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
2161 Use SCALAR_FLOAT_MODE_P.
2162 * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
2163 (fselect): Rename from fpcmp; use %F.
2166 2005-06-09 Jan Hubicka <jh@suse.cz>
2168 * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
2169 local statics when doing unit-at-a-time.
2170 (cgraph_varpool_assemble_pending_decls): Output debug info.
2171 * dwarf2out.c (decls_for_scope): Skip local statics.
2172 (dwarf2out_decl): Handle local statics.
2173 * passes.c (rest_of_decl_compilation): Do not differentiate
2174 local and global statics in unit-at-a-time.
2175 * tree-inline.c (remap_decls): Put local static into
2176 unexpanded_vars_list rather than introducing duplicated VAR_DECL
2179 2005-06-09 Daniel Berlin <dberlin@dberlin.org>
2181 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
2184 2005-06-08 Daniel Berlin <dberlin@dberlin.org>
2186 * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2187 * tree-flow.h (find_what_p_points_to): Add prototype.
2188 (push_fields_onto_fieldstack): Ditto.
2189 (sort_fieldstack): Ditto.
2190 * tree-optimize.c (init_tree_optimization_passes): Add
2191 pass_build_pta and pass_del_pta.
2192 * tree-pass.h (pass_build_pta): New structure.
2193 (pass_del_pta): Ditto.
2194 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
2195 using new alias analyzer.
2196 (push_fields_onto_fieldstack): Removed from here.
2197 (bitpos_of_field): Ditto.
2198 (fieldoff_compare): Ditto.
2199 * tree-ssa-structalias.c: New file.
2200 * tree-ssa-structalias.h: Ditto.
2202 2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
2204 * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
2207 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
2209 * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
2210 * config/bfin/bfin.h (enum bfin_builtins): ... here.
2212 2005-06-09 Adrian Straetling <straetling@de.ibm.com>
2214 * target.h (insn_valid_within_doloop): Rename into
2215 "invalid_within_doloop". Change return type to "const char *".
2217 * targhooks.h (default_insn_valid_within_doloop): Rename into
2218 "default_invalid_within_doloop".
2219 * targhooks.c (default_insn_valid_within_doloop): Likewise.
2221 * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
2222 into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
2223 "default_invalid_within_doloop".
2224 * hooks.c (hook_constcharptr_rtx_null): New function.
2225 (hook_bool_rtx_true): Remove.
2226 * hooks.h (hook_constcharptr_rtx_null): Declare.
2227 (hook_bool_rtx_true): Remove.
2228 * loop-doloop.c (doloop_valid_p): Temporarily store return value of
2229 "invalid_within_doloop" and print error message if non-null.
2231 * doc/tm.texi: Update documentation.
2232 * config/s390/s390.c: Adjust to new hook name and new default hook.
2233 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
2234 into "rs6000_invalid_within_doloop".
2235 (rs6000_invalid_within_doloop): Change return type to "static const
2236 char *" and replace return values. Update Comment.
2238 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
2240 * config/bfin/bfin.opt (mlong-calls): New.
2241 * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
2242 if TARGET_LONG_CALLS.
2244 2005-06-09 Richard Henderson <rth@redhat.com>
2247 * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
2248 (struct tree_decl): Add gimple_reg_flag.
2249 * integrate.c (copy_decl_for_inlining): Copy it.
2250 * gimplify.c (internal_get_tmp_var): Set it.
2251 (gimplify_bind_expr): Likewise.
2252 (gimplify_function_tree): Likewise.
2253 (gimplify_modify_expr_complex_part): New.
2254 (gimplify_modify_expr): Use it.
2255 * tree-gimple.c (is_gimple_reg_type): Allow complex.
2256 (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
2258 * tree-complex.c (complex_lattice_t): New.
2259 (complex_lattice_values, complex_variable_components): New.
2260 (some_nonzerop, find_lattice_value, is_complex_reg,
2261 init_parameter_lattice_values, init_dont_simulate_again,
2262 complex_visit_stmt, complex_visit_phi, create_components,
2263 update_complex_components, update_parameter_components,
2264 update_phi_components, update_all_vops, expand_complex_move): New.
2265 (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
2267 (update_complex_assignment): Use update_complex_components;
2268 handle updates of return_expr properly.
2269 (expand_complex_addition): Use complex lattice values.
2270 (expand_complex_multiplication): Likewise.
2271 (expand_complex_division): Likewise.
2272 (expand_complex_libcall): Use update_complex_components.
2273 (expand_complex_comparison): Use update_stmt.
2274 (expand_complex_operations_1): Use expand_complex_move, retrieve
2276 (tree_lower_complex): Compute lattice values.
2277 (tree_lower_complex_O0): Duplicate from tree_lower_complex.
2278 (pass_lower_complex_O0): Rename from pass_lower_complex.
2279 (pass_lower_complex, gate_no_optimization): New.
2280 * tree-optimize.c (init_tree_optimization_passes): Update for
2281 complex pass changes.
2282 * tree-pass.h (pass_lower_complex_O0): Declare.
2284 2005-06-08 Dale Johannesen <dalej@apple.com>
2286 * config/darwin.c (darwin_binds_local_p): New.
2287 * config/darwin-protos.h (darwin_binds_local_p): Declare it.
2288 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
2289 * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
2290 (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
2292 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
2294 * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
2295 rs6000_isel, rs6000_spe, rs6000_alignment_string,
2296 rs6000_sched_restricted_insns_priority_str,
2297 rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2299 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
2301 * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
2302 instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
2303 * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
2304 multiplier_allowed_in_address_p, get_address_cost): Ditto.
2306 2005-06-08 Richard Henderson <rth@redhat.com>
2308 * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
2309 * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
2310 Emit out3 load right after alloc.
2312 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
2314 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2315 rs6000_explicit_options.
2317 2005-06-08 Richard Henderson <rth@redhat.com>
2319 * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
2320 * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
2322 * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2324 2005-06-08 Joseph S. Myers <joseph@codesourcery.com>
2326 * config/sol2-c.c (cmn_err_char_table): Allow width for %b
2329 2005-06-08 James A. Morrison <phython@gcc.gnu.org>
2332 * config/sparc/sparc.c (sparc_fold_builtin): New function
2333 (sparc_vis_mul8x16): New function.
2334 (sparc_handle_vis_mul8x16): New function.
2335 (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2337 2005-06-08 David Edelsohn <edelsohn@gnu.org>
2339 * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
2341 (call_indirect_nonlocal_aix64): Same.
2342 (call_value_indirect_nonlocal_aix32): Same.
2343 (call_value_indirect_nonlocal_aix64): Same.
2346 (eq): Use CLZ splitter for compare with zero.
2348 2005-06-08 Bernd Schmidt <bernd.schmidt@analog.com>
2350 * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
2351 everything larger than 8 bytes in memory.
2353 * config/bfin/bfin.h (enum bfin_builtins): New.
2354 * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2356 (csync, ssync): New insn patterns.
2357 * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2359 (def_builtin): New macro.
2360 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2362 From Jie Zhang <jie.zhang@analog.com>
2363 * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
2364 behavior of the native assembler in VDSP. So change accordingly.
2366 2005-06-08 Sebastian Pop <pop@cri.ensmp.fr>
2368 * tree-data-ref.c (compute_estimated_nb_iterations,
2369 analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
2370 analyze_subscript_affine_affine, find_data_references_in_loop):
2371 Fixed to use chrec_contains_undetermined to test the values of
2372 loop->estimated_nb_iterations.
2373 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2374 Compute the estimation only when loop->estimated_nb_iterations
2375 has not yet been initialized.
2376 (convert_step_widening, scev_probably_wraps_p): Add a call to
2377 estimate_numbers_of_iterations_loop.
2378 * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2380 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2383 * dwarf2out.c (add_loc_descr_op_piece): Move to the
2384 DWARF2_DEBUGGING_INFO section.
2386 2005-06-08 Richard Henderson <rth@redhat.com>
2389 * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2391 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
2394 * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
2395 * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
2396 (TARGET_ASM_OUT): Add it.
2397 * doc/tm.texi (Debugging Info): Document it.
2398 * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
2399 Test it instead of ASM_OUTPUT_DWARF_DTPREL.
2400 (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
2401 * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
2402 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
2403 * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
2404 (gen_inlined_tls_plt): Remove unused variable MEM.
2405 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
2406 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2407 * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
2408 * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
2410 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
2411 * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2412 * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
2413 * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
2415 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
2416 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2417 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
2418 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
2420 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
2421 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2422 * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
2423 * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
2425 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
2426 * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2427 * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
2428 (TARGET_GNU_TLS): Define to 1.
2429 * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
2430 * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
2432 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
2433 if TARGET_GNU_TLS only.
2434 * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2436 * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
2437 (sparc-*-solaris2*): Likewise on Solaris 7 and up.
2439 2005-06-07 Dale Johannesen <dalej@apple.com>
2441 * config/i386/i386.md (movqi_1): Fix case where source
2442 is memory and destination EDI.
2444 2005-06-08 Kazu Hirata <kazu@codesourcery.com>
2446 * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2448 2005-06-07 Eric Christopher <echristo@redhat.com>
2450 * system.h: Poison EXTRA_CC_MODES.
2451 * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
2452 * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
2453 * doc/md.texi (Jump Patterns): Replace reference to
2454 EXTRA_CC_MODES with machine-modes.def.
2455 * doc/rtl.texi (Machine Modes): Ditto.
2457 2005-06-07 Richard Henderson <rth@redhat.com>
2459 * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
2460 (assemble_start_function): Fix strcmp confusion.
2462 2005-06-07 Uros Bizjak <uros@kss-loka.si>
2464 * config/i386/i386.h (enum ix86_entity): New.
2465 (enum ix86_stack_slot): New.
2466 (OPTIMIZE_MODE_SWITCHING): Redefine to use
2467 ix86_optimize_mode_switching[] array.
2468 (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
2469 (MODE_NEEDED): Use ix86_mode_needed() function.
2470 (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
2472 (struct machine_function): Use optimize_mode_switching[] array.
2474 * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
2475 (ix86_mode_needed): New function.
2476 (emit_i387_cw_initialization): Cleanup. Use mode to calculate
2477 correct stack positions for stored control words.
2478 (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
2479 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
2481 [IX86_BUILTIN_STMXCSR]: Same.
2483 * config/i386/i386-protos.h (assign_stack_local): Change prototype.
2484 (emit_i387_cw_initialization): Change prototype.
2485 (ix86_mode_needed): New prototype.
2487 * config/i386/i386.md (i387_cw attribute): Change order of elements.
2488 (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
2489 (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
2490 (*fist<mode>2_ceil_1): Change constant in call to
2491 assign_386_stack_local to SLOT_TEMP.
2492 (*fix_trunc<mode>_i387_1): Change constant in call to
2493 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2494 Use new ix86_optimize_mode_switching[] array.
2495 (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
2496 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2497 Use new ix86_optimize_mode_switching[] array.
2498 (frndintxf2_ceil, *fist<mode>2_ceil_1): Change constants in call to
2499 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2500 Use new ix86_optimize_mode_switching[] array.
2501 (frndintxf2_trunc): Change constants in call to
2502 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2503 Use new ix86_optimize_mode_switching[] array.
2504 (frndintxf2_mask_pm): Change constants in call to
2505 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2506 Use new ix86_optimize_mode_switching[] array.
2508 (define_peephole2): Change constant from 17 to FLAGS_REG;
2510 2005-06-07 Richard Henderson <rth@redhat.com>
2513 * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2515 2005-06-07 Dale Johannesen <dalej@apple.com>
2517 * tree-nested.c (finalize_nesting_tree_1): Disable
2518 warn_padded around layout_type call.
2520 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
2522 * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2525 2005-06-07 Eric Christopher <echristo@redhat.com>
2527 * config/mips/predicates.md: Revert previous patch.
2529 2005-06-07 Jakub Jelinek <jakub@redhat.com>
2532 * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2535 2005-06-07 Diego Novillo <dnovillo@redhat.com>
2537 * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2538 (thread_stats): New local variable.
2539 (redirect_edges): Increment count of threaded edges.
2540 (thread_through_all_blocks): Initialize thread_stats.
2541 Display number of threaded jumps if TDF_STATS is enabled.
2543 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
2545 * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2546 the current bit index with no modulo.
2548 2005-06-07 Sebastian Pop <pop@cri.ensmp.fr>
2550 PR 18403 and meta PR 21861.
2551 * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2552 * tree-chrec.c: Include cfgloop.h and tree-flow.h.
2553 (evolution_function_is_invariant_rec_p,
2554 evolution_function_is_invariant_p): New.
2555 (chrec_convert): Use an extra parameter AT_STMT for refining the
2556 information that is passed down to convert_step. Integrate the
2557 code that was in count_ev_in_wider_type.
2558 * tree-chrec.h (count_ev_in_wider_type): Removed.
2559 (chrec_convert): Modify its declaration.
2560 (evolution_function_is_invariant_p): Declared.
2561 (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2562 * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2563 (scev_probably_wraps_p): Declared.
2564 * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2565 (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2566 Use an extra parameter AT_STMT for refining the information that is
2567 passed down to convert_step.
2568 (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2569 analyze_scalar_evolution_1): Initialize AT_STMT with the current
2571 (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2572 * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
2573 can_count_iv_in_wider_type to use convert_step.
2574 * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
2575 code that is independent of the loop over the known iteration
2576 bounds to convert_step_widening, the rest is moved to
2577 proved_non_wrapping_p.
2578 (scev_probably_wraps_p): New.
2579 (can_count_iv_in_wider_type): Renamed convert_step.
2580 * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2581 Use scev_probably_wraps_p for computing init_is_max.
2582 (vrp_visit_assignment): Pass the current analyzed statement to
2583 adjust_range_with_scev.
2584 (execute_vrp): Call estimate_numbers_of_iterations for refining the
2585 information provided by scev analyzer.
2587 2005-06-07 Eric Christopher <echristo@redhat.com>
2589 * config/mips/predicates.md (sleu_operand): Use
2590 IN_RANGE to specify range of operand.
2592 2005-06-07 Steven Bosscher <stevenb@suse.de>
2594 PR tree-optimization/21847
2595 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2596 -fnon-call-exceptions, also mark statements inherently
2597 necessary if they may throw.
2599 2005-06-07 Adrian Straetling <straetling@de.ibm.com>
2601 * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2602 ("type"): Add "sem" to 'type' attribute.
2603 ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2604 "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2605 "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2606 "*sync_compare_and_swap_ccsi"): New patterns.
2607 * config/s390/2064.md: ("z_sem"): New insn_reservation.
2608 * config/s390/2084.md: ("x_sem"): New insn_reservation.
2609 * config/s390/s390.c: (s390_compare_emitted): New global variable.
2610 (s390_emit_compare): Do not emit comparison again after cas.
2611 * config/s390/s390.h (s390_compare_emitted): Declare.
2613 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
2615 * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2616 sbitmap_iter_cond, sbitmap_iter_next): New.
2617 * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2618 modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2619 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2620 uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2622 2005-06-07 Zdenek Dvorak <dvorakz@suse.cz>
2624 * tree-ssa-address.c: New file.
2625 * Makefile.in (tree-ssa-address.o): Add.
2626 * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2627 INDIRECT_REFs. Handle TARGET_MEM_REFs.
2628 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2629 * tree-flow.h (struct mem_address): New.
2630 (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2631 (create_mem_ref, addr_for_mem_ref, get_address_description,
2632 maybe_fold_tmr, multiplier_allowed_in_address_p,
2633 multiply_by_cost): Declare.
2634 * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2635 * tree-pretty-print.c (dump_generic_node): Ditto.
2636 * tree-ssa-loop-im.c (for_each_index): Ditto.
2637 * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2638 find_interesting_uses_address): Ditto.
2639 (rewrite_address_base, build_addr_strip_iref): Removed.
2640 (struct affine_tree_combination): Moved to tree-flow.h.
2641 (get_ref_tag, copy_ref_info): New functions.
2642 (rewrite_use_address): Produce TARGET_MEM_REFs.
2643 (tree_ssa_iv_optimize): Do not call update_ssa
2644 and rewrite_into_loop_closed_ssa.
2645 (tree_to_aff_combination): Use build_fold_addr_expr instead of
2646 build_addr_strip_iref.
2647 (unshare_aff_combination): New function.
2648 (fold_affine_sum): Removed.
2649 (get_computation_at): Use get_computation_aff. Unshare the result.
2650 (get_computation_aff, multiplier_allowed_in_address_p): New function.
2651 (multiply_by_cost): Exported.
2652 (get_address_cost): Use multiplier_allowed_in_address_p.
2653 * tree-ssa-operands.c (get_tmr_operands): New function.
2654 (get_expr_operands): Handle TARGET_MEM_REFs.
2655 * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2656 (build): Handle 7 arguments.
2657 (build7_stat): New function.
2658 * tree.def (TARGET_MEM_DEF): New.
2659 * tree.h (REF_ORIGINAL): Removed.
2660 (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2661 TMR_TAG, build7): New macros.
2662 (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2663 * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2664 * doc/c-tree.texi: Document TARGET_MEM_REF.
2665 * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2667 2005-06-07 Jakub Jelinek <jakub@redhat.com>
2670 * dwarf2out.c (add_loc_descr_op_piece): New function.
2671 (multiple_reg_loc_descriptor, concat_loc_descriptor,
2672 loc_descriptor): Use it.
2673 * var-tracking.c: Include regs.h and expr.h.
2674 (emit_note_insn_var_location): Skip over pieces where offset
2675 is smaller than previous offset plus previous piece mode size.
2676 Optimize adjacent hard registers or memory locations.
2677 * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2679 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
2681 * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2683 * gimplify.c (gimplify_cond_expr): No need to fix up the
2686 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
2688 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2691 2005-06-07 Geoffrey Keating <geoffk@apple.com>
2693 * config/rs6000/host-darwin.c (segv_handler): Widen the possible
2694 'stwux' instructions that are considered to be stack decrements.
2696 * rtlanal.c (subreg_offset_representable_p): Handle objects
2699 2005-06-06 Uros Bizjak <uros@kss-loka.si>
2701 * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2702 in call to pre_edge_lcm.
2704 2005-06-06 Kaz Kojima <kkojima@gcc.gnu.org>
2706 * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2707 (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2708 (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2710 (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2711 dwarf register number for SHmedia.
2712 (shmedia_fallback_frame_state): New.
2713 (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2715 * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2717 2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net>
2719 * c-lex.c (lex_string): Use XOBFINISH.
2720 * collect2.c (extract_string, dump_file): Likewise.
2721 * dbxout.c (dbxout_finish_complex_stabs): Likewise.
2722 * gcc.c (init_spec, build_search_list, convert_filename,
2723 set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2724 * genpreds.c (write_predicate_subfunction): Likewise.
2725 * genflags.c (main): Likewise.
2726 * read-rtl.c (mode_attr_index, apply_macro_to_string,
2727 join_c_conditions, read_quoted_string, read_braced_string,
2728 read_rtx_1): Likewise.
2729 * stringpool.c (ggc_alloc_string): Likewise.
2730 * tlink.c (obstack_fgets, recompile_files): Likewise.
2732 2005-06-06 Jakub Jelinek <jakub@redhat.com>
2734 * intl.h (G_): New macro.
2735 * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2736 instead of msgid for argument name.
2737 * tree-ssa.c (warn_uninit): Likewise.
2738 * c-parser.c (c_parser_error): Likewise.
2739 * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2740 * config/darwin-c.c (BAD): Likewise.
2741 * config/c4x/c4x-c.c (BAD): Likewise.
2742 * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2743 * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2744 * c-common.c (c_parse_error): Likewise.
2745 * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2746 warning0, pedwarn, error, sorry, fatal_error, internal_error):
2748 (fnotice): Use cmsgid instead of msgid for argument name.
2749 * gcov.c (fnotice): Likewise.
2750 * protoize.c (notice): Likewise.
2751 * final.c (output_operand_lossage): Likewise.
2752 * gcc.c (fatal, notice): Likewise.
2753 (error): Use gmsgid instead of msgid for argument name.
2754 * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2755 of msgid for argument name.
2756 (error): Use gmsgid instead of msgid for argument name.
2757 * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2759 * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2760 * tree-inline.c (inline_forbidden_p_1): Likewise.
2761 * ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
2762 conventions for marking translations.
2763 * doc/install.texi: Mention gettext 0.14.5 or later requirement.
2765 * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2768 * fold-const.c (operand_equal_p): Don't return 1, if element
2769 chains for 2 VECTOR_CSTs are not the same length.
2772 * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
2773 not all VECTOR_CST elements are given.
2775 * combine.c (try_combine): Use hard_regno_nregs array instead of
2776 HARD_REGNO_NREGS macro.
2777 * config/rs6000/rs6000.c (rs6000_split_multireg_move,
2778 rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
2779 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2781 2005-06-06 Daniel Berlin <dberlin@dberlin.org>
2783 * tree-ssa-reassoc.o: New.
2784 (OBJS-common): Add tree-ssa-reassoc.o
2785 * timevar.def: Add TV_TREE_REASSOC
2786 * tree-optimize.c (pass_reassoc): Add call.
2787 * tree-pass.h (pass_reassoc): Add.
2788 * tree-ssa-reassoc.c: New file.
2790 2005-06-06 Eric Christopher <echristo@redhat.com>
2793 * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2795 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2797 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2798 HAVE_GAS_MAX_SKIP_P2ALIGN.
2799 (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2801 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2803 * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
2804 getopt.h dependency.
2805 (mips-tdump.o): Likewise.
2807 2005-06-06 Jan Hubicka <jh@suse.cz>
2809 * predict.c (tree_predict_edge): Don't drop useless predictions;
2810 check that it is not called too late in the game.
2811 (gate_estimate_probability): New gate.
2812 (pass_profile): Gate.
2813 * tree-mudflap.c (mf_build_check_statement_for): Do not drop
2814 predictions; update CFG instead.
2815 * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2817 2005-06-06 Jie Zhang <jie.zhang@analog.com>
2819 * config.gcc (bfin*-uclinux*): New.
2820 * config/bfin/uclinux.h: New file.
2822 2005-06-06 Ben Elliston <bje@au.ibm.com>
2824 * doc/md.texi (Insn Splitting): Fix some wording.
2826 2005-06-05 David Edelsohn <edelsohn@gnu.org>
2828 * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
2829 (rs6000_emit_swdivdf): New function.
2830 * config/rs6000/rs6000.md (fres): New pattern.
2831 (divsf3): Add approximation through rs6000_emit_swdivsf.
2832 (fred): New pattern.
2833 (divdf3): Add approximation through rs6000_emit_swdivdf.
2834 * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
2835 (rs6000_emit_swdivdf): Declare.
2836 * config/rs6000/rs6000.opt (mswdiv): New option.
2837 * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2839 2005-06-05 Zdenek Dvorak <dvorakz@suse.cz>
2841 PR tree-optimization/21846
2842 * tree-cfg.c (replace_uses_by): Update information stored at loops.
2843 * tree-flow.h (substitute_in_loop_info): Declare.
2844 * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
2845 Ensure that chrec_dont_know and chrec_known have a type.
2846 * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2848 2005-06-05 Steven Bosscher <stevenb@suse.de>
2850 * config/i386/i386.c (x86_use_loop): Remove.
2851 * config/i386/i386.h (x86_use_loop): Remove extern decl.
2852 (TARGET_USE_LOOP): Remove.
2853 * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
2854 Also remove related define_splits.
2856 2005-06-05 Dorit Nuzman <dorit@il.ibm.com>
2858 * tree-flow.h (stmt_ann_d): Move aux to ...
2859 (tree_ann_common_d): ... here.
2860 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2861 move_computations_stmt, schedule_sm): Update references to
2863 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2864 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2865 call to set_stmt_info.
2866 (vect_transform_loop): Likewise.
2867 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
2870 * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
2872 (vect_mark_relevant): Takes two additional arguments - live_p and
2873 relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
2874 (vect_stmt_relevant_p): Differentiate between a live stmt and a
2875 relevant stmt. Return two values = live_p and relevant_p.
2876 (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
2877 vect_stmt_relevant_p with additional arguments. Phis are no longer
2878 put into the worklist (analyzed seperately in analyze_scalar_cycles).
2879 (vect_determine_vectorization_factor): Also check for LIVE_P, because a
2880 stmt that is marked as irrelevant and live, cause it's only used out
2881 side the loop, may need to be vectorized (e.g. reduction).
2882 (vect_analyze_operations): Examine phis. Call
2883 vectorizable_live_operation for for LIVE_P stmts. Check if
2885 (vect_analyze_scalar_cycles): Update documentation. Don't fail
2886 vectorization - just classify the scalar cycles created by the loop
2887 phis. Call vect_is_simple_reduction.
2888 (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
2889 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2890 call to set_stmt_info.
2891 (vect_get_vec_def_for_operand): Code reorganized - the code that
2892 classifies the type of use was factored out to vect_is_simple_use.
2893 (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
2894 additional arguments.
2895 (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
2896 and computes a loop_vec_def.
2897 (vectorizable_operation, vectorizable_load, vectorizable_condition):
2899 (vectorizable_live_operation): New.
2900 (vect_transform_stmt): Handle LIVE_P stmts.
2901 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
2902 STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
2903 (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
2904 (vect_is_simple_use): Determine the type of the def and return it
2905 in a new function argument. Consider vect_reduction_def and
2906 vect_induction_def, but for now these are not supported.
2907 (vect_is_simple_reduction): New. Empty for now.
2908 * tree-vectorizer.h (vect_def_type): New enum type.
2909 (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
2910 (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
2911 (vect_is_simple_use): New arguments added to function declaration.
2912 (vect_is_simple_reduction): New function declaration.
2913 (vectorizable_live_operation): New function declaration.
2915 * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
2916 (vect_can_advance_ivs_p): Likewise.
2917 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2919 2005-06-05 Eric Christopher <echristo@redhat.com>
2921 * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2923 2005-06-05 Hans-Peter Nilsson <hp@bitrange.com>
2926 * config/mmix/mmix.md ("*movdicc_real_foldable")
2927 ("*movdfcc_real_foldable", "*bCC_foldable")
2928 ("*bCC_inverted_foldable"): Specify DImode for register being
2931 2005-06-04 Roger Sayle <roger@eyesopen.com>
2933 * reg-stack.c (struct block_info_def): Correct grammar typo.
2934 (compensate_edge): Clean-up. Perform as little work as possible
2935 when src and dest stacks match. Avoid modifying block_info.
2936 Reorder and simplify assertion checks. Avoid unnecessary copying
2937 of regstack structure.
2938 (convert_regs_1): Set the done flag here...
2939 (convert_regs_2): ... instead of here.
2941 2005-06-04 Dale Johannesen <dalej@apple.com>
2943 * config/rs6000/rs6000.c (no_global_regs_above): New.
2944 (rs6000_emit_prologue): Use it; cosmetic formatting fixes.
2945 (rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
2946 (rs6000_conditional_register_usage): Don't put Darwin PIC
2947 register in global_regs.
2948 (rs6000_stack_info): Don't set lr_save_p just because Darwin
2950 (rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
2951 if not done by lr_save_p.
2952 * config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
2953 Use rotate instead of ashift.
2954 (call_indirect_nonlocal_sysv): Prefer CTR to LR.
2955 (call_value_indirect_nonlocal_sysv): Ditto.
2957 2005-06-04 Jan Hubicka <jh@suse.cz>
2959 * cgraphunit.c (cgraph_reset_node): Break out from ...
2960 (cgraph_finalize_function): ... here.
2961 (cgraph_finalize_compilation_unit): Reset nodes where backend
2964 2005-06-04 Richard Henderson <rth@redhat.com>
2967 * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2968 until we've passed initial ldgp.
2970 2005-06-04 Daniel Berlin <dberlin@dberlin.org>
2972 * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2973 * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
2974 * expr.c (expand_var): Ditto.
2975 * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
2976 * gimplify.c (gimplify_decl_expr): Ditto.
2977 (gimplify_expr): Ditto.
2978 * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
2979 * tree.c (value_expr_for_decl): New.
2980 (print_value_expr_statistics): New.
2981 (init_ttree): Init value_expr_for_decl.
2982 (decl_value_expr_lookup): New.
2983 (decl_value_expr_insert): Ditto.
2984 (copy_node_stat): Copy DECL_VALUE_EXPR status.
2985 * tree.h (DECL_VALUE_EXPR): Use hashtable.
2986 (SET_DECL_VALUE_EXPR): New.
2987 (DECL_HAS_VALUE_EXPR_P): New.
2989 2005-06-04 Steven Bosscher <stevenb@suse.de>
2991 * lcm.c: Move all mode-switching related functions from here...
2992 * mode-switching.c: ...to this new file.
2993 * doc/passes.texi: Update accordingly.
2995 * basic-block.h (label_value_list): Remove extern decl.
2996 * cfgrtl.c (label_value_list): Remove.
2997 (can_delete_label_p): Don't look at it.
2998 * cfgcleanup.c (cleanup_cfg): Don't free it.
3000 * common.opt: Don't refer to non-existing flag_alias_check.
3002 2005-06-04 David Edelsohn <edelsohn@gnu.org>
3004 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
3006 2005-06-04 Kazu Hirata <kazu@codesourcery.com>
3008 * function.c (prologue, epilogue, sibcall_epilogue): Change
3009 their types to VEC(int,heap)*.
3010 (free_after_compilation): Free the three vectors above.
3011 (init_function_for_compilation, record_insns, contains,
3012 prologue_epilogue_contains, sibcall_epilogue_contains,
3013 reposition_prologue_and_epilogue_notes): Use VEC instead of
3014 VARRAY. (init_function_once): Remove.
3015 * function.h: Remove the prototype for init_function_once.
3016 * toplev.c (backend_init): Don't call init_function_once.
3018 2005-06-04 Jan Hubicka <jh@suse.cz>
3020 * predict.c (tree_predict_edge): Do not predict entry edge and
3021 single succestor edge.
3023 2005-06-04 Joseph S. Myers <joseph@codesourcery.com>
3026 * c-typeck.c (push_init_level): Don't pop levels without braces if
3029 2005-06-03 Sebastian Pop <pop@cri.ensmp.fr>
3031 * tree-data-ref.c (compute_self_dependence): New function.
3032 (compute_all_dependences): Use it.
3034 2005-06-03 Geoffrey Keating <geoffk@apple.com>
3036 * c-parser.c (c_parser_parms_declarator): Don't use chainon().
3037 (c_parser_expr_list): Don't use chainon().
3039 * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
3040 when -isysroot passed.
3042 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
3045 * c-decl.c (start_function): Restore label_context_stack_se and
3046 label_context_stack_vm if returning with an error.
3048 2005-06-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
3050 * configure.ac: Check declaration for asprintf, needed by
3052 * configure: Regenerate.
3053 * config.in: Likewise.
3055 2005-06-03 Diego Novillo <dnovillo@redhat.com>
3057 * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
3058 allocate info array.
3059 * tree-vrp.c (extract_range_from_unary_expr): Set resulting
3060 range to varying in cast expressions that change
3063 2005-06-03 Eric Christopher <echristo@redhat.com>
3065 * config/mips/mips.opt: Add RejectNegative to divide-breaks and
3068 2005-06-03 Jan Hubicka <jh@suse.cz>
3070 * basic-block.h (remove_predictions_associated_with_edge): Declare.
3071 * cfg.c (remove_edge): Use it.
3072 * predict.c (remove_predictions_associated_with_edge): New function.
3074 2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
3076 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3077 Clear call_realy_used_regs[r2] when ABI_AIX.
3079 2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
3082 * fold-const.c (fold_binary): Fix type mismatches in folding
3085 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
3087 * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
3090 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
3092 * collect2.c (maybe_unlink): Use unlink_if_ordinary.
3094 2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
3096 * reload1.c (reload): Revert my previous patch.
3098 2005-06-03 Nick Clifton <nickc@redhat.com>
3100 * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
3103 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
3105 PR tree-optimization/21849
3106 * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
3108 2005-06-02 Richard Henderson <rth@redhat.com>
3110 * Makefile.in (tree-vect-generic.o): New.
3111 (OBJS-common, GTFILES, s-gtype): Add it.
3112 * tree-complex.c (build_replicated_const, vector_inner_type,
3113 vector_last_type, vector_last_nunits, build_word_mode_vector_type,
3114 elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
3115 do_negate, expand_vector_piecewise, expand_vector_parallel,
3116 expand_vector_addition, expand_vector_operation,
3117 type_for_widest_vector_mode, expand_vector_operations_1,
3118 gate_expand_vector_operations, expand_vector_operations,
3119 pass_lower_vector_ssa): Move to tree-vect-generic.c.
3120 (tree_lower_complex): Rename from tree_lower_operations.
3121 (pass_lower_complex): Rename from pass_pre_expand.
3122 * tree-vect-generic.c: New file.
3123 * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
3124 (pass_lower_vector): New.
3125 * tree-optimize.c (init_tree_optimization_passes): Update to match.
3127 2005-06-02 Richard Henderson <rth@redhat.com>
3129 * modulo-sched.c (doloop_register_get): Protect against
3130 doloop_end not defined.
3132 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
3134 * config/sh/sh.c (general_movsrc_operand,
3135 general_movdst_operand, arith_reg_operand, arith_reg_dest,
3136 logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
3137 fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
3138 xor_operand, cmp_operand, logical_operand, and_operand,
3139 fpscr_operand, fpul_operand, symbol_ref_operand,
3140 commutative_float_operator, noncommutative_float_operator,
3141 unary_float_operator, binary_float_operator,
3142 binary_logical_operator, equality_comparison_operator,
3143 greater_comparison_operator, less_comparison_operator,
3144 shift_operator, logical_operator, target_reg_operand,
3145 target_operand, mextr_bit_offset, extend_reg_operand,
3146 trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
3147 general_extend_operand, ua_address_operand,
3148 cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
3149 sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
3150 shift_count_reg_operand, shift_count_operand,
3151 unaligned_load_operand): Move to ...
3152 * config/sh/predicates.md: ... here.
3153 * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3156 2005-06-02 Andrew Pinski <pinskia@physics.uc.edu>
3158 * tree.c (build_common_builtin_nodes): Fix the return type on
3161 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
3163 * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
3164 (find_interesting_uses_address): Use build_fold_addr_expr instead.
3165 (strip_offset_1): Likewise.
3166 (tree_to_aff_combination): Likewise.
3168 2005-06-02 DJ Delorie <dj@redhat.com>
3170 * convert.c (convert_to_pointer): Avoid recursion if no conversion
3173 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
3175 * tree-chrec.c (chrec_fold_plus_1): Ensure we build
3176 binary operations with the correct types.
3177 * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
3178 for all computation.
3180 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
3182 * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
3183 config/rs6000/rs6000.md: Fix comment typos. Follow splling
3185 * doc/install.texi: Fix a typo.
3187 2005-06-02 Jan Hubicka <jh@suse.cz>
3189 * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
3190 inline functions are not local.
3192 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
3194 * gimplify.c (gimplify_ctx): Change the type of case_labels to
3196 (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
3199 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
3201 * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
3204 2005-06-02 Ulrich Weigand <uweigand@de.ibm.com>
3206 * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
3208 (s390_dump_pool): Likewise.
3209 (s390_mainpool_start, s390_mainpool_finish): Likewise.
3210 (s390_chunkify_start): Likewise.
3211 (s390_dump_execute): Remove.
3212 (s390_reorg): Handle out-of-pool execute templates.
3214 2005-06-02 Adrian Straetling <straetling@de.ibm.com>
3216 * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
3219 2005-06-02 Jan Hubicka <jh@suse.cz>
3221 * cgraph.c (cgraph_node): Maintain master clones.
3222 (cgraph_remove_node): Likewise.
3223 (availability_names): New static variable.
3224 (dump_cgraph_node): Dump availability.
3225 (dump_cgraph_varpool_node): Likewise.
3226 (cgraph_is_master_clone, cgraph_master_clone,
3227 cgraph_function_body_availability,
3228 cgraph_variable_initializer_availability): New functions.
3229 * cgraph.h (availability): New enum.
3230 (struct cgraph_node): Add master_clone.
3231 (cgraph_is_master_clone, cgraph_master_clone,
3232 cgraph_function_body_availability,
3233 cgraph_variable_initializer_availability): Declare.
3234 * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
3235 (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
3236 * ipa-inline.c (cgraph_decide_inlining): Do not call
3237 cgraph_remove_unreachable_nodes.
3239 * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
3242 2005-06-02 Diego Novillo <dnovillo@redhat.com>
3245 * tree-vrp.c (nonnull_arg_p): New.
3246 (get_value_range): Call it.
3248 2005-06-02 Eric Christopher <echristo@redhat.com>
3250 * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
3252 (mips_rtx_cost_data): New datatype.
3253 (MEMORY_MOVE_COST): Use data from structure.
3254 (BRANCH_COST): Ditto.
3255 (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
3256 * config/mips/mips.md (cpu): Rework for processor_type changes.
3257 * config/mips/mips.c (mips_cost): New variable.
3258 (DEFAULT_COSTS): Define.
3259 (mips_rtx_cost_data): New.
3260 (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
3261 for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
3262 FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
3263 (override_options): Set cost data.
3264 (mips_register_move_cost): Formatting changes.
3265 (bdesc_arrays): Use PROCESSOR_MAX.
3266 (mips_init_builtins): Ditto.
3268 2005-06-02 Diego Novillo <dnovillo@redhat.com>
3271 * doc/invoke.texi: Document -ftree-vrp.
3273 2005-06-02 Dorit Nuzman <dorit@il.ibm.com>
3275 PR tree-optimization/21734
3276 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
3277 phi_result when current_def is not available.
3278 (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
3281 2005-06-02 David Edelsohn <edelsohn@gnu.org>
3283 * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
3284 (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
3286 2005-06-02 Diego Novillo <dnovillo@redhat.com>
3288 * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
3290 2005-06-02 Jan Hubicka <jh@suse.cz>
3292 * cgraph.c (dump_cgraph_node): Print new flags.
3293 (dump_cgraph_varpool_node): Likewise.
3294 (decide_variable_is_needed): Initialize externally_visible flag.
3295 * cgraph.h (cgraph_local_info): Add externally_visible flag.
3296 (cgraph_varpool_node): Likewise.
3297 (cgraph_function_flags_ready): Declare.
3298 * cgraph.c (cgraph_mark_local_functions): Rename to ...
3299 (cgraph_function_and_variable_visibility) ... this one; handle
3300 externally_visible flags.
3301 (decide_is_function_needed): Set externally_visible flag.
3302 (cgraph_finalize_function): Deal properly with early cleanups.
3303 (cgraph_optimize): Update call of
3304 cgraph_function_and_variable_visibility.
3306 2005-06-02 Steven Bosscher <stevenb@suse.de>
3307 Mostafa Hagog <mustafa@il.ibm.com>
3309 * cfgloop.h (doloop_condition_get): Make external.
3310 * loop-doloop.c (doloop_condition_get): Generalize to make it
3311 usable in modulo-sched.c.
3312 * modulo-sched.c (doloop_register_get): Use
3313 doloop_condition_get instead of duplicating it.
3315 2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
3317 * reload1.c (reload): Undo 2005-04-20 change. Make sure we detect
3318 the correct set of init_insns that need deletion.
3319 * local-alloc.c (update_equiv_regs): When substituting sole definition
3320 into sole use of a reg, delete it from liveness information.
3322 2005-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
3324 * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
3326 2005-06-01 Diego Novillo <dnovillo@redhat.com>
3328 PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
3329 PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
3330 * fold-const.c (invert_tree_comparison): Make extern.
3331 * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
3332 (struct value_range_def): Limewise.
3333 (get_value_range): Remove.
3334 (dump_value_range): Remove.
3335 (dump_all_value_ranges): Remove.
3336 (debug_all_value_ranges): Remove.
3337 (vrp_evaluate_conditional): Declare.
3338 * tree-ssa-propagate.c (struct prop_stats_d): Add field
3340 (substitute_and_fold): Add argument use_ranges_p.
3342 If use_ranges_p is true, call fold_predicate_in to fold
3343 predicates using range information.
3344 Ignore ASSERT_EXPRs.
3345 Change debugging output to only show statements that have been
3347 (replace_phi_args_in): Move debugging output code from
3348 substitute and fold.
3349 (fold_predicate_in): New local function.
3350 * tree-ssa-propagate.h (enum value_range_type): Move from
3352 (struct value_range_d): Likewise.
3354 (value_range_t): Rename from value_range.
3355 * tree-vrp.c (found_in_subgraph): Rename from found.
3356 (get_opposite_operand): Remove.
3357 (struct assert_locus_d): Declare.
3358 (assert_locus_t): Declare.
3359 (need_assert_for): Declare.
3360 (asserts_for): Declare.
3361 (blocks_visited): Declare.
3362 (vr_value): Declare.
3363 (set_value_range): Add argument 'equiv'.
3364 Don't drop to VARYING ranges that cover all values in the
3366 Make deep copy of equivalence set 'equiv'.
3367 (copy_value_range): New local function.
3368 (set_value_range_to_undefined): New local function.
3369 (compare_values): Return -2 if either value has overflowed.
3370 (range_includes_zero_p): New local function.
3371 (extract_range_from_assert): Flip the predicate code if the
3372 name being asserted is on the RHS of the predicate.
3373 Avoid creating unnecessary symbolic ranges if the comparison
3374 includes another name with a known numeric range.
3375 Update the equivalnce set of the new range when asserting
3377 (extract_range_from_ssa_name): Update the equivalence set of
3378 the new range with VAR.
3379 (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
3380 If -fwrapv is used, set the resulting range to VARYING if the
3381 operation overflows. Otherwise, use TYPE_MIN_VALUE and
3382 TYPE_MAX_VALUE to represent -INF and +INF.
3383 Fix handling of *_DIV_EXPR.
3384 (extract_range_from_unary_expr): Handle MINUS_EXPR and
3385 ABS_EXPR properly by switching the range around if necessary.
3386 (extract_range_from_comparison): New local function.
3387 (extract_range_from_expr): Call it.
3388 (adjust_range_with_scev): Do not adjust the range if using
3389 wrapping arithmetic (-fwrapv).
3390 (dump_value_range): Also show equivalence set.
3391 Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
3392 (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
3393 (infer_value_range): Change return value to bool.
3394 Add arguments 'comp_code_p' and 'val_p'.
3395 Do not attempt to infer ranges from statements that may throw.
3396 Store the comparison code in comp_code_p.
3397 Store the other operand to be used in the predicate in val_p.
3398 (dump_asserts_for): New.
3399 (debug_asserts_for): New.
3400 (dump_all_asserts): New.
3401 (debug_all_asserts): New.
3402 (register_new_assert_for): New.
3403 (register_edge_assert_for): New.
3404 (find_conditional_asserts): New.
3405 (find_assert_locations): New.
3406 (process_assert_insertions_for): New.
3407 (process_assert_insertions): New.
3408 (insert_range_assertions): Initialize found_in_subgraph,
3409 blocks_visited, need_assert_for and asserts_for.
3410 Call find_assert_locations and process_assert_insertions.
3411 (remove_range_assertions): Add more documentation.
3412 (vrp_initialize): Change return type to void.
3413 Do not try to guess if running VRP is worth it.
3414 (compare_name_with_value): New.
3415 (compare_names): New.
3416 (vrp_evaluate_conditional): Add argument 'use_equiv_p'. If
3417 use_equiv_p is true, call compare_names and
3418 compare_name_with_value to compare all the ranges for every
3419 name in the equivalence set of the predicate operands.
3421 (vrp_meet): Try harder not to derive a VARYING range.
3422 If two values meet, the resulting equivalence set is the
3423 intersection of the two equivalence sets.
3424 (vrp_visit_phi_node): Call copy_value_range to get the current
3425 range information of the LHS.
3426 (vrp_finalize): Create a value vector representing all the
3427 names that ended up with exactly one value in their range.
3428 Call substitute_and_fold.
3429 (execute_vrp): Document equivalence sets in ranges.
3430 * tree.h (SSA_NAME_VALUE_RANGE): Remove.
3431 (struct tree_ssa_name): Remove field value_range.
3432 (invert_tree_comparison): Declare.
3434 2005-06-01 Daniel Berlin <dberlin@dberlin.org>
3436 Fix PR tree-optimization/21839
3438 * gimplify.c (zero_sized_field_decl): New function.
3439 (gimplify_init_ctor_eval): Use it.
3441 2005-06-01 Josh Conner <jconner@apple.com>
3444 * gimplify.c (gimplify_init_constructor): Don't spill initializer
3445 to read-only memory if it's sparse.
3447 2005-06-01 Ramana Radhakrishnan <ramana@codito.com>
3449 * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP.
3450 Add documentation for REG_SETJMP
3452 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
3454 * stmt.c (expand_case): Use build_int_cst.
3455 (node_has_low_bound): Likewise, and correct type mismatch.
3456 (node_has_high_bound): Likewise.
3457 * fold-const.c (fold_binary): Ensure we build trees
3458 with the correct types - undo what STRIP_NOPS possibly did.
3460 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
3462 * tree.h (fold_indirect_ref_1): Export from fold-const.c.
3463 * fold-const.c (fold_indirect_ref_1): No longer static.
3464 * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
3465 folding, if possible.
3467 2005-06-01 Joseph S. Myers <joseph@codesourcery.com>
3469 * common.opt (fjump-tables): New.
3470 * doc/invoke.texi (-fno-jump-tables): Document.
3471 * stmt.c (expand_end_case_type): Do not emit jump tables unless
3474 2005-06-01 Richard Earnshaw <richard.earnshaw@arm.com>
3476 * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
3477 (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
3478 (sunlt, sunle): Enable patterns on VFP.
3480 * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
3481 f_stored, f_flag, f_cvt.
3482 (generic_sched): No-longer used for the arm1020e and arm1022e cores.
3483 Include arm1020e.md.
3484 * vfp.md (fmstat): New cpu unit. Add an exclusion set between it and
3485 the ds and fmac pipelines. Re-work all load and store patterns and
3486 all conversion patterns to use new attributes. Adjust reservation
3487 descriptions accordingly.
3488 * arm1020e.md: New file.
3489 * t-arm: Add dependency.
3491 2005-06-01 Jan Hubicka <jh@suse.cz>
3493 * except.c (struct eh_region): Kill unused fields.
3494 * basic-block.h (struct basic_block_def): Likewise.
3496 2005-06-01 J"orn Rennecke <joern.rennecke@st.com>
3498 PR rtl-optimization/21767
3499 * rtl.h (function_invariant_p): Re-add declaration.
3500 * reload1.c (function_invariant_p): No longer static.
3501 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
3502 might have become invalid.
3504 2005-06-01 Jakub Jelinek <jakub@redhat.com>
3508 * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
3509 on variable sizes types if a decl is a pointer to a VLA.
3510 (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
3511 Call gimplify_type_sizes on aggregate fields. Prevent infinite
3514 * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
3516 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
3517 _mm_set_ps, _mm_setr_ps): Add __extension__.
3518 * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
3519 _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
3520 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
3522 (_mm_clflush): Don't use return in void function.
3524 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
3525 _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
3526 Use __inline instead of inline.
3528 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
3530 * fold-const.c (fold_binary): Fix types in strlen vs.
3531 zero comparison folding.
3533 2005-06-01 Richard Henderson <rth@redhat.com>
3535 * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
3536 * config.in, configure: Rebuild.
3537 * config/alpha/alpha.c (print_operand): Add 'j'.
3538 * alpha.md (divmodsi_internal_er_1): Use it.
3539 (divmoddi_internal_er_1): Likewise.
3541 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3543 * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
3544 * opts.h (print_filtered_help): Delete.
3545 * opts.c (handle_option, decode_options): Remove calls to
3547 (print_target_help): New function.
3548 (common_option, print_help): Call print_target_help instead of
3549 display_target_options.
3550 (print_filtered_help): Make static.
3551 * toplev.h (display_target_options, set_target_switch): Delete.
3552 * toplev.c (target_switches, target_options, display_target_options)
3553 (set_target_switch): Delete.
3554 (print_switch_values): Remove handling of TARGET_SWITCHES and
3556 (default_get_pch_validity): Likewise. Only treat target_flags
3557 specially if targetm.check_pch_target_flags is nonnull.
3558 (pch_option_mismatch): New function.
3559 (default_pch_valid_p): Use it. Remove handling of TARGET_SWITCHES
3560 and TARGET_OPTIONS. Only treat target_flags specially if
3561 targetm.check_pch_target_flags is nonnull.
3562 * config/ia64/ia64.c (ia64_override_options): Don't mention
3563 TARGET_OPTIONS in comment.
3564 * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
3565 * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
3566 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
3567 interaction with TARGET_SWITCHES.
3568 (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3570 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3572 * config/sh/sh.c (multcosts): Check sh_multcost rather than
3574 (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
3575 (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
3576 (cut2_workaround_str): Delete.
3577 * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
3578 (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
3579 (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
3580 * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
3581 (mgettrcost=, multcost=): New options.
3583 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3585 * opts.h (cl_option_state): New structure.
3586 (get_option_state): Declare.
3587 * opts.c (get_option_state): New function.
3588 * toplev.c (option_affects_pch_p): New function.
3589 (default_get_pch_validity): Store the state of all options for which
3590 option_affects_pch_p returns true.
3591 (default_pch_valid_p): Check the state of those options here.
3592 Only check target_flags separately if targetm.check_pch_target_Flags
3593 is nonnull or if TARGET_SWITCHES is defined.
3595 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
3597 * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
3600 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3602 * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
3604 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3606 * gcse.c (compute_transp, load_killed_in_block): Use
3609 2005-06-01 David.Billinghurst <David.Billinghurst@riotinto.com>
3612 * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
3614 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3616 * errors.h (warning, error, fatal, internal_error): Add printf
3618 * genmodes.c (make_vector_mode): Fix format arguments.
3620 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3622 * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
3623 config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
3624 lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
3625 tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
3626 tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
3627 tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
3628 tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
3629 tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3630 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
3631 tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
3632 tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
3633 tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
3634 tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
3635 errors.h and include toplev.h if necessary.
3637 * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
3638 errors.h otherwise include toplev.h.
3640 * Makefile.in: Update dependencies.
3642 2005-06-01 Danny Smith <dannysmith@users.sourceforge.net>
3644 * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
3646 2005-05-31 Geoffrey Keating <geoffk@geoffk.org>
3648 * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
3649 * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
3650 be complemented for big-endian. Mask for AND must be rotated,
3651 not shifted. Handle short operands with NOT on the memory
3654 2005-05-30 Daniel Berlin <dberlin@dberlin.org>
3656 * c-objc-common.c (c_tree_printer): Check flag before hashtable.
3657 Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
3658 * dwarf2out.c (dwarf2out_var_location): Ditto.
3659 * toplev.c (default_tree_printer): Ditto.
3660 * tree-outof-ssa.c (create_temp): Ditto.
3661 * tree-sra.c (instantiate_element): Ditto.
3662 * var-tracking.c (track_expr_p): Ditto.
3663 * tree.c (struct tree_map): New structure.
3664 (debug_expr_for_decl): New.
3665 (tree_map_eq): New function.
3666 (tree_map_hash): Ditto.
3667 (tree_map_marked_p): Ditto.
3668 (print_debug_expr_statistics): Ditto.
3669 (decl_debug_expr_lookup): Ditto.
3670 (decl_debug_expr_insert): Ditto.
3671 (dump_tree_statistics): Dump debug_expr hashtable stats.
3672 * tree.h (DECL_DEBUG_EXPR): Change
3673 (SET_DECL_DEBUG_EXPR): Add.
3675 2005-06-01 Alan Modra <amodra@bigpond.net.au>
3677 * configure.ac: Add --enable-secureplt.
3678 (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
3679 * config.in: Regenerate.
3680 * configure: Regenerate.
3681 * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
3682 rs6000/secureplt.h to tm_file when enable_secureplt.
3683 * doc/invoke.texi (msecure-plt, mbss-plt): Document.
3684 * doc/install.texi: Document --enable-targets and --enable-secureplt.
3685 Correct xrefs to "Using the GNU Compiler Collection (GCC)".
3686 * config/rs6000/secureplt.h: New file.
3687 * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
3688 (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
3690 (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
3691 (CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
3692 (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
3693 * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
3694 * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
3695 * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
3696 TARGET_SECURE_PLT got register load sequence.
3697 (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
3699 (rs6000_elf_declare_function_name): Don't emit toc address offset
3700 word when TARGET_SECURE_PLT.
3701 * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
3702 (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
3703 (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
3704 (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
3706 (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
3707 sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
3709 * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
3710 (__trampoline_setup): Likewise. Init r30 before plt call.
3712 2005-05-31 DJ Delorie <dj@redhat.com>
3714 * expr.c (convert_move): When a partial_int requires multiple
3715 conversion steps, make sure successive steps convert the
3716 intermediate value, not the original value.
3718 * expmed.c (expand_mult): Convert partial_int multiplies to
3719 shift/add combinations too.
3721 * genmodes.c (mode_data): Add wider_2x.
3722 (calc_wider_mode): Calculate twice-wider mode too.
3723 (emit_mode_wider): Emit twice-wider mode too.
3724 * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
3725 * expr.c (expand_expr_real_1): Use it for expanding
3728 2005-05-31 Zdenek Dvorak <dvorakz@suse.cz>
3730 PR tree-optimization/21817
3731 * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
3733 2005-05-31 Pat Haugen <pthaugen@us.ibm.com>
3735 * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
3738 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
3742 * fold-const.c (fold_checksum_tree): Copy types also if
3743 TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
3744 Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
3746 Tail recurse TREE_LIST's TREE_CHAIN.
3748 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
3751 * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
3752 SSA_NAME twice and cause the loop to become finite. Remove the test
3755 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
3757 * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
3760 2005-05-31 Richard Sandiford <rsandifo@redhat.com>
3762 * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
3763 the documentation to make it more future-proof.
3764 (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
3765 * target.h (gcc_target): Add check_pch_target_flags.
3766 * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
3767 (TARGET_INITIALIZER): Include it.
3768 * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
3769 * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
3770 * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
3771 (sh_check_pch_target_flags): New function.
3772 (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
3774 2005-05-31 Richard Guenther <rguenth@gcc.gnu.org>
3776 * fold-const.c (extract_array_ref): Handle more cases,
3777 do some useful canonicalization of the base.
3778 (fold_binary): Explicitly deal with arrays of zero-sized
3779 structures during folding of &a[i] == &a[j].
3781 2005-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
3783 * doc/install.texi (sparc-sun-solaris2*): Update note
3784 about Sun bug 4910101.
3785 (sparc-sun-solaris2.7): Document bootstrap
3786 failure with Sun WorkShop 6 99/08/18 as.
3788 2005-05-30 Pat Haugen <pthaugen@us.ibm.com>
3790 * loop.c (loop_invariant_p, valid_initial_value_p): Use
3791 regs_invalidated_by_call instead of call_used_regs.
3793 2005-05-30 Paolo Carlini <pcarlini@suse.de>
3796 * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
3798 * doc/extend.texi: Add clog, clogf, clogl.
3800 2005-05-30 H.J. Lu <hongjiu.lu@intel.com>
3803 * c-pragma.c: Include "vec.h".
3804 (handle_pragma_visibility): Use VEC.
3806 * doc/invoke.texi: Remove the nested visibility push limit.
3808 2005-05-30 Roger Sayle <roger@eyesopen.com>
3810 PR rtl-optimization/15422
3811 * reg-stack.c (starting_stack_p): New static global.
3812 (straighten_stack): Delete prototype. Change to update the stack
3813 before the current insn.
3814 (subst_stack_regs): Update call to straighten stack.
3815 (emit_swap_insn): Delete prototype. For the first insn in a
3816 basic block, update stack_in instead of emitting a real swap.
3817 (change_stack): When changing the stack before the first insn
3818 in a basic block, update stack_in instead of emitting real code.
3819 (compensate_edges): Clear starting_stack_p during compensation.
3820 (convert_regs_1): Keep track of starting_stack_p whilst processing
3823 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
3825 * tree-ssa-ccp.c (const_val): Make it static.
3827 2005-05-29 Geoffrey Keating <geoffk@apple.com>
3830 * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
3831 pattern involving `:P'.
3833 * Makefile.in (install-cpp): Depend on installdirs.
3835 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
3837 * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
3839 (new_elim_graph, clear_elim_graph, delete_elim_graph,
3840 elim_graph_add_edge, elim_graph_remove_succ_edge,
3841 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
3844 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
3846 * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
3847 opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
3848 tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
3849 follow spelling conventions in error/dump messages.
3851 2005-05-29 Roger Sayle <roger@eyesopen.com>
3852 Richard Henderson <rth@redhat.com>
3854 * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
3855 if the RHS isn't suitable for calling emit_move_insn.
3857 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
3859 * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
3860 fold_unary and fold_binary.
3862 2005-05-29 Roger Sayle <roger@eyesopen.com>
3864 * reg-stack.c (propagate_stack): Always copy the source stack to
3865 the destination. This routine is now only called when this is safe.
3866 (better_edge): New function split out from convert_regs_1 to
3867 determine which of two edges is better to propagate across.
3868 (convert_regs_1): We need only search for a best edge if the
3869 stack layout hasn't been defined yet. Use better_edge to help
3870 find beste. No longer traverse unnecessary edges.
3872 2005-05-29 Keith Besaw <kbesaw@us.ibm.com>
3874 * tree-ssa-alias.c (new_type_alias): New procedure to
3875 create a type memory tag for a pointer with a may-alias
3876 set determined from a variable declaration.
3877 * tree-flow.h: export declaration of new_type_alias
3878 * tree-optimize.c (init_tree_optimization_passes): document
3879 that pass_may_alias cannot be called after pass_vectorize.
3880 * tree-vect-transform (vect_create_data_ref_ptr): Call
3881 new_type_alias when an type memory tag isn't available
3883 (vectorizable_store): Use copy_virtual_operands to update
3884 virtual defs in place (so that loop_version can be called).
3885 Call mark_for_renaming for the virtual defs in case peeling
3886 is done and virtual uses outside the loop need to be updated.
3888 2005-05-29 Dorit Naishlos <dorit@il.ibm.com>
3890 PR tree-optimization/21639
3891 * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
3893 2005-05-29 Jan Hubicka <jh@suse.cz>
3895 PR tree-optimization/21562
3896 * cfgexpand.c (construct_init_block): Deal properly with the case
3897 of entry edge not pointing to very first basic block.
3899 2005-05-28 Kazu Hirata <kazu@cs.umass.edu>
3901 * tree-ssa-ccp.c (ccp_fold): Remove code that produces
3902 non-gimple min invariant.
3904 * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
3905 * tree-flow.h: Add prototypes for start_recording_case_labels
3906 and end_recording_case_labels.
3907 * tree-cfg.c (start_recording_case_labels,
3908 end_recording_case_labels): Export.
3909 (cleanup_tree_cfg_loop, modified_noreturn_calls,
3910 cleanup_control_flow, cleanup_control_expr_graph,
3911 remove_fallthru_edge, phi_alternatives_equal,
3912 tree_forwarder_block_p, has_abnormal_incoming_edge_p,
3913 remove_forwarder_block, cleanup_forwarder_blocks,
3914 remove_forwarder_block_with_phi, merge_phi_nodes,
3915 gate_merge_phi, pass_merge_phi): Move to ...
3916 * tree-cfgcleanup.c: ... here.
3918 * basic-block.h: Remove forward declaration of bb_ann_d.
3920 2005-05-28 Jan Hubicka <jh@suse.cz>
3922 * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
3924 * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
3926 (tree_mod_subtract): Fix profile updating code.
3927 (tree_divmod_values_to_profile): Do not produce useless value profilers
3930 2005-05-28 Kazu Hirata <kazu@cs.umass.edu>
3932 * tree-ssa-dom.c (vrp_element_p): Define.
3933 (vrp_hash_elt): Change the type of records to
3934 VEC(vrp_element_p,heap).
3936 (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
3937 Update uses of VRP records.
3938 (simplify_cond_and_lookup_avail_expr, record_range): Update
3939 uses of VRP records.
3941 * tree-inline.c (cfun_stack): Change the type to
3942 VEC(function_p,heap).
3943 (push_cfun, pop_cfun): Use VEC instead of VARRAY.
3945 2005-05-27 Ian Lance Taylor <ian@airs.com>
3947 * c-decl.c (add_stmt): Add C frontend specific version.
3948 (stmts_are_full_exprs_p): Remove.
3949 * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
3950 (stmts_are_full_exprs_p): Don't declare.
3951 * c-semantics.c (add_stmt): Remove.
3953 2005-05-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3955 * config/mips/mips-protos.h (mips_declare_object): Add printf
3957 * config/mips/mips.c (mips_declare_object_name): Fix format
3960 2005-05-27 Roger Sayle <roger@eyesopen.com>
3962 * reg-stack.c (compensate_edge): Remove original prototype.
3963 (propagate_stack): New function to copy the stack layout
3964 at the start of a basic block from the layout at the end of
3965 one of its predecessors.
3966 (compensate_edge): Assume that both source and destination
3967 blocks have already had their stack layouts defined.
3968 (compensate_edges): Traverse all non-entry edges in the CFG
3969 and call compensate_edge on each in turn.
3970 (convert_regs_1): Change return type to void. Call
3971 propagate_stack instead of compensate_edge.
3972 (convert_regs_2): Change return type to void. Update call
3973 to convert_regs_1 to ignore the (now void) return value.
3974 (convert_regs): Update calls to convert_regs_2 to ignore
3975 the (now void) return value. After all the basic blocks have
3976 been processed, call compensate_edges to actually emit new
3978 (reg_to_stack): Initialize the aux info for each basic block
3979 with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
3981 2005-05-28 Jan Hubicka <jh@suse.cz>