OSDN Git Service

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