1 2005-05-19 Nick Clifton <nickc@redhat.com>
3 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
4 new rs6000_explicit_options structure.
6 2005-05-19 Richard Henderson <rth@redhat.com>
9 * config/alpha/alpha.c (alpha_emit_conditional_branch): Move
10 TFmode code swapping ...
11 (alpha_emit_xfloating_compare): ... here.
12 (alpha_emit_setcc): Update to match.
13 (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
15 2005-05-19 Richard Henderson <rth@redhat.com>
18 * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
19 memory indirection in local-dynamic case.
21 2005-05-18 Jie Zhang <jie.zhang@analog.com>
22 Bernd Schmidt <bernd.schmidt@analog.com>
24 * config/bfin/bfin.c (branch_dest): Add comment why it's
26 * config/bfin/bfin.md (attr "length" default): Change the offset of
27 forward conditional branch of length 4 from 4096 to 4092.
29 2005-05-19 Jan Beulich <jbeulich@novell.com>
31 * unwind-compat.c: Include tconfig.h and tsystem.h.
32 * unwind-dw2-fde-compat.c: Likewise.
34 2005-05-18 Richard Henderson <rth@redhat.com>
37 * ifcvt.c (noce_process_if_block): Avoid conversion when the
38 memory destination is readonly.
40 2005-05-18 Richard Henderson <rth@redhat.com>
43 * tree-ssa-operands.c (opf_non_specific): New.
44 (get_asm_expr_operands): Set it.
45 (add_call_clobber_ops, add_call_read_ops): Likewise.
46 (add_stmt_operand): Test it instead of opf_kill_def when
47 considering unmodifiable variables.
49 * tree-ssa-operands.c (get_expr_operands): Fix exact test.
51 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
53 * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
54 tree-ssa-forwprop.c: Fix comment typos.
55 * doc/invoke.texi: Fix a typo.
57 2005-05-18 Richard Henderson <rth@redhat.com>
59 * config.gcc (powerpc-*-linux*): Include linux64.opt when
62 2005-05-18 Richard Henderson <rth@redhat.com>
64 * tree-cfg.c (pass_remove_useless): Revert last change.
65 * tree-optimize.c (init_tree_optimization_passes): Initialize
66 all_lowering_passes with PROP_gimple_any.
68 2005-05-18 Devang Patel <dpatel@apple.com>
70 * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
73 2005-05-18 Richard Henderson <rth@redhat.com>
75 * tree-ssa-forwprop.c (cfg_changed): New.
76 (tidy_after_forward_propagate_addr): New.
77 (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
78 (forward_propagate_addr_into_variable_array_index): Likewise.
79 (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
82 2005-05-18 Geoffrey Keating <geoffk@apple.com>
84 * dummy-checksum.c: New.
86 * c.opt (print_pch_checksum): New flag.
87 * c-pch.c (struct c_pch_validity): Make much shorter.
89 (host_machine): Remove.
90 (target_machine): Remove.
91 (get_ident): Change PCH version number.
92 (pch_init): When -fverbose-asm, print out the compiler fingerprint.
93 Don't put triplets or version string in PCH validity data.
94 Do put the compiler checksum in the validity data.
95 (c_common_valid_pch): Don't check triplets or version string. Do
97 (c_common_print_pch_checksum): New.
98 * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
99 Print fingerprint with -v.
100 * c-common.h (c_common_print_pch_checksum): New.
101 (executable_checksum): New.
102 * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
103 (cc1-dummy): New rule.
104 (cc1-checksum.c): New rule.
105 (cc1-checksum.o): New rule.
106 (cc1): Add checksum support.
107 (build/genchecksum): New.
108 (build/genchecksum.o): New.
109 (dummy-checksum.o): New.
110 (genobjnames): Add genchecksum.o.
111 (mostlyclean): Remove *-checksum.c.
112 (gnucompare): Add libgcc to list of directories checked.
113 Make comparison problems in libgcc/ and with checksum files only
115 * doc/invoke.texi (Precompiled Headers): Remove caution.
116 Document that it must be the exact same binary. Add a few
117 known-safe flags to the list.
119 * rs6000/predicates.md (fix_trunc_dest_operand): New.
120 * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
121 Check that a memory operand is valid before trying to use it.
123 * tree-cfg.c (pass_remove_useless): This pass works on trees.
125 2005-05-18 Richard Guenther <rguenth@gcc.gnu.org>
127 * tree.c (build1_stat): Don't try to handle two-operand
130 2005-05-18 Richard Sandiford <rsandifo@redhat.com>
132 * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
133 * config/sh/sh.h: Update mask names throughout.
134 (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
135 (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
136 (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
137 (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
138 (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
139 (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
140 (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
141 (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
142 (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
143 (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
144 (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
145 (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
146 (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
147 (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
148 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
149 (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
150 (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
151 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
152 (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
153 (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
154 (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
155 (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
156 (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
157 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
158 (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
159 (SUBTARGET_SWITCHES): Delete.
160 (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
161 (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
162 (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
163 (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
164 (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
165 (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
166 (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
167 (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
168 (SUPPORT_SH3): Likewise SUPPORT_SH2.
169 (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
170 (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
172 (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
173 (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
174 (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
175 (SUPPORT_SH4A): Likewise SUPPORT_SH4.
176 (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
177 (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
178 (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
179 (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
180 (SUPPORT_ANY_SH5): New macros.
181 (TARGET_NONE): Replace with...
182 (MASK_ARCH): ...this new macro.
183 * config/sh/elf.h: Update mask names
184 * config/sh/linux.h: Likewise.
185 * config/sh/little.h: Likewise.
186 * config/sh/netbsd-elf.h: Likewise.
187 * config/sh/symbian-pre.h: Likewise.
188 * config/sh/sh.c (sh_handle_option): New function.
189 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
190 (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
191 (sh_target_switches, target_switches): Delete.
192 (sh_pch_valid_p): Check for specific differences in the target_flags
194 (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
195 * config/sh/sh.opt: New file.
197 2005-05-18 Richard Henderson <rth@redhat.com>
200 * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
201 small_addr_symbolic_operand.
203 2005-05-18 Jeff Law <law@redhat.com>
205 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
206 propagate an ADDR_EXPR if the definition and use sites are
207 in different EH regions.
209 2005-05-18 Ian Lance Taylor <ian@airs.com>
211 * read-rtl.c (mode_attr_index): Use obstack_grow0, not
214 2005-05-18 Daniel Berlin <dberlin@dberlin.org>
216 * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
218 2005-05-18 Daniel Berlin <dberlin@dberlin.org>
220 Fix PR tree-optimization/21407
222 * tree-ssa-operands.c (note_addressable): Change
223 COMPONENT_REF handling in response to aliasing
226 2005-05-18 Eric Botcazou <ebotcazou@libertysurf.fr>
228 * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
229 * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
230 * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
231 * doc/invoke.texi (SPARC options): Document that -mapp-regs is
232 the default on Solaris too.
234 2005-05-17 Daniel Berlin <dberlin@dberlin.org>
236 * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
239 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
241 * timevar.def (TV_SCEV_CONST): New timevar.
242 * tree-optimize.c (init_tree_optimization_passes): Add
244 * tree-pass.h (pass_scev_cprop): Declare.
245 * tree-scalar-evolution.c (scev_const_prop): New function.
246 * tree-scalar-evolution.h (scev_const_prop): Declare.
247 * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
249 * tree-cfg.c (replace_uses_by): Export.
250 * tree-flow.h (replace_uses_by): Declare.
252 2005-05-17 Mike Stump <mrs@apple.com>
254 Yet more Objective-C++...
256 * c-common.h (objc_finish_try_stmt): Add.
257 (objc_build_synchronized): Add.
258 (objc_generate_write_barrier): Add.
259 * stub-objc.c (objc_build_synchronized): Add return value.
260 (objc_finish_try_stmt): Likewise.
261 (objc_generate_write_barrier): Add.
263 * c-common.h (objc_rewrite_function_call): Add.
264 * c-typeck.c (build_function_call): Allow objc to rewrite
266 (build_modify_expr): Allow objc to generate write barriers.
267 * c.opt (Wassign-intercept): Add.
268 (Wstrict-selector-match): Add.
269 (fobjc-call-cxx-cdtors): Add.
270 (fobjc-direct-dispatch): Add.
272 * dbxout.c (get_lang_number): Add Objective-C++ support.
273 * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
274 (-Wstrict-selector-match): Likewise.
275 (-fobjc-direct-dispatch): Likewise.
276 (-Wassign-intercept): Likewise.
277 (Overall Options): Likewise.
278 * gengtype.c (get_output_file_with_visibility): Likewise.
279 * stub-objc.c (objc_rewrite_function_call): Add.
280 * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
282 * c-common.c (flag_objc_exceptions): Remove.
283 (flag_objc_sjlj_exceptions): Remove.
284 * c-decl.c (objc_mark_locals_volatile): Don't change decls
286 * c-opts.c (c_common_handle_option, case
287 OPT_fobjc_exceptions): Remove.
288 (case OPT_fobjc_sjlj_exceptions): Remove
289 * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
290 (fobjc-exceptions): Likewise.
291 (fobjc-sjlj-exceptions): Likewise.
292 * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
293 (OFFS_ASSIGNIVAR_FAST): Add.
295 2005-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
297 * config/sparc/sparc.md (movhi): Do not test constness
300 (movdi): Unconditionally accept zero as second operand
301 when the first is memory.
302 (movdi_insn_sp32): Handle above case.
303 (DImode splitter): Use predicates.
304 (DImode splitter): Use const_zero_operand predicate.
305 (movsf_insn): Swap 2 alternatives.
307 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
309 * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
310 expand_simple_operations to bases of the ivs.
311 (tree_int_cst_sign_bit): Export.
312 * tree-flow.h (expand_simple_operations): Declare.
313 * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
314 tree_int_cst_sign_bit.
315 (expand_simple_operations): Export.
316 * tree.h (tree_int_cst_sign_bit): Declare.
318 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
320 * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
322 (replace_uses_by): New function.
323 (tree_merge_blocks): Eliminate the phi nodes in the merged block.
324 * tree-flow.h (fold_stmt_inplace): Declare.
325 * tree-ssa-ccp.c (fold_stmt_inplace): New function.
326 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
327 info after cfg cleanup.
329 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
331 * cfgloop.h (just_once_each_iteration_p): Declaration changed.
332 * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
335 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
337 * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
338 * ggc-zone.c (ggc_alloc_zone_1): Ditto.
339 * timevar.c (timevar_ggc_mem_total): New variable.
340 (GGC_MEM_BOUND): New constant.
341 (get_time): Record ggc memory status.
342 (timevar_accumulate): Accumulate amount of ggc memory.
343 (timevar_print): Print consumption of ggc memory.
344 * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
345 TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
346 TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
347 * timevar.h (struct timevar_time_def): Add ggc_mem field.
348 (timevar_ggc_mem_total): Declare.
350 2005-05-17 Kazu Hirata <kazu@cs.umass.edu>
352 * tree-into-ssa.c (update_ssa): Clean up by shortening the
355 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
357 * config/cris/cris.md (ncond, ocode, rcond): Remove separate
359 ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
360 ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
361 ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
362 ("s<ocond:code>"): Rename from respectively "b<ncond>",
363 "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
364 "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
365 "s<rcond>" and "s<ocond>".
366 ("b<ocond:code>", "*b<ocond:code>_reversed")
367 ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
368 output statement section.
370 2005-05-17 Roger Sayle <roger@eyesopen.com>
372 * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
374 2005-05-17 Steven Bosscher <stevenb@suse.de>
375 Stuart Hastings <stuart@apple.com>
376 Jan Hubicka <jh@suse.cz>
377 Dale Johannesen <dalej@apple.com>
379 * cgraph.h (cgraph_node): Add 'lowered' state.
380 (cgraph_lower_function): Declare.
381 * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
382 (cgraph_lower_function): New function.
383 (cgraph_create_edges): Deal with lowered function bodies.
384 (verify_cgraph_node): Likewise.
385 (cgraph_analyze_function): Do lowering job.
386 (cgraph_build_static_cdtor): Likewise.
387 * function.h (struct function): Add saved_eh and saved_cfg.
388 * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
389 * tree-cfg.c (fold_cond_expr_cond): Export.
390 * tree-flow.h (fold_cond_expr_cond): Declare.
391 * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
393 (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
394 in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
395 callee_cfun, block, eh_region, eh_region_offset.
396 (inlining_p): New predicate.
397 (remap_decl): Update for new inline_data; declare newly created inline
398 vars in low gimple way.
399 (copy_body_r): Update for new datastructure, simplify some of handling
400 when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
401 deal with RESX_EXPRs.
403 (copy_edges_for_bb): Likewise.
405 (copy_cfg_body): New.
406 (copy_generic_body): Rewrite to work on low gimple.
407 (copy_body): Turn into simple wrapper around copy_cfg_body.
408 (setup_one_parameter): Insert new statements into given basic block.
409 (initialize_initialized_parameters): Likewise, reorganize way things are
411 (declare_return_variable): Update for new inline data datastructure.
412 (inline_forbidden_p): Work on low gimple.
413 (estimate_num_insns): Likewise.
414 (expand_call_inline): Work on CFG.
415 (push_cfun, pop_cfun): New functions.
416 (cfun_stack): New stack.
417 (add_lexical_block): New function.
418 (gimple_expand_calls_inline): Work on basic block.
419 (optimize_inline_calls): Likewise.
420 (clone_body, save_body, unsave_ewpr_now): Update for new
422 (declare_inline_vars): Work on block instead of bind_expr.
423 (inlining_p): New predicate.
424 * tree-inline.h (push_cfun, pop_cfun): Declare.
425 * tree-optimize.c: Include except.h
426 (all_lowering_passes): New variable.
427 (execute_fixup_cfg, pass_fixup_cfg): New pass.
428 (init_tree_optimization_passes): Move some to all_lowering_passes.
429 (tree_lowering_passes): New function.
430 (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
431 * tree-pass.h (tree_lowering_passes): Declare
433 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
435 * unwind-dw2-fde-darwin.c: Include tsystem.h.
437 2005-05-17 Jeff Law <law@redhat.com>
439 * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
440 * tree-ssa-forwprop.c: Include langhooks.h.
441 (forward_propagate_addr_expr_into_variable_array_index): New.
442 (forward_propagate_addr_expr): New.
443 (tree_ssa_forward_propagate_single_use_vars): Loop over all
444 the statements in the block instead of just the last statement.
445 Call forward_propagate_addr_expr as needed.
446 (pass_forwprop): Update the SSA graph after forward propagation is
449 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
451 * unwind-dw2-fde-glibc.c (base_from_cb_data,
452 _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
454 * unwind-dw2-fde.c (__deregister_frame_info_bases,
455 base_from_object, fde_split, end_fde_sort): Likewise.
456 * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
457 execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
458 uw_init_context_1): Likewise.
459 * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
460 _Unwind_Resume_or_Rethrow): Likewise.
461 * unwind-pe.h (__gxx_abort): Do not define.
462 (size_of_encoded_value, base_of_encoded_value,
463 read_encoded_value_with_base): Use gcc_unreachable.
464 * unwind.h (_Unwind_GetTextRelBase): Likewise.
466 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
468 * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
469 (cfi_end): New macros.
470 (RETLDM): Use cfi_pop. Expect an eight byte stack frame.
471 (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros. Create
472 an eight byte stack frame.
473 (__NR_tkill): Define.
474 (__div0): Use gettid tkill on GNU/Linux.
475 (_arm_return): Add CFI.
476 (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
478 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
480 * configure.ac: Remove spaces around assignment to
482 * configure: Regenerated.
484 2005-05-17 David Edelsohn <edelsohn@gnu.org>
486 * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
487 * config/rs6000/rs6000.c (rs6000_explicit_options): Add
489 (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
490 Modify aix_struct_return variable, not target_flags.
491 (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
492 (rs6000_return_in_memory): Test aix_struct_return.
493 * config/rs6000/rs6000.opt (maix-struct-return): Convert to
494 independent variable. Report mxl-compat.
496 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
498 * config/bfin/bfin.md (eh_return): Add missing DONE.
500 2005-05-17 Ian Lance Taylor <ian@airs.com>
502 * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
504 (mode_attr_index): Remove check for defined attribute. Remove
505 infile parameter. Change all callers.
506 (apply_mode_maps): Add unknown parameter. Change caller. Always
507 return after finding attribute.
508 (apply_macro_to_rtx): Add unknown_mode_attr parameter. Change
510 (apply_macro_traverse): Set mtd->unknown_mode_attr.
511 (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
512 attribute used for a mode.
514 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
516 * tree-ssa-math-opts.c: New file.
518 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
520 * Makefile.in: Add tree-ssa-math-opts.c.
521 * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
522 * fold-const.c (distribute_real_division): New.
523 (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
524 * tree-pass.h (pass_cse_reciprocals): New.
525 * tree-optimize.c (init_tree_optimization_passes): Run it.
526 * doc/passes.texi: Document the new pass.
528 2005-05-17 Richard Guenther <rguenth@gcc.gnu.org>
531 * builtins.c (fold_builtin_constant_p): Handle
532 &"string cst"[0] as constant.
534 2005-05-17 Richard Henderson <rth@redhat.com>
536 * config/i386/sse.md (mulv16qi3, mulv2di3): New.
538 2005-05-17 Jakub Jelinek <jakub@redhat.com>
541 * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
542 src2 if src2 has been split.
544 PR tree-optimization/21610
545 * c-typeck.c (decl_constant_value_for_broken_optimization): If not
546 returning DECL, call unshare_expr.
548 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
550 * config/cris/cris.md: Unquote preparation and output statements.
551 (BWD, WD, BW): New, mode-macros.
552 (S, s, m, mm, nbitsm1): New, mode-attrs.
553 (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
554 (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
556 ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
557 ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
558 ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
560 ("cmp<mode>"): Replace "cmphi" and "cmpqi".
561 ("movdi"): Move misplaced head comment regarding necessity of
562 movdi from movsi to here.
563 ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
565 ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
566 ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
567 "*mov_sideqi_biap_mem".
568 ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
570 ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
571 "*clear_sidehi_biap" and "*clear_sideqi_biap".
572 ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
574 ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
575 "*ext_sidehisi_biap".
576 ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
578 ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
579 ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
580 ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
581 ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
582 ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
584 ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
585 "*op_sidehi_biap" and "*op_sidesi_biap".
586 ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
588 ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
589 "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
590 ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
591 "*op_swap_sidehi" and "*op_swap_sidesi".
592 ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
593 in the N alternative of "subqi3".
594 ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
595 "*extophisi_side_biap".
596 ("*extop<mode>si_side"): Replace "*extopqisi_side" and
598 ("*extop<mode>si_swap_side_biap"): Replace
599 "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
600 ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
601 "*extophisi_swap_side".
602 ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
603 ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
605 ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
606 "mulqihi3", "mulhisi3" and "mulhisi3".
607 ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
608 ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
610 ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
611 ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
612 ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
613 ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
614 ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
615 ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
616 "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
617 ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
618 "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
619 ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
620 ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
621 ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
623 ("abs<mode>2"): Replace "abshi2" and "absqi2".
624 ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
626 ("b<ocond>"): Replace "bgt" and "ble".
627 ("b<rcond>"): Replace "blt" and "bge".
628 ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
629 "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
631 ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
633 ("*b<rcond>_reversed"): Replace "*blt_reversed" and
635 ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
637 ("s<rcond>"): Replace "sge" and "slt".
638 ("s<ocond>"): Replace "sgt" and "sle".
639 ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
640 [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
641 ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
642 clear.w [rx=rx+i] and clear.b [rx=rx+i].
644 2005-05-17 Jakub Jelinek <jakub@redhat.com>
646 * varasm.c (struct constant_descriptor_tree): Add hash field.
647 (const_desc_hash): Just return hash field.
648 (const_desc_eq): If hash values are different, return 0 immediately.
649 (output_constant_def): Compute hash field of temporary key, use
650 htab_find_slot_with_hash instead of htab_find_slot. Set hash in
651 newly built constant descriptor.
652 (lookup_constant_def): Compute hash field of temporary key, use
653 htab_find_with_hash instead of htab_find.
655 2005-05-16 Richard Henderson <rth@redhat.com>
657 * config/i386/sse.md (mulv4si3): New.
659 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
661 * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
662 tests for noncanonical versions of reg+constant and
665 2005-05-16 Richard Henderson <rth@redhat.com>
666 Steven Bosscher <stevenb@suse.de>
669 * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
670 maybe_clean_eh_stmt; take old stmt parameter. Update EH
671 region data structure to match replacement.
672 * tree-flow.h: Update to match.
673 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
674 * tree-ssa-dom.c (optimize_stmt): Likewise.
675 * tree-ssa-pre.c (eliminate): Likewise.
676 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
678 2005-05-16 Caroline Tice <ctice@apple.com>
680 * bb-reorder.c (verify_hot_cold_block_grouping): Replace
681 internal_error with gcc_assert.
682 * dwarf2out.c (dwarf2out_switch_text_section): Likewise.
683 * function.h (struct function): Remove space between "*" and
685 * varasm.c (initialize_cold_section_name): Add gcc_assert;
686 modify to use alloca.
687 (unlikely_text_section): Add check for flag_function_sections.
688 (assemble_start_function): Move call to resolve_section, so it
689 comes before first call to unlikely_text_section.
690 (assemble_end_function): Add test and call to function_section
693 2005-05-16 Roger Sayle <roger@eyesopen.com>
695 * c-common.c (c_common_truthvalue_conversion): Use fold_build2
696 instead of build_binary_op when performing code transformations
697 to avoid error messages about constructs not it the user's code.
699 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
701 * tree-ssa-pre.c: Fix a comment typo.
703 2005-05-16 Richard Henderson <rth@redhat.com>
706 * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
707 load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
708 add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
709 load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
710 add_tprel22): Remove mode from symbolic operand.
712 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
714 * optc-gen.awk: Include intl.h after the externally-provided files.
716 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
718 * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
719 folding a COND_EXPR_COND in a nondestructive manner.
721 2005-05-16 Fariborz Jahanian <fjahanian@apple.com>
723 * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
724 altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
725 New values for vec_select definitions and bitmask for element
728 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
730 * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
731 Change the type to VEC(rtx,gc)*.
732 (mem_loc_descriptor, add_const_value_attributes,
733 dwarf2out_init): Adjust uses of used_rtx_varray.
735 * tree-data-ref.c (compute_all_dependences): Change the type
736 of dependence_relations to VEC(ddr_p,heap)**.
737 (compute_data_dependences_for_loop): Change the type of
738 allrelations to VEC(ddr_p,heap)*.
740 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
742 * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
743 system.h, coretypes.h and tm.h.
744 (options.o): Update dependencies accordingly.
745 * optc-gen.awk: Allow header_name to be a list of filenames.
746 Handle the "Condition" flag.
747 * opts.h (CL_DISABLED): New flag.
748 * opts.c (handle_option): Print an error for CL_DISABLED options.
749 * doc/options.texi: Document the "Condition" option flag.
751 2005-05-16 Paolo Bonzini <bonzini@gnu.org>
753 * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
755 2005-05-15 Roger Sayle <roger@eyesopen.com>
757 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
758 check for TREE_OVERFLOW on INTEGER_CST trees.
759 * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
760 CONSTANT_CLASS_P tree nodes.
762 2005-05-15 H.J. Lu <hongjiu.lu@intel.com>
765 * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
767 2005-05-15 Daniel Berlin <dberlin@dberlin.org>
769 Fix PR tree-optimization/21576
771 * tree-ssa-pre.c (expression_node_pool): New pool.
772 (comparison_node_pool): Ditto.
773 (list_node_pool): Ditto.
774 (pool_copy_list): New function.
775 (phi_translate): Handle CALL_EXPR.
776 (valid_in_set): Ditto.
777 (create_expression_by_pieces): Ditto.
778 (insert_into_preds_of_block): Ditto.
780 (compute_avail): Ditto.
781 (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
782 (can_value_number_call): New function.
783 (find_leader): Update comment.
784 (init_pre): Create new pools.
785 (fini_pre): Free new pools.
786 (pass_pre): Add TODO_update_ssa for the future when we are going
788 * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
789 (set_value_handle): Ditto.
790 (get_value_handle): Ditto.
792 2005-05-15 Richard Earnshaw <richard.earnshaw@arm.com>
794 * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
796 2005-05-15 Andreas Jaeger <aj@suse.de>
798 * gcc.c (pfatal_pexecute): Remove unused local function.
800 2005-05-15 Richard Sandiford <rsandifo@redhat.com>
802 * optc-gen.awk: Remove excess indentation.
803 * opth-gen.awk: Likewise.
805 2005-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
807 * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
808 of basic_block_info. Call init_flow and find_basic_blocks
809 before dbr_schedule if needed.
811 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
813 * tree-optimize.c (init_tree_optimization_passes): Move
814 pass_cd_dce in place of the last pass_dce.
816 PR tree-optimization/21563
817 * tree-vrp.c (compare_value): Return boolean_false_node when
818 SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
819 strictly larger than CST.
821 2005-05-14 Nathan Sidwell <nathan@codesourcery.com>
822 Jan-Benedict Glaw <jbglaw@lug-owl.de>
824 * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
826 (rev_cond_name) Likewise.
827 (vax_float_literal) Likewise.
828 * config/vax/vax.md: Likewise.
830 2005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
832 * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
833 registers and use them (specifically the stack pointer).
834 * config/vax/vax.h: Use above defines right here.
836 * config/vax/vax.c: (override_options) Remove 'register' keyword.
837 (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
838 (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
840 * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
841 mostly removal of trailing spaces...
842 * config/vax/vax-modes.def: Remove trailing whitespace.
844 * config/vax/elf.h: Update whitespace.
846 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
849 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
850 * fold-const.c (fold_indirect_ref_1): Avoid removing
851 NOP_EXPRs with type qualifiers like const.
853 2005-05-14 Jan Hubicka <jh@suse.cz>
855 Patch by Richard Henderson:
856 * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
857 Handle RESX expressions properly.
859 * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
860 (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
861 (remove_stmt_from_eh_region_fn): Likewise.
863 * tree-cfg.c (execute_warn_function_return): Break out noreturn
865 (execute_warn_function_noreturn): ... here.
866 (pass_warn_function_noreturn): New pass.
867 * tree-pass.h (pass_warn_function_noreturn): Declare
868 * tree-optimize.c (init_tree_optimization_passes): Move return
869 warnings early and add noreturn warnings at place of previous
872 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
874 * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
875 root_var_init, type_var_init): Use VEC instead of VARRAY.
876 * tree-ssa-live.h (tree_partition_associator_d): Change the
877 type of trees to VEC(tree,heap)*.
878 (tpa_tree): Use VEC instead of VARRAY.
880 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
882 * fold-const.c (div_if_zero_remainder): New function.
883 (try_move_mult_to_index): Use it.
885 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
887 * tree-eh.c (leh_tf_state): Change the type of dest_array to
889 (maybe_record_in_goto_queue, lower_try_finally_onedest,
890 lower_try_finally_copy, lower_try_finally_switch,
891 lower_try_finally): Use VEC instead of VARRAY.
893 2005-05-14 Hans-Peter Nilsson <hp@axis.com>
895 * config/cris/cris.h (Node: Register Classes): Remove obsoleted
896 comment regarding defined register classes.
897 (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
899 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
901 * tree-optimize.c (init_tree_optimization_passes): Move
902 pass_merge_phi before the first pass_dominator.
904 2005-05-13 Richard Earnshaw <richard.earnshaw@arm.com>
906 * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
909 2005-05-13 Josh Conner <jconner@apple.com>
911 * config/arm/arm.c (arm_size_return_regs): New.
912 (thumb_unexpanded_epilogue): replace in-line calculation
913 of return registers with call to arm_size_return_regs.
914 (use_return_insn): Include test of which registers are
915 being used to hold return values, to accommodate
916 vector return values.
918 2005-05-11 Aldy Hernandez <aldyh@redhat.com>
920 * config/rs6000/sysv4.opt (mlittle): Handle.
922 * config/rs6000/rs6000.c (rs6000_handle_option): Set
923 target_flags_explicit when appropriate.
925 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
928 * optabs.c (no_conflict_data): New struct.
929 (no_conflict_move_test): New function.
930 (emit_no_conflict_block): Use it.
932 2005-05-13 Adam Nemet <anemet@lnxw.com>
934 * doc/invoke.texi (Debugging Options): Option
935 -fdump-translation-unit only works with C++ now.
937 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
939 Replace calls to abort in CRIS port.
940 * config/cris/cris.h (CRIS_ASSERT): New macro.
941 * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
942 internal_error instead of abort.
943 ("movsi"): Ditto. Unquote preparation statement section.
944 ("call", "call_value"): Ditto, but use gcc_assert where
945 appropriate. Tweak comments.
946 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
948 (cris_op_str): Call internal_error, not abort.
949 (cris_print_operand): Tweak "abort" reference to "die" in comment.
950 (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
951 (cris_notice_update_cc): Call internal_error, not abort.
952 (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
953 (cris_emit_movem_store, cris_asm_output_symbol_ref)
954 (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
955 (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
956 ENABLE_CHECKING-guarded abort call.
957 (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
958 Use internal_error at end of test-chain.
960 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
962 PR rtl-optimization/20769:
963 * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
964 pattern emitted by expand_nl_goto_receiver.
967 * integrate.c (allocate_initial_values): Update register liveness
970 2005-05-13 Josh Conner <jconner@apple.com>
972 * arm.c (arm_return_in_memory): Add handling for vector return types.
974 2005-05-13 David Ung <davidu@mips.com>
976 * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
978 * config/mips/mips.c: Add 4km alias.
979 * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
980 * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
983 2005-05-13 Jan Hubicka <jh@suse.cz>
985 * c-decl.c (finish_function): Suppress "control reaches end of
986 non-void function" when "no return statement in function
987 returning non-void" is issued.
989 * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
990 * tree-optimize.c (pass_gimple): Kill.
991 (init_tree_optimization_passes): Kill pass_gimple.
992 * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
993 * tree-dump.c (dump_files): Rename .generic to .gimple.*
995 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
997 PR rtl-optimization/20756:
998 * basic-block.h (PROP_DEAD_INSN): Define.
999 * flow.c (propagate_one_insn): Set during mark_set_regs call
1001 (mark_set_1): Emit a clobber when we are about to delete a dead insn
1002 that kills a live register.
1004 2005-05-13 Adrian Straetling <straetling@de.ibm.com>
1006 * config/s390/s390.md: ("DBL"): New mode attribute.
1007 ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
1008 ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
1009 ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
1011 2005-05-13 Richard Guenther <rguenth@gcc.gnu.org>
1013 * c-format.c (check_format_arg): Handle string literals of
1014 the form &"string"[offset].
1016 * g++.dg/warn/format4.C: New testcase.
1018 2005-05-13 Kazu Hirata <kazu@cs.umass.edu>
1020 * config/mips/3000.md, config/mips/4000.md,
1021 config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
1022 config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
1023 config/mips/generic.md, config/pdp11/pdp11.md,
1024 config/sh/crt1.asm, config/sh/lib1funcs.asm,
1025 config/sh/sh-modes.def, config/sh/sh-protos.h,
1026 config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
1028 2005-05-13 Richard Henderson <rth@redhat.com>
1030 * function.c (instantiate_virtual_regs_in_insn): Do not simplify
1031 addition to move unless dest is a register. Do not skip
1032 instantiation in dest on addition simplification.
1034 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
1036 * config/cris/cris.c (cris_print_operand) <case 'H'; case
1037 CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
1038 output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
1040 2005-05-13 Jan Hubicka <jh@suse.cz>
1042 * basic-block.h (FOR_ALL_BB_FN): New macro.
1043 (init_flow): Initialize cfg structure.
1044 * function.c (allocate_struct_function): Do not initialize cfg structure.
1045 * tree-cfg.c (init_empty_tree_cfg): Break out from ...
1046 (build_tree_cfg): ... here.
1047 * tree-flow.h (init_empty_tree_cfg): Declare.
1049 2005-05-12 Steven Bosscher <stevenb@suse.de>
1051 Fix PR tree-optimization/21520
1052 * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1053 to attempt to fold constants.
1055 2005-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1057 * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
1058 only when TARGET_ADJUST_UNROLL_MAX is defined.
1059 (general_movsrc_operand): Use the C style comment.
1060 (ua_offset): Use prototype.
1062 2005-05-12 Zdenek Dvorak <dvorakz@suse.cz>
1064 * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
1065 (struct hmr_data, hoist_memory_reference, memref_del,
1066 struct fmrv_data): Removed.
1067 (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
1068 (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
1070 (find_more_ref_vops): Traverse the list of memory references.
1071 (determine_lsm_loop): Work with the list of memory references instead
1072 of traversing the hashtable.
1074 2005-05-12 Steven Bosscher <stevenb@suse.de>
1075 Stuart Hastings <stuart@apple.com>
1076 Jan Hubicka <jh@suse.cz>
1078 * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
1079 duplicate_eh_regions): New functions, based on old
1080 implementation removed with RTL inliner.
1081 (reachable_next_level): Modify behaviour pre-inline.
1082 * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
1084 * function.h (struct function): Add after_inlining flag.
1085 * tree-optimize.c (tree_rest_of_compilation): Set it.
1086 * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
1088 * tree-cfg.c (label_to_block_fn): Deal with cases where
1089 label was never insterted into code.
1091 2005-05-12 Zack Weinberg <zack@codesourcery.com>
1093 * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1095 2005-05-12 Daniel Berlin <dberlin@dberlin.org>
1097 Fix PR tree-optimization/21532
1098 * tree-ssa-pre.c (create_expression_by_pieces): stmt
1099 needs to go onto the inserted_exprs list.
1101 2005-05-12 Ian Lance Taylor <ian@airs.com>
1103 * c-common.h (statement_code_p): Don't declare.
1104 (STATEMENT_CODE_P): Don't define.
1105 (INIT_STATEMENT_CODES): Don't define.
1106 * c-common.c (statement_code_p): Don't define.
1108 2005-05-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1110 * config/sparc/sparc.h: Remove dead code.
1111 * config/sparc/sparc.c (sparc_compute_frame_size): Use
1112 FIRST_PARM_OFFSET for the size of the register window area.
1113 (emit_save_regs): Rename into emit_save_or_restore_regs.
1114 Add 'action' parameter. Use 4095 as upper bound for the offset.
1115 Pass 'action' to save_or_restore_regs.
1116 (emit_restore_regs): Delete.
1117 (sparc_expand_prologue): Call emit_save_or_restore_regs.
1118 (sparc_expand_epilogue): Likewise.
1119 * config/sparc/sparc.md (mode macro P): Move.
1120 (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
1121 (mov<V32:mode> expander): Move to the top of the V32 section.
1122 (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
1123 (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
1124 (sibcall_epilogue): Move.
1126 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
1129 * arm.c (arm_gen_constant): Sign-extend intermediate values when
1130 synthesizing a constant of the difference of two immediates.
1132 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
1134 * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
1135 (negdf2_vfp): Likewise. Convert to define_insn_and_split and split
1136 the alternatives using integer registers into the appropriate
1139 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1141 * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
1142 bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
1143 * bitmap.h: Fixed comments.
1145 2005-05-11 Richard Henderson <rth@redhat.com>
1148 * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
1149 (ia64_cannot_force_const_mem): New.
1150 (tls_symbolic_operand_type): New.
1151 (ia64_legitimate_constant_p): New.
1152 (ia64_expand_load_address): Return true on success. Improve
1153 checks for when we should not split.
1154 (ia64_expand_tls_address): New addend operand. Distribute it
1155 as appropriate to the tls_kind. Delay referencing gp.
1156 (ia64_expand_move): Split symbolic addend as necessary. Handle
1157 tls symbols with addends.
1158 * config/ia64/ia64-protos.h: Update.
1159 * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
1160 p0, f0, f1, and r13.
1161 (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
1162 * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
1163 (symbolic_operand splitter): Pass everything through
1164 ia64_expand_load_address and FAIL or DONE as appropriate.
1165 (load_fptr): Only accept after reload.
1166 (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1167 load_symptr_low, load_ltoff_dtpmod,
1169 (load_dtprel): Only accept tls symbols.
1170 (load_dtprel64, load_dtprel22): Likewise.
1171 (load_tprel, load_tprel64, load_tprel22): Likewise.
1172 (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
1173 (add_dtprel): Only accept tls symbols. Canonicalize PLUS.
1174 (add_dtprel14, add_dtprel22): Likewise.
1175 (add_tprel, add_tprel14, add_tprel22): Likewise.
1176 * config/ia64/predicates.md (small_addr_symbolic_operand): New.
1177 (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
1178 (got_symbolic_operand): Check CONST offsets.
1179 (tls_symbolic_operand, ld_tls_symbolic_operand): New.
1180 (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
1181 (move_operand): Don't handle tls here. Check CONST offsets.
1183 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1185 * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
1186 Remove hilo_operand check.
1187 (rm7_impy_si_mul): Just match imul3. Remove hilo_operand check.
1188 * config/mips/predicates.md (hilo_operand): Delete.
1190 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1192 * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1194 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
1196 PR tree-optimizer/18472
1197 * tree-if-conv.c (tree_if_convert_stmt,
1198 if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
1200 2005-05-11 Jan Hubicka <jh@suse.cz>
1202 * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
1203 (GTFILES): add except.h.
1204 * except.c (eh_status): Add throw_stmt_table.
1205 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
1206 * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
1207 lookup_stmt_eh_region_fn): Declare.
1208 (throw_stmt_node): New structure.
1209 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
1210 * gengtype.c (open_base_files): Add except.h to inlines.
1211 * tree-eh.c (throw_stmt_node): Kill.
1212 (record_stmt_eh_region): Update.
1213 (add_stmt_to_eh_region_fn): Break out from ...
1214 (add_stmt_to_eh_region): ... here.
1215 (remove_stmt_from_eh_region_fn): Break out from ...
1216 (remove_stmt_from_eh_region): ... here.
1217 (lookup_stmt_eh_region_fn): Break out from ...
1218 (lookup_stmt_eh_region): ... here.
1219 (honor_protect_cleanup_actions): Use build_resx.
1220 (lower_try_finally_onedest): Likewise.
1221 (lower_try_finally_copy): Likewise.
1222 (lower_try_finally_switch): Likewise.
1223 (lower_eh_constructs): Update eh table construction.
1224 * tree.c (build_resx): New.
1225 * tree.h (build_resx): Declare.
1227 2005-05-11 H.J. Lu <hongjiu.lu@intel.com>
1229 * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1232 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
1234 * fold-const.c, libgcov.c: Fix comment typos.
1236 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1239 2005-05-11 Daniel Jacobowitz <dan@codesourcery.com>
1241 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1242 * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1244 (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1246 2005-05-11 Nathan Sidwell <nathan@codesourcery.com>
1249 * crtstuff.c: Include auto-host.h again, for now.
1251 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1253 * config/mips/24k.md: Remove trailing whitespace.
1255 2005-05-11 David Ung <davidu@mips.com>
1257 * config/mips/mips.md (type): Add imul3.
1258 (length, hazard, may_clobber_hilo): Check for imul3.
1259 (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1260 (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1261 * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1262 for a 3 operand mul and its bypasses.
1263 * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1264 * config/mips/4000.md (r4k_imul): Likewise.
1265 * config/mips/4100.md (r4100_imul_si, r4100_imul_di): Likewise.
1266 * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1267 (vr4130_muldi): Likewise.
1268 * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1269 * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1270 * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1271 * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1272 (ir_vr54_imadd_si): Likewise.
1273 * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di): Likewise.
1274 * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1275 (rm7_impy_di): Likewise.
1276 * config/mips/9000.md (rm9k_mulsi, rm9k_muldi): Likewise.
1277 * config/mips/generic.md (generic_imul): Likewise.
1278 * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1279 * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di): Likewise.
1281 2005-05-11 J"orn Rennecke <joern.rennecke@st.com>
1283 PR middle-end/20371:
1284 * tree.h (record_layout_info_s): New member prev_packed.
1285 * stor-layout.c (update_alignment_for_field): Fix comment about
1286 KNOWN_ALIGN. For MS bitfields, if we start a new run, make sure
1287 we start it properly aligned.
1288 (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1289 to update_alignment_for_field, and recompute it afterwards using
1290 the alignment of the record.
1291 When a packed bitfield precedes an MS bitfield, don't add padding
1292 at the end of the packed bitfield on behalf of the base type of
1293 the packed bit field.
1294 Don't adjust rli->bitpos at the end
1295 of an MS bitfield run if we already adjusted bitpos/offset for an
1296 alignment as large or larger than the bitfield type size.
1297 Take possible record alignment > BIGGEST_ALIGNMENT into account
1298 when calculating actual_align.
1299 Only put packed buit fields into rli->prev_field if they end up
1301 Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1302 Update rli->remaining_in_alignment when we have already started a
1303 run of bit fields and we process a packed bit field.
1305 2005-05-11 Sebastian Pop <pop@cri.ensmp.fr>
1307 * tree-data-ref.c (find_data_references_in_loop): Give up when
1308 the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1309 may embed arbitrary side effects.
1310 Remove the assumption that GIMPLE form contains a single array
1311 access per statement.
1312 When the statement contains virtual operands, fail if it is not
1313 a MODIFY_EXPR or a CALL_EXPR.
1314 Return after the dont know node is inserted.
1316 2005-05-11 Richard Earnshaw <richard.earnshaw@arm.com>
1318 * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1320 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1323 PR tree-optimization/19639
1324 * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1325 and generic summands for char* as s * delta, too, folding &a[i]
1326 CODE x to &a[i CODE x/s]. Use tree_int_cst_equal
1327 for comparison of steps. Convert types for index addition.
1328 (fold_binary): Adjust the callers to always dispatch to
1329 try_move_mult_to_index.
1330 * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1331 expr with non-gimple ARRAY_REF offset.
1333 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1335 * fold-const.c (fold_indirect_ref_1): Avoid removing
1336 NOP_EXPRs with type qualifiers like const.
1338 2005-05-11 Richard Henderson <rth@redhat.com>
1341 * c-decl.c (finish_decl): Propagate the completed array type of
1342 a global variable into the binding.
1344 2005-05-10 Matt Kraai <kraai@ftbfs.org>
1346 * Makefile.in (gtype-desc.o, build/genautomata.o)
1347 (build/varray.o): Depend on $(VARRAY_H).
1349 2005-05-10 Diego Novillo <dnovillo@redhat.com>
1351 * tree-optimize.c (init_tree_optimization_passes): Re-organize
1352 optimization passes to do an initial batch of scalar cleanups.
1354 2005-05-10 Ian Lance Taylor <ian@airs.com>
1356 * read-rtl.c (struct macro_traverse_data): Define.
1357 (map_attr_string): New static function, broken out of
1358 apply_macro_to_string.
1359 (mode_attr_index, apply_mode_maps): New static functions.
1360 (apply_macro_to_string): Call map_attr_string.
1361 (apply_macro_to_rtx): Add mode_maps and infile parameters. Change
1363 (apply_macro_traverse): Expect data to point to a struct
1364 macro_traverse_data.
1365 (read_rtx): Add mode_maps local variable. Use mode_traverse_data
1366 to pass data through htab_traverse.
1367 (read_rtx_1): Add mode_maps parameter. Change all callers.
1368 Handle mode names which are attribute strings.
1369 * doc/md.texi (Substitutions): Rename from String Substitutions.
1370 Change references. Document using attributes as modes.
1372 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1374 * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1375 * tree-optimize.c (init_tree_optimization_passes) Swap
1376 pass_ch and pass_profile.
1377 * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1378 here. Remove rewrite_into_loop_closed_ssa call.
1380 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1382 * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1384 (legitimate_reload_constant_p): Add check for const double zero.
1385 * config/s390/s390.md: Add comment for constraint letter 'G'.
1386 ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1387 attributes for new case.
1388 * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1389 s390_const_double_ok_for_constraint_p.
1390 * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1393 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1395 PR tree-optimization/21170
1396 * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1397 rewrite_ssa_into_ssa in comments with update_ssa.
1399 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1401 * tree-ssa-loop-im.c: Include hashtab.h.
1402 (struct mem_ref_loc): New.
1403 (struct mem_ref): Describe the set of references with the same
1405 (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1406 maybe_queue_var, fem_single_reachable_address,
1407 for_each_memref, single_reachable_address,
1408 is_call_clobbered_ref, determine_lsm_reg): Removed.
1409 (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1410 hoist_memory_reference, memref_hash, memref_eq, memref_del,
1411 gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1413 (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1414 (determine_lsm_loop): Rewritten.
1415 (determine_lsm): Do not set stmt uids.
1417 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1419 * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1422 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1424 * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1425 ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1426 ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1428 2005-05-10 Jeff Law <law@redhat.com>
1430 * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1431 thread_across_edge for any abnormal edges.
1433 2005-05-10 Richard Henderson <rth@redhat.com>
1435 * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1436 * config/ia64/ia64-protos.h: Declare it.
1437 * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1438 (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1439 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1440 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1441 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1442 (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>. Zero
1443 extend result; use release semantics.
1444 (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1445 (sync_val_compare_and_swap_<IMODE>): Update to match.
1447 2005-05-10 Richard Henderson <rth@redhat.com>
1449 * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1450 before comparing it for success.
1452 2005-05-10 Richard Henderson <rth@redhat.com>
1454 * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
1455 no return value pattern.
1457 2005-05-10 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
1458 H.J. Lu <hongjiu.lu@intel.com>
1460 * libgcov.c (create_file_directory): New function. Create
1461 directory for the given file name.
1462 (gcov_max_filename): New static var. Keeps size of the longest
1464 (gcov_exit): Always try to create directory for output
1465 file. Relocate each filename basing on environment vars.
1466 (__gcov_init): Remember the longest file name.
1467 * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
1468 * doc/gcov.texi (Cross-profiling): New node documenting
1469 cross-profiling management.
1470 * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
1472 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1474 * config/sparc/sparc.c (mem_min_alignment): Do not rely
1475 on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
1477 2005-05-10 Bob Wilson <bob.wilson@acm.org>
1479 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
1480 case code to avoid one move instruction.
1481 (__umodsi3, __modsi3): Merge duplicated code sequences.
1483 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1485 * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
1486 config/sh/sh.md, config/sh/superh.h: Fix comment typos.
1487 * doc/invoke.texi: Fix typos.
1489 * tree-data-ref.c (analyze_array_indexes, analyze_array,
1490 init_data_ref, access_functions_are_affine_or_constant_p,
1491 free_data_refs): Use VEC instead of VARRAY.
1492 * tree-data-ref.h (data_reference): Change the type of
1493 access_fns to VEC(tree,gc)*.
1494 (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
1496 2005-05-10 Gabor Loki <loki@gcc.gnu.org>
1499 * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
1500 * fold-const.c (fold): Expand the condition of reducing cond_expr.
1501 (contains_label_1, contains_label_p): New functions for checking
1502 labels in a sub-tree.
1504 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
1507 * c-decl.c (pushdecl): When there is a declaration in the current
1508 scope and the declarations are external linkage, check for
1509 compatibility with the type in the external scope and update the
1510 type in the external scope with the composite type information.
1511 Do not form a composite type of the new type and the visible type
1512 if they are incompatible.
1514 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
1516 * crtstuff.c: Revert part of 2005-05-08 Change.
1517 (IN_LIBGCC2): Define.
1519 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
1521 * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
1522 remove redundant test.
1523 (fp_mov_p): Accept 0.
1524 (fp_high_losum_p): Remove redundant test.
1525 * config/sparc/predicates.md (const_high_operand): Explicitly test
1526 (not small_int_operand).
1527 (fp_const_high_losum_operand): New.
1528 * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
1529 (movdi_insn_sp32_v9): Use canonical predicates.
1530 (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
1531 (movdi_insn_sp64_novis): Delete.
1532 (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
1533 (movsf_insn_novis): Delete.
1534 (movsf_insn_vis): Rename into movsf_insn.
1535 (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
1536 (movsf_lo_sum): Use fp_const_high_losum_operand.
1537 (movsf_high): Likewise.
1538 (movsf_high_losum splitter): Likewise.
1539 (mov<V32:mode> expander): Use register_or_zero_operand.
1540 (mov<V64:mode> expander): Likewise.
1541 (movdf_insn_sp32): Use register_or_zero_operand.
1542 (movdf_no_e_insn_sp32): Use register_or_zero_operand.
1543 Rename into movdf_insn_sp32_no_fpu.
1544 (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
1545 Rename into movdf_insn_sp32_v9_no_fpu.
1546 (movdf_insn_v9only_novis): Delete.
1547 (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
1548 (movdf_insn_sp64_novis): Delete.
1549 (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
1550 (movdf_no_e_insn_sp64): Use register_or_zero_operand.
1551 Rename into movdf_insn_sp64_no_fpu.
1552 (movtf expander): Use register_or_zero_operand.
1553 (movtf_insn_sp32): Delete.
1554 (movtf_insn_vis_sp32): Use register_or_zero_operand.
1555 Rename into movtf_insn_sp32.
1556 (movtf_no_e_insn_sp32): Use register_or_zero_operand.
1557 Rename into movtf_insn_sp32_no_fpu.
1558 (movtf_insn_hq_sp64): Delete.
1559 (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
1560 Rename into movtf_insn_sp64_hq.
1561 (movtf_insn_sp64): Delete.
1562 (movtf_insn_vis_sp64): Use register_or_zero_operand.
1563 Rename into movtf_insn_sp64.
1564 (movtf_no_e_insn_sp64): Use register_or_zero_operand.
1565 Rename into movtf_insn_sp64_no_fpu.
1567 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
1569 * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
1570 gcc_assert and gcc_unreachable as appropriate.
1571 (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
1572 xstormy16_output_cbranch_si, xstormy16_split_move,
1573 xstormy16_initial_elimination_offset,
1574 xstormy16_encode_section_info, xstormy16_print_operand_address,
1575 xstormy16_expand_call, xstormy16_expand_arith,
1576 xstormy16_output_shift, xstormy16_init_builtins): Likewise.
1578 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1580 * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
1581 const_copies to VEC(tree,heap)*.
1582 (new_elim_graph, delete_elim_graph, elim_graph_size,
1583 elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
1586 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
1589 * doc/extend.texi (Type Attributes): Correct example syntax.
1591 2005-05-09 Joseph S. Myers <joseph@codesourcery.com>
1594 * doc/invoke.texi (-Wuninitialized): Update documentation.
1596 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
1598 * arm.c (const_ok_for_arm): Use a faster algorithm.
1600 2005-05-09 David Edelsohn <edelsohn@gnu.org>
1603 * config/rs6000/rs6000.md (add_op2): New.
1604 (add<mode>3): Use it.
1606 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
1608 * arm.c (arm_gen_constant): Add new heuristic for generating
1609 constant integers that can be expressed as the difference of two
1612 2005-05-09 Roger Sayle <roger@eyesopen.com>
1614 * c-tree.h (parser_build_unary_op): New prototype.
1615 * c-typeck.c (parser_build_unary_op): New function to construct
1616 a unary operation in the C parser.
1617 * c-parser.c (c_parser_unary_expression): Use the new function
1618 parser_build_unary_op when appropriate.
1620 2005-05-09 Mark Mitchell <mark@codesourcery.com>
1623 * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
1624 before outputting DWARF_FRAME_RETURN_COLUMN.
1626 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1628 * config/s390/s390.c: (s390_branch_condition_mask,
1629 s390_branch_condition_mnemonic, s390_extra_constraint_str,
1630 s390_const_ok_for_constraint_p, s390_expand_plus_operand,
1631 legitimize_pic_address, s390_emit_tls_call_insn,
1632 legitimize_tls_address, legitimize_tls_address,
1633 s390_expand_addcc, print_shift_count_operand, print_operand,
1634 addr_generation_dependency_p, annotate_constant_pool_refs,
1635 s390_split_branches, find_constant_pool_ref,
1636 replace_constant_pool_ref, s390_add_constant, s390_find_constant,
1637 s390_find_execute, s390_mainpool_start, s390_chunkify_start,
1638 s390_output_pool_entry, s390_function_value,
1639 s390_call_saved_register_used, s390_emit_call): Replace
1640 conditional aborts by gcc_assert and unconditional by gcc_unreachable.
1641 (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
1642 s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
1643 get_some_local_dynamic_name, s390_function_arg_size,
1644 s390_function_arg_advance, s390_function_arg,
1645 s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
1646 default case by gcc_unreachable.
1647 * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
1648 conditional abort by gcc_assert.
1649 ("doloop_si31"): Replace abort in last else by gcc_unreachable.
1650 ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
1652 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1654 * config/s390/s390.c: (s390_decompose_address,
1655 tls_symbolic_operand, legitimate_pic_operand_p,
1656 legitimate_constant_p, legitimate_reload_constant_p,
1657 s390_expand_plus_operand, legitimate_address_p,
1658 legitimate_la_operand_p, ): Remove 'register' from signature.
1659 (symbolic_reference_mentioned_p,
1660 tls_symbolic_reference_mentioned_p): Remove 'register' from local
1661 variable declarations.
1662 (legitimize_address): Remove 'register' from
1663 signature and local variable declarations.
1665 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1667 * config/s390/s390-protos.h: (s390_match_ccmode,
1668 s390_match_ccmode_set, reg_used_in_mem_p,
1669 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1670 legitimate_la_operand_p, preferred_la_operand_p,
1671 s390_short_displacement, addr_generation_dependency_p,
1672 legitimate_reload_constant_p, legitimate_address_p): Change return type
1674 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1675 * config/s390/s390.c: (s390_match_ccmode,
1676 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
1677 legitimate_reload_constant_p): Change return type into 'bool'.
1678 (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
1679 Likewise. Additionally adapted comment.
1680 (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
1681 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
1682 (s390_decompose_address): Change the type of the internal flags
1683 "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
1684 (struct s390_address): Change type of "pointer" into bool.
1685 * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
1686 Adapt calls for 's390_tm_ccmode' to the new signature.
1688 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1690 * config/s390/s390.c: (s390_match_ccmode_set,
1691 s390_branch_condition_mnemonic, s390_short_displacement,
1692 s390_decompose_address, get_thread_pointer, legitimize_tls_address,
1693 print_shift_count_operand, get_some_local_dynamic_name,
1694 get_some_local_dynamic_name_1, reg_used_in_mem_p,
1695 addr_generation_dependency_p, s390_split_branches,
1696 annotate_constant_pool_refs, find_constant_pool_ref,
1697 replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
1698 s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
1699 s390_register_info, s390_frame_info, s390_init_frame_layout,
1700 s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
1701 restore_gprs, s390_function_arg_size, s390_function_arg_float,
1702 s390_init_machine_status, s390_assemble_integer, s390_handle_option,
1703 s390_encode_section_info, s390_cannot_force_const_mem,
1704 s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
1705 s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
1706 s390_adjust_priority, s390_issue_rate,
1707 s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
1708 s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
1709 s390_build_builtin_va_list, s390_gimplify_va_arg,
1710 s390_function_ok_for_sibcall, s390_call_saved_register_used,
1711 s390_pass_by_reference, s390_fixed_condition_code_regs,
1712 s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
1713 s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
1714 s390_chunkify_cancel, s390_start_pool, s390_end_pool,
1715 s390_add_pool_insn, s390_find_pool, s390_add_constant,
1716 s390_find_constant, s390_add_execute, s390_find_execute,
1717 s390_execute_label, s390_execute_target, s390_dump_pool,
1718 s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
1719 Move target macro definitions to the end of the file. Move several
1720 functions within the file to assure correct compiling.
1722 2005-05-09 Steven Bosscher <stevenb@suse.de>
1724 * calls.c (purge_reg_equiv_notes): Remove, fold into...
1725 (fixup_tail_calls): ...here. Only look at insns between the
1726 start of the function and the FUNCTION_BEG insn note.
1728 * gcse.c (one_cprop_pass): Fix typos in dumps.
1730 * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
1732 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1734 * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
1735 * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
1736 "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
1737 Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
1739 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
1740 '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
1741 ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
1744 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1746 * config/s390/s390.md: ("gf") New mode attribute.
1747 ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
1748 "fixuns_truncsfsi2"): Merge.
1749 ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
1750 ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
1751 "fix_truncsfsi2_ieee"): Merge.
1753 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1755 * config/s390/s390.md: ("FPR") New mode macro.
1756 ("de", "dee"): New mode attributes.
1757 ("cmpdf", "cmpsf"): Merge.
1758 ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
1759 ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
1760 ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
1761 ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
1762 ("floatdidf2", "floatdisf2"): Merge.
1763 ("adddf3", "addsf3"): Merge.
1764 ("*adddf3", "*addsf3"): Merge.
1765 ("*adddf3_cc", "*addsf3_cc"): Merge.
1766 ("*adddf3_cconly", "*addsf3_cconly"): Merge.
1767 ("*adddf3_ibm", "*addsf3_ibm"): Merge.
1768 ("subdf3", "subsf3"): Merge.
1769 ("*subdf3", "*subsf3"): Merge.
1770 ("*subdf3_cc", "*subsf3_cc"): Merge.
1771 ("*subdf3_cconly", "*subsf3_cconly"): Merge.
1772 ("*subdf3_ibm", "*subsf3_ibm"): Merge.
1773 ("muldf3", "mulsf3"): Merge.
1774 ("*muldf3", "*mulsf3" "): Merge.
1775 ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
1776 ("*fmadddf", "*fmaddsf"): Merge.
1777 ("*fmsubdf", "*fmsubsf"): Merge.
1778 ("divdf3", "divsf3"): Merge.
1779 ("*divdf3", "*divsf3"): Merge.
1780 ("*divdf3_ibm", "*divsf3_ibm"): Merge.
1781 ("negdf2", "negsf2"): Merge.
1782 ("*negdf2_cc", "*negsf2_cc"): Merge.
1783 ("*negdf2_cconly", "*negsf2_cconly"): Merge.
1784 ("*negdf2", "*negsf2"): Merge.
1785 ("*negdf2_ibm", "*negsf2_ibm"): Merge.
1786 ("absdf2", "abssf2"): Merge.
1787 ("*absdf2_cc", "*abssf2_cc"): Merge.
1788 ("*absdf2_cconly", "*abssf2_cconly"): Merge.
1789 ("*absdf2", "*abssf2"): Merge.
1790 ("*absdf2_ibm", "*abssf2_ibm"): Merge.
1791 ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
1792 ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
1793 ("*negabsdf2", "*negabssf2"): Merge.
1794 ("sqrtdf2", "sqrtsf2"): Merge.
1796 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1798 * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
1800 * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
1801 "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
1802 ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
1803 "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
1805 * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
1806 fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
1807 "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
1808 fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
1809 ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
1810 "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
1811 "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
1812 "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
1813 "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
1814 "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
1815 "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
1816 "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
1817 "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
1818 "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
1819 "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
1820 "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
1822 ("*divsf3"): Additionally rename second pattern to
1824 ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
1825 "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
1826 "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
1827 "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
1828 "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
1829 'type values' and rename 'type' value.
1830 ("*addsf3"): Additionally rename second pattern to
1833 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1835 * config/s390/s390.md: ("SHIFT"): New mode macro.
1836 ("lr", "shift"): New mode attributes.
1837 ("ashldi3", "lshrdi3"): Merge.
1838 ("*ashldi3_31", "*lshrdi3"_31): Merge.
1839 ("*ashldi3_64", "*lshrdi3"_64): Merge.
1840 ("ashlsi3", "lshrsi3"): Merge.
1842 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1844 * config/s390/s390.md: ("DSI", "SCOND"): New mode
1846 ("E", "g"): New mode attributes.
1847 ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
1848 ("*adddi3_alc", "*addsi3_alc"): Merge.
1849 ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
1850 ("*subdi3_slb", "*subsi3_slb"): Merge.
1851 ("adddicc", "addsicc"): Merge.
1852 ("*sconddi", "*scondsi"): Merge.
1853 ("*sconddi_neg", "*scondsi_neg"): Merge.
1854 ("sltu", "sgtu", "sleu", "sgeu"): Merge.
1855 ("negdi2", "negsi2"): Extract expander pattern from
1856 "negsi2" and merge with "negdi2".
1857 ("*negdi2"): Merge with instruction pattern of "negsi2".
1858 ("*negdi2_cc", "*negsi2_cc"): Merge.
1859 ("*negdi2_cconly", "*negsi2_cconly"): Merge.
1860 ("rotldi3", "rotlsi3"): Merge.
1862 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1864 * config/s390/s390.md: ("hc"): New mode attribute.
1865 ("extendhidi2", "extendqidi2"): Merge.
1866 ("*extendhidi2", "*extendqidi2"): Merge.
1867 ("extendhisi2", "extendqisi2"): Merge.
1868 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
1869 ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
1870 Merged 2 define_split.
1871 ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
1872 ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
1874 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1876 * config/s390/s390.md: ("COMPARE"): New mode macro.
1877 ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
1878 "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
1879 "bungt", "bunle", "bunge", "bltgt"): Merge.
1881 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1883 * config/s390/s390.md: ("INT"): New mode macro.
1884 ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
1887 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1889 * config/s390/s390.md: ("GPR", "P"): New mode macros.
1890 ("cmpdi", "cmpsi"): Merge.
1891 ("strlendi", "strlensi"): Merge.
1892 ("*strlendi", "*strlensi"): Merge.
1893 ("movmemdi", "movmemsi"): Merge.
1894 ("clrmemdi", "clrmemsi"): Merge.
1896 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
1898 * config/s390/s390.md: ("HQI"): New mode macro.
1899 ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
1900 ("*tmhi_full", "*tmqi_full"): Merge.
1901 ("*tsthiCCT", "*tstqiCCT"): Merge.
1902 ("*tsthi", "*tstqi"): Merge.
1903 ("*tsthi_cconly", "tstqi_cconly"): Merge.
1904 ("*sethighhisi", "*sethighqisi"): Merge.
1906 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
1908 * crtstuff.c, integrate.h, tree-scalar-evolution.h,
1909 config/alpha/unicosmk.h, config/arc/arc.md,
1910 config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
1911 config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
1912 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
1913 config/arm/semi.h, config/arm/uclinux-elf.h,
1914 config/arm/wince-pe.h, config/fr30/fr30.c,
1915 config/rs6000/altivec.h: Update copyright.
1917 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
1919 * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
1920 gcc_assert and gcc_unreachable as appropriate.
1921 (pdp11_output_function_epilogue, output_move_double,
1922 output_move_quad, print_operand_address, output_jump,
1923 output_addr_const_pdp11): Likewise.
1924 * config/pdp11/pdp11.h (FUNCTION_PROFILER,
1925 ASM_OUTPUT_ALIGN): Likewise.
1926 * config/pdp11/pdp11.md: Likewise.
1927 (extendhisi2, subhi3, subqi3): Likewise.
1929 2005-05-09 David Edelsohn <edelsohn@gnu.org>
1932 * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
1935 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
1937 * config/ia64/ia64.c: Fix a comment typo.
1939 2005-05-09 Richard Earnshaw <rearnsha@arm.com>
1942 * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
1943 (arm_override_options): Use them instead of manifest constants. Don't
1944 allow -march to override the -mtune setting.
1946 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
1948 * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
1949 (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
1950 (function_arg_advance, function_arg, save_restore_insns,
1951 iq2000_expand_prologue, iq2000_output_conditional_branch,
1952 expand_one_builtin, print_operand):
1953 * config/iq2000/iq2000.md (tablejump): Likewise.
1955 2005-05-09 David Ung <davidu@mips.com>
1957 * config/mips/mips.h (processor_type): Add names for the 24K.
1958 * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
1960 * config/mips/mips.md (cnv_mode): New attribute for recording the
1961 conversion types of float convert insns.
1962 (cpu): Add 24k and 24kx.
1963 (include): Include 24k.md file.
1964 (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
1965 (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
1966 (floatdisf2): Setup cnv_mode.
1967 (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
1969 * config/mips/24k.md: New file, contains 24k DFA pipeline
1972 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
1974 * config/sh/sh.c (print_operand_address): Use gcc_assert and
1975 gcc_unreachable as appropriate.
1976 (print_operand, prepare_move_operands, prepare_scc_operands,
1977 output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
1978 gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
1979 fixup_mova, gen_far_branch, sh_reorg, split_branches,
1980 final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
1981 sh_set_return_address, sh_setup_incoming_varargs,
1982 initial_elimination_offset, sh_pch_valid_p, get_free_reg,
1983 sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
1984 check_use_sfunc_addr): Likewise.
1985 * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
1986 * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
1987 * config/sh/symbian.c (sh_symbian_mark_dllexport,
1988 sh_symbian_mark_dllimport): Likewise.
1989 * config/sh/sh.md: Likewise.
1990 (movdicc, call_pop, call_value_pop, casesi_worker_1,
1991 casesi_worker_2, casesi_shift_media, casesi_load_media,
1992 return_media): Likewise.
1994 2005-05-08 Roger Sayle <roger@eyesopen.com>
1997 * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2000 2005-05-08 Richard Henderson <rth@redhat.com>
2002 * config/alpha/alpha.c (adjust_address): Fix typo last change.
2004 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2006 * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
2007 and -1 can happen in reg_renumber when no hard register is assigned.
2009 2005-05-08 Steven Bosscher <stevenb@suse.de>
2010 Kazu Hirata <kazu@cs.umass.edu>
2012 PR tree-optimization/14841, tree-optimization/15838
2013 * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2014 (evaluate_stmt): Call it.
2016 2005-05-08 Jakub Jelinek <jakub@redhat.com>
2018 * config/ia64/ia64.c (ia64_override_options): Don't set
2019 ia64_flag_var_tracking and clear flag_var_tracking here...
2020 (ia64_file_start): ... but here.
2022 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2024 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
2025 and gcc_unreachable as appropriate.
2026 (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
2027 m68hc11_gen_highpart, print_operand, print_operand_address,
2028 m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
2029 m68hc11_gen_movhi): Likewise.
2030 * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
2031 * config/m68hc11/m68hc11.md: Reword comment.
2033 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2036 * config/m68hc11/predicates.md (splitable_operand): An immediate is
2039 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2041 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
2042 the 68HC12 address indirect addressing mode as it is not supported by
2044 * config/m68hc11/m68hc11-protos.h
2045 (m68hc11_valid_addressing_p): Declare.
2046 (m68hc11_add_mode): Declare.
2047 * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
2048 register_indirect_p and export it.
2049 (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
2050 instruction so that it is part of the good BB.
2051 (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
2052 addressing with movw.
2053 (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
2055 * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
2056 ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
2057 * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
2059 ("*movhi_68hc12"): Handle movhi_const0.
2060 ("*subhi3", "subqi3"): Use general_operand for operand 1.
2061 ("*subhi3_zext"): Likewise.
2063 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2066 * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2067 operand 1 and fix constraints.
2068 ("mulqihi3"): Use general_operand for operand 2.
2070 2005-05-08 Julian Brown <julian@codesourcery.com>
2071 H.J. Lu <hongjiu.lu@intel.com>
2072 Paul Brook <paul@codesourcery.com>
2074 * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
2075 GNU linker. Support linker version x.x.x.x.x. Require GNU linker
2076 20050308/2.16.0 or newer for comdat group.
2077 * configure: Regenerated.
2078 * config.in: Regenerated.
2079 * varasm.c (default_function_rodata_section): Put .rodata section in
2080 COMDAT group when necessary.
2081 (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
2083 (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2086 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
2088 * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2090 * tree-flow.h (num_referenced_var, referenced_var): Likewise.
2091 * tree-into-ssa.c (mark_def_site_blocks): Likewise.
2092 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
2093 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2095 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2098 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
2099 64-bit constants on 64-bit hosts.
2100 (m68hc11_split_logical): Simplify.
2101 (m68hc11_split_move): Likewise.
2103 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2104 Paolo Bonzini <bonzini@gnu.org>
2106 * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
2107 * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
2108 * configure.ac (enable_checking): Fix typos in runtime_checking.
2109 (ENABLE_RUNTIME_CHECKING): Mark as target template.
2110 (xm_file): Prepend auto-host.h
2111 (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
2112 * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
2114 * crtstuff.c: Do not include auto-host.h.
2115 (IN_LIBGCC2): Do not define.
2116 * gcov-io.h: Include tconfig.h, not auto-host.h.
2117 * libgcc2.c: Do not include auto-host.h.
2118 (abort): Do not undefine.
2119 * libgcov.c: Remove unneeded comment about config.h.
2120 * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
2121 * config.in, configure: Regenerated.
2123 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2124 Falk Hueffner <falk@debian.org>
2126 * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
2127 and gcc_unreachable as appropriate.
2128 (get_aligned_mem, get_unaligned_address,
2129 alpha_emit_set_long_const, alpha_emit_conditional_branch,
2130 alpha_emit_setcc, alpha_emit_conditional_move,
2131 alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
2132 alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
2133 alpha_expand_unaligned_load, alpha_expand_block_move,
2134 alpha_expand_zap_mask, get_trap_mode_suffix,
2135 get_round_mode_suffix, get_some_local_dynamic_name,
2136 print_operand_address, function_arg, alpha_return_in_memory,
2137 function_value, alpha_expand_builtin,
2138 alpha_initial_elimination_offset, alpha_expand_epilogue,
2139 summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
2140 alphaev5_next_group, alpha_align_insns,
2141 unicosmk_initial_elimination_offset, unicosmk_unique_section,
2142 unicosmk_ssib_name): Likewise.
2143 * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2144 * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
2145 ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
2146 * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
2147 ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2148 * config/alpha/alpha.md (*divmodsi_internal_er,
2149 *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
2150 call_nt, call_umk, call_vms, call_value, sibcall_value,
2151 call_value_osf, call_value_nt, call_value_vms, call_value_umk,
2152 *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
2153 * config/alpha/predicates.md (input_operand): Likewise.
2155 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2157 * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
2158 gcc_unreachable, as appropriate.
2159 (frv_function_prologue, frv_alloc_temp_reg,
2160 frv_initial_elimination_offset, frv_expand_block_move,
2161 frv_expand_block_clear, frv_print_operand_jump_hint,
2162 frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
2163 frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
2164 frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
2165 frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
2166 frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
2167 frv_in_small_data_p, frv_asm_out_constructor,
2168 frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
2169 * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
2170 *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
2171 *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
2172 sibcall_value, casesi): Likewise.
2174 * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
2175 gcc_unreachable as appropriate.
2176 (print_operand_address, mn10300_print_reg_list, expand_prologue,
2177 expand_epilogue, notice_update_cc, initial_offset,
2178 mn10300_address_cost_1): Likewise.
2179 * config/mn10300/mn10300.md: Likewise.
2180 (absdf2, abssf2, negdf2, negsf2): Likewise.
2182 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
2185 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2187 * config/mips/mips.md (swapped_fcond): New code macro and attribute.
2188 (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
2189 including sunge_<mode> and sungt_<mode>.
2191 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
2193 * integrate.h (get_hard_reg_initial_val): Change type of register
2194 parameter from int to unsigned int.
2195 (has_hard_reg_initial_val): Likewise.
2196 * integrate.c (get_hard_reg_initial_val): Likewise.
2197 (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
2199 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
2201 * except.c (eh_status): Change the type of ttype_data to
2203 (add_ttypes_entry, assign_filter_values,
2204 output_function_exception_table): Use VEC instead of VARRAY.
2206 2005-05-07 David Edelsohn <edelsohn@gnu.org>
2208 * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2210 2005-05-07 Paul Brook <paul@codesourcery.com>
2212 * Makefile.in: Fix dependencies.
2213 (GCOV_IO_H, VARRAY_H): Set.
2215 2005-05-07 Anthony Green <green@redhat.com>
2218 * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2219 x$STMP_FIXPROTO test.
2220 * configure: Rebuilt.
2222 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
2224 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2225 inappropriate feature test macros if flag_iso.
2227 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
2229 * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2231 2005-05-07 Hans-Peter Nilsson <hp@axis.com>
2234 * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
2235 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2236 Handle moved operand being in special register.
2237 ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
2238 presumed working insn.
2239 (mover2side): Add FIXME.
2241 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2243 * integrate.c (get_func_hard_reg_initial_val): Delete.
2244 (has_func_hard_reg_initial_val): Delete.
2245 (get_hard_reg_initial_val): Inline the old implementation of
2246 get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
2247 instead of has_func_hard_reg_initial_val to test for an existing
2248 pseudo. Only create an rtx if a new initial value entry is needed.
2249 (has_hard_reg_initial_val): Scan the initial value list directly.
2250 Don't create an rtx.
2252 2005-05-07 David Edelsohn <edelsohn@gnu.org>
2254 * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2256 * config.in (HAVE_AS_POPCNTB): New.
2257 * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2258 (HAVE_AS_POPCNTB): New.
2259 * configure: Regenerated.
2260 * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2261 * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2262 MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
2263 and rs6000_sched_costly_dep.
2264 * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2265 (TARGET_XL_COMPAT): Delete.
2266 * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2267 (popcount<mode>2): New.
2268 (popcntb<mode>2): New.
2269 * config/rs6000/rs6000.opt (mpopcntb): New.
2271 * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2272 if variable name exists.
2274 2005-05-07 Matt Kraai <kraai@ftbfs.org>
2276 * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2278 2005-05-07 Richard Henderson <rth@redhat.com>
2281 * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2282 with constant offsets.
2284 2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
2286 * config/v850/v850.c (print_operand): Use gcc_assert and
2287 gcc_unreachable, as appropriate.
2288 (print_operand_address, v850_handle_data_area_attribute,
2289 v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2290 v850_insert_attributes, construct_prepare_instruction): Likewise.
2291 * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2292 * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2294 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
2296 * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2297 config/rs6000/rs6000.h: Fix comment typos.
2299 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2301 * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2302 * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2303 (mips_scalar_mode_supported_p): Delete.
2305 2005-05-06 Eric Christopher <echristo@redhat.com>
2307 * config/mips/mips.opt: Remove -mint64 option.
2308 * config/mips/mips.c (override_options): Remove -mint64
2310 * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2311 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2312 64-bit integer handling.
2313 * doc/invoke.texi (Option Summary): Remove -mint64 for
2316 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2318 PR tree-optimization/19401
2319 * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2320 * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2321 (estimated_unrolled_size): New function.
2322 (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2323 tree_unroll_loops_completely): Always unroll loops if the code size
2325 * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2326 loops should be unrolled completely.
2327 (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2329 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2331 PR rtl-optimization/21254
2332 * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2333 assumptions for loops that otherwise do not roll.
2334 (find_simple_exit): Prefer # of iterations that is guaranteed
2336 * loop-unroll.c (decide_peel_once_rolling,
2337 decide_peel_completely): Check whether the loop is infinite.
2339 2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
2341 * config/rs6000/sysv4.opt: Fix typo.
2343 2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
2344 Jakub Jelinek <jakub@redhat.com>
2347 * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2348 for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2349 Don't use rep; movs{l,q} if the repetition count is really small,
2350 instead use a sequence of movs{l,q} instructions.
2352 2005-05-06 Jeff Law <law@redhat.com>
2354 PR tree-optimization/21380
2355 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2356 thread through a block with no preds.
2358 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
2360 * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2361 ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2362 add_call_read_ops): Use VEC instead of VARRAY.
2364 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2366 * config/mcore/mcore.c (mcore_print_operand_address): Use
2367 gcc_assert and gcc_unreachable as appropriate.
2368 (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2369 mcore_output_andn, output_inline_const, mcore_output_move,
2370 mcore_output_movedouble, mcore_expand_block_move,
2371 layout_mcore_frame, mcore_initial_elimination_offset,
2372 mcore_expand_prolog, mcore_mark_dllexport,
2373 mcore_mark_dllimport): Likewise.
2374 * config/mcore/mcore.h (switch_to_section): Likewise.
2375 * config/mcore/mcore.md: Likewise.
2377 2005-05-06 Aldy Hernandez <aldyh@redhat.com>
2379 * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2380 TARGET_PROFILE_KERNEL.
2382 * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2383 TARGET_PROFILE_KERNEL use.
2385 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2387 * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2388 and gcc_unreachable, as appropriate.
2389 (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2390 m32r_expand_prologue, m32r_output_function_epilogue,
2391 m32r_legitimize_pic_address, m32r_print_operand_address,
2392 emit_cond_move, m32r_function_symbol,
2393 m32r_output_block_move): Likewise.
2394 * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2395 * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2396 *rev_zero_branch_insn): Likewise.
2398 2005-05-06 Jakub Jelinek <jakub@redhat.com>
2401 * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2402 if both NEWDECL and OLDDECL are already weak.
2404 2005-05-06 Richard Sandiford <rsandifo@redhat.com>
2406 * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2408 2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
2409 Kaz Kojima <kkojima@gcc.gnu.org>
2411 * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2414 2005-05-05 Aldy Hernandez <aldyh@redhat.com>
2415 David Edelsohn <edelsohn@gnu.org>
2417 * config.gcc: Add .opt magic for the rs6000 ports.
2419 * doc/invoke.texi: Document -mabi= option properly. Document
2420 -misel and -mno-sel. Document -mspe and -mno-spe. Document
2421 -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
2424 * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
2425 SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
2428 * config/rs6000/aix.opt: New.
2429 * config/rs6000/aix41.opt: New.
2430 * config/rs6000/aix64.opt: New.
2431 * config/rs6000/darwin.opt: New.
2432 * config/rs6000/linux64.opt: New.
2433 * config/rs6000/rs6000.opt: New.
2434 * config/rs6000/sysv4.opt: New.
2436 * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2437 associated TARGET_*. Remove SUBTARGET_OPTIONS,
2439 Define TARGET_USES_SYSV4_OPT.
2440 * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2441 * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
2442 TARGET_USES_AIX64_OPT.
2443 * config/rs6000/aix51.h: Same.
2444 * config/rs6000/aix52.h: Same.
2445 * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2446 MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2447 Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2448 Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2449 * config/rs6000/linux64.h: Use
2450 rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
2452 * config/rs6000/rs6000.c: Remove definitions of
2453 rs6000_sched_restricted_insns_priority,
2454 rs6000_long_double_size_string, rs6000_altivec_vrsave,
2455 rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
2456 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2457 rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
2458 rs6000_alignment_string. Define rs6000_explicit_options.
2459 (rs6000_parse_abi_options): Remove.
2460 (rs6000_parse_alignment_option): Remove.
2461 (rs6000_parse_float_gprs_option): Remove.
2462 (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
2463 TARGET_DEFAULT_TARGET_FLAGS.
2464 (rs6000_override_options): Revamp to use new .opt machinery.
2466 * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
2467 of new .opt machinery. Remove target_flags. Redefine
2468 TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
2469 SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
2470 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
2471 rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
2472 rs6000_longcall_switch, rs6000_default_long_calls,
2473 rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
2474 rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
2475 TARGET_ALTIVEC_VRSAVE.
2477 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
2479 * config.gcc (hppa1.1-*-rtems*): Remove.
2480 * config/pa/rtems.h: Remove.
2482 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
2484 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
2485 Exclude roe/603e multilib variants.
2487 2005-05-04 Denis Chertykov <denisc@overta.ru>
2490 * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
2493 2005-05-05 Richard Sandiford <rsandifo@redhat.com>
2495 * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
2496 arm/pe.opt to $extra_options.
2497 * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
2498 (target_float_abi_name, target_float_switch, target_abi_name)
2499 (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
2500 (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
2501 (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
2502 (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
2503 (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
2504 (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
2505 (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
2506 (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
2507 (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
2508 (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
2509 (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
2510 (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
2511 (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
2512 (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
2513 (arm_pic_register_string): Delete.
2514 (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
2516 (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
2517 * config/arm/coff.h (TARGET_DEFAULT): Likewise.
2518 * config/arm/elf.h (TARGET_DEFAULT): Likewise.
2519 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
2520 * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
2521 * config/arm/semi.h (TARGET_DEFAULT): Likewise.
2522 * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
2523 * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
2524 * config/arm/pe.h (TARGET_DEFAULT): Likewise.
2525 (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
2526 (SUBTARGET_SWITCHES): Delete.
2527 * config/arm/arm.c (target_float_switch): Delete.
2528 (arm_cpu_select): Moved from config/arm/arm.h.
2529 (target_fpu_name, target_fpe_name, target_float_abi_name)
2530 (target_abi_name, structure_size_string, arm_pic_register_string)
2531 (arm_select): Make static.
2532 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2533 (arm_handle_option): New function.
2534 (arm_override_options): Update target_flags checks for new mask names.
2535 Remove target_float_switch code.
2536 (arm_expand_prologue, thumb_expand_prologue): Check
2537 !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
2538 * config/arm/arm.opt, config/arm/pe.opt: New files.
2540 2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
2542 * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
2543 gcc_unreachable as appropriate.
2544 (arc_double_limm_p, arc_setup_incoming_varargs,
2545 arc_compute_function_type, arc_output_function_prologue,
2546 arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
2547 output_shift, arc_print_operand, arc_print_operand_address,
2548 arc_final_prescan_insn): Likewise.
2549 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
2551 2005-05-04 Geoffrey Keating <geoffk@apple.com>
2553 * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
2558 (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
2559 add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
2560 clz<mode>2, ctz<mode>2, ffs<mode>2): New.
2561 (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
2562 (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
2563 (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
2564 (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
2565 (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
2567 2005-05-05 Paul Brook <paul@codesourcery.com>
2569 * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
2570 cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
2571 regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
2572 and tree-data-ref.h with *_H variables.
2574 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
2576 * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
2578 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
2580 * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
2582 2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
2584 * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
2586 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
2588 * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
2589 setting of vrsave register for current function after
2590 call to save_world is emitted.
2592 2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
2594 * config/mmix/predicates.md: New file.
2595 * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
2596 (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
2597 (mmix_foldable_comparison_operator, mmix_comparison_operator)
2598 (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
2599 * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2601 * config/mmix/mmix.md: Include predicates.md.
2602 ("call", "call_value"): Force address to register if it isn't a
2603 mmix_symbolic_or_address_operand.
2605 2005-05-04 Andrew MacLeod <amacleod@redhat.com>
2607 * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
2608 the flags are of appropriate types.
2609 (num_ssa_operands): Generalize using the generic interface.
2610 * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
2613 2005-05-04 Richard Sandiford <rsandifo@redhat.com>
2615 * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
2616 (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
2618 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2620 * tree-outof-ssa.c (edge_leader, stmt_list,
2621 analyze_edges_for_bb): Use VEC instead of VARRAY.
2622 (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
2623 (perform_edge_inserts): Call init_analayze_edges_for_bb and
2624 fini_analayze_edges_for_bb.
2626 2005-05-04 James E Wilson <wilson@specifixinc.com>
2629 * gcc.c (process_command): In the second argv scan loop, ignore
2630 Xassembler and Xpreprocessor, along with their argument.
2632 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2634 * tree-flow-inline.h, tree-ssa-operands.c,
2635 tree-ssa-operands.h, tree-ssa-opfinalize.h:
2636 Likewise. tree-vn.c: Fix comment typos.
2637 * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
2639 2005-05-04 Paolo Bonzini <bonzini@gnu.org>
2641 * doc/tm.texi (Target Hooks): Document
2642 TARGET_RESOLVE_OVERLOADED_BUILTIN.
2644 2005-05-04 Paul Brook <paul@codesourcery.com>
2646 * Makefile.in: Change dependencies on target.h to $(TARGET_H).
2648 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
2650 * dwarf2out.c (incomplete_types, retry_incomplete_types,
2651 gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
2654 * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
2655 get_expansion, expand_var_during_unrolling,
2656 insert_var_expansion_initialization,
2657 combine_var_copies_in_loop_exit, release_var_copies): Use VEC
2660 * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
2663 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
2666 * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
2667 the same as INTEGER_TYPE.
2668 (fold_binary): Fold "bool_var != 0" to bool_var.
2669 Fold "bool_var == 1" to bool_var.
2671 2004-05-03 Richard Henderson <rth@redhat.com>
2674 * function.c (instantiate_virtual_regs_in_insn): Use the mode
2675 from recog_data instead of insn_data.
2677 2005-05-03 DJ Delorie <dj@redhat.com>
2679 * common.opt (fdiagnostics-show-option): No variable is needed.
2680 * diagnostic.h (diagnostic_context): Add show_option_requested flag.
2681 * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
2682 (diagnostic_report_diagnostic): Test for enabled diagnostics here.
2683 Save and restore original message format. Use flag in context
2685 (warning): Don't test for enabled warnings here.
2686 * opts.c (common_handle_option): Handle -fdiagnostics-show-option
2689 2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
2691 * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
2692 * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
2693 * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
2694 * aclocal.m4: Don't include accross.m4.
2695 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
2696 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
2697 * configure, config.in: Regenerate.
2699 2005-05-04 Jakub Jelinek <jakub@redhat.com>
2702 * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
2703 (clear_storage): Add argument.
2704 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
2705 Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
2707 (emit_block_move): Handle BLOCK_OP_TAILCALL method.
2708 (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
2709 (store_expr, store_constructor): Adjust callers.
2710 * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
2711 to emit_block_move if CALL_EXPR_TAILCALL (exp).
2712 (expand_builtin_memmove): Add ORIG_EXP argument, copy
2713 CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
2714 (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
2715 with EXP. Pass EXP to expand_builtin_memmove.
2716 (expand_builtin_memset): Add ORIG_EXP argument, pass
2717 BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
2718 (expand_builtin_bzero): Replace ARGLIST argument with EXP.
2719 Pass EXP to expand_builtin_memset.
2720 (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
2722 (expand_builtin_strncmp): Likewise.
2723 (expand_builtin_printf): Replace ARGLIST argument with EXP.
2724 Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
2725 (expand_builtin_fprintf): Likewise.
2726 (expand_builtin): Adjust calls to
2727 expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
2729 * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
2732 PR rtl-optimization/21239
2733 * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
2735 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2737 * tree-flow.h (tree_ann_common_d): Move aux to ...
2738 (stmt_ann_d): ... here.
2739 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2740 move_computations_stmt, schedule_sm): Update references to
2742 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2744 * tree-cfg.c (remove_bb): Remove a redundant call to
2746 * tree-if-conv.c (replace_phi_with_cond_modify_expr):
2749 2005-05-03 Richard Henderson <rth@redhat.com>
2751 * config/rs6000/rs6000.c: Remove conflict markers.
2753 * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
2755 2005-05-03 James E Wilson <wilson@specifixinc.com>
2757 * dwarf2out.c (lookup_filename): Call maybe_emit_file.
2759 2005-05-03 DJ Delorie <dj@redhat.com>
2761 * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
2762 decide if the warning will be printed.
2763 * calls.c (expand_call): Likewise.
2764 * function.c (init-function_start): Likewise.
2766 * common.opt (-fdiagnostics-show-option): New.
2767 * opts.c (option_enabled): Accept the option index instead of a
2768 pointer to the option descriptor.
2769 * opts.h (option_enabled): Likewise.
2770 * toplev.c (print_switch_values): Pass option index, not option
2772 * diagnostic.h (diagnostic_info): Add option_index.
2773 * diagnostic.c: Include opts.h.
2774 (diagnostic_set_info): Initialize option_index.
2775 (diagnostic_report_diagnostic): Amend option name if appropriate.
2776 (warning): Check to see if the specified warning is enabled.
2778 * doc/invoke.texi (-fdiagnostics-show-options): Document.
2780 2005-05-03 Richard Henderson <rth@redhat.com>
2782 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
2783 SPEC_OR_GEN_REGS definitions.
2785 2005-05-03 Alexandre Oliva <aoliva@redhat.com>
2788 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
2789 for unavailable registers.
2791 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
2793 * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
2795 * cfglayout.c (block_locators_blocks,
2796 insn_locators_initialize, insn_scope): Use VEC instead of
2799 * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
2800 mudflap_finish_file, mudflap_finish_file): Use VEC instead of
2803 2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
2805 * config/sparc/predicates.md (const_compl_high_operand): New.
2806 * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
2808 (sparc_emit_set_const64_quick1): Adjust for above change.
2809 (sparc_emit_set_const64_quick2): Likewise.
2810 (sparc_emit_set_const64_longway): Likewise.
2811 (sparc_emit_set_const64): Likewise.
2812 * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
2813 movdi_const64_special): Delete.
2814 (logical constant splitters): Use const_compl_high_operand.
2816 2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
2818 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
2819 rather than STRIP_NOPS.
2821 2005-05-03 Jakub Jelinek <jakub@redhat.com>
2823 PR rtl-optimization/21330
2824 * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
2826 (unswitch_single_loop): Clear cinsn when retrying.
2829 * config/i386/i386.c (legitimize_address): When canonicalizing
2830 ASHIFT into MULT, multiply by 1 << shift_count instead of
2831 1 << log2 (shift_count).
2833 2005-05-03 Andrew MacLeod <amacleod@redhat.com>
2835 * lambda-code.c (gcc_loop_to_lambda_loop,
2836 lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
2837 stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
2838 generic operand interface.
2839 * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
2840 * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
2841 generic operand interface.
2842 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
2843 link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
2844 next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
2845 num_imm_uses): Use ssa_use_operand_t.
2846 (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
2847 get_v_must_def_ops): Delete.
2848 (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
2849 (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
2850 get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
2851 get_v_must_def_kill_ptr): Delete.
2852 (delink_stmt_imm_use): Move and use new operand interface.
2853 (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
2854 op_iter_next_tree): Use new operand implementation.
2855 (clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
2856 (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
2858 (op_iter_next_mustdef, op_iter_next_maydef,
2859 op_iter_next_must_and_may_def): Delete. Replace with...
2860 (op_iter_next_maymustdef): New. Combine must and may next operations.
2861 (op_iter_init_maydef, op_iter_init_mustdef,
2862 op_iter_init_must_and_may_def): Use new interface.
2863 (single_ssa_tree_operand ): New. Process single operands only as trees.
2864 (single_ssa_use_operand): New. Process single operands only as uses.
2865 (single_ssa_def_operand): New. Process single operands only as defs.
2866 (zero_ssa_operands): New. Return TRUE if there are zero operands of the
2868 (num_ssa_operands): New. Count the number of specified operands.
2869 (compare_ssa_operands_equal): New. Compare two statements' operands.
2870 (single_phi_def): New. Return true if PHI has one def of the specified
2872 (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
2873 (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
2874 * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
2875 (struct stmt_ann_d): Operands field no longer require GTY().
2876 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
2877 * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
2878 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
2879 dump_replaceable_exprs, rewrite_trees): Use generic interface.
2880 * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
2881 Use use_operand_p instead of ssa_imm_use_t *.
2882 * tree-pretty-print.c (dump_vops): check if operands are active before
2883 dumping virtual operands.
2884 * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
2885 * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
2886 (ccp_fold): Use new interface.
2887 (ccp_visit_stmt): Remove unused variables and code.
2888 (convert_to_gimple_builtin): Insert statements before calling
2889 mark_new_vars_to_rename.
2890 * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
2891 (copy_prop_visit_cond_stmt): Use generic interface.
2892 * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
2893 annotation in table.
2894 (thread_across_edge): Use generic interface.
2895 (initialize_hash_element): Initialzie with stmt, not annotation.
2896 (eliminate_redundant_computations): Use generic interface.
2897 (record_equivalences_from_stmt): Pass stmt, not annotation.
2898 (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
2900 * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
2901 * tree-ssa-loop-ivopts.c (find_invariants_stmt,
2902 find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
2903 generic operand interface.
2904 * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
2906 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
2908 * tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
2909 (build_defs, build_uses, build_v_may_defs, build_vuses,
2910 build_v_must_defs): Change type to struct opbuild_list_d.
2911 (ops_active): New. Operands active boolean.
2912 (operand_memory, operand_memory_index): New. Operand memory managers.
2913 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
2914 allocate_vuse_optype, allocate_v_must_def_optype): Delete.
2915 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
2916 Change from functions to static variable list heads.
2917 (opbuild_initialize_virtual): New. Initialize a virtual build list.
2918 (opbuild_initialize_real): New. Initialize a virtual build list.
2919 (opbuild_free): New. Free a build list.
2920 (opbuild_num_elems): New. Number of items in a list.
2921 (opbuild_append_real): New. Add a real (tree *) operand.
2922 (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
2923 (opbuild_first): New. Return first element index in a list.
2924 (opbuild_next): New. Return next element in a list.
2925 (opbuild_elem_real): New. Return real element.
2926 (opbuild_elem_virtual): New. Return virtual element.
2927 (opbuild_elem_uid): New. Return UID of virtual element.
2928 (opbuild_clear): New. Reset an operand list.
2929 (opbuild_remove_elem): New. Remove an element form a list.
2930 (ssa_operands_active): New. Return true if operand cache is active.
2931 (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
2932 (ssa_operand_alloc): New. Allocate memory from an operand chunk.
2933 (correct_use_link): Use use_operand_p.
2934 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
2935 finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
2936 (cleanup_v_may_defs): Use new implmentation.
2937 (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
2939 (append_def, append_use, append_v_may_def, append_vuse,
2940 append_v_must_def): Call opbuild_append routine instead of using varray.
2941 (build_ssa_operands): Simplify to simply use stmt, don't maintain a
2942 global parse_old_ops variable.
2943 (free_ssa_operands): New implementation.
2944 (update_stmt_operands): Move. Change argument to build_ssa_operands.
2945 (copy_virtual_operands): Move. New generic implementation.
2946 (create_ssa_artficial_load_stmt): Move. New implementation.
2947 (swap_tree_operands): Update for new implementation.
2948 (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
2949 (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
2950 rather than a varray.
2951 (verify_imm_links): Use use_operand_p.
2952 (dump_immediate_uses_for): If the immediate use variable is a virtual
2953 variable, show the virtual ops in the stmt.
2954 * tree-ssa-operands.h (def_operand_p): No longer a structure.
2955 (NULL_DEF_OPERAND_P): Now a #define.
2956 (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
2957 vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
2958 (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
2959 mustdef_optype_d): New. Use Linked list representation.
2960 (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
2961 (struct ssa_operand_memory_d): New. Allocated Chunk node.
2962 (struct stmt_operands_d): Change to new pointers that are not GTY.
2963 (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
2964 STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
2965 SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
2966 STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
2967 SET_V_MUST_DEF_KILL): Delete.
2968 (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
2969 V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
2970 (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
2971 V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
2972 (enum ssa_op_iter_type): Operand iterator typechecking values.
2973 (struct ssa_operand_iterator_d): Use linked lists of operands.
2974 (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
2975 (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
2976 FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
2977 (FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
2978 (FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
2979 (FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
2980 (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
2981 SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
2982 * tree-ssa-opfinalize.h: New. Function templates for expansion.
2983 (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
2984 alloc_vuse, and alloc_mustdef.
2985 (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
2986 finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
2987 and finalize_ssa_v_must_def_ops.
2988 * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
2989 (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
2991 (compute_avail): Use generic iterator interface.
2992 * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
2993 (stmt_makes_single_load, stmt_makes_single_store): Use
2995 * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
2996 (statement_sink_location): Use generic interface.
2997 * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
2998 (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
2999 reset the immediate use link nodes.
3000 (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
3001 * tree-ssanames.c (make_ssa_name): Use use_operand_p.
3002 * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
3003 (eliminate_tail_call): Use generic operand interface.
3004 * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
3005 (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
3007 * tree-vect-transform.c (update_vuses_to_preheader): Use generic
3009 * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
3010 * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
3012 (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
3013 Use statement pointer instead of vuse_optype. Use generic interface.
3014 * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
3015 (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
3016 * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
3017 (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
3018 * doc/tree-ssa.texi: Update documentation for operand interface.
3020 2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
3022 * config/darwin.c (machopic_define_symbol): Use gcc_assert or
3023 gcc_unreachable as appropriate.
3024 (machopic_function_base_name, machopic_indirect_data_reference,
3025 machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
3026 * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
3027 * config/rs6000/altivec.md (*mov<mode>_internal,
3028 build_vector_mask_for_load): Likewise.
3029 * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
3030 *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
3031 *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
3032 * config/rs6000/predicates.md (easy_fp_constant,
3033 logical_operand): Likewise.
3034 * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
3035 compute_save_world_info, rs6000_emit_prologue,
3036 rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
3037 * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
3040 2005-05-03 Uros Bizjak <uros@kss-loka.si>
3043 * convert.c (convert_to_integer): Convert ceil and floor in
3046 2005-04-29 Geoffrey Keating <geoffk@apple.com>
3049 * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
3050 define_insn_and_split. Split only when memory operand is
3051 offsettable. Use adjust_address rather than plus_constant.
3052 (floatunssidf2_internal): Likewise.
3053 (fix_truncdfsi2_internal): Split only when memory operand is
3054 offsettable. Use adjust_address rather than plus_constant.
3055 (fix_trunctfsi2_internal): Likewise.
3056 (floatsidf2_internal): Likewise.
3058 2005-05-02 Diego Novillo <dnovillo@redhat.com>
3060 * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
3061 (set_value_range_to_null): Likewise.
3062 (set_value_range_to_varying): New function. Use it in all
3063 call sites that used to call set_value_range (vr, VR_VARYING, ...).
3064 (extract_range_from_assert): If the integral type has a
3065 super-type, and LIMIT is not within MIN and MAX values of that
3066 type, set the resulting range to VR_VARYING.
3068 2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
3070 * config/mmix/mmix.opt: New file.
3071 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
3072 (mmix_cc1_ignored_option): Don't declare.
3073 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
3074 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
3075 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
3076 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
3077 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
3078 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
3079 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
3080 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
3082 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
3083 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
3084 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3086 2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
3089 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
3090 * c-decl.c (current_function_prototype_built_in,
3091 current_function_prototype_arg_types): New.
3092 (merge_decls): Keep source location of prototype followed by
3093 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
3094 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
3095 (start_function): Always set current_function_prototype_locus,
3096 current_function_prototype_built_in and
3097 current_function_prototype_arg_types. Check for external
3098 prototype whether or not visible for external function and set
3099 current_function_prototype_arg_types accordingly.
3100 (store_parm_decls_oldstyle): Use
3101 current_function_prototype_arg_types for checking old-style
3102 definition against prototype. Give warnings only if
3103 current_function_prototype_built_in).
3105 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
3107 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
3108 (ggc_alloc_zone_stat): Don't define.
3109 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
3110 ggc_alloc_zone_pass_stat.
3111 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
3112 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
3113 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
3115 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
3117 * calls.c (expand_call): Handle current_function_pretend_args_size
3118 when checking for sibcalls.
3120 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3122 PR tree-optimization/21294
3123 * tree-vrp.c (vrp_expr_computes_nonzero): New.
3124 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
3126 2005-05-02 Janis Johnson <janis187@us.ibm.com>
3129 * gcov-io.h: Declare gcov external functions hidden.
3131 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3133 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
3134 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
3135 Use VEC instead of VARRAY.
3138 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
3141 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
3143 * c-common.c (resolve_overloaded_builtin): Forward to target
3144 hook for BUILT_IN_MD built-ins.
3145 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
3146 for all types of built-in.
3147 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
3148 in the definition of the target hooks struct.
3149 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
3150 * config/rs6000/altivec.h: Rewritten.
3151 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
3152 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
3153 rs6000_builtin_type, rs6000_builtin_type_compatible,
3154 altivec_overloaded_builtins, rs6000_builtin_type,
3155 rs6000_builtin_type_compatible): New.
3156 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
3158 (def_builtin): Turn into a function. Check for duplicates and store
3159 the builtin into rs6000_builtin_decls.
3160 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
3161 bdesc_1arg): Add overloaded builtins.
3162 (altivec_expand_builtin): Check for unresolved overloaded builtins,
3163 do not support ALTIVEC_COMPILETIME_ERROR.
3164 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
3165 nodes to represent front-end types.
3166 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
3167 with opaque arguments and/or return values.
3168 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
3169 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
3170 (rs6000_builtin_type_index): New.
3171 (is_ev64_opaque_type): Rename to...
3172 (rs6000_is_opaque_type): ... this.
3173 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
3176 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3178 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
3181 2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
3182 Bernd Schmidt <bernd.schmidt@analog.com>
3184 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
3185 print_address_operand, print_operand, legitimize_pic_address,
3186 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
3187 output_pop_multiple): Use gcc_assert or gcc_unreachable as
3189 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
3191 2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
3193 * doc/passes.texi: Document vectorization pass.
3195 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3197 * tree-scalar-evolution.c (get_exit_conditions_rec,
3198 select_loops_exit_conditions,
3199 number_of_iterations_for_all_loops,
3200 analyze_scalar_evolution_for_all_loop_phi_nodes,
3201 scev_analysis): Use VEC instead of VARRAY.
3203 2005-05-02 Michael Matz <matz@suse.de>
3206 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
3207 (warn_strict_null_sentinel): Define.
3208 (check_function_sentinel): Check for null_node as valid sentinel too.
3209 * c-common.h (c_tree_index): Added CTI_NULL.
3210 (null_node) Define global_tree[CTI_NULL].
3211 (warn_strict_null_sentinel): Declare.
3212 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
3213 * c.opt: (Wstrict-null-sentinel): New C++ option.
3214 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
3216 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
3218 * gimplify.c (gimplify_compound_lval): Use VEC instead of
3221 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
3223 * dwarf2out.c (decl_scope_table, push_decl_scope,
3224 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
3227 2005-05-01 Mark Mitchell <mark@codesourcery.com>
3230 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
3232 * doc/cpp.texi (__DEPRECATED): Document.
3233 (__EXCEPTIONS): Likewise.
3234 (__GXX_WEAK__): Likewise.
3236 * function.c (INVOKE__main): Do not define.
3237 (expand_main_function): Check HAS_INIT_SECTION when determining
3238 whether or not to call __main.
3240 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
3242 * tree-ssa-loop-ivopts.c: Fix a comment typo.
3244 2005-01-05 Paul Brook <paul@codesourcery.com>
3246 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
3247 (INITIALIZE_TRAMPOLINE): Use it.
3248 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
3249 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
3250 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
3252 2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
3254 * doc/install.texi (Specific): Omit dots in the @anchors names
3255 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
3256 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
3258 2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
3260 PR tree-optimization/18316
3261 PR tree-optimization/19126
3262 * tree.c (build_int_cst_type): Avoid shift by size of type.
3263 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
3265 * tree-scalar-evolution.h (simple_iv): Declaration changed.
3266 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
3268 (dump_cand): Dump depends_on information.
3269 (determine_biv_step): Add argument to simple_iv call.
3270 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
3271 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
3273 (add_candidate_1): Record depends_on for candidates.
3274 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
3275 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
3276 Handle ivs with nonconstant step.
3277 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
3278 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
3279 (create_new_iv): Unshare the step before passing it to create_iv.
3280 (free_loop_data): Free cand->depends_on.
3281 (build_addr_strip_iref): New function.
3282 (find_interesting_uses_address): Use build_addr_strip_iref.
3283 (strip_offset_1): Split the recursive part from strip_offset.
3284 Strip constant offset component_refs and array_refs.
3285 (strip_offset): Split the recursive part to strip_offset_1.
3286 (add_address_candidates): Removed.
3287 (add_derived_ivs_candidates): Do not use add_address_candidates.
3288 (add_iv_value_candidates): Add candidates with stripped constant
3289 offset. Consider all candidates with initial value 0 important.
3290 (struct affine_tree_combination): New.
3291 (aff_combination_const, aff_combination_elt, aff_combination_scale,
3292 aff_combination_add_elt, aff_combination_add,
3293 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
3294 fold_affine_sum): New functions.
3295 (get_computation_at): Use fold_affine_sum.
3296 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
3297 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
3300 2005-04-30 Michael Matz <matz@suse.de>
3302 * config/i386/i386.md (movmemsi): Also active when
3303 TARGET_INLINE_ALL_STRINGOPS.
3305 2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
3308 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3310 2005-04-30 Paul Brook <paul@codesourcery.com>
3312 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3314 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3315 * config/arm/ieee754-sf.S: Ditto.
3316 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3317 (FUNC_ALIAS): Use .thumb_set for thumb routines.
3319 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3321 * tree-ssanames.c: Fix a comment typo.
3322 * doc/options.texi: Fix a typo.
3324 2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
3326 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
3327 gcc_unreachable as appropriate.
3328 (split_adds_subs, cond_string, print_operand,
3329 h8300_initial_elimination_offset, h8300_classify_operand,
3330 h8300_unary_length, h8300_short_immediate_length,
3331 h8300_bitfield_length, h8300_binary_length,
3332 h8300_insn_length_from_table, compute_mov_length, output_plussi,
3333 compute_plussi_length, compute_plussi_cc, output_logical_op,
3334 compute_logical_op_length, compute_logical_op_cc,
3335 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
3336 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
3337 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
3338 h8300_regs_ok_for_stm): Likewise.
3339 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
3340 monitor_prologue): Likewise.
3342 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3344 * loop-invariant.c (invariants, create_new_invariant,
3345 get_inv_cost, best_gain_for_invariant,
3346 find_invariants_to_move, move_invariants,
3347 init_inv_motion_data, free_inv_motion_data): Use VEC instead
3350 2005-04-29 Richard Henderson <rth@redhat.com>
3352 * function.c (instantiate_decls): Remove valid_only argument.
3353 (instantiate_decls_1, instantiate_decl): Likewise.
3354 (instantiate_virtual_regs_1): Delete.
3355 (instantiate_virtual_regs_lossage): Delete.
3356 (instantiate_virtual_regs_in_rtx): New.
3357 (safe_insn_predicate): New.
3358 (instantiate_virtual_regs_in_insn): New.
3359 (instantiate_virtual_regs): Update to match all that. Only run
3360 instantiate_decls once.
3362 2005-04-29 Richard Henderson <rth@redhat.com>
3363 Daniel Jacobowitz <dan@codesourcery.com>
3365 * gengtype.c (write_func_for_structure): Split out ...
3366 (output_type_enum): ... new function. Fix thinko accessing
3367 TYPE_PARAM_STRUCT data.
3369 2005-04-29 Tom Tromey <tromey@redhat.com>
3371 * tree.c (build_block): Removed unused 'tags' argument.
3372 * tree.h (build_block): Removed argument.
3374 2005-04-29 Michael Matz <matz@suse.de>
3376 PR rtl-optimization/21144
3377 * postreload.c (reload_cse_move2add): Check for VOIDmode.