OSDN Git Service

dbf8fc49b6838677ef7649ae924cd0da6b5f40f5
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-26  Jakub Jelinek  <jakub@redhat.com>
2
3         PR target/21716
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
7         from comments.
8
9 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
10
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.
14
15 2005-05-25  Roger Sayle  <roger@eyesopen.com>
16
17         PR middle-end/21709
18         * fold-const.c (const_binop): Check for division by zero during
19         complex division.
20
21 2005-05-26  Ian Lance Taylor  <ian@airs.com>
22
23         * reload1.c (verify_initial_elim_offsets): Add braces to avoid
24         having a declaration after a statement.
25
26 2005-05-26  Richard Sandiford  <rsandifo@redhat.com>
27
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"
36         with "var_type".
37         * opts.c (handle_option, option_enabled): Update after above name
38         change.  Cast flag_var before using it.  Handle CLVC_STRING.
39         
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
49         variable to 32.
50
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
55         and initialize them.
56
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.
64
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
68         them.
69
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().
73
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().
78
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.
89
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
100         Var()s.
101
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().
109
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
117         and Init()s.
118
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.
125
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().
129
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().
134
135 2005-05-25  Roger Sayle  <roger@eyesopen.com>
136
137         * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
138         call to convert_to_integer by building the NOP_EXPR directly.
139
140 2005-05-25  Richard Sandiford  <rsandifo@redhat.com>
141
142         * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
143
144 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
145             Jeff Law  <law@redhat.com>
146
147         * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
148         constant and side_effects of the ADDR_EXPR are consistent.
149
150         * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
151         appropriately around calls to recompute_tree_invarant_for_addr_expr.
152
153 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
154
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.
161
162 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
163
164         * reload1.c (verify_initial_elim_offsets): Return boolean status
165         instead of aborting.
166         (reload): Adapt verify_initial_elim_offsets call site.  Restart
167         main loop if some initial elimination offsets changed.
168
169 2005-05-25  Adam Nemet  <anemet@lnxw.com>
170
171         * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
172         of -mno-svr4-struct-return.
173
174 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
175
176         Fix PR tree-optimization/21705
177         
178         * tree-ssa-pre.c (in_fre): New static variable.
179         (create_value_expr_from): Recursively value number reference ops
180         in argument lists.
181         (can_value_number_call): Temporary restrict only exists for
182         PRE, not FRE.
183
184 2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
185
186         * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
187         sizeof (bitmap *) with sizeof (bitmap).
188
189 2005-05-25  Daniel Berlin <dberlin@dberlin.org>
190
191         * lambda-code.c (perfect_nestify): Call update_stmt on the exit
192         condition.
193
194 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
195
196         * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
197         hook_bool_rtx_true.
198
199 2005-05-25  Jan Hubicka  <jh@suse.cz>
200
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
211         inlining.
212         (ipa_passes): Initialize bitmaps.
213
214 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
215
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.
227
228 2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
229
230         PR target/21412
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.
248
249 2005-05-24  DJ Delorie  <dj@redhat.com>
250         
251         * common.opt (-Wattributes): New.  Default true.
252         * doc/invoke.texi (-Wno-attributes): Document.
253         
254         * attribs.c (decl_attributes): Move warning control from if() to
255         warning(OPT_*).
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.
326
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.
347
348         * c.opt (-Wreturn-type): Add Var(warn_return_type).
349         * flags.h (warn_return_type): Remove.
350         * toplev.c (warn_return_type): Likewise.
351
352 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
353
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.
358
359 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
360
361         * configure: Regenerate.
362
363 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
364
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
379         warnings.
380         (build_binary_op): Call objc_compare_types() before issuing
381         pointer mismatch warnings; adjust calls to
382         comp_target_types().
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.
387
388 2005-05-24  Paolo Carlini  <pcarlini@suse.de>
389
390         * config/ia64/ia64intrin.h: Define nothing for C++:
391         overloaded builtins have been ported to C++.
392
393 2005-05-24  Jeff Law  <law@redhat.com>
394
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.
406
407 2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
408
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.
412
413 2005-05-24  Jeff Law  <law@redhat.com>
414
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
418         needed.
419
420 2005-05-24  Nick Clifton  <nickc@redhat.com>
421
422         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
423         __NO_FPRS__ when 'f' class registers will not be available. 
424
425 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
426
427         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
428         nothing was done.
429         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
430         nothing then FAIL.
431         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
432         prototype.
433
434 2005-05-23  Jeff Law  <law@redhat.com>
435
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.
444
445 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
446
447         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
448         saving less registers than the replacement.
449
450 2005-05-23  Jan Hubicka  <jh@suse.cz>
451
452         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
453
454 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
455
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.
465
466 2005-05-23  Jan Beulich  <jbeulich@novell.com>
467
468         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
469         missing return statement.
470
471 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
472
473         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
474         emit_move_insn for moves to TFmode stack slots.
475
476 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
477
478         * tree-stdarg.c (execute_optimize_stdarg): Handle references
479         to va_list of the form &va[0].
480
481 2005-05-20  Jan Hubicka  <jh@suse.cz>
482
483         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
484         * genemit.c (main): Make insn-emit to include basic-block.h too.
485
486 2005-05-20  Jan Hubicka  <jh@suse.cz>
487
488         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
489
490 2005-05-19  Richard Henderson  <rth@redhat.com>
491
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.
501
502 2005-05-19  Richard Henderson  <rth@redhat.com>
503
504         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
505
506 2005-05-19  Richard Henderson  <rth@redhat.com>
507
508         * config/i386/sse.md (mulv4si3): Use all register inputs.
509         (mulv2di3): Likewise.
510
511 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
512
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.
516
517 2005-05-19  Jan Hubicka  <jh@suse.cz>
518
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):
528         Update prototypes.
529         * cgraphunit.c: Kill now redundant inlining comment.
530         (cgraph_create_edges): Make static, maintain current basic block;
531         fix pasto.
532         (record_call_1): Fill in new fields.
533         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
534         cgraph_clone_node.
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.
540
541 2005-05-19  Nick Clifton  <nickc@redhat.com>
542
543         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
544         new rs6000_explicit_options structure.
545
546 2005-05-19  Richard Henderson  <rth@redhat.com>
547
548         PR target/21390
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.
554
555 2005-05-19  Richard Henderson  <rth@redhat.com>
556
557         PR target/21657
558         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
559         memory indirection in local-dynamic case.
560
561 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
562             Bernd Schmidt  <bernd.schmidt@analog.com>
563
564         * config/bfin/bfin.c (branch_dest): Add comment why it's
565         necessary.
566         * config/bfin/bfin.md (attr "length" default): Change the offset of
567         forward conditional branch of length 4 from 4096 to 4092.
568
569 2005-05-19  Jan Beulich  <jbeulich@novell.com>
570
571         * unwind-compat.c: Include tconfig.h and tsystem.h.
572         * unwind-dw2-fde-compat.c: Likewise.
573
574 2005-05-18  Richard Henderson  <rth@redhat.com>
575
576         PR 21541
577         * ifcvt.c (noce_process_if_block): Avoid conversion when the
578         memory destination is readonly.
579
580 2005-05-18  Richard Henderson  <rth@redhat.com>
581
582         PR 21541
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.
588
589         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
590
591 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
592
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.
596
597 2005-05-18  Richard Henderson  <rth@redhat.com>
598
599         * config.gcc (powerpc-*-linux*): Include linux64.opt when
600         including linux64.h.
601
602 2005-05-18  Richard Henderson  <rth@redhat.com>
603
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.
607
608 2005-05-18  Devang Patel  <dpatel@apple.com>
609
610         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
611         the mask end.
612         
613 2005-05-18  Richard Henderson  <rth@redhat.com>
614
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
620         edges were removed.
621
622 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
623
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.
628         (no_checksum): New.
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
636         check checksum.
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
654         be warnings.
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.
658
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.
662         
663         * tree-cfg.c (pass_remove_useless): This pass works on trees.
664
665 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
666
667         * tree.c (build1_stat): Don't try to handle two-operand
668         tree codes.
669
670 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
671
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
711         SUPPORT_SH4_NOFPU.
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
733         settings.
734         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
735         * config/sh/sh.opt: New file.
736
737 2005-05-18  Richard Henderson  <rth@redhat.com>
738
739         PR target/21632
740         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
741         small_addr_symbolic_operand.
742
743 2005-05-18  Jeff Law  <law@redhat.com>
744
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.
748
749 2005-05-18  Ian Lance Taylor  <ian@airs.com>
750
751         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
752         obstack_grow.
753
754 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
755
756         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
757
758 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
759         
760         Fix PR tree-optimization/21407
761
762         * tree-ssa-operands.c (note_addressable): Change
763         COMPONENT_REF handling in response to aliasing
764         discussion.
765
766 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
767
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.
773
774 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
775
776         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
777         is okay too.
778
779 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
780
781         * timevar.def (TV_SCEV_CONST): New timevar.
782         * tree-optimize.c (init_tree_optimization_passes): Add
783         pass_scev_cprop.
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):
788         New.
789         * tree-cfg.c (replace_uses_by): Export.
790         * tree-flow.h (replace_uses_by): Declare.
791
792 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
793             Mike Stump  <mrs@apple.com>
794
795         Yet more Objective-C++...
796
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.
803
804         * c-common.h (objc_rewrite_function_call): Add.
805         * c-typeck.c (build_function_call): Allow objc to rewrite
806         FUNCTION_DECLs.
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.
812         (fobjc-gc): 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.
822
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
826         that are already ok.
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.
835         
836 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
837
838         * config/sparc/sparc.md (movhi): Do not test constness
839         of operand #1 twice.
840         (movsi): Likewise.
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.
847
848 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
849
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.
858
859 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
860
861         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
862         merged block.
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.
869
870 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
871
872         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
873         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
874         const.
875
876 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
877
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.
890
891 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
892
893         * tree-into-ssa.c (update_ssa): Clean up by shortening the
894         live range of DFS.
895
896 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
897
898         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
899         define_code_attr.
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.
910
911 2005-05-17  Roger Sayle  <roger@eyesopen.com>
912
913         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
914
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>
919
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
933         pointer-set.
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.
943         (copy_bb): New.
944         (copy_edges_for_bb): Likewise.
945         (remap_decl_1): New.
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
951         gimplified.
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
962         datastructures.
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
973
974 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
975
976         * unwind-dw2-fde-darwin.c: Include tsystem.h.
977
978 2005-05-17  Jeff Law  <law@redhat.com>
979
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
988         complete.
989
990 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
991
992         * unwind-dw2-fde-glibc.c (base_from_cb_data,
993         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
994         appropriate.
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.
1006
1007 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
1008
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.
1018
1019 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
1020
1021         * configure.ac: Remove spaces around assignment to
1022         gcc_cv_ld_sysroot.
1023         * configure: Regenerated.
1024
1025 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
1026
1027         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
1028         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
1029         aix_struct_ret.
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.
1036
1037 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1038
1039         * config/bfin/bfin.md (eh_return): Add missing DONE.
1040
1041 2005-05-17  Ian Lance Taylor  <ian@airs.com>
1042
1043         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
1044         field.
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
1050         callers.
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.
1054
1055 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
1056
1057         * tree-ssa-math-opts.c: New file.
1058
1059 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
1060
1061         * tree-ssa-math-opts.c: New file.
1062
1063 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
1064
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.
1072
1073 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
1074
1075         PR middle-end/21595
1076         * builtins.c (fold_builtin_constant_p): Handle
1077         &"string cst"[0] as constant.
1078
1079 2005-05-17  Richard Henderson  <rth@redhat.com>
1080
1081         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
1082
1083 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
1084
1085         PR middle-end/21492
1086         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
1087         src2 if src2 has been split.
1088
1089         PR tree-optimization/21610
1090         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
1091         returning DECL, call unshare_expr.
1092
1093 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
1094
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,
1100         code-attrs.
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
1104         "*cmp_swapexthi".
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
1109         "*mov_sidehi_biap".
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
1114         "*mov_sidehi_mem".
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
1122         "*ext_sidehisi".
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
1128         "zero_extendqisi2".
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
1132         "*op_sidesi".
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
1142         "*extophisi_side".
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
1149         "*extophisi_swap".
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
1154         "umulsi3_highpart".
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
1167         "*ashlhi_lowpart".
1168         ("abs<mode>2"): Replace "abshi2" and "absqi2".
1169         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
1170         "bleu".
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
1175         "*bleu_reversed".
1176         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
1177         "*ble_reversed".
1178         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
1179         "*blt_reversed".
1180         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
1181         "sne".
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].
1188
1189 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
1190
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.
1199
1200 2005-05-16  Richard Henderson  <rth@redhat.com>
1201
1202         * config/i386/sse.md (mulv4si3): New.
1203
1204 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
1205
1206         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
1207         tests for noncanonical versions of reg+constant and
1208         reg+reg*{1,2,4}.
1209
1210 2005-05-16  Richard Henderson  <rth@redhat.com>
1211             Steven Bosscher <stevenb@suse.de>
1212
1213         PR tree-opt/21399
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.
1222
1223 2005-05-16  Caroline Tice  <ctice@apple.com>
1224
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
1229         struct field names.
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
1236         if appropriate.
1237         
1238 2005-05-16  Roger Sayle  <roger@eyesopen.com>
1239
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.
1243
1244 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
1245
1246         * tree-ssa-pre.c: Fix a comment typo.
1247
1248 2005-05-16  Richard Henderson  <rth@redhat.com>
1249
1250         PR target/21556
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.
1256
1257 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
1258
1259         * optc-gen.awk: Include intl.h after the externally-provided files.
1260
1261 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
1262
1263         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
1264         folding a COND_EXPR_COND in a nondestructive manner.
1265
1266 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
1267
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
1271         selection.
1272          
1273 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
1274
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.
1279
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)*.
1284
1285 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
1286
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.
1295
1296 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
1297
1298         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
1299
1300 2005-05-15  Roger Sayle  <roger@eyesopen.com>
1301
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.
1306
1307 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1308
1309         PR target/21551
1310         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
1311
1312 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
1313             
1314         Fix PR tree-optimization/21576
1315         
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
1332         to need vops.
1333         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
1334         (set_value_handle): Ditto.
1335         (get_value_handle): Ditto.
1336
1337 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
1338
1339         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
1340
1341 2005-05-15  Andreas Jaeger  <aj@suse.de>
1342
1343         * gcc.c (pfatal_pexecute): Remove unused local function.
1344
1345 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
1346
1347         * optc-gen.awk: Remove excess indentation.
1348         * opth-gen.awk: Likewise.
1349
1350 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1351
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.
1355
1356 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1357
1358         * tree-optimize.c (init_tree_optimization_passes): Move
1359         pass_cd_dce in place of the last pass_dce.
1360
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.
1365
1366 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
1367             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1368
1369         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
1370         gcc_assert().
1371         (rev_cond_name) Likewise.
1372         (vax_float_literal) Likewise.
1373         * config/vax/vax.md: Likewise.
1374
1375 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1376
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.
1380
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
1384         whitespace.
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.
1388
1389         * config/vax/elf.h: Update whitespace.
1390
1391 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
1392
1393         Revert
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.
1397
1398 2005-05-14  Jan Hubicka  <jh@suse.cz>
1399
1400         Patch by Richard Henderson:
1401         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
1402         Handle RESX expressions properly.
1403
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.
1407
1408         * tree-cfg.c (execute_warn_function_return): Break out noreturn
1409         warning too..
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
1415         return warnings.
1416
1417 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1418
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.
1424
1425 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
1426
1427         * fold-const.c (div_if_zero_remainder): New function.
1428         (try_move_mult_to_index): Use it.
1429
1430 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1431
1432         * tree-eh.c (leh_tf_state): Change the type of dest_array to
1433         VEC(tree,heap)*.
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.
1437
1438 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
1439
1440         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
1441         comment regarding defined register classes.
1442         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
1443
1444 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1445
1446         * tree-optimize.c (init_tree_optimization_passes): Move
1447         pass_merge_phi before the first pass_dominator.
1448
1449 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
1450
1451         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
1452         unconditional.
1453
1454 2005-05-13  Josh Conner  <jconner@apple.com>
1455
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.
1462
1463 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
1464
1465         * config/rs6000/sysv4.opt (mlittle): Handle.
1466
1467         * config/rs6000/rs6000.c (rs6000_handle_option): Set
1468         target_flags_explicit when appropriate.
1469
1470 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1471
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.
1476
1477 2005-05-13  Adam Nemet  <anemet@lnxw.com>
1478
1479         * doc/invoke.texi (Debugging Options): Option
1480         -fdump-translation-unit only works with C++ now.
1481
1482 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1483
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
1492         CRIS_ASSERT.
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.
1504
1505 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1506
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.
1510
1511         PR middle-end/20793:
1512         * integrate.c (allocate_initial_values): Update register liveness
1513         information.
1514
1515 2005-05-13  Josh Conner  <jconner@apple.com>
1516
1517         * arm.c (arm_return_in_memory): Add handling for vector return types.
1518
1519 2005-05-13  David Ung  <davidu@mips.com>
1520
1521         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
1522         name.
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
1526         description.
1527
1528 2005-05-13  Jan Hubicka  <jh@suse.cz>
1529
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.
1533
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.*
1539
1540 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1541
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
1545         for a dead insn.
1546         (mark_set_1): Emit a clobber when we are about to delete a dead insn
1547         that kills a live register.
1548
1549 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
1550
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".
1555
1556 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
1557
1558         * c-format.c (check_format_arg): Handle string literals of
1559         the form &"string"[offset].
1560
1561         * g++.dg/warn/format4.C: New testcase.
1562
1563 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
1564
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.
1572
1573 2005-05-13  Richard Henderson  <rth@redhat.com>
1574
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.
1578
1579 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1580
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.
1584
1585 2005-05-13  Jan Hubicka  <jh@suse.cz>
1586
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.
1593
1594 2005-05-12  Steven Bosscher <stevenb@suse.de>
1595
1596         Fix PR tree-optimization/21520
1597         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1598         to attempt to fold constants.
1599
1600 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1601
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.
1606
1607 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
1608
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
1614         list.
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.
1618
1619 2005-05-12  Steven Bosscher  <stevenb@suse.de>
1620             Stuart Hastings <stuart@apple.com>
1621             Jan Hubicka  <jh@suse.cz>
1622
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):
1628         Declare.
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
1632         when needed.
1633         * tree-cfg.c (label_to_block_fn): Deal with cases where
1634         label was never insterted into code.
1635
1636 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
1637
1638         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1639
1640 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
1641
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.
1645
1646 2005-05-12  Ian Lance Taylor  <ian@airs.com>
1647
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.
1652
1653 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1654
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.
1670
1671 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1672
1673         PR target/21501
1674         * arm.c (arm_gen_constant): Sign-extend intermediate values when
1675         synthesizing a constant of the difference of two immediates.
1676
1677 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1678
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
1682         primitives.
1683
1684 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1685
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.
1689
1690 2005-05-11  Richard Henderson  <rth@redhat.com>
1691
1692         PR target/21412
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,
1713         (load_dtpmod): New.
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.
1727
1728 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1729
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.
1734
1735 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1736
1737         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1738
1739 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1740
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.
1744
1745 2005-05-11  Jan Hubicka  <jh@suse.cz>
1746
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.
1771
1772 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1773
1774         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1775         is needed.
1776
1777 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1778
1779         * fold-const.c, libgcov.c: Fix comment typos.
1780
1781         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1782         redundant code.
1783
1784 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
1785
1786         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1787         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1788         default definition.
1789         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1790
1791 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1792
1793         PR bootstrap/21481
1794         * crtstuff.c: Include auto-host.h again, for now.
1795
1796 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1797
1798         * config/mips/24k.md: Remove trailing whitespace.
1799
1800 2005-05-11  David Ung  <davidu@mips.com>
1801
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.
1825
1826 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
1827
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
1845         suitably aligned.
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.
1849
1850 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
1851
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.
1860
1861 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1862
1863         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1864
1865 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1866
1867         PR middle-end/19807
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.
1877
1878 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1879
1880         * fold-const.c (fold_indirect_ref_1): Avoid removing
1881         NOP_EXPRs with type qualifiers like const.
1882
1883 2005-05-11  Richard Henderson  <rth@redhat.com>
1884
1885         PR c/21502
1886         * c-decl.c (finish_decl): Propagate the completed array type of
1887         a global variable into the binding.
1888
1889 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
1890
1891         * Makefile.in (gtype-desc.o, build/genautomata.o)
1892         (build/varray.o): Depend on $(VARRAY_H).
1893
1894 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
1895
1896         * tree-optimize.c (init_tree_optimization_passes): Re-organize
1897         optimization passes to do an initial batch of scalar cleanups.
1898
1899 2005-05-10  Ian Lance Taylor  <ian@airs.com>
1900
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
1907         all callers.
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.
1916
1917 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1918
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.
1924
1925 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1926
1927         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1928         function.
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):
1936         Add prototype.
1937
1938 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1939
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.
1943
1944 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1945
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
1949         shape.
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):
1957         New functions.
1958         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1959         (determine_lsm_loop): Rewritten.
1960         (determine_lsm): Do not set stmt uids.
1961
1962 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1963
1964         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1965         letters.
1966
1967 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1968
1969         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1970         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1971         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1972
1973 2005-05-10  Jeff Law  <law@redhat.com>
1974
1975         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1976         thread_across_edge for any abnormal edges.
1977
1978 2005-05-10  Richard Henderson  <rth@redhat.com>
1979
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.
1991
1992 2005-05-10  Richard Henderson  <rth@redhat.com>
1993
1994         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
1995         before comparing it for success.
1996
1997 2005-05-10  Richard Henderson  <rth@redhat.com>
1998
1999         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
2000         no return value pattern.
2001
2002 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
2003             H.J. Lu  <hongjiu.lu@intel.com>
2004
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
2008         file name.
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.
2016
2017 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2018
2019         * config/sparc/sparc.c (mem_min_alignment): Do not rely
2020         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
2021
2022 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
2023
2024         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
2025         case code to avoid one move instruction.
2026         (__umodsi3, __modsi3): Merge duplicated code sequences.
2027
2028 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
2029
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.
2033
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.
2040
2041 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
2042
2043         PR c/17913
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.
2048
2049 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
2050
2051         PR c/21342
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.
2058
2059 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
2060
2061         * crtstuff.c: Revert part of 2005-05-08 Change.
2062         (IN_LIBGCC2): Define.
2063
2064 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2065
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.
2111
2112 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
2113
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.
2122
2123 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
2124
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
2129         instead of VARRAY.
2130
2131 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
2132
2133         PR other/21052
2134         * doc/extend.texi (Type Attributes): Correct example syntax.
2135
2136 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
2137
2138         PR c/21160
2139         * doc/invoke.texi (-Wuninitialized): Update documentation.
2140
2141 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
2142
2143         * arm.c (const_ok_for_arm): Use a faster algorithm.
2144
2145 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
2146
2147         PR target/21477
2148         * config/rs6000/rs6000.md (add_op2): New.
2149         (add<mode>3): Use it.
2150
2151 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
2152
2153         * arm.c (arm_gen_constant): Add new heuristic for generating
2154         constant integers that can be expressed as the difference of two
2155         valid immediates.
2156
2157 2005-05-09  Roger Sayle  <roger@eyesopen.com>
2158
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.
2164
2165 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
2166
2167         PR 18655
2168         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
2169         before outputting DWARF_FRAME_RETURN_COLUMN.
2170
2171 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2172
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.
2196
2197 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2198
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.
2209
2210 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2211
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
2218         into 'bool'.
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.
2232
2233 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2234
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.
2266
2267 2005-05-09  Steven Bosscher  <stevenb@suse.de>
2268
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.
2272
2273         * gcse.c (one_cprop_pass): Fix typos in dumps.
2274
2275         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
2276
2277 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2278
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>
2283         CC_REGNUM)'.
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
2287         REG_SC)'.
2288
2289 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2290
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.
2297
2298 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2299
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.
2340
2341 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2342
2343         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
2344         attribute names.
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'
2349         attribute names.
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
2366         'type' value.
2367         ("*divsf3"): Additionally rename second pattern to
2368         "*divsf3_ibm".
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
2376         "*addsf3_ibm".
2377
2378 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2379
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.
2386
2387 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2388
2389         * config/s390/s390.md: ("DSI", "SCOND"): New mode
2390         macros.
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.
2406
2407 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2408
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.
2418
2419 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2420
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.
2425
2426 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2427
2428         * config/s390/s390.md: ("INT"): New mode macro.
2429         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
2430         Merge.
2431
2432 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2433
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.
2440
2441 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2442
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.
2450
2451 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2452
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.
2461
2462 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2463
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.
2473
2474 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
2475
2476         PR middle-end/21237
2477         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2478         to NE_EXPR case.
2479
2480 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2481
2482         * config/ia64/ia64.c: Fix a comment typo.
2483
2484 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
2485
2486         PR target/21397
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.
2490
2491 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2492
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.
2499
2500 2005-05-09  David Ung  <davidu@mips.com>
2501
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
2504         processor family.
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
2513         setup cnv_mode.
2514         * config/mips/24k.md: New file, contains 24k DFA pipeline
2515         description.
2516
2517 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2518
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.
2538
2539 2005-05-08  Roger Sayle  <roger@eyesopen.com>
2540
2541         PR inline-asm/8788
2542         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2543         operands.
2544
2545 2005-05-08  Richard Henderson  <rth@redhat.com>
2546
2547         * config/alpha/alpha.c (adjust_address): Fix typo last change.
2548
2549 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2550
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.
2553
2554 2005-05-08  Steven Bosscher  <stevenb@suse.de>
2555             Kazu Hirata  <kazu@cs.umass.edu>
2556
2557         PR tree-optimization/14841, tree-optimization/15838
2558         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2559         (evaluate_stmt): Call it.
2560
2561 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
2562
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.
2566
2567 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2568
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.
2577
2578 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2579
2580         PR target/21281
2581         * config/m68hc11/predicates.md (splitable_operand): An immediate is
2582         allowed.
2583
2584 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2585
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
2588         bset and bclr.
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
2599         68HC12.
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
2603         for 68HC11.
2604         ("*movhi_68hc12"): Handle movhi_const0.
2605         ("*subhi3", "subqi3"): Use general_operand for operand 1.
2606         ("*subhi3_zext"): Likewise.
2607
2608 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2609
2610         PR target/19051
2611         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2612         operand 1 and fix constraints.
2613         ("mulqihi3"): Use general_operand for operand 2.
2614
2615 2005-05-08  Julian Brown  <julian@codesourcery.com>
2616             H.J. Lu  <hongjiu.lu@intel.com>
2617             Paul Brook  <paul@codesourcery.com>
2618
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
2627         HAVE_COMDAT_GROUP.
2628         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2629         available.
2630
2631 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2632
2633         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2634         instead of VARRAY.
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.
2639
2640 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2641
2642         PR target/16925
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.
2647
2648 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2649             Paolo Bonzini  <bonzini@gnu.org>
2650
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
2658         tconfig.h.
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.
2667
2668 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2669             Falk Hueffner  <falk@debian.org>
2670
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.
2699
2700 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2701
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.
2718
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.
2726
2727 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2728
2729         PR target/21416
2730         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2731         comparisons.
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>.
2735
2736 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2737
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.
2743
2744 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2745
2746         * except.c (eh_status): Change the type of ttype_data to
2747         VEC(tree,gc)*.
2748         (add_ttypes_entry, assign_filter_values,
2749         output_function_exception_table): Use VEC instead of VARRAY.
2750
2751 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2752
2753         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2754
2755 2005-05-07  Paul Brook  <paul@codesourcery.com>
2756
2757         * Makefile.in: Fix dependencies.
2758         (GCOV_IO_H, VARRAY_H): Set.
2759
2760 2005-05-07  Anthony Green  <green@redhat.com>
2761
2762         PR bootstrap/21403
2763         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2764         x$STMP_FIXPROTO test.
2765         * configure: Rebuilt.
2766
2767 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2768
2769         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2770         inappropriate feature test macros if flag_iso.
2771
2772 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2773
2774         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2775
2776 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
2777
2778         PR target/21441
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.
2785
2786 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2787
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.
2796
2797 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2798
2799         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2800         from extra_options.
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.
2815
2816         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2817         if variable name exists.
2818
2819 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
2820
2821         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2822
2823 2005-05-07  Richard Henderson  <rth@redhat.com>
2824
2825         PR target/21412
2826         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2827         with constant offsets.
2828
2829 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
2830
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.
2838
2839 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2840
2841         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2842         config/rs6000/rs6000.h: Fix comment typos.
2843
2844 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2845
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.
2849
2850 2005-05-06  Eric Christopher  <echristo@redhat.com>
2851
2852         * config/mips/mips.opt: Remove -mint64 option.
2853         * config/mips/mips.c (override_options): Remove -mint64
2854         handling.
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
2859         mips.
2860
2861 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2862
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
2869         does not increase.
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.
2873
2874 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2875
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
2880         not to be infinite.
2881         * loop-unroll.c (decide_peel_once_rolling,
2882         decide_peel_completely): Check whether the loop is infinite.
2883
2884 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
2885
2886         * config/rs6000/sysv4.opt: Fix typo.
2887
2888 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
2889             Jakub Jelinek  <jakub@redhat.com>
2890
2891         PR target/21329
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.
2896
2897 2005-05-06  Jeff Law  <law@redhat.com>
2898
2899         PR tree-optimization/21380
2900         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2901         thread through a block with no preds.
2902
2903 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2904
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.
2908
2909 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2910
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.
2921
2922 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
2923
2924         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2925         TARGET_PROFILE_KERNEL.
2926
2927         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2928         TARGET_PROFILE_KERNEL use.
2929
2930 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2931
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.
2942
2943 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
2944
2945         PR c++/20961
2946         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2947         if both NEWDECL and OLDDECL are already weak.
2948
2949 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
2950
2951         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2952
2953 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
2954             Kaz Kojima  <kkojima@gcc.gnu.org>
2955
2956         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2957         and plus_constant.
2958
2959 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
2960             David Edelsohn  <edelsohn@gnu.org>
2961
2962         * config.gcc: Add .opt magic for the rs6000 ports.
2963
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
2967         -misel=.
2968
2969         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
2970         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
2971         TARGET_XL_COMPAT.
2972
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.
2980
2981         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2982         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
2983         SUBTARGET_SWITCHES.
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.
2996
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.
3010
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.
3021
3022 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
3023
3024         * config.gcc (hppa1.1-*-rtems*): Remove.
3025         * config/pa/rtems.h: Remove.
3026
3027 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
3028
3029         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3030         Exclude roe/603e multilib variants.
3031
3032 2005-05-04  Denis Chertykov  <denisc@overta.ru>
3033
3034         PR target/21284
3035         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
3036         for output.
3037
3038 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
3039
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
3060         TARGET_TPCS_FRAME.
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.
3084
3085 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
3086
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.
3095
3096 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
3097
3098         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
3099         comparing Pmode.
3100         (SDI): New.
3101         (cmp): Delete.
3102         (wd): New.
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>.
3111
3112 2005-05-05  Paul Brook  <paul@codesourcery.com>
3113
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.
3118
3119 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
3120
3121         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
3122
3123 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
3124
3125         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
3126
3127 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
3128
3129         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
3130
3131 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
3132
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.
3136
3137 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
3138
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):
3145         Don't define.
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.
3149
3150 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
3151
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
3156         iterator.
3157
3158 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
3159
3160         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
3161         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
3162
3163 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3164
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.
3170
3171 2005-05-04  James E Wilson  <wilson@specifixinc.com>
3172
3173         PR driver/21112
3174         * gcc.c (process_command): In the second argv scan loop, ignore
3175         Xassembler and Xpreprocessor, along with their argument.
3176
3177 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3178
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.
3183
3184 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
3185
3186         * doc/tm.texi (Target Hooks): Document
3187         TARGET_RESOLVE_OVERLOADED_BUILTIN.
3188
3189 2005-05-04  Paul Brook  <paul@codesourcery.com>
3190
3191         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
3192
3193 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3194
3195         * dwarf2out.c (incomplete_types, retry_incomplete_types,
3196         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
3197         of VARRAY.
3198
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
3203         instead of VARRAY.
3204
3205         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
3206         update_stmt.
3207
3208 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
3209
3210         PR middle-end/15618
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.
3215
3216 2004-05-03  Richard Henderson  <rth@redhat.com>
3217
3218         PR middle-end/21318
3219         * function.c (instantiate_virtual_regs_in_insn): Use the mode
3220         from recog_data instead of insn_data.
3221
3222 2005-05-03  DJ Delorie  <dj@redhat.com>
3223
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
3229         instead of global.
3230         (warning): Don't test for enabled warnings here.
3231         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
3232         here.
3233
3234 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
3235
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.
3243
3244 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
3245
3246         PR middle-end/21265
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
3251         tailcall.
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
3266         the new CALL_EXPR.
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}.
3273
3274         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
3275         item in V4SF mode.
3276
3277         PR rtl-optimization/21239
3278         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
3279
3280 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3281
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
3286         aux.
3287         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
3288
3289         * tree-cfg.c (remove_bb): Remove a redundant call to
3290         set_bb_for_stmt.
3291         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
3292         Likewise.
3293
3294 2005-05-03  Richard Henderson  <rth@redhat.com>
3295
3296         * config/rs6000/rs6000.c: Remove conflict markers.
3297
3298         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
3299
3300 2005-05-03  James E Wilson  <wilson@specifixinc.com>
3301
3302         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
3303
3304 2005-05-03  DJ Delorie  <dj@redhat.com>
3305
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.
3310
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
3316         descriptor.
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.
3322         Store option index.
3323         * doc/invoke.texi (-fdiagnostics-show-options): Document.
3324
3325 2005-05-03  Richard Henderson  <rth@redhat.com>
3326
3327         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
3328         SPEC_OR_GEN_REGS definitions.
3329
3330 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
3331
3332         PR target/16888
3333         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
3334         for unavailable registers.
3335
3336 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3337
3338         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
3339
3340         * cfglayout.c (block_locators_blocks,
3341         insn_locators_initialize, insn_scope): Use VEC instead of
3342         VARRAY.
3343
3344         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
3345         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
3346         VARRAY.
3347
3348 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3349
3350         * config/sparc/predicates.md (const_compl_high_operand): New.
3351         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
3352         gen_safe_HIGH64.
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.
3360
3361 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
3362
3363         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
3364         rather than STRIP_NOPS.
3365
3366 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
3367
3368         PR rtl-optimization/21330
3369         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
3370         returning non-NULL.
3371         (unswitch_single_loop): Clear cinsn when retrying.
3372
3373         PR target/21297
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).
3377
3378 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
3379
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
3402         type check.
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
3412         specified types.
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
3416         operand type.
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
3444         interface.
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
3450         interface.
3451         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
3452         Interface.
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
3483         implementation.
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
3535         stmt around.
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
3539         ZERO_SSA_OPERANDS.
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
3551         interface.
3552         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
3553         interface.
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
3556         vuse_optype.
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.
3564
3565 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
3566
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
3583         directly.
3584
3585 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
3586
3587         PR middle-end/21282
3588         * convert.c (convert_to_integer): Convert ceil and floor in
3589         c99 mode only.
3590
3591 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
3592
3593         PR target/20813
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.
3602
3603 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
3604
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.
3612
3613 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
3614
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):
3626         Don't define.
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.
3630
3631 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
3632
3633         PR c/15698
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).
3649
3650 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3651
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.
3659
3660 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
3661
3662         * calls.c (expand_call): Handle current_function_pretend_args_size
3663         when checking for sibcalls.
3664
3665 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3666
3667         PR tree-optimization/21294
3668         * tree-vrp.c (vrp_expr_computes_nonzero): New.
3669         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
3670
3671 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
3672
3673         PR 19985
3674         * gcov-io.h: Declare gcov external functions hidden.
3675
3676 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3677
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.
3681         (equiv_free): New.
3682
3683         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
3684         out common code.
3685
3686 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
3687
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):
3702         New.
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
3719         target hook.
3720
3721 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3722
3723         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
3724         instead of VARRAY.
3725
3726 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
3727             Bernd Schmidt  <bernd.schmidt@analog.com>
3728
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
3733         appropriate.
3734         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
3735
3736 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
3737
3738         * doc/passes.texi: Document vectorization pass.
3739
3740 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3741
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.
3747
3748 2005-05-02  Michael Matz  <matz@suse.de>
3749
3750         PR c++/19542
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.
3760
3761 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3762
3763         * gimplify.c (gimplify_compound_lval): Use VEC instead of
3764         VARRAY.
3765
3766         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
3767
3768         * dwarf2out.c (decl_scope_table, push_decl_scope,
3769         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
3770         instead of VARRAY.
3771
3772 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
3773
3774         PR C++/14391
3775         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
3776         if !flag_weak.
3777         * doc/cpp.texi (__DEPRECATED): Document.
3778         (__EXCEPTIONS): Likewise.
3779         (__GXX_WEAK__): Likewise.
3780
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.
3784
3785 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3786
3787         * tree-ssa-loop-ivopts.c: Fix a comment typo.
3788
3789 2005-01-05  Paul Brook  <paul@codesourcery.com>
3790
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.
3796
3797 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
3798
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.
3802
3803 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
3804
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
3809         argument.
3810         * tree-scalar-evolution.h (simple_iv): Declaration changed.
3811         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
3812         field.
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
3817         constant.
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
3843         to simple_iv call.
3844
3845 2005-04-30  Michael Matz  <matz@suse.de>
3846
3847         * config/i386/i386.md (movmemsi): Also active when
3848         TARGET_INLINE_ALL_STRINGOPS.
3849
3850 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
3851
3852         PR bootstrap/20633
3853         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
3854
3855 2005-04-30  Paul Brook  <paul@codesourcery.com>
3856
3857         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
3858         thumb mode.
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.
3863
3864 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3865
3866         * tree-ssanames.c: Fix a comment typo.
3867         * doc/options.texi: Fix a typo.
3868
3869 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
3870
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.
3886
3887 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3888
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
3893         of VARRAY.
3894
3895 2005-04-29  Richard Henderson  <rth@redhat.com>
3896
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.
3906
3907 2005-04-29  Richard Henderson  <rth@redhat.com>
3908             Daniel Jacobowitz  <dan@codesourcery.com>
3909
3910         * gengtype.c (write_func_for_structure): Split out ...
3911         (output_type_enum): ... new function.  Fix thinko accessing
3912         TYPE_PARAM_STRUCT data.
3913
3914 2005-04-29  Tom Tromey  <tromey@redhat.com>
3915
3916         * tree.c (build_block): Removed unused 'tags' argument.
3917         * tree.h (build_block): Removed argument.
3918
3919 2005-04-29  Michael Matz  <matz@suse.de>
3920
3921         PR rtl-optimization/21144
3922         * postreload.c (reload_cse_move2add): Check for VOIDmode.
3923
3924 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
3925
3926         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
3927         flag_reorder_blocks.
3928
3929 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
3930
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.
3934
3935 2005-04-29  Devang Patel  <dpatel@apple.com>
3936
3937         PR tree-optimization/21272
3938         PR tree-optimization/21266
3939         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
3940
3941 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3942
3943         * tree-flow-inline.h: Fix a comment typo.
3944         * doc/tree-ssa.texi: Fix a typo.
3945
3946         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
3947
3948 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
3949
3950<