1 2005-05-26 Jakub Jelinek <jakub@redhat.com>
4 * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
5 found in the basic block and last insn in the basic block is not
6 INSN_P. Remove explicit unspec numbers that are no longer valid
9 2005-05-26 Paolo Bonzini <bonzini@gnu.org>
11 * tree-vect-transform.c (vectorizable_operation): Try word_mode
12 vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
13 if a vector mode is available.
15 2005-05-25 Roger Sayle <roger@eyesopen.com>
18 * fold-const.c (const_binop): Check for division by zero during
21 2005-05-26 Ian Lance Taylor <ian@airs.com>
23 * reload1.c (verify_initial_elim_offsets): Add braces to avoid
24 having a declaration after a statement.
26 2005-05-26 Richard Sandiford <rsandifo@redhat.com>
28 * opt-functions.awk (var_type): New function.
29 (var_set): Use CLVC_STRING if var_type returns "const char *".
30 * opth-gen.awk: Use var_type to find out the types of variables.
31 Don't print comments above each "extern" definition.
32 * optc-gen.awk: Use var_type in the same way.
33 * opts.h (cl_var_cond): Rename to...
34 (cl_var_type): ...this. Add CLVC_STRING.
35 (cl_option): Make "flag_var" a "void *" pointer. Replace "var_cond"
37 * opts.c (handle_option, option_enabled): Update after above name
38 change. Cast flag_var before using it. Handle CLVC_STRING.
40 * config/alpha/alpha.h (alpha_tls_size): Delete.
41 * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
42 (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
43 (alpha_fptm_string, alpha_mlat_string): Delete.
44 (alpha_handle_option): Don't set the above variables here. Use the
45 integer argument to check the validity of -mtls-size=.
46 * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
47 (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
48 (mtls-size=): Likewise. Convert to a UInteger and initialize the
51 * config/arc/arc.c (arc_cpu_string, arc_text_string)
52 (arc_data_string, arc_rodata_string): Delete.
53 (arc_handle_option): Don't set the above variables here.
54 * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
57 * config/arm/arm.c (target_fpu_name, target_fpe_name)
58 (target_float_abi_name, target_abi_name, structure_size_string)
59 (arm_pic_register_string): Delete.
60 (arm_handle_option): Don't set the above variables here, except
61 in the handling of -mhard-float and -msoft-float.
62 * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
63 (mpic-register=, mstructure-size-boundary=): Add Var()s.
65 * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
66 (avr_handle_option): Delete.
67 * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
70 * config/bfin/bfin.c (bfin_library_id): Delete.
71 (bfin_handle_option): Don't set it.
72 * config/bfin/bfin.opt (mshared-library-id=): Add Var().
74 * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
75 * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
76 (c4x_handle_option): Don't set c4x_rpts_cycles here.
77 * config/c4x/c4x.opt (mrpts=): Add Var().
79 * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
80 cris_elinux_stacksize_str here.
81 * config/cris/aout.opt (melinux-stacksize=): Add Var().
82 * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
83 (cris_tune_str, cris_elinux_stacksize_str): Delete.
84 * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
85 (cris_tune_str, cris_elinux_stacksize_str): Delete.
86 (cris_handle_option): Don't set the above variables here.
87 * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
88 (max-stackframe=): Add Var()s.
90 * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
91 * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
92 (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
93 (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
94 (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
95 (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
96 (ix86_handle_option): Don't set the above variables here.
97 * config/i386/i386.opt (malign-functions=, malign-jumps=)
98 (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
99 (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
102 * config/ia64/ia64.h (ia64_tls_size): Delete.
103 * config/ia64/ia64.c (ia64_tls_size): Delete.
104 (ia64_handle_option): Treat -mtls-size= as a UInteger option,
105 reading the integer argument from the "value" parameter. Don't
106 set ia64_tls_size here.
107 * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
108 Add Var() and Init().
110 * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
111 (m32r_cache_flush_trap): Delete.
112 * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
113 (m32r_cache_flush_trap): Delete.
114 (m32r_handle_option): Don't set the above variables when handling
115 -mflush-func= and -mflush-trap=.
116 * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
119 * config/mips/mips.h (mips_cache_flush_func): Delete.
120 * config/mips/mips.c (mips_arch_string, mips_tune_string)
121 (mips_cache_flush_func): Delete.
122 (mips_handle_option): Don't set the above variables when handling
123 -march=, -mtune= and -mflush-func=.
124 * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
126 * config/s390/s390.c (s390_arch_string): Delete.
127 (s390_handle_option): Don't set it here.
128 * config/s390/s390.opt (march=): Add Var().
130 * config/sparc/sparc.h (sparc_cmodel_string): Delete.
131 * config/sparc/sparc.c (sparc_cmodel_string): Delete.
132 (sparc_handle_option): Don't set it here.
133 * config/sparc/sparc.opt (mcmodel=): Add Var().
135 2005-05-25 Roger Sayle <roger@eyesopen.com>
137 * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
138 call to convert_to_integer by building the NOP_EXPR directly.
140 2005-05-25 Richard Sandiford <rsandifo@redhat.com>
142 * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
144 2005-05-25 Daniel Berlin <dberlin@dberlin.org>
145 Jeff Law <law@redhat.com>
147 * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
148 constant and side_effects of the ADDR_EXPR are consistent.
150 * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
151 appropriately around calls to recompute_tree_invarant_for_addr_expr.
153 2005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
155 * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
156 (s390_function_arg, s390_gimplify_va_arg): Use them.
157 (s390_register_info): Save only required subset of argument
158 registers into save area for va_list.
159 (s390_va_start): Initialize only required elements of va_list struct.
160 (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
162 2005-05-25 Ulrich Weigand <uweigand@de.ibm.com>
164 * reload1.c (verify_initial_elim_offsets): Return boolean status
166 (reload): Adapt verify_initial_elim_offsets call site. Restart
167 main loop if some initial elimination offsets changed.
169 2005-05-25 Adam Nemet <anemet@lnxw.com>
171 * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
172 of -mno-svr4-struct-return.
174 2005-05-25 Daniel Berlin <dberlin@dberlin.org>
176 Fix PR tree-optimization/21705
178 * tree-ssa-pre.c (in_fre): New static variable.
179 (create_value_expr_from): Recursively value number reference ops
181 (can_value_number_call): Temporary restrict only exists for
184 2005-05-25 Kazu Hirata <kazu@cs.umass.edu>
186 * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
187 sizeof (bitmap *) with sizeof (bitmap).
189 2005-05-25 Daniel Berlin <dberlin@dberlin.org>
191 * lambda-code.c (perfect_nestify): Call update_stmt on the exit
194 2005-05-25 Adrian Straetling <straetling@de.ibm.com>
196 * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
199 2005-05-25 Jan Hubicka <jh@suse.cz>
201 * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
202 * cgraph.c (cgraph_create_node): Reset estimated_growth.
203 * cgraph.h (cgraph_global_info): Add estimated_growth.
204 * ipa-inline.c: Include coverage.h
205 (max_insns, max_count): New static variables.
206 (cgraph_estimate_size_after_inlining): Cache the result.
207 (cgraph_estimate_growth):
208 * passes.c (rest_of_clean_state): Kill coverage_end_function.
209 * timevar.def (TV_INLINE_HEURISTICS): New timevar.
210 * tree-optimize.c (init_tree_optimization_passes): Move profiling before
212 (ipa_passes): Initialize bitmaps.
214 2005-05-25 Adrian Straetling <straetling@de.ibm.com>
216 * loop-doloop.c: Include "target.h".
217 (doloop_valid_p): Move tests to function in targhooks.c.
218 * target.h (struct gcc_target): New target hook
219 "insn_valid_within_doloop".
220 * target-def.h: Define default value for "insn_valid_within_doloop".
221 (TARGET_INITIALIZER): Insert new target hook into initializer.
222 * targhooks.c (default_insn_valid_within_doloop): New function.
223 * targhooks.h (default_insn_valid_within_doloop): Declare.
224 * hooks.c (hook_bool_rtx_true): New function.
225 * hooks.h (hook_bool_rtx_true): Declare.
226 * doc/tm.texi: Add documentation for new target hook.
228 2005-05-25 Eric Botcazou <ebotcazou@libertysurf.fr>
231 * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
232 * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
233 (sparc_tls_referenced_p): New prototype.
234 * config/sparc/sparc.c (tls_symbolic_operand): Delete.
235 (sparc_expand_move): Look for TLS addresses with constant offsets.
236 (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
237 tls_symbolic_operand.
238 (legitimate_pic_operand_p): Likewise.
239 (legitimate_address_p): Likewise.
240 (legitimize_address): Likewise.
241 (sparc_tls_symbol_ref_1): New function.
242 (sparc_tls_referenced_p): New function.
243 * config/sparc/predicates.md (tgd_symbolic_operand): Use
244 SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
245 (tld_symbolic_operand): Likewise.
246 (tie_symbolic_operand): Likewise.
247 (tle_symbolic_operand): Likewise.
249 2005-05-24 DJ Delorie <dj@redhat.com>
251 * common.opt (-Wattributes): New. Default true.
252 * doc/invoke.texi (-Wno-attributes): Document.
254 * attribs.c (decl_attributes): Move warning control from if() to
256 * c-common.c (handle_packed_attribute): Likewise.
257 (handle_nocommon_attribute): Likewise.
258 (handle_common_attribute): Likewise.
259 (handle_noreturn_attribute): Likewise.
260 (handle_noinline_attribute): Likewise.
261 (handle_always_inline_attribute): Likewise.
262 (handle_used_attribute): Likewise.
263 (handle_unused_attribute): Likewise.
264 (handle_const_attribute): Likewise.
265 (handle_transparent_union_attribute): Likewise.
266 (handle_constructor_attribute): Likewise.
267 (handle_destructor_attribute): Likewise.
268 (handle_mode_attribute): Likewise.
269 (handle_alias_attribute): Likewise.
270 (handle_visibility_attribute): Likewise.
271 (handle_tls_model_attribute): Likewise.
272 (handle_malloc_attribute): Likewise.
273 (handle_returns_twice_attribute): Likewise.
274 (handle_pure_attribute): Likewise.
275 (handle_deprecated_attribute): Likewise.
276 (handle_vector_size_attribute): Likewise.
277 (handle_nothrow_attribute): Likewise.
278 (handle_cleanup_attribute): Likewise.
279 (handle_warn_unused_result_attribute): Likewise.
280 (handle_sentinel_attribute): Likewise.
281 * c-decl.c (diagnose_mismatched_decls): Likewise.
282 (start_decl): Likewise.
283 (grokdeclarator): Likewise.
284 (start_function): Likewise.
285 * c-format.c (check_function_format): Likewise.
286 * stor-layout.c (place_field): Likewise.
287 (finalize_record_size): Likewise.
288 * tree.c (handle_dll_attribute)): Likewise.
289 * varasm.c (default_assemble_visibility): Likewise.
290 * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
291 (darwin_assemble_visibility): Likewise.
292 * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
293 * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
294 (arm_handle_isr_attribute): Likewise.
295 * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
296 (avr_handle_fndecl_attribute): Likewise.
297 * config/bfin/bfin.c (handle_int_attribute): Likewise.
298 * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
299 * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
300 (h8300_handle_eightbit_data_attribute): Likewise.
301 (h8300_handle_tiny_data_attribute): Likewise.
302 * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
303 (ix86_handle_regparm_attribute): Likewise.
304 (ix86_handle_struct_attribute): Likewise.
305 * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
306 (i386_pe_encode_section_info): Likewise.
307 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
308 * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
309 (ip2k_handle_fndecl_attribute): Likewise.
310 * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
311 * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
312 (m68hc11_handle_fntype_attribute): Likewise.
313 (m68hc11_encode_section_info): Likewise.
314 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
315 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
316 * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
317 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
318 * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
319 (sh_handle_sp_switch_attribute): Likewise.
320 (sh_handle_trap_exit_attribute): Likewise.
321 * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
322 (sh_symbian_handle_dll_attribute): Likewise.
323 * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
324 (xstormy16_handle_below100_attribute): Likewise.
325 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
327 * c-common.c (unsigned_conversion_warning): Move warning control
328 from if() to warning(OPT_*).
329 (c_common_truthvalue_conversion): Likewise.
330 (c_do_switch_warnings): Likewise.
331 * c-decl.c (diagnose_mismatched_decls): Likewise.
332 (diagnose_mismatched_decls): Likewise.
333 (define_label): Likewise.
334 (grokdeclarator): Likewise.
335 * c-format.c (check_format_info): Likewise.
336 * c-lex.c (interpret_integer): Likwise.
337 (lex_string): Likewise.
338 * c-opts.c (c_common_post_options): Likewise.
339 * c-parser.c (c_parser_unary_expression): Likewise.
340 * c-pragma.c (handle_pragma_redefine_extname): Likewise.
341 (handle_pragma_extern_prefix): Likewise.
342 * c-typeck.c (build_binary_op): Likewise.
343 * gcse.c (is_too_expensive): Likewise.
344 * opts.c (decode_options): Likewise.
345 * stor-layout.c (place_field): Likewise.
346 * tree-cfg.c (remove_bb): Likewise.
348 * c.opt (-Wreturn-type): Add Var(warn_return_type).
349 * flags.h (warn_return_type): Remove.
350 * toplev.c (warn_return_type): Likewise.
352 2005-05-24 Kelley Cook <kcook@gcc.gnu.org>
354 * configure.ac: Don't use gcc_AC_C_LONG_LONG. Check for
355 existence of long long and __int64 before determining their size.
356 * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
357 * configure, config.h.in: Regenerate.
359 2005-05-24 Kelley Cook <kcook@gcc.gnu.org>
361 * configure: Regenerate.
363 2005-05-24 Ziemowit Laski <zlaski@apple.com>
365 * c-common.h (objc_comptypes): Remove prototype.
366 (objc_compare_types): New prototype.
367 (objc_volatilized_decl): Likewise.
368 (objc_type_quals_match): Likewise.
369 * c-decl.c (objc_mark_locals_volatile): Streamline by calling
370 objc_volatilize_decl().
371 * c-typeck.c (comp_target_types): Remove third parameter; do
372 not call objc_comptypes().
373 (comptypes): Remove calls to objc_comptypes().
374 (build_function_call): Extend compatible prototype check to ObjC.
375 (build_conditional_expr): Adjust call to comp_target_types().
376 (convert_for_assignment): Call objc_compare_types() instead of
377 objc_comptypes(); adjust calls to comp_target_types(); call
378 objc_type_quals_match() before issuing qualifier mismatch
380 (build_binary_op): Call objc_compare_types() before issuing
381 pointer mismatch warnings; adjust calls to
383 * stub-objc.c (objc_comptypes): Remove stub.
384 (objc_compare_types): New stub.
385 (objc_volatilized_decl): Likewise.
386 (objc_type_quals_match): Likewise.
388 2005-05-24 Paolo Carlini <pcarlini@suse.de>
390 * config/ia64/ia64intrin.h: Define nothing for C++:
391 overloaded builtins have been ported to C++.
393 2005-05-24 Jeff Law <law@redhat.com>
395 * tree-nested.c (build_addr): New "context" argument. Temporarily
396 set current_function_decl around the call to build the ADDR_EXPR.
397 (get_static_chain): Pass proper context to build_addr.
398 (convert_nl_goto_reference): Likewise.
399 (convert_tramp_reference): Likewise.
400 (final_nesting_tree_1): Likewise.
401 * tree-profile.c (tree_gen_interval_profiler): Likewise.
402 (tree_gen_pow2_profiler): Likewise.
403 (tree_gen_one_value_profiler): Likewise.
404 * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
405 * tree.h (build_addr): Update prototype.
407 2005-05-24 Kazu Hirata <kazu@cs.umass.edu>
409 * tree-flow.h (bb_ann_d): Remove has_escape_site.
410 * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
411 write to has_escape_site.
413 2005-05-24 Jeff Law <law@redhat.com>
415 * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
416 * tree-cfg.c: Include tree-ssa-propagate.h.
417 (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
420 2005-05-24 Nick Clifton <nickc@redhat.com>
422 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
423 __NO_FPRS__ when 'f' class registers will not be available.
425 2005-05-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
427 * config/m32r/m32r.c (m32r_expand_block_move): Return 0 if
429 * config/m32r/m32r.md (movmemsi): If m32r_expand_block_move did
431 * config/m32r/m32r/m32r-protos.h (m32r_expand_block_move): Update
434 2005-05-23 Jeff Law <law@redhat.com>
436 * tree-ssa-dom.c (cprop_into_stmt): Do not call
437 recompute_tree_invariant_for_addr_expr here.
438 (optimize_stmt): Call it here instead and do so if anything
439 at all has changed in the statement and the RHS is an ADDR_EXPR.
440 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
441 needed, call recompute_tree_invariant_for_addr_expr.
442 * tree-ssa-propagate.c (substitute_and_fold): Call
443 recompute_tree_invariant_for_addr_expr as needed.
445 2005-05-23 Andreas Krebbel <krebbel1@de.ibm.com>
447 * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
448 saving less registers than the replacement.
450 2005-05-23 Jan Hubicka <jh@suse.cz>
452 * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
454 2005-05-23 Eric Botcazou <ebotcazou@libertysurf.fr>
456 * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
457 * config/sparc/sparc.c (sparc_expand_move): New function.
458 (sparc_emit_set_const64): Rewrite assert condition on entry.
459 (legitimate_constant_p) <CONST_VECTOR>: New case.
460 (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
461 * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
462 movV64, movtf): Use nonimmediate_operand for the first operand.
463 Rewrite. Only invoke sparc_expand_move.
464 * config/sparc/predicates.md (input_operand): Reorder tests.
466 2005-05-23 Jan Beulich <jbeulich@novell.com>
468 * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
469 missing return statement.
471 2005-05-22 Eric Botcazou <ebotcazou@libertysurf.fr>
473 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
474 emit_move_insn for moves to TFmode stack slots.
476 2005-05-21 Richard Guenther <rguenth@gcc.gnu.org>
478 * tree-stdarg.c (execute_optimize_stdarg): Handle references
479 to va_list of the form &va[0].
481 2005-05-20 Jan Hubicka <jh@suse.cz>
483 * Makefile.in (insn-emit.o): Add basic-block.h dependency.
484 * genemit.c (main): Make insn-emit to include basic-block.h too.
486 2005-05-20 Jan Hubicka <jh@suse.cz>
488 * cgraphunit.c (cgraph_expand_function): Force function being lowered.
490 2005-05-19 Richard Henderson <rth@redhat.com>
492 * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
493 emit_store_conditional): Split out from ...
494 (alpha_split_atomic_op): ... here.
495 (alpha_split_compare_and_swap): New; extract from .md file.
496 (alpha_split_lock_test_and_set): Likewise.
497 * config/alpha/alpha-protos.h: Update.
498 * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
499 split code into alpha.c.
500 (sync_lock_test_and_set<I48MODE>): Likewise.
502 2005-05-19 Richard Henderson <rth@redhat.com>
504 * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
506 2005-05-19 Richard Henderson <rth@redhat.com>
508 * config/i386/sse.md (mulv4si3): Use all register inputs.
509 (mulv2di3): Likewise.
511 2005-05-19 Richard Guenther <rguenth@gcc.gnu.org>
513 * tree-ssa-loop-ivopts.c (determine_base_object): Use
514 build_fold_addr_expr to generate trees of correct type.
515 Use fold_buildN if possible.
517 2005-05-19 Jan Hubicka <jh@suse.cz>
519 * basic-block.h (REG_BR_PROB_BASE): Define.
520 * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
521 (dump_cgraph_node): Dump count.
522 (cgraph_clone_edge): Rescale counts.
523 (cgraph_clone_node): Likewise.
524 * cgraph.h: Include basic-block.h
525 (cgraph_node): Add count.
526 (cgraph_edge): Add count and loop_nest.
527 (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
529 * cgraphunit.c: Kill now redundant inlining comment.
530 (cgraph_create_edges): Make static, maintain current basic block;
532 (record_call_1): Fill in new fields.
533 * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
535 (cgraph_decide_recursive_inlining): Likewise.
536 * rtl.h (REG_BR_PROB_BASE): Kill.
537 * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
538 (expand_call_inline): Update call of cgraph_create_edge.
539 * tree-optimize.c (tree_rest_of_compilation): Likewise.
541 2005-05-19 Nick Clifton <nickc@redhat.com>
543 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
544 new rs6000_explicit_options structure.
546 2005-05-19 Richard Henderson <rth@redhat.com>
549 * config/alpha/alpha.c (alpha_emit_conditional_branch): Move
550 TFmode code swapping ...
551 (alpha_emit_xfloating_compare): ... here.
552 (alpha_emit_setcc): Update to match.
553 (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
555 2005-05-19 Richard Henderson <rth@redhat.com>
558 * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
559 memory indirection in local-dynamic case.
561 2005-05-18 Jie Zhang <jie.zhang@analog.com>
562 Bernd Schmidt <bernd.schmidt@analog.com>
564 * config/bfin/bfin.c (branch_dest): Add comment why it's
566 * config/bfin/bfin.md (attr "length" default): Change the offset of
567 forward conditional branch of length 4 from 4096 to 4092.
569 2005-05-19 Jan Beulich <jbeulich@novell.com>
571 * unwind-compat.c: Include tconfig.h and tsystem.h.
572 * unwind-dw2-fde-compat.c: Likewise.
574 2005-05-18 Richard Henderson <rth@redhat.com>
577 * ifcvt.c (noce_process_if_block): Avoid conversion when the
578 memory destination is readonly.
580 2005-05-18 Richard Henderson <rth@redhat.com>
583 * tree-ssa-operands.c (opf_non_specific): New.
584 (get_asm_expr_operands): Set it.
585 (add_call_clobber_ops, add_call_read_ops): Likewise.
586 (add_stmt_operand): Test it instead of opf_kill_def when
587 considering unmodifiable variables.
589 * tree-ssa-operands.c (get_expr_operands): Fix exact test.
591 2005-05-19 Kazu Hirata <kazu@cs.umass.edu>
593 * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
594 tree-ssa-forwprop.c: Fix comment typos.
595 * doc/invoke.texi: Fix a typo.
597 2005-05-18 Richard Henderson <rth@redhat.com>
599 * config.gcc (powerpc-*-linux*): Include linux64.opt when
602 2005-05-18 Richard Henderson <rth@redhat.com>
604 * tree-cfg.c (pass_remove_useless): Revert last change.
605 * tree-optimize.c (init_tree_optimization_passes): Initialize
606 all_lowering_passes with PROP_gimple_any.
608 2005-05-18 Devang Patel <dpatel@apple.com>
610 * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
613 2005-05-18 Richard Henderson <rth@redhat.com>
615 * tree-ssa-forwprop.c (cfg_changed): New.
616 (tidy_after_forward_propagate_addr): New.
617 (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
618 (forward_propagate_addr_into_variable_array_index): Likewise.
619 (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
622 2005-05-18 Geoffrey Keating <geoffk@apple.com>
624 * dummy-checksum.c: New.
625 * genchecksum.c: New.
626 * c.opt (print_pch_checksum): New flag.
627 * c-pch.c (struct c_pch_validity): Make much shorter.
629 (host_machine): Remove.
630 (target_machine): Remove.
631 (get_ident): Change PCH version number.
632 (pch_init): When -fverbose-asm, print out the compiler fingerprint.
633 Don't put triplets or version string in PCH validity data.
634 Do put the compiler checksum in the validity data.
635 (c_common_valid_pch): Don't check triplets or version string. Do
637 (c_common_print_pch_checksum): New.
638 * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
639 Print fingerprint with -v.
640 * c-common.h (c_common_print_pch_checksum): New.
641 (executable_checksum): New.
642 * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
643 (cc1-dummy): New rule.
644 (cc1-checksum.c): New rule.
645 (cc1-checksum.o): New rule.
646 (cc1): Add checksum support.
647 (build/genchecksum): New.
648 (build/genchecksum.o): New.
649 (dummy-checksum.o): New.
650 (genobjnames): Add genchecksum.o.
651 (mostlyclean): Remove *-checksum.c.
652 (gnucompare): Add libgcc to list of directories checked.
653 Make comparison problems in libgcc/ and with checksum files only
655 * doc/invoke.texi (Precompiled Headers): Remove caution.
656 Document that it must be the exact same binary. Add a few
657 known-safe flags to the list.
659 * rs6000/predicates.md (fix_trunc_dest_operand): New.
660 * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
661 Check that a memory operand is valid before trying to use it.
663 * tree-cfg.c (pass_remove_useless): This pass works on trees.
665 2005-05-18 Richard Guenther <rguenth@gcc.gnu.org>
667 * tree.c (build1_stat): Don't try to handle two-operand
670 2005-05-18 Richard Sandiford <rsandifo@redhat.com>
672 * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
673 * config/sh/sh.h: Update mask names throughout.
674 (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
675 (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
676 (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
677 (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
678 (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
679 (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
680 (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
681 (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
682 (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
683 (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
684 (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
685 (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
686 (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
687 (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
688 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
689 (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
690 (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
691 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
692 (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
693 (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
694 (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
695 (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
696 (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
697 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
698 (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
699 (SUBTARGET_SWITCHES): Delete.
700 (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
701 (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
702 (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
703 (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
704 (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
705 (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
706 (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
707 (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
708 (SUPPORT_SH3): Likewise SUPPORT_SH2.
709 (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
710 (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
712 (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
713 (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
714 (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
715 (SUPPORT_SH4A): Likewise SUPPORT_SH4.
716 (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
717 (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
718 (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
719 (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
720 (SUPPORT_ANY_SH5): New macros.
721 (TARGET_NONE): Replace with...
722 (MASK_ARCH): ...this new macro.
723 * config/sh/elf.h: Update mask names
724 * config/sh/linux.h: Likewise.
725 * config/sh/little.h: Likewise.
726 * config/sh/netbsd-elf.h: Likewise.
727 * config/sh/symbian-pre.h: Likewise.
728 * config/sh/sh.c (sh_handle_option): New function.
729 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
730 (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
731 (sh_target_switches, target_switches): Delete.
732 (sh_pch_valid_p): Check for specific differences in the target_flags
734 (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
735 * config/sh/sh.opt: New file.
737 2005-05-18 Richard Henderson <rth@redhat.com>
740 * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
741 small_addr_symbolic_operand.
743 2005-05-18 Jeff Law <law@redhat.com>
745 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
746 propagate an ADDR_EXPR if the definition and use sites are
747 in different EH regions.
749 2005-05-18 Ian Lance Taylor <ian@airs.com>
751 * read-rtl.c (mode_attr_index): Use obstack_grow0, not
754 2005-05-18 Daniel Berlin <dberlin@dberlin.org>
756 * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
758 2005-05-18 Daniel Berlin <dberlin@dberlin.org>
760 Fix PR tree-optimization/21407
762 * tree-ssa-operands.c (note_addressable): Change
763 COMPONENT_REF handling in response to aliasing
766 2005-05-18 Eric Botcazou <ebotcazou@libertysurf.fr>
768 * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
769 * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
770 * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
771 * doc/invoke.texi (SPARC options): Document that -mapp-regs is
772 the default on Solaris too.
774 2005-05-17 Daniel Berlin <dberlin@dberlin.org>
776 * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
779 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
781 * timevar.def (TV_SCEV_CONST): New timevar.
782 * tree-optimize.c (init_tree_optimization_passes): Add
784 * tree-pass.h (pass_scev_cprop): Declare.
785 * tree-scalar-evolution.c (scev_const_prop): New function.
786 * tree-scalar-evolution.h (scev_const_prop): Declare.
787 * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
789 * tree-cfg.c (replace_uses_by): Export.
790 * tree-flow.h (replace_uses_by): Declare.
792 2005-05-17 Ziemowit Laski <zlaski@apple.com>
793 Mike Stump <mrs@apple.com>
795 Yet more Objective-C++...
797 * c-common.h (objc_finish_try_stmt): Add.
798 (objc_build_synchronized): Add.
799 (objc_generate_write_barrier): Add.
800 * stub-objc.c (objc_build_synchronized): Add return value.
801 (objc_finish_try_stmt): Likewise.
802 (objc_generate_write_barrier): Add.
804 * c-common.h (objc_rewrite_function_call): Add.
805 * c-typeck.c (build_function_call): Allow objc to rewrite
807 (build_modify_expr): Allow objc to generate write barriers.
808 * c.opt (Wassign-intercept): Add.
809 (Wstrict-selector-match): Add.
810 (fobjc-call-cxx-cdtors): Add.
811 (fobjc-direct-dispatch): Add.
813 * dbxout.c (get_lang_number): Add Objective-C++ support.
814 * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
815 (-Wstrict-selector-match): Likewise.
816 (-fobjc-direct-dispatch): Likewise.
817 (-Wassign-intercept): Likewise.
818 (Overall Options): Likewise.
819 * gengtype.c (get_output_file_with_visibility): Likewise.
820 * stub-objc.c (objc_rewrite_function_call): Add.
821 * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
823 * c-common.c (flag_objc_exceptions): Remove.
824 (flag_objc_sjlj_exceptions): Remove.
825 * c-decl.c (objc_mark_locals_volatile): Don't change decls
827 * c-opts.c (c_common_handle_option, case
828 OPT_fobjc_exceptions): Remove.
829 (case OPT_fobjc_sjlj_exceptions): Remove
830 * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
831 (fobjc-exceptions): Likewise.
832 (fobjc-sjlj-exceptions): Likewise.
833 * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
834 (OFFS_ASSIGNIVAR_FAST): Add.
836 2005-05-17 Eric Botcazou <ebotcazou@libertysurf.fr>
838 * config/sparc/sparc.md (movhi): Do not test constness
841 (movdi): Unconditionally accept zero as second operand
842 when the first is memory.
843 (movdi_insn_sp32): Handle above case.
844 (DImode splitter): Use predicates.
845 (DImode splitter): Use const_zero_operand predicate.
846 (movsf_insn): Swap 2 alternatives.
848 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
850 * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
851 expand_simple_operations to bases of the ivs.
852 (tree_int_cst_sign_bit): Export.
853 * tree-flow.h (expand_simple_operations): Declare.
854 * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
855 tree_int_cst_sign_bit.
856 (expand_simple_operations): Export.
857 * tree.h (tree_int_cst_sign_bit): Declare.
859 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
861 * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
863 (replace_uses_by): New function.
864 (tree_merge_blocks): Eliminate the phi nodes in the merged block.
865 * tree-flow.h (fold_stmt_inplace): Declare.
866 * tree-ssa-ccp.c (fold_stmt_inplace): New function.
867 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
868 info after cfg cleanup.
870 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
872 * cfgloop.h (just_once_each_iteration_p): Declaration changed.
873 * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
876 2005-05-17 Zdenek Dvorak <dvorakz@suse.cz>
878 * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
879 * ggc-zone.c (ggc_alloc_zone_1): Ditto.
880 * timevar.c (timevar_ggc_mem_total): New variable.
881 (GGC_MEM_BOUND): New constant.
882 (get_time): Record ggc memory status.
883 (timevar_accumulate): Accumulate amount of ggc memory.
884 (timevar_print): Print consumption of ggc memory.
885 * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
886 TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
887 TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
888 * timevar.h (struct timevar_time_def): Add ggc_mem field.
889 (timevar_ggc_mem_total): Declare.
891 2005-05-17 Kazu Hirata <kazu@cs.umass.edu>
893 * tree-into-ssa.c (update_ssa): Clean up by shortening the
896 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
898 * config/cris/cris.md (ncond, ocode, rcond): Remove separate
900 ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
901 ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
902 ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
903 ("s<ocond:code>"): Rename from respectively "b<ncond>",
904 "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
905 "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
906 "s<rcond>" and "s<ocond>".
907 ("b<ocond:code>", "*b<ocond:code>_reversed")
908 ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
909 output statement section.
911 2005-05-17 Roger Sayle <roger@eyesopen.com>
913 * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
915 2005-05-17 Steven Bosscher <stevenb@suse.de>
916 Stuart Hastings <stuart@apple.com>
917 Jan Hubicka <jh@suse.cz>
918 Dale Johannesen <dalej@apple.com>
920 * cgraph.h (cgraph_node): Add 'lowered' state.
921 (cgraph_lower_function): Declare.
922 * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
923 (cgraph_lower_function): New function.
924 (cgraph_create_edges): Deal with lowered function bodies.
925 (verify_cgraph_node): Likewise.
926 (cgraph_analyze_function): Do lowering job.
927 (cgraph_build_static_cdtor): Likewise.
928 * function.h (struct function): Add saved_eh and saved_cfg.
929 * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
930 * tree-cfg.c (fold_cond_expr_cond): Export.
931 * tree-flow.h (fold_cond_expr_cond): Declare.
932 * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
934 (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
935 in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
936 callee_cfun, block, eh_region, eh_region_offset.
937 (inlining_p): New predicate.
938 (remap_decl): Update for new inline_data; declare newly created inline
939 vars in low gimple way.
940 (copy_body_r): Update for new datastructure, simplify some of handling
941 when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
942 deal with RESX_EXPRs.
944 (copy_edges_for_bb): Likewise.
946 (copy_cfg_body): New.
947 (copy_generic_body): Rewrite to work on low gimple.
948 (copy_body): Turn into simple wrapper around copy_cfg_body.
949 (setup_one_parameter): Insert new statements into given basic block.
950 (initialize_initialized_parameters): Likewise, reorganize way things are
952 (declare_return_variable): Update for new inline data datastructure.
953 (inline_forbidden_p): Work on low gimple.
954 (estimate_num_insns): Likewise.
955 (expand_call_inline): Work on CFG.
956 (push_cfun, pop_cfun): New functions.
957 (cfun_stack): New stack.
958 (add_lexical_block): New function.
959 (gimple_expand_calls_inline): Work on basic block.
960 (optimize_inline_calls): Likewise.
961 (clone_body, save_body, unsave_ewpr_now): Update for new
963 (declare_inline_vars): Work on block instead of bind_expr.
964 (inlining_p): New predicate.
965 * tree-inline.h (push_cfun, pop_cfun): Declare.
966 * tree-optimize.c: Include except.h
967 (all_lowering_passes): New variable.
968 (execute_fixup_cfg, pass_fixup_cfg): New pass.
969 (init_tree_optimization_passes): Move some to all_lowering_passes.
970 (tree_lowering_passes): New function.
971 (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
972 * tree-pass.h (tree_lowering_passes): Declare
974 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
976 * unwind-dw2-fde-darwin.c: Include tsystem.h.
978 2005-05-17 Jeff Law <law@redhat.com>
980 * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
981 * tree-ssa-forwprop.c: Include langhooks.h.
982 (forward_propagate_addr_expr_into_variable_array_index): New.
983 (forward_propagate_addr_expr): New.
984 (tree_ssa_forward_propagate_single_use_vars): Loop over all
985 the statements in the block instead of just the last statement.
986 Call forward_propagate_addr_expr as needed.
987 (pass_forwprop): Update the SSA graph after forward propagation is
990 2005-05-17 Nathan Sidwell <nathan@codesourcery.com>
992 * unwind-dw2-fde-glibc.c (base_from_cb_data,
993 _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
995 * unwind-dw2-fde.c (__deregister_frame_info_bases,
996 base_from_object, fde_split, end_fde_sort): Likewise.
997 * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op,
998 execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
999 uw_init_context_1): Likewise.
1000 * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
1001 _Unwind_Resume_or_Rethrow): Likewise.
1002 * unwind-pe.h (__gxx_abort): Do not define.
1003 (size_of_encoded_value, base_of_encoded_value,
1004 read_encoded_value_with_base): Use gcc_unreachable.
1005 * unwind.h (_Unwind_GetTextRelBase): Likewise.
1007 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
1009 * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
1010 (cfi_end): New macros.
1011 (RETLDM): Use cfi_pop. Expect an eight byte stack frame.
1012 (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros. Create
1013 an eight byte stack frame.
1014 (__NR_tkill): Define.
1015 (__div0): Use gettid tkill on GNU/Linux.
1016 (_arm_return): Add CFI.
1017 (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
1019 2005-05-17 Daniel Jacobowitz <dan@codesourcery.com>
1021 * configure.ac: Remove spaces around assignment to
1023 * configure: Regenerated.
1025 2005-05-17 David Edelsohn <edelsohn@gnu.org>
1027 * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
1028 * config/rs6000/rs6000.c (rs6000_explicit_options): Add
1030 (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
1031 Modify aix_struct_return variable, not target_flags.
1032 (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
1033 (rs6000_return_in_memory): Test aix_struct_return.
1034 * config/rs6000/rs6000.opt (maix-struct-return): Convert to
1035 independent variable. Report mxl-compat.
1037 2005-05-17 Bernd Schmidt <bernd.schmidt@analog.com>
1039 * config/bfin/bfin.md (eh_return): Add missing DONE.
1041 2005-05-17 Ian Lance Taylor <ian@airs.com>
1043 * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
1045 (mode_attr_index): Remove check for defined attribute. Remove
1046 infile parameter. Change all callers.
1047 (apply_mode_maps): Add unknown parameter. Change caller. Always
1048 return after finding attribute.
1049 (apply_macro_to_rtx): Add unknown_mode_attr parameter. Change
1051 (apply_macro_traverse): Set mtd->unknown_mode_attr.
1052 (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
1053 attribute used for a mode.
1055 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
1057 * tree-ssa-math-opts.c: New file.
1059 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
1061 * tree-ssa-math-opts.c: New file.
1063 2005-05-17 Paolo Bonzini <bonzini@gnu.org>
1065 * Makefile.in: Add tree-ssa-math-opts.c.
1066 * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
1067 * fold-const.c (distribute_real_division): New.
1068 (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
1069 * tree-pass.h (pass_cse_reciprocals): New.
1070 * tree-optimize.c (init_tree_optimization_passes): Run it.
1071 * doc/passes.texi: Document the new pass.
1073 2005-05-17 Richard Guenther <rguenth@gcc.gnu.org>
1076 * builtins.c (fold_builtin_constant_p): Handle
1077 &"string cst"[0] as constant.
1079 2005-05-17 Richard Henderson <rth@redhat.com>
1081 * config/i386/sse.md (mulv16qi3, mulv2di3): New.
1083 2005-05-17 Jakub Jelinek <jakub@redhat.com>
1086 * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
1087 src2 if src2 has been split.
1089 PR tree-optimization/21610
1090 * c-typeck.c (decl_constant_value_for_broken_optimization): If not
1091 returning DECL, call unshare_expr.
1093 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
1095 * config/cris/cris.md: Unquote preparation and output statements.
1096 (BWD, WD, BW): New, mode-macros.
1097 (S, s, m, mm, nbitsm1): New, mode-attrs.
1098 (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
1099 (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
1101 ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
1102 ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
1103 ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
1105 ("cmp<mode>"): Replace "cmphi" and "cmpqi".
1106 ("movdi"): Move misplaced head comment regarding necessity of
1107 movdi from movsi to here.
1108 ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
1110 ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
1111 ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
1112 "*mov_sideqi_biap_mem".
1113 ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
1115 ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
1116 "*clear_sidehi_biap" and "*clear_sideqi_biap".
1117 ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
1118 and "*clear_sideqi".
1119 ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
1120 "*ext_sidehisi_biap".
1121 ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
1123 ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
1124 ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
1125 ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
1126 ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
1127 ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
1129 ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
1130 "*op_sidehi_biap" and "*op_sidesi_biap".
1131 ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
1133 ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
1134 "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
1135 ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
1136 "*op_swap_sidehi" and "*op_swap_sidesi".
1137 ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
1138 in the N alternative of "subqi3".
1139 ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
1140 "*extophisi_side_biap".
1141 ("*extop<mode>si_side"): Replace "*extopqisi_side" and
1143 ("*extop<mode>si_swap_side_biap"): Replace
1144 "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
1145 ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
1146 "*extophisi_swap_side".
1147 ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
1148 ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
1150 ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
1151 "mulqihi3", "mulhisi3" and "mulhisi3".
1152 ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
1153 ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
1155 ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
1156 ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
1157 ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
1158 ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
1159 ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
1160 ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
1161 "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
1162 ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
1163 "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
1164 ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
1165 ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
1166 ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
1168 ("abs<mode>2"): Replace "abshi2" and "absqi2".
1169 ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
1171 ("b<ocond>"): Replace "bgt" and "ble".
1172 ("b<rcond>"): Replace "blt" and "bge".
1173 ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
1174 "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
1176 ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
1178 ("*b<rcond>_reversed"): Replace "*blt_reversed" and
1180 ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
1182 ("s<rcond>"): Replace "sge" and "slt".
1183 ("s<ocond>"): Replace "sgt" and "sle".
1184 ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
1185 [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
1186 ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
1187 clear.w [rx=rx+i] and clear.b [rx=rx+i].
1189 2005-05-17 Jakub Jelinek <jakub@redhat.com>
1191 * varasm.c (struct constant_descriptor_tree): Add hash field.
1192 (const_desc_hash): Just return hash field.
1193 (const_desc_eq): If hash values are different, return 0 immediately.
1194 (output_constant_def): Compute hash field of temporary key, use
1195 htab_find_slot_with_hash instead of htab_find_slot. Set hash in
1196 newly built constant descriptor.
1197 (lookup_constant_def): Compute hash field of temporary key, use
1198 htab_find_with_hash instead of htab_find.
1200 2005-05-16 Richard Henderson <rth@redhat.com>
1202 * config/i386/sse.md (mulv4si3): New.
1204 2005-05-17 Hans-Peter Nilsson <hp@axis.com>
1206 * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
1207 tests for noncanonical versions of reg+constant and
1210 2005-05-16 Richard Henderson <rth@redhat.com>
1211 Steven Bosscher <stevenb@suse.de>
1214 * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from
1215 maybe_clean_eh_stmt; take old stmt parameter. Update EH
1216 region data structure to match replacement.
1217 * tree-flow.h: Update to match.
1218 * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
1219 * tree-ssa-dom.c (optimize_stmt): Likewise.
1220 * tree-ssa-pre.c (eliminate): Likewise.
1221 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1223 2005-05-16 Caroline Tice <ctice@apple.com>
1225 * bb-reorder.c (verify_hot_cold_block_grouping): Replace
1226 internal_error with gcc_assert.
1227 * dwarf2out.c (dwarf2out_switch_text_section): Likewise.
1228 * function.h (struct function): Remove space between "*" and
1230 * varasm.c (initialize_cold_section_name): Add gcc_assert;
1231 modify to use alloca.
1232 (unlikely_text_section): Add check for flag_function_sections.
1233 (assemble_start_function): Move call to resolve_section, so it
1234 comes before first call to unlikely_text_section.
1235 (assemble_end_function): Add test and call to function_section
1238 2005-05-16 Roger Sayle <roger@eyesopen.com>
1240 * c-common.c (c_common_truthvalue_conversion): Use fold_build2
1241 instead of build_binary_op when performing code transformations
1242 to avoid error messages about constructs not it the user's code.
1244 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
1246 * tree-ssa-pre.c: Fix a comment typo.
1248 2005-05-16 Richard Henderson <rth@redhat.com>
1251 * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
1252 load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
1253 add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
1254 load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
1255 add_tprel22): Remove mode from symbolic operand.
1257 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
1259 * optc-gen.awk: Include intl.h after the externally-provided files.
1261 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
1263 * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
1264 folding a COND_EXPR_COND in a nondestructive manner.
1266 2005-05-16 Fariborz Jahanian <fjahanian@apple.com>
1268 * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh,
1269 altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
1270 New values for vec_select definitions and bitmask for element
1273 2005-05-16 Kazu Hirata <kazu@cs.umass.edu>
1275 * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
1276 Change the type to VEC(rtx,gc)*.
1277 (mem_loc_descriptor, add_const_value_attributes,
1278 dwarf2out_init): Adjust uses of used_rtx_varray.
1280 * tree-data-ref.c (compute_all_dependences): Change the type
1281 of dependence_relations to VEC(ddr_p,heap)**.
1282 (compute_data_dependences_for_loop): Change the type of
1283 allrelations to VEC(ddr_p,heap)*.
1285 2005-05-16 Richard Sandiford <rsandifo@redhat.com>
1287 * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
1288 system.h, coretypes.h and tm.h.
1289 (options.o): Update dependencies accordingly.
1290 * optc-gen.awk: Allow header_name to be a list of filenames.
1291 Handle the "Condition" flag.
1292 * opts.h (CL_DISABLED): New flag.
1293 * opts.c (handle_option): Print an error for CL_DISABLED options.
1294 * doc/options.texi: Document the "Condition" option flag.
1296 2005-05-16 Paolo Bonzini <bonzini@gnu.org>
1298 * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
1300 2005-05-15 Roger Sayle <roger@eyesopen.com>
1302 * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
1303 check for TREE_OVERFLOW on INTEGER_CST trees.
1304 * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
1305 CONSTANT_CLASS_P tree nodes.
1307 2005-05-15 H.J. Lu <hongjiu.lu@intel.com>
1310 * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
1312 2005-05-15 Daniel Berlin <dberlin@dberlin.org>
1314 Fix PR tree-optimization/21576
1316 * tree-ssa-pre.c (expression_node_pool): New pool.
1317 (comparison_node_pool): Ditto.
1318 (list_node_pool): Ditto.
1319 (pool_copy_list): New function.
1320 (phi_translate): Handle CALL_EXPR.
1321 (valid_in_set): Ditto.
1322 (create_expression_by_pieces): Ditto.
1323 (insert_into_preds_of_block): Ditto.
1324 (insert_aux): Ditto.
1325 (compute_avail): Ditto.
1326 (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
1327 (can_value_number_call): New function.
1328 (find_leader): Update comment.
1329 (init_pre): Create new pools.
1330 (fini_pre): Free new pools.
1331 (pass_pre): Add TODO_update_ssa for the future when we are going
1333 * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
1334 (set_value_handle): Ditto.
1335 (get_value_handle): Ditto.
1337 2005-05-15 Richard Earnshaw <richard.earnshaw@arm.com>
1339 * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
1341 2005-05-15 Andreas Jaeger <aj@suse.de>
1343 * gcc.c (pfatal_pexecute): Remove unused local function.
1345 2005-05-15 Richard Sandiford <rsandifo@redhat.com>
1347 * optc-gen.awk: Remove excess indentation.
1348 * opth-gen.awk: Likewise.
1350 2005-05-14 Kaz Kojima <kkojima@gcc.gnu.org>
1352 * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
1353 of basic_block_info. Call init_flow and find_basic_blocks
1354 before dbr_schedule if needed.
1356 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1358 * tree-optimize.c (init_tree_optimization_passes): Move
1359 pass_cd_dce in place of the last pass_dce.
1361 PR tree-optimization/21563
1362 * tree-vrp.c (compare_value): Return boolean_false_node when
1363 SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
1364 strictly larger than CST.
1366 2005-05-14 Nathan Sidwell <nathan@codesourcery.com>
1367 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1369 * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
1371 (rev_cond_name) Likewise.
1372 (vax_float_literal) Likewise.
1373 * config/vax/vax.md: Likewise.
1375 2005-05-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1377 * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
1378 registers and use them (specifically the stack pointer).
1379 * config/vax/vax.h: Use above defines right here.
1381 * config/vax/vax.c: (override_options) Remove 'register' keyword.
1382 (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
1383 (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
1385 * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
1386 mostly removal of trailing spaces...
1387 * config/vax/vax-modes.def: Remove trailing whitespace.
1389 * config/vax/elf.h: Update whitespace.
1391 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
1394 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1395 * fold-const.c (fold_indirect_ref_1): Avoid removing
1396 NOP_EXPRs with type qualifiers like const.
1398 2005-05-14 Jan Hubicka <jh@suse.cz>
1400 Patch by Richard Henderson:
1401 * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
1402 Handle RESX expressions properly.
1404 * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
1405 (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
1406 (remove_stmt_from_eh_region_fn): Likewise.
1408 * tree-cfg.c (execute_warn_function_return): Break out noreturn
1410 (execute_warn_function_noreturn): ... here.
1411 (pass_warn_function_noreturn): New pass.
1412 * tree-pass.h (pass_warn_function_noreturn): Declare
1413 * tree-optimize.c (init_tree_optimization_passes): Move return
1414 warnings early and add noreturn warnings at place of previous
1417 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1419 * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
1420 root_var_init, type_var_init): Use VEC instead of VARRAY.
1421 * tree-ssa-live.h (tree_partition_associator_d): Change the
1422 type of trees to VEC(tree,heap)*.
1423 (tpa_tree): Use VEC instead of VARRAY.
1425 2005-05-14 Richard Guenther <rguenth@gcc.gnu.org>
1427 * fold-const.c (div_if_zero_remainder): New function.
1428 (try_move_mult_to_index): Use it.
1430 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1432 * tree-eh.c (leh_tf_state): Change the type of dest_array to
1434 (maybe_record_in_goto_queue, lower_try_finally_onedest,
1435 lower_try_finally_copy, lower_try_finally_switch,
1436 lower_try_finally): Use VEC instead of VARRAY.
1438 2005-05-14 Hans-Peter Nilsson <hp@axis.com>
1440 * config/cris/cris.h (Node: Register Classes): Remove obsoleted
1441 comment regarding defined register classes.
1442 (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
1444 2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
1446 * tree-optimize.c (init_tree_optimization_passes): Move
1447 pass_merge_phi before the first pass_dominator.
1449 2005-05-13 Richard Earnshaw <richard.earnshaw@arm.com>
1451 * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
1454 2005-05-13 Josh Conner <jconner@apple.com>
1456 * config/arm/arm.c (arm_size_return_regs): New.
1457 (thumb_unexpanded_epilogue): replace in-line calculation
1458 of return registers with call to arm_size_return_regs.
1459 (use_return_insn): Include test of which registers are
1460 being used to hold return values, to accommodate
1461 vector return values.
1463 2005-05-11 Aldy Hernandez <aldyh@redhat.com>
1465 * config/rs6000/sysv4.opt (mlittle): Handle.
1467 * config/rs6000/rs6000.c (rs6000_handle_option): Set
1468 target_flags_explicit when appropriate.
1470 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
1472 PR middle-end/20714:
1473 * optabs.c (no_conflict_data): New struct.
1474 (no_conflict_move_test): New function.
1475 (emit_no_conflict_block): Use it.
1477 2005-05-13 Adam Nemet <anemet@lnxw.com>
1479 * doc/invoke.texi (Debugging Options): Option
1480 -fdump-translation-unit only works with C++ now.
1482 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
1484 Replace calls to abort in CRIS port.
1485 * config/cris/cris.h (CRIS_ASSERT): New macro.
1486 * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
1487 internal_error instead of abort.
1488 ("movsi"): Ditto. Unquote preparation statement section.
1489 ("call", "call_value"): Ditto, but use gcc_assert where
1490 appropriate. Tweak comments.
1491 * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
1493 (cris_op_str): Call internal_error, not abort.
1494 (cris_print_operand): Tweak "abort" reference to "die" in comment.
1495 (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
1496 (cris_notice_update_cc): Call internal_error, not abort.
1497 (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
1498 (cris_emit_movem_store, cris_asm_output_symbol_ref)
1499 (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
1500 (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
1501 ENABLE_CHECKING-guarded abort call.
1502 (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
1503 Use internal_error at end of test-chain.
1505 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
1507 PR rtl-optimization/20769:
1508 * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
1509 pattern emitted by expand_nl_goto_receiver.
1511 PR middle-end/20793:
1512 * integrate.c (allocate_initial_values): Update register liveness
1515 2005-05-13 Josh Conner <jconner@apple.com>
1517 * arm.c (arm_return_in_memory): Add handling for vector return types.
1519 2005-05-13 David Ung <davidu@mips.com>
1521 * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
1523 * config/mips/mips.c: Add 4km alias.
1524 * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
1525 * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
1528 2005-05-13 Jan Hubicka <jh@suse.cz>
1530 * c-decl.c (finish_function): Suppress "control reaches end of
1531 non-void function" when "no return statement in function
1532 returning non-void" is issued.
1534 * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
1535 * tree-optimize.c (pass_gimple): Kill.
1536 (init_tree_optimization_passes): Kill pass_gimple.
1537 * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
1538 * tree-dump.c (dump_files): Rename .generic to .gimple.*
1540 2005-05-13 J"orn Rennecke <joern.rennecke@st.com>
1542 PR rtl-optimization/20756:
1543 * basic-block.h (PROP_DEAD_INSN): Define.
1544 * flow.c (propagate_one_insn): Set during mark_set_regs call
1546 (mark_set_1): Emit a clobber when we are about to delete a dead insn
1547 that kills a live register.
1549 2005-05-13 Adrian Straetling <straetling@de.ibm.com>
1551 * config/s390/s390.md: ("DBL"): New mode attribute.
1552 ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
1553 ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
1554 ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
1556 2005-05-13 Richard Guenther <rguenth@gcc.gnu.org>
1558 * c-format.c (check_format_arg): Handle string literals of
1559 the form &"string"[offset].
1561 * g++.dg/warn/format4.C: New testcase.
1563 2005-05-13 Kazu Hirata <kazu@cs.umass.edu>
1565 * config/mips/3000.md, config/mips/4000.md,
1566 config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
1567 config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
1568 config/mips/generic.md, config/pdp11/pdp11.md,
1569 config/sh/crt1.asm, config/sh/lib1funcs.asm,
1570 config/sh/sh-modes.def, config/sh/sh-protos.h,
1571 config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
1573 2005-05-13 Richard Henderson <rth@redhat.com>
1575 * function.c (instantiate_virtual_regs_in_insn): Do not simplify
1576 addition to move unless dest is a register. Do not skip
1577 instantiation in dest on addition simplification.
1579 2005-05-13 Hans-Peter Nilsson <hp@axis.com>
1581 * config/cris/cris.c (cris_print_operand) <case 'H'; case
1582 CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
1583 output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
1585 2005-05-13 Jan Hubicka <jh@suse.cz>
1587 * basic-block.h (FOR_ALL_BB_FN): New macro.
1588 (init_flow): Initialize cfg structure.
1589 * function.c (allocate_struct_function): Do not initialize cfg structure.
1590 * tree-cfg.c (init_empty_tree_cfg): Break out from ...
1591 (build_tree_cfg): ... here.
1592 * tree-flow.h (init_empty_tree_cfg): Declare.
1594 2005-05-12 Steven Bosscher <stevenb@suse.de>
1596 Fix PR tree-optimization/21520
1597 * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1598 to attempt to fold constants.
1600 2005-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
1602 * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
1603 only when TARGET_ADJUST_UNROLL_MAX is defined.
1604 (general_movsrc_operand): Use the C style comment.
1605 (ua_offset): Use prototype.
1607 2005-05-12 Zdenek Dvorak <dvorakz@suse.cz>
1609 * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
1610 (struct hmr_data, hoist_memory_reference, memref_del,
1611 struct fmrv_data): Removed.
1612 (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
1613 (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
1615 (find_more_ref_vops): Traverse the list of memory references.
1616 (determine_lsm_loop): Work with the list of memory references instead
1617 of traversing the hashtable.
1619 2005-05-12 Steven Bosscher <stevenb@suse.de>
1620 Stuart Hastings <stuart@apple.com>
1621 Jan Hubicka <jh@suse.cz>
1623 * except.c (duplicate_eh_region_1, duplicate_eh_region_2,
1624 duplicate_eh_regions): New functions, based on old
1625 implementation removed with RTL inliner.
1626 (reachable_next_level): Modify behaviour pre-inline.
1627 * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
1629 * function.h (struct function): Add after_inlining flag.
1630 * tree-optimize.c (tree_rest_of_compilation): Set it.
1631 * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
1633 * tree-cfg.c (label_to_block_fn): Deal with cases where
1634 label was never insterted into code.
1636 2005-05-12 Zack Weinberg <zack@codesourcery.com>
1638 * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1640 2005-05-12 Daniel Berlin <dberlin@dberlin.org>
1642 Fix PR tree-optimization/21532
1643 * tree-ssa-pre.c (create_expression_by_pieces): stmt
1644 needs to go onto the inserted_exprs list.
1646 2005-05-12 Ian Lance Taylor <ian@airs.com>
1648 * c-common.h (statement_code_p): Don't declare.
1649 (STATEMENT_CODE_P): Don't define.
1650 (INIT_STATEMENT_CODES): Don't define.
1651 * c-common.c (statement_code_p): Don't define.
1653 2005-05-12 Eric Botcazou <ebotcazou@libertysurf.fr>
1655 * config/sparc/sparc.h: Remove dead code.
1656 * config/sparc/sparc.c (sparc_compute_frame_size): Use
1657 FIRST_PARM_OFFSET for the size of the register window area.
1658 (emit_save_regs): Rename into emit_save_or_restore_regs.
1659 Add 'action' parameter. Use 4095 as upper bound for the offset.
1660 Pass 'action' to save_or_restore_regs.
1661 (emit_restore_regs): Delete.
1662 (sparc_expand_prologue): Call emit_save_or_restore_regs.
1663 (sparc_expand_epilogue): Likewise.
1664 * config/sparc/sparc.md (mode macro P): Move.
1665 (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
1666 (mov<V32:mode> expander): Move to the top of the V32 section.
1667 (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
1668 (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
1669 (sibcall_epilogue): Move.
1671 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
1674 * arm.c (arm_gen_constant): Sign-extend intermediate values when
1675 synthesizing a constant of the difference of two immediates.
1677 2005-05-12 Richard Earnshaw <richard.earnshaw@arm.com>
1679 * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
1680 (negdf2_vfp): Likewise. Convert to define_insn_and_split and split
1681 the alternatives using integer registers into the appropriate
1684 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1686 * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
1687 bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
1688 * bitmap.h: Fixed comments.
1690 2005-05-11 Richard Henderson <rth@redhat.com>
1693 * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
1694 (ia64_cannot_force_const_mem): New.
1695 (tls_symbolic_operand_type): New.
1696 (ia64_legitimate_constant_p): New.
1697 (ia64_expand_load_address): Return true on success. Improve
1698 checks for when we should not split.
1699 (ia64_expand_tls_address): New addend operand. Distribute it
1700 as appropriate to the tls_kind. Delay referencing gp.
1701 (ia64_expand_move): Split symbolic addend as necessary. Handle
1702 tls symbols with addends.
1703 * config/ia64/ia64-protos.h: Update.
1704 * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
1705 p0, f0, f1, and r13.
1706 (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
1707 * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
1708 (symbolic_operand splitter): Pass everything through
1709 ia64_expand_load_address and FAIL or DONE as appropriate.
1710 (load_fptr): Only accept after reload.
1711 (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1712 load_symptr_low, load_ltoff_dtpmod,
1714 (load_dtprel): Only accept tls symbols.
1715 (load_dtprel64, load_dtprel22): Likewise.
1716 (load_tprel, load_tprel64, load_tprel22): Likewise.
1717 (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
1718 (add_dtprel): Only accept tls symbols. Canonicalize PLUS.
1719 (add_dtprel14, add_dtprel22): Likewise.
1720 (add_tprel, add_tprel14, add_tprel22): Likewise.
1721 * config/ia64/predicates.md (small_addr_symbolic_operand): New.
1722 (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
1723 (got_symbolic_operand): Check CONST offsets.
1724 (tls_symbolic_operand, ld_tls_symbolic_operand): New.
1725 (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
1726 (move_operand): Don't handle tls here. Check CONST offsets.
1728 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1730 * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
1731 Remove hilo_operand check.
1732 (rm7_impy_si_mul): Just match imul3. Remove hilo_operand check.
1733 * config/mips/predicates.md (hilo_operand): Delete.
1735 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1737 * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1739 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
1741 PR tree-optimizer/18472
1742 * tree-if-conv.c (tree_if_convert_stmt,
1743 if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
1745 2005-05-11 Jan Hubicka <jh@suse.cz>
1747 * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
1748 (GTFILES): add except.h.
1749 * except.c (eh_status): Add throw_stmt_table.
1750 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
1751 * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
1752 lookup_stmt_eh_region_fn): Declare.
1753 (throw_stmt_node): New structure.
1754 (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
1755 * gengtype.c (open_base_files): Add except.h to inlines.
1756 * tree-eh.c (throw_stmt_node): Kill.
1757 (record_stmt_eh_region): Update.
1758 (add_stmt_to_eh_region_fn): Break out from ...
1759 (add_stmt_to_eh_region): ... here.
1760 (remove_stmt_from_eh_region_fn): Break out from ...
1761 (remove_stmt_from_eh_region): ... here.
1762 (lookup_stmt_eh_region_fn): Break out from ...
1763 (lookup_stmt_eh_region): ... here.
1764 (honor_protect_cleanup_actions): Use build_resx.
1765 (lower_try_finally_onedest): Likewise.
1766 (lower_try_finally_copy): Likewise.
1767 (lower_try_finally_switch): Likewise.
1768 (lower_eh_constructs): Update eh table construction.
1769 * tree.c (build_resx): New.
1770 * tree.h (build_resx): Declare.
1772 2005-05-11 H.J. Lu <hongjiu.lu@intel.com>
1774 * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1777 2005-05-11 Kazu Hirata <kazu@cs.umass.edu>
1779 * fold-const.c, libgcov.c: Fix comment typos.
1781 * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1784 2005-05-11 Daniel Jacobowitz <dan@codesourcery.com>
1786 * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1787 * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1789 (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1791 2005-05-11 Nathan Sidwell <nathan@codesourcery.com>
1794 * crtstuff.c: Include auto-host.h again, for now.
1796 2005-05-11 Richard Sandiford <rsandifo@redhat.com>
1798 * config/mips/24k.md: Remove trailing whitespace.
1800 2005-05-11 David Ung <davidu@mips.com>
1802 * config/mips/mips.md (type): Add imul3.
1803 (length, hazard, may_clobber_hilo): Check for imul3.
1804 (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1805 (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1806 * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1807 for a 3 operand mul and its bypasses.
1808 * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1809 * config/mips/4000.md (r4k_imul): Likewise.
1810 * config/mips/4100.md (r4100_imul_si, r4100_imul_di): Likewise.
1811 * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1812 (vr4130_muldi): Likewise.
1813 * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1814 * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1815 * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1816 * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1817 (ir_vr54_imadd_si): Likewise.
1818 * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di): Likewise.
1819 * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1820 (rm7_impy_di): Likewise.
1821 * config/mips/9000.md (rm9k_mulsi, rm9k_muldi): Likewise.
1822 * config/mips/generic.md (generic_imul): Likewise.
1823 * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1824 * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di): Likewise.
1826 2005-05-11 J"orn Rennecke <joern.rennecke@st.com>
1828 PR middle-end/20371:
1829 * tree.h (record_layout_info_s): New member prev_packed.
1830 * stor-layout.c (update_alignment_for_field): Fix comment about
1831 KNOWN_ALIGN. For MS bitfields, if we start a new run, make sure
1832 we start it properly aligned.
1833 (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1834 to update_alignment_for_field, and recompute it afterwards using
1835 the alignment of the record.
1836 When a packed bitfield precedes an MS bitfield, don't add padding
1837 at the end of the packed bitfield on behalf of the base type of
1838 the packed bit field.
1839 Don't adjust rli->bitpos at the end
1840 of an MS bitfield run if we already adjusted bitpos/offset for an
1841 alignment as large or larger than the bitfield type size.
1842 Take possible record alignment > BIGGEST_ALIGNMENT into account
1843 when calculating actual_align.
1844 Only put packed buit fields into rli->prev_field if they end up
1846 Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1847 Update rli->remaining_in_alignment when we have already started a
1848 run of bit fields and we process a packed bit field.
1850 2005-05-11 Sebastian Pop <pop@cri.ensmp.fr>
1852 * tree-data-ref.c (find_data_references_in_loop): Give up when
1853 the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1854 may embed arbitrary side effects.
1855 Remove the assumption that GIMPLE form contains a single array
1856 access per statement.
1857 When the statement contains virtual operands, fail if it is not
1858 a MODIFY_EXPR or a CALL_EXPR.
1859 Return after the dont know node is inserted.
1861 2005-05-11 Richard Earnshaw <richard.earnshaw@arm.com>
1863 * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1865 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1868 PR tree-optimization/19639
1869 * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1870 and generic summands for char* as s * delta, too, folding &a[i]
1871 CODE x to &a[i CODE x/s]. Use tree_int_cst_equal
1872 for comparison of steps. Convert types for index addition.
1873 (fold_binary): Adjust the callers to always dispatch to
1874 try_move_mult_to_index.
1875 * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1876 expr with non-gimple ARRAY_REF offset.
1878 2005-05-11 Richard Guenther <rguenth@gcc.gnu.org>
1880 * fold-const.c (fold_indirect_ref_1): Avoid removing
1881 NOP_EXPRs with type qualifiers like const.
1883 2005-05-11 Richard Henderson <rth@redhat.com>
1886 * c-decl.c (finish_decl): Propagate the completed array type of
1887 a global variable into the binding.
1889 2005-05-10 Matt Kraai <kraai@ftbfs.org>
1891 * Makefile.in (gtype-desc.o, build/genautomata.o)
1892 (build/varray.o): Depend on $(VARRAY_H).
1894 2005-05-10 Diego Novillo <dnovillo@redhat.com>
1896 * tree-optimize.c (init_tree_optimization_passes): Re-organize
1897 optimization passes to do an initial batch of scalar cleanups.
1899 2005-05-10 Ian Lance Taylor <ian@airs.com>
1901 * read-rtl.c (struct macro_traverse_data): Define.
1902 (map_attr_string): New static function, broken out of
1903 apply_macro_to_string.
1904 (mode_attr_index, apply_mode_maps): New static functions.
1905 (apply_macro_to_string): Call map_attr_string.
1906 (apply_macro_to_rtx): Add mode_maps and infile parameters. Change
1908 (apply_macro_traverse): Expect data to point to a struct
1909 macro_traverse_data.
1910 (read_rtx): Add mode_maps local variable. Use mode_traverse_data
1911 to pass data through htab_traverse.
1912 (read_rtx_1): Add mode_maps parameter. Change all callers.
1913 Handle mode names which are attribute strings.
1914 * doc/md.texi (Substitutions): Rename from String Substitutions.
1915 Change references. Document using attributes as modes.
1917 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1919 * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1920 * tree-optimize.c (init_tree_optimization_passes) Swap
1921 pass_ch and pass_profile.
1922 * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1923 here. Remove rewrite_into_loop_closed_ssa call.
1925 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1927 * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1929 (legitimate_reload_constant_p): Add check for const double zero.
1930 * config/s390/s390.md: Add comment for constraint letter 'G'.
1931 ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1932 attributes for new case.
1933 * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1934 s390_const_double_ok_for_constraint_p.
1935 * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1938 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
1940 PR tree-optimization/21170
1941 * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1942 rewrite_ssa_into_ssa in comments with update_ssa.
1944 2005-05-10 Zdenek Dvorak <dvorakz@suse.cz>
1946 * tree-ssa-loop-im.c: Include hashtab.h.
1947 (struct mem_ref_loc): New.
1948 (struct mem_ref): Describe the set of references with the same
1950 (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1951 maybe_queue_var, fem_single_reachable_address,
1952 for_each_memref, single_reachable_address,
1953 is_call_clobbered_ref, determine_lsm_reg): Removed.
1954 (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1955 hoist_memory_reference, memref_hash, memref_eq, memref_del,
1956 gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1958 (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1959 (determine_lsm_loop): Rewritten.
1960 (determine_lsm): Do not set stmt uids.
1962 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1964 * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1967 2005-05-10 Adrian Straetling <straetling@de.ibm.com>
1969 * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1970 ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1971 ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1973 2005-05-10 Jeff Law <law@redhat.com>
1975 * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1976 thread_across_edge for any abnormal edges.
1978 2005-05-10 Richard Henderson <rth@redhat.com>
1980 * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1981 * config/ia64/ia64-protos.h: Declare it.
1982 * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1983 (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1984 (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1985 (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1986 (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1987 (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>. Zero
1988 extend result; use release semantics.
1989 (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1990 (sync_val_compare_and_swap_<IMODE>): Update to match.
1992 2005-05-10 Richard Henderson <rth@redhat.com>
1994 * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1995 before comparing it for success.
1997 2005-05-10 Richard Henderson <rth@redhat.com>
1999 * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
2000 no return value pattern.
2002 2005-05-10 Grigory Zagorodnev <grigory.zagorodnev@intel.com>
2003 H.J. Lu <hongjiu.lu@intel.com>
2005 * libgcov.c (create_file_directory): New function. Create
2006 directory for the given file name.
2007 (gcov_max_filename): New static var. Keeps size of the longest
2009 (gcov_exit): Always try to create directory for output
2010 file. Relocate each filename basing on environment vars.
2011 (__gcov_init): Remember the longest file name.
2012 * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
2013 * doc/gcov.texi (Cross-profiling): New node documenting
2014 cross-profiling management.
2015 * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
2017 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2019 * config/sparc/sparc.c (mem_min_alignment): Do not rely
2020 on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
2022 2005-05-10 Bob Wilson <bob.wilson@acm.org>
2024 * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
2025 case code to avoid one move instruction.
2026 (__umodsi3, __modsi3): Merge duplicated code sequences.
2028 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
2030 * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
2031 config/sh/sh.md, config/sh/superh.h: Fix comment typos.
2032 * doc/invoke.texi: Fix typos.
2034 * tree-data-ref.c (analyze_array_indexes, analyze_array,
2035 init_data_ref, access_functions_are_affine_or_constant_p,
2036 free_data_refs): Use VEC instead of VARRAY.
2037 * tree-data-ref.h (data_reference): Change the type of
2038 access_fns to VEC(tree,gc)*.
2039 (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
2041 2005-05-10 Gabor Loki <loki@gcc.gnu.org>
2044 * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
2045 * fold-const.c (fold): Expand the condition of reducing cond_expr.
2046 (contains_label_1, contains_label_p): New functions for checking
2047 labels in a sub-tree.
2049 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
2052 * c-decl.c (pushdecl): When there is a declaration in the current
2053 scope and the declarations are external linkage, check for
2054 compatibility with the type in the external scope and update the
2055 type in the external scope with the composite type information.
2056 Do not form a composite type of the new type and the visible type
2057 if they are incompatible.
2059 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
2061 * crtstuff.c: Revert part of 2005-05-08 Change.
2062 (IN_LIBGCC2): Define.
2064 2005-05-10 Eric Botcazou <ebotcazou@libertysurf.fr>
2066 * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
2067 remove redundant test.
2068 (fp_mov_p): Accept 0.
2069 (fp_high_losum_p): Remove redundant test.
2070 * config/sparc/predicates.md (const_high_operand): Explicitly test
2071 (not small_int_operand).
2072 (fp_const_high_losum_operand): New.
2073 * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'. Reorder.
2074 (movdi_insn_sp32_v9): Use canonical predicates.
2075 (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
2076 (movdi_insn_sp64_novis): Delete.
2077 (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
2078 (movsf_insn_novis): Delete.
2079 (movsf_insn_vis): Rename into movsf_insn.
2080 (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
2081 (movsf_lo_sum): Use fp_const_high_losum_operand.
2082 (movsf_high): Likewise.
2083 (movsf_high_losum splitter): Likewise.
2084 (mov<V32:mode> expander): Use register_or_zero_operand.
2085 (mov<V64:mode> expander): Likewise.
2086 (movdf_insn_sp32): Use register_or_zero_operand.
2087 (movdf_no_e_insn_sp32): Use register_or_zero_operand.
2088 Rename into movdf_insn_sp32_no_fpu.
2089 (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
2090 Rename into movdf_insn_sp32_v9_no_fpu.
2091 (movdf_insn_v9only_novis): Delete.
2092 (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
2093 (movdf_insn_sp64_novis): Delete.
2094 (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
2095 (movdf_no_e_insn_sp64): Use register_or_zero_operand.
2096 Rename into movdf_insn_sp64_no_fpu.
2097 (movtf expander): Use register_or_zero_operand.
2098 (movtf_insn_sp32): Delete.
2099 (movtf_insn_vis_sp32): Use register_or_zero_operand.
2100 Rename into movtf_insn_sp32.
2101 (movtf_no_e_insn_sp32): Use register_or_zero_operand.
2102 Rename into movtf_insn_sp32_no_fpu.
2103 (movtf_insn_hq_sp64): Delete.
2104 (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
2105 Rename into movtf_insn_sp64_hq.
2106 (movtf_insn_sp64): Delete.
2107 (movtf_insn_vis_sp64): Use register_or_zero_operand.
2108 Rename into movtf_insn_sp64.
2109 (movtf_no_e_insn_sp64): Use register_or_zero_operand.
2110 Rename into movtf_insn_sp64_no_fpu.
2112 2005-05-10 Nathan Sidwell <nathan@codesourcery.com>
2114 * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
2115 gcc_assert and gcc_unreachable as appropriate.
2116 (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
2117 xstormy16_output_cbranch_si, xstormy16_split_move,
2118 xstormy16_initial_elimination_offset,
2119 xstormy16_encode_section_info, xstormy16_print_operand_address,
2120 xstormy16_expand_call, xstormy16_expand_arith,
2121 xstormy16_output_shift, xstormy16_init_builtins): Likewise.
2123 2005-05-10 Kazu Hirata <kazu@cs.umass.edu>
2125 * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
2126 const_copies to VEC(tree,heap)*.
2127 (new_elim_graph, delete_elim_graph, elim_graph_size,
2128 elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
2131 2005-05-10 Joseph S. Myers <joseph@codesourcery.com>
2134 * doc/extend.texi (Type Attributes): Correct example syntax.
2136 2005-05-09 Joseph S. Myers <joseph@codesourcery.com>
2139 * doc/invoke.texi (-Wuninitialized): Update documentation.
2141 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
2143 * arm.c (const_ok_for_arm): Use a faster algorithm.
2145 2005-05-09 David Edelsohn <edelsohn@gnu.org>
2148 * config/rs6000/rs6000.md (add_op2): New.
2149 (add<mode>3): Use it.
2151 2005-05-09 Richard Earnshaw <richard.earnshaw@arm.com>
2153 * arm.c (arm_gen_constant): Add new heuristic for generating
2154 constant integers that can be expressed as the difference of two
2157 2005-05-09 Roger Sayle <roger@eyesopen.com>
2159 * c-tree.h (parser_build_unary_op): New prototype.
2160 * c-typeck.c (parser_build_unary_op): New function to construct
2161 a unary operation in the C parser.
2162 * c-parser.c (c_parser_unary_expression): Use the new function
2163 parser_build_unary_op when appropriate.
2165 2005-05-09 Mark Mitchell <mark@codesourcery.com>
2168 * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
2169 before outputting DWARF_FRAME_RETURN_COLUMN.
2171 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2173 * config/s390/s390.c: (s390_branch_condition_mask,
2174 s390_branch_condition_mnemonic, s390_extra_constraint_str,
2175 s390_const_ok_for_constraint_p, s390_expand_plus_operand,
2176 legitimize_pic_address, s390_emit_tls_call_insn,
2177 legitimize_tls_address, legitimize_tls_address,
2178 s390_expand_addcc, print_shift_count_operand, print_operand,
2179 addr_generation_dependency_p, annotate_constant_pool_refs,
2180 s390_split_branches, find_constant_pool_ref,
2181 replace_constant_pool_ref, s390_add_constant, s390_find_constant,
2182 s390_find_execute, s390_mainpool_start, s390_chunkify_start,
2183 s390_output_pool_entry, s390_function_value,
2184 s390_call_saved_register_used, s390_emit_call): Replace
2185 conditional aborts by gcc_assert and unconditional by gcc_unreachable.
2186 (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
2187 s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
2188 get_some_local_dynamic_name, s390_function_arg_size,
2189 s390_function_arg_advance, s390_function_arg,
2190 s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
2191 default case by gcc_unreachable.
2192 * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
2193 conditional abort by gcc_assert.
2194 ("doloop_si31"): Replace abort in last else by gcc_unreachable.
2195 ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
2197 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2199 * config/s390/s390.c: (s390_decompose_address,
2200 tls_symbolic_operand, legitimate_pic_operand_p,
2201 legitimate_constant_p, legitimate_reload_constant_p,
2202 s390_expand_plus_operand, legitimate_address_p,
2203 legitimate_la_operand_p, ): Remove 'register' from signature.
2204 (symbolic_reference_mentioned_p,
2205 tls_symbolic_reference_mentioned_p): Remove 'register' from local
2206 variable declarations.
2207 (legitimize_address): Remove 'register' from
2208 signature and local variable declarations.
2210 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2212 * config/s390/s390-protos.h: (s390_match_ccmode,
2213 s390_match_ccmode_set, reg_used_in_mem_p,
2214 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
2215 legitimate_la_operand_p, preferred_la_operand_p,
2216 s390_short_displacement, addr_generation_dependency_p,
2217 legitimate_reload_constant_p, legitimate_address_p): Change return type
2219 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
2220 * config/s390/s390.c: (s390_match_ccmode,
2221 symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
2222 legitimate_reload_constant_p): Change return type into 'bool'.
2223 (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
2224 Likewise. Additionally adapted comment.
2225 (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
2226 (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
2227 (s390_decompose_address): Change the type of the internal flags
2228 "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
2229 (struct s390_address): Change type of "pointer" into bool.
2230 * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
2231 Adapt calls for 's390_tm_ccmode' to the new signature.
2233 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2235 * config/s390/s390.c: (s390_match_ccmode_set,
2236 s390_branch_condition_mnemonic, s390_short_displacement,
2237 s390_decompose_address, get_thread_pointer, legitimize_tls_address,
2238 print_shift_count_operand, get_some_local_dynamic_name,
2239 get_some_local_dynamic_name_1, reg_used_in_mem_p,
2240 addr_generation_dependency_p, s390_split_branches,
2241 annotate_constant_pool_refs, find_constant_pool_ref,
2242 replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
2243 s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
2244 s390_register_info, s390_frame_info, s390_init_frame_layout,
2245 s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
2246 restore_gprs, s390_function_arg_size, s390_function_arg_float,
2247 s390_init_machine_status, s390_assemble_integer, s390_handle_option,
2248 s390_encode_section_info, s390_cannot_force_const_mem,
2249 s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
2250 s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
2251 s390_adjust_priority, s390_issue_rate,
2252 s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
2253 s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
2254 s390_build_builtin_va_list, s390_gimplify_va_arg,
2255 s390_function_ok_for_sibcall, s390_call_saved_register_used,
2256 s390_pass_by_reference, s390_fixed_condition_code_regs,
2257 s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
2258 s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
2259 s390_chunkify_cancel, s390_start_pool, s390_end_pool,
2260 s390_add_pool_insn, s390_find_pool, s390_add_constant,
2261 s390_find_constant, s390_add_execute, s390_find_execute,
2262 s390_execute_label, s390_execute_target, s390_dump_pool,
2263 s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
2264 Move target macro definitions to the end of the file. Move several
2265 functions within the file to assure correct compiling.
2267 2005-05-09 Steven Bosscher <stevenb@suse.de>
2269 * calls.c (purge_reg_equiv_notes): Remove, fold into...
2270 (fixup_tail_calls): ...here. Only look at insns between the
2271 start of the function and the FUNCTION_BEG insn note.
2273 * gcse.c (one_cprop_pass): Fix typos in dumps.
2275 * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
2277 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2279 * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
2280 * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
2281 "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
2282 Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
2284 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
2285 '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
2286 ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
2289 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2291 * config/s390/s390.md: ("gf") New mode attribute.
2292 ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
2293 "fixuns_truncsfsi2"): Merge.
2294 ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
2295 ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
2296 "fix_truncsfsi2_ieee"): Merge.
2298 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2300 * config/s390/s390.md: ("FPR") New mode macro.
2301 ("de", "dee"): New mode attributes.
2302 ("cmpdf", "cmpsf"): Merge.
2303 ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
2304 ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
2305 ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
2306 ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
2307 ("floatdidf2", "floatdisf2"): Merge.
2308 ("adddf3", "addsf3"): Merge.
2309 ("*adddf3", "*addsf3"): Merge.
2310 ("*adddf3_cc", "*addsf3_cc"): Merge.
2311 ("*adddf3_cconly", "*addsf3_cconly"): Merge.
2312 ("*adddf3_ibm", "*addsf3_ibm"): Merge.
2313 ("subdf3", "subsf3"): Merge.
2314 ("*subdf3", "*subsf3"): Merge.
2315 ("*subdf3_cc", "*subsf3_cc"): Merge.
2316 ("*subdf3_cconly", "*subsf3_cconly"): Merge.
2317 ("*subdf3_ibm", "*subsf3_ibm"): Merge.
2318 ("muldf3", "mulsf3"): Merge.
2319 ("*muldf3", "*mulsf3" "): Merge.
2320 ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
2321 ("*fmadddf", "*fmaddsf"): Merge.
2322 ("*fmsubdf", "*fmsubsf"): Merge.
2323 ("divdf3", "divsf3"): Merge.
2324 ("*divdf3", "*divsf3"): Merge.
2325 ("*divdf3_ibm", "*divsf3_ibm"): Merge.
2326 ("negdf2", "negsf2"): Merge.
2327 ("*negdf2_cc", "*negsf2_cc"): Merge.
2328 ("*negdf2_cconly", "*negsf2_cconly"): Merge.
2329 ("*negdf2", "*negsf2"): Merge.
2330 ("*negdf2_ibm", "*negsf2_ibm"): Merge.
2331 ("absdf2", "abssf2"): Merge.
2332 ("*absdf2_cc", "*abssf2_cc"): Merge.
2333 ("*absdf2_cconly", "*abssf2_cconly"): Merge.
2334 ("*absdf2", "*abssf2"): Merge.
2335 ("*absdf2_ibm", "*abssf2_ibm"): Merge.
2336 ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
2337 ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
2338 ("*negabsdf2", "*negabssf2"): Merge.
2339 ("sqrtdf2", "sqrtsf2"): Merge.
2341 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2343 * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
2345 * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
2346 "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
2347 ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
2348 "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
2350 * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
2351 fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
2352 "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
2353 fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
2354 ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
2355 "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
2356 "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
2357 "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
2358 "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
2359 "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
2360 "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
2361 "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
2362 "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
2363 "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
2364 "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
2365 "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
2367 ("*divsf3"): Additionally rename second pattern to
2369 ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
2370 "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
2371 "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
2372 "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
2373 "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
2374 'type values' and rename 'type' value.
2375 ("*addsf3"): Additionally rename second pattern to
2378 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2380 * config/s390/s390.md: ("SHIFT"): New mode macro.
2381 ("lr", "shift"): New mode attributes.
2382 ("ashldi3", "lshrdi3"): Merge.
2383 ("*ashldi3_31", "*lshrdi3"_31): Merge.
2384 ("*ashldi3_64", "*lshrdi3"_64): Merge.
2385 ("ashlsi3", "lshrsi3"): Merge.
2387 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2389 * config/s390/s390.md: ("DSI", "SCOND"): New mode
2391 ("E", "g"): New mode attributes.
2392 ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
2393 ("*adddi3_alc", "*addsi3_alc"): Merge.
2394 ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
2395 ("*subdi3_slb", "*subsi3_slb"): Merge.
2396 ("adddicc", "addsicc"): Merge.
2397 ("*sconddi", "*scondsi"): Merge.
2398 ("*sconddi_neg", "*scondsi_neg"): Merge.
2399 ("sltu", "sgtu", "sleu", "sgeu"): Merge.
2400 ("negdi2", "negsi2"): Extract expander pattern from
2401 "negsi2" and merge with "negdi2".
2402 ("*negdi2"): Merge with instruction pattern of "negsi2".
2403 ("*negdi2_cc", "*negsi2_cc"): Merge.
2404 ("*negdi2_cconly", "*negsi2_cconly"): Merge.
2405 ("rotldi3", "rotlsi3"): Merge.
2407 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2409 * config/s390/s390.md: ("hc"): New mode attribute.
2410 ("extendhidi2", "extendqidi2"): Merge.
2411 ("*extendhidi2", "*extendqidi2"): Merge.
2412 ("extendhisi2", "extendqisi2"): Merge.
2413 ("zero_extendhidi2", "zero_extendqidi2"): Merge.
2414 ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
2415 Merged 2 define_split.
2416 ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
2417 ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
2419 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2421 * config/s390/s390.md: ("COMPARE"): New mode macro.
2422 ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
2423 "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
2424 "bungt", "bunle", "bunge", "bltgt"): Merge.
2426 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2428 * config/s390/s390.md: ("INT"): New mode macro.
2429 ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
2432 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2434 * config/s390/s390.md: ("GPR", "P"): New mode macros.
2435 ("cmpdi", "cmpsi"): Merge.
2436 ("strlendi", "strlensi"): Merge.
2437 ("*strlendi", "*strlensi"): Merge.
2438 ("movmemdi", "movmemsi"): Merge.
2439 ("clrmemdi", "clrmemsi"): Merge.
2441 2005-05-09 Adrian Straetling <straetling@de.ibm.com>
2443 * config/s390/s390.md: ("HQI"): New mode macro.
2444 ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
2445 ("*tmhi_full", "*tmqi_full"): Merge.
2446 ("*tsthiCCT", "*tstqiCCT"): Merge.
2447 ("*tsthi", "*tstqi"): Merge.
2448 ("*tsthi_cconly", "tstqi_cconly"): Merge.
2449 ("*sethighhisi", "*sethighqisi"): Merge.
2451 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
2453 * crtstuff.c, integrate.h, tree-scalar-evolution.h,
2454 config/alpha/unicosmk.h, config/arc/arc.md,
2455 config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
2456 config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
2457 config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
2458 config/arm/semi.h, config/arm/uclinux-elf.h,
2459 config/arm/wince-pe.h, config/fr30/fr30.c,
2460 config/rs6000/altivec.h: Update copyright.
2462 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
2464 * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
2465 gcc_assert and gcc_unreachable as appropriate.
2466 (pdp11_output_function_epilogue, output_move_double,
2467 output_move_quad, print_operand_address, output_jump,
2468 output_addr_const_pdp11): Likewise.
2469 * config/pdp11/pdp11.h (FUNCTION_PROFILER,
2470 ASM_OUTPUT_ALIGN): Likewise.
2471 * config/pdp11/pdp11.md: Likewise.
2472 (extendhisi2, subhi3, subqi3): Likewise.
2474 2005-05-09 David Edelsohn <edelsohn@gnu.org>
2477 * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2480 2005-05-09 Kazu Hirata <kazu@cs.umass.edu>
2482 * config/ia64/ia64.c: Fix a comment typo.
2484 2005-05-09 Richard Earnshaw <rearnsha@arm.com>
2487 * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2488 (arm_override_options): Use them instead of manifest constants. Don't
2489 allow -march to override the -mtune setting.
2491 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
2493 * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
2494 (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
2495 (function_arg_advance, function_arg, save_restore_insns,
2496 iq2000_expand_prologue, iq2000_output_conditional_branch,
2497 expand_one_builtin, print_operand):
2498 * config/iq2000/iq2000.md (tablejump): Likewise.
2500 2005-05-09 David Ung <davidu@mips.com>
2502 * config/mips/mips.h (processor_type): Add names for the 24K.
2503 * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
2505 * config/mips/mips.md (cnv_mode): New attribute for recording the
2506 conversion types of float convert insns.
2507 (cpu): Add 24k and 24kx.
2508 (include): Include 24k.md file.
2509 (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
2510 (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
2511 (floatdisf2): Setup cnv_mode.
2512 (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
2514 * config/mips/24k.md: New file, contains 24k DFA pipeline
2517 2005-05-09 Nathan Sidwell <nathan@codesourcery.com>
2519 * config/sh/sh.c (print_operand_address): Use gcc_assert and
2520 gcc_unreachable as appropriate.
2521 (print_operand, prepare_move_operands, prepare_scc_operands,
2522 output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
2523 gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
2524 fixup_mova, gen_far_branch, sh_reorg, split_branches,
2525 final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
2526 sh_set_return_address, sh_setup_incoming_varargs,
2527 initial_elimination_offset, sh_pch_valid_p, get_free_reg,
2528 sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
2529 check_use_sfunc_addr): Likewise.
2530 * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
2531 * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2532 * config/sh/symbian.c (sh_symbian_mark_dllexport,
2533 sh_symbian_mark_dllimport): Likewise.
2534 * config/sh/sh.md: Likewise.
2535 (movdicc, call_pop, call_value_pop, casesi_worker_1,
2536 casesi_worker_2, casesi_shift_media, casesi_load_media,
2537 return_media): Likewise.
2539 2005-05-08 Roger Sayle <roger@eyesopen.com>
2542 * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2545 2005-05-08 Richard Henderson <rth@redhat.com>
2547 * config/alpha/alpha.c (adjust_address): Fix typo last change.
2549 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2551 * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
2552 and -1 can happen in reg_renumber when no hard register is assigned.
2554 2005-05-08 Steven Bosscher <stevenb@suse.de>
2555 Kazu Hirata <kazu@cs.umass.edu>
2557 PR tree-optimization/14841, tree-optimization/15838
2558 * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2559 (evaluate_stmt): Call it.
2561 2005-05-08 Jakub Jelinek <jakub@redhat.com>
2563 * config/ia64/ia64.c (ia64_override_options): Don't set
2564 ia64_flag_var_tracking and clear flag_var_tracking here...
2565 (ia64_file_start): ... but here.
2567 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2569 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
2570 and gcc_unreachable as appropriate.
2571 (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
2572 m68hc11_gen_highpart, print_operand, print_operand_address,
2573 m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
2574 m68hc11_gen_movhi): Likewise.
2575 * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
2576 * config/m68hc11/m68hc11.md: Reword comment.
2578 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2581 * config/m68hc11/predicates.md (splitable_operand): An immediate is
2584 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2586 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
2587 the 68HC12 address indirect addressing mode as it is not supported by
2589 * config/m68hc11/m68hc11-protos.h
2590 (m68hc11_valid_addressing_p): Declare.
2591 (m68hc11_add_mode): Declare.
2592 * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
2593 register_indirect_p and export it.
2594 (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
2595 instruction so that it is part of the good BB.
2596 (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
2597 addressing with movw.
2598 (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
2600 * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
2601 ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
2602 * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
2604 ("*movhi_68hc12"): Handle movhi_const0.
2605 ("*subhi3", "subqi3"): Use general_operand for operand 1.
2606 ("*subhi3_zext"): Likewise.
2608 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2611 * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2612 operand 1 and fix constraints.
2613 ("mulqihi3"): Use general_operand for operand 2.
2615 2005-05-08 Julian Brown <julian@codesourcery.com>
2616 H.J. Lu <hongjiu.lu@intel.com>
2617 Paul Brook <paul@codesourcery.com>
2619 * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
2620 GNU linker. Support linker version x.x.x.x.x. Require GNU linker
2621 20050308/2.16.0 or newer for comdat group.
2622 * configure: Regenerated.
2623 * config.in: Regenerated.
2624 * varasm.c (default_function_rodata_section): Put .rodata section in
2625 COMDAT group when necessary.
2626 (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
2628 (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2631 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
2633 * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2635 * tree-flow.h (num_referenced_var, referenced_var): Likewise.
2636 * tree-into-ssa.c (mark_def_site_blocks): Likewise.
2637 * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
2638 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2640 2005-05-08 Stephane Carrez <stcarrez@nerim.fr>
2643 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
2644 64-bit constants on 64-bit hosts.
2645 (m68hc11_split_logical): Simplify.
2646 (m68hc11_split_move): Likewise.
2648 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2649 Paolo Bonzini <bonzini@gnu.org>
2651 * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
2652 * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
2653 * configure.ac (enable_checking): Fix typos in runtime_checking.
2654 (ENABLE_RUNTIME_CHECKING): Mark as target template.
2655 (xm_file): Prepend auto-host.h
2656 (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
2657 * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
2659 * crtstuff.c: Do not include auto-host.h.
2660 (IN_LIBGCC2): Do not define.
2661 * gcov-io.h: Include tconfig.h, not auto-host.h.
2662 * libgcc2.c: Do not include auto-host.h.
2663 (abort): Do not undefine.
2664 * libgcov.c: Remove unneeded comment about config.h.
2665 * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
2666 * config.in, configure: Regenerated.
2668 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2669 Falk Hueffner <falk@debian.org>
2671 * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
2672 and gcc_unreachable as appropriate.
2673 (get_aligned_mem, get_unaligned_address,
2674 alpha_emit_set_long_const, alpha_emit_conditional_branch,
2675 alpha_emit_setcc, alpha_emit_conditional_move,
2676 alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
2677 alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
2678 alpha_expand_unaligned_load, alpha_expand_block_move,
2679 alpha_expand_zap_mask, get_trap_mode_suffix,
2680 get_round_mode_suffix, get_some_local_dynamic_name,
2681 print_operand_address, function_arg, alpha_return_in_memory,
2682 function_value, alpha_expand_builtin,
2683 alpha_initial_elimination_offset, alpha_expand_epilogue,
2684 summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
2685 alphaev5_next_group, alpha_align_insns,
2686 unicosmk_initial_elimination_offset, unicosmk_unique_section,
2687 unicosmk_ssib_name): Likewise.
2688 * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2689 * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
2690 ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
2691 * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
2692 ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2693 * config/alpha/alpha.md (*divmodsi_internal_er,
2694 *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
2695 call_nt, call_umk, call_vms, call_value, sibcall_value,
2696 call_value_osf, call_value_nt, call_value_vms, call_value_umk,
2697 *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
2698 * config/alpha/predicates.md (input_operand): Likewise.
2700 2005-05-08 Nathan Sidwell <nathan@codesourcery.com>
2702 * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
2703 gcc_unreachable, as appropriate.
2704 (frv_function_prologue, frv_alloc_temp_reg,
2705 frv_initial_elimination_offset, frv_expand_block_move,
2706 frv_expand_block_clear, frv_print_operand_jump_hint,
2707 frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
2708 frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
2709 frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
2710 frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
2711 frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
2712 frv_in_small_data_p, frv_asm_out_constructor,
2713 frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
2714 * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
2715 *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
2716 *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
2717 sibcall_value, casesi): Likewise.
2719 * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
2720 gcc_unreachable as appropriate.
2721 (print_operand_address, mn10300_print_reg_list, expand_prologue,
2722 expand_epilogue, notice_update_cc, initial_offset,
2723 mn10300_address_cost_1): Likewise.
2724 * config/mn10300/mn10300.md: Likewise.
2725 (absdf2, abssf2, negdf2, negsf2): Likewise.
2727 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
2730 * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2732 * config/mips/mips.md (swapped_fcond): New code macro and attribute.
2733 (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
2734 including sunge_<mode> and sungt_<mode>.
2736 2005-05-08 Richard Sandiford <rsandifo@redhat.com>
2738 * integrate.h (get_hard_reg_initial_val): Change type of register
2739 parameter from int to unsigned int.
2740 (has_hard_reg_initial_val): Likewise.
2741 * integrate.c (get_hard_reg_initial_val): Likewise.
2742 (has_hard_reg_initial_val): Likewise. Remove cast to unsigned int.
2744 2005-05-08 Kazu Hirata <kazu@cs.umass.edu>
2746 * except.c (eh_status): Change the type of ttype_data to
2748 (add_ttypes_entry, assign_filter_values,
2749 output_function_exception_table): Use VEC instead of VARRAY.
2751 2005-05-07 David Edelsohn <edelsohn@gnu.org>
2753 * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2755 2005-05-07 Paul Brook <paul@codesourcery.com>
2757 * Makefile.in: Fix dependencies.
2758 (GCOV_IO_H, VARRAY_H): Set.
2760 2005-05-07 Anthony Green <green@redhat.com>
2763 * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2764 x$STMP_FIXPROTO test.
2765 * configure: Rebuilt.
2767 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
2769 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2770 inappropriate feature test macros if flag_iso.
2772 2005-05-07 Joseph S. Myers <joseph@codesourcery.com>
2774 * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2776 2005-05-07 Hans-Peter Nilsson <hp@axis.com>
2779 * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
2780 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2781 Handle moved operand being in special register.
2782 ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
2783 presumed working insn.
2784 (mover2side): Add FIXME.
2786 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2788 * integrate.c (get_func_hard_reg_initial_val): Delete.
2789 (has_func_hard_reg_initial_val): Delete.
2790 (get_hard_reg_initial_val): Inline the old implementation of
2791 get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
2792 instead of has_func_hard_reg_initial_val to test for an existing
2793 pseudo. Only create an rtx if a new initial value entry is needed.
2794 (has_hard_reg_initial_val): Scan the initial value list directly.
2795 Don't create an rtx.
2797 2005-05-07 David Edelsohn <edelsohn@gnu.org>
2799 * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2801 * config.in (HAVE_AS_POPCNTB): New.
2802 * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2803 (HAVE_AS_POPCNTB): New.
2804 * configure: Regenerated.
2805 * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2806 * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2807 MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
2808 and rs6000_sched_costly_dep.
2809 * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2810 (TARGET_XL_COMPAT): Delete.
2811 * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2812 (popcount<mode>2): New.
2813 (popcntb<mode>2): New.
2814 * config/rs6000/rs6000.opt (mpopcntb): New.
2816 * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2817 if variable name exists.
2819 2005-05-07 Matt Kraai <kraai@ftbfs.org>
2821 * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2823 2005-05-07 Richard Henderson <rth@redhat.com>
2826 * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2827 with constant offsets.
2829 2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
2831 * config/v850/v850.c (print_operand): Use gcc_assert and
2832 gcc_unreachable, as appropriate.
2833 (print_operand_address, v850_handle_data_area_attribute,
2834 v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2835 v850_insert_attributes, construct_prepare_instruction): Likewise.
2836 * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2837 * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2839 2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
2841 * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2842 config/rs6000/rs6000.h: Fix comment typos.
2844 2005-05-07 Richard Sandiford <rsandifo@redhat.com>
2846 * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2847 * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2848 (mips_scalar_mode_supported_p): Delete.
2850 2005-05-06 Eric Christopher <echristo@redhat.com>
2852 * config/mips/mips.opt: Remove -mint64 option.
2853 * config/mips/mips.c (override_options): Remove -mint64
2855 * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2856 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2857 64-bit integer handling.
2858 * doc/invoke.texi (Option Summary): Remove -mint64 for
2861 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2863 PR tree-optimization/19401
2864 * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2865 * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2866 (estimated_unrolled_size): New function.
2867 (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2868 tree_unroll_loops_completely): Always unroll loops if the code size
2870 * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2871 loops should be unrolled completely.
2872 (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2874 2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
2876 PR rtl-optimization/21254
2877 * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2878 assumptions for loops that otherwise do not roll.
2879 (find_simple_exit): Prefer # of iterations that is guaranteed
2881 * loop-unroll.c (decide_peel_once_rolling,
2882 decide_peel_completely): Check whether the loop is infinite.
2884 2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
2886 * config/rs6000/sysv4.opt: Fix typo.
2888 2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
2889 Jakub Jelinek <jakub@redhat.com>
2892 * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2893 for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2894 Don't use rep; movs{l,q} if the repetition count is really small,
2895 instead use a sequence of movs{l,q} instructions.
2897 2005-05-06 Jeff Law <law@redhat.com>
2899 PR tree-optimization/21380
2900 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2901 thread through a block with no preds.
2903 2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
2905 * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2906 ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2907 add_call_read_ops): Use VEC instead of VARRAY.
2909 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2911 * config/mcore/mcore.c (mcore_print_operand_address): Use
2912 gcc_assert and gcc_unreachable as appropriate.
2913 (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2914 mcore_output_andn, output_inline_const, mcore_output_move,
2915 mcore_output_movedouble, mcore_expand_block_move,
2916 layout_mcore_frame, mcore_initial_elimination_offset,
2917 mcore_expand_prolog, mcore_mark_dllexport,
2918 mcore_mark_dllimport): Likewise.
2919 * config/mcore/mcore.h (switch_to_section): Likewise.
2920 * config/mcore/mcore.md: Likewise.
2922 2005-05-06 Aldy Hernandez <aldyh@redhat.com>
2924 * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2925 TARGET_PROFILE_KERNEL.
2927 * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2928 TARGET_PROFILE_KERNEL use.
2930 2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
2932 * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2933 and gcc_unreachable, as appropriate.
2934 (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2935 m32r_expand_prologue, m32r_output_function_epilogue,
2936 m32r_legitimize_pic_address, m32r_print_operand_address,
2937 emit_cond_move, m32r_function_symbol,
2938 m32r_output_block_move): Likewise.
2939 * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2940 * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2941 *rev_zero_branch_insn): Likewise.
2943 2005-05-06 Jakub Jelinek <jakub@redhat.com>
2946 * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2947 if both NEWDECL and OLDDECL are already weak.
2949 2005-05-06 Richard Sandiford <rsandifo@redhat.com>
2951 * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2953 2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
2954 Kaz Kojima <kkojima@gcc.gnu.org>
2956 * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2959 2005-05-05 Aldy Hernandez <aldyh@redhat.com>
2960 David Edelsohn <edelsohn@gnu.org>
2962 * config.gcc: Add .opt magic for the rs6000 ports.
2964 * doc/invoke.texi: Document -mabi= option properly. Document
2965 -misel and -mno-sel. Document -mspe and -mno-spe. Document
2966 -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
2969 * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
2970 SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
2973 * config/rs6000/aix.opt: New.
2974 * config/rs6000/aix41.opt: New.
2975 * config/rs6000/aix64.opt: New.
2976 * config/rs6000/darwin.opt: New.
2977 * config/rs6000/linux64.opt: New.
2978 * config/rs6000/rs6000.opt: New.
2979 * config/rs6000/sysv4.opt: New.
2981 * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2982 associated TARGET_*. Remove SUBTARGET_OPTIONS,
2984 Define TARGET_USES_SYSV4_OPT.
2985 * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2986 * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
2987 TARGET_USES_AIX64_OPT.
2988 * config/rs6000/aix51.h: Same.
2989 * config/rs6000/aix52.h: Same.
2990 * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2991 MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2992 Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2993 Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2994 * config/rs6000/linux64.h: Use
2995 rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
2997 * config/rs6000/rs6000.c: Remove definitions of
2998 rs6000_sched_restricted_insns_priority,
2999 rs6000_long_double_size_string, rs6000_altivec_vrsave,
3000 rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
3001 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
3002 rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
3003 rs6000_alignment_string. Define rs6000_explicit_options.
3004 (rs6000_parse_abi_options): Remove.
3005 (rs6000_parse_alignment_option): Remove.
3006 (rs6000_parse_float_gprs_option): Remove.
3007 (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
3008 TARGET_DEFAULT_TARGET_FLAGS.
3009 (rs6000_override_options): Revamp to use new .opt machinery.
3011 * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
3012 of new .opt machinery. Remove target_flags. Redefine
3013 TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
3014 SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
3015 rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
3016 rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
3017 rs6000_longcall_switch, rs6000_default_long_calls,
3018 rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
3019 rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
3020 TARGET_ALTIVEC_VRSAVE.
3022 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
3024 * config.gcc (hppa1.1-*-rtems*): Remove.
3025 * config/pa/rtems.h: Remove.
3027 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
3029 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3030 Exclude roe/603e multilib variants.
3032 2005-05-04 Denis Chertykov <denisc@overta.ru>
3035 * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
3038 2005-05-05 Richard Sandiford <rsandifo@redhat.com>
3040 * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
3041 arm/pe.opt to $extra_options.
3042 * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
3043 (target_float_abi_name, target_float_switch, target_abi_name)
3044 (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
3045 (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
3046 (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
3047 (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
3048 (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
3049 (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
3050 (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
3051 (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
3052 (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
3053 (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
3054 (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
3055 (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
3056 (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
3057 (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
3058 (arm_pic_register_string): Delete.
3059 (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
3061 (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
3062 * config/arm/coff.h (TARGET_DEFAULT): Likewise.
3063 * config/arm/elf.h (TARGET_DEFAULT): Likewise.
3064 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
3065 * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
3066 * config/arm/semi.h (TARGET_DEFAULT): Likewise.
3067 * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
3068 * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
3069 * config/arm/pe.h (TARGET_DEFAULT): Likewise.
3070 (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
3071 (SUBTARGET_SWITCHES): Delete.
3072 * config/arm/arm.c (target_float_switch): Delete.
3073 (arm_cpu_select): Moved from config/arm/arm.h.
3074 (target_fpu_name, target_fpe_name, target_float_abi_name)
3075 (target_abi_name, structure_size_string, arm_pic_register_string)
3076 (arm_select): Make static.
3077 (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3078 (arm_handle_option): New function.
3079 (arm_override_options): Update target_flags checks for new mask names.
3080 Remove target_float_switch code.
3081 (arm_expand_prologue, thumb_expand_prologue): Check
3082 !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
3083 * config/arm/arm.opt, config/arm/pe.opt: New files.
3085 2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
3087 * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
3088 gcc_unreachable as appropriate.
3089 (arc_double_limm_p, arc_setup_incoming_varargs,
3090 arc_compute_function_type, arc_output_function_prologue,
3091 arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
3092 output_shift, arc_print_operand, arc_print_operand_address,
3093 arc_final_prescan_insn): Likewise.
3094 * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
3096 2005-05-04 Geoffrey Keating <geoffk@apple.com>
3098 * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
3103 (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
3104 add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
3105 clz<mode>2, ctz<mode>2, ffs<mode>2): New.
3106 (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
3107 (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
3108 (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
3109 (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
3110 (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
3112 2005-05-05 Paul Brook <paul@codesourcery.com>
3114 * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
3115 cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
3116 regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
3117 and tree-data-ref.h with *_H variables.
3119 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
3121 * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
3123 2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
3125 * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
3127 2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
3129 * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
3131 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
3133 * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
3134 setting of vrsave register for current function after
3135 call to save_world is emitted.
3137 2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
3139 * config/mmix/predicates.md: New file.
3140 * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
3141 (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
3142 (mmix_foldable_comparison_operator, mmix_comparison_operator)
3143 (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
3144 * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3146 * config/mmix/mmix.md: Include predicates.md.
3147 ("call", "call_value"): Force address to register if it isn't a
3148 mmix_symbolic_or_address_operand.
3150 2005-05-04 Andrew MacLeod <amacleod@redhat.com>
3152 * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
3153 the flags are of appropriate types.
3154 (num_ssa_operands): Generalize using the generic interface.
3155 * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
3158 2005-05-04 Richard Sandiford <rsandifo@redhat.com>
3160 * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
3161 (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
3163 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
3165 * tree-outof-ssa.c (edge_leader, stmt_list,
3166 analyze_edges_for_bb): Use VEC instead of VARRAY.
3167 (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
3168 (perform_edge_inserts): Call init_analayze_edges_for_bb and
3169 fini_analayze_edges_for_bb.
3171 2005-05-04 James E Wilson <wilson@specifixinc.com>
3174 * gcc.c (process_command): In the second argv scan loop, ignore
3175 Xassembler and Xpreprocessor, along with their argument.
3177 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
3179 * tree-flow-inline.h, tree-ssa-operands.c,
3180 tree-ssa-operands.h, tree-ssa-opfinalize.h:
3181 Likewise. tree-vn.c: Fix comment typos.
3182 * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
3184 2005-05-04 Paolo Bonzini <bonzini@gnu.org>
3186 * doc/tm.texi (Target Hooks): Document
3187 TARGET_RESOLVE_OVERLOADED_BUILTIN.
3189 2005-05-04 Paul Brook <paul@codesourcery.com>
3191 * Makefile.in: Change dependencies on target.h to $(TARGET_H).
3193 2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
3195 * dwarf2out.c (incomplete_types, retry_incomplete_types,
3196 gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
3199 * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
3200 get_expansion, expand_var_during_unrolling,
3201 insert_var_expansion_initialization,
3202 combine_var_copies_in_loop_exit, release_var_copies): Use VEC
3205 * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
3208 2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
3211 * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
3212 the same as INTEGER_TYPE.
3213 (fold_binary): Fold "bool_var != 0" to bool_var.
3214 Fold "bool_var == 1" to bool_var.
3216 2004-05-03 Richard Henderson <rth@redhat.com>
3219 * function.c (instantiate_virtual_regs_in_insn): Use the mode
3220 from recog_data instead of insn_data.
3222 2005-05-03 DJ Delorie <dj@redhat.com>
3224 * common.opt (fdiagnostics-show-option): No variable is needed.
3225 * diagnostic.h (diagnostic_context): Add show_option_requested flag.
3226 * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
3227 (diagnostic_report_diagnostic): Test for enabled diagnostics here.
3228 Save and restore original message format. Use flag in context
3230 (warning): Don't test for enabled warnings here.
3231 * opts.c (common_handle_option): Handle -fdiagnostics-show-option
3234 2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
3236 * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
3237 * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
3238 * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
3239 * aclocal.m4: Don't include accross.m4.
3240 * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3241 Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3242 * configure, config.in: Regenerate.
3244 2005-05-04 Jakub Jelinek <jakub@redhat.com>
3247 * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
3248 (clear_storage): Add argument.
3249 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
3250 Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
3252 (emit_block_move): Handle BLOCK_OP_TAILCALL method.
3253 (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
3254 (store_expr, store_constructor): Adjust callers.
3255 * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
3256 to emit_block_move if CALL_EXPR_TAILCALL (exp).
3257 (expand_builtin_memmove): Add ORIG_EXP argument, copy
3258 CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
3259 (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
3260 with EXP. Pass EXP to expand_builtin_memmove.
3261 (expand_builtin_memset): Add ORIG_EXP argument, pass
3262 BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
3263 (expand_builtin_bzero): Replace ARGLIST argument with EXP.
3264 Pass EXP to expand_builtin_memset.
3265 (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
3267 (expand_builtin_strncmp): Likewise.
3268 (expand_builtin_printf): Replace ARGLIST argument with EXP.
3269 Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
3270 (expand_builtin_fprintf): Likewise.
3271 (expand_builtin): Adjust calls to
3272 expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
3274 * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
3277 PR rtl-optimization/21239
3278 * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
3280 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
3282 * tree-flow.h (tree_ann_common_d): Move aux to ...
3283 (stmt_ann_d): ... here.
3284 * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
3285 move_computations_stmt, schedule_sm): Update references to
3287 * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
3289 * tree-cfg.c (remove_bb): Remove a redundant call to
3291 * tree-if-conv.c (replace_phi_with_cond_modify_expr):
3294 2005-05-03 Richard Henderson <rth@redhat.com>
3296 * config/rs6000/rs6000.c: Remove conflict markers.
3298 * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
3300 2005-05-03 James E Wilson <wilson@specifixinc.com>
3302 * dwarf2out.c (lookup_filename): Call maybe_emit_file.
3304 2005-05-03 DJ Delorie <dj@redhat.com>
3306 * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
3307 decide if the warning will be printed.
3308 * calls.c (expand_call): Likewise.
3309 * function.c (init-function_start): Likewise.
3311 * common.opt (-fdiagnostics-show-option): New.
3312 * opts.c (option_enabled): Accept the option index instead of a
3313 pointer to the option descriptor.
3314 * opts.h (option_enabled): Likewise.
3315 * toplev.c (print_switch_values): Pass option index, not option
3317 * diagnostic.h (diagnostic_info): Add option_index.
3318 * diagnostic.c: Include opts.h.
3319 (diagnostic_set_info): Initialize option_index.
3320 (diagnostic_report_diagnostic): Amend option name if appropriate.
3321 (warning): Check to see if the specified warning is enabled.
3323 * doc/invoke.texi (-fdiagnostics-show-options): Document.
3325 2005-05-03 Richard Henderson <rth@redhat.com>
3327 * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
3328 SPEC_OR_GEN_REGS definitions.
3330 2005-05-03 Alexandre Oliva <aoliva@redhat.com>
3333 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
3334 for unavailable registers.
3336 2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
3338 * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
3340 * cfglayout.c (block_locators_blocks,
3341 insn_locators_initialize, insn_scope): Use VEC instead of
3344 * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
3345 mudflap_finish_file, mudflap_finish_file): Use VEC instead of
3348 2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3350 * config/sparc/predicates.md (const_compl_high_operand): New.
3351 * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
3353 (sparc_emit_set_const64_quick1): Adjust for above change.
3354 (sparc_emit_set_const64_quick2): Likewise.
3355 (sparc_emit_set_const64_longway): Likewise.
3356 (sparc_emit_set_const64): Likewise.
3357 * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
3358 movdi_const64_special): Delete.
3359 (logical constant splitters): Use const_compl_high_operand.
3361 2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
3363 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
3364 rather than STRIP_NOPS.
3366 2005-05-03 Jakub Jelinek <jakub@redhat.com>
3368 PR rtl-optimization/21330
3369 * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
3371 (unswitch_single_loop): Clear cinsn when retrying.
3374 * config/i386/i386.c (legitimize_address): When canonicalizing
3375 ASHIFT into MULT, multiply by 1 << shift_count instead of
3376 1 << log2 (shift_count).
3378 2005-05-03 Andrew MacLeod <amacleod@redhat.com>
3380 * lambda-code.c (gcc_loop_to_lambda_loop,
3381 lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
3382 stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
3383 generic operand interface.
3384 * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
3385 * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
3386 generic operand interface.
3387 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
3388 link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
3389 next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
3390 num_imm_uses): Use ssa_use_operand_t.
3391 (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
3392 get_v_must_def_ops): Delete.
3393 (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
3394 (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
3395 get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
3396 get_v_must_def_kill_ptr): Delete.
3397 (delink_stmt_imm_use): Move and use new operand interface.
3398 (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
3399 op_iter_next_tree): Use new operand implementation.
3400 (clear_and_done_ssa_iter): New. Initialize a blank operand iterator.
3401 (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
3403 (op_iter_next_mustdef, op_iter_next_maydef,
3404 op_iter_next_must_and_may_def): Delete. Replace with...
3405 (op_iter_next_maymustdef): New. Combine must and may next operations.
3406 (op_iter_init_maydef, op_iter_init_mustdef,
3407 op_iter_init_must_and_may_def): Use new interface.
3408 (single_ssa_tree_operand ): New. Process single operands only as trees.
3409 (single_ssa_use_operand): New. Process single operands only as uses.
3410 (single_ssa_def_operand): New. Process single operands only as defs.
3411 (zero_ssa_operands): New. Return TRUE if there are zero operands of the
3413 (num_ssa_operands): New. Count the number of specified operands.
3414 (compare_ssa_operands_equal): New. Compare two statements' operands.
3415 (single_phi_def): New. Return true if PHI has one def of the specified
3417 (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
3418 (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
3419 * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
3420 (struct stmt_ann_d): Operands field no longer require GTY().
3421 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
3422 * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
3423 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
3424 dump_replaceable_exprs, rewrite_trees): Use generic interface.
3425 * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
3426 Use use_operand_p instead of ssa_imm_use_t *.
3427 * tree-pretty-print.c (dump_vops): check if operands are active before
3428 dumping virtual operands.
3429 * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
3430 * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
3431 (ccp_fold): Use new interface.
3432 (ccp_visit_stmt): Remove unused variables and code.
3433 (convert_to_gimple_builtin): Insert statements before calling
3434 mark_new_vars_to_rename.
3435 * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
3436 (copy_prop_visit_cond_stmt): Use generic interface.
3437 * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
3438 annotation in table.
3439 (thread_across_edge): Use generic interface.
3440 (initialize_hash_element): Initialzie with stmt, not annotation.
3441 (eliminate_redundant_computations): Use generic interface.
3442 (record_equivalences_from_stmt): Pass stmt, not annotation.
3443 (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
3445 * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
3446 * tree-ssa-loop-ivopts.c (find_invariants_stmt,
3447 find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
3448 generic operand interface.
3449 * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
3451 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
3453 * tree-ssa-operands.c (struct opbuild_list_d): New. Operand build type.
3454 (build_defs, build_uses, build_v_may_defs, build_vuses,
3455 build_v_must_defs): Change type to struct opbuild_list_d.
3456 (ops_active): New. Operands active boolean.
3457 (operand_memory, operand_memory_index): New. Operand memory managers.
3458 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
3459 allocate_vuse_optype, allocate_v_must_def_optype): Delete.
3460 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
3461 Change from functions to static variable list heads.
3462 (opbuild_initialize_virtual): New. Initialize a virtual build list.
3463 (opbuild_initialize_real): New. Initialize a virtual build list.
3464 (opbuild_free): New. Free a build list.
3465 (opbuild_num_elems): New. Number of items in a list.
3466 (opbuild_append_real): New. Add a real (tree *) operand.
3467 (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
3468 (opbuild_first): New. Return first element index in a list.
3469 (opbuild_next): New. Return next element in a list.
3470 (opbuild_elem_real): New. Return real element.
3471 (opbuild_elem_virtual): New. Return virtual element.
3472 (opbuild_elem_uid): New. Return UID of virtual element.
3473 (opbuild_clear): New. Reset an operand list.
3474 (opbuild_remove_elem): New. Remove an element form a list.
3475 (ssa_operands_active): New. Return true if operand cache is active.
3476 (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
3477 (ssa_operand_alloc): New. Allocate memory from an operand chunk.
3478 (correct_use_link): Use use_operand_p.
3479 (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
3480 finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
3481 (cleanup_v_may_defs): Use new implmentation.
3482 (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
3484 (append_def, append_use, append_v_may_def, append_vuse,
3485 append_v_must_def): Call opbuild_append routine instead of using varray.
3486 (build_ssa_operands): Simplify to simply use stmt, don't maintain a
3487 global parse_old_ops variable.
3488 (free_ssa_operands): New implementation.
3489 (update_stmt_operands): Move. Change argument to build_ssa_operands.
3490 (copy_virtual_operands): Move. New generic implementation.
3491 (create_ssa_artficial_load_stmt): Move. New implementation.
3492 (swap_tree_operands): Update for new implementation.
3493 (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
3494 (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
3495 rather than a varray.
3496 (verify_imm_links): Use use_operand_p.
3497 (dump_immediate_uses_for): If the immediate use variable is a virtual
3498 variable, show the virtual ops in the stmt.
3499 * tree-ssa-operands.h (def_operand_p): No longer a structure.
3500 (NULL_DEF_OPERAND_P): Now a #define.
3501 (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
3502 vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
3503 (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
3504 mustdef_optype_d): New. Use Linked list representation.
3505 (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
3506 (struct ssa_operand_memory_d): New. Allocated Chunk node.
3507 (struct stmt_operands_d): Change to new pointers that are not GTY.
3508 (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
3509 STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
3510 SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
3511 STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
3512 SET_V_MUST_DEF_KILL): Delete.
3513 (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
3514 V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
3515 (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
3516 V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
3517 (enum ssa_op_iter_type): Operand iterator typechecking values.
3518 (struct ssa_operand_iterator_d): Use linked lists of operands.
3519 (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
3520 (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
3521 FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
3522 (FOR_EACH_PHI_ARG): New. Iterate over PHI arguments.
3523 (FOR_EACH_PHI_OR_STMT_USE): New. Iterate over PHI or stmt uses.
3524 (FOR_EACH_PHI_OR_STMT_DEF): New. Iterate over PHI or stmt defs.
3525 (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
3526 SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
3527 * tree-ssa-opfinalize.h: New. Function templates for expansion.
3528 (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
3529 alloc_vuse, and alloc_mustdef.
3530 (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
3531 finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
3532 and finalize_ssa_v_must_def_ops.
3533 * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
3534 (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
3536 (compute_avail): Use generic iterator interface.
3537 * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
3538 (stmt_makes_single_load, stmt_makes_single_store): Use
3540 * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
3541 (statement_sink_location): Use generic interface.
3542 * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
3543 (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
3544 reset the immediate use link nodes.
3545 (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
3546 * tree-ssanames.c (make_ssa_name): Use use_operand_p.
3547 * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
3548 (eliminate_tail_call): Use generic operand interface.
3549 * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
3550 (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
3552 * tree-vect-transform.c (update_vuses_to_preheader): Use generic
3554 * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
3555 * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
3557 (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
3558 Use statement pointer instead of vuse_optype. Use generic interface.
3559 * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
3560 (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
3561 * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
3562 (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
3563 * doc/tree-ssa.texi: Update documentation for operand interface.
3565 2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
3567 * config/darwin.c (machopic_define_symbol): Use gcc_assert or
3568 gcc_unreachable as appropriate.
3569 (machopic_function_base_name, machopic_indirect_data_reference,
3570 machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
3571 * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
3572 * config/rs6000/altivec.md (*mov<mode>_internal,
3573 build_vector_mask_for_load): Likewise.
3574 * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
3575 *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
3576 *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
3577 * config/rs6000/predicates.md (easy_fp_constant,
3578 logical_operand): Likewise.
3579 * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
3580 compute_save_world_info, rs6000_emit_prologue,
3581 rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
3582 * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
3585 2005-05-03 Uros Bizjak <uros@kss-loka.si>
3588 * convert.c (convert_to_integer): Convert ceil and floor in
3591 2005-04-29 Geoffrey Keating <geoffk@apple.com>
3594 * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
3595 define_insn_and_split. Split only when memory operand is
3596 offsettable. Use adjust_address rather than plus_constant.
3597 (floatunssidf2_internal): Likewise.
3598 (fix_truncdfsi2_internal): Split only when memory operand is
3599 offsettable. Use adjust_address rather than plus_constant.
3600 (fix_trunctfsi2_internal): Likewise.
3601 (floatsidf2_internal): Likewise.
3603 2005-05-02 Diego Novillo <dnovillo@redhat.com>
3605 * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
3606 (set_value_range_to_null): Likewise.
3607 (set_value_range_to_varying): New function. Use it in all
3608 call sites that used to call set_value_range (vr, VR_VARYING, ...).
3609 (extract_range_from_assert): If the integral type has a
3610 super-type, and LIMIT is not within MIN and MAX values of that
3611 type, set the resulting range to VR_VARYING.
3613 2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
3615 * config/mmix/mmix.opt: New file.
3616 * config/mmix/mmix.h: Move options-related comments to mmix.opt.
3617 (mmix_cc1_ignored_option): Don't declare.
3618 (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
3619 (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
3620 (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
3621 (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
3622 (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
3623 (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
3624 (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
3625 (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
3627 (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
3628 * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
3629 (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3631 2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
3634 * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
3635 * c-decl.c (current_function_prototype_built_in,
3636 current_function_prototype_arg_types): New.
3637 (merge_decls): Keep source location of prototype followed by
3638 nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
3639 (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
3640 (start_function): Always set current_function_prototype_locus,
3641 current_function_prototype_built_in and
3642 current_function_prototype_arg_types. Check for external
3643 prototype whether or not visible for external function and set
3644 current_function_prototype_arg_types accordingly.
3645 (store_parm_decls_oldstyle): Use
3646 current_function_prototype_arg_types for checking old-style
3647 definition against prototype. Give warnings only if
3648 current_function_prototype_built_in).
3650 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
3652 * ggc.h (ggc_alloc_zone_pass_stat): New macro.
3653 (ggc_alloc_zone_stat): Don't define.
3654 * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
3655 ggc_alloc_zone_pass_stat.
3656 * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
3657 * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
3658 (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
3660 2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
3662 * calls.c (expand_call): Handle current_function_pretend_args_size
3663 when checking for sibcalls.
3665 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3667 PR tree-optimization/21294
3668 * tree-vrp.c (vrp_expr_computes_nonzero): New.
3669 (extract_range_from_expr): Call vrp_expr_computes_nonzero.
3671 2005-05-02 Janis Johnson <janis187@us.ibm.com>
3674 * gcov-io.h: Declare gcov external functions hidden.
3676 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3678 * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
3679 record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
3680 Use VEC instead of VARRAY.
3683 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
3686 2005-05-02 Paolo Bonzini <bonzini@gnu.org>
3688 * c-common.c (resolve_overloaded_builtin): Forward to target
3689 hook for BUILT_IN_MD built-ins.
3690 * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
3691 for all types of built-in.
3692 * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New. Use it
3693 in the definition of the target hooks struct.
3694 * target.h (struct gcc_target): Add resolve_overloaded_builtin.
3695 * config/rs6000/altivec.h: Rewritten.
3696 * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
3697 altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
3698 rs6000_builtin_type, rs6000_builtin_type_compatible,
3699 altivec_overloaded_builtins, rs6000_builtin_type,
3700 rs6000_builtin_type_compatible): New.
3701 * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
3703 (def_builtin): Turn into a function. Check for duplicates and store
3704 the builtin into rs6000_builtin_decls.
3705 (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
3706 bdesc_1arg): Add overloaded builtins.
3707 (altivec_expand_builtin): Check for unresolved overloaded builtins,
3708 do not support ALTIVEC_COMPILETIME_ERROR.
3709 (rs6000_init_builtins): Add opaque 128-bit vector, and internal
3710 nodes to represent front-end types.
3711 (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
3712 with opaque arguments and/or return values.
3713 * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
3714 ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
3715 (rs6000_builtin_type_index): New.
3716 (is_ev64_opaque_type): Rename to...
3717 (rs6000_is_opaque_type): ... this.
3718 (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
3721 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3723 * function.c (reorder_blocks, reorder_blocks_1): Use VEC
3726 2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
3727 Bernd Schmidt <bernd.schmidt@analog.com>
3729 * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
3730 print_address_operand, print_operand, legitimize_pic_address,
3731 asm_conditional_branch, bfin_gen_compare, output_push_multiple,
3732 output_pop_multiple): Use gcc_assert or gcc_unreachable as
3734 * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
3736 2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
3738 * doc/passes.texi: Document vectorization pass.
3740 2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
3742 * tree-scalar-evolution.c (get_exit_conditions_rec,
3743 select_loops_exit_conditions,
3744 number_of_iterations_for_all_loops,
3745 analyze_scalar_evolution_for_all_loop_phi_nodes,
3746 scev_analysis): Use VEC instead of VARRAY.
3748 2005-05-02 Michael Matz <matz@suse.de>
3751 * c-common.c (c_common_nodes_and_builtins): Create global null_node.
3752 (warn_strict_null_sentinel): Define.
3753 (check_function_sentinel): Check for null_node as valid sentinel too.
3754 * c-common.h (c_tree_index): Added CTI_NULL.
3755 (null_node) Define global_tree[CTI_NULL].
3756 (warn_strict_null_sentinel): Declare.
3757 * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
3758 * c.opt: (Wstrict-null-sentinel): New C++ option.
3759 * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
3761 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
3763 * gimplify.c (gimplify_compound_lval): Use VEC instead of
3766 * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
3768 * dwarf2out.c (decl_scope_table, push_decl_scope,
3769 pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
3772 2005-05-01 Mark Mitchell <mark@codesourcery.com>
3775 * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
3777 * doc/cpp.texi (__DEPRECATED): Document.
3778 (__EXCEPTIONS): Likewise.
3779 (__GXX_WEAK__): Likewise.
3781 * function.c (INVOKE__main): Do not define.
3782 (expand_main_function): Check HAS_INIT_SECTION when determining
3783 whether or not to call __main.
3785 2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
3787 * tree-ssa-loop-ivopts.c: Fix a comment typo.
3789 2005-01-05 Paul Brook <paul@codesourcery.com>
3791 * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
3792 (INITIALIZE_TRAMPOLINE): Use it.
3793 * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
3794 * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
3795 * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
3797 2005-05-01 Gerald Pfeifer <gerald@pfeifer.com>
3799 * doc/install.texi (Specific): Omit dots in the @anchors names
3800 for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
3801 Omit underscores for x86_64-*-* and the "all ELF targets" entry.
3803 2005-05-01 Zdenek Dvorak <dvorakz@suse.cz>
3805 PR tree-optimization/18316
3806 PR tree-optimization/19126
3807 * tree.c (build_int_cst_type): Avoid shift by size of type.
3808 * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
3810 * tree-scalar-evolution.h (simple_iv): Declaration changed.
3811 * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
3813 (dump_cand): Dump depends_on information.
3814 (determine_biv_step): Add argument to simple_iv call.
3815 (contains_abnormal_ssa_name_p): Handle case expr == NULL.
3816 (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
3818 (add_candidate_1): Record depends_on for candidates.
3819 (tree_int_cst_sign_bit, constant_multiple_of): New functions.
3820 (get_computation_at, get_computation_cost_at, may_eliminate_iv):
3821 Handle ivs with nonconstant step.
3822 (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
3823 (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
3824 (create_new_iv): Unshare the step before passing it to create_iv.
3825 (free_loop_data): Free cand->depends_on.
3826 (build_addr_strip_iref): New function.
3827 (find_interesting_uses_address): Use build_addr_strip_iref.
3828 (strip_offset_1): Split the recursive part from strip_offset.
3829 Strip constant offset component_refs and array_refs.
3830 (strip_offset): Split the recursive part to strip_offset_1.
3831 (add_address_candidates): Removed.
3832 (add_derived_ivs_candidates): Do not use add_address_candidates.
3833 (add_iv_value_candidates): Add candidates with stripped constant
3834 offset. Consider all candidates with initial value 0 important.
3835 (struct affine_tree_combination): New.
3836 (aff_combination_const, aff_combination_elt, aff_combination_scale,
3837 aff_combination_add_elt, aff_combination_add,
3838 tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
3839 fold_affine_sum): New functions.
3840 (get_computation_at): Use fold_affine_sum.
3841 * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
3842 * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
3845 2005-04-30 Michael Matz <matz@suse.de>
3847 * config/i386/i386.md (movmemsi): Also active when
3848 TARGET_INLINE_ALL_STRINGOPS.
3850 2005-04-30 Eric Botcazou <ebotcazou@libertysurf.fr>
3853 * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3855 2005-04-30 Paul Brook <paul@codesourcery.com>
3857 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3859 * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
3860 * config/arm/ieee754-sf.S: Ditto.
3861 * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
3862 (FUNC_ALIAS): Use .thumb_set for thumb routines.
3864 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3866 * tree-ssanames.c: Fix a comment typo.
3867 * doc/options.texi: Fix a typo.
3869 2005-04-30 Nathan Sidwell <nathan@codesourcery.com>
3871 * config/h8300/h8300.c (byte_reg): Use gcc_assert and
3872 gcc_unreachable as appropriate.
3873 (split_adds_subs, cond_string, print_operand,
3874 h8300_initial_elimination_offset, h8300_classify_operand,
3875 h8300_unary_length, h8300_short_immediate_length,
3876 h8300_bitfield_length, h8300_binary_length,
3877 h8300_insn_length_from_table, compute_mov_length, output_plussi,
3878 compute_plussi_length, compute_plussi_cc, output_logical_op,
3879 compute_logical_op_length, compute_logical_op_cc,
3880 output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
3881 output_a_shift, compute_a_shift_length, compute_a_shift_cc,
3882 output_a_rotate, compute_a_rotate_length, fix_bit_operand,
3883 h8300_regs_ok_for_stm): Likewise.
3884 * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
3885 monitor_prologue): Likewise.
3887 2005-04-30 Kazu Hirata <kazu@cs.umass.edu>
3889 * loop-invariant.c (invariants, create_new_invariant,
3890 get_inv_cost, best_gain_for_invariant,
3891 find_invariants_to_move, move_invariants,
3892 init_inv_motion_data, free_inv_motion_data): Use VEC instead
3895 2005-04-29 Richard Henderson <rth@redhat.com>
3897 * function.c (instantiate_decls): Remove valid_only argument.
3898 (instantiate_decls_1, instantiate_decl): Likewise.
3899 (instantiate_virtual_regs_1): Delete.
3900 (instantiate_virtual_regs_lossage): Delete.
3901 (instantiate_virtual_regs_in_rtx): New.
3902 (safe_insn_predicate): New.
3903 (instantiate_virtual_regs_in_insn): New.
3904 (instantiate_virtual_regs): Update to match all that. Only run
3905 instantiate_decls once.
3907 2005-04-29 Richard Henderson <rth@redhat.com>
3908 Daniel Jacobowitz <dan@codesourcery.com>
3910 * gengtype.c (write_func_for_structure): Split out ...
3911 (output_type_enum): ... new function. Fix thinko accessing
3912 TYPE_PARAM_STRUCT data.
3914 2005-04-29 Tom Tromey <tromey@redhat.com>
3916 * tree.c (build_block): Removed unused 'tags' argument.
3917 * tree.h (build_block): Removed argument.
3919 2005-04-29 Michael Matz <matz@suse.de>
3921 PR rtl-optimization/21144
3922 * postreload.c (reload_cse_move2add): Check for VOIDmode.
3924 2005-04-29 Bob Wilson <bob.wilson@acm.org>
3926 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
3927 flag_reorder_blocks.
3929 2005-04-28 Kazu Hirata <kazu@cs.umass.edu>
3931 PR tree-optimization/21030
3932 * tree-vrp.c (adjust_range_with_scev): Do not create invalid
3933 ranges where VR->MAX is smaller than VR->MIN.
3935 2005-04-29 Devang Patel <dpatel@apple.com>
3937 PR tree-optimization/21272
3938 PR tree-optimization/21266
3939 * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
3941 2005-04-29 Kazu Hirata <kazu@cs.umass.edu>
3943 * tree-flow-inline.h: Fix a comment typo.
3944 * doc/tree-ssa.texi: Fix a typo.
3946 * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
3948 2005-04-29 Nathan Sidwell <nathan@codesourcery.com>