OSDN Git Service

2005-05-26 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
2
3         * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
4         * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
5
6 2005-05-26  Jakub Jelinek  <jakub@redhat.com>
7
8         PR target/21716
9         * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
10         found in the basic block and last insn in the basic block is not
11         INSN_P.  Remove explicit unspec numbers that are no longer valid
12         from comments.
13
14 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
15
16         * tree-vect-transform.c (vectorizable_operation): Try word_mode
17         vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
18         if a vector mode is available.
19
20 2005-05-25  Roger Sayle  <roger@eyesopen.com>
21
22         PR middle-end/21709
23         * fold-const.c (const_binop): Check for division by zero during
24         complex division.
25
26 2005-05-26  Ian Lance Taylor  <ian@airs.com>
27
28         * reload1.c (verify_initial_elim_offsets): Add braces to avoid
29         having a declaration after a statement.
30
31 2005-05-26  Richard Sandiford  <rsandifo@redhat.com>
32
33         * opt-functions.awk (var_type): New function.
34         (var_set): Use CLVC_STRING if var_type returns "const char *".
35         * opth-gen.awk: Use var_type to find out the types of variables.
36         Don't print comments above each "extern" definition.
37         * optc-gen.awk: Use var_type in the same way.
38         * opts.h (cl_var_cond): Rename to...
39         (cl_var_type): ...this.  Add CLVC_STRING.
40         (cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
41         with "var_type".
42         * opts.c (handle_option, option_enabled): Update after above name
43         change.  Cast flag_var before using it.  Handle CLVC_STRING.
44         
45         * config/alpha/alpha.h (alpha_tls_size): Delete.
46         * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
47         (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
48         (alpha_fptm_string, alpha_mlat_string): Delete.
49         (alpha_handle_option): Don't set the above variables here.  Use the
50         integer argument to check the validity of -mtls-size=.
51         * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
52         (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
53         (mtls-size=): Likewise.  Convert to a UInteger and initialize the
54         variable to 32.
55
56         * config/arc/arc.c (arc_cpu_string, arc_text_string)
57         (arc_data_string, arc_rodata_string): Delete.
58         (arc_handle_option): Don't set the above variables here.
59         * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
60         and initialize them.
61
62         * config/arm/arm.c (target_fpu_name, target_fpe_name)
63         (target_float_abi_name, target_abi_name, structure_size_string)
64         (arm_pic_register_string): Delete.
65         (arm_handle_option): Don't set the above variables here, except
66         in the handling of -mhard-float and -msoft-float.
67         * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
68         (mpic-register=, mstructure-size-boundary=): Add Var()s.
69
70         * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
71         (avr_handle_option): Delete.
72         * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
73         them.
74
75         * config/bfin/bfin.c (bfin_library_id): Delete.
76         (bfin_handle_option): Don't set it.
77         * config/bfin/bfin.opt (mshared-library-id=): Add Var().
78
79         * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
80         * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
81         (c4x_handle_option): Don't set c4x_rpts_cycles here.
82         * config/c4x/c4x.opt (mrpts=): Add Var().
83
84         * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
85         cris_elinux_stacksize_str here.
86         * config/cris/aout.opt (melinux-stacksize=): Add Var().
87         * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
88         (cris_tune_str, cris_elinux_stacksize_str): Delete.
89         * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
90         (cris_tune_str, cris_elinux_stacksize_str): Delete.
91         (cris_handle_option): Don't set the above variables here.
92         * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
93         (max-stackframe=): Add Var()s.
94
95         * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
96         * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
97         (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
98         (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
99         (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
100         (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
101         (ix86_handle_option): Don't set the above variables here.
102         * config/i386/i386.opt (malign-functions=, malign-jumps=)
103         (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
104         (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
105         Var()s.
106
107         * config/ia64/ia64.h (ia64_tls_size): Delete.
108         * config/ia64/ia64.c (ia64_tls_size): Delete.
109         (ia64_handle_option): Treat -mtls-size= as a UInteger option,
110         reading the integer argument from the "value" parameter.  Don't
111         set ia64_tls_size here.
112         * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
113         Add Var() and Init().
114
115         * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
116         (m32r_cache_flush_trap): Delete.
117         * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
118         (m32r_cache_flush_trap): Delete.
119         (m32r_handle_option): Don't set the above variables when handling
120         -mflush-func= and -mflush-trap=.
121         * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
122         and Init()s.
123
124         * config/mips/mips.h (mips_cache_flush_func): Delete.
125         * config/mips/mips.c (mips_arch_string, mips_tune_string)
126         (mips_cache_flush_func): Delete.
127         (mips_handle_option): Don't set the above variables when handling
128         -march=, -mtune= and -mflush-func=.
129         * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
130
131         * config/s390/s390.c (s390_arch_string): Delete.
132         (s390_handle_option): Don't set it here.
133         * config/s390/s390.opt (march=): Add Var().
134
135         * config/sparc/sparc.h (sparc_cmodel_string): Delete.
136         * config/sparc/sparc.c (sparc_cmodel_string): Delete.
137         (sparc_handle_option): Don't set it here.
138         * config/sparc/sparc.opt (mcmodel=): Add Var().
139
140 2005-05-25  Roger Sayle  <roger@eyesopen.com>
141
142         * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
143         call to convert_to_integer by building the NOP_EXPR directly.
144
145 2005-05-25  Richard Sandiford  <rsandifo@redhat.com>
146
147         * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
148
149 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
150             Jeff Law  <law@redhat.com>
151
152         * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
153         constant and side_effects of the ADDR_EXPR are consistent.
154
155         * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
156         appropriately around calls to recompute_tree_invarant_for_addr_expr.
157
158 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
159
160         * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
161         (s390_function_arg, s390_gimplify_va_arg): Use them.
162         (s390_register_info): Save only required subset of argument
163         registers into save area for va_list.
164         (s390_va_start): Initialize only required elements of va_list struct.
165         (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
166
167 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
168
169         * reload1.c (verify_initial_elim_offsets): Return boolean status
170         instead of aborting.
171         (reload): Adapt verify_initial_elim_offsets call site.  Restart
172         main loop if some initial elimination offsets changed.
173
174 2005-05-25  Adam Nemet  <anemet@lnxw.com>
175
176         * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
177         of -mno-svr4-struct-return.
178
179 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
180
181         Fix PR tree-optimization/21705
182         
183         * tree-ssa-pre.c (in_fre): New static variable.
184         (create_value_expr_from): Recursively value number reference ops
185         in argument lists.
186         (can_value_number_call): Temporary restrict only exists for
187         PRE, not FRE.
188
189 2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
190
191         * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
192         sizeof (bitmap *) with sizeof (bitmap).
193
194 2005-05-25  Daniel Berlin <dberlin@dberlin.org>
195
196         * lambda-code.c (perfect_nestify): Call update_stmt on the exit
197         condition.
198
199 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
200
201         * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
202         hook_bool_rtx_true.
203
204 2005-05-25  Jan Hubicka  <jh@suse.cz>
205
206         * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
207         * cgraph.c (cgraph_create_node): Reset estimated_growth.
208         * cgraph.h (cgraph_global_info): Add estimated_growth.
209         * ipa-inline.c: Include coverage.h
210         (max_insns, max_count): New static variables.
211         (cgraph_estimate_size_after_inlining): Cache the result.
212         (cgraph_estimate_growth):
213         * passes.c (rest_of_clean_state): Kill coverage_end_function.
214         * timevar.def (TV_INLINE_HEURISTICS): New timevar.
215         * tree-optimize.c (init_tree_optimization_passes): Move profiling before
216         inlining.
217         (ipa_passes): Initialize bitmaps.
218
219 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
220
221         * loop-doloop.c: Include "target.h". 
222           (doloop_valid_p): Move tests to function in targhooks.c.
223         * target.h (struct gcc_target): New target hook
224           "insn_valid_within_doloop".
225         * target-def.h: Define default value for "insn_valid_within_doloop".
226           (TARGET_INITIALIZER): Insert new target hook into initializer.
227         * targhooks.c (default_insn_valid_within_doloop): New function.
228         * targhooks.h (default_insn_valid_within_doloop): Declare.
229         * hooks.c (hook_bool_rtx_true): New function.
230         * hooks.h (hook_bool_rtx_true): Declare.
231         * doc/tm.texi: Add documentation for new target hook.
232
233 2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
234
235         PR target/21412
236         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
237         * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
238         (sparc_tls_referenced_p): New prototype.
239         * config/sparc/sparc.c (tls_symbolic_operand): Delete.
240         (sparc_expand_move): Look for TLS addresses with constant offsets.
241         (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
242         tls_symbolic_operand.
243         (legitimate_pic_operand_p): Likewise.
244         (legitimate_address_p): Likewise.
245         (legitimize_address): Likewise.
246         (sparc_tls_symbol_ref_1): New function.
247         (sparc_tls_referenced_p): New function.
248         * config/sparc/predicates.md (tgd_symbolic_operand): Use
249         SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
250         (tld_symbolic_operand): Likewise.
251         (tie_symbolic_operand): Likewise.
252         (tle_symbolic_operand): Likewise.
253
254 2005-05-24  DJ Delorie  <dj@redhat.com>
255         
256         * common.opt (-Wattributes): New.  Default true.
257         * doc/invoke.texi (-Wno-attributes): Document.
258         
259         * attribs.c (decl_attributes): Move warning control from if() to
260         warning(OPT_*).
261         * c-common.c (handle_packed_attribute): Likewise.
262         (handle_nocommon_attribute): Likewise.
263         (handle_common_attribute): Likewise.
264         (handle_noreturn_attribute): Likewise.
265         (handle_noinline_attribute): Likewise.
266         (handle_always_inline_attribute): Likewise.
267         (handle_used_attribute): Likewise.
268         (handle_unused_attribute): Likewise.
269         (handle_const_attribute): Likewise.
270         (handle_transparent_union_attribute): Likewise.
271         (handle_constructor_attribute): Likewise.
272         (handle_destructor_attribute): Likewise.
273         (handle_mode_attribute): Likewise.
274         (handle_alias_attribute): Likewise.
275         (handle_visibility_attribute): Likewise.
276         (handle_tls_model_attribute): Likewise.
277         (handle_malloc_attribute): Likewise.
278         (handle_returns_twice_attribute): Likewise.
279         (handle_pure_attribute): Likewise.
280         (handle_deprecated_attribute): Likewise.
281         (handle_vector_size_attribute): Likewise.
282         (handle_nothrow_attribute): Likewise.
283         (handle_cleanup_attribute): Likewise.
284         (handle_warn_unused_result_attribute): Likewise.
285         (handle_sentinel_attribute): Likewise.
286         * c-decl.c (diagnose_mismatched_decls): Likewise.
287         (start_decl): Likewise.
288         (grokdeclarator): Likewise.
289         (start_function): Likewise.
290         * c-format.c (check_function_format): Likewise.
291         * stor-layout.c (place_field): Likewise.
292         (finalize_record_size): Likewise.
293         * tree.c (handle_dll_attribute)): Likewise.
294         * varasm.c (default_assemble_visibility): Likewise.
295         * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
296         (darwin_assemble_visibility): Likewise.
297         * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
298         * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
299         (arm_handle_isr_attribute): Likewise.
300         * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
301         (avr_handle_fndecl_attribute): Likewise.
302         * config/bfin/bfin.c (handle_int_attribute): Likewise.
303         * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
304         * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
305         (h8300_handle_eightbit_data_attribute): Likewise.
306         (h8300_handle_tiny_data_attribute): Likewise.
307         * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
308         (ix86_handle_regparm_attribute): Likewise.
309         (ix86_handle_struct_attribute): Likewise.
310         * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
311         (i386_pe_encode_section_info): Likewise.
312         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
313         * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
314         (ip2k_handle_fndecl_attribute): Likewise.
315         * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
316         * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
317         (m68hc11_handle_fntype_attribute): Likewise.
318         (m68hc11_encode_section_info): Likewise.
319         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
320         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
321         * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
322         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
323         * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
324         (sh_handle_sp_switch_attribute): Likewise.
325         (sh_handle_trap_exit_attribute): Likewise.
326         * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
327         (sh_symbian_handle_dll_attribute): Likewise.
328         * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
329         (xstormy16_handle_below100_attribute): Likewise.
330         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
331
332         * c-common.c (unsigned_conversion_warning): Move warning control
333         from if() to warning(OPT_*).
334         (c_common_truthvalue_conversion): Likewise.
335         (c_do_switch_warnings): Likewise.
336         * c-decl.c (diagnose_mismatched_decls): Likewise.
337         (diagnose_mismatched_decls): Likewise.
338         (define_label): Likewise.
339         (grokdeclarator): Likewise.
340         * c-format.c (check_format_info): Likewise.
341         * c-lex.c (interpret_integer): Likwise.
342         (lex_string): Likewise.
343         * c-opts.c (c_common_post_options): Likewise.
344         * c-parser.c (c_parser_unary_expression): Likewise.
345         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
346         (handle_pragma_extern_prefix): Likewise.
347         * c-typeck.c (build_binary_op): Likewise.
348         * gcse.c (is_too_expensive): Likewise.
349         * opts.c (decode_options): Likewise.
350         * stor-layout.c (place_field): Likewise.
351         * tree-cfg.c (remove_bb): Likewise.
352
353         * c.opt (-Wreturn-type): Add Var(warn_return_type).
354         * flags.h (warn_return_type): Remove.
355         * toplev.c (warn_return_type): Likewise.
356
357 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
358
359         * configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
360         existence of long long and __int64 before determining their size.
361         * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
362         * configure, config.h.in:  Regenerate.
363
364 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
365
366         * configure: Regenerate.
367
368 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
369
370         * c-common.h (objc_comptypes): Remove prototype.
371         (objc_compare_types): New prototype.
372         (objc_volatilized_decl): Likewise.
373         (objc_type_quals_match): Likewise.
374         * c-decl.c (objc_mark_locals_volatile): Streamline by calling
375         objc_volatilize_decl().
376         * c-typeck.c (comp_target_types): Remove third parameter; do
377         not call objc_comptypes().
378         (comptypes): Remove calls to objc_comptypes().
379         (build_function_call): Extend compatible prototype check to ObjC.
380         (build_conditional_expr): Adjust call to comp_target_types().
381         (convert_for_assignment): Call objc_compare_types() instead of
382         objc_comptypes(); adjust calls to comp_target_types(); call
383         objc_type_quals_match() before issuing qualifier mismatch
384         warnings.
385         (build_binary_op): Call objc_compare_types() before issuing
386         pointer mismatch warnings; adjust calls to
387         comp_target_types().
388         * stub-objc.c (objc_comptypes): Remove stub.
389         (objc_compare_types): New stub.
390         (objc_volatilized_decl): Likewise.
391         (objc_type_quals_match): Likewise.
392
393 2005-05-24  Paolo Carlini  <pcarlini@suse.de>
394
395         * config/ia64/ia64intrin.h: Define nothing for C++:
396         overloaded builtins have been ported to C++.
397
398 2005-05-24  Jeff Law  <law@redhat.com>
399
400         * tree-nested.c (build_addr): New "context" argument.  Temporarily
401         set current_function_decl around the call to build the ADDR_EXPR.
402         (get_static_chain): Pass proper context to build_addr.
403         (convert_nl_goto_reference): Likewise.
404         (convert_tramp_reference): Likewise.
405         (final_nesting_tree_1): Likewise.
406         * tree-profile.c (tree_gen_interval_profiler): Likewise.
407         (tree_gen_pow2_profiler): Likewise.
408         (tree_gen_one_value_profiler): Likewise.
409         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
410         * tree.h (build_addr): Update prototype.
411
412 2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
413
414         * tree-flow.h (bb_ann_d): Remove has_escape_site.
415         * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
416         write to has_escape_site.
417
418 2005-05-24  Jeff Law  <law@redhat.com>
419
420         * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
421         * tree-cfg.c: Include tree-ssa-propagate.h.
422         (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
423         needed.
424
425 2005-05-24  Nick Clifton  <nickc@redhat.com>
426
427         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
428         __NO_FPRS__ when 'f' class registers will not be available. 
429
430 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
431
432         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
433         nothing was done.
434         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
435         nothing then FAIL.
436         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
437         prototype.
438
439 2005-05-23  Jeff Law  <law@redhat.com>
440
441         * tree-ssa-dom.c (cprop_into_stmt): Do not call
442         recompute_tree_invariant_for_addr_expr here.
443         (optimize_stmt): Call it here instead and do so if anything
444         at all has changed in the statement and the RHS is an ADDR_EXPR.
445         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
446         needed, call recompute_tree_invariant_for_addr_expr.
447         * tree-ssa-propagate.c (substitute_and_fold): Call
448         recompute_tree_invariant_for_addr_expr as needed.
449
450 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
451
452         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
453         saving less registers than the replacement.
454
455 2005-05-23  Jan Hubicka  <jh@suse.cz>
456
457         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
458
459 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
460
461         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
462         * config/sparc/sparc.c (sparc_expand_move): New function.
463         (sparc_emit_set_const64): Rewrite assert condition on entry.
464         (legitimate_constant_p) <CONST_VECTOR>: New case.
465         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
466         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
467         movV64, movtf): Use nonimmediate_operand for the first operand.
468         Rewrite.  Only invoke sparc_expand_move.
469         * config/sparc/predicates.md (input_operand): Reorder tests.
470
471 2005-05-23  Jan Beulich  <jbeulich@novell.com>
472
473         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
474         missing return statement.
475
476 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
477
478         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
479         emit_move_insn for moves to TFmode stack slots.
480
481 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
482
483         * tree-stdarg.c (execute_optimize_stdarg): Handle references
484         to va_list of the form &va[0].
485
486 2005-05-20  Jan Hubicka  <jh@suse.cz>
487
488         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
489         * genemit.c (main): Make insn-emit to include basic-block.h too.
490
491 2005-05-20  Jan Hubicka  <jh@suse.cz>
492
493         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
494
495 2005-05-19  Richard Henderson  <rth@redhat.com>
496
497         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
498         emit_store_conditional): Split out from ...
499         (alpha_split_atomic_op): ... here.
500         (alpha_split_compare_and_swap): New; extract from .md file.
501         (alpha_split_lock_test_and_set): Likewise.
502         * config/alpha/alpha-protos.h: Update.
503         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
504         split code into alpha.c.
505         (sync_lock_test_and_set<I48MODE>): Likewise.
506
507 2005-05-19  Richard Henderson  <rth@redhat.com>
508
509         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
510
511 2005-05-19  Richard Henderson  <rth@redhat.com>
512
513         * config/i386/sse.md (mulv4si3): Use all register inputs.
514         (mulv2di3): Likewise.
515
516 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
517
518         * tree-ssa-loop-ivopts.c (determine_base_object): Use
519         build_fold_addr_expr to generate trees of correct type.
520         Use fold_buildN if possible.
521
522 2005-05-19  Jan Hubicka  <jh@suse.cz>
523
524         * basic-block.h (REG_BR_PROB_BASE): Define.
525         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
526         (dump_cgraph_node): Dump count.
527         (cgraph_clone_edge): Rescale counts.
528         (cgraph_clone_node): Likewise.
529         * cgraph.h: Include basic-block.h
530         (cgraph_node): Add count.
531         (cgraph_edge): Add count and loop_nest.
532         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
533         Update prototypes.
534         * cgraphunit.c: Kill now redundant inlining comment.
535         (cgraph_create_edges): Make static, maintain current basic block;
536         fix pasto.
537         (record_call_1): Fill in new fields.
538         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
539         cgraph_clone_node.
540         (cgraph_decide_recursive_inlining): Likewise.
541         * rtl.h (REG_BR_PROB_BASE): Kill.
542         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
543         (expand_call_inline): Update call of cgraph_create_edge.
544         * tree-optimize.c (tree_rest_of_compilation): Likewise.
545
546 2005-05-19  Nick Clifton  <nickc@redhat.com>
547
548         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
549         new rs6000_explicit_options structure.
550
551 2005-05-19  Richard Henderson  <rth@redhat.com>
552
553         PR target/21390
554         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
555         TFmode code swapping ...
556         (alpha_emit_xfloating_compare): ... here.
557         (alpha_emit_setcc): Update to match.
558         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
559
560 2005-05-19  Richard Henderson  <rth@redhat.com>
561
562         PR target/21657
563         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
564         memory indirection in local-dynamic case.
565
566 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
567             Bernd Schmidt  <bernd.schmidt@analog.com>
568
569         * config/bfin/bfin.c (branch_dest): Add comment why it's
570         necessary.
571         * config/bfin/bfin.md (attr "length" default): Change the offset of
572         forward conditional branch of length 4 from 4096 to 4092.
573
574 2005-05-19  Jan Beulich  <jbeulich@novell.com>
575
576         * unwind-compat.c: Include tconfig.h and tsystem.h.
577         * unwind-dw2-fde-compat.c: Likewise.
578
579 2005-05-18  Richard Henderson  <rth@redhat.com>
580
581         PR 21541
582         * ifcvt.c (noce_process_if_block): Avoid conversion when the
583         memory destination is readonly.
584
585 2005-05-18  Richard Henderson  <rth@redhat.com>
586
587         PR 21541
588         * tree-ssa-operands.c (opf_non_specific): New.
589         (get_asm_expr_operands): Set it.
590         (add_call_clobber_ops, add_call_read_ops): Likewise.
591         (add_stmt_operand): Test it instead of opf_kill_def when
592         considering unmodifiable variables.
593
594         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
595
596 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
597
598         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
599         tree-ssa-forwprop.c: Fix comment typos.
600         * doc/invoke.texi: Fix a typo.
601
602 2005-05-18  Richard Henderson  <rth@redhat.com>
603
604         * config.gcc (powerpc-*-linux*): Include linux64.opt when
605         including linux64.h.
606
607 2005-05-18  Richard Henderson  <rth@redhat.com>
608
609         * tree-cfg.c (pass_remove_useless): Revert last change.
610         * tree-optimize.c (init_tree_optimization_passes): Initialize
611         all_lowering_passes with PROP_gimple_any.
612
613 2005-05-18  Devang Patel  <dpatel@apple.com>
614
615         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
616         the mask end.
617         
618 2005-05-18  Richard Henderson  <rth@redhat.com>
619
620         * tree-ssa-forwprop.c (cfg_changed): New.
621         (tidy_after_forward_propagate_addr): New.
622         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
623         (forward_propagate_addr_into_variable_array_index): Likewise.
624         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
625         edges were removed.
626
627 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
628
629         * dummy-checksum.c: New.
630         * genchecksum.c: New.
631         * c.opt (print_pch_checksum): New flag.
632         * c-pch.c (struct c_pch_validity): Make much shorter.
633         (no_checksum): New.
634         (host_machine): Remove.
635         (target_machine): Remove.
636         (get_ident): Change PCH version number.
637         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
638         Don't put triplets or version string in PCH validity data.
639         Do put the compiler checksum in the validity data.
640         (c_common_valid_pch): Don't check triplets or version string.  Do
641         check checksum.
642         (c_common_print_pch_checksum): New.
643         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
644         Print fingerprint with -v.
645         * c-common.h (c_common_print_pch_checksum): New.
646         (executable_checksum): New.
647         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
648         (cc1-dummy): New rule.
649         (cc1-checksum.c): New rule.
650         (cc1-checksum.o): New rule.
651         (cc1): Add checksum support.
652         (build/genchecksum): New.
653         (build/genchecksum.o): New.
654         (dummy-checksum.o): New.
655         (genobjnames): Add genchecksum.o.
656         (mostlyclean): Remove *-checksum.c.
657         (gnucompare): Add libgcc to list of directories checked.
658         Make comparison problems in libgcc/ and with checksum files only
659         be warnings.
660         * doc/invoke.texi (Precompiled Headers): Remove caution.
661         Document that it must be the exact same binary.  Add a few
662         known-safe flags to the list.
663
664         * rs6000/predicates.md (fix_trunc_dest_operand): New.
665         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
666         Check that a memory operand is valid before trying to use it.
667         
668         * tree-cfg.c (pass_remove_useless): This pass works on trees.
669
670 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
671
672         * tree.c (build1_stat): Don't try to handle two-operand
673         tree codes.
674
675 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
676
677         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
678         * config/sh/sh.h: Update mask names throughout.
679         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
680         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
681         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
682         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
683         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
684         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
685         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
686         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
687         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
688         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
689         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
690         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
691         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
692         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
693         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
694         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
695         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
696         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
697         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
698         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
699         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
700         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
701         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
702         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
703         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
704         (SUBTARGET_SWITCHES): Delete.
705         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
706         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
707         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
708         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
709         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
710         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
711         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
712         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
713         (SUPPORT_SH3): Likewise SUPPORT_SH2.
714         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
715         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
716         SUPPORT_SH4_NOFPU.
717         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
718         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
719         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
720         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
721         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
722         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
723         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
724         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
725         (SUPPORT_ANY_SH5): New macros.
726         (TARGET_NONE): Replace with...
727         (MASK_ARCH): ...this new macro.
728         * config/sh/elf.h: Update mask names
729         * config/sh/linux.h: Likewise.
730         * config/sh/little.h: Likewise.
731         * config/sh/netbsd-elf.h: Likewise.
732         * config/sh/symbian-pre.h: Likewise.
733         * config/sh/sh.c (sh_handle_option): New function.
734         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
735         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
736         (sh_target_switches, target_switches): Delete.
737         (sh_pch_valid_p): Check for specific differences in the target_flags
738         settings.
739         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
740         * config/sh/sh.opt: New file.
741
742 2005-05-18  Richard Henderson  <rth@redhat.com>
743
744         PR target/21632
745         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
746         small_addr_symbolic_operand.
747
748 2005-05-18  Jeff Law  <law@redhat.com>
749
750         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
751         propagate an ADDR_EXPR if the definition and use sites are
752         in different EH regions.
753
754 2005-05-18  Ian Lance Taylor  <ian@airs.com>
755
756         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
757         obstack_grow.
758
759 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
760
761         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
762
763 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
764         
765         Fix PR tree-optimization/21407
766
767         * tree-ssa-operands.c (note_addressable): Change
768         COMPONENT_REF handling in response to aliasing
769         discussion.
770
771 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
772
773         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
774         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
775         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
776         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
777         the default on Solaris too.
778
779 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
780
781         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
782         is okay too.
783
784 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
785
786         * timevar.def (TV_SCEV_CONST): New timevar.
787         * tree-optimize.c (init_tree_optimization_passes): Add
788         pass_scev_cprop.
789         * tree-pass.h (pass_scev_cprop): Declare.
790         * tree-scalar-evolution.c (scev_const_prop): New function.
791         * tree-scalar-evolution.h (scev_const_prop): Declare.
792         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
793         New.
794         * tree-cfg.c (replace_uses_by): Export.
795         * tree-flow.h (replace_uses_by): Declare.
796
797 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
798             Mike Stump  <mrs@apple.com>
799
800         Yet more Objective-C++...
801
802         * c-common.h (objc_finish_try_stmt): Add.
803         (objc_build_synchronized): Add.
804         (objc_generate_write_barrier): Add.
805         * stub-objc.c (objc_build_synchronized): Add return value.
806         (objc_finish_try_stmt): Likewise.
807         (objc_generate_write_barrier): Add.
808
809         * c-common.h (objc_rewrite_function_call): Add.
810         * c-typeck.c (build_function_call): Allow objc to rewrite
811         FUNCTION_DECLs.
812         (build_modify_expr): Allow objc to generate write barriers.
813         * c.opt (Wassign-intercept): Add.
814         (Wstrict-selector-match): Add.
815         (fobjc-call-cxx-cdtors): Add.
816         (fobjc-direct-dispatch): Add.
817         (fobjc-gc): Add.
818         * dbxout.c (get_lang_number): Add Objective-C++ support.
819         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
820         (-Wstrict-selector-match): Likewise.
821         (-fobjc-direct-dispatch): Likewise.
822         (-Wassign-intercept): Likewise.
823         (Overall Options): Likewise.
824         * gengtype.c (get_output_file_with_visibility): Likewise.
825         * stub-objc.c (objc_rewrite_function_call): Add.
826         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
827
828         * c-common.c (flag_objc_exceptions): Remove.
829         (flag_objc_sjlj_exceptions): Remove.
830         * c-decl.c (objc_mark_locals_volatile): Don't change decls
831         that are already ok.
832         * c-opts.c (c_common_handle_option, case
833         OPT_fobjc_exceptions): Remove.
834         (case OPT_fobjc_sjlj_exceptions): Remove
835         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
836         (fobjc-exceptions): Likewise.
837         (fobjc-sjlj-exceptions): Likewise.
838         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
839         (OFFS_ASSIGNIVAR_FAST): Add.
840         
841 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
842
843         * config/sparc/sparc.md (movhi): Do not test constness
844         of operand #1 twice.
845         (movsi): Likewise.
846         (movdi): Unconditionally accept zero as second operand
847         when the first is memory.
848         (movdi_insn_sp32): Handle above case.
849         (DImode splitter): Use predicates.
850         (DImode splitter): Use const_zero_operand predicate.
851         (movsf_insn): Swap 2 alternatives.
852
853 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
854
855         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
856         expand_simple_operations to bases of the ivs.
857         (tree_int_cst_sign_bit): Export.
858         * tree-flow.h (expand_simple_operations): Declare.
859         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
860         tree_int_cst_sign_bit.
861         (expand_simple_operations): Export.
862         * tree.h (tree_int_cst_sign_bit): Declare.
863
864 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
865
866         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
867         merged block.
868         (replace_uses_by): New function.
869         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
870         * tree-flow.h (fold_stmt_inplace): Declare.
871         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
872         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
873         info after cfg cleanup.
874
875 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
876
877         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
878         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
879         const.
880
881 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
882
883         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
884         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
885         * timevar.c (timevar_ggc_mem_total): New variable.
886         (GGC_MEM_BOUND): New constant.
887         (get_time): Record ggc memory status.
888         (timevar_accumulate): Accumulate amount of ggc memory.
889         (timevar_print): Print consumption of ggc memory.
890         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
891         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
892         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
893         * timevar.h (struct timevar_time_def): Add ggc_mem field.
894         (timevar_ggc_mem_total): Declare.
895
896 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
897
898         * tree-into-ssa.c (update_ssa): Clean up by shortening the
899         live range of DFS.
900
901 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
902
903         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
904         define_code_attr.
905         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
906         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
907         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
908         ("s<ocond:code>"): Rename from respectively "b<ncond>",
909         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
910         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
911         "s<rcond>" and "s<ocond>".
912         ("b<ocond:code>", "*b<ocond:code>_reversed")
913         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
914         output statement section.
915
916 2005-05-17  Roger Sayle  <roger@eyesopen.com>
917
918         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
919
920 2005-05-17  Steven Bosscher  <stevenb@suse.de>
921             Stuart Hastings <stuart@apple.com>
922             Jan Hubicka  <jh@suse.cz>
923             Dale Johannesen  <dalej@apple.com>
924
925         * cgraph.h (cgraph_node): Add 'lowered' state.
926         (cgraph_lower_function): Declare.
927         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
928         (cgraph_lower_function): New function.
929         (cgraph_create_edges): Deal with lowered function bodies.
930         (verify_cgraph_node): Likewise.
931         (cgraph_analyze_function): Do lowering job.
932         (cgraph_build_static_cdtor): Likewise.
933         * function.h (struct function): Add saved_eh and saved_cfg.
934         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
935         * tree-cfg.c (fold_cond_expr_cond): Export.
936         * tree-flow.h (fold_cond_expr_cond): Declare.
937         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
938         pointer-set.
939         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
940         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
941         callee_cfun, block, eh_region, eh_region_offset.
942         (inlining_p): New predicate.
943         (remap_decl): Update for new inline_data; declare newly created inline
944         vars in low gimple way.
945         (copy_body_r): Update for new datastructure, simplify some of handling
946         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
947         deal with RESX_EXPRs.
948         (copy_bb): New.
949         (copy_edges_for_bb): Likewise.
950         (remap_decl_1): New.
951         (copy_cfg_body): New.
952         (copy_generic_body): Rewrite to work on low gimple.
953         (copy_body): Turn into simple wrapper around copy_cfg_body.
954         (setup_one_parameter): Insert new statements into given basic block.
955         (initialize_initialized_parameters): Likewise, reorganize way things are
956         gimplified.
957         (declare_return_variable): Update for new inline data datastructure.
958         (inline_forbidden_p): Work on low gimple.
959         (estimate_num_insns): Likewise.
960         (expand_call_inline): Work on CFG.
961         (push_cfun, pop_cfun): New functions.
962         (cfun_stack): New stack.
963         (add_lexical_block): New function.
964         (gimple_expand_calls_inline): Work on basic block.
965         (optimize_inline_calls): Likewise.
966         (clone_body, save_body, unsave_ewpr_now): Update for new
967         datastructures.
968         (declare_inline_vars): Work on block instead of bind_expr.
969         (inlining_p): New predicate.
970         * tree-inline.h (push_cfun, pop_cfun): Declare.
971         * tree-optimize.c: Include except.h
972         (all_lowering_passes): New variable.
973         (execute_fixup_cfg, pass_fixup_cfg): New pass.
974         (init_tree_optimization_passes): Move some to all_lowering_passes.
975         (tree_lowering_passes): New function.
976         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
977         * tree-pass.h (tree_lowering_passes): Declare
978
979 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
980
981         * unwind-dw2-fde-darwin.c: Include tsystem.h.
982
983 2005-05-17  Jeff Law  <law@redhat.com>
984
985         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
986         * tree-ssa-forwprop.c: Include langhooks.h.
987         (forward_propagate_addr_expr_into_variable_array_index): New.
988         (forward_propagate_addr_expr): New.
989         (tree_ssa_forward_propagate_single_use_vars): Loop over all
990         the statements in the block instead of just the last statement.
991         Call forward_propagate_addr_expr as needed.
992         (pass_forwprop): Update the SSA graph after forward propagation is
993         complete.
994
995 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
996
997         * unwind-dw2-fde-glibc.c (base_from_cb_data,
998         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
999         appropriate.
1000         * unwind-dw2-fde.c (__deregister_frame_info_bases,
1001         base_from_object, fde_split, end_fde_sort): Likewise.
1002         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
1003         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
1004         uw_init_context_1): Likewise.
1005         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
1006         _Unwind_Resume_or_Rethrow): Likewise.
1007         * unwind-pe.h (__gxx_abort): Do not define.
1008         (size_of_encoded_value, base_of_encoded_value,
1009         read_encoded_value_with_base): Use gcc_unreachable.
1010         * unwind.h (_Unwind_GetTextRelBase): Likewise.
1011
1012 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
1013
1014         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
1015         (cfi_end): New macros.
1016         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
1017         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
1018         an eight byte stack frame.
1019         (__NR_tkill): Define.
1020         (__div0): Use gettid tkill on GNU/Linux.
1021         (_arm_return): Add CFI.
1022         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
1023
1024 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
1025
1026         * configure.ac: Remove spaces around assignment to
1027         gcc_cv_ld_sysroot.
1028         * configure: Regenerated.
1029
1030 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
1031
1032         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
1033         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
1034         aix_struct_ret.
1035         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
1036         Modify aix_struct_return variable, not target_flags.
1037         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
1038         (rs6000_return_in_memory): Test aix_struct_return.
1039         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
1040         independent variable.  Report mxl-compat.
1041
1042 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
1043
1044         * config/bfin/bfin.md (eh_return): Add missing DONE.
1045
1046 2005-05-17  Ian Lance Taylor  <ian@airs.com>
1047
1048         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
1049         field.
1050         (mode_attr_index): Remove check for defined attribute.  Remove
1051         infile parameter.  Change all callers.
1052         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
1053         return after finding attribute.
1054         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
1055         callers.
1056         (apply_macro_traverse): Set mtd->unknown_mode_attr.
1057         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
1058         attribute used for a mode.
1059
1060 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
1061
1062         * tree-ssa-math-opts.c: New file.
1063
1064 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
1065
1066         * tree-ssa-math-opts.c: New file.
1067
1068 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
1069
1070         * Makefile.in: Add tree-ssa-math-opts.c.
1071         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
1072         * fold-const.c (distribute_real_division): New.
1073         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
1074         * tree-pass.h (pass_cse_reciprocals): New.
1075         * tree-optimize.c (init_tree_optimization_passes): Run it.
1076         * doc/passes.texi: Document the new pass.
1077
1078 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
1079
1080         PR middle-end/21595
1081         * builtins.c (fold_builtin_constant_p): Handle
1082         &"string cst"[0] as constant.
1083
1084 2005-05-17  Richard Henderson  <rth@redhat.com>
1085
1086         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
1087
1088 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
1089
1090         PR middle-end/21492
1091         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
1092         src2 if src2 has been split.
1093
1094         PR tree-optimization/21610
1095         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
1096         returning DECL, call unshare_expr.
1097
1098 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
1099
1100         * config/cris/cris.md: Unquote preparation and output statements.
1101         (BWD, WD, BW): New, mode-macros.
1102         (S, s, m, mm, nbitsm1): New, mode-attrs.
1103         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
1104         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
1105         code-attrs.
1106         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
1107         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
1108         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
1109         "*cmp_swapexthi".
1110         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
1111         ("movdi"): Move misplaced head comment regarding necessity of
1112         movdi from movsi to here.
1113         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
1114         "*mov_sidehi_biap".
1115         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
1116         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
1117         "*mov_sideqi_biap_mem".
1118         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
1119         "*mov_sidehi_mem".
1120         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
1121         "*clear_sidehi_biap" and "*clear_sideqi_biap".
1122         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
1123         and "*clear_sideqi".
1124         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
1125         "*ext_sidehisi_biap".
1126         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
1127         "*ext_sidehisi".
1128         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
1129         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
1130         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
1131         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
1132         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
1133         "zero_extendqisi2".
1134         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
1135         "*op_sidehi_biap" and "*op_sidesi_biap".
1136         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
1137         "*op_sidesi".
1138         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
1139         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
1140         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
1141         "*op_swap_sidehi" and "*op_swap_sidesi".
1142         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
1143         in the N alternative of "subqi3".
1144         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
1145         "*extophisi_side_biap".
1146         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
1147         "*extophisi_side".
1148         ("*extop<mode>si_swap_side_biap"): Replace
1149         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
1150         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
1151         "*extophisi_swap_side".
1152         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
1153         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
1154         "*extophisi_swap".
1155         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
1156         "mulqihi3", "mulhisi3" and "mulhisi3".
1157         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
1158         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
1159         "umulsi3_highpart".
1160         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
1161         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
1162         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
1163         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
1164         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
1165         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
1166         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
1167         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
1168         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
1169         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
1170         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
1171         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
1172         "*ashlhi_lowpart".
1173         ("abs<mode>2"): Replace "abshi2" and "absqi2".
1174         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
1175         "bleu".
1176         ("b<ocond>"): Replace "bgt" and "ble".
1177         ("b<rcond>"): Replace "blt" and "bge".
1178         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
1179         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
1180         "*bleu_reversed".
1181         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
1182         "*ble_reversed".
1183         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
1184         "*blt_reversed".
1185         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
1186         "sne".
1187         ("s<rcond>"): Replace "sge" and "slt".
1188         ("s<ocond>"): Replace "sgt" and "sle".
1189         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
1190         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
1191         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
1192         clear.w [rx=rx+i] and clear.b [rx=rx+i].
1193
1194 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
1195
1196         * varasm.c (struct constant_descriptor_tree): Add hash field.
1197         (const_desc_hash): Just return hash field.
1198         (const_desc_eq): If hash values are different, return 0 immediately.
1199         (output_constant_def): Compute hash field of temporary key, use
1200         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
1201         newly built constant descriptor.
1202         (lookup_constant_def): Compute hash field of temporary key, use
1203         htab_find_with_hash instead of htab_find.
1204
1205 2005-05-16  Richard Henderson  <rth@redhat.com>
1206
1207         * config/i386/sse.md (mulv4si3): New.
1208
1209 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
1210
1211         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
1212         tests for noncanonical versions of reg+constant and
1213         reg+reg*{1,2,4}.
1214
1215 2005-05-16  Richard Henderson  <rth@redhat.com>
1216             Steven Bosscher <stevenb@suse.de>
1217
1218         PR tree-opt/21399
1219         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
1220         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
1221         region data structure to match replacement.
1222         * tree-flow.h: Update to match.
1223         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
1224         * tree-ssa-dom.c (optimize_stmt): Likewise.
1225         * tree-ssa-pre.c (eliminate): Likewise.
1226         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
1227
1228 2005-05-16  Caroline Tice  <ctice@apple.com>
1229
1230         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
1231         internal_error with gcc_assert.
1232         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
1233         * function.h (struct function): Remove space between "*" and
1234         struct field names.
1235         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
1236         modify to use alloca.
1237         (unlikely_text_section): Add check for flag_function_sections.
1238         (assemble_start_function):  Move call to resolve_section, so it
1239         comes before first call to unlikely_text_section.
1240         (assemble_end_function):  Add test and call to function_section
1241         if appropriate.
1242         
1243 2005-05-16  Roger Sayle  <roger@eyesopen.com>
1244
1245         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
1246         instead of build_binary_op when performing code transformations
1247         to avoid error messages about constructs not it the user's code.
1248
1249 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
1250
1251         * tree-ssa-pre.c: Fix a comment typo.
1252
1253 2005-05-16  Richard Henderson  <rth@redhat.com>
1254
1255         PR target/21556
1256         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
1257         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
1258         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
1259         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
1260         add_tprel22): Remove mode from symbolic operand.
1261
1262 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
1263
1264         * optc-gen.awk: Include intl.h after the externally-provided files.
1265
1266 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
1267
1268         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
1269         folding a COND_EXPR_COND in a nondestructive manner.
1270
1271 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
1272
1273         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
1274         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
1275         New values for vec_select definitions and bitmask for element
1276         selection.
1277          
1278 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
1279
1280         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
1281         Change the type to VEC(rtx,gc)*.
1282         (mem_loc_descriptor, add_const_value_attributes,
1283         dwarf2out_init): Adjust uses of used_rtx_varray.
1284
1285         * tree-data-ref.c (compute_all_dependences): Change the type
1286         of dependence_relations to VEC(ddr_p,heap)**.
1287         (compute_data_dependences_for_loop): Change the type of
1288         allrelations to VEC(ddr_p,heap)*.
1289
1290 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
1291
1292         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
1293         system.h, coretypes.h and tm.h.
1294         (options.o): Update dependencies accordingly.
1295         * optc-gen.awk: Allow header_name to be a list of filenames.
1296         Handle the "Condition" flag.
1297         * opts.h (CL_DISABLED): New flag.
1298         * opts.c (handle_option): Print an error for CL_DISABLED options.
1299         * doc/options.texi: Document the "Condition" option flag.
1300
1301 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
1302
1303         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
1304
1305 2005-05-15  Roger Sayle  <roger@eyesopen.com>
1306
1307         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
1308         check for TREE_OVERFLOW on INTEGER_CST trees.
1309         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
1310         CONSTANT_CLASS_P tree nodes.
1311
1312 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
1313
1314         PR target/21551
1315         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
1316
1317 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
1318             
1319         Fix PR tree-optimization/21576
1320         
1321         * tree-ssa-pre.c (expression_node_pool): New pool.
1322         (comparison_node_pool): Ditto.
1323         (list_node_pool): Ditto.
1324         (pool_copy_list): New function.
1325         (phi_translate): Handle CALL_EXPR.
1326         (valid_in_set): Ditto.
1327         (create_expression_by_pieces): Ditto.
1328         (insert_into_preds_of_block): Ditto.
1329         (insert_aux): Ditto.
1330         (compute_avail): Ditto.
1331         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
1332         (can_value_number_call): New function.
1333         (find_leader): Update comment.
1334         (init_pre): Create new pools.
1335         (fini_pre): Free new pools.
1336         (pass_pre): Add TODO_update_ssa for the future when we are going
1337         to need vops.
1338         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
1339         (set_value_handle): Ditto.
1340         (get_value_handle): Ditto.
1341
1342 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
1343
1344         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
1345
1346 2005-05-15  Andreas Jaeger  <aj@suse.de>
1347
1348         * gcc.c (pfatal_pexecute): Remove unused local function.
1349
1350 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
1351
1352         * optc-gen.awk: Remove excess indentation.
1353         * opth-gen.awk: Likewise.
1354
1355 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
1356
1357         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
1358         of basic_block_info.  Call init_flow and find_basic_blocks
1359         before dbr_schedule if needed.
1360
1361 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1362
1363         * tree-optimize.c (init_tree_optimization_passes): Move
1364         pass_cd_dce in place of the last pass_dce.
1365
1366         PR tree-optimization/21563
1367         * tree-vrp.c (compare_value): Return boolean_false_node when
1368         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
1369         strictly larger than CST.
1370
1371 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
1372             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1373
1374         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
1375         gcc_assert().
1376         (rev_cond_name) Likewise.
1377         (vax_float_literal) Likewise.
1378         * config/vax/vax.md: Likewise.
1379
1380 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
1381
1382         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
1383         registers and use them (specifically the stack pointer).
1384         * config/vax/vax.h: Use above defines right here.
1385
1386         * config/vax/vax.c: (override_options) Remove 'register' keyword.
1387         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
1388         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
1389         whitespace.
1390         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
1391         mostly removal of trailing spaces...
1392         * config/vax/vax-modes.def: Remove trailing whitespace.
1393
1394         * config/vax/elf.h: Update whitespace.
1395
1396 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
1397
1398         Revert
1399         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1400         * fold-const.c (fold_indirect_ref_1): Avoid removing
1401         NOP_EXPRs with type qualifiers like const.
1402
1403 2005-05-14  Jan Hubicka  <jh@suse.cz>
1404
1405         Patch by Richard Henderson:
1406         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
1407         Handle RESX expressions properly.
1408
1409         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
1410         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
1411         (remove_stmt_from_eh_region_fn): Likewise.
1412
1413         * tree-cfg.c (execute_warn_function_return): Break out noreturn
1414         warning too..
1415         (execute_warn_function_noreturn): ... here.
1416         (pass_warn_function_noreturn): New pass.
1417         * tree-pass.h (pass_warn_function_noreturn): Declare
1418         * tree-optimize.c (init_tree_optimization_passes): Move return
1419         warnings early and add noreturn warnings at place of previous
1420         return warnings.
1421
1422 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1423
1424         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
1425         root_var_init, type_var_init): Use VEC instead of VARRAY.
1426         * tree-ssa-live.h (tree_partition_associator_d): Change the
1427         type of trees to VEC(tree,heap)*.
1428         (tpa_tree): Use VEC instead of VARRAY.
1429
1430 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
1431
1432         * fold-const.c (div_if_zero_remainder): New function.
1433         (try_move_mult_to_index): Use it.
1434
1435 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1436
1437         * tree-eh.c (leh_tf_state): Change the type of dest_array to
1438         VEC(tree,heap)*.
1439         (maybe_record_in_goto_queue, lower_try_finally_onedest,
1440         lower_try_finally_copy, lower_try_finally_switch,
1441         lower_try_finally): Use VEC instead of VARRAY.
1442
1443 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
1444
1445         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
1446         comment regarding defined register classes.
1447         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
1448
1449 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
1450
1451         * tree-optimize.c (init_tree_optimization_passes): Move
1452         pass_merge_phi before the first pass_dominator.
1453
1454 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
1455
1456         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
1457         unconditional.
1458
1459 2005-05-13  Josh Conner  <jconner@apple.com>
1460
1461         * config/arm/arm.c (arm_size_return_regs): New.
1462         (thumb_unexpanded_epilogue): replace in-line calculation
1463         of return registers with call to arm_size_return_regs.
1464         (use_return_insn): Include test of which registers are
1465         being used to hold return values, to accommodate
1466         vector return values.
1467
1468 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
1469
1470         * config/rs6000/sysv4.opt (mlittle): Handle.
1471
1472         * config/rs6000/rs6000.c (rs6000_handle_option): Set
1473         target_flags_explicit when appropriate.
1474
1475 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1476
1477         PR middle-end/20714:
1478         * optabs.c (no_conflict_data): New struct.
1479         (no_conflict_move_test): New function.
1480         (emit_no_conflict_block): Use it.
1481
1482 2005-05-13  Adam Nemet  <anemet@lnxw.com>
1483
1484         * doc/invoke.texi (Debugging Options): Option
1485         -fdump-translation-unit only works with C++ now.
1486
1487 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1488
1489         Replace calls to abort in CRIS port.
1490         * config/cris/cris.h (CRIS_ASSERT): New macro.
1491         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
1492         internal_error instead of abort.
1493         ("movsi"): Ditto.  Unquote preparation statement section.
1494         ("call", "call_value"): Ditto, but use gcc_assert where
1495         appropriate.  Tweak comments.
1496         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
1497         CRIS_ASSERT.
1498         (cris_op_str): Call internal_error, not abort.
1499         (cris_print_operand): Tweak "abort" reference to "die" in comment.
1500         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
1501         (cris_notice_update_cc): Call internal_error, not abort.
1502         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
1503         (cris_emit_movem_store, cris_asm_output_symbol_ref)
1504         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
1505         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
1506         ENABLE_CHECKING-guarded abort call.
1507         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
1508         Use internal_error at end of test-chain.
1509
1510 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1511
1512         PR rtl-optimization/20769:
1513         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
1514         pattern emitted by expand_nl_goto_receiver.
1515
1516         PR middle-end/20793:
1517         * integrate.c (allocate_initial_values): Update register liveness
1518         information.
1519
1520 2005-05-13  Josh Conner  <jconner@apple.com>
1521
1522         * arm.c (arm_return_in_memory): Add handling for vector return types.
1523
1524 2005-05-13  David Ung  <davidu@mips.com>
1525
1526         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
1527         name.
1528         * config/mips/mips.c: Add 4km alias.
1529         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
1530         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
1531         description.
1532
1533 2005-05-13  Jan Hubicka  <jh@suse.cz>
1534
1535         * c-decl.c (finish_function): Suppress "control reaches end of
1536         non-void function" when "no return statement in function
1537         returning non-void" is issued.
1538
1539         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
1540         * tree-optimize.c (pass_gimple): Kill.
1541         (init_tree_optimization_passes): Kill pass_gimple.
1542         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
1543         * tree-dump.c (dump_files): Rename .generic to .gimple.*
1544
1545 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
1546
1547         PR rtl-optimization/20756:
1548         * basic-block.h (PROP_DEAD_INSN): Define.
1549         * flow.c (propagate_one_insn): Set during mark_set_regs call
1550         for a dead insn.
1551         (mark_set_1): Emit a clobber when we are about to delete a dead insn
1552         that kills a live register.
1553
1554 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
1555
1556         * config/s390/s390.md: ("DBL"): New mode attribute.
1557         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
1558         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
1559         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
1560
1561 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
1562
1563         * c-format.c (check_format_arg): Handle string literals of
1564         the form &"string"[offset].
1565
1566         * g++.dg/warn/format4.C: New testcase.
1567
1568 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
1569
1570         * config/mips/3000.md, config/mips/4000.md,
1571         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
1572         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
1573         config/mips/generic.md, config/pdp11/pdp11.md,
1574         config/sh/crt1.asm, config/sh/lib1funcs.asm,
1575         config/sh/sh-modes.def, config/sh/sh-protos.h,
1576         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
1577
1578 2005-05-13  Richard Henderson  <rth@redhat.com>
1579
1580         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
1581         addition to move unless dest is a register.  Do not skip
1582         instantiation in dest on addition simplification.
1583
1584 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
1585
1586         * config/cris/cris.c (cris_print_operand) <case 'H'; case
1587         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
1588         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
1589
1590 2005-05-13  Jan Hubicka  <jh@suse.cz>
1591
1592         * basic-block.h (FOR_ALL_BB_FN): New macro.
1593         (init_flow): Initialize cfg structure.
1594         * function.c (allocate_struct_function): Do not initialize cfg structure.
1595         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
1596         (build_tree_cfg): ... here.
1597         * tree-flow.h (init_empty_tree_cfg): Declare.
1598
1599 2005-05-12  Steven Bosscher <stevenb@suse.de>
1600
1601         Fix PR tree-optimization/21520
1602         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
1603         to attempt to fold constants.
1604
1605 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1606
1607         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
1608         only when TARGET_ADJUST_UNROLL_MAX is defined.
1609         (general_movsrc_operand): Use the C style comment.
1610         (ua_offset): Use prototype.
1611
1612 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
1613
1614         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
1615         (struct hmr_data, hoist_memory_reference, memref_del,
1616         struct fmrv_data): Removed.
1617         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
1618         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
1619         list.
1620         (find_more_ref_vops): Traverse the list of memory references.
1621         (determine_lsm_loop): Work with the list of memory references instead
1622         of traversing the hashtable.
1623
1624 2005-05-12  Steven Bosscher  <stevenb@suse.de>
1625             Stuart Hastings <stuart@apple.com>
1626             Jan Hubicka  <jh@suse.cz>
1627
1628         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
1629         duplicate_eh_regions): New functions, based on old
1630         implementation removed with RTL inliner.
1631         (reachable_next_level): Modify behaviour pre-inline.
1632         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
1633         Declare.
1634         * function.h (struct function): Add after_inlining flag.
1635         * tree-optimize.c (tree_rest_of_compilation): Set it.
1636         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
1637         when needed.
1638         * tree-cfg.c (label_to_block_fn): Deal with cases where
1639         label was never insterted into code.
1640
1641 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
1642
1643         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
1644
1645 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
1646
1647         Fix PR tree-optimization/21532
1648         * tree-ssa-pre.c (create_expression_by_pieces): stmt
1649         needs to go onto the inserted_exprs list.
1650
1651 2005-05-12  Ian Lance Taylor  <ian@airs.com>
1652
1653         * c-common.h (statement_code_p): Don't declare.
1654         (STATEMENT_CODE_P): Don't define.
1655         (INIT_STATEMENT_CODES): Don't define.
1656         * c-common.c (statement_code_p): Don't define.
1657
1658 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
1659
1660         * config/sparc/sparc.h: Remove dead code.
1661         * config/sparc/sparc.c (sparc_compute_frame_size): Use
1662         FIRST_PARM_OFFSET for the size of the register window area.
1663         (emit_save_regs): Rename into emit_save_or_restore_regs.
1664         Add 'action' parameter.  Use 4095 as upper bound for the offset.
1665         Pass 'action' to save_or_restore_regs.
1666         (emit_restore_regs): Delete.
1667         (sparc_expand_prologue): Call emit_save_or_restore_regs.
1668         (sparc_expand_epilogue): Likewise.
1669         * config/sparc/sparc.md (mode macro P): Move.
1670         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
1671         (mov<V32:mode> expander): Move to the top of the V32 section.
1672         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
1673         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
1674         (sibcall_epilogue): Move.
1675
1676 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1677
1678         PR target/21501
1679         * arm.c (arm_gen_constant): Sign-extend intermediate values when
1680         synthesizing a constant of the difference of two immediates.
1681
1682 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1683
1684         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
1685         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
1686         the alternatives using integer registers into the appropriate
1687         primitives.
1688
1689 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
1690
1691         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
1692         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
1693         * bitmap.h: Fixed comments.
1694
1695 2005-05-11  Richard Henderson  <rth@redhat.com>
1696
1697         PR target/21412
1698         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
1699         (ia64_cannot_force_const_mem): New.
1700         (tls_symbolic_operand_type): New.
1701         (ia64_legitimate_constant_p): New.
1702         (ia64_expand_load_address): Return true on success.  Improve
1703         checks for when we should not split.
1704         (ia64_expand_tls_address): New addend operand.  Distribute it
1705         as appropriate to the tls_kind.  Delay referencing gp.
1706         (ia64_expand_move): Split symbolic addend as necessary.  Handle
1707         tls symbols with addends.
1708         * config/ia64/ia64-protos.h: Update.
1709         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
1710         p0, f0, f1, and r13.
1711         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
1712         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
1713         (symbolic_operand splitter): Pass everything through
1714         ia64_expand_load_address and FAIL or DONE as appropriate.
1715         (load_fptr): Only accept after reload.
1716         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
1717         load_symptr_low, load_ltoff_dtpmod,
1718         (load_dtpmod): New.
1719         (load_dtprel): Only accept tls symbols.
1720         (load_dtprel64, load_dtprel22): Likewise.
1721         (load_tprel, load_tprel64, load_tprel22): Likewise.
1722         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
1723         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
1724         (add_dtprel14, add_dtprel22): Likewise.
1725         (add_tprel, add_tprel14, add_tprel22): Likewise.
1726         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
1727         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
1728         (got_symbolic_operand): Check CONST offsets.
1729         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
1730         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
1731         (move_operand): Don't handle tls here.  Check CONST offsets.
1732
1733 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1734
1735         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
1736         Remove hilo_operand check.
1737         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
1738         * config/mips/predicates.md (hilo_operand): Delete.
1739
1740 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1741
1742         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
1743
1744 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1745
1746         PR tree-optimizer/18472
1747         * tree-if-conv.c (tree_if_convert_stmt,
1748         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
1749
1750 2005-05-11  Jan Hubicka  <jh@suse.cz>
1751
1752         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
1753         (GTFILES): add except.h.
1754         * except.c (eh_status): Add throw_stmt_table.
1755         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
1756         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
1757         lookup_stmt_eh_region_fn): Declare.
1758         (throw_stmt_node): New structure.
1759         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
1760         * gengtype.c (open_base_files): Add except.h to inlines.
1761         * tree-eh.c (throw_stmt_node): Kill.
1762         (record_stmt_eh_region): Update.
1763         (add_stmt_to_eh_region_fn): Break out from ...
1764         (add_stmt_to_eh_region): ... here.
1765         (remove_stmt_from_eh_region_fn): Break out from ...
1766         (remove_stmt_from_eh_region): ... here.
1767         (lookup_stmt_eh_region_fn): Break out from ...
1768         (lookup_stmt_eh_region): ... here.
1769         (honor_protect_cleanup_actions): Use build_resx.
1770         (lower_try_finally_onedest): Likewise.
1771         (lower_try_finally_copy): Likewise.
1772         (lower_try_finally_switch): Likewise.
1773         (lower_eh_constructs): Update eh table construction.
1774         * tree.c (build_resx): New.
1775         * tree.h (build_resx): Declare.
1776
1777 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1778
1779         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
1780         is needed.
1781
1782 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
1783
1784         * fold-const.c, libgcov.c: Fix comment typos.
1785
1786         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
1787         redundant code.
1788
1789 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
1790
1791         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
1792         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
1793         default definition.
1794         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
1795
1796 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1797
1798         PR bootstrap/21481
1799         * crtstuff.c: Include auto-host.h again, for now.
1800
1801 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
1802
1803         * config/mips/24k.md: Remove trailing whitespace.
1804
1805 2005-05-11  David Ung  <davidu@mips.com>
1806
1807         * config/mips/mips.md (type): Add imul3.
1808         (length, hazard, may_clobber_hilo): Check for imul3.
1809         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
1810         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
1811         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
1812         for a 3 operand mul and its bypasses.
1813         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
1814         * config/mips/4000.md (r4k_imul): Likewise.
1815         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
1816         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
1817         (vr4130_muldi): Likewise.
1818         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
1819         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
1820         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
1821         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
1822         (ir_vr54_imadd_si): Likewise.
1823         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
1824         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
1825         (rm7_impy_di): Likewise.
1826         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
1827         * config/mips/generic.md (generic_imul): Likewise.
1828         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
1829         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
1830
1831 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
1832
1833         PR middle-end/20371:
1834         * tree.h (record_layout_info_s): New member prev_packed.
1835         * stor-layout.c (update_alignment_for_field): Fix comment about
1836         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
1837         we start it properly aligned.
1838         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
1839         to update_alignment_for_field, and recompute it afterwards using
1840         the alignment of the record.
1841         When a packed bitfield precedes an MS bitfield, don't add padding
1842         at the end of the packed bitfield on behalf of the base type of
1843         the packed bit field.
1844         Don't adjust rli->bitpos at the end
1845         of an MS bitfield run if we already adjusted bitpos/offset for an
1846         alignment as large or larger than the bitfield type size.
1847         Take possible record alignment > BIGGEST_ALIGNMENT into account
1848         when calculating actual_align.
1849         Only put packed buit fields into rli->prev_field if they end up
1850         suitably aligned.
1851         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
1852         Update rli->remaining_in_alignment when we have already started a
1853         run of bit fields and we process a packed bit field.
1854
1855 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
1856
1857         * tree-data-ref.c (find_data_references_in_loop): Give up when
1858         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
1859         may embed arbitrary side effects.
1860         Remove the assumption that GIMPLE form contains a single array
1861         access per statement.
1862         When the statement contains virtual operands, fail if it is not
1863         a MODIFY_EXPR or a CALL_EXPR.
1864         Return after the dont know node is inserted.
1865
1866 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
1867
1868         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
1869
1870 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1871
1872         PR middle-end/19807
1873         PR tree-optimization/19639
1874         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
1875         and generic summands for char* as s * delta, too, folding &a[i]
1876         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
1877         for comparison of steps.  Convert types for index addition.
1878         (fold_binary): Adjust the callers to always dispatch to
1879         try_move_mult_to_index.
1880         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
1881         expr with non-gimple ARRAY_REF offset.
1882
1883 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
1884
1885         * fold-const.c (fold_indirect_ref_1): Avoid removing
1886         NOP_EXPRs with type qualifiers like const.
1887
1888 2005-05-11  Richard Henderson  <rth@redhat.com>
1889
1890         PR c/21502
1891         * c-decl.c (finish_decl): Propagate the completed array type of
1892         a global variable into the binding.
1893
1894 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
1895
1896         * Makefile.in (gtype-desc.o, build/genautomata.o)
1897         (build/varray.o): Depend on $(VARRAY_H).
1898
1899 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
1900
1901         * tree-optimize.c (init_tree_optimization_passes): Re-organize
1902         optimization passes to do an initial batch of scalar cleanups.
1903
1904 2005-05-10  Ian Lance Taylor  <ian@airs.com>
1905
1906         * read-rtl.c (struct macro_traverse_data): Define.
1907         (map_attr_string): New static function, broken out of
1908         apply_macro_to_string.
1909         (mode_attr_index, apply_mode_maps): New static functions.
1910         (apply_macro_to_string): Call map_attr_string.
1911         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
1912         all callers.
1913         (apply_macro_traverse): Expect data to point to a struct
1914         macro_traverse_data.
1915         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
1916         to pass data through htab_traverse.
1917         (read_rtx_1): Add mode_maps parameter.  Change all callers.
1918         Handle mode names which are attribute strings.
1919         * doc/md.texi (Substitutions): Rename from String Substitutions.
1920         Change references.  Document using attributes as modes.
1921
1922 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1923
1924         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
1925         * tree-optimize.c (init_tree_optimization_passes) Swap
1926         pass_ch and pass_profile.
1927         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
1928         here.  Remove rewrite_into_loop_closed_ssa call.
1929
1930 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1931
1932         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
1933         function.
1934         (legitimate_reload_constant_p): Add check for const double zero.
1935         * config/s390/s390.md: Add comment for constraint letter 'G'.
1936         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
1937         attributes for new case.
1938         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
1939         s390_const_double_ok_for_constraint_p.
1940         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
1941         Add prototype.
1942
1943 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
1944
1945         PR tree-optimization/21170
1946         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
1947         rewrite_ssa_into_ssa in comments with update_ssa.
1948
1949 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
1950
1951         * tree-ssa-loop-im.c: Include hashtab.h.
1952         (struct mem_ref_loc): New.
1953         (struct mem_ref): Describe the set of references with the same
1954         shape.
1955         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
1956         maybe_queue_var, fem_single_reachable_address,
1957         for_each_memref, single_reachable_address,
1958         is_call_clobbered_ref, determine_lsm_reg): Removed.
1959         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
1960         hoist_memory_reference, memref_hash, memref_eq, memref_del,
1961         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
1962         New functions.
1963         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
1964         (determine_lsm_loop): Rewritten.
1965         (determine_lsm): Do not set stmt uids.
1966
1967 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1968
1969         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
1970         letters.
1971
1972 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
1973
1974         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
1975         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
1976         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
1977
1978 2005-05-10  Jeff Law  <law@redhat.com>
1979
1980         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
1981         thread_across_edge for any abnormal edges.
1982
1983 2005-05-10  Richard Henderson  <rth@redhat.com>
1984
1985         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
1986         * config/ia64/ia64-protos.h: Declare it.
1987         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
1988         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
1989         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
1990         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
1991         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
1992         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
1993         extend result; use release semantics.
1994         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
1995         (sync_val_compare_and_swap_<IMODE>): Update to match.
1996
1997 2005-05-10  Richard Henderson  <rth@redhat.com>
1998
1999         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
2000         before comparing it for success.
2001
2002 2005-05-10  Richard Henderson  <rth@redhat.com>
2003
2004         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
2005         no return value pattern.
2006
2007 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
2008             H.J. Lu  <hongjiu.lu@intel.com>
2009
2010         * libgcov.c (create_file_directory): New function. Create
2011         directory for the given file name.
2012         (gcov_max_filename): New static var. Keeps size of the longest
2013         file name.
2014         (gcov_exit): Always try to create directory for output
2015         file. Relocate each filename basing on environment vars.
2016         (__gcov_init): Remember the longest file name.
2017         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
2018         * doc/gcov.texi (Cross-profiling): New node documenting
2019         cross-profiling management.
2020         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
2021
2022 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2023
2024         * config/sparc/sparc.c (mem_min_alignment): Do not rely
2025         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
2026
2027 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
2028
2029         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
2030         case code to avoid one move instruction.
2031         (__umodsi3, __modsi3): Merge duplicated code sequences.
2032
2033 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
2034
2035         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
2036         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
2037         * doc/invoke.texi: Fix typos.
2038
2039         * tree-data-ref.c (analyze_array_indexes, analyze_array,
2040         init_data_ref, access_functions_are_affine_or_constant_p,
2041         free_data_refs): Use VEC instead of VARRAY.
2042         * tree-data-ref.h (data_reference): Change the type of
2043         access_fns to VEC(tree,gc)*.
2044         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
2045
2046 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
2047
2048         PR c/17913
2049         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
2050         * fold-const.c (fold): Expand the condition of reducing cond_expr.
2051         (contains_label_1, contains_label_p): New functions for checking
2052         labels in a sub-tree.
2053
2054 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
2055
2056         PR c/21342
2057         * c-decl.c (pushdecl): When there is a declaration in the current
2058         scope and the declarations are external linkage, check for
2059         compatibility with the type in the external scope and update the
2060         type in the external scope with the composite type information.
2061         Do not form a composite type of the new type and the visible type
2062         if they are incompatible.
2063
2064 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
2065
2066         * crtstuff.c: Revert part of 2005-05-08 Change.
2067         (IN_LIBGCC2): Define.
2068
2069 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
2070
2071         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
2072         remove redundant test.
2073         (fp_mov_p): Accept 0.
2074         (fp_high_losum_p): Remove redundant test.
2075         * config/sparc/predicates.md (const_high_operand): Explicitly test
2076         (not small_int_operand).
2077         (fp_const_high_losum_operand): New.
2078         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
2079         (movdi_insn_sp32_v9): Use canonical predicates.
2080         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
2081         (movdi_insn_sp64_novis): Delete.
2082         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
2083         (movsf_insn_novis): Delete.
2084         (movsf_insn_vis): Rename into movsf_insn.
2085         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
2086         (movsf_lo_sum): Use fp_const_high_losum_operand.
2087         (movsf_high): Likewise.
2088         (movsf_high_losum splitter): Likewise.
2089         (mov<V32:mode> expander): Use register_or_zero_operand.
2090         (mov<V64:mode> expander): Likewise.
2091         (movdf_insn_sp32): Use register_or_zero_operand.
2092         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
2093         Rename into movdf_insn_sp32_no_fpu.
2094         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
2095         Rename into movdf_insn_sp32_v9_no_fpu.
2096         (movdf_insn_v9only_novis): Delete.
2097         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
2098         (movdf_insn_sp64_novis): Delete.
2099         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
2100         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
2101         Rename into movdf_insn_sp64_no_fpu.
2102         (movtf expander): Use register_or_zero_operand.
2103         (movtf_insn_sp32): Delete.
2104         (movtf_insn_vis_sp32): Use register_or_zero_operand.
2105         Rename into movtf_insn_sp32.
2106         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
2107         Rename into movtf_insn_sp32_no_fpu.
2108         (movtf_insn_hq_sp64): Delete.
2109         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
2110         Rename into movtf_insn_sp64_hq.
2111         (movtf_insn_sp64): Delete.
2112         (movtf_insn_vis_sp64): Use register_or_zero_operand.
2113         Rename into movtf_insn_sp64.
2114         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
2115         Rename into movtf_insn_sp64_no_fpu.
2116
2117 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
2118
2119         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
2120         gcc_assert and gcc_unreachable as appropriate.
2121         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
2122         xstormy16_output_cbranch_si, xstormy16_split_move,
2123         xstormy16_initial_elimination_offset,
2124         xstormy16_encode_section_info, xstormy16_print_operand_address,
2125         xstormy16_expand_call, xstormy16_expand_arith,
2126         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
2127
2128 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
2129
2130         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
2131         const_copies to VEC(tree,heap)*.
2132         (new_elim_graph, delete_elim_graph, elim_graph_size,
2133         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
2134         instead of VARRAY.
2135
2136 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
2137
2138         PR other/21052
2139         * doc/extend.texi (Type Attributes): Correct example syntax.
2140
2141 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
2142
2143         PR c/21160
2144         * doc/invoke.texi (-Wuninitialized): Update documentation.
2145
2146 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
2147
2148         * arm.c (const_ok_for_arm): Use a faster algorithm.
2149
2150 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
2151
2152         PR target/21477
2153         * config/rs6000/rs6000.md (add_op2): New.
2154         (add<mode>3): Use it.
2155
2156 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
2157
2158         * arm.c (arm_gen_constant): Add new heuristic for generating
2159         constant integers that can be expressed as the difference of two
2160         valid immediates.
2161
2162 2005-05-09  Roger Sayle  <roger@eyesopen.com>
2163
2164         * c-tree.h (parser_build_unary_op): New prototype.
2165         * c-typeck.c (parser_build_unary_op): New function to construct
2166         a unary operation in the C parser.
2167         * c-parser.c (c_parser_unary_expression):  Use the new function
2168         parser_build_unary_op when appropriate.
2169
2170 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
2171
2172         PR 18655
2173         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
2174         before outputting DWARF_FRAME_RETURN_COLUMN.
2175
2176 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2177
2178         * config/s390/s390.c: (s390_branch_condition_mask,
2179         s390_branch_condition_mnemonic, s390_extra_constraint_str,
2180         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
2181         legitimize_pic_address, s390_emit_tls_call_insn,
2182         legitimize_tls_address, legitimize_tls_address,
2183         s390_expand_addcc, print_shift_count_operand, print_operand,
2184         addr_generation_dependency_p, annotate_constant_pool_refs,
2185         s390_split_branches, find_constant_pool_ref,
2186         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
2187         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
2188         s390_output_pool_entry, s390_function_value,
2189         s390_call_saved_register_used, s390_emit_call): Replace
2190         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
2191         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
2192         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
2193         get_some_local_dynamic_name, s390_function_arg_size,
2194         s390_function_arg_advance, s390_function_arg,
2195         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
2196         default case by gcc_unreachable.
2197         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
2198         conditional abort by gcc_assert.
2199         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
2200         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
2201
2202 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2203
2204         * config/s390/s390.c: (s390_decompose_address,
2205         tls_symbolic_operand, legitimate_pic_operand_p,
2206         legitimate_constant_p, legitimate_reload_constant_p,
2207         s390_expand_plus_operand, legitimate_address_p,
2208         legitimate_la_operand_p, ): Remove 'register' from signature.
2209         (symbolic_reference_mentioned_p,
2210         tls_symbolic_reference_mentioned_p): Remove 'register' from local
2211         variable declarations.
2212         (legitimize_address): Remove 'register' from
2213         signature and local variable declarations.
2214
2215 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2216
2217         * config/s390/s390-protos.h: (s390_match_ccmode,
2218         s390_match_ccmode_set, reg_used_in_mem_p,
2219         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
2220         legitimate_la_operand_p, preferred_la_operand_p,
2221         s390_short_displacement, addr_generation_dependency_p,
2222         legitimate_reload_constant_p, legitimate_address_p): Change return type
2223         into 'bool'.
2224         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
2225         * config/s390/s390.c: (s390_match_ccmode,
2226         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
2227         legitimate_reload_constant_p): Change return type into 'bool'.
2228         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
2229         Likewise.  Additionally adapted comment.
2230         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
2231         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
2232         (s390_decompose_address): Change the type of the internal flags
2233         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
2234         (struct s390_address): Change type of "pointer" into bool.
2235         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
2236         Adapt calls for 's390_tm_ccmode' to the new signature.
2237
2238 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2239
2240         * config/s390/s390.c: (s390_match_ccmode_set,
2241         s390_branch_condition_mnemonic, s390_short_displacement,
2242         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
2243         print_shift_count_operand, get_some_local_dynamic_name,
2244         get_some_local_dynamic_name_1, reg_used_in_mem_p,
2245         addr_generation_dependency_p, s390_split_branches,
2246         annotate_constant_pool_refs, find_constant_pool_ref,
2247         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
2248         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
2249         s390_register_info, s390_frame_info, s390_init_frame_layout,
2250         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
2251         restore_gprs, s390_function_arg_size, s390_function_arg_float,
2252         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
2253         s390_encode_section_info, s390_cannot_force_const_mem,
2254         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
2255         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
2256         s390_adjust_priority, s390_issue_rate,
2257         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
2258         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
2259         s390_build_builtin_va_list, s390_gimplify_va_arg,
2260         s390_function_ok_for_sibcall, s390_call_saved_register_used,
2261         s390_pass_by_reference, s390_fixed_condition_code_regs,
2262         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
2263         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
2264         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
2265         s390_add_pool_insn, s390_find_pool, s390_add_constant,
2266         s390_find_constant, s390_add_execute, s390_find_execute,
2267         s390_execute_label, s390_execute_target, s390_dump_pool,
2268         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
2269         Move target macro definitions to the end of the file.  Move several
2270         functions within the file to assure correct compiling.
2271
2272 2005-05-09  Steven Bosscher  <stevenb@suse.de>
2273
2274         * calls.c (purge_reg_equiv_notes): Remove, fold into...
2275         (fixup_tail_calls): ...here.  Only look at insns between the
2276         start of the function and the FUNCTION_BEG insn note.
2277
2278         * gcse.c (one_cprop_pass): Fix typos in dumps.
2279
2280         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
2281
2282 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2283
2284         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
2285         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
2286         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
2287         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
2288         CC_REGNUM)'.
2289         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
2290         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
2291         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
2292         REG_SC)'.
2293
2294 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2295
2296         * config/s390/s390.md: ("gf") New mode attribute.
2297         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
2298         "fixuns_truncsfsi2"): Merge.
2299         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
2300         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
2301         "fix_truncsfsi2_ieee"): Merge.
2302
2303 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2304
2305         * config/s390/s390.md: ("FPR") New mode macro.
2306         ("de", "dee"): New mode attributes.
2307         ("cmpdf", "cmpsf"): Merge.
2308         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
2309         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
2310         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
2311         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
2312         ("floatdidf2", "floatdisf2"): Merge.
2313         ("adddf3", "addsf3"): Merge.
2314         ("*adddf3", "*addsf3"): Merge.
2315         ("*adddf3_cc", "*addsf3_cc"): Merge.
2316         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
2317         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
2318         ("subdf3", "subsf3"): Merge.
2319         ("*subdf3", "*subsf3"): Merge.
2320         ("*subdf3_cc", "*subsf3_cc"): Merge.
2321         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
2322         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
2323         ("muldf3", "mulsf3"): Merge.
2324         ("*muldf3", "*mulsf3" "): Merge.
2325         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
2326         ("*fmadddf", "*fmaddsf"): Merge.
2327         ("*fmsubdf", "*fmsubsf"): Merge.
2328         ("divdf3", "divsf3"): Merge.
2329         ("*divdf3", "*divsf3"): Merge.
2330         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
2331         ("negdf2", "negsf2"): Merge.
2332         ("*negdf2_cc", "*negsf2_cc"): Merge.
2333         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
2334         ("*negdf2", "*negsf2"): Merge.
2335         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
2336         ("absdf2", "abssf2"): Merge.
2337         ("*absdf2_cc", "*abssf2_cc"): Merge.
2338         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
2339         ("*absdf2", "*abssf2"): Merge.
2340         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
2341         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
2342         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
2343         ("*negabsdf2", "*negabssf2"): Merge.
2344         ("sqrtdf2", "sqrtsf2"): Merge.
2345
2346 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2347
2348         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
2349         attribute names.
2350         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
2351         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
2352         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
2353         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
2354         attribute names.
2355         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
2356         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
2357         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
2358         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
2359         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
2360         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
2361         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
2362         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
2363         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
2364         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
2365         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
2366         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
2367         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
2368         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
2369         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
2370         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
2371         'type' value.
2372         ("*divsf3"): Additionally rename second pattern to
2373         "*divsf3_ibm".
2374         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
2375         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
2376         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
2377         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
2378         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
2379         'type values' and rename 'type' value.
2380         ("*addsf3"): Additionally rename second pattern to
2381         "*addsf3_ibm".
2382
2383 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2384
2385         * config/s390/s390.md: ("SHIFT"): New mode macro.
2386         ("lr", "shift"): New mode attributes.
2387         ("ashldi3", "lshrdi3"): Merge.
2388         ("*ashldi3_31", "*lshrdi3"_31): Merge.
2389         ("*ashldi3_64", "*lshrdi3"_64): Merge.
2390         ("ashlsi3", "lshrsi3"): Merge.
2391
2392 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2393
2394         * config/s390/s390.md: ("DSI", "SCOND"): New mode
2395         macros.
2396         ("E", "g"): New mode attributes.
2397         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
2398         ("*adddi3_alc", "*addsi3_alc"): Merge.
2399         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
2400         ("*subdi3_slb", "*subsi3_slb"): Merge.
2401         ("adddicc", "addsicc"): Merge.
2402         ("*sconddi", "*scondsi"): Merge.
2403         ("*sconddi_neg", "*scondsi_neg"): Merge.
2404         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
2405         ("negdi2", "negsi2"): Extract expander pattern from
2406         "negsi2" and merge with "negdi2".
2407         ("*negdi2"): Merge with instruction pattern of "negsi2".
2408         ("*negdi2_cc", "*negsi2_cc"): Merge.
2409         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
2410         ("rotldi3", "rotlsi3"): Merge.
2411
2412 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2413
2414         * config/s390/s390.md: ("hc"): New mode attribute.
2415         ("extendhidi2", "extendqidi2"): Merge.
2416         ("*extendhidi2", "*extendqidi2"): Merge.
2417         ("extendhisi2", "extendqisi2"): Merge.
2418         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
2419         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
2420         Merged 2 define_split.
2421         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
2422         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
2423
2424 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2425
2426         * config/s390/s390.md: ("COMPARE"): New mode macro.
2427         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
2428         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
2429         "bungt", "bunle", "bunge", "bltgt"): Merge.
2430
2431 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2432
2433         * config/s390/s390.md: ("INT"): New mode macro.
2434         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
2435         Merge.
2436
2437 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2438
2439         * config/s390/s390.md: ("GPR", "P"): New mode macros.
2440         ("cmpdi", "cmpsi"): Merge.
2441         ("strlendi", "strlensi"): Merge.
2442         ("*strlendi", "*strlensi"): Merge.
2443         ("movmemdi", "movmemsi"): Merge.
2444         ("clrmemdi", "clrmemsi"): Merge.
2445
2446 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
2447
2448         * config/s390/s390.md: ("HQI"): New mode macro.
2449         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
2450         ("*tmhi_full", "*tmqi_full"): Merge.
2451         ("*tsthiCCT", "*tstqiCCT"): Merge.
2452         ("*tsthi", "*tstqi"): Merge.
2453         ("*tsthi_cconly", "tstqi_cconly"): Merge.
2454         ("*sethighhisi", "*sethighqisi"): Merge.
2455
2456 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2457
2458         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
2459         config/alpha/unicosmk.h, config/arc/arc.md,
2460         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
2461         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
2462         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
2463         config/arm/semi.h, config/arm/uclinux-elf.h,
2464         config/arm/wince-pe.h, config/fr30/fr30.c,
2465         config/rs6000/altivec.h: Update copyright.
2466
2467 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2468
2469         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
2470         gcc_assert and gcc_unreachable as appropriate.
2471         (pdp11_output_function_epilogue, output_move_double,
2472         output_move_quad, print_operand_address, output_jump,
2473         output_addr_const_pdp11): Likewise.
2474         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
2475         ASM_OUTPUT_ALIGN): Likewise.
2476         * config/pdp11/pdp11.md: Likewise.
2477         (extendhisi2, subhi3, subqi3): Likewise.
2478
2479 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
2480
2481         PR middle-end/21237
2482         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
2483         to NE_EXPR case.
2484
2485 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
2486
2487         * config/ia64/ia64.c: Fix a comment typo.
2488
2489 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
2490
2491         PR target/21397
2492         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
2493         (arm_override_options): Use them instead of manifest constants.  Don't
2494         allow -march to override the -mtune setting.
2495
2496 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2497
2498         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
2499         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
2500         (function_arg_advance, function_arg, save_restore_insns,
2501         iq2000_expand_prologue, iq2000_output_conditional_branch,
2502         expand_one_builtin, print_operand):
2503         * config/iq2000/iq2000.md (tablejump): Likewise.
2504
2505 2005-05-09  David Ung  <davidu@mips.com>
2506
2507         * config/mips/mips.h (processor_type): Add names for the 24K.
2508         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
2509         processor family.
2510         * config/mips/mips.md (cnv_mode): New attribute for recording the
2511         conversion types of float convert insns.
2512         (cpu): Add 24k and 24kx.
2513         (include): Include 24k.md file.
2514         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
2515         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
2516         (floatdisf2): Setup cnv_mode.
2517         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
2518         setup cnv_mode.
2519         * config/mips/24k.md: New file, contains 24k DFA pipeline
2520         description.
2521
2522 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
2523
2524         * config/sh/sh.c (print_operand_address): Use gcc_assert and
2525         gcc_unreachable as appropriate.
2526         (print_operand, prepare_move_operands, prepare_scc_operands,
2527         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
2528         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
2529         fixup_mova, gen_far_branch, sh_reorg, split_branches,
2530         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
2531         sh_set_return_address, sh_setup_incoming_varargs,
2532         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
2533         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
2534         check_use_sfunc_addr): Likewise.
2535         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
2536         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2537         * config/sh/symbian.c (sh_symbian_mark_dllexport,
2538         sh_symbian_mark_dllimport): Likewise.
2539         * config/sh/sh.md: Likewise.
2540         (movdicc, call_pop, call_value_pop, casesi_worker_1,
2541         casesi_worker_2, casesi_shift_media, casesi_load_media,
2542         return_media): Likewise.
2543
2544 2005-05-08  Roger Sayle  <roger@eyesopen.com>
2545
2546         PR inline-asm/8788
2547         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
2548         operands.
2549
2550 2005-05-08  Richard Henderson  <rth@redhat.com>
2551
2552         * config/alpha/alpha.c (adjust_address): Fix typo last change.
2553
2554 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2555
2556         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
2557         and -1 can happen in reg_renumber when no hard register is assigned.
2558
2559 2005-05-08  Steven Bosscher  <stevenb@suse.de>
2560             Kazu Hirata  <kazu@cs.umass.edu>
2561
2562         PR tree-optimization/14841, tree-optimization/15838
2563         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
2564         (evaluate_stmt): Call it.
2565
2566 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
2567
2568         * config/ia64/ia64.c (ia64_override_options): Don't set
2569         ia64_flag_var_tracking and clear flag_var_tracking here...
2570         (ia64_file_start): ... but here.
2571
2572 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2573
2574         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
2575         and gcc_unreachable as appropriate.
2576         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
2577         m68hc11_gen_highpart, print_operand, print_operand_address,
2578         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
2579         m68hc11_gen_movhi): Likewise.
2580         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
2581         * config/m68hc11/m68hc11.md: Reword comment.
2582
2583 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2584
2585         PR target/21281
2586         * config/m68hc11/predicates.md (splitable_operand): An immediate is
2587         allowed.
2588
2589 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2590
2591         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
2592         the 68HC12 address indirect addressing mode as it is not supported by
2593         bset and bclr.
2594         * config/m68hc11/m68hc11-protos.h
2595         (m68hc11_valid_addressing_p): Declare.
2596         (m68hc11_add_mode): Declare.
2597         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
2598         register_indirect_p and export it.
2599         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
2600         instruction so that it is part of the good BB.
2601         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
2602         addressing with movw.
2603         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
2604         68HC12.
2605         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
2606         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
2607         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
2608         for 68HC11.
2609         ("*movhi_68hc12"): Handle movhi_const0.
2610         ("*subhi3", "subqi3"): Use general_operand for operand 1.
2611         ("*subhi3_zext"): Likewise.
2612
2613 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2614
2615         PR target/19051
2616         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
2617         operand 1 and fix constraints.
2618         ("mulqihi3"): Use general_operand for operand 2.
2619
2620 2005-05-08  Julian Brown  <julian@codesourcery.com>
2621             H.J. Lu  <hongjiu.lu@intel.com>
2622             Paul Brook  <paul@codesourcery.com>
2623
2624         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
2625         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
2626         20050308/2.16.0 or newer for comdat group.
2627         * configure: Regenerated.
2628         * config.in: Regenerated.
2629         * varasm.c (default_function_rodata_section): Put .rodata section in
2630         COMDAT group when necessary.
2631         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
2632         HAVE_COMDAT_GROUP.
2633         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
2634         available.
2635
2636 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2637
2638         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
2639         instead of VARRAY.
2640         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
2641         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
2642         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
2643         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
2644
2645 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
2646
2647         PR target/16925
2648         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
2649         64-bit constants on 64-bit hosts.
2650         (m68hc11_split_logical): Simplify.
2651         (m68hc11_split_move): Likewise.
2652
2653 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2654             Paolo Bonzini  <bonzini@gnu.org>
2655
2656         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
2657         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
2658         * configure.ac (enable_checking): Fix typos in runtime_checking.
2659         (ENABLE_RUNTIME_CHECKING): Mark as target template.
2660         (xm_file): Prepend auto-host.h
2661         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
2662         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
2663         tconfig.h.
2664         * crtstuff.c: Do not include auto-host.h.
2665         (IN_LIBGCC2): Do not define.
2666         * gcov-io.h: Include tconfig.h, not auto-host.h.
2667         * libgcc2.c: Do not include auto-host.h.
2668         (abort): Do not undefine.
2669         * libgcov.c: Remove unneeded comment about config.h.
2670         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
2671         * config.in, configure: Regenerated.
2672
2673 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2674             Falk Hueffner  <falk@debian.org>
2675
2676         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
2677         and gcc_unreachable as appropriate.
2678         (get_aligned_mem, get_unaligned_address,
2679         alpha_emit_set_long_const, alpha_emit_conditional_branch,
2680         alpha_emit_setcc, alpha_emit_conditional_move,
2681         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
2682         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
2683         alpha_expand_unaligned_load, alpha_expand_block_move,
2684         alpha_expand_zap_mask, get_trap_mode_suffix,
2685         get_round_mode_suffix, get_some_local_dynamic_name,
2686         print_operand_address, function_arg, alpha_return_in_memory,
2687         function_value, alpha_expand_builtin,
2688         alpha_initial_elimination_offset, alpha_expand_epilogue,
2689         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
2690         alphaev5_next_group, alpha_align_insns,
2691         unicosmk_initial_elimination_offset, unicosmk_unique_section,
2692         unicosmk_ssib_name): Likewise.
2693         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2694         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
2695         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
2696         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
2697         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2698         * config/alpha/alpha.md (*divmodsi_internal_er,
2699         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
2700         call_nt, call_umk, call_vms, call_value, sibcall_value,
2701         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
2702         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
2703         * config/alpha/predicates.md (input_operand): Likewise.
2704
2705 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
2706
2707         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
2708         gcc_unreachable, as appropriate.
2709         (frv_function_prologue, frv_alloc_temp_reg,
2710         frv_initial_elimination_offset, frv_expand_block_move,
2711         frv_expand_block_clear, frv_print_operand_jump_hint,
2712         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
2713         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
2714         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
2715         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
2716         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
2717         frv_in_small_data_p, frv_asm_out_constructor,
2718         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
2719         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
2720         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
2721         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
2722         sibcall_value, casesi): Likewise.
2723
2724         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
2725         gcc_unreachable as appropriate.
2726         (print_operand_address, mn10300_print_reg_list, expand_prologue,
2727         expand_epilogue, notice_update_cc, initial_offset,
2728         mn10300_address_cost_1): Likewise.
2729         * config/mn10300/mn10300.md: Likewise.
2730         (absdf2, abssf2, negdf2, negsf2): Likewise.
2731
2732 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2733
2734         PR target/21416
2735         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
2736         comparisons.
2737         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
2738         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
2739         including sunge_<mode> and sungt_<mode>.
2740
2741 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
2742
2743         * integrate.h (get_hard_reg_initial_val): Change type of register
2744         parameter from int to unsigned int.
2745         (has_hard_reg_initial_val): Likewise.
2746         * integrate.c (get_hard_reg_initial_val): Likewise.
2747         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
2748
2749 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
2750
2751         * except.c (eh_status): Change the type of ttype_data to
2752         VEC(tree,gc)*.
2753         (add_ttypes_entry, assign_filter_values,
2754         output_function_exception_table): Use VEC instead of VARRAY.
2755
2756 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2757
2758         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
2759
2760 2005-05-07  Paul Brook  <paul@codesourcery.com>
2761
2762         * Makefile.in: Fix dependencies.
2763         (GCOV_IO_H, VARRAY_H): Set.
2764
2765 2005-05-07  Anthony Green  <green@redhat.com>
2766
2767         PR bootstrap/21403
2768         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
2769         x$STMP_FIXPROTO test.
2770         * configure: Rebuilt.
2771
2772 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2773
2774         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
2775         inappropriate feature test macros if flag_iso.
2776
2777 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
2778
2779         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
2780
2781 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
2782
2783         PR target/21441
2784         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
2785         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
2786         Handle moved operand being in special register.
2787         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
2788         presumed working insn.
2789         (mover2side): Add FIXME.
2790
2791 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2792
2793         * integrate.c (get_func_hard_reg_initial_val): Delete.
2794         (has_func_hard_reg_initial_val): Delete.
2795         (get_hard_reg_initial_val): Inline the old implementation of
2796         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
2797         instead of has_func_hard_reg_initial_val to test for an existing
2798         pseudo.  Only create an rtx if a new initial value entry is needed.
2799         (has_hard_reg_initial_val): Scan the initial value list directly.
2800         Don't create an rtx.
2801
2802 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
2803
2804         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
2805         from extra_options.
2806         * config.in (HAVE_AS_POPCNTB): New.
2807         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
2808         (HAVE_AS_POPCNTB): New.
2809         * configure: Regenerated.
2810         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
2811         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
2812         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
2813         and rs6000_sched_costly_dep.
2814         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
2815         (TARGET_XL_COMPAT): Delete.
2816         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
2817         (popcount<mode>2): New.
2818         (popcntb<mode>2): New.
2819         * config/rs6000/rs6000.opt (mpopcntb): New.
2820
2821         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
2822         if variable name exists.
2823
2824 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
2825
2826         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
2827
2828 2005-05-07  Richard Henderson  <rth@redhat.com>
2829
2830         PR target/21412
2831         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
2832         with constant offsets.
2833
2834 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
2835
2836         * config/v850/v850.c (print_operand): Use gcc_assert and
2837         gcc_unreachable, as appropriate.
2838         (print_operand_address, v850_handle_data_area_attribute,
2839         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
2840         v850_insert_attributes, construct_prepare_instruction): Likewise.
2841         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2842         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
2843
2844 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
2845
2846         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
2847         config/rs6000/rs6000.h: Fix comment typos.
2848
2849 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
2850
2851         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
2852         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
2853         (mips_scalar_mode_supported_p): Delete.
2854
2855 2005-05-06  Eric Christopher  <echristo@redhat.com>
2856
2857         * config/mips/mips.opt: Remove -mint64 option.
2858         * config/mips/mips.c (override_options): Remove -mint64
2859         handling.
2860         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
2861         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
2862         64-bit integer handling.
2863         * doc/invoke.texi (Option Summary): Remove -mint64 for
2864         mips.
2865
2866 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2867
2868         PR tree-optimization/19401
2869         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
2870         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
2871         (estimated_unrolled_size): New function.
2872         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
2873         tree_unroll_loops_completely): Always unroll loops if the code size
2874         does not increase.
2875         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
2876         loops should be unrolled completely.
2877         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
2878
2879 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
2880
2881         PR rtl-optimization/21254
2882         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
2883         assumptions for loops that otherwise do not roll.
2884         (find_simple_exit): Prefer # of iterations that is guaranteed
2885         not to be infinite.
2886         * loop-unroll.c (decide_peel_once_rolling,
2887         decide_peel_completely): Check whether the loop is infinite.
2888
2889 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
2890
2891         * config/rs6000/sysv4.opt: Fix typo.
2892
2893 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
2894             Jakub Jelinek  <jakub@redhat.com>
2895
2896         PR target/21329
2897         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
2898         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
2899         Don't use rep; movs{l,q} if the repetition count is really small,
2900         instead use a sequence of movs{l,q} instructions.
2901
2902 2005-05-06  Jeff Law  <law@redhat.com>
2903
2904         PR tree-optimization/21380
2905         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
2906         thread through a block with no preds.
2907
2908 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
2909
2910         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
2911         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
2912         add_call_read_ops): Use VEC instead of VARRAY.
2913
2914 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2915
2916         * config/mcore/mcore.c (mcore_print_operand_address): Use
2917         gcc_assert and gcc_unreachable as appropriate.
2918         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
2919         mcore_output_andn, output_inline_const, mcore_output_move,
2920         mcore_output_movedouble, mcore_expand_block_move,
2921         layout_mcore_frame, mcore_initial_elimination_offset,
2922         mcore_expand_prolog, mcore_mark_dllexport,
2923         mcore_mark_dllimport): Likewise.
2924         * config/mcore/mcore.h (switch_to_section): Likewise.
2925         * config/mcore/mcore.md: Likewise.
2926
2927 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
2928
2929         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
2930         TARGET_PROFILE_KERNEL.
2931
2932         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
2933         TARGET_PROFILE_KERNEL use.
2934
2935 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
2936
2937         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
2938         and gcc_unreachable, as appropriate.
2939         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
2940         m32r_expand_prologue, m32r_output_function_epilogue,
2941         m32r_legitimize_pic_address, m32r_print_operand_address,
2942         emit_cond_move, m32r_function_symbol,
2943         m32r_output_block_move): Likewise.
2944         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2945         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
2946         *rev_zero_branch_insn): Likewise.
2947
2948 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
2949
2950         PR c++/20961
2951         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
2952         if both NEWDECL and OLDDECL are already weak.
2953
2954 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
2955
2956         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
2957
2958 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
2959             Kaz Kojima  <kkojima@gcc.gnu.org>
2960
2961         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
2962         and plus_constant.
2963
2964 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
2965             David Edelsohn  <edelsohn@gnu.org>
2966
2967         * config.gcc: Add .opt magic for the rs6000 ports.
2968
2969         * doc/invoke.texi: Document -mabi= option properly.  Document
2970         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
2971         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
2972         -misel=.
2973
2974         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
2975         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
2976         TARGET_XL_COMPAT.
2977
2978         * config/rs6000/aix.opt: New.
2979         * config/rs6000/aix41.opt: New.
2980         * config/rs6000/aix64.opt: New.
2981         * config/rs6000/darwin.opt: New.
2982         * config/rs6000/linux64.opt: New.
2983         * config/rs6000/rs6000.opt: New.
2984         * config/rs6000/sysv4.opt: New.
2985
2986         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
2987         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
2988         SUBTARGET_SWITCHES.
2989         Define TARGET_USES_SYSV4_OPT.
2990         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
2991         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
2992         TARGET_USES_AIX64_OPT.
2993         * config/rs6000/aix51.h: Same.
2994         * config/rs6000/aix52.h: Same.
2995         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
2996         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
2997         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
2998         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
2999         * config/rs6000/linux64.h: Use
3000         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
3001
3002         * config/rs6000/rs6000.c: Remove definitions of
3003         rs6000_sched_restricted_insns_priority,
3004         rs6000_long_double_size_string, rs6000_altivec_vrsave,
3005         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
3006         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
3007         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
3008         rs6000_alignment_string.  Define rs6000_explicit_options.
3009         (rs6000_parse_abi_options): Remove.
3010         (rs6000_parse_alignment_option): Remove.
3011         (rs6000_parse_float_gprs_option): Remove.
3012         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
3013         TARGET_DEFAULT_TARGET_FLAGS.
3014         (rs6000_override_options): Revamp to use new .opt machinery.
3015
3016         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
3017         of new .opt machinery.  Remove target_flags.  Redefine
3018         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
3019         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
3020         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
3021         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
3022         rs6000_longcall_switch, rs6000_default_long_calls,
3023         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
3024         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
3025         TARGET_ALTIVEC_VRSAVE.
3026
3027 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
3028
3029         * config.gcc (hppa1.1-*-rtems*): Remove.
3030         * config/pa/rtems.h: Remove.
3031
3032 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
3033
3034         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
3035         Exclude roe/603e multilib variants.
3036
3037 2005-05-04  Denis Chertykov  <denisc@overta.ru>
3038
3039         PR target/21284
3040         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
3041         for output.
3042
3043 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
3044
3045         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
3046         arm/pe.opt to $extra_options.
3047         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
3048         (target_float_abi_name, target_float_switch, target_abi_name)
3049         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
3050         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
3051         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
3052         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
3053         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
3054         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
3055         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
3056         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
3057         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
3058         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
3059         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
3060         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
3061         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
3062         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
3063         (arm_pic_register_string): Delete.
3064         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
3065         TARGET_TPCS_FRAME.
3066         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
3067         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
3068         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
3069         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
3070         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
3071         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
3072         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
3073         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
3074         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
3075         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
3076         (SUBTARGET_SWITCHES): Delete.
3077         * config/arm/arm.c (target_float_switch): Delete.
3078         (arm_cpu_select): Moved from config/arm/arm.h.
3079         (target_fpu_name, target_fpe_name, target_float_abi_name)
3080         (target_abi_name, structure_size_string, arm_pic_register_string)
3081         (arm_select): Make static.
3082         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3083         (arm_handle_option): New function.
3084         (arm_override_options): Update target_flags checks for new mask names.
3085         Remove target_float_switch code.
3086         (arm_expand_prologue, thumb_expand_prologue): Check
3087         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
3088         * config/arm/arm.opt, config/arm/pe.opt: New files.
3089
3090 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
3091
3092         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
3093         gcc_unreachable as appropriate.
3094         (arc_double_limm_p, arc_setup_incoming_varargs,
3095         arc_compute_function_type, arc_output_function_prologue,
3096         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
3097         output_shift, arc_print_operand, arc_print_operand_address,
3098         arc_final_prescan_insn): Likewise.
3099         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
3100
3101 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
3102
3103         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
3104         comparing Pmode.
3105         (SDI): New.
3106         (cmp): Delete.
3107         (wd): New.
3108         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
3109         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
3110         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
3111         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
3112         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
3113         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
3114         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
3115         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
3116
3117 2005-05-05  Paul Brook  <paul@codesourcery.com>
3118
3119         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
3120         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
3121         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
3122         and tree-data-ref.h with *_H variables.
3123
3124 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
3125
3126         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
3127
3128 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
3129
3130         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
3131
3132 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
3133
3134         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
3135
3136 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
3137
3138         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
3139         setting of vrsave register for current function after
3140         call to save_world is emitted.
3141
3142 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
3143
3144         * config/mmix/predicates.md: New file.
3145         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
3146         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
3147         (mmix_foldable_comparison_operator, mmix_comparison_operator)
3148         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
3149         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3150         Don't define.
3151         * config/mmix/mmix.md: Include predicates.md.
3152         ("call", "call_value"): Force address to register if it isn't a
3153         mmix_symbolic_or_address_operand.
3154
3155 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
3156
3157         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
3158         the flags are of appropriate types.
3159         (num_ssa_operands): Generalize using the generic interface.
3160         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
3161         iterator.
3162
3163 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
3164
3165         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
3166         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
3167
3168 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3169
3170         * tree-outof-ssa.c (edge_leader, stmt_list,
3171         analyze_edges_for_bb): Use VEC instead of VARRAY.
3172         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
3173         (perform_edge_inserts): Call init_analayze_edges_for_bb and
3174         fini_analayze_edges_for_bb.
3175
3176 2005-05-04  James E Wilson  <wilson@specifixinc.com>
3177
3178         PR driver/21112
3179         * gcc.c (process_command): In the second argv scan loop, ignore
3180         Xassembler and Xpreprocessor, along with their argument.
3181
3182 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3183
3184         * tree-flow-inline.h, tree-ssa-operands.c,
3185         tree-ssa-operands.h, tree-ssa-opfinalize.h:
3186         Likewise. tree-vn.c: Fix comment typos.
3187         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
3188
3189 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
3190
3191         * doc/tm.texi (Target Hooks): Document
3192         TARGET_RESOLVE_OVERLOADED_BUILTIN.
3193
3194 2005-05-04  Paul Brook  <paul@codesourcery.com>
3195
3196         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
3197
3198 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
3199
3200         * dwarf2out.c (incomplete_types, retry_incomplete_types,
3201         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
3202         of VARRAY.
3203
3204         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
3205         get_expansion, expand_var_during_unrolling,
3206         insert_var_expansion_initialization,
3207         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
3208         instead of VARRAY.
3209
3210         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
3211         update_stmt.
3212
3213 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
3214
3215         PR middle-end/15618
3216         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
3217         the same as INTEGER_TYPE.
3218         (fold_binary): Fold "bool_var != 0" to bool_var.
3219         Fold "bool_var == 1" to bool_var.
3220
3221 2004-05-03  Richard Henderson  <rth@redhat.com>
3222
3223         PR middle-end/21318
3224         * function.c (instantiate_virtual_regs_in_insn): Use the mode
3225         from recog_data instead of insn_data.
3226
3227 2005-05-03  DJ Delorie  <dj@redhat.com>
3228
3229         * common.opt (fdiagnostics-show-option): No variable is needed.
3230         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
3231         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
3232         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
3233         Save and restore original message format.  Use flag in context
3234         instead of global.
3235         (warning): Don't test for enabled warnings here.
3236         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
3237         here.
3238
3239 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
3240
3241         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
3242         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
3243         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
3244         * aclocal.m4: Don't include accross.m4.
3245         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
3246         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
3247         * configure, config.in: Regenerate.
3248
3249 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
3250
3251         PR middle-end/21265
3252         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
3253         (clear_storage): Add argument.
3254         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
3255         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
3256         tailcall.
3257         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
3258         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
3259         (store_expr, store_constructor): Adjust callers.
3260         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
3261         to emit_block_move if CALL_EXPR_TAILCALL (exp).
3262         (expand_builtin_memmove): Add ORIG_EXP argument, copy
3263         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
3264         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
3265         with EXP.  Pass EXP to expand_builtin_memmove.
3266         (expand_builtin_memset): Add ORIG_EXP argument, pass
3267         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
3268         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
3269         Pass EXP to expand_builtin_memset.
3270         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
3271         the new CALL_EXPR.
3272         (expand_builtin_strncmp): Likewise.
3273         (expand_builtin_printf): Replace ARGLIST argument with EXP.
3274         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
3275         (expand_builtin_fprintf): Likewise.
3276         (expand_builtin): Adjust calls to
3277         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
3278
3279         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
3280         item in V4SF mode.
3281
3282         PR rtl-optimization/21239
3283         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
3284
3285 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3286
3287         * tree-flow.h (tree_ann_common_d): Move aux to ...
3288         (stmt_ann_d): ... here.
3289         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
3290         move_computations_stmt, schedule_sm): Update references to
3291         aux.
3292         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
3293
3294         * tree-cfg.c (remove_bb): Remove a redundant call to
3295         set_bb_for_stmt.
3296         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
3297         Likewise.
3298
3299 2005-05-03  Richard Henderson  <rth@redhat.com>
3300
3301         * config/rs6000/rs6000.c: Remove conflict markers.
3302
3303         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
3304
3305 2005-05-03  James E Wilson  <wilson@specifixinc.com>
3306
3307         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
3308
3309 2005-05-03  DJ Delorie  <dj@redhat.com>
3310
3311         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
3312         decide if the warning will be printed.
3313         * calls.c (expand_call): Likewise.
3314         * function.c (init-function_start): Likewise.
3315
3316         * common.opt (-fdiagnostics-show-option): New.
3317         * opts.c (option_enabled): Accept the option index instead of a
3318         pointer to the option descriptor.
3319         * opts.h (option_enabled): Likewise.
3320         * toplev.c (print_switch_values): Pass option index, not option
3321         descriptor.
3322         * diagnostic.h (diagnostic_info): Add option_index.
3323         * diagnostic.c: Include opts.h.
3324         (diagnostic_set_info): Initialize option_index.
3325         (diagnostic_report_diagnostic): Amend option name if appropriate.
3326         (warning): Check to see if the specified warning is enabled.
3327         Store option index.
3328         * doc/invoke.texi (-fdiagnostics-show-options): Document.
3329
3330 2005-05-03  Richard Henderson  <rth@redhat.com>
3331
3332         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
3333         SPEC_OR_GEN_REGS definitions.
3334
3335 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
3336
3337         PR target/16888
3338         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
3339         for unavailable registers.
3340
3341 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
3342
3343         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
3344
3345         * cfglayout.c (block_locators_blocks,
3346         insn_locators_initialize, insn_scope): Use VEC instead of
3347         VARRAY.
3348
3349         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
3350         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
3351         VARRAY.
3352
3353 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3354
3355         * config/sparc/predicates.md (const_compl_high_operand): New.
3356         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
3357         gen_safe_HIGH64.
3358         (sparc_emit_set_const64_quick1): Adjust for above change.
3359         (sparc_emit_set_const64_quick2): Likewise.
3360         (sparc_emit_set_const64_longway): Likewise.
3361         (sparc_emit_set_const64): Likewise.
3362         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
3363         movdi_const64_special): Delete.
3364         (logical constant splitters): Use const_compl_high_operand.
3365
3366 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
3367
3368         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
3369         rather than STRIP_NOPS.
3370
3371 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
3372
3373         PR rtl-optimization/21330
3374         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
3375         returning non-NULL.
3376         (unswitch_single_loop): Clear cinsn when retrying.
3377
3378         PR target/21297
3379         * config/i386/i386.c (legitimize_address): When canonicalizing
3380         ASHIFT into MULT, multiply by 1 << shift_count instead of
3381         1 << log2 (shift_count).
3382
3383 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
3384
3385         * lambda-code.c (gcc_loop_to_lambda_loop,
3386         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
3387         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
3388         generic operand interface.
3389         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
3390         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
3391         generic operand interface.
3392         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
3393         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
3394         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
3395         num_imm_uses): Use ssa_use_operand_t.
3396     &nb