1 2005-06-28 Jan Hubicka <jh@suse.cz>
3 * tree-optimize.c (exercute_free_datastructures):
4 Do not disband implicit edges; do not attempt to build insn list;
5 do not free cfg annotations.
6 (execute_free_cfg_annotations); Disband implicit edges here;
7 free cfg annotations here too.
8 (pass_free_cfg_annotations); New pass.
9 (init_tree_optimization_passes); Add pass_free_cfg_annotations.
10 * tree-ssa-operands.c (free_ssa_operands); Recover; export.
11 * tree-ssa-operands.h (free_ssa_operands); declare.
12 * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
14 * tree-ssanames.c (release_defs): Kill addresses_taken.
16 * basic-block.h (basic_block_def): Kill rbi.
17 (reorder_block_def): Kill; Remove next field (replaced by aux);
18 move other fields to ...
19 (rtl_bb_info): ... here.
20 * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
21 copy_bb, connect_traces, add_labels_and_missing_jumps
22 fix_up_fall_thru_edges, fix_crossing_conditional_branches,
23 duplicate_computed_gotos, partition_hot_cold_basic-blocks):
25 * cfg.c (initialize_bb_rbi): Kill.
26 * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
27 fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
28 * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
29 (try_redirect_by_replacing_jump): Update rbi references.
30 (cfg_layout_split_block): Likewise.
31 (cfg_layout_delete_block): Likewise.
32 (cfg_layout_merge_blocks): Likewise.
33 * function.c (thread_prologue_and_epilogue_insns): Likewise.
34 * passes.c (rest_of_handle_sms): Likewise.
35 * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
37 2005-06-27 David Edelsohn <edelsohn@gnu.org>
39 * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
40 in verbose_asm output.
41 * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
43 * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
46 2005-06-27 Jakub Jelinek <jakub@redhat.com>
48 * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
49 (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
50 (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
51 (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
52 ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
53 * builtins.c: Include tree-flow.h.
54 (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
55 (expand_builtin_object_size, expand_builtin_memory_chk,
56 maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
57 compute_object_offset, compute_builtin_object_size,
58 fold_builtin_object_size): New functions.
59 (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
60 (fold_builtin_1): Likewise. Handle BUILT_IN_{,V}{,F}PRINTF
61 and BUILT_IN_{,F}PRINTF_UNLOCKED.
62 (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
63 fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
64 fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
65 fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
67 * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
68 BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
69 BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
70 BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
71 BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
72 BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
73 BUILT_IN_VPRINTF_CHK): New builtins.
74 * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
76 (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
77 BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
78 BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
79 BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
80 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
81 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
82 BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
83 BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
84 BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
85 * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
86 DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
87 * Makefile.in (OBJS-common): Add tree-object-size.o.
88 (tree-object-size.o): Add dependencies.
89 * tree-pass.h (pass_object_sizes): Add.
90 * tree-optimize.c (init_tree_optimization_passes): Add
92 * tree-object-size.c: New file.
93 * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
94 fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
95 compute_builtin_object_size, init_object_sizes, fini_object_sizes):
97 * tree-ssa-ccp.c (get_strlen): Rename to ...
98 (get_maxval_strlen): ...this function. Handle also computing of maximum
99 string length and maximum integral value.
100 (ccp_fold_builtin): Handle BUILT_IN_*_CHK. Use get_maxval_strlen
101 instead of get_strlen. Pass CALLEE and ARGLIST variables to the
102 folding functions instead of computing them again.
103 (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
104 into some other builtin.
105 * doc/extend.texi (Object Size Checking): Document.
107 * regrename.c (copy_value): Fix comment.
109 * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
110 instead of preprocessor conditionals.
112 * targhooks.c (default_hidden_stack_protect_fail): Fall back to
113 default_external_stack_protect_fail if visibility is not supported
115 * config/i386/i386.c (ix86_stack_protect_fail): New function.
116 (TARGET_STACK_PROTECT_FAIL): Define.
117 * config/i386/i386.md (stack_protect_si): Change CLOBBER into
119 (stack_protect_di): Likewise. Use %k2 instead of %2 to avoid
120 invalid instruction xorl %rax, %rax.
122 2005-06-27 Richard Henderson <rth@redhat.com>
124 * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
125 * cfgexpand.c: Include params.h.
126 (has_protected_decls, has_short_buffer): New.
127 (expand_stack_vars): Take a predicate to determine what to expand.
128 (defer_stack_allocation): True when flag_stack_protect on.
129 (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
130 (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
131 (stack_protect_classify_type, stack_protect_decl_phase): New.
132 (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
133 (add_stack_protection_conflicts, create_stack_guard): New.
134 (expand_used_vars): Add stack protection logic.
135 (tree_expand_cfg): Likewise.
136 * common.opt (Wstack-protector): New.
137 (fstack-protector, fstack-protector-all): New.
138 * function.c: Include predict.h.
139 (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
140 wants to copy the parameter into the stack frame.
141 (stack_protect_prologue, stack_protect_epilogue): New.
142 (expand_function_end): Call stack_protect_epilogue. Do
143 sjlj_emit_function_exit_after after naked_return_label.
144 * function.h (struct function): Add stack_protect_guard.
145 * params.def (PARAM_SSP_BUFFER_SIZE): New.
146 * toplev.c (process_options): Disable flag_stack_protect and/or
147 warn_stack_protect based on FRAME_GROWS_DOWNWARD.
148 * tree.h (stack_protect_prologue): Declare.
150 * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
151 (TARGET_STACK_PROTECT_FAIL): New.
152 (TARGET_INITIALIZER): Add them.
153 * target.h (struct gcc_target): Add stack_protect_guard and
155 * targhooks.c: Include ggc.h, gty header.
156 (stack_chk_guard_decl, default_stack_protect_guard): New.
157 (stack_chk_fail_decl, default_external_stack_protect_fail): New.
158 (default_hidden_stack_protect_fail): New.
159 * targhooks.h (default_stack_protect_guard): Declare.
160 (default_external_stack_protect_fail): Declare.
161 (default_hidden_stack_protect_fail): Declare.
162 * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
163 * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
165 (conditional_trap, conditional_trap_1): Remove.
166 (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
167 (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
168 * doc/md.texi (stack_protect_set, stack_protect_test): New.
169 * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
170 (TARGET_STACK_PROTECT_FAIL): New.
172 * libgcc-std.ver (GCC_4.1.0): New.
173 * libgcc.h (__stack_chk_guard): Declare.
174 (__stack_chk_fail, __stack_chk_fail_local): Declare.
175 * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
176 * mklibgcc.in (lib2funcs): Add them.
178 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
181 * c-common.c (check_function_sentinel): Pass in named argument
182 list, skip over named arguments before looking for a sentinel.
183 (check_function_arguments): Pass in named argument list.
184 * c-common.h (check_function_arguments): Likewise.
185 * c-typeck.c (build_function_call): Likewise.
187 2005-06-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
189 * genautomata.c (decl_mode_check_failed,
190 regexp_mode_check_failed): Add noreturn attribute.
192 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
194 * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
195 * doc/invoke.texi: Fix typos.
197 * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
198 convert.c, lambda-code.c, predict.c, tree-cfg.c,
199 tree-complex.c, tree-data-ref.c, tree-if-conv.c,
200 tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
201 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
202 tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
203 tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
204 tree.c: Use fold_buildN instead of fold (buildN (...)).
206 2005-06-26 Gerald Pfeifer <gerald@pfeifer.com>
208 * doc/install.texi (Specific): Do not specify the concrete
209 versions of GCC provided by Cygwin. Simplify the part on
212 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
214 * config/arc/arc-protos.c: Remove the prototype for
216 * config/arc/arc.c (arc_finalize_pic): Remove.
217 * config/arc/arc.h (FINALIZE_PIC): Likewise.
218 * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
219 * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
221 2005-06-26 Jakub Jelinek <jakub@redhat.com>
224 * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
225 instead of alloca for really big argument sizes.
228 * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
229 earlier in the function.
231 * regrename.c (copy_value): Don't replace fixed or global
232 regs with older regs.
234 * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
235 * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
236 instead of preprocessor conditionals.
237 (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
238 * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
239 depending on if it was or was not defined previously.
240 * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
241 definition of FRAME_GROWS_DOWNWARD means frame grows downward.
242 * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
243 * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0. Update
245 * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
246 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
247 * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
248 * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
249 * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
250 * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
251 * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
252 * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1. Update
254 * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
255 * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
256 * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
257 * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
258 * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
259 * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
260 * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
261 * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
262 * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
263 * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
264 * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
265 * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
266 * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
267 * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
268 * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
269 * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
270 * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
271 * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
272 * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
274 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
276 PR tree-optimization/22026
277 * tree-vrp.c (extract_range_from_binary_expr): Drop to
278 VR_VARYING if a binary expression involving VR_ANTI_RANGE is
279 PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
281 2005-06-26 Kazu Hirata <kazu@codesourcery.com>
283 * Makefile.in (OBJS-common): Remove duplicate object file
286 2005-06-25 Jan Hubicka <jh@suse.cz>
288 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
289 * cfg.c (update_bb_profile_for_threading): Fix rescaling.
291 * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
293 (rest_of_compilation): Fix conditional on branch prob pass.
294 * predict.c (tree_estimate_probability): Enable strip_builtin_expect
295 when not loop optimizing.
297 2005-06-25 Bernd Schmidt <bernd.schmidt@analog.com>
299 * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
301 (movbi): Add alternative to set CC to zero.
302 (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
303 compare_ltu): Now named patterns.
305 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
307 * all files: Update FSF address in copyright headers.
309 2005-06-25 Kelley Cook <kcook@gcc.gnu.org>
311 * gengtype.c: Update FSF address in copyright header.
312 (create_file): Update FSF in outputed copyright header.
314 2005-06-24 Kazu Hirata <kazu@codesourcery.com>
316 * cfglayout.c (block_locators_locs, line_locators_locs,
317 line_locators_lines, file_locators_locs): Change the type to
319 (insn_locators_initialize, change_scope, insn_scope,
320 locator_line, insn_line, locator_file): Use VEC instead of
323 2005-06-24 Jason Merrill <jason@redhat.com>
325 * tree-nrv.c (tree_nrv): Fix to check assignments to the
326 RESULT_DECL rather than just RETURN_EXPRs.
327 (finalize_nrv_r): Adjust.
329 2005-06-24 Jan Hubicka <jh@suse.cz>
331 * tree-optimize.c (init_tree_optimization_passes): Fix flags of
332 all_passes and all_ipa_passes.
334 * c-common.c: Include cgraph.h
335 (handle_externally_visible_attribute): New function.
336 (c_common_att): Add "externally_visible" attribute.
337 * cgraph.c (decide_is_variable_needed): Obey externally
339 (cgraph_varpool_finalize_decl): Avoid redundant checking.
340 * cgraph.h (struct cgraph_node): New flag externally_visible.
341 (decide_is_function_needed): Obey externally visible flag.
342 (cgraph_finalize_function): Avoid redundant checks.
343 (cgraph_function_and_variable_visibility): Bring symbols local
345 * common.opt (fwhole-program): New flag.
347 * doc/invoke.texi (-fwhole-program): Document.
349 2005-06-24 Mark Mitchell <mark@codesourcery.com>
352 * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
355 2005-06-23 Mark Mitchell <mark@codesourcery.com>
358 * tree-ssa-operands.c (get_expr_operands): Check the volatility of
359 the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
361 2005-06-24 Jan Hubicka <jh@suse.cz>
363 * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
365 2005-06-23 Jeff Law <law@redhat.com>
367 * tree-optimize.c (init_tree_optimization_passes): Move
368 copy prop pass to run just before VRP.
369 * tree-vrp.c (remove_range_assertions): Remove copies created
370 by ASSERT_EXPR removal.
372 2005-06-23 Kazu Hirata <kazu@codesourcery.com>
374 PR tree-optimization/22117
375 * tree-vrp.c (extract_range_from_binary_expr): Compute a
376 correct range when adding two pointers.
378 2005-06-23 Jason Merrill <jason@redhat.com>
381 Leave the return slot target in the MODIFY_EXPR rather than making
382 it an argument, but only use it if the CALL_EXPR has a flag set.
383 * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
384 CALL_EXPR_RETURN_SLOT_OPT.
385 * calls.c (expand_call): Adjust.
386 * tree-inline.c (expand_call_inline): Adjust.
387 * tree-pretty-print.c (dump_generic_node): Adjust.
389 And set the flag as appropriate.
390 * gimplify.c (gimplify_modify_expr_rhs): Set
391 CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
392 * tree-nrv.c (execute_return_slot_opt): Set
393 CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
394 * tree-pass.h: Declare pass_return_slot.
395 * tree-optimize.c (init_tree_optimization_passes): Add it.
397 2005-06-23 David Edelsohn <edelsohn@gnu.org>
400 * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
401 * config/rs6000/rs6000.md: Move atomic instructions to ...
402 * config/rs6000/sync.md: Here.
403 Change sync_compare_and_swap<mode> to define_expand. All stwcx
404 patterns test PPC405_ERRATUM77.
406 2005-06-23 Jan Hubicka <jh@suse.cz>
408 * tree-inline.c (copy_body_r): Remap labels correctly.
410 2005-06-22 Alan Modra <amodra@bigpond.net.au>
412 * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
414 2005-06-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
417 * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
418 the same as the other cast operands.
419 (output_addressed_constants): Likewise.
421 2005-06-21 Jeff Law <law@redhat.com>
423 * tree-vrp.c (extract_range_from_unary_expr): Handle type
426 2005-06-21 Dorit Nuzman <dorit@il.ibm.com>
428 * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
429 (reduc_plus_optab): Removed. Replcaed with...
430 (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
431 * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
432 reduc_uplus_optab instead of reduc_plus_optab.
433 (expand_vec_shift_expr): New function.
434 (init_optabs): Initialize new optabs. Remove initialization of
436 (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
437 for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
438 * optabs.h (OTI_reduc_plus): Removed. Replaced with...
439 (OTI_reduc_splus, OTI_reduc_uplus): New.
440 (reduc_plus_optab): Removed. Replcaed with...
441 (reduc_splus_optab, reduc_uplus_optab): New optabs.
442 (vec_shl_optab, vec_shr_optab): New optabs.
443 (expand_vec_shift_expr): New function declaration.
445 * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
446 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
447 * expr.c (expand_expr_real_1): Handle new tree-codes.
448 * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
449 * tree-vect-generic.c (expand_vector_operations_1): Add assert.
451 * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
452 alternatives for generating reduction epilog code.
453 (vectorizable_reduction): Don't fail of direct reduction support is
455 (vectorizable_target_reduction_pattern): Likewise.
457 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
458 reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
459 reduc_plus_v4si, reduc_plus_v4sf): Removed.
460 (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
461 reduc_splus_<mode>, reduc_uplus_v16qi): New.
463 2005-06-20 Daniel Berlin <dberlin@dberlin.org>
465 * c-typeck.c (build_function_call): Set fundecl = function again.
466 * tree-ssa-alias.c (find_used_portions): Address taking causes the
467 entire variable to be used.
468 * tree-ssa-structalias.c (do_structure_copy): Fix handling of
469 unknown size variables, and structure copies from addressof
470 operations. Simplify how we do *a = *b type structure copies.
471 (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
472 way. READONLY's address is not taken by default.
473 INTEGER dereference should point to anything.
474 (create_variable_info_for): It's okay for the first field to not start
477 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
479 config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
481 2005-06-20 Roger Sayle <roger@eyesopen.com>
482 2005-06-20 Fariborz Jahanian <fjahanian@apple.com>
484 * combine.c (simplify_set): Simplify setting of CC register
485 by removing redundant compare with 0 on RHS.
487 2005-06-20 Jan Beulich <jbeulich@novell.com>
489 * config/i386/netware-libgcc.def: Update copyright.
490 * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
491 __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
492 * config/i386/netware.c (gen_stdcall_decoration,
493 gen_fastd_decoration): Merge into ...
494 (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
496 (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
497 (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
498 * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
499 libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
500 * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
501 use of NX_MUTEX_RECURSIVE.
503 2005-06-19 Roger Sayle <roger@eyesopen.com>
505 * fold-const.c (swap_tree_comparison): Add support for unordered
506 floating point comparisons.
507 * tree-vrp.c (opposite_comparison): Delete.
508 (extract_range_from_assert): Replace calls to opposite_comparison
509 with calls to swap_tree_comparison.
510 (register_edge_assert_for): Likewise.
511 (vrp_evaluate_conditional): Likewise.
513 2005-06-20 Kaz Kojima <kkojima@gcc.gnu.org>
515 * integrate.c (allocate_initial_values): Update the references
516 to global_live_at_start and global_live_at_end.
518 2005-06-20 Jan Hubicka <jh@suse.cz>
520 * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
521 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
523 * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
524 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
525 Update call of duplicate_loop_to_header_edge.
526 (apply_opt_in_copies): Clear out aux pointers.
528 2005-06-19 Joseph S. Myers <joseph@codesourcery.com>
530 * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
531 (ix86_mangle_fundamental_type): New.
532 * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
533 (ia64_mangle_fundamental_type): New.
535 2005-06-19 Roger Sayle <roger@eyesopen.com>
537 * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
539 * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
540 CONSTANT_CLASS_P nodes.
542 2005-06-19 Richard Henderson <rth@redhat.com>
544 * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
545 the shift is always required.
547 2005-06-19 Richard Henderson <rth@redhat.com>
549 * config/ia64/ia64-modes.def (V4SF): Add.
550 * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
551 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to
552 integer mode changes in fp regs.
553 * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
554 * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
555 (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
556 (vcondv2sf): Use gen_fpack
557 (fpack): Remove * from name.
558 (fswap, fmix_l, fmix_r, fmix_lr): New.
559 (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
560 (vec_extractv2sf_1, vec_extractv2sf): New.
562 2005-06-19 Andreas Krebbel <krebbel1@de.ibm.com>
564 * combine.c (make_compound_operation): Use simplify_subreg. Delete
565 a optimization already done by simplify_subreg.
567 2005-06-19 Ulrich Weigand <uweigand@de.ibm.com>
569 * loop.c (scan_loop): Do not consider insns setting the frame
570 pointer to be candidates for hoisting.
572 2005-06-19 Uros Bizjak <uros@kss-loka.si>
574 * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
575 Remove instruction patterns.
576 (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
577 (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
578 Set "unit" attribute to "i387".
579 (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
580 (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
582 (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
583 (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
584 attribute to "i387" when "type" attribute equals "multi".
585 (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
586 (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
587 (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
588 (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
589 attribute to "i387" when "type" attribute equals "multi".
590 * config/i386/mmx.md (*mov<mode>_internal_rex64)
591 (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
592 Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
593 (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
594 * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
595 (sse_cvttpd2pi): Set "unit" attribute to "mmx".
596 (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
597 to "mmx" for "y" operand 1.
599 2005-06-19 Uros Bizjak <uros@kss-loka.si>
601 * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
602 for TARGET_MMX. Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
603 and SSE registers to determine if regno is valid.
604 (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
605 TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
607 2005-06-18 Richard Henderson <rth@redhat.com>
609 * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
610 for control-altering statements; set it again for returns.
611 (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
614 2005-06-18 Richard Henderson <rth@redhat.com>
617 * tree-ssa-pre.c (create_expression_by_pieces): Set
618 DECL_COMPLEX_GIMPLE_REG_P.
619 (insert_into_preds_of_block): Likewise.
621 2005-06-18 Steven Bosscher <stevenb@suse.de>
623 * Makefile.in: Fix tree-cfgcleanup.c dependencies.
625 2005-06-18 Richard Henderson <rth@redhat.com>
627 * expr.c (store_constructor): Use store of 0 to indicate value
628 death instead of a clobber.
630 * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
631 * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
632 * config/i386/sse.md (reduc_plus_v4sf): New.
633 (reduc_smax_v4sf, reduc_smin_v4sf): New.
635 2005-06-18 James A. Morrison <phython@gcc.gnu.org>
637 * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
638 nonnegative values of X.
640 2005-06-18 Uros Bizjak <uros@kss-loka.si>
642 * doc/md.texi (Standard Names): Change insn pattern name
643 from truncM2 to btruncM2 for 'trunc' built-in description.
644 Add rintM2 insn pattern description.
646 2005-06-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
648 * c-decl.c (locate_old_decl): Add format attribute.
649 (implicit_decl_warning): Likewise.
651 * diagnostic.h (verbatim): Move ...
652 * toplev.h (verbatim): ... here. Add ATTRIBUTE_GCC_DIAG.
653 * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
655 2005-06-18 Roger Sayle <roger@eyesopen.com>
658 * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
660 2005-06-18 Dorit Nuzman <dorit@il.ibm.com>
662 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
664 * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
665 OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction.
666 (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
667 reduc_plus_optab): New optabs for reduction.
668 * expr.c (expand_expr_real_1): Handle new tree-codes.
669 * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
670 * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
672 * optabs.c (optab_for_tree_code): Handle new tree-codes.
673 (init_optabs): Initialize new optabs.
674 * genopinit.c (optabs): Define handlers for new optabs.
676 * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
677 case of a phi that is marked as relevant. Call vectorizable_reduction.
678 (vect_mark_relevant): Phis may be marked as relevant.
679 (vect_mark_stmts_to_be_vectorized): The use corresponding to the
680 reduction variable in a reduction stmt does not mark its defining phi
681 as relevant. Update documentation accordingly.
682 (vect_can_advance_ivs_p): Skip reduction phis.
683 * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
684 additional argument. Handle reduction.
685 (vect_create_destination_var): Update call to vect_get_new_vect_var.
686 Handle non-vector argument.
687 (get_initial_def_for_reduction): New function.
688 (vect_create_epilog_for_reduction): New function.
689 (vectorizable_reduction): New function.
690 (vect_get_new_vect_var): Handle new vect_var_kind.
691 (vectorizable_assignment, vectorizable_operation, vectorizable_store,
692 vectorizable_condition): Update call to vect_get_new_vect_var.
693 (vect_transform_stmt): Call vectorizable_reduction.
694 (vect_update_ivs_after_vectorizer): Skip reduction phis.
695 (vect_transform_loop): Skip if stmt is both not relevant and not live.
696 * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
697 (vect_is_simple_reduction): Was empty - added implementation.
698 * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
699 (reduc_vec_info_type): New enum vect_def_type value.
700 * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
701 reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
702 reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
704 * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
705 ENABLE_CHECKING around gcc_assert.
706 * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
707 (vect_do_peeling_for_alignment, vect_transform_loop,
708 vect_get_vec_def_for_operand): Likewise.
710 2005-06-18 Joseph S. Myers <joseph@codesourcery.com>
712 * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
713 big-endian unnamed __float80 value.
715 2005-06-18 Richard Henderson <rth@redhat.com>
718 * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
721 2005-06-17 Richard Henderson <rth@redhat.com>
723 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
724 initialize_original_copy_tables and free_original_copy_tables.
725 (vect_do_peeling_for_alignment): Likewise.
727 2005-06-17 Pat Haugen <pthaugen@us.ibm.com>
729 * bb-reorder.c (find_traces_1_round): Use succ block frequency
730 instead of edge frequency for calls to better_edge_p.
732 2005-06-17 Andrew Pinski <pinskia@physics.uc.edu>
735 * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
737 2005-06-17 Steve Ellcey <sje@cup.hp.com>
740 * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
742 (PROFILE_BEFORE_PROLOGUE): Undef.
743 (NO_PROFILE_COUNTERS): New.
744 * config/ia64/ia64-protos.h (ia64_profile_hook): New.
745 * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
746 (gen_mcount_func_rtx): New.
747 (ia64_profile_hook): New.
748 * config/ia64/ia64.md (ip_value): New.
750 2005-06-17 Devang Patel <dpatel@apple.com>
752 * config/rs6000/predicates.md (s5bit_cint_operand,
753 u5bit_cint_operand): New.
754 * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
755 altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
756 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
757 5 bit constant check.
759 2005-06-17 Richard Henderson <rth@redhat.com>
761 * local-alloc.c (update_equiv_regs): Update reg_equiv_init
762 properly when moving an initialization insn.
764 2005-06-17 Paolo Bonzini <bonzini@gnu.org>
766 * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
768 * configure.ac: Regenerate.
770 2005-06-17 Jan Hubicka <jh@suse.cz>
772 * tree-optimize.c (execute_ipa_pass_list): New.
773 (ipa_passes): Use it.
775 2005-06-16 Richard Henderson <rth@redhat.com>
778 * tree-complex.c (update_phi_components): Avoid no-op moves.
780 2005-06-16 Joseph S. Myers <joseph@codesourcery.com>
782 * Makefile.in (cc1-checksum.c): Use
783 build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
785 2005-06-16 Geoffrey Keating <geoffk@apple.com>
787 * gengtype.c (adjust_field_rtx_def): Don't add a skip to
790 * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
792 (SHLIB_REVISION): Delete.
793 (SHLIB_VERSTRING): Update to compensate.
794 (SHLIB_SONAME): Just use one '.' in the name.
796 2005-06-16 Eric Botcazou <ebotcazou@libertysurf.fr>
798 PR tree-optimization/22018
799 * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
801 2005-06-16 Richard Henderson <rth@redhat.com>
804 * builtins.c (fold_builtin_complex_mul): Remove.
805 (fold_builtin_complex_div): Remove.
806 (fold_builtin_1): Don't call them.
807 * fold-const.c (fold_complex_add, fold_complex_mult_parts,
808 fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
809 (fold_binary): Don't call them. Don't expand complex comparisons to
810 elementary comparisons.
811 * tree-complex.c (init_dont_simulate_again): Enhance search for
812 stmts that require decomposition.
813 (complex_visit_stmt): Handle RETURN_EXPR properly.
814 (create_components): Handle no referenced variables properly.
815 * tree.h (fold_complex_mult_parts): Remove.
816 (fold_complex_div_parts): Remove.
818 2005-06-16 Richard Guenther <rguenth@gcc.gnu.org>
820 * doc/extend.texi: Document sseregparm target attribute.
821 Clarify fastcall and regparm documentation.
822 * config/i386/i386.h: Adjust float_in_sse documentation.
823 * config/i386/i386.c: Add new target attribute sseregparm.
824 (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
826 (ix86_handle_cconv_attribute): ... here. Also handle
827 sseregparm attribute.
828 (ix86_comp_type_attributes): Compare sseregparm attributes.
829 (ix86_function_sseregparm): New function, split out from ...
830 (init_cumulative_args): ... here. Use to decide use
831 of SSE registers and error in case of missing support.
832 (ix86_value_regno): Likewise.
833 (function_arg_advance): Do not bail out for DFmode if we need
834 to pass doubles in registers.
835 (function_arg): Likewise.
837 2005-06-16 Paolo Bonzini <bonzini@gnu.org>
838 Daniel Jacobowitz <dan@codesourcery.com>
839 Alan Modra <amodra.bigpond.net.au>
841 * configure.ac (gcc_version): Set near the beginning.
842 (as, ld, nm): Do not link in-tree tools. Set gcc_cv_* if tools are
843 found in the tree. Use gcc_AC_PROG to find the tools in the system.
844 (objdump): Do not look for it.
845 * Makefile.in (NM_FOR_TARGET): Point to ./nm
846 (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
847 ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
848 (as, ld, nm): New rules.
849 (libgcc.mk): Depend on them.
850 * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
851 gcc_AC_BUILD_EXEEXT): New.
852 (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
853 * configure: Regenerate.
855 2005-06-16 Jan Hubicka <jh@suse.cz>
857 * basic-block.h (rtl_bb_info): Break out head_, end_,
858 global_live_at_start, global_live_at_end from ...
859 (basic_block_def): ... here; update all references
861 (init_rtl_bb_info): Declare.
862 * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
864 * cfgrtl.c: Include ggc.h
865 (create_basic_block_structure): Init bb info.
866 (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
867 (init_rtl_bb_info): New function.
868 (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
869 * cfghooks.c (merge_block): Do not copy global_live_at_end here.
870 * cfg.c (clear_bb_flags): Skip BB_RTL flag.
871 (dump_flow_info): Gueard global_live_* dumping.
873 * Makefile.in (cfg.o): Add new dependencies.
874 * basic-block.h (reorder_block_def): Kill
875 original/copy/duplicated/copy_number fields.
876 (BB_DUPLICATED): New flag.
877 (initialize_original_copy_tables, free_original_copy_tables,
878 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
879 * cfg.c: Include hashtab.h and alloc-pool.h
880 (bb_original, bb_copy, original_copy_bb_pool): New static vars.
881 (htab_bb_copy_original_entry): New struct.
882 (bb_copy_original_hash, bb_copy_original_eq): New static functions.
883 (initialize_original_copy_tables, free_original_copy_tables,
884 set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
886 * cfghooks.c (duplicate_block): Update original/copy handling.
887 * cfglayout.c (fixup_reorder_chain): Likewise.
888 (cfg_layout_initialize): Initialize orignal_copy tables.
889 (cfg_layout_finalize): FInalize original_copy tables.
890 (can_copy_bbs_p): Use BB_DUPLICATED flag.
891 (copy_bbs): Likewise.
892 * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
893 (duplicate_loop_to_header_edge): Likewise; update handling of
895 (loop_version): Likewise.
896 * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
897 * except.c (expand_resx_expr): Check that reg->resume is not set.
898 * loop-unroll.c (unroll_loop_constant_iterations,
899 unroll_loop_runtime_iterations, apply_opt_in_copies): Update
900 copy/original handling.
901 * loop-unwitch.c (unswitch_loop): Likewise.
902 * tree-cfg.c (create_bb): Do not initialize RBI.
903 (disband_implicit_edges): Do not kill RBI.
904 (add_phi_args_after_copy_bb): Use new original/copy mapping.
905 (add_phi_args_after_copy): Use BB_DUPLICATED flag.
906 (tree_duplicate_sese_region): Update original/copy handling.
907 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
908 * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
909 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
911 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
914 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
915 integer types whos ranges are different are not useless.
917 2005-06-15 Andrew Pinski <pinskia@physics.uc.edu>
920 * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
923 2005-06-15 Diego Novillo <dnovillo@redhat.com>
925 * tree-ssa-structalias.c (dump_solution_for_var): Reformat
927 (dump_sa_points_to_info): Make extern.
928 (debug_sa_points_to_info): New.
929 * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
931 (dump_sa_points_to_info): Declare.
932 (debug_sa_points_to_info): Declare.
934 2005-06-15 Joseph S. Myers <joseph@codesourcery.com>
936 * c-tree.h (default_function_array_conversion): Declare.
937 * c-typeck.c (default_function_array_conversion): Export. Correct
939 (default_conversion): Do not call
940 default_function_array_conversion. Do not allow FUNCTION_TYPE.
941 (build_function_call): Call default_function_array_conversion on
943 (convert_arguments): Do not call it on the function arguments.
944 (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
945 TRUTH_NOT_EXPR. Call default_function_array_conversion for taking
946 address of ARRAY_REF.
947 (build_compound_expr): Do not call
948 default_function_array_conversion.
949 (build_c_cast): Do not call default_function_array_conversion.
950 (convert_for_assignment): Do not call default_conversion.
951 (digest_init): Call default_function_array_conversion to convert
952 string constants and compound literals to pointers, but not
954 (output_init_element): Likewise.
955 (build_asm_expr): Do not call default_function_array_conversion.
956 (c_process_expr_stmt): Likewise.
957 (c_objc_common_truthvalue_conversion): Likewise. Do not allow
959 * c-parser.c (c_parser_expression_conv): New.
960 (c_parser_asm_operands, c_parser_expr_list): Add convert_p
961 argument. All callers changed. Call
962 default_function_array_conversion if convert_p.
963 (c_parser_initializer, c_parser_initval): Call
964 default_function_array_conversion except for string constants and
966 (c_parser_initelt): Call default_function_array_conversion for
967 ObjC expression received.
968 (c_parser_statement_after_labels): Call c_parser_expression_conv
969 for return and expression statements.
970 (c_parser_paren_condition, c_parser_for_statement,
971 c_parser_conditional_expression): Call c_parser_expression_conv.
972 (c_parser_expr_no_commas, c_parser_conditional_expression,
973 c_parser_binary_expression, c_parser_cast_expression,
974 c_parser_unary_expression): Call
975 default_function_array_conversion.
977 2005-06-15 Diego Novillo <dnovillo@redhat.com>
979 * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
980 when the result overflows.
982 2005-06-15 David Ung <davidu@mips.com>
984 * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
987 2005-06-15 Richard Sandiford <richard@codesourcery.com>
989 * doc/invoke.texi (-mips16): Fix typo.
991 2005-06-15 David Ung <davidu@mips.com>
993 * config/mips/mips.h (GENERATE_MIPS16E): New definition.
994 * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
995 Changed expand condition to exclude generating of "and" if
996 GENERATE_MIPS16E is true.
997 (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
998 matching mips16e zeb/zeh.
999 (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
1001 (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
1003 * doc/invoke.texi (MIPS Options): Add comment to -mips16
1004 indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
1006 2005-06-15 Diego Novillo <dnovillo@redhat.com>
1009 * tree-vrp.c (vrp_int_const_binop): New.
1010 (extract_range_from_binary_expr): Call it.
1011 Unify handling division and multiplication.
1013 2005-06-15 Aldy Hernandez <aldyh@redhat.com>
1015 * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
1017 * c-common.c (same_scalar_type_ignoring_signedness): New.
1019 * c-typeck.c (build_binary_op): Check compatability of vector
1020 types. Move error report after switch.
1021 Do not clobber code[01] on *_DIV_EXPR case.
1023 * testsuite/gcc.dg/simd-1.c: Update error messages.
1024 * testsuite/gcc.dg/simd-1b.c: Re-enable tests. Update error
1026 * testsuite/gcc.dg/simd-2.c: Update error messages.
1027 * testsuite/gcc.dg/simd-4.c: New.
1029 2005-06-15 Bernd Schmidt <bernd.schmidt@analog.com>
1031 * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
1032 * local-alloc.c: Include "ggc.h" and "reload.h".
1033 (struct equivalence): New member is_arg_equivalence.
1034 (local_alloc): Always call update_equiv_regs.
1035 (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
1036 Detect equivalences made by stores to memory in a second pass.
1037 Return early if not optimizing.
1038 Initialize reg_equiv_init for all equivalences; treat equivalences for
1039 REG_EQUIV notes existing before this pass specially.
1040 (no_equiv): Don't clear reg_equiv_init or remove notes if the
1041 is_arg_equivalence field is set.
1042 * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
1043 * reload1.c (reg_equiv_init): No longer static.
1044 (reg_equiv_init_size): New variable.
1045 (reload): Don't allocate reg_equiv_init; don't free it when done but
1047 Restructure equivalence set up code not to set reg_equiv_init, but to
1048 clear it when we can't use an equivalence.
1049 Undo change disabling equivalences for MEM_READONLY_P memrefs.
1050 Dump equivalencing insns to dump_file.
1052 2005-06-14 Richard Sandiford <richard@codesourcery.com>
1054 * config/mips/mips.c (machine_function): Add varargs_size field.
1055 (mips_setup_incoming_varargs): Store the amount of extra stack space
1056 there rather than in *pretend_size. When saving registers, always
1057 expect virtual_incoming_args_rtx to point to the start of the
1059 (mips_va_start): Remove alignment hack. Handle all
1060 !EABI_FLOAT_VARARGS_P cases in the same way.
1061 (compute_frame_size): Handle varargs_size. Remove the redundant
1062 !TARGET_OLDABI condition in the handling of pretend_args_size.
1063 (mips_initial_elimination_offset): Remove the now-redundant check
1066 2005-06-14 Jeff Law <law@redhat.com>
1068 * tree-vrp.c (local_fold): Remove.
1069 (simplify_using_ranges): Use fold_convert, not local_fold. Tweak
1070 DIV/MOD case slightly for readability.
1072 2005-06-14 Frank Ch. Eigler <fche@redhat.com>
1075 * tree-mudflap.c (mudflap_finish_file): Exclude non-public
1076 rather than static objects (!) from libmudflap registration.
1078 2005-06-14 Richard Sandiford <richard@codesourcery.com>
1080 * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
1081 (var_ref): Take the option's flags as a second parameter. Check
1083 * optc-gen.awk: Declare local state variables. Pass flags to var_ref.
1085 2005-06-14 Eric Botcazou <ebotcazou@libertysurf.fr>
1088 * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
1089 unsigned index numbers.
1091 2005-06-13 Geoffrey Keating <geoffk@apple.com>
1093 * Makefile.in (install-man): Doesn't really depend on installdirs.
1094 (various rules for installing manpages): Do depend on installdirs.
1096 2005-06-14 Nathan Sidwell <nathan@codesourcery.com>
1098 * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
1099 read_encoded_value_with_base call.
1100 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1101 * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
1102 * unwind-dw2.c (extract_cie_info): Fix aliasing in
1103 read_encoded_value call.
1104 (execute_cfa_program, uw_frame_state_for): Likewise.
1106 2005-06-13 Roger Sayle <roger@eyesopen.com>
1108 PR rtl-optimization/22053
1109 * reg-stack.c (compensate_edge): Correct mistake in the assertion
1110 checking of EDGE_ABNORMAL_CALL edges; complex return values can
1111 result in the top two stack slots, st(0) and st(1), being live.
1113 2005-06-13 Jeff Law <law@redhat.com>
1115 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
1116 simplify DIV, MOD or ABS expressions using VRP information.
1117 Remove WALK_DATA parameter. Prototype and all callers updated.
1118 (eliminate_redundant_computations): Remove WALK_DATA parameter.
1119 Prototype and all callers updated.
1120 (optimize_stmt): WALK_DATA parameter is now unused.
1122 * tree-vrp.c (local_fold): New function. Like fold, but
1123 strips useless type conversions in the result.
1124 (simplify_using_ranges): New function, largely cribbed from
1125 tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
1126 (vrp_finalize): Call simplify_using_ranges.
1128 2005-06-13 Mark Mitchell <mark@codesourcery.com>
1130 * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
1131 assembler in 64-bit mode.
1133 2005-06-13 David Edelsohn <edelsohn@gnu.org>
1135 Revert scc_operand patch.
1136 * config/rs6000/predicates.md (scc_operand): Delete.
1137 * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
1139 2005-06-13 Zdenek Dvorak <dvorakz@suse.cz>
1142 * fold-const.c (split_address_to_core_and_offset): Always return
1143 the address of the base object.
1145 2005-06-13 Bernd Schmidt <bernd.schmidt@analog.com>
1147 * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
1149 2005-06-12 Richard Henderson <rth@redhat.com>
1152 * tree-complex.c (update_complex_components_on_edge): New.
1153 (update_parameter_components): Use it.
1154 (update_phi_components): Likewise.
1155 (expand_complex_move): Likewise for is_ctrl_altering_stmt.
1157 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
1159 PR tree-optimization/14796
1160 * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
1163 2005-06-12 Kazu Hirata <kazu@codesourcery.com>
1165 * cgraphunit.c, tree-ssa-loop-ivopts.c,
1166 tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
1167 config/sparc/sparc.c: Fix comment typos.
1169 2005-06-12 Richard Earnshaw <richard.earnshaw@arm.com>
1171 * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
1172 (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
1173 * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
1174 (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
1176 2005-06-12 James A. Morrison <phython@gcc.gnu.org>
1178 PR tree-optimization/14796
1179 * fold-const.c (fold_binary): Transform (A >> C) << C into
1181 <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
1183 2005-06-11 Geoffrey Keating <geoffk@apple.com>
1185 * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
1186 (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
1188 (reg_or_sub_cint_operand): Likewise.
1189 (mask_operand): Handle DImode.
1190 (mask64_operand): Delete.
1191 (and64_operand): Delete.
1192 * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
1193 instead of mask64_operand.
1194 (print_operand): Likewise.
1195 (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
1196 reg_or_sub_cint_operand instead of *64_* variants.
1197 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
1198 instead of mask64_operand.
1199 * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
1203 (add<mode>3): Use reg_or_add_cint_operand.
1205 (sub<mode>3): Use reg_or_sub_cint_operand.
1206 (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
1207 mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
1208 cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
1209 ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
1210 ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
1211 return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
1212 various unnamed patterns): New.
1213 (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
1214 cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
1215 ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
1216 return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
1217 udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
1218 cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
1219 ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
1220 return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
1221 movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
1224 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
1226 * rtl.h (to_rtx_code): Remove.
1227 * machmode.h (to_machine_mode): Likewise.
1228 * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
1230 (apply_mode_maps): Likewise.
1231 (read_rtx_1): Likewise.
1232 (apply_code_macro): Replace to to_rtx_code with explicit cast.
1233 (check_code_macro): Likewise.
1234 (read_rtx_1): Likewise.
1236 2005-06-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
1238 * c-typeck.c (convert_for_assignment): Avoid checking
1239 OPT_Wc___compat, as it is always true.
1241 2005-06-11 David Edelsohn <edelsohn@gnu.org>
1243 * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
1245 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
1247 Fix PR tree-optimization/22005
1248 Fix PR tree-optimization/22025
1250 * tree-ssa-structalias.c (struct variable_info): Add has_union
1252 (create_variable_info_for): Mark variables containing unions.
1253 Don't sort the field stack if notokay is true.
1254 (find_what_p_points_to): Convert variables containing unions back
1255 to their SFT's if necessary.
1257 2005-06-11 Daniel Berlin <dberlin@dberlin.org>
1259 * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
1260 is an INTEGER_CST before calling int_cst_value.
1262 2005-06-10 Uros Bizjak <uros@kss-loka.si>
1265 * config/i386/i386.c (ix86_function_value_regno_p): Return true
1266 for FIRST_MMX_REG if TARGET_MMX.
1267 (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
1269 (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
1270 (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
1272 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
1274 * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
1275 and access function against chrec_dont_know.
1277 2005-06-10 Daniel Berlin <dberlin@dberlin.org>
1279 * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
1281 (exit_phi_for_loop_p): New function.
1282 (can_put_in_inner_loop): Ditto.
1283 (can_convert_to_perfect_nest): Ditto.
1284 (perfect_nestify): Create iv with right type.
1285 Rewrite statements in correct order.
1287 2005-06-10 Keith Besaw <kbesaw@us.ibm.com>
1289 * tree-ssa-alias.c (new_type_alias): Use existing type
1290 tag if VAR has just one in its may_aliases list.
1292 2005-06-10 Fariborz Jahanian <fjahanian@apple.com>
1294 * rs6000/predicates.md (scc_operand): New.
1295 * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
1297 2005-06-10 Dorit Nuzman <dorit@il.ibm.com>
1299 * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
1300 dependence-distance modulo VF is 0 are recorded in the
1301 SAME_ALIGN_REFs VEC in each DR.
1302 (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
1303 alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
1304 DR we want to peel for, is set to 0.
1305 * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
1306 * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
1308 * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
1309 (_stmt_vec_info): Added new field same_align_refs.
1310 (STMT_VINFO_SAME_ALIGN_REFS): New macro.
1312 2005-06-10 Nathan Sidwell <nathan@codesourcery.com>
1314 * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
1316 2005-06-10 Alan Modra <amodra@bigpond.net.au>
1318 * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
1319 * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
1320 * config/rs6000/rs6000.c (output_function_profiler): Obey
1321 NO_PROFILE_COUNTERS. Handle TARGET_SECURE_PLT. Use "bcl 20,31"
1322 for -fPIC. Delete save_lr and substitute its value into strings.
1324 2005-06-09 Dale Johannesen <dalej@apple.com>
1326 * config/i386/i386.c (optimization_options): Make -fno-math-errno
1327 the default on Darwin.
1328 * config/rs6000/rs6000.c (optimization_options): Ditto.
1329 * doc/invoke.texi (-fno-math-errno): Document.
1331 2005-06-09 Dale Johannesen <dalej@apple.com>
1333 * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
1334 Change to TARGET_INVALID_WITHIN_DOLOOP.
1336 2005-06-09 David Edelsohn <edelsohn@gnu.org>
1338 * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
1339 * config/rs6000/predicates.md (scc_eq_operand): New.
1341 2005-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
1343 * config/sh/sh.md (mextr_rl): Set buffer size properly.
1344 (*mextr_lr): Likewise.
1346 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.net>
1349 * c.opt (Wc++-compat): New.
1350 * doc/invoke.texi (-Wc++-compat): Document.
1351 * c-typeck.c (convert_for_assignment): Check for implicit
1352 conversion void* -> T*.
1354 2005-06-09 Gabriel Dos Reis <gdr@integrable-solutions.edu>
1356 * machmode.h (to_machine_mode): New.
1357 * rtl.h (to_rtx_code): Likewise.
1358 * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
1359 (print_c_condition): Convert return value of htab_find().
1360 (apply_code_macro): Add explicit cast when convertin to enums.
1361 (apply_mode_maps): Likewise.
1362 (check_code_macro): Likewise.
1363 (read_rtx_1): Likewise.
1365 2005-06-09 Richard Henderson <rth@redhat.com>
1367 * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
1368 Use SCALAR_FLOAT_MODE_P.
1369 * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
1370 (fselect): Rename from fpcmp; use %F.
1373 2005-06-09 Jan Hubicka <jh@suse.cz>
1375 * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
1376 local statics when doing unit-at-a-time.
1377 (cgraph_varpool_assemble_pending_decls): Output debug info.
1378 * dwarf2out.c (decls_for_scope): Skip local statics.
1379 (dwarf2out_decl): Handle local statics.
1380 * passes.c (rest_of_decl_compilation): Do not differentiate
1381 local and global statics in unit-at-a-time.
1382 * tree-inline.c (remap_decls): Put local static into
1383 unexpanded_vars_list rather than introducing duplicated VAR_DECL
1386 2005-06-09 Daniel Berlin <dberlin@dberlin.org>
1388 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
1391 2005-06-08 Daniel Berlin <dberlin@dberlin.org>
1393 * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
1394 * tree-flow.h (find_what_p_points_to): Add prototype.
1395 (push_fields_onto_fieldstack): Ditto.
1396 (sort_fieldstack): Ditto.
1397 * tree-optimize.c (init_tree_optimization_passes): Add
1398 pass_build_pta and pass_del_pta.
1399 * tree-pass.h (pass_build_pta): New structure.
1400 (pass_del_pta): Ditto.
1401 * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
1402 using new alias analyzer.
1403 (push_fields_onto_fieldstack): Removed from here.
1404 (bitpos_of_field): Ditto.
1405 (fieldoff_compare): Ditto.
1406 * tree-ssa-structalias.c: New file.
1407 * tree-ssa-structalias.h: Ditto.
1409 2005-06-09 Nathan Sidwell <nathan@codesourcery.com>
1411 * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
1414 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
1416 * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
1417 * config/bfin/bfin.h (enum bfin_builtins): ... here.
1419 2005-06-09 Adrian Straetling <straetling@de.ibm.com>
1421 * target.h (insn_valid_within_doloop): Rename into
1422 "invalid_within_doloop". Change return type to "const char *".
1424 * targhooks.h (default_insn_valid_within_doloop): Rename into
1425 "default_invalid_within_doloop".
1426 * targhooks.c (default_insn_valid_within_doloop): Likewise.
1428 * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
1429 into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
1430 "default_invalid_within_doloop".
1431 * hooks.c (hook_constcharptr_rtx_null): New function.
1432 (hook_bool_rtx_true): Remove.
1433 * hooks.h (hook_constcharptr_rtx_null): Declare.
1434 (hook_bool_rtx_true): Remove.
1435 * loop-doloop.c (doloop_valid_p): Temporarily store return value of
1436 "invalid_within_doloop" and print error message if non-null.
1438 * doc/tm.texi: Update documentation.
1439 * config/s390/s390.c: Adjust to new hook name and new default hook.
1440 * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
1441 into "rs6000_invalid_within_doloop".
1442 (rs6000_invalid_within_doloop): Change return type to "static const
1443 char *" and replace return values. Update Comment.
1445 2005-06-09 Bernd Schmidt <bernd.schmidt@analog.com>
1447 * config/bfin/bfin.opt (mlong-calls): New.
1448 * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
1449 if TARGET_LONG_CALLS.
1451 2005-06-09 Richard Henderson <rth@redhat.com>
1454 * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
1455 (struct tree_decl): Add gimple_reg_flag.
1456 * integrate.c (copy_decl_for_inlining): Copy it.
1457 * gimplify.c (internal_get_tmp_var): Set it.
1458 (gimplify_bind_expr): Likewise.
1459 (gimplify_function_tree): Likewise.
1460 (gimplify_modify_expr_complex_part): New.
1461 (gimplify_modify_expr): Use it.
1462 * tree-gimple.c (is_gimple_reg_type): Allow complex.
1463 (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
1465 * tree-complex.c (complex_lattice_t): New.
1466 (complex_lattice_values, complex_variable_components): New.
1467 (some_nonzerop, find_lattice_value, is_complex_reg,
1468 init_parameter_lattice_values, init_dont_simulate_again,
1469 complex_visit_stmt, complex_visit_phi, create_components,
1470 update_complex_components, update_parameter_components,
1471 update_phi_components, update_all_vops, expand_complex_move): New.
1472 (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
1474 (update_complex_assignment): Use update_complex_components;
1475 handle updates of return_expr properly.
1476 (expand_complex_addition): Use complex lattice values.
1477 (expand_complex_multiplication): Likewise.
1478 (expand_complex_division): Likewise.
1479 (expand_complex_libcall): Use update_complex_components.
1480 (expand_complex_comparison): Use update_stmt.
1481 (expand_complex_operations_1): Use expand_complex_move, retrieve
1483 (tree_lower_complex): Compute lattice values.
1484 (tree_lower_complex_O0): Duplicate from tree_lower_complex.
1485 (pass_lower_complex_O0): Rename from pass_lower_complex.
1486 (pass_lower_complex, gate_no_optimization): New.
1487 * tree-optimize.c (init_tree_optimization_passes): Update for
1488 complex pass changes.
1489 * tree-pass.h (pass_lower_complex_O0): Declare.
1491 2005-06-08 Dale Johannesen <dalej@apple.com>
1493 * config/darwin.c (darwin_binds_local_p): New.
1494 * config/darwin-protos.h (darwin_binds_local_p): Declare it.
1495 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
1496 * config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
1497 (TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
1499 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
1501 * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
1502 rs6000_isel, rs6000_spe, rs6000_alignment_string,
1503 rs6000_sched_restricted_insns_priority_str,
1504 rs6000_sched_restricted_insns_priority, rs6000_abi_string.
1506 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
1508 * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
1509 instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
1510 * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
1511 multiplier_allowed_in_address_p, get_address_cost): Ditto.
1513 2005-06-08 Richard Henderson <rth@redhat.com>
1515 * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
1516 * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
1517 Emit out3 load right after alloc.
1519 2005-06-08 Aldy Hernandez <aldyh@redhat.com>
1521 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1522 rs6000_explicit_options.
1524 2005-06-08 Richard Henderson <rth@redhat.com>
1526 * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
1527 * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
1529 * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
1531 2005-06-08 Joseph S. Myers <joseph@codesourcery.com>
1533 * config/sol2-c.c (cmn_err_char_table): Allow width for %b
1536 2005-06-08 James A. Morrison <phython@gcc.gnu.org>
1539 * config/sparc/sparc.c (sparc_fold_builtin): New function
1540 (sparc_vis_mul8x16): New function.
1541 (sparc_handle_vis_mul8x16): New function.
1542 (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
1544 2005-06-08 David Edelsohn <edelsohn@gnu.org>
1546 * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
1548 (call_indirect_nonlocal_aix64): Same.
1549 (call_value_indirect_nonlocal_aix32): Same.
1550 (call_value_indirect_nonlocal_aix64): Same.
1553 (eq): Use CLZ splitter for compare with zero.
1555 2005-06-08 Bernd Schmidt <bernd.schmidt@analog.com>
1557 * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
1558 everything larger than 8 bytes in memory.
1560 * config/bfin/bfin.h (enum bfin_builtins): New.
1561 * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
1563 (csync, ssync): New insn patterns.
1564 * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
1566 (def_builtin): New macro.
1567 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1569 From Jie Zhang <jie.zhang@analog.com>
1570 * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
1571 behavior of the native assembler in VDSP. So change accordingly.
1573 2005-06-08 Sebastian Pop <pop@cri.ensmp.fr>
1575 * tree-data-ref.c (compute_estimated_nb_iterations,
1576 analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
1577 analyze_subscript_affine_affine, find_data_references_in_loop):
1578 Fixed to use chrec_contains_undetermined to test the values of
1579 loop->estimated_nb_iterations.
1580 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
1581 Compute the estimation only when loop->estimated_nb_iterations
1582 has not yet been initialized.
1583 (convert_step_widening, scev_probably_wraps_p): Add a call to
1584 estimate_numbers_of_iterations_loop.
1585 * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
1587 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1590 * dwarf2out.c (add_loc_descr_op_piece): Move to the
1591 DWARF2_DEBUGGING_INFO section.
1593 2005-06-08 Richard Henderson <rth@redhat.com>
1596 * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
1598 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr>
1601 * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
1602 * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
1603 (TARGET_ASM_OUT): Add it.
1604 * doc/tm.texi (Debugging Info): Document it.
1605 * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
1606 Test it instead of ASM_OUTPUT_DWARF_DTPREL.
1607 (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
1608 * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
1609 * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
1610 * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
1611 (gen_inlined_tls_plt): Remove unused variable MEM.
1612 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
1613 * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1614 * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
1615 * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
1617 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
1618 * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1619 * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
1620 * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
1622 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
1623 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1624 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
1625 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
1627 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
1628 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1629 * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
1630 * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
1632 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
1633 * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1634 * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
1635 (TARGET_GNU_TLS): Define to 1.
1636 * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
1637 * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
1639 (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
1640 if TARGET_GNU_TLS only.
1641 * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1643 * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
1644 (sparc-*-solaris2*): Likewise on Solaris 7 and up.
1646 2005-06-07 Dale Johannesen <dalej@apple.com>
1648 * config/i386/i386.md (movqi_1): Fix case where source
1649 is memory and destination EDI.
1651 2005-06-08 Kazu Hirata <kazu@codesourcery.com>
1653 * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
1655 2005-06-07 Eric Christopher <echristo@redhat.com>
1657 * system.h: Poison EXTRA_CC_MODES.
1658 * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
1659 * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
1660 * doc/md.texi (Jump Patterns): Replace reference to
1661 EXTRA_CC_MODES with machine-modes.def.
1662 * doc/rtl.texi (Machine Modes): Ditto.
1664 2005-06-07 Richard Henderson <rth@redhat.com>
1666 * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
1667 (assemble_start_function): Fix strcmp confusion.
1669 2005-06-07 Uros Bizjak <uros@kss-loka.si>
1671 * config/i386/i386.h (enum ix86_entity): New.
1672 (enum ix86_stack_slot): New.
1673 (OPTIMIZE_MODE_SWITCHING): Redefine to use
1674 ix86_optimize_mode_switching[] array.
1675 (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
1676 (MODE_NEEDED): Use ix86_mode_needed() function.
1677 (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
1679 (struct machine_function): Use optimize_mode_switching[] array.
1681 * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
1682 (ix86_mode_needed): New function.
1683 (emit_i387_cw_initialization): Cleanup. Use mode to calculate
1684 correct stack positions for stored control words.
1685 (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
1686 (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
1688 [IX86_BUILTIN_STMXCSR]: Same.
1690 * config/i386/i386-protos.h (assign_stack_local): Change prototype.
1691 (emit_i387_cw_initialization): Change prototype.
1692 (ix86_mode_needed): New prototype.
1694 * config/i386/i386.md (i387_cw attribute): Change order of elements.
1695 (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
1696 (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
1697 (*fist<mode>2_ceil_1): Change constant in call to
1698 assign_386_stack_local to SLOT_TEMP.
1699 (*fix_trunc<mode>_i387_1): Change constant in call to
1700 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
1701 Use new ix86_optimize_mode_switching[] array.
1702 (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
1703 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
1704 Use new ix86_optimize_mode_switching[] array.
1705 (frndintxf2_ceil, *fist<mode>2_ceil_1): Change constants in call to
1706 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
1707 Use new ix86_optimize_mode_switching[] array.
1708 (frndintxf2_trunc): Change constants in call to
1709 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
1710 Use new ix86_optimize_mode_switching[] array.
1711 (frndintxf2_mask_pm): Change constants in call to
1712 assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
1713 Use new ix86_optimize_mode_switching[] array.
1715 (define_peephole2): Change constant from 17 to FLAGS_REG;
1717 2005-06-07 Richard Henderson <rth@redhat.com>
1720 * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
1722 2005-06-07 Dale Johannesen <dalej@apple.com>
1724 * tree-nested.c (finalize_nesting_tree_1): Disable
1725 warn_padded around layout_type call.
1727 2005-06-08 Zdenek Dvorak <dvorakz@suse.cz>
1729 * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
1732 2005-06-07 Eric Christopher <echristo@redhat.com>
1734 * config/mips/predicates.md: Revert previous patch.
1736 2005-06-07 Jakub Jelinek <jakub@redhat.com>
1739 * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
1742 2005-06-07 Diego Novillo <dnovillo@redhat.com>
1744 * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
1745 (thread_stats): New local variable.
1746 (redirect_edges): Increment count of threaded edges.
1747 (thread_through_all_blocks): Initialize thread_stats.
1748 Display number of threaded jumps if TDF_STATS is enabled.
1750 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
1752 * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
1753 the current bit index with no modulo.
1755 2005-06-07 Sebastian Pop <pop@cri.ensmp.fr>
1757 PR 18403 and meta PR 21861.
1758 * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
1759 * tree-chrec.c: Include cfgloop.h and tree-flow.h.
1760 (evolution_function_is_invariant_rec_p,
1761 evolution_function_is_invariant_p): New.
1762 (chrec_convert): Use an extra parameter AT_STMT for refining the
1763 information that is passed down to convert_step. Integrate the
1764 code that was in count_ev_in_wider_type.
1765 * tree-chrec.h (count_ev_in_wider_type): Removed.
1766 (chrec_convert): Modify its declaration.
1767 (evolution_function_is_invariant_p): Declared.
1768 (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
1769 * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
1770 (scev_probably_wraps_p): Declared.
1771 * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
1772 (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
1773 Use an extra parameter AT_STMT for refining the information that is
1774 passed down to convert_step.
1775 (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
1776 analyze_scalar_evolution_1): Initialize AT_STMT with the current
1778 (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
1779 * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of
1780 can_count_iv_in_wider_type to use convert_step.
1781 * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move
1782 code that is independent of the loop over the known iteration
1783 bounds to convert_step_widening, the rest is moved to
1784 proved_non_wrapping_p.
1785 (scev_probably_wraps_p): New.
1786 (can_count_iv_in_wider_type): Renamed convert_step.
1787 * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
1788 Use scev_probably_wraps_p for computing init_is_max.
1789 (vrp_visit_assignment): Pass the current analyzed statement to
1790 adjust_range_with_scev.
1791 (execute_vrp): Call estimate_numbers_of_iterations for refining the
1792 information provided by scev analyzer.
1794 2005-06-07 Eric Christopher <echristo@redhat.com>
1796 * config/mips/predicates.md (sleu_operand): Use
1797 IN_RANGE to specify range of operand.
1799 2005-06-07 Steven Bosscher <stevenb@suse.de>
1801 PR tree-optimization/21847
1802 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
1803 -fnon-call-exceptions, also mark statements inherently
1804 necessary if they may throw.
1806 2005-06-07 Adrian Straetling <straetling@de.ibm.com>
1808 * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
1809 ("type"): Add "sem" to 'type' attribute.
1810 ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
1811 "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
1812 "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
1813 "*sync_compare_and_swap_ccsi"): New patterns.
1814 * config/s390/2064.md: ("z_sem"): New insn_reservation.
1815 * config/s390/2084.md: ("x_sem"): New insn_reservation.
1816 * config/s390/s390.c: (s390_compare_emitted): New global variable.
1817 (s390_emit_compare): Do not emit comparison again after cas.
1818 * config/s390/s390.h (s390_compare_emitted): Declare.
1820 2005-06-07 Kazu Hirata <kazu@codesourcery.com>
1822 * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
1823 sbitmap_iter_cond, sbitmap_iter_next): New.
1824 * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
1825 modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
1826 tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
1827 uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
1829 2005-06-07 Zdenek Dvorak <dvorakz@suse.cz>
1831 * tree-ssa-address.c: New file.
1832 * Makefile.in (tree-ssa-address.o): Add.
1833 * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
1834 INDIRECT_REFs. Handle TARGET_MEM_REFs.
1835 * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
1836 * tree-flow.h (struct mem_address): New.
1837 (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
1838 (create_mem_ref, addr_for_mem_ref, get_address_description,
1839 maybe_fold_tmr, multiplier_allowed_in_address_p,
1840 multiply_by_cost): Declare.
1841 * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
1842 * tree-pretty-print.c (dump_generic_node): Ditto.
1843 * tree-ssa-loop-im.c (for_each_index): Ditto.
1844 * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
1845 find_interesting_uses_address): Ditto.
1846 (rewrite_address_base, build_addr_strip_iref): Removed.
1847 (struct affine_tree_combination): Moved to tree-flow.h.
1848 (get_ref_tag, copy_ref_info): New functions.
1849 (rewrite_use_address): Produce TARGET_MEM_REFs.
1850 (tree_ssa_iv_optimize): Do not call update_ssa
1851 and rewrite_into_loop_closed_ssa.
1852 (tree_to_aff_combination): Use build_fold_addr_expr instead of
1853 build_addr_strip_iref.
1854 (unshare_aff_combination): New function.
1855 (fold_affine_sum): Removed.
1856 (get_computation_at): Use get_computation_aff. Unshare the result.
1857 (get_computation_aff, multiplier_allowed_in_address_p): New function.
1858 (multiply_by_cost): Exported.
1859 (get_address_cost): Use multiplier_allowed_in_address_p.
1860 * tree-ssa-operands.c (get_tmr_operands): New function.
1861 (get_expr_operands): Handle TARGET_MEM_REFs.
1862 * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
1863 (build): Handle 7 arguments.
1864 (build7_stat): New function.
1865 * tree.def (TARGET_MEM_DEF): New.
1866 * tree.h (REF_ORIGINAL): Removed.
1867 (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
1868 TMR_TAG, build7): New macros.
1869 (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
1870 * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
1871 * doc/c-tree.texi: Document TARGET_MEM_REF.
1872 * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
1874 2005-06-07 Jakub Jelinek <jakub@redhat.com>
1877 * dwarf2out.c (add_loc_descr_op_piece): New function.
1878 (multiple_reg_loc_descriptor, concat_loc_descriptor,
1879 loc_descriptor): Use it.
1880 * var-tracking.c: Include regs.h and expr.h.
1881 (emit_note_insn_var_location): Skip over pieces where offset
1882 is smaller than previous offset plus previous piece mode size.
1883 Optimize adjacent hard registers or memory locations.
1884 * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
1886 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
1888 * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
1890 * gimplify.c (gimplify_cond_expr): No need to fix up the
1893 2005-06-07 Richard Guenther <rguenth@gcc.gnu.org>
1895 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
1898 2005-06-07 Geoffrey Keating <geoffk@apple.com>
1900 * config/rs6000/host-darwin.c (segv_handler): Widen the possible
1901 'stwux' instructions that are considered to be stack decrements.
1903 * rtlanal.c (subreg_offset_representable_p): Handle objects
1906 2005-06-06 Uros Bizjak <uros@kss-loka.si>
1908 * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
1909 in call to pre_edge_lcm.
1911 2005-06-06 Kaz Kojima <kkojima@gcc.gnu.org>
1913 * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
1914 (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
1915 (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
1917 (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
1918 dwarf register number for SHmedia.
1919 (shmedia_fallback_frame_state): New.
1920 (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
1922 * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
1924 2005-06-06 Gabriel Dos Reis <gdr@integrable-solutions.net>
1926 * c-lex.c (lex_string): Use XOBFINISH.
1927 * collect2.c (extract_string, dump_file): Likewise.
1928 * dbxout.c (dbxout_finish_complex_stabs): Likewise.
1929 * gcc.c (init_spec, build_search_list, convert_filename,
1930 set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
1931 * genpreds.c (write_predicate_subfunction): Likewise.
1932 * genflags.c (main): Likewise.
1933 * read-rtl.c (mode_attr_index, apply_macro_to_string,
1934 join_c_conditions, read_quoted_string, read_braced_string,
1935 read_rtx_1): Likewise.
1936 * stringpool.c (ggc_alloc_string): Likewise.
1937 * tlink.c (obstack_fgets, recompile_files): Likewise.
1939 2005-06-06 Jakub Jelinek <jakub@redhat.com>
1941 * intl.h (G_): New macro.
1942 * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
1943 instead of msgid for argument name.
1944 * tree-ssa.c (warn_uninit): Likewise.
1945 * c-parser.c (c_parser_error): Likewise.
1946 * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
1947 * config/darwin-c.c (BAD): Likewise.
1948 * config/c4x/c4x-c.c (BAD): Likewise.
1949 * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
1950 * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
1951 * c-common.c (c_parse_error): Likewise.
1952 * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
1953 warning0, pedwarn, error, sorry, fatal_error, internal_error):
1955 (fnotice): Use cmsgid instead of msgid for argument name.
1956 * gcov.c (fnotice): Likewise.
1957 * protoize.c (notice): Likewise.
1958 * final.c (output_operand_lossage): Likewise.
1959 * gcc.c (fatal, notice): Likewise.
1960 (error): Use gmsgid instead of msgid for argument name.
1961 * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
1962 of msgid for argument name.
1963 (error): Use gmsgid instead of msgid for argument name.
1964 * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
1966 * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
1967 * tree-inline.c (inline_forbidden_p_1): Likewise.
1968 * ABOUT-GCC-NLS: Require gettext 0.14.5 or later. Mention the new
1969 conventions for marking translations.
1970 * doc/install.texi: Mention gettext 0.14.5 or later requirement.
1972 * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
1975 * fold-const.c (operand_equal_p): Don't return 1, if element
1976 chains for 2 VECTOR_CSTs are not the same length.
1979 * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
1980 not all VECTOR_CST elements are given.
1982 * combine.c (try_combine): Use hard_regno_nregs array instead of
1983 HARD_REGNO_NREGS macro.
1984 * config/rs6000/rs6000.c (rs6000_split_multireg_move,
1985 rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
1986 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
1988 2005-06-06 Daniel Berlin <dberlin@dberlin.org>
1990 * tree-ssa-reassoc.o: New.
1991 (OBJS-common): Add tree-ssa-reassoc.o
1992 * timevar.def: Add TV_TREE_REASSOC
1993 * tree-optimize.c (pass_reassoc): Add call.
1994 * tree-pass.h (pass_reassoc): Add.
1995 * tree-ssa-reassoc.c: New file.
1997 2005-06-06 Eric Christopher <echristo@redhat.com>
2000 * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2002 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2004 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2005 HAVE_GAS_MAX_SKIP_P2ALIGN.
2006 (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2008 2005-06-06 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
2010 * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
2011 getopt.h dependency.
2012 (mips-tdump.o): Likewise.
2014 2005-06-06 Jan Hubicka <jh@suse.cz>
2016 * predict.c (tree_predict_edge): Don't drop useless predictions;
2017 check that it is not called too late in the game.
2018 (gate_estimate_probability): New gate.
2019 (pass_profile): Gate.
2020 * tree-mudflap.c (mf_build_check_statement_for): Do not drop
2021 predictions; update CFG instead.
2022 * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2024 2005-06-06 Jie Zhang <jie.zhang@analog.com>
2026 * config.gcc (bfin*-uclinux*): New.
2027 * config/bfin/uclinux.h: New file.
2029 2005-06-06 Ben Elliston <bje@au.ibm.com>
2031 * doc/md.texi (Insn Splitting): Fix some wording.
2033 2005-06-05 David Edelsohn <edelsohn@gnu.org>
2035 * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
2036 (rs6000_emit_swdivdf): New function.
2037 * config/rs6000/rs6000.md (fres): New pattern.
2038 (divsf3): Add approximation through rs6000_emit_swdivsf.
2039 (fred): New pattern.
2040 (divdf3): Add approximation through rs6000_emit_swdivdf.
2041 * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
2042 (rs6000_emit_swdivdf): Declare.
2043 * config/rs6000/rs6000.opt (mswdiv): New option.
2044 * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2046 2005-06-05 Zdenek Dvorak <dvorakz@suse.cz>
2048 PR tree-optimization/21846
2049 * tree-cfg.c (replace_uses_by): Update information stored at loops.
2050 * tree-flow.h (substitute_in_loop_info): Declare.
2051 * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
2052 Ensure that chrec_dont_know and chrec_known have a type.
2053 * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2055 2005-06-05 Steven Bosscher <stevenb@suse.de>
2057 * config/i386/i386.c (x86_use_loop): Remove.
2058 * config/i386/i386.h (x86_use_loop): Remove extern decl.
2059 (TARGET_USE_LOOP): Remove.
2060 * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
2061 Also remove related define_splits.
2063 2005-06-05 Dorit Nuzman <dorit@il.ibm.com>
2065 * tree-flow.h (stmt_ann_d): Move aux to ...
2066 (tree_ann_common_d): ... here.
2067 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2068 move_computations_stmt, schedule_sm): Update references to
2070 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2071 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2072 call to set_stmt_info.
2073 (vect_transform_loop): Likewise.
2074 * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
2077 * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
2079 (vect_mark_relevant): Takes two additional arguments - live_p and
2080 relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
2081 (vect_stmt_relevant_p): Differentiate between a live stmt and a
2082 relevant stmt. Return two values = live_p and relevant_p.
2083 (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
2084 vect_stmt_relevant_p with additional arguments. Phis are no longer
2085 put into the worklist (analyzed seperately in analyze_scalar_cycles).
2086 (vect_determine_vectorization_factor): Also check for LIVE_P, because a
2087 stmt that is marked as irrelevant and live, cause it's only used out
2088 side the loop, may need to be vectorized (e.g. reduction).
2089 (vect_analyze_operations): Examine phis. Call
2090 vectorizable_live_operation for for LIVE_P stmts. Check if
2092 (vect_analyze_scalar_cycles): Update documentation. Don't fail
2093 vectorization - just classify the scalar cycles created by the loop
2094 phis. Call vect_is_simple_reduction.
2095 (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
2096 * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2097 call to set_stmt_info.
2098 (vect_get_vec_def_for_operand): Code reorganized - the code that
2099 classifies the type of use was factored out to vect_is_simple_use.
2100 (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
2101 additional arguments.
2102 (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
2103 and computes a loop_vec_def.
2104 (vectorizable_operation, vectorizable_load, vectorizable_condition):
2106 (vectorizable_live_operation): New.
2107 (vect_transform_stmt): Handle LIVE_P stmts.
2108 * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
2109 STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
2110 (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
2111 (vect_is_simple_use): Determine the type of the def and return it
2112 in a new function argument. Consider vect_reduction_def and
2113 vect_induction_def, but for now these are not supported.
2114 (vect_is_simple_reduction): New. Empty for now.
2115 * tree-vectorizer.h (vect_def_type): New enum type.
2116 (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
2117 (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
2118 (vect_is_simple_use): New arguments added to function declaration.
2119 (vect_is_simple_reduction): New function declaration.
2120 (vectorizable_live_operation): New function declaration.
2122 * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
2123 (vect_can_advance_ivs_p): Likewise.
2124 * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2126 2005-06-05 Eric Christopher <echristo@redhat.com>
2128 * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2130 2005-06-05 Hans-Peter Nilsson <hp@bitrange.com>
2133 * config/mmix/mmix.md ("*movdicc_real_foldable")
2134 ("*movdfcc_real_foldable", "*bCC_foldable")
2135 ("*bCC_inverted_foldable"): Specify DImode for register being
2138 2005-06-04 Roger Sayle <roger@eyesopen.com>
2140 * reg-stack.c (struct block_info_def): Correct grammar typo.
2141 (compensate_edge): Clean-up. Perform as little work as possible
2142 when src and dest stacks match. Avoid modifying block_info.
2143 Reorder and simplify assertion checks. Avoid unnecessary copying
2144 of regstack structure.
2145 (convert_regs_1): Set the done flag here...
2146 (convert_regs_2): ... instead of here.
2148 2005-06-04 Dale Johannesen <dalej@apple.com>
2150 * config/rs6000/rs6000.c (no_global_regs_above): New.
2151 (rs6000_emit_prologue): Use it; cosmetic formatting fixes.
2152 (rs6000_emit_epilogue): Use it; cosmetic formatting fixes.
2153 (rs6000_conditional_register_usage): Don't put Darwin PIC
2154 register in global_regs.
2155 (rs6000_stack_info): Don't set lr_save_p just because Darwin
2157 (rs6000_emit_prologue): Save LR in R0 around Darwin PIC setup,
2158 if not done by lr_save_p.
2159 * config/rs6000/rs6000.md (insnv1_internal1): Back out 05-18 patch.
2160 Use rotate instead of ashift.
2161 (call_indirect_nonlocal_sysv): Prefer CTR to LR.
2162 (call_value_indirect_nonlocal_sysv): Ditto.
2164 2005-06-04 Jan Hubicka <jh@suse.cz>
2166 * cgraphunit.c (cgraph_reset_node): Break out from ...
2167 (cgraph_finalize_function): ... here.
2168 (cgraph_finalize_compilation_unit): Reset nodes where backend
2171 2005-06-04 Richard Henderson <rth@redhat.com>
2174 * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2175 until we've passed initial ldgp.
2177 2005-06-04 Daniel Berlin <dberlin@dberlin.org>
2179 * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2180 * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
2181 * expr.c (expand_var): Ditto.
2182 * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
2183 * gimplify.c (gimplify_decl_expr): Ditto.
2184 (gimplify_expr): Ditto.
2185 * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
2186 * tree.c (value_expr_for_decl): New.
2187 (print_value_expr_statistics): New.
2188 (init_ttree): Init value_expr_for_decl.
2189 (decl_value_expr_lookup): New.
2190 (decl_value_expr_insert): Ditto.
2191 (copy_node_stat): Copy DECL_VALUE_EXPR status.
2192 * tree.h (DECL_VALUE_EXPR): Use hashtable.
2193 (SET_DECL_VALUE_EXPR): New.
2194 (DECL_HAS_VALUE_EXPR_P): New.
2196 2005-06-04 Steven Bosscher <stevenb@suse.de>
2198 * lcm.c: Move all mode-switching related functions from here...
2199 * mode-switching.c: ...to this new file.
2200 * doc/passes.texi: Update accordingly.
2202 * basic-block.h (label_value_list): Remove extern decl.
2203 * cfgrtl.c (label_value_list): Remove.
2204 (can_delete_label_p): Don't look at it.
2205 * cfgcleanup.c (cleanup_cfg): Don't free it.
2207 * common.opt: Don't refer to non-existing flag_alias_check.
2209 2005-06-04 David Edelsohn <edelsohn@gnu.org>
2211 * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
2213 2005-06-04 Kazu Hirata <kazu@codesourcery.com>
2215 * function.c (prologue, epilogue, sibcall_epilogue): Change
2216 their types to VEC(int,heap)*.
2217 (free_after_compilation): Free the three vectors above.
2218 (init_function_for_compilation, record_insns, contains,
2219 prologue_epilogue_contains, sibcall_epilogue_contains,
2220 reposition_prologue_and_epilogue_notes): Use VEC instead of
2221 VARRAY. (init_function_once): Remove.
2222 * function.h: Remove the prototype for init_function_once.
2223 * toplev.c (backend_init): Don't call init_function_once.
2225 2005-06-04 Jan Hubicka <jh@suse.cz>
2227 * predict.c (tree_predict_edge): Do not predict entry edge and
2228 single succestor edge.
2230 2005-06-04 Joseph S. Myers <joseph@codesourcery.com>
2233 * c-typeck.c (push_init_level): Don't pop levels without braces if
2236 2005-06-03 Sebastian Pop <pop@cri.ensmp.fr>
2238 * tree-data-ref.c (compute_self_dependence): New function.
2239 (compute_all_dependences): Use it.
2241 2005-06-03 Geoffrey Keating <geoffk@apple.com>
2243 * c-parser.c (c_parser_parms_declarator): Don't use chainon().
2244 (c_parser_expr_list): Don't use chainon().
2246 * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
2247 when -isysroot passed.
2249 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
2252 * c-decl.c (start_function): Restore label_context_stack_se and
2253 label_context_stack_vm if returning with an error.
2255 2005-06-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
2257 * configure.ac: Check declaration for asprintf, needed by
2259 * configure: Regenerate.
2260 * config.in: Likewise.
2262 2005-06-03 Diego Novillo <dnovillo@redhat.com>
2264 * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
2265 allocate info array.
2266 * tree-vrp.c (extract_range_from_unary_expr): Set resulting
2267 range to varying in cast expressions that change
2270 2005-06-03 Eric Christopher <echristo@redhat.com>
2272 * config/mips/mips.opt: Add RejectNegative to divide-breaks and
2275 2005-06-03 Jan Hubicka <jh@suse.cz>
2277 * basic-block.h (remove_predictions_associated_with_edge): Declare.
2278 * cfg.c (remove_edge): Use it.
2279 * predict.c (remove_predictions_associated_with_edge): New function.
2281 2005-06-03 Pat Haugen <pthaugen@us.ibm.com>
2283 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2284 Clear call_realy_used_regs[r2] when ABI_AIX.
2286 2005-06-03 Richard Guenther <rguenth@gcc.gnu.org>
2289 * fold-const.c (fold_binary): Fix type mismatches in folding
2292 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
2294 * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
2297 2005-06-03 Joseph S. Myers <joseph@codesourcery.com>
2299 * collect2.c (maybe_unlink): Use unlink_if_ordinary.
2301 2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
2303 * reload1.c (reload): Revert my previous patch.
2305 2005-06-03 Nick Clifton <nickc@redhat.com>
2307 * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
2310 2005-06-03 Kazu Hirata <kazu@codesourcery.com>
2312 PR tree-optimization/21849
2313 * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
2315 2005-06-02 Richard Henderson <rth@redhat.com>
2317 * Makefile.in (tree-vect-generic.o): New.
2318 (OBJS-common, GTFILES, s-gtype): Add it.
2319 * tree-complex.c (build_replicated_const, vector_inner_type,
2320 vector_last_type, vector_last_nunits, build_word_mode_vector_type,
2321 elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
2322 do_negate, expand_vector_piecewise, expand_vector_parallel,
2323 expand_vector_addition, expand_vector_operation,
2324 type_for_widest_vector_mode, expand_vector_operations_1,
2325 gate_expand_vector_operations, expand_vector_operations,
2326 pass_lower_vector_ssa): Move to tree-vect-generic.c.
2327 (tree_lower_complex): Rename from tree_lower_operations.
2328 (pass_lower_complex): Rename from pass_pre_expand.
2329 * tree-vect-generic.c: New file.
2330 * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
2331 (pass_lower_vector): New.
2332 * tree-optimize.c (init_tree_optimization_passes): Update to match.
2334 2005-06-02 Richard Henderson <rth@redhat.com>
2336 * modulo-sched.c (doloop_register_get): Protect against
2337 doloop_end not defined.
2339 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
2341 * config/sh/sh.c (general_movsrc_operand,
2342 general_movdst_operand, arith_reg_operand, arith_reg_dest,
2343 logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
2344 fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
2345 xor_operand, cmp_operand, logical_operand, and_operand,
2346 fpscr_operand, fpul_operand, symbol_ref_operand,
2347 commutative_float_operator, noncommutative_float_operator,
2348 unary_float_operator, binary_float_operator,
2349 binary_logical_operator, equality_comparison_operator,
2350 greater_comparison_operator, less_comparison_operator,
2351 shift_operator, logical_operator, target_reg_operand,
2352 target_operand, mextr_bit_offset, extend_reg_operand,
2353 trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
2354 general_extend_operand, ua_address_operand,
2355 cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
2356 sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
2357 shift_count_reg_operand, shift_count_operand,
2358 unaligned_load_operand): Move to ...
2359 * config/sh/predicates.md: ... here.
2360 * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2363 2005-06-02 Andrew Pinski <pinskia@physics.uc.edu>
2365 * tree.c (build_common_builtin_nodes): Fix the return type on
2368 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
2370 * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
2371 (find_interesting_uses_address): Use build_fold_addr_expr instead.
2372 (strip_offset_1): Likewise.
2373 (tree_to_aff_combination): Likewise.
2375 2005-06-02 DJ Delorie <dj@redhat.com>
2377 * convert.c (convert_to_pointer): Avoid recursion if no conversion
2380 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
2382 * tree-chrec.c (chrec_fold_plus_1): Ensure we build
2383 binary operations with the correct types.
2384 * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
2385 for all computation.
2387 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
2389 * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
2390 config/rs6000/rs6000.md: Fix comment typos. Follow splling
2392 * doc/install.texi: Fix a typo.
2394 2005-06-02 Jan Hubicka <jh@suse.cz>
2396 * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
2397 inline functions are not local.
2399 2005-06-02 Kazu Hirata <kazu@codesourcery.com>
2401 * gimplify.c (gimplify_ctx): Change the type of case_labels to
2403 (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
2406 2005-06-02 Richard Guenther <rguenth@gcc.gnu.org>
2408 * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
2411 2005-06-02 Ulrich Weigand <uweigand@de.ibm.com>
2413 * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
2415 (s390_dump_pool): Likewise.
2416 (s390_mainpool_start, s390_mainpool_finish): Likewise.
2417 (s390_chunkify_start): Likewise.
2418 (s390_dump_execute): Remove.
2419 (s390_reorg): Handle out-of-pool execute templates.
2421 2005-06-02 Adrian Straetling <straetling@de.ibm.com>
2423 * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
2426 2005-06-02 Jan Hubicka <jh@suse.cz>
2428 * cgraph.c (cgraph_node): Maintain master clones.
2429 (cgraph_remove_node): Likewise.
2430 (availability_names): New static variable.
2431 (dump_cgraph_node): Dump availability.
2432 (dump_cgraph_varpool_node): Likewise.
2433 (cgraph_is_master_clone, cgraph_master_clone,
2434 cgraph_function_body_availability,
2435 cgraph_variable_initializer_availability): New functions.
2436 * cgraph.h (availability): New enum.
2437 (struct cgraph_node): Add master_clone.
2438 (cgraph_is_master_clone, cgraph_master_clone,
2439 cgraph_function_body_availability,
2440 cgraph_variable_initializer_availability): Declare.
2441 * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
2442 (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
2443 * ipa-inline.c (cgraph_decide_inlining): Do not call
2444 cgraph_remove_unreachable_nodes.
2446 * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
2449 2005-06-02 Diego Novillo <dnovillo@redhat.com>
2452 * tree-vrp.c (nonnull_arg_p): New.
2453 (get_value_range): Call it.
2455 2005-06-02 Eric Christopher <echristo@redhat.com>
2457 * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
2459 (mips_rtx_cost_data): New datatype.
2460 (MEMORY_MOVE_COST): Use data from structure.
2461 (BRANCH_COST): Ditto.
2462 (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
2463 * config/mips/mips.md (cpu): Rework for processor_type changes.
2464 * config/mips/mips.c (mips_cost): New variable.
2465 (DEFAULT_COSTS): Define.
2466 (mips_rtx_cost_data): New.
2467 (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
2468 for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
2469 FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
2470 (override_options): Set cost data.
2471 (mips_register_move_cost): Formatting changes.
2472 (bdesc_arrays): Use PROCESSOR_MAX.
2473 (mips_init_builtins): Ditto.
2475 2005-06-02 Diego Novillo <dnovillo@redhat.com>
2478 * doc/invoke.texi: Document -ftree-vrp.
2480 2005-06-02 Dorit Nuzman <dorit@il.ibm.com>
2482 PR tree-optimization/21734
2483 * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
2484 phi_result when current_def is not available.
2485 (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
2488 2005-06-02 David Edelsohn <edelsohn@gnu.org>
2490 * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
2491 (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
2493 2005-06-02 Diego Novillo <dnovillo@redhat.com>
2495 * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
2497 2005-06-02 Jan Hubicka <jh@suse.cz>
2499 * cgraph.c (dump_cgraph_node): Print new flags.
2500 (dump_cgraph_varpool_node): Likewise.
2501 (decide_variable_is_needed): Initialize externally_visible flag.
2502 * cgraph.h (cgraph_local_info): Add externally_visible flag.
2503 (cgraph_varpool_node): Likewise.
2504 (cgraph_function_flags_ready): Declare.
2505 * cgraph.c (cgraph_mark_local_functions): Rename to ...
2506 (cgraph_function_and_variable_visibility) ... this one; handle
2507 externally_visible flags.
2508 (decide_is_function_needed): Set externally_visible flag.
2509 (cgraph_finalize_function): Deal properly with early cleanups.
2510 (cgraph_optimize): Update call of
2511 cgraph_function_and_variable_visibility.
2513 2005-06-02 Steven Bosscher <stevenb@suse.de>
2514 Mostafa Hagog <mustafa@il.ibm.com>
2516 * cfgloop.h (doloop_condition_get): Make external.
2517 * loop-doloop.c (doloop_condition_get): Generalize to make it
2518 usable in modulo-sched.c.
2519 * modulo-sched.c (doloop_register_get): Use
2520 doloop_condition_get instead of duplicating it.
2522 2005-06-02 Bernd Schmidt <bernd.schmidt@analog.com>
2524 * reload1.c (reload): Undo 2005-04-20 change. Make sure we detect
2525 the correct set of init_insns that need deletion.
2526 * local-alloc.c (update_equiv_regs): When substituting sole definition
2527 into sole use of a reg, delete it from liveness information.
2529 2005-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
2531 * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
2533 2005-06-01 Diego Novillo <dnovillo@redhat.com>
2535 PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
2536 PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
2537 * fold-const.c (invert_tree_comparison): Make extern.
2538 * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
2539 (struct value_range_def): Limewise.
2540 (get_value_range): Remove.
2541 (dump_value_range): Remove.
2542 (dump_all_value_ranges): Remove.
2543 (debug_all_value_ranges): Remove.
2544 (vrp_evaluate_conditional): Declare.
2545 * tree-ssa-propagate.c (struct prop_stats_d): Add field
2547 (substitute_and_fold): Add argument use_ranges_p.
2549 If use_ranges_p is true, call fold_predicate_in to fold
2550 predicates using range information.
2551 Ignore ASSERT_EXPRs.
2552 Change debugging output to only show statements that have been
2554 (replace_phi_args_in): Move debugging output code from
2555 substitute and fold.
2556 (fold_predicate_in): New local function.
2557 * tree-ssa-propagate.h (enum value_range_type): Move from
2559 (struct value_range_d): Likewise.
2561 (value_range_t): Rename from value_range.
2562 * tree-vrp.c (found_in_subgraph): Rename from found.
2563 (get_opposite_operand): Remove.
2564 (struct assert_locus_d): Declare.
2565 (assert_locus_t): Declare.
2566 (need_assert_for): Declare.
2567 (asserts_for): Declare.
2568 (blocks_visited): Declare.
2569 (vr_value): Declare.
2570 (set_value_range): Add argument 'equiv'.
2571 Don't drop to VARYING ranges that cover all values in the
2573 Make deep copy of equivalence set 'equiv'.
2574 (copy_value_range): New local function.
2575 (set_value_range_to_undefined): New local function.
2576 (compare_values): Return -2 if either value has overflowed.
2577 (range_includes_zero_p): New local function.
2578 (extract_range_from_assert): Flip the predicate code if the
2579 name being asserted is on the RHS of the predicate.
2580 Avoid creating unnecessary symbolic ranges if the comparison
2581 includes another name with a known numeric range.
2582 Update the equivalnce set of the new range when asserting
2584 (extract_range_from_ssa_name): Update the equivalence set of
2585 the new range with VAR.
2586 (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
2587 If -fwrapv is used, set the resulting range to VARYING if the
2588 operation overflows. Otherwise, use TYPE_MIN_VALUE and
2589 TYPE_MAX_VALUE to represent -INF and +INF.
2590 Fix handling of *_DIV_EXPR.
2591 (extract_range_from_unary_expr): Handle MINUS_EXPR and
2592 ABS_EXPR properly by switching the range around if necessary.
2593 (extract_range_from_comparison): New local function.
2594 (extract_range_from_expr): Call it.
2595 (adjust_range_with_scev): Do not adjust the range if using
2596 wrapping arithmetic (-fwrapv).
2597 (dump_value_range): Also show equivalence set.
2598 Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
2599 (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
2600 (infer_value_range): Change return value to bool.
2601 Add arguments 'comp_code_p' and 'val_p'.
2602 Do not attempt to infer ranges from statements that may throw.
2603 Store the comparison code in comp_code_p.
2604 Store the other operand to be used in the predicate in val_p.
2605 (dump_asserts_for): New.
2606 (debug_asserts_for): New.
2607 (dump_all_asserts): New.
2608 (debug_all_asserts): New.
2609 (register_new_assert_for): New.
2610 (register_edge_assert_for): New.
2611 (find_conditional_asserts): New.
2612 (find_assert_locations): New.
2613 (process_assert_insertions_for): New.
2614 (process_assert_insertions): New.
2615 (insert_range_assertions): Initialize found_in_subgraph,
2616 blocks_visited, need_assert_for and asserts_for.
2617 Call find_assert_locations and process_assert_insertions.
2618 (remove_range_assertions): Add more documentation.
2619 (vrp_initialize): Change return type to void.
2620 Do not try to guess if running VRP is worth it.
2621 (compare_name_with_value): New.
2622 (compare_names): New.
2623 (vrp_evaluate_conditional): Add argument 'use_equiv_p'. If
2624 use_equiv_p is true, call compare_names and
2625 compare_name_with_value to compare all the ranges for every
2626 name in the equivalence set of the predicate operands.
2628 (vrp_meet): Try harder not to derive a VARYING range.
2629 If two values meet, the resulting equivalence set is the
2630 intersection of the two equivalence sets.
2631 (vrp_visit_phi_node): Call copy_value_range to get the current
2632 range information of the LHS.
2633 (vrp_finalize): Create a value vector representing all the
2634 names that ended up with exactly one value in their range.
2635 Call substitute_and_fold.
2636 (execute_vrp): Document equivalence sets in ranges.
2637 * tree.h (SSA_NAME_VALUE_RANGE): Remove.
2638 (struct tree_ssa_name): Remove field value_range.
2639 (invert_tree_comparison): Declare.
2641 2005-06-01 Daniel Berlin <dberlin@dberlin.org>
2643 Fix PR tree-optimization/21839
2645 * gimplify.c (zero_sized_field_decl): New function.
2646 (gimplify_init_ctor_eval): Use it.
2648 2005-06-01 Josh Conner <jconner@apple.com>
2651 * gimplify.c (gimplify_init_constructor): Don't spill initializer
2652 to read-only memory if it's sparse.
2654 2005-06-01 Ramana Radhakrishnan <ramana@codito.com>
2656 * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP.
2657 Add documentation for REG_SETJMP
2659 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
2661 * stmt.c (expand_case): Use build_int_cst.
2662 (node_has_low_bound): Likewise, and correct type mismatch.
2663 (node_has_high_bound): Likewise.
2664 * fold-const.c (fold_binary): Ensure we build trees
2665 with the correct types - undo what STRIP_NOPS possibly did.
2667 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
2669 * tree.h (fold_indirect_ref_1): Export from fold-const.c.
2670 * fold-const.c (fold_indirect_ref_1): No longer static.
2671 * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
2672 folding, if possible.
2674 2005-06-01 Joseph S. Myers <joseph@codesourcery.com>
2676 * common.opt (fjump-tables): New.
2677 * doc/invoke.texi (-fno-jump-tables): Document.
2678 * stmt.c (expand_end_case_type): Do not emit jump tables unless
2681 2005-06-01 Richard Earnshaw <richard.earnshaw@arm.com>
2683 * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
2684 (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
2685 (sunlt, sunle): Enable patterns on VFP.
2687 * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
2688 f_stored, f_flag, f_cvt.
2689 (generic_sched): No-longer used for the arm1020e and arm1022e cores.
2690 Include arm1020e.md.
2691 * vfp.md (fmstat): New cpu unit. Add an exclusion set between it and
2692 the ds and fmac pipelines. Re-work all load and store patterns and
2693 all conversion patterns to use new attributes. Adjust reservation
2694 descriptions accordingly.
2695 * arm1020e.md: New file.
2696 * t-arm: Add dependency.
2698 2005-06-01 Jan Hubicka <jh@suse.cz>
2700 * except.c (struct eh_region): Kill unused fields.
2701 * basic-block.h (struct basic_block_def): Likewise.
2703 2005-06-01 J"orn Rennecke <joern.rennecke@st.com>
2705 PR rtl-optimization/21767
2706 * rtl.h (function_invariant_p): Re-add declaration.
2707 * reload1.c (function_invariant_p): No longer static.
2708 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
2709 might have become invalid.
2711 2005-06-01 Jakub Jelinek <jakub@redhat.com>
2715 * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
2716 on variable sizes types if a decl is a pointer to a VLA.
2717 (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
2718 Call gimplify_type_sizes on aggregate fields. Prevent infinite
2721 * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
2723 * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
2724 _mm_set_ps, _mm_setr_ps): Add __extension__.
2725 * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
2726 _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
2727 _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
2729 (_mm_clflush): Don't use return in void function.
2731 * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
2732 _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
2733 Use __inline instead of inline.
2735 2005-06-01 Richard Guenther <rguenth@gcc.gnu.org>
2737 * fold-const.c (fold_binary): Fix types in strlen vs.
2738 zero comparison folding.
2740 2005-06-01 Richard Henderson <rth@redhat.com>
2742 * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
2743 * config.in, configure: Rebuild.
2744 * config/alpha/alpha.c (print_operand): Add 'j'.
2745 * alpha.md (divmodsi_internal_er_1): Use it.
2746 (divmoddi_internal_er_1): Likewise.
2748 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
2750 * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
2751 * opts.h (print_filtered_help): Delete.
2752 * opts.c (handle_option, decode_options): Remove calls to
2754 (print_target_help): New function.
2755 (common_option, print_help): Call print_target_help instead of
2756 display_target_options.
2757 (print_filtered_help): Make static.
2758 * toplev.h (display_target_options, set_target_switch): Delete.
2759 * toplev.c (target_switches, target_options, display_target_options)
2760 (set_target_switch): Delete.
2761 (print_switch_values): Remove handling of TARGET_SWITCHES and
2763 (default_get_pch_validity): Likewise. Only treat target_flags
2764 specially if targetm.check_pch_target_flags is nonnull.
2765 (pch_option_mismatch): New function.
2766 (default_pch_valid_p): Use it. Remove handling of TARGET_SWITCHES
2767 and TARGET_OPTIONS. Only treat target_flags specially if
2768 targetm.check_pch_target_flags is nonnull.
2769 * config/ia64/ia64.c (ia64_override_options): Don't mention
2770 TARGET_OPTIONS in comment.
2771 * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
2772 * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
2773 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
2774 interaction with TARGET_SWITCHES.
2775 (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
2777 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
2779 * config/sh/sh.c (multcosts): Check sh_multcost rather than
2781 (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
2782 (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
2783 (cut2_workaround_str): Delete.
2784 * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
2785 (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
2786 (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
2787 * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
2788 (mgettrcost=, multcost=): New options.
2790 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
2792 * opts.h (cl_option_state): New structure.
2793 (get_option_state): Declare.
2794 * opts.c (get_option_state): New function.
2795 * toplev.c (option_affects_pch_p): New function.
2796 (default_get_pch_validity): Store the state of all options for which
2797 option_affects_pch_p returns true.
2798 (default_pch_valid_p): Check the state of those options here.
2799 Only check target_flags separately if targetm.check_pch_target_Flags
2800 is nonnull or if TARGET_SWITCHES is defined.
2802 2005-06-01 Richard Sandiford <rsandifo@redhat.com>
2804 * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
2807 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
2809 * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
2811 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
2813 * gcse.c (compute_transp, load_killed_in_block): Use
2816 2005-06-01 David.Billinghurst <David.Billinghurst@riotinto.com>
2819 * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
2821 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2823 * errors.h (warning, error, fatal, internal_error): Add printf
2825 * genmodes.c (make_vector_mode): Fix format arguments.
2827 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2829 * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
2830 config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
2831 lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
2832 tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
2833 tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
2834 tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
2835 tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
2836 tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
2837 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
2838 tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
2839 tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
2840 tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
2841 tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
2842 errors.h and include toplev.h if necessary.
2844 * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
2845 errors.h otherwise include toplev.h.
2847 * Makefile.in: Update dependencies.
2849 2005-06-01 Danny Smith <dannysmith@users.sourceforge.net>
2851 * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
2853 2005-05-31 Geoffrey Keating <geoffk@geoffk.org>
2855 * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
2856 * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
2857 be complemented for big-endian. Mask for AND must be rotated,
2858 not shifted. Handle short operands with NOT on the memory
2861 2005-05-30 Daniel Berlin <dberlin@dberlin.org>
2863 * c-objc-common.c (c_tree_printer): Check flag before hashtable.
2864 Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
2865 * dwarf2out.c (dwarf2out_var_location): Ditto.
2866 * toplev.c (default_tree_printer): Ditto.
2867 * tree-outof-ssa.c (create_temp): Ditto.
2868 * tree-sra.c (instantiate_element): Ditto.
2869 * var-tracking.c (track_expr_p): Ditto.
2870 * tree.c (struct tree_map): New structure.
2871 (debug_expr_for_decl): New.
2872 (tree_map_eq): New function.
2873 (tree_map_hash): Ditto.
2874 (tree_map_marked_p): Ditto.
2875 (print_debug_expr_statistics): Ditto.
2876 (decl_debug_expr_lookup): Ditto.
2877 (decl_debug_expr_insert): Ditto.
2878 (dump_tree_statistics): Dump debug_expr hashtable stats.
2879 * tree.h (DECL_DEBUG_EXPR): Change
2880 (SET_DECL_DEBUG_EXPR): Add.
2882 2005-06-01 Alan Modra <amodra@bigpond.net.au>
2884 * configure.ac: Add --enable-secureplt.
2885 (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
2886 * config.in: Regenerate.
2887 * configure: Regenerate.
2888 * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
2889 rs6000/secureplt.h to tm_file when enable_secureplt.
2890 * doc/invoke.texi (msecure-plt, mbss-plt): Document.
2891 * doc/install.texi: Document --enable-targets and --enable-secureplt.
2892 Correct xrefs to "Using the GNU Compiler Collection (GCC)".
2893 * config/rs6000/secureplt.h: New file.
2894 * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
2895 (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
2897 (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
2898 (CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
2899 (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
2900 * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
2901 * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
2902 * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
2903 TARGET_SECURE_PLT got register load sequence.
2904 (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
2906 (rs6000_elf_declare_function_name): Don't emit toc address offset
2907 word when TARGET_SECURE_PLT.
2908 * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
2909 (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
2910 (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
2911 (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
2913 (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
2914 sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
2916 * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
2917 (__trampoline_setup): Likewise. Init r30 before plt call.
2919 2005-05-31 DJ Delorie <dj@redhat.com>
2921 * expr.c (convert_move): When a partial_int requires multiple
2922 conversion steps, make sure successive steps convert the
2923 intermediate value, not the original value.
2925 * expmed.c (expand_mult): Convert partial_int multiplies to
2926 shift/add combinations too.
2928 * genmodes.c (mode_data): Add wider_2x.
2929 (calc_wider_mode): Calculate twice-wider mode too.
2930 (emit_mode_wider): Emit twice-wider mode too.
2931 * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
2932 * expr.c (expand_expr_real_1): Use it for expanding
2935 2005-05-31 Zdenek Dvorak <dvorakz@suse.cz>
2937 PR tree-optimization/21817
2938 * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
2940 2005-05-31 Pat Haugen <pthaugen@us.ibm.com>
2942 * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
2945 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
2949 * fold-const.c (fold_checksum_tree): Copy types also if
2950 TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
2951 Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
2953 Tail recurse TREE_LIST's TREE_CHAIN.
2955 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
2958 * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
2959 SSA_NAME twice and cause the loop to become finite. Remove the test
2962 2005-05-31 Andrew Pinski <pinskia@physics.uc.edu>
2964 * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
2967 2005-05-31 Richard Sandiford <rsandifo@redhat.com>
2969 * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
2970 the documentation to make it more future-proof.
2971 (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
2972 * target.h (gcc_target): Add check_pch_target_flags.
2973 * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
2974 (TARGET_INITIALIZER): Include it.
2975 * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
2976 * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
2977 * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
2978 (sh_check_pch_target_flags): New function.
2979 (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
2981 2005-05-31 Richard Guenther <rguenth@gcc.gnu.org>
2983 * fold-const.c (extract_array_ref): Handle more cases,
2984 do some useful canonicalization of the base.
2985 (fold_binary): Explicitly deal with arrays of zero-sized
2986 structures during folding of &a[i] == &a[j].
2988 2005-05-31 Eric Botcazou <ebotcazou@libertysurf.fr>
2990 * doc/install.texi (sparc-sun-solaris2*): Update note
2991 about Sun bug 4910101.
2992 (sparc-sun-solaris2.7): Document bootstrap
2993 failure with Sun WorkShop 6 99/08/18 as.
2995 2005-05-30 Pat Haugen <pthaugen@us.ibm.com>
2997 * loop.c (loop_invariant_p, valid_initial_value_p): Use
2998 regs_invalidated_by_call instead of call_used_regs.
3000 2005-05-30 Paolo Carlini <pcarlini@suse.de>
3003 * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
3005 * doc/extend.texi: Add clog, clogf, clogl.
3007 2005-05-30 H.J. Lu <hongjiu.lu@intel.com>
3010 * c-pragma.c: Include "vec.h".
3011 (handle_pragma_visibility): Use VEC.
3013 * doc/invoke.texi: Remove the nested visibility push limit.
3015 2005-05-30 Roger Sayle <roger@eyesopen.com>
3017 PR rtl-optimization/15422
3018 * reg-stack.c (starting_stack_p): New static global.
3019 (straighten_stack): Delete prototype. Change to update the stack
3020 before the current insn.
3021 (subst_stack_regs): Update call to straighten stack.
3022 (emit_swap_insn): Delete prototype. For the first insn in a
3023 basic block, update stack_in instead of emitting a real swap.
3024 (change_stack): When changing the stack before the first insn
3025 in a basic block, update stack_in instead of emitting real code.
3026 (compensate_edges): Clear starting_stack_p during compensation.
3027 (convert_regs_1): Keep track of starting_stack_p whilst processing
3030 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
3032 * tree-ssa-ccp.c (const_val): Make it static.
3034 2005-05-29 Geoffrey Keating <geoffk@apple.com>
3037 * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
3038 pattern involving `:P'.
3040 * Makefile.in (install-cpp): Depend on installdirs.
3042 2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
3044 * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
3046 (new_elim_graph, clear_elim_graph, delete_elim_graph,
3047 elim_graph_add_edge, elim_graph_remove_succ_edge,
3048 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
3051 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
3053 * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
3054 opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
3055 tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
3056 follow spelling conventions in error/dump messages.
3058 2005-05-29 Roger Sayle <roger@eyesopen.com>
3059 Richard Henderson <rth@redhat.com>
3061 * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
3062 if the RHS isn't suitable for calling emit_move_insn.
3064 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
3066 * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
3067 fold_unary and fold_binary.
3069 2005-05-29 Roger Sayle <roger@eyesopen.com>
3071 * reg-stack.c (propagate_stack): Always copy the source stack to
3072 the destination. This routine is now only called when this is safe.
3073 (better_edge): New function split out from convert_regs_1 to
3074 determine which of two edges is better to propagate across.
3075 (convert_regs_1): We need only search for a best edge if the
3076 stack layout hasn't been defined yet. Use better_edge to help
3077 find beste. No longer traverse unnecessary edges.
3079 2005-05-29 Keith Besaw <kbesaw@us.ibm.com>
3081 * tree-ssa-alias.c (new_type_alias): New procedure to
3082 create a type memory tag for a pointer with a may-alias
3083 set determined from a variable declaration.
3084 * tree-flow.h: export declaration of new_type_alias
3085 * tree-optimize.c (init_tree_optimization_passes): document
3086 that pass_may_alias cannot be called after pass_vectorize.
3087 * tree-vect-transform (vect_create_data_ref_ptr): Call
3088 new_type_alias when an type memory tag isn't available
3090 (vectorizable_store): Use copy_virtual_operands to update
3091 virtual defs in place (so that loop_version can be called).
3092 Call mark_for_renaming for the virtual defs in case peeling
3093 is done and virtual uses outside the loop need to be updated.
3095 2005-05-29 Dorit Naishlos <dorit@il.ibm.com>
3097 PR tree-optimization/21639
3098 * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
3100 2005-05-29 Jan Hubicka <jh@suse.cz>
3102 PR tree-optimization/21562
3103 * cfgexpand.c (construct_init_block): Deal properly with the case
3104 of entry edge not pointing to very first basic block.
3106 2005-05-28 Kazu Hirata <kazu@cs.umass.edu>
3108 * tree-ssa-ccp.c (ccp_fold): Remove code that produces
3109 non-gimple min invariant.
3111 * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
3112 * tree-flow.h: Add prototypes for start_recording_case_labels
3113 and end_recording_case_labels.
3114 * tree-cfg.c (start_recording_case_labels,
3115 end_recording_case_labels): Export.
3116 (cleanup_tree_cfg_loop, modified_noreturn_calls,
3117 cleanup_control_flow, cleanup_control_expr_graph,
3118 remove_fallthru_edge, phi_alternatives_equal,
3119 tree_forwarder_block_p, has_abnormal_incoming_edge_p,
3120 remove_forwarder_block, cleanup_forwarder_blocks,
3121 remove_forwarder_block_with_phi, merge_phi_nodes,
3122 gate_merge_phi, pass_merge_phi): Move to ...
3123 * tree-cfgcleanup.c: ... here.
3125 * basic-block.h: Remove forward declaration of bb_ann_d.
3127 2005-05-28 Jan Hubicka <jh@suse.cz>
3129 * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
3131 * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
3133 (tree_mod_subtract): Fix profile updating code.
3134 (tree_divmod_values_to_profile): Do not produce useless value profilers
3137 2005-05-28 Kazu Hirata <kazu@cs.umass.edu>
3139 * tree-ssa-dom.c (vrp_element_p): Define.
3140 (vrp_hash_elt): Change the type of records to
3141 VEC(vrp_element_p,heap).
3143 (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
3144 Update uses of VRP records.
3145 (simplify_cond_and_lookup_avail_expr, record_range): Update
3146 uses of VRP records.
3148 * tree-inline.c (cfun_stack): Change the type to
3149 VEC(function_p,heap).
3150 (push_cfun, pop_cfun): Use VEC instead of VARRAY.
3152 2005-05-27 Ian Lance Taylor <ian@airs.com>
3154 * c-decl.c (add_stmt): Add C frontend specific version.
3155 (stmts_are_full_exprs_p): Remove.
3156 * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
3157 (stmts_are_full_exprs_p): Don't declare.
3158 * c-semantics.c (add_stmt): Remove.
3160 2005-05-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3162 * config/mips/mips-protos.h (mips_declare_object): Add printf
3164 * config/mips/mips.c (mips_declare_object_name): Fix format
3167 2005-05-27 Roger Sayle <roger@eyesopen.com>
3169 * reg-stack.c (compensate_edge): Remove original prototype.
3170 (propagate_stack): New function to copy the stack layout
3171 at the start of a basic block from the layout at the end of
3172 one of its predecessors.
3173 (compensate_edge): Assume that both source and destination
3174 blocks have already had their stack layouts defined.
3175 (compensate_edges): Traverse all non-entry edges in the CFG
3176 and call compensate_edge on each in turn.
3177 (convert_regs_1): Change return type to void. Call
3178 propagate_stack instead of compensate_edge.
3179 (convert_regs_2): Change return type to void. Update call
3180 to convert_regs_1 to ignore the (now void) return value.
3181 (convert_regs): Update calls to convert_regs_2 to ignore
3182 the (now void) return value. After all the basic blocks have
3183 been processed, call compensate_edges to actually emit new
3185 (reg_to_stack): Initialize the aux info for each basic block
3186 with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
3188 2005-05-28 Jan Hubicka <jh@suse.cz>
3190 * except.c (can_throw_internal_1, can_throw_external_1): Add
3192 (can_throw_external, can_throw_internal): Bring into sync wrt
3194 * except.h (can_throw_internal_1, can_throw_external_1): Update
3196 * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
3197 Deal properly with resx.
3199 2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
3201 * basic-block.h (basic_block_def): Add phi_nodes and
3202 predictions. Remove tree_annotations.
3203 * predict.c (tree_predicted_by_p, tree_predict_edge,
3204 combine_predictions_for_bb): Adjust references to predictions.
3205 * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
3206 create_block_annotation.
3207 (create_block_annotation, free_blocks_annotatios,
3208 clear_blocks_annotations): Remove.
3209 (dump_cfg_stats): Don't print out the memory spent on
3211 (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
3212 * tree-flow-inline.h (bb_ann): Remove.
3213 (phi_nodes, set_phi_nodes): Update references to phi_nodes.
3214 * tree-flow.h (bb_ann_d): Remove.
3215 * tree-if-conv.c (process_phi_nodes): Update a reference to
3217 * tree-phinodes.c (reserve_phi_args_for_new_edge,
3218 create_phi_node, remove_phi_node): Likewise.
3219 * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
3220 * tree-ssa-dom.c (threaded_blocks): New.
3221 (tree_ssa_dominator_optimize): Initialize, clear, and free
3222 threaded_blocks. Update a call to thread_through_all_blocks.
3223 (thread_across_edge): Use threaded_blocks instead of setting
3224 incoming_edge_threaded.
3225 * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
3226 a bitmap of blocks that are threaded through.
3227 * tree.h: Move the prototype of threaded_through_blocks to
3230 * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
3231 fini_walk_dominator_tree): Use VEC instead of VARRAY.
3232 * domwalk.h (dom_walk_data): Change the type of
3233 block_data_stack and free_block_data to VEC(void_p,heap)*.
3234 * tree-ssa-dse.c (dse_initialize_block_local_data,
3235 dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
3236 VEC instead of VARRAY.
3238 2005-05-27 Jan Hubicka <jh@suse.cz>
3240 * cgraph.c: Include tree-gimple.h
3241 (cgraph_edge): Rename expr to stmt.
3242 (cgraph_create_edge): Likewise.
3243 (cgraph_clone_node): Likewise.
3244 * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
3245 * cgraphunit.c (record_call_1): Rename to ...
3246 (record_reference): ... this one; do not build edges.
3247 (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
3248 (current_basic_block): Kill.
3249 (cgraph_create_edges): Rewrite to work on gimple statements nicely.
3250 (verify_cgraph_node): Likewise.
3251 * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
3252 (copy_bb): Mess up with cgraph edges here; simplify EH handling.
3253 (copy_edges_for_bb): Simplify EH handling.
3254 (expand_call_inline): Pass statement to cgraph_edge and
3257 2005-05-27 Richard Guenther <rguenth@gcc.gnu.org>
3259 * tree-inline.c (copy_body_r): Manually fold *& to deal
3260 with ADDR_EXPRs with mismatched types for now.
3262 * gimplify.c (fold_indirect_ref_rhs): New function.
3263 (gimplify_modify_expr_rhs): Use it instead of pessimistic
3266 * fold-const.c (fold_indirect_ref_1): Add type argument;
3267 make sure the resulting expression is of this type.
3268 (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
3270 2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
3272 PR tree-optimization/21658
3273 * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
3274 fold_binary_to_constant. Likewise, call fold_unary instead of
3275 fold_unary_to_constant.
3277 2005-05-27 Nathan Sidwell <nathan@codesourcery.com>
3279 * vec.h: Implement integral type vector specialization.
3280 (VEC_T): Define a non-GTY structure.
3281 (VEC_T_GTY): Define a GTY structure.
3282 (VEC_TA): Rename to ...
3283 (VEC_TA_GTY): ... here.
3284 (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
3285 (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
3286 (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
3287 DEF_VEC_P and DEF_VEC_ALLOC_P.
3288 (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
3289 (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
3290 DEF_VEC_O and DEF_VEC_ALLOC_O.
3291 * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
3292 * lambda-code.c: Likewise.
3293 * tree-into-ssa.c: Likewise.
3294 * tree-ssa-live.c: Likewise.
3296 2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
3298 * tree-into-ssa.c (update_ssa): Ensure that the operand cache
3300 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3301 update_stmt_if_modified before calling update_ssa.
3303 2005-05-27 Ralf Corsepius <ralf.corsepius@rtems.org>
3305 * config/rs6000/t-rtems: Remove roe multilib variant.
3307 2005-05-26 Roger Sayle <roger@eyesopen.com>
3309 PR tree-optimization/9814
3310 * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
3311 instruction, add the necessary clobbers by re-expanding the RTL
3312 for arithmetic operations via optab.c's expand_unop/expand_binop.
3313 (noce_try_bitop): New function to optimize bit manipulation idioms
3314 of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
3315 (noce_process_if_block): Call noce_try_bitop.
3317 2005-05-26 Roger Sayle <roger@eyesopen.com>
3319 * reg-stack.c (convert_regs_entry, convert_regs_exit,
3320 convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
3321 (reg_to_stack): Move to end of the file. Initialize the per
3322 basic block information here, instead of...
3323 (convert_regs_entry): Here.
3324 (convert_regs): Change unused return type to void.
3326 2005-05-27 Kazu Hirata <kazu@cs.umass.edu>
3328 * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
3329 unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
3330 config/rs6000/eabispe.h, config/rs6000/lynx.h,
3331 config/sh/elf.h, config/sh/symbian-pre.h,
3332 config/sparc/sparc-protos.h: Update copyright.
3334 2005-05-26 Mike Stump <mrs@apple.com>
3336 * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
3339 2005-05-26 Richard Guenther <rguenth@gcc.gnu.org>
3341 * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3342 See through ADDR_EXPR in finding place to propagate into.
3344 2005-05-26 Kazu Hirata <kazu@cs.umass.edu>
3346 * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
3347 cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
3348 ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
3349 tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
3350 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
3351 tree-ssa-operands.c, tree-vect-analyze.c,
3352 tree-vect-transform.c, tree-vectorizer.c, tree.c,
3353 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
3354 config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
3355 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
3356 config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
3357 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
3358 config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
3359 config/sh/ushmedia.h, config/sparc/sparc.c,
3360 config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
3361 typos. Follow spelling conventions.
3362 * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
3363 Follow spelling conventions.
3365 2005-05-26 David Ung <davidu@mips.com>
3367 * config/mips/mips.c (mips_use_ins_ext_p): New helper function
3368 that determines whether the MIPS32/64 R2 ext/ins should be used.
3369 * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
3370 * config/mips/mips.md (extzv): Changed predicate for operand to
3371 nonimmediate_operand. Add code to generate insn patterns for
3372 extzvsi and extzvdi.
3373 (extzv<mode>): New pattern to match mips32/64 r2 ext insn.
3374 (insv): Similarly for insertion.
3375 (insv<mode>): Similarly.
3377 2005-05-26 Paolo Bonzini <bonzini@gnu.org>
3379 * simplify-rtx.c (avoid_constant_pool_reference): Support
3380 offsetted addresses in the constant pool.
3382 2005-05-26 Paolo Bonzini <bonzini@gnu.org>
3384 * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
3385 * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
3387 2005-05-26 Jakub Jelinek <jakub@redhat.com>
3390 * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
3391 found in the basic block and last insn in the basic block is not
3392 INSN_P. Remove explicit unspec numbers that are no longer valid
3395 2005-05-26 Paolo Bonzini <bonzini@gnu.org>
3397 * tree-vect-transform.c (vectorizable_operation): Try word_mode
3398 vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
3399 if a vector mode is available.
3401 2005-05-25 Roger Sayle <roger@eyesopen.com>
3404 * fold-const.c (const_binop): Check for division by zero during
3407 2005-05-26 Ian Lance Taylor <ian@airs.com>
3409 * reload1.c (verify_initial_elim_offsets): Add braces to avoid
3410 having a declaration after a statement.
3412 2005-05-26 Richard Sandiford <rsandifo@redhat.com>
3414 * opt-functions.awk (var_type): New function.
3415 (var_set): Use CLVC_STRING if var_type returns "const char *".
3416 * opth-gen.awk: Use var_type to find out the types of variables.
3417 Don't print comments above each "extern" definition.
3418 * optc-gen.awk: Use var_type in the same way.
3419 * opts.h (cl_var_cond): Rename to...
3420 (cl_var_type): ...this. Add CLVC_STRING.
3421 (cl_option): Make "flag_var" a "void *" pointer. Replace "var_cond"
3423 * opts.c (handle_option, option_enabled): Update after above name
3424 change. Cast flag_var before using it. Handle CLVC_STRING.
3426 * config/alpha/alpha.h (alpha_tls_size): Delete.
3427 * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
3428 (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
3429 (alpha_fptm_string, alpha_mlat_string): Delete.
3430 (alpha_handle_option): Don't set the above variables here. Use the
3431 integer argument to check the validity of -mtls-size=.
3432 * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
3433 (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
3434 (mtls-size=): Likewise. Convert to a UInteger and initialize the
3437 * config/arc/arc.c (arc_cpu_string, arc_text_string)
3438 (arc_data_string, arc_rodata_string): Delete.
3439 (arc_handle_option): Don't set the above variables here.
3440 * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
3441 and initialize them.
3443 * config/arm/arm.c (target_fpu_name, target_fpe_name)
3444 (target_float_abi_name, target_abi_name, structure_size_string)
3445 (arm_pic_register_string): Delete.
3446 (arm_handle_option): Don't set the above variables here, except
3447 in the handling of -mhard-float and -msoft-float.
3448 * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
3449 (mpic-register=, mstructure-size-boundary=): Add Var()s.
3451 * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
3452 (avr_handle_option): Delete.
3453 * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
3456 * config/bfin/bfin.c (bfin_library_id): Delete.
3457 (bfin_handle_option): Don't set it.
3458 * config/bfin/bfin.opt (mshared-library-id=): Add Var().
3460 * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
3461 * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
3462 (c4x_handle_option): Don't set c4x_rpts_cycles here.
3463 * config/c4x/c4x.opt (mrpts=): Add Var().
3465 * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
3466 cris_elinux_stacksize_str here.
3467 * config/cris/aout.opt (melinux-stacksize=): Add Var().
3468 * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
3469 (cris_tune_str, cris_elinux_stacksize_str): Delete.
3470 * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
3471 (cris_tune_str, cris_elinux_stacksize_str): Delete.
3472 (cris_handle_option): Don't set the above variables here.
3473 * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
3474 (max-stackframe=): Add Var()s.
3476 * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
3477 * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
3478 (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
3479 (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
3480 (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
3481 (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
3482 (ix86_handle_option): Don't set the above variables here.
3483 * config/i386/i386.opt (malign-functions=, malign-jumps=)
3484 (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
3485 (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
3488 * config/ia64/ia64.h (ia64_tls_size): Delete.
3489 * config/ia64/ia64.c (ia64_tls_size): Delete.
3490 (ia64_handle_option): Treat -mtls-size= as a UInteger option,
3491 reading the integer argument from the "value" parameter. Don't
3492 set ia64_tls_size here.
3493 * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
3494 Add Var() and Init().
3496 * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
3497 (m32r_cache_flush_trap): Delete.
3498 * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
3499 (m32r_cache_flush_trap): Delete.
3500 (m32r_handle_option): Don't set the above variables when handling
3501 -mflush-func= and -mflush-trap=.
3502 * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
3505 * config/mips/mips.h (mips_cache_flush_func): Delete.
3506 * config/mips/mips.c (mips_arch_string, mips_tune_string)
3507 (mips_cache_flush_func): Delete.
3508 (mips_handle_option): Don't set the above variables when handling
3509 -march=, -mtune= and -mflush-func=.
3510 * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
3512 * config/s390/s390.c (s390_arch_string): Delete.
3513 (s390_handle_option): Don't set it here.
3514 * config/s390/s390.opt (march=): Add Var().
3516 * config/sparc/sparc.h (sparc_cmodel_string): Delete.
3517 * config/sparc/sparc.c (sparc_cmodel_string): Delete.
3518 (sparc_handle_option): Don't set it here.
3519 * config/sparc/sparc.opt (mcmodel=): Add Var().
3521 2005-05-25 Roger Sayle <roger@eyesopen.com>
3523 * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
3524 call to convert_to_integer by building the NOP_EXPR directly.
3526 2005-05-25 Richard Sandiford <rsandifo@redhat.com>
3528 * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
3530 2005-05-25 Daniel Berlin <dberlin@dberlin.org>
3531 Jeff Law <law@redhat.com>
3533 * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
3534 constant and side_effects of the ADDR_EXPR are consistent.
3536 * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
3537 appropriately around calls to recompute_tree_invarant_for_addr_expr.
3539 2005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
3541 * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
3542 (s390_function_arg, s390_gimplify_va_arg): Use them.
3543 (s390_register_info): Save only required subset of argument
3544 registers into save area for va_list.
3545 (s390_va_start): Initialize only required elements of va_list struct.
3546 (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
3548 2005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
3550 * reload1.c (verify_initial_elim_offsets): Return boolean status
3551 instead of aborting.
3552 (reload): Adapt verify_initial_elim_offsets call site. Restart
3553 main loop if some initial elimination offsets changed.
3555 2005-05-25 Adam Nemet <anemet@lnxw.com>
3557 * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
3558 of -mno-svr4-struct-return.
3560 2005-05-25 Daniel Berlin <dberlin@dberlin.org>
3562 Fix PR tree-optimization/21705
3564 * tree-ssa-pre.c (in_fre): New static variable.
3565 (create_value_expr_from): Recursively value number reference ops
3567 (can_value_number_call): Temporary restrict only exists for
3570 2005-05-25 Kazu Hirata <kazu@cs.umass.edu>
3572 * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
3573 sizeof (bitmap *) with sizeof (bitmap).
3575 2005-05-25 Daniel Berlin <dberlin@dberlin.org>
3577 * lambda-code.c (perfect_nestify): Call update_stmt on the exit
3580 2005-05-25 Adrian Straetling <straetling@de.ibm.com>
3582 * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
3585 2005-05-25 Jan Hubicka <jh@suse.cz>
3587 * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
3588 * cgraph.c (cgraph_create_node): Reset estimated_growth.
3589 * cgraph.h (cgraph_global_info): Add estimated_growth.
3590 * ipa-inline.c: Include coverage.h
3591 (max_insns, max_count): New static variables.
3592 (cgraph_estimate_size_after_inlining): Cache the result.
3593 (cgraph_estimate_growth):
3594 * passes.c (rest_of_clean_state): Kill coverage_end_function.
3595 * timevar.def (TV_INLINE_HEURISTICS): New timevar.
3596 * tree-optimize.c (init_tree_optimization_passes): Move profiling before
3598 (ipa_passes): Initialize bitmaps.
3600 2005-05-25 Adrian Straetling <straetling@de.ibm.com>
3602 * loop-doloop.c: Include "target.h".
3603 (doloop_valid_p): Move tests to function in targhooks.c.
3604 * target.h (struct gcc_target): New target hook
3605 "insn_valid_within_doloop".
3606 * target-def.h: Define default value for "insn_valid_within_doloop".
3607 (TARGET_INITIALIZER): Insert new target hook into initializer.
3608 * targhooks.c (default_insn_valid_within_doloop): New function.
3609 * targhooks.h (default_insn_valid_within_doloop): Declare.
3610 * hooks.c (hook_bool_rtx_true): New function.
3611 * hooks.h (hook_bool_rtx_true): Declare.
3612 * doc/tm.texi: Add documentation for new target hook.
3614 2005-05-25 Eric Botcazou <ebotcazou@libertysurf.fr>
3617 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
3618 * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
3619 (sparc_tls_referenced_p): New prototype.
3620 * config/sparc/sparc.c (tls_symbolic_operand): Delete.
3621 (sparc_expand_move): Look for TLS addresses with constant offsets.
3622 (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
3623 tls_symbolic_operand.
3624 (legitimate_pic_operand_p): Likewise.
3625 (legitimate_address_p): Likewise.
3626 (legitimize_address): Likewise.
3627 (sparc_tls_symbol_ref_1): New function.
3628 (sparc_tls_referenced_p): New function.
3629 * config/sparc/predicates.md (tgd_symbolic_operand): Use
3630 SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
3631 (tld_symbolic_operand): Likewise.
3632 (tie_symbolic_operand): Likewise.
3633 (tle_symbolic_operand): Likewise.
3635 2005-05-24 DJ Delorie <dj@redhat.com>
3637 * common.opt (-Wattributes): New. Default true.
3638 * doc/invoke.texi (-Wno-attributes): Document.
3640 * attribs.c (decl_attributes): Move warning control from if() to
3642 * c-common.c (handle_packed_attribute): Likewise.
3643 (handle_nocommon_attribute): Likewise.
3644 (handle_common_attribute): Likewise.
3645 (handle_noreturn_attribute): Likewise.
3646 (handle_noinline_attribute): Likewise.
3647 (handle_always_inline_attribute): Likewise.
3648 (handle_used_attribute): Likewise.
3649 (handle_unused_attribute): Likewise.
3650 (handle_const_attribute): Likewise.
3651 (handle_transparent_union_attribute): Likewise.
3652 (handle_constructor_attribute): Likewise.
3653 (handle_destructor_attribute): Likewise.
3654 (handle_mode_attribute): Likewise.
3655 (handle_alias_attribute): Likewise.
3656 (handle_visibility_attribute): Likewise.
3657 (handle_tls_model_attribute): Likewise.
3658 (handle_malloc_attribute): Likewise.
3659 (handle_returns_twice_attribute): Likewise.
3660 (handle_pure_attribute): Likewise.
3661 (handle_deprecated_attribute): Likewise.
3662 (handle_vector_size_attribute): Likewise.
3663 (handle_nothrow_attribute): Likewise.
3664 (handle_cleanup_attribute): Likewise.
3665 (handle_warn_unused_result_attribute): Likewise.
3666 (handle_sentinel_attribute): Likewise.
3667 * c-decl.c (diagnose_mismatched_decls): Likewise.
3668 (start_decl): Likewise.
3669 (grokdeclarator): Likewise.
3670 (start_function): Likewise.
3671 * c-format.c (check_function_format): Likewise.
3672 * stor-layout.c (place_field): Likewise.
3673 (finalize_record_size): Likewise.
3674 * tree.c (handle_dll_attribute)): Likewise.
3675 * varasm.c (default_assemble_visibility): Likewise.
3676 * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
3677 (darwin_assemble_visibility): Likewise.
3678 * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
3679 * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
3680 (arm_handle_isr_attribute): Likewise.
3681 * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
3682 (avr_handle_fndecl_attribute): Likewise.
3683 * config/bfin/bfin.c (handle_int_attribute): Likewise.
3684 * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
3685 * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
3686 (h8300_handle_eightbit_data_attribute): Likewise.
3687 (h8300_handle_tiny_data_attribute): Likewise.
3688 * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
3689 (ix86_handle_regparm_attribute): Likewise.
3690 (ix86_handle_struct_attribute): Likewise.
3691 * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
3692 (i386_pe_encode_section_info): Likewise.
3693 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
3694 * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
3695 (ip2k_handle_fndecl_attribute): Likewise.
3696 * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
3697 * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
3698 (m68hc11_handle_fntype_attribute): Likewise.
3699 (m68hc11_encode_section_info): Likewise.
3700 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
3701 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
3702 * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
3703 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
3704 * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
3705 (sh_handle_sp_switch_attribute): Likewise.
3706 (sh_handle_trap_exit_attribute): Likewise.
3707 * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
3708 (sh_symbian_handle_dll_attribute): Likewise.
3709 * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
3710 (xstormy16_handle_below100_attribute): Likewise.
3711 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
3713 * c-common.c (unsigned_conversion_warning): Move warning control
3714 from if() to warning(OPT_*).
3715 (c_common_truthvalue_conversion): Likewise.
3716 (c_do_switch_warnings): Likewise.
3717 * c-decl.c (diagnose_mismatched_decls): Likewise.
3718 (diagnose_mismatched_decls): Likewise.
3719 (define_label): Likewise.
3720 (grokdeclarator): Likewise.
3721 * c-format.c (check_format_info): Likewise.
3722 * c-lex.c (interpret_integer): Likwise.
3723 (lex_string): Likewise.
3724 * c-opts.c (c_common_post_options): Likewise.
3725 * c-parser.c (c_parser_unary_expression): Likewise.
3726 * c-pragma.c (handle_pragma_redefine_extname): Likewise.
3727 (handle_pragma_extern_prefix): Likewise.
3728 * c-typeck.c (build_binary_op): Likewise.
3729 * gcse.c (is_too_expensive): Likewise.
3730 * opts.c (decode_options): Likewise.
3731 * stor-layout.c (place_field): Likewise.
3732 * tree-cfg.c (remove_bb): Likewise.
3734 * c.opt (-Wreturn-type): Add Var(warn_return_type).
3735 * flags.h (warn_return_type): Remove.
3736 * toplev.c (warn_return_type): Likewise.
3738 2005-05-24 Kelley Cook <kcook@gcc.gnu.org>
3740 * configure.ac: Don't use gcc_AC_C_LONG_LONG. Check for
3741 existence of long long and __int64 before determining their size.
3742 * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
3743 * configure, config.h.in: Regenerate.
3745 2005-05-24 Kelley Cook <kcook@gcc.gnu.org>
3747 * configure: Regenerate.
3749 2005-05-24 Ziemowit Laski <zlaski@apple.com>
3751 * c-common.h (objc_comptypes): Remove prototype.
3752 (objc_compare_types): New prototype.
3753 (objc_volatilized_decl): Likewise.
3754 (objc_type_quals_match): Likewise.
3755 * c-decl.c (objc_mark_locals_volatile): Streamline by calling
3756 objc_volatilize_decl().
3757 * c-typeck.c (comp_target_types): Remove third parameter; do
3758 not call objc_comptypes().
3759 (comptypes): Remove calls to objc_comptypes().
3760 (build_function_call): Extend compatible prototype check to ObjC.
3761 (build_conditional_expr): Adjust call to comp_target_types().
3762 (convert_for_assignment): Call objc_compare_types() instead of
3763 objc_comptypes(); adjust calls to comp_target_types(); call
3764 objc_type_quals_match() before issuing qualifier mismatch
3766 (build_binary_op): Call objc_compare_types() before issuing
3767 pointer mismatch warnings; adjust calls to
3768 comp_target_types().
3769 * stub-objc.c (objc_comptypes): Remove stub.
3770 (objc_compare_types): New stub.
3771 (objc_volatilized_decl): Likewise.
3772 (objc_type_quals_match): Likewise.
3774 2005-05-24 Paolo Carlini <pcarlini@suse.de>
3776 * config/ia64/ia64intrin.h: Define nothing for C++:
3777 overloaded builtins have been ported to C++.
3779 2005-05-24 Jeff Law <law@redhat.com>
3781 * tree-nested.c (build_addr): New "context" argument. Temporarily
3782 set current_function_decl around the call to build the ADDR_EXPR.
3783 (get_static_chain): Pass proper context to build_addr.
3784 (convert_nl_goto_reference): Likewise.
3785 (convert_tramp_reference): Likewise.
3786 (final_nesting_tree_1): Likewise.
3787 * tree-profile.c (tree_gen_interval_profiler): Likewise.
3788 (tree_gen_pow2_profiler): Likewise.
3789 (tree_gen_one_value_profiler): Likewise.
3790 * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
3791 * tree.h (build_addr): Update prototype.
3793 2005-05-24 Kazu Hirata <kazu@cs.umass.edu>
3795 * tree-flow.h (bb_ann_d): Remove has_escape_site.
3796 * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
3797 write to has_escape_site.
3799 2005-05-24 Jeff Law <law@redhat.com>
3801 * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
3802 * tree-cfg.c: Include tree-ssa-propagate.h.
3803 (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
3806 2005-05-24 Nick Clifton <nickc@redhat.com>
3808 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3809 __NO_FPRS__ when 'f' class registers will not be available.
3811 2005-05-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
3813 * config/m32r/m32r.c (m32r_expand_block_move): Return 0 if
3815 * config/m32r/m32r.md (movmemsi): If m32r_expand_block_move did
3817 * config/m32r/m32r/m32r-protos.h (m32r_expand_block_move): Update
3820 2005-05-23 Jeff Law <law@redhat.com>
3822 * tree-ssa-dom.c (cprop_into_stmt): Do not call
3823 recompute_tree_invariant_for_addr_expr here.
3824 (optimize_stmt): Call it here instead and do so if anything
3825 at all has changed in the statement and the RHS is an ADDR_EXPR.
3826 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
3827 needed, call recompute_tree_invariant_for_addr_expr.
3828 * tree-ssa-propagate.c (substitute_and_fold): Call
3829 recompute_tree_invariant_for_addr_expr as needed.
3831 2005-05-23 Andreas Krebbel <krebbel1@de.ibm.com>
3833 * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
3834 saving less registers than the replacement.
3836 2005-05-23 Jan Hubicka <jh@suse.cz>
3838 * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
3840 2005-05-23 Eric Botcazou <ebotcazou@libertysurf.fr>
3842 * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
3843 * config/sparc/sparc.c (sparc_expand_move): New function.
3844 (sparc_emit_set_const64): Rewrite assert condition on entry.
3845 (legitimate_constant_p) <CONST_VECTOR>: New case.
3846 (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
3847 * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
3848 movV64, movtf): Use nonimmediate_operand for the first operand.
3849 Rewrite. Only invoke sparc_expand_move.
3850 * config/sparc/predicates.md (input_operand): Reorder tests.
3852 2005-05-23 Jan Beulich <jbeulich@novell.com>
3854 * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
3855 missing return statement.
3857 2005-05-22 Eric Botcazou <ebotcazou@libertysurf.fr>
3859 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
3860 emit_move_insn for moves to TFmode stack slots.
3862 2005-05-21 Richard Guenther <rguenth@gcc.gnu.org>
3864 * tree-stdarg.c (execute_optimize_stdarg): Handle references
3865 to va_list of the form &va[0].
3867 2005-05-20 Jan Hubicka <jh@suse.cz>
3869 * Makefile.in (insn-emit.o): Add basic-block.h dependency.
3870 * genemit.c (main): Make insn-emit to include basic-block.h too.
3872 2005-05-20 Jan Hubicka <jh@suse.cz>
3874 * cgraphunit.c (cgraph_expand_function): Force function being lowered.
3876 2005-05-19 Richard Henderson <rth@redhat.com>
3878 * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
3879 emit_store_conditional): Split out from ...
3880 (alpha_split_atomic_op): ... here.
3881 (alpha_split_compare_and_swap): New; extract from .md file.
3882 (alpha_split_lock_test_and_set): Likewise.
3883 * config/alpha/alpha-protos.h: Update.
3884 * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
3885 split code into alpha.c.
3886 (sync_lock_test_and_set<I48MODE>): Likewise.
3888 2005-05-19 Richard Henderson <rth@redhat.com>
3890 * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
3892 2005-05-19 Richard Henderson <rth@redhat.com>
3894 * config/i386/sse.md (mulv4si3): Use all register inputs.
3895 (mulv2di3): Likewise.
3897 2005-05-19 Richard Guenther <rguenth@gcc.gnu.org>
3899 * tree-ssa-loop-ivopts.c (determine_base_object): Use
3900 build_fold_addr_expr to generate trees of correct type.
3901 Use fold_buildN if possible.
3903 2005-05-19 Jan Hubicka <jh@suse.cz>
3905 * basic-block.h (REG_BR_PROB_BASE): Define.
3906 * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
3907 (dump_cgraph_node): Dump count.
3908 (cgraph_clone_edge): Rescale counts.
3909 (cgraph_clone_node): Likewise.
3910 * cgraph.h: Include basic-block.h
3911 (cgraph_node): Add count.
3912 (cgraph_edge): Add count and loop_nest.
3913 (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
3915 * cgraphunit.c: Kill now redundant inlining comment.
3916 (cgraph_create_edges): Make static, maintain current basic block;
3918 (record_call_1): Fill in new fields.
3919 * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
3921 (cgraph_decide_recursive_inlining): Likewise.
3922 * rtl.h (REG_BR_PROB_BASE): Kill.
3923 * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
3924 (expand_call_inline): Update call of cgraph_create_edge.
3925 * tree-optimize.c (tree_rest_of_compilation): Likewise.
3927 2005-05-19 Nick Clifton <nickc@redhat.com>
3929 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
3930 new rs6000_explicit_options structure.
3932 2005-05-19 Richard Henderson <rth@redhat.com>
3935 * config/alpha/alpha.c (alpha_emit_conditional_branch): Move
3936 TFmode code swapping ...
3937 (alpha_emit_xfloating_compare): ... here.
3938 (alpha_emit_setcc): Update to match.
3939 (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
3941 2005-05-19 Richard Henderson <rth@redhat.com>
3944 * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
3945 memory indirection in local-dynamic case.
3947 2005-05-18 Jie Zhang <jie.zhang@analog.com>
3948 Bernd Schmidt <bernd.schmidt@analog.com>
3950 * config/bfin/bfin.c (branch_dest): Add comment why it's
3952 * config/bfin/bfin.md (attr "length" default): Change the offset of
3953 forward conditional branch of length 4 from 4096 to 4092.
3955 2005-05-19 Jan Beulich <jbeulich@novell.com>
3957 * unwind-compat.c: Include tconfig.h and tsystem.h.
3958 * unwind-dw2-fde-compat.c: Likewise.
3960 2005-05-18 Richard Henderson <rth@redhat.com>
3963 * ifcvt.c (noce_process_if_block): Avoid conversion when the
3964 memory destination is readonly.
3966 2005-05-18 Richard Henderson <rth@redhat.com>
3969 * tree-ssa-operands.c (opf_non_specific): New.
3970 (get_asm_expr_operands): Set it.
3971 (add_call_clobber_ops, add_call_read_ops): Likewise.
3972 (add_stmt_operand): Test it instead of opf_kill_def when
3973 considering unmodifiable variables.
3975 * tree-ssa-operands.c (get_expr_operands): Fix exact test.
3977 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
3979 * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
3980 tree-ssa-forwprop.c: Fix comment typos.
3981 * doc/invoke.texi: Fix a typo.