OSDN Git Service

* target.h (gcc_target): New field allocate_initial_value.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>
2
3         * target.h (gcc_target): New field allocate_initial_value.
4         * target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
5         (TARGET_INITIALIZER): Include it.
6         * integrate.c (allocate_initial_values): Use
7         targetm.allocate_initial_value.
8         * system.h: Poison ALLOCATE_INITIAL_VALUE.
9         * config/sh/sh-protos.h (sh_pr_n_sets): Delete.
10         * config/sh/sh.c (sh_pr_n_sets): Make it static.
11         (sh_allocate_initila_value): New function.
12         (TARGET_ALLOCATE_INITIAL_VALUE): Override default.
13         * config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
14         * doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
15         update from ALLOCATE_INITIAL_VALUE.
16
17 2005-06-28  Richard Henderson  <rth@redhat.com>
18
19         * tree-vectorizer.c (vect_is_simple_reduction): Compare types
20         using TYPE_MAIN_VARIANT.
21
22 2005-06-28  Richard Henderson  <rth@redhat.com>
23
24         * config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
25         when using psubN.uuu.
26
27 2005-06-29  Kelley Cook <kcook@gcc.gnu.org>
28
29         * doc/gcc.texi: Update FSF address.
30
31 2005-06-28  Eric Christopher  <echristo@redhat.com>
32
33         PR c/22052
34         PR c/21975
35         * c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
36         Use. Fix detection of invalid extern inline redefinition.
37
38 2005-06-28  Diego Novillo  <dnovillo@redhat.com>
39
40         * tree-optimize.c (init_tree_optimization_passes): Fix typo.
41
42 2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
43
44         * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
45
46 2005-06-28  Richard Henderson  <rth@redhat.com>
47
48         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
49         saturating subtraction for QI and HImode unsigned compares.  Use
50         bit arithmetic tricks for SImode unsigned compares.
51         (ia64_expand_vcondu_v2si): Remove.
52         (ia64_expand_vecint_cmov): Don't call it.
53
54 2005-06-28  Richard Henderson  <rth@redhat.com>
55
56         * rtlanal.c (nonzero_bits1): Use the mode of the value for
57         determining integral-ness for comparisons.
58
59 2005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
60
61         * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
62
63 2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
64
65         * target.h (invalid_conversion, invalid_unary_op,
66         invalid_binary_op): New hooks.
67         * target-def.h (TARGET_INVALID_CONVERSION,
68         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
69         TARGET_INITIALIZER): Likewise.
70         * hooks.h (hook_constcharptr_tree_tree_null,
71         hook_constcharptr_int_tree_null,
72         hook_constcharptr_int_tree_tree_null): New.
73         * hooks.c (hook_constcharptr_tree_tree_null,
74         hook_constcharptr_int_tree_null,
75         hook_constcharptr_int_tree_tree_null): Likewise.
76         * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
77         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
78         * c-convert.c (convert): Use invalid_conversion hook.
79         * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
80         (build_binary_op): Use invalid_binary_op hook.
81         * config/ia64/ia64-modes.def: Define RFmode.
82         * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
83         (ia64_expand_movxf_movrf): New.
84         * config/ia64/ia64.md (movxf): Move code to
85         ia64_expand_movxf_movrf.
86         (movrf, movrf_internal): New.
87         * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
88         ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
89         TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
90         (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
91         Add mode parameter.  Make static.
92         (ia64_expand_movxf_movrf): New, moved from ia64.md.  Handle RFmode
93         as well as XFmode.
94         (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
95         ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
96         (ia64_init_builtins): Set up __fpreg as RFmode.
97         (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
98
99 2006-06-28  Adrian Straetling  <straetling@de.ibm.com>
100
101         * builtins.c: (expand_builtin_memset): Rewrite to support
102         'set_storage_via_setmem'.
103         * expr.c: (enum insn_code setmem_optab): Define.
104         (enum insn_code clrmem_optab): Remove.
105         (set_storage_via_setmem): New function.
106         (clear_storage_via_setmem): Remove.
107         (clear_storage): Replace call to "clear_storage_via_clrmem" with
108         "set_storage_via_setmem".
109         * expr.h: (set_storage_via_setmem): Declare.
110         (CLEAR_RATIO): Redefine using HAVE_setmemM.
111         * optabs.h: (enum insn_code setmem_optab): Declare.
112         (enum insn_code clrmem_optab): Remove.
113         * optabs.c: (init_optabs): Initialize setmem_optab.
114         (enum insn_code clrmem_optab): Remove.
115         * genopinit.c: (otabs): Likewise.
116         * doc/md.texi: Document new standard pattern 'setmem'. Remove
117           'clrmem'.
118         * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
119         'operands' ordering.
120         * config/frv/frv.c: (frv_expand_block_clear): Likewise.
121         * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
122         * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
123         FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
124         * config/avr/avr.md: ("clrmemhi"): Likewise.
125         * config/frv/frv.md: ("clrmemsi"): Likewise.
126         * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
127         * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
128         * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
129         * config/s390/s390.md: ("clrmem<mode>"): Likewise.
130
131 2005-06-28  Paul Brook  <paul@codesourcery.com>
132
133         * Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
134         * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
135         * except.c (add_ehspec_entry): Generate arm eabi filter lists.
136         (assign_filter_values): Ditto.
137         (output_ttype): New function.
138         (output_function_exception_table): Use output_ttype.  Generate arm
139         eabi filter lists.
140         (default_init_unwind_resume_libfunc): New function.
141         * except.h (default_init_unwind_resume_libfunc): Add prototype.
142         * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
143         * opts.c (decode_options): Use targetm.unwind_tables_default.
144         * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
145         (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
146         * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
147         and arm_eabi_unwinder.
148         * unwind-c.c: Support Arm EABI unwinder.
149         * unwind.h: Rename ...
150         * unwind-generic.h: ... To this.
151         * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
152         (TARGET_UNWID_TABLES_DEFAULT): Document.
153
154         * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
155         * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
156         (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
157         Define.
158         (thumb_pushpop, thumb_output_function_prologue): Output unwinding
159         directives.
160         (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
161         * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
162         !TARGET_UNWIND_INFO.
163         (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
164         * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
165         * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
166         ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
167         * config/arm/lib1funcs.asm: Include libunwind.S.
168         * config/arm/libgcc-bpabi.ver: Add unwinding routines.
169         * config/arm/libunwind.S: New file.
170         * config/arm/pr-support.c: New file.
171         * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
172         (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
173         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
174         * config/arm/unwind-arm.c: New file.
175         * config/arm/unwind-arm.h: New file.
176         * config/i386/t-netware (USER_H): Remove unwind.h.
177         * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
178
179 2005-06-28  DJ Delorie  <dj@redhat.com>
180
181         * c-decl.c (pop_scope): Move warning control into warning call.
182         (diagnose_mismatched_decls): Likewise.
183         (pushdecl): Likewise.
184         (start_decl): Likewise.
185         (grokparms): Likewise.
186         (start_function): Likewise.
187         (store_parm_decls_newstyle): Likewise.
188         (store_parm_decls_oldstyle): Likewise.
189         (finish_function): Likewise.
190         (declspecs_add_scspec): Likewise.
191         * c-format.c (decode_format_attr): Likewise.
192         (maybe_read_dollar_number): Likewise.
193         (avoid_dollar_number): Likewise.
194         (finish_dollar_format_checking): Likewise.
195         (check_format_info): Likewise.
196         (check_format_info_main): Likewise.
197         (check_format_types): Likewise.
198         (format_type_warning): Likewise.
199         * c-typeck.c (function_types_compatible_p): Likewise.
200         (build_array_ref): Likewise.
201         (convert_arguments): Likewise.
202         (build_c_cast): Likewise.
203         (store_init_value): Likewise.
204         (process_init_element): Likewise.
205         (c_start_case): Likewise.
206         * stor-layout.c (finalize_record_size): Likewise.
207         * tree-cfg.c (execute_warn_function_noreturn): Likewise.
208         * tree-inline.c (expand_call_inline): Likewise.
209
210 2005-06-28  Uros Bizjak  <uros@kss-loka.si>
211
212         PR target/22134
213         * config/i386/i386.md (fist<mode>2_with_temp splitter):
214         Clobber memory operand, not scratch register.
215
216 2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
217
218         * config/s390/s390.c (machine_function): New field has_landing_pad_p.
219         (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
220          s390_regs_ever_clobbered): New functions.
221         (s390_return_addr_rtx): Use get_hard_reg_initial_value.
222         (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
223         Use s390_regs_ever_clobbered.
224         (s390_emit_prologue): Don't use r14 as temp reg if its content is used
225         for builtin_return_address.
226         * config/s390/s390.md ("exception_receiver"): New expander.
227         * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
228         added.
229
230 2005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
231
232         * except.c (current_function_has_exception_handlers): Function 
233         description added and if statements merged.
234
235 2005-06-28  Richard Henderson  <rth@redhat.com>
236
237         * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
238         (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
239
240 2005-06-27  Richard Henderson  <rth@redhat.com>
241
242         * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
243         comparison operations.
244         (ia64_expand_vecint_minmax): Fix size of xops.
245         * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
246         (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
247
248 2005-06-27  Richard Henderson  <rth@redhat.com>
249
250         * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
251         type for DEF and INIT_VAL.  Pretend MIN/MAX need epilogue adjustment.
252
253 2005-06-27  Richard Henderson  <rth@redhat.com>
254
255         * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
256         (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
257
258 2005-06-27  Richard Henderson  <rth@redhat.com>
259
260         * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
261         duplicate little-endian adjustment.
262
263 2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
264
265         * doc/include/texinfo.tex: Import from upstream CVS.
266
267 2005-06-28  Jan Hubicka  <jh@suse.cz>
268
269         * cgraph.c (cgraph_remove_node): Do not release function bodies until
270         full cgraph is built.
271         * cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
272         * cgraphunit.c (cgraph_finalize_function): Update call of
273         cgraph_decide_inlining_incrementally.
274         (initialize_inline_failed): Break out of ...
275         (cgraph_analyze_function): ... here.
276         (rebuild_cgraph_edges): New function.
277         (pass_rebuild_cgraph_edges): New pass.
278         * common.opt (fearly-inlining): New flag.
279         * ipa-inline.c: Include ggc.h
280         (cgraph_clone_inlined_nodes): Avoid re-using of original copy
281         when cgraph is not fully built.
282         (cgraph_decide_inlining_incrementally): Add early mode.
283         (cgraph_early_inlining): New function.
284         (cgraph_gate_early_inlining): Likewise.
285         (pass_early_ipa_inline): New pass.
286         * ipa.c (cgraph_postorder): NULLify aux pointer.
287         * tree-inline.c (expand_call_inline): Avoid warning early.
288         * tree-optimize.c (pass_early_local_passes): New.
289         (execute_cleanup_cfg_pre_ipa): New.
290         (pass_cleanup_cfg): New.
291         (register_dump_files): Fix handling subpasses of IPA pass.
292         (init_tree_optimization_passes): Add early passes.
293         (execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
294         * passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
295         pass_early_ipa_inline): New passes.
296         * tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
297
298         * invoke.texi: Document early-inlining.
299
300 2005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
301
302         * doc/include/fdl.texi: Merge in changes from upstream.
303         * doc/include/gpl.texi: Likewise.
304
305 2005-06-27  Diego Novillo  <dnovillo@redhat.com>
306
307         PR 21959
308         * tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
309         casts between unsigned and signed types with different size
310         or precision.
311
312 2005-06-28  Jan Hubicka  <jh@suse.cz>
313
314         * tree-optimize.c (exercute_free_datastructures):
315         Do not disband implicit edges; do not attempt to build insn list;
316         do not free cfg annotations.
317         (execute_free_cfg_annotations); Disband implicit edges here;
318         free cfg annotations here too.
319         (pass_free_cfg_annotations); New pass.
320         (init_tree_optimization_passes); Add pass_free_cfg_annotations.
321         * tree-ssa-operands.c (free_ssa_operands); Recover; export.
322         * tree-ssa-operands.h (free_ssa_operands); declare.
323         * tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
324         kill PHI nodes.
325         * tree-ssanames.c (release_defs): Kill addresses_taken.
326
327         * basic-block.h (basic_block_def): Kill rbi.
328         (reorder_block_def): Kill; Remove next field (replaced by aux);
329         move other fields to ...
330         (rtl_bb_info): ... here.
331         * bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
332         copy_bb, connect_traces, add_labels_and_missing_jumps
333         fix_up_fall_thru_edges, fix_crossing_conditional_branches,
334         duplicate_computed_gotos, partition_hot_cold_basic-blocks):
335         Update to new fields.
336         * cfg.c (initialize_bb_rbi): Kill.
337         * cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
338         fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
339         * cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
340         (try_redirect_by_replacing_jump): Update rbi references.
341         (cfg_layout_split_block): Likewise.
342         (cfg_layout_delete_block): Likewise.
343         (cfg_layout_merge_blocks): Likewise.
344         * function.c (thread_prologue_and_epilogue_insns): Likewise.
345         * passes.c (rest_of_handle_sms): Likewise.
346         * tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
347
348 2005-06-27  David Edelsohn  <edelsohn@gnu.org>
349
350         * config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
351         in verbose_asm output.
352         * config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
353         CONFIG_PPC405CR.
354         * config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
355         405cr.
356
357 2005-06-27  Jakub Jelinek  <jakub@redhat.com>
358
359         * builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
360         (DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
361         (ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
362         (ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
363         ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
364         * builtins.c: Include tree-flow.h.
365         (expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
366         (expand_builtin_object_size, expand_builtin_memory_chk,
367         maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
368         compute_object_offset, compute_builtin_object_size,
369         fold_builtin_object_size): New functions.
370         (expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
371         (fold_builtin_1): Likewise.  Handle BUILT_IN_{,V}{,F}PRINTF
372         and BUILT_IN_{,F}PRINTF_UNLOCKED.
373         (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
374         fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
375         fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
376         fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
377         New functions.
378         * builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
379         BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
380         BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
381         BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
382         BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
383         BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
384         BUILT_IN_VPRINTF_CHK): New builtins.
385         * builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
386         Document.
387         (BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
388         BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
389         BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
390         BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
391         BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
392         BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
393         BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
394         BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
395         BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
396         * c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
397         DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
398         * Makefile.in (OBJS-common): Add tree-object-size.o.
399         (tree-object-size.o): Add dependencies.
400         * tree-pass.h (pass_object_sizes): Add.
401         * tree-optimize.c (init_tree_optimization_passes): Add
402         pass_object_sizes.
403         * tree-object-size.c: New file.
404         * tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
405         fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
406         compute_builtin_object_size, init_object_sizes, fini_object_sizes):
407         New prototypes.
408         * tree-ssa-ccp.c (get_strlen): Rename to ...
409         (get_maxval_strlen): ...this function.  Handle also computing of maximum
410         string length and maximum integral value.
411         (ccp_fold_builtin): Handle BUILT_IN_*_CHK.  Use get_maxval_strlen
412         instead of get_strlen.  Pass CALLEE and ARGLIST variables to the
413         folding functions instead of computing them again.
414         (execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
415         into some other builtin.
416         * doc/extend.texi (Object Size Checking): Document.
417
418         * regrename.c (copy_value): Fix comment.
419
420         * toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
421         instead of preprocessor conditionals.
422
423         * targhooks.c (default_hidden_stack_protect_fail): Fall back to
424         default_external_stack_protect_fail if visibility is not supported
425         or not flag_pic.
426         * config/i386/i386.c (ix86_stack_protect_fail): New function.
427         (TARGET_STACK_PROTECT_FAIL): Define.
428         * config/i386/i386.md (stack_protect_si): Change CLOBBER into
429         SET to zero.
430         (stack_protect_di): Likewise.  Use %k2 instead of %2 to avoid
431         invalid instruction xorl %rax, %rax.
432
433 2005-06-27  Richard Henderson  <rth@redhat.com>
434
435         * c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
436         * cfgexpand.c: Include params.h.
437         (has_protected_decls, has_short_buffer): New.
438         (expand_stack_vars): Take a predicate to determine what to expand.
439         (defer_stack_allocation): True when flag_stack_protect on.
440         (SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
441         (SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
442         (stack_protect_classify_type, stack_protect_decl_phase): New.
443         (stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
444         (add_stack_protection_conflicts, create_stack_guard): New.
445         (expand_used_vars): Add stack protection logic.
446         (tree_expand_cfg): Likewise.
447         * common.opt (Wstack-protector): New.
448         (fstack-protector, fstack-protector-all): New.
449         * function.c: Include predict.h.
450         (assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
451         wants to copy the parameter into the stack frame.
452         (stack_protect_prologue, stack_protect_epilogue): New.
453         (expand_function_end): Call stack_protect_epilogue.  Do 
454         sjlj_emit_function_exit_after after naked_return_label.
455         * function.h (struct function): Add stack_protect_guard.
456         * params.def (PARAM_SSP_BUFFER_SIZE): New.
457         * toplev.c (process_options): Disable flag_stack_protect and/or
458         warn_stack_protect based on FRAME_GROWS_DOWNWARD.
459         * tree.h (stack_protect_prologue): Declare.
460
461         * target-def.h (TARGET_STACK_PROTECT_GUARD): New.
462         (TARGET_STACK_PROTECT_FAIL): New.
463         (TARGET_INITIALIZER): Add them.
464         * target.h (struct gcc_target): Add stack_protect_guard and
465         stack_protect_fail.
466         * targhooks.c: Include ggc.h, gty header.
467         (stack_chk_guard_decl, default_stack_protect_guard): New.
468         (stack_chk_fail_decl, default_external_stack_protect_fail): New.
469         (default_hidden_stack_protect_fail): New.
470         * targhooks.h (default_stack_protect_guard): Declare.
471         (default_external_stack_protect_fail): Declare.
472         (default_hidden_stack_protect_fail): Declare.
473         * config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
474         * config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
475         (trap): Use ud2.
476         (conditional_trap, conditional_trap_1): Remove.
477         (stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
478         (stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
479         * doc/md.texi (stack_protect_set, stack_protect_test): New.
480         * doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
481         (TARGET_STACK_PROTECT_FAIL): New.
482
483         * libgcc-std.ver (GCC_4.1.0): New.
484         * libgcc.h (__stack_chk_guard): Declare.
485         (__stack_chk_fail, __stack_chk_fail_local): Declare.
486         * libgcc2.c (L_stack_chk, L_stack_chk_local): New.
487         * mklibgcc.in (lib2funcs): Add them.
488
489 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
490
491         PR c/21911
492         * c-common.c (check_function_sentinel): Pass in named argument
493         list, skip over named arguments before looking for a sentinel.
494         (check_function_arguments): Pass in named argument list.
495         * c-common.h (check_function_arguments): Likewise.
496         * c-typeck.c (build_function_call): Likewise.
497
498 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
499
500         * genautomata.c (decl_mode_check_failed,
501         regexp_mode_check_failed): Add noreturn attribute.
502
503 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
504
505         * cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
506         * doc/invoke.texi: Fix typos.
507
508         * builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
509         convert.c, lambda-code.c, predict.c, tree-cfg.c,
510         tree-complex.c, tree-data-ref.c, tree-if-conv.c,
511         tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
512         tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
513         tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
514         tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
515         tree.c: Use fold_buildN instead of fold (buildN (...)).
516
517 2005-06-26  Gerald Pfeifer  <gerald@pfeifer.com>
518
519         * doc/install.texi (Specific): Do not specify the concrete
520         versions of GCC provided by Cygwin.  Simplify the part on
521         building on Cygwin.
522
523 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
524
525         * config/arc/arc-protos.c: Remove the prototype for
526         arc_finalize_pic.
527         * config/arc/arc.c (arc_finalize_pic): Remove.
528         * config/arc/arc.h (FINALIZE_PIC): Likewise.
529         * config/bfin/bfin.h (FINALIZE_PIC): Likewise.
530         * config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
531
532 2005-06-26  Jakub Jelinek  <jakub@redhat.com>
533
534         PR middle-end/17965
535         * calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
536         instead of alloca for really big argument sizes.
537
538         PR middle-end/22028
539         * gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
540         earlier in the function.
541
542         * regrename.c (copy_value): Don't replace fixed or global
543         regs with older regs.
544
545         * defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
546         * function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
547         instead of preprocessor conditionals.
548         (assign_stack_local_1, assign_stack_temp_for_type): Likewise.
549         * cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
550         depending on if it was or was not defined previously.
551         * doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
552         definition of FRAME_GROWS_DOWNWARD means frame grows downward.
553         * doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
554         * config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
555         comment.
556         * config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
557         * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
558         * config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
559         * config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
560         * config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
561         * config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
562         * config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
563         * config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
564         comment.
565         * config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
566         * config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
567         * config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
568         * config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
569         * config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
570         * config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
571         * config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
572         * config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
573         * config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
574         * config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
575         * config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
576         * config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
577         * config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
578         * config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
579         * config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
580         * config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
581         * config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
582         * config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
583         * config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
584
585 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
586
587         PR tree-optimization/22026
588         * tree-vrp.c (extract_range_from_binary_expr): Drop to
589         VR_VARYING if a binary expression involving VR_ANTI_RANGE is
590         PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
591
592 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
593
594         * Makefile.in (OBJS-common): Remove duplicate object file
595         names.
596
597 2005-06-25  Jan Hubicka  <jh@suse.cz>
598
599         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
600         * cfg.c (update_bb_profile_for_threading): Fix rescaling.
601
602         * passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
603         when not neecesary
604         (rest_of_compilation): Fix conditional on branch prob pass.
605         * predict.c (tree_estimate_probability): Enable strip_builtin_expect
606         when not loop optimizing.
607
608 2005-06-25  Bernd Schmidt  <bernd.schmidt@analog.com>
609
610         * config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
611         New patterns.
612         (movbi): Add alternative to set CC to zero.
613         (compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
614         compare_ltu): Now named patterns.
615
616 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
617
618         * all files: Update FSF address in copyright headers.
619
620 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
621
622         * gengtype.c: Update FSF address in copyright header.
623         (create_file): Update FSF in outputed copyright header.
624
625 2005-06-24  Kazu Hirata  <kazu@codesourcery.com>
626
627         * cfglayout.c (block_locators_locs, line_locators_locs,
628         line_locators_lines, file_locators_locs): Change the type to
629         VEC(int,heap)*.
630         (insn_locators_initialize, change_scope, insn_scope,
631         locator_line, insn_line, locator_file): Use VEC instead of
632         VARRAY.
633
634 2005-06-24  Jason Merrill  <jason@redhat.com>
635
636         * tree-nrv.c (tree_nrv): Fix to check assignments to the
637         RESULT_DECL rather than just RETURN_EXPRs.
638         (finalize_nrv_r): Adjust.
639
640 2005-06-24  Jan Hubicka  <jh@suse.cz>
641
642         * tree-optimize.c (init_tree_optimization_passes): Fix flags of
643         all_passes and all_ipa_passes.
644
645         * c-common.c: Include cgraph.h
646         (handle_externally_visible_attribute): New function.
647         (c_common_att): Add "externally_visible" attribute.
648         * cgraph.c (decide_is_variable_needed): Obey externally
649         visible flag.
650         (cgraph_varpool_finalize_decl): Avoid redundant checking.
651         * cgraph.h (struct cgraph_node): New flag externally_visible.
652         (decide_is_function_needed): Obey externally visible flag.
653         (cgraph_finalize_function): Avoid redundant checks.
654         (cgraph_function_and_variable_visibility): Bring symbols local
655         when asked for.
656         * common.opt (fwhole-program): New flag.
657
658         * doc/invoke.texi (-fwhole-program): Document.
659
660 2005-06-24  Mark Mitchell  <mark@codesourcery.com>
661
662         PR 22171
663         * tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
664         before use.
665
666 2005-06-23  Mark Mitchell  <mark@codesourcery.com>
667
668         PR 22000
669         * tree-ssa-operands.c (get_expr_operands): Check the volatility of
670         the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
671
672 2005-06-24  Jan Hubicka  <jh@suse.cz>
673
674         * opts.c (decode_options): Enable unit-at-a-time by default at -O1.
675
676 2005-06-23  Jeff Law  <law@redhat.com>
677
678         * tree-optimize.c (init_tree_optimization_passes): Move
679         copy prop pass to run just before VRP.
680         * tree-vrp.c (remove_range_assertions): Remove copies created
681         by ASSERT_EXPR removal.
682
683 2005-06-23  Kazu Hirata  <kazu@codesourcery.com>
684
685         PR tree-optimization/22117
686         * tree-vrp.c (extract_range_from_binary_expr): Compute a
687         correct range when adding two pointers.
688
689 2005-06-23  Jason Merrill  <jason@redhat.com>
690
691         PR c++/19317
692         Leave the return slot target in the MODIFY_EXPR rather than making
693         it an argument, but only use it if the CALL_EXPR has a flag set.
694         * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
695         CALL_EXPR_RETURN_SLOT_OPT.
696         * calls.c (expand_call): Adjust.
697         * tree-inline.c (expand_call_inline): Adjust.
698         * tree-pretty-print.c (dump_generic_node): Adjust.
699
700         And set the flag as appropriate.
701         * gimplify.c (gimplify_modify_expr_rhs): Set
702         CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
703         * tree-nrv.c (execute_return_slot_opt): Set
704         CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
705         * tree-pass.h: Declare pass_return_slot.
706         * tree-optimize.c (init_tree_optimization_passes): Add it.
707         
708 2005-06-23  David Edelsohn  <edelsohn@gnu.org>
709
710         PR target/21760
711         * config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
712         * config/rs6000/rs6000.md: Move atomic instructions to ...
713         * config/rs6000/sync.md: Here.
714         Change sync_compare_and_swap<mode> to define_expand.  All stwcx
715         patterns test PPC405_ERRATUM77.
716
717 2005-06-23  Jan Hubicka  <jh@suse.cz>
718         
719         * tree-inline.c (copy_body_r): Remap labels correctly.
720
721 2005-06-22  Alan Modra  <amodra@bigpond.net.au>
722
723         * config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
724
725 2005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
726
727         PR middle-end/20593
728         * varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
729         the same as the other cast operands.
730         (output_addressed_constants): Likewise.
731
732 2005-06-21  Jeff Law  <law@redhat.com>
733
734         * tree-vrp.c (extract_range_from_unary_expr): Handle type
735         conversions better.
736
737 2005-06-21  Dorit Nuzman  <dorit@il.ibm.com>
738
739         * genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
740         (reduc_plus_optab): Removed.  Replcaed with...
741         (reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
742         * optabs.c (optab_for_tree_code): Return reduc_splus_optab or
743         reduc_uplus_optab instead of reduc_plus_optab.
744         (expand_vec_shift_expr): New function.
745         (init_optabs): Initialize new optabs. Remove initialization of
746         reduc_plus_optab.
747         (optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
748         for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
749         * optabs.h (OTI_reduc_plus): Removed. Replaced with...
750         (OTI_reduc_splus, OTI_reduc_uplus): New.
751         (reduc_plus_optab): Removed.  Replcaed with...
752         (reduc_splus_optab, reduc_uplus_optab): New optabs.
753         (vec_shl_optab, vec_shr_optab): New optabs.
754         (expand_vec_shift_expr): New function declaration.
755
756         * tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
757         * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
758         * expr.c (expand_expr_real_1): Handle new tree-codes.
759         * tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
760         * tree-vect-generic.c (expand_vector_operations_1): Add assert.
761
762         * tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
763         alternatives for generating reduction epilog code.
764         (vectorizable_reduction): Don't fail of direct reduction support is
765         not available.
766         (vectorizable_target_reduction_pattern): Likewise.
767
768         * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
769         reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
770         reduc_plus_v4si, reduc_plus_v4sf): Removed.
771         (vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
772         reduc_splus_<mode>, reduc_uplus_v16qi): New.
773
774 2005-06-20  Daniel Berlin  <dberlin@dberlin.org>
775
776         * c-typeck.c (build_function_call): Set fundecl = function again.
777         * tree-ssa-alias.c (find_used_portions): Address taking causes the
778         entire variable to be used.
779         * tree-ssa-structalias.c (do_structure_copy): Fix handling of
780         unknown size variables, and structure copies from addressof
781         operations.  Simplify how we do *a = *b type structure copies.
782         (init_base_vars): Add ANYTHING = &ANYTHING constraint the right
783         way.  READONLY's address is not taken by default.
784         INTEGER dereference should point to anything.
785         (create_variable_info_for): It's okay for the first field to not start
786         at 0.
787
788 2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
789
790         config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
791
792 2005-06-20  Roger Sayle  <roger@eyesopen.com>
793 2005-06-20  Fariborz Jahanian <fjahanian@apple.com>
794
795         * combine.c (simplify_set): Simplify setting of CC register
796         by removing redundant compare with 0 on RHS.
797
798 2005-06-20  Jan Beulich  <jbeulich@novell.com>
799
800         * config/i386/netware-libgcc.def: Update copyright.
801         * config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
802         __muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
803         * config/i386/netware.c (gen_stdcall_decoration,
804         gen_fastd_decoration): Merge into ...
805         (gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
806         WinNT's changes.
807         (gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
808         (i386_nlm_encode_section_info): Adjust to match WinNT's changes.
809         * config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
810         libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
811         * gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
812         use of NX_MUTEX_RECURSIVE.
813
814 2005-06-19  Roger Sayle  <roger@eyesopen.com>
815
816         * fold-const.c (swap_tree_comparison): Add support for unordered
817         floating point comparisons.
818         * tree-vrp.c (opposite_comparison): Delete.
819         (extract_range_from_assert): Replace calls to opposite_comparison
820         with calls to swap_tree_comparison.
821         (register_edge_assert_for): Likewise.
822         (vrp_evaluate_conditional): Likewise.
823
824 2005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
825
826         * integrate.c (allocate_initial_values): Update the references
827         to global_live_at_start and global_live_at_end.
828
829 2005-06-20  Jan Hubicka  <jh@suse.cz>
830
831         * cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
832         * cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
833         when asked for.
834         * loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
835         unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
836         Update call of duplicate_loop_to_header_edge.
837         (apply_opt_in_copies): Clear out aux pointers.
838
839 2005-06-19  Joseph S. Myers  <joseph@codesourcery.com>
840
841         * config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
842         (ix86_mangle_fundamental_type): New.
843         * config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
844         (ia64_mangle_fundamental_type): New.
845
846 2005-06-19  Roger Sayle  <roger@eyesopen.com>
847
848         * c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
849         INTEGER_CST nodes.
850         * c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
851         CONSTANT_CLASS_P nodes.
852
853 2005-06-19  Richard Henderson  <rth@redhat.com>
854
855         * config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
856         the shift is always required.
857
858 2005-06-19  Richard Henderson  <rth@redhat.com>
859
860         * config/ia64/ia64-modes.def (V4SF): Add.
861         * config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
862         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to 
863         integer mode changes in fp regs.
864         * config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
865         * config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
866         (reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
867         (vcondv2sf): Use gen_fpack
868         (fpack): Remove * from name.
869         (fswap, fmix_l, fmix_r, fmix_lr): New.
870         (vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
871         (vec_extractv2sf_1, vec_extractv2sf): New.
872
873 2005-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
874
875         * combine.c (make_compound_operation): Use simplify_subreg.  Delete
876         a optimization already done by simplify_subreg.
877
878 2005-06-19  Ulrich Weigand  <uweigand@de.ibm.com>
879
880         * loop.c (scan_loop): Do not consider insns setting the frame
881         pointer to be candidates for hoisting.
882
883 2005-06-19  Uros Bizjak  <uros@kss-loka.si>
884
885         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
886         Remove instruction patterns.
887         (*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
888         (*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
889         Set "unit" attribute to "i387".
890         (*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
891         (*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
892         for alternative 0.
893         (*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
894         (*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
895         attribute to "i387" when "type" attribute equals "multi".
896         (*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
897         (*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
898         (*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
899         (*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
900         attribute to "i387" when "type" attribute equals "multi".
901         * config/i386/mmx.md (*mov<mode>_internal_rex64)
902         (*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
903         Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
904         (mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
905         * config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
906         (sse_cvttpd2pi): Set "unit" attribute to "mmx".
907         (sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
908         to "mmx" for "y" operand 1.
909
910 2005-06-19  Uros Bizjak  <uros@kss-loka.si>
911
912         * config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
913         for TARGET_MMX.  Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
914         and SSE registers to determine if regno is valid.
915         (ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
916         TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
917
918 2005-06-18  Richard Henderson  <rth@redhat.com>
919
920         * tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
921         for control-altering statements; set it again for returns.
922         (complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
923         not MODIFY_EXPR.
924
925 2005-06-18  Richard Henderson  <rth@redhat.com>
926
927         PR tree-opt/22116
928         * tree-ssa-pre.c (create_expression_by_pieces): Set
929         DECL_COMPLEX_GIMPLE_REG_P.
930         (insert_into_preds_of_block): Likewise.
931
932 2005-06-18  Steven Bosscher  <stevenb@suse.de>
933
934         * Makefile.in: Fix tree-cfgcleanup.c dependencies.
935
936 2005-06-18  Richard Henderson  <rth@redhat.com>
937
938         * expr.c (store_constructor): Use store of 0 to indicate value
939         death instead of a clobber.
940
941         * config/i386/i386.c (ix86_expand_reduc_v4sf): New.
942         * config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
943         * config/i386/sse.md (reduc_plus_v4sf): New.
944         (reduc_smax_v4sf, reduc_smin_v4sf): New.
945
946 2005-06-18  James A. Morrison  <phython@gcc.gnu.org>
947
948         * fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
949         nonnegative values of X.
950
951 2005-06-18  Uros Bizjak  <uros@kss-loka.si>
952
953         * doc/md.texi (Standard Names): Change insn pattern name
954         from truncM2 to btruncM2 for 'trunc' built-in description.
955         Add rintM2 insn pattern description.
956
957 2005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
958
959         * c-decl.c (locate_old_decl): Add format attribute.
960         (implicit_decl_warning): Likewise.
961
962         * diagnostic.h (verbatim): Move ...
963         * toplev.h (verbatim): ... here.  Add ATTRIBUTE_GCC_DIAG.
964         * pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
965
966 2005-06-18  Roger Sayle  <roger@eyesopen.com>
967
968         PR target/22083
969         * config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
970
971 2005-06-18  Dorit Nuzman  <dorit@il.ibm.com>
972
973         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
974         tree-codes.
975         * optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
976         OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction. 
977         (reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
978         reduc_plus_optab): New optabs for reduction.
979         * expr.c (expand_expr_real_1): Handle new tree-codes.
980         * tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
981         * tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
982         new tree-codes.
983         * optabs.c (optab_for_tree_code): Handle new tree-codes.
984         (init_optabs): Initialize new optabs.
985         * genopinit.c (optabs): Define handlers for new optabs. 
986
987         * tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
988         case of a phi that is marked as relevant. Call vectorizable_reduction.
989         (vect_mark_relevant): Phis may be marked as relevant.
990         (vect_mark_stmts_to_be_vectorized): The use corresponding to the 
991         reduction variable in a reduction stmt does not mark its defining phi
992         as relevant. Update documentation accordingly.
993         (vect_can_advance_ivs_p): Skip reduction phis.
994         * tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
995         additional argument. Handle reduction.
996         (vect_create_destination_var): Update call to vect_get_new_vect_var.
997         Handle non-vector argument.
998         (get_initial_def_for_reduction): New function.
999         (vect_create_epilog_for_reduction): New function. 
1000         (vectorizable_reduction): New function.
1001         (vect_get_new_vect_var): Handle new vect_var_kind.       
1002         (vectorizable_assignment, vectorizable_operation, vectorizable_store,
1003         vectorizable_condition): Update call to vect_get_new_vect_var.
1004         (vect_transform_stmt): Call vectorizable_reduction.
1005         (vect_update_ivs_after_vectorizer): Skip reduction phis.
1006         (vect_transform_loop): Skip if stmt is both not relevant and not live.
1007         * tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1008         (vect_is_simple_reduction): Was empty - added implementation.
1009         * tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1010         (reduc_vec_info_type): New enum vect_def_type value.
1011         * config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1012         reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1013         reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1014
1015         * tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1016         ENABLE_CHECKING around gcc_assert.
1017         * tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1018         (vect_do_peeling_for_alignment, vect_transform_loop, 
1019         vect_get_vec_def_for_operand): Likewise.
1020
1021 2005-06-18  Joseph S. Myers  <joseph@codesourcery.com>
1022
1023         * config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1024         big-endian unnamed __float80 value.
1025
1026 2005-06-18  Richard Henderson  <rth@redhat.com>
1027
1028         PR tree-opt/22103
1029         * tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1030         destinations.
1031
1032 2005-06-17  Richard Henderson  <rth@redhat.com>
1033
1034         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1035         initialize_original_copy_tables and free_original_copy_tables.
1036         (vect_do_peeling_for_alignment): Likewise.
1037
1038 2005-06-17  Pat Haugen  <pthaugen@us.ibm.com>
1039
1040         * bb-reorder.c (find_traces_1_round): Use succ block frequency
1041         instead of edge frequency for calls to better_edge_p.
1042
1043 2005-06-17  Andrew Pinski  <pinskia@physics.uc.edu>
1044
1045         PR tree-opt/22105
1046         * tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1047
1048 2005-06-17  Steve Ellcey  <sje@cup.hp.com>
1049
1050         PR target/19889
1051         * config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1052         (PROFILE_HOOK): New.
1053         (PROFILE_BEFORE_PROLOGUE): Undef.
1054         (NO_PROFILE_COUNTERS): New.
1055         * config/ia64/ia64-protos.h (ia64_profile_hook): New.
1056         * config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1057         (gen_mcount_func_rtx): New.
1058         (ia64_profile_hook): New.
1059         * config/ia64/ia64.md (ip_value): New.
1060
1061 2005-06-17  Devang Patel  <dpatel@apple.com>
1062
1063         * config/rs6000/predicates.md (s5bit_cint_operand,
1064         u5bit_cint_operand): New.
1065         * config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1066         altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1067         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1068         5 bit constant check.
1069         
1070 2005-06-17  Richard Henderson  <rth@redhat.com>
1071
1072         * local-alloc.c (update_equiv_regs): Update reg_equiv_init
1073         properly when moving an initialization insn.
1074
1075 2005-06-17  Paolo Bonzini  <bonzini@gnu.org>
1076
1077         * aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1078         passed variable.
1079         * configure.ac: Regenerate.
1080
1081 2005-06-17  Jan Hubicka  <jh@suse.cz>
1082
1083         * tree-optimize.c (execute_ipa_pass_list): New.
1084         (ipa_passes): Use it.
1085
1086 2005-06-16  Richard Henderson  <rth@redhat.com>
1087
1088         PR tree-opt/22022
1089         * tree-complex.c (update_phi_components): Avoid no-op moves.
1090
1091 2005-06-16  Joseph S. Myers  <joseph@codesourcery.com>
1092
1093         * Makefile.in (cc1-checksum.c): Use
1094         build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1095
1096 2005-06-16  Geoffrey Keating  <geoffk@apple.com>
1097
1098         * gengtype.c (adjust_field_rtx_def): Don't add a skip to
1099         basic_block types.
1100
1101         * config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1102         SHLIB_MINOR.
1103         (SHLIB_REVISION): Delete.
1104         (SHLIB_VERSTRING): Update to compensate.
1105         (SHLIB_SONAME): Just use one '.' in the name.
1106
1107 2005-06-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1108
1109         PR tree-optimization/22018
1110         * tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1111
1112 2005-06-16  Richard Henderson  <rth@redhat.com>
1113
1114         PR tree-opt/22035
1115         * builtins.c (fold_builtin_complex_mul): Remove.
1116         (fold_builtin_complex_div): Remove.
1117         (fold_builtin_1): Don't call them.
1118         * fold-const.c (fold_complex_add, fold_complex_mult_parts,
1119         fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1120         (fold_binary): Don't call them.  Don't expand complex comparisons to
1121         elementary comparisons.
1122         * tree-complex.c (init_dont_simulate_again): Enhance search for 
1123         stmts that require decomposition.
1124         (complex_visit_stmt): Handle RETURN_EXPR properly.
1125         (create_components): Handle no referenced variables properly.
1126         * tree.h (fold_complex_mult_parts): Remove.
1127         (fold_complex_div_parts): Remove.
1128
1129 2005-06-16  Richard Guenther  <rguenth@gcc.gnu.org>
1130
1131         * doc/extend.texi: Document sseregparm target attribute.
1132         Clarify fastcall and regparm documentation.
1133         * config/i386/i386.h: Adjust float_in_sse documentation.
1134         * config/i386/i386.c: Add new target attribute sseregparm.
1135         (ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1136         Merge into ...
1137         (ix86_handle_cconv_attribute): ... here.  Also handle
1138         sseregparm attribute.
1139         (ix86_comp_type_attributes): Compare sseregparm attributes.
1140         (ix86_function_sseregparm): New function, split out from ...
1141         (init_cumulative_args): ... here.  Use to decide use
1142         of SSE registers and error in case of missing support.
1143         (ix86_value_regno): Likewise.
1144         (function_arg_advance): Do not bail out for DFmode if we need
1145         to pass doubles in registers.
1146         (function_arg): Likewise.
1147
1148 2005-06-16  Paolo Bonzini  <bonzini@gnu.org>
1149             Daniel Jacobowitz  <dan@codesourcery.com>
1150             Alan Modra <amodra.bigpond.net.au>
1151
1152         * configure.ac (gcc_version): Set near the beginning.
1153         (as, ld, nm): Do not link in-tree tools.  Set gcc_cv_* if tools are
1154         found in the tree.  Use gcc_AC_PROG to find the tools in the system.
1155         (objdump): Do not look for it.
1156         * Makefile.in (NM_FOR_TARGET): Point to ./nm
1157         (ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1158         ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1159         (as, ld, nm): New rules.
1160         (libgcc.mk): Depend on them.
1161         * aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1162         gcc_AC_BUILD_EXEEXT): New.
1163         (gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1164         * configure: Regenerate.
1165
1166 2005-06-16  Jan Hubicka  <jh@suse.cz>
1167
1168         * basic-block.h (rtl_bb_info): Break out head_, end_,
1169         global_live_at_start, global_live_at_end from ...
1170         (basic_block_def): ... here; update all references
1171         (BB_RTL): New flag.
1172         (init_rtl_bb_info): Declare.
1173         * cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1174         flag.
1175         * cfgrtl.c: Include ggc.h
1176         (create_basic_block_structure): Init bb info.
1177         (rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1178         (init_rtl_bb_info): New function.
1179         (rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1180         * cfghooks.c (merge_block): Do not copy global_live_at_end here.
1181         * cfg.c (clear_bb_flags): Skip BB_RTL flag.
1182         (dump_flow_info): Gueard global_live_* dumping.
1183
1184         * Makefile.in (cfg.o): Add new dependencies.
1185         * basic-block.h (reorder_block_def): Kill
1186         original/copy/duplicated/copy_number fields.
1187         (BB_DUPLICATED): New flag.
1188         (initialize_original_copy_tables, free_original_copy_tables,
1189         set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1190         * cfg.c: Include hashtab.h and alloc-pool.h
1191         (bb_original, bb_copy, original_copy_bb_pool): New static vars.
1192         (htab_bb_copy_original_entry): New struct.
1193         (bb_copy_original_hash, bb_copy_original_eq): New static functions.
1194         (initialize_original_copy_tables, free_original_copy_tables,
1195         set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1196         global functions.
1197         * cfghooks.c (duplicate_block): Update original/copy handling.
1198         * cfglayout.c (fixup_reorder_chain): Likewise.
1199         (cfg_layout_initialize): Initialize orignal_copy tables.
1200         (cfg_layout_finalize): FInalize original_copy tables.
1201         (can_copy_bbs_p): Use BB_DUPLICATED flag.
1202         (copy_bbs): Likewise.
1203         * cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1204         (duplicate_loop_to_header_edge): Likewise; update handling of
1205         copy_number.
1206         (loop_version): Likewise.
1207         * dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1208         * except.c (expand_resx_expr): Check that reg->resume is not set.
1209         * loop-unroll.c (unroll_loop_constant_iterations,
1210         unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1211         copy/original handling.
1212         * loop-unwitch.c (unswitch_loop): Likewise.
1213         * tree-cfg.c (create_bb): Do not initialize RBI.
1214         (disband_implicit_edges): Do not kill RBI.
1215         (add_phi_args_after_copy_bb): Use new original/copy mapping.
1216         (add_phi_args_after_copy): Use BB_DUPLICATED flag.
1217         (tree_duplicate_sese_region): Update original/copy handling.
1218         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1219         * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1220         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1221
1222 2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1223
1224         PR tree-opt/21923
1225         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1226         integer types whos ranges are different are not useless.
1227
1228 2005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1229
1230         PR tree-opt/22024
1231         * tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1232         rank.
1233
1234 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1235
1236         * tree-ssa-structalias.c (dump_solution_for_var): Reformat
1237         output.
1238         (dump_sa_points_to_info): Make extern.
1239         (debug_sa_points_to_info): New.
1240         * tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1241         TREE_ALIAS_COMMON.
1242         (dump_sa_points_to_info): Declare.
1243         (debug_sa_points_to_info): Declare.
1244
1245 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
1246
1247         * c-tree.h (default_function_array_conversion): Declare.
1248         * c-typeck.c (default_function_array_conversion): Export.  Correct
1249         comment.
1250         (default_conversion): Do not call
1251         default_function_array_conversion.  Do not allow FUNCTION_TYPE.
1252         (build_function_call): Call default_function_array_conversion on
1253         the function.
1254         (convert_arguments): Do not call it on the function arguments.
1255         (build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1256         TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
1257         address of ARRAY_REF.
1258         (build_compound_expr): Do not call
1259         default_function_array_conversion.
1260         (build_c_cast): Do not call default_function_array_conversion.
1261         (convert_for_assignment): Do not call default_conversion.
1262         (digest_init): Call default_function_array_conversion to convert
1263         string constants and compound literals to pointers, but not
1264         otherwise.
1265         (output_init_element): Likewise.
1266         (build_asm_expr): Do not call default_function_array_conversion.
1267         (c_process_expr_stmt): Likewise.
1268         (c_objc_common_truthvalue_conversion): Likewise.  Do not allow
1269         FUNCTION_TYPE.
1270         * c-parser.c (c_parser_expression_conv): New.
1271         (c_parser_asm_operands, c_parser_expr_list): Add convert_p
1272         argument.  All callers changed.  Call
1273         default_function_array_conversion if convert_p.
1274         (c_parser_initializer, c_parser_initval): Call
1275         default_function_array_conversion except for string constants and
1276         compound literals.
1277         (c_parser_initelt): Call default_function_array_conversion for
1278         ObjC expression received.
1279         (c_parser_statement_after_labels): Call c_parser_expression_conv
1280         for return and expression statements.
1281         (c_parser_paren_condition, c_parser_for_statement,
1282         c_parser_conditional_expression): Call c_parser_expression_conv.
1283         (c_parser_expr_no_commas, c_parser_conditional_expression,
1284         c_parser_binary_expression, c_parser_cast_expression,
1285         c_parser_unary_expression): Call
1286         default_function_array_conversion.
1287
1288 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1289
1290         * tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
1291         when the result overflows.
1292
1293 2005-06-15  David Ung  <davidu@mips.com>
1294
1295         * config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
1296         24k and 24kx.
1297         
1298 2005-06-15  Richard Sandiford  <richard@codesourcery.com>
1299
1300         * doc/invoke.texi (-mips16): Fix typo.
1301
1302 2005-06-15  David Ung  <davidu@mips.com>
1303
1304         * config/mips/mips.h (GENERATE_MIPS16E): New definition.
1305         * config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
1306         Changed expand condition to exclude generating of "and" if
1307         GENERATE_MIPS16E is true.
1308         (*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
1309         matching mips16e zeb/zeh.
1310         (*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
1311         mips16e seb/seh. 
1312         (*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
1313         GENERATE_MIPS16E. 
1314         * doc/invoke.texi (MIPS Options): Add comment to -mips16
1315         indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
1316         
1317 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
1318
1319         PR 22018
1320         * tree-vrp.c (vrp_int_const_binop): New.
1321         (extract_range_from_binary_expr): Call it.
1322         Unify handling division and multiplication.
1323
1324 2005-06-15  Aldy Hernandez  <aldyh@redhat.com>
1325
1326         * c-common.h (same_scalar_type_ignoring_signedness): Protoize.
1327
1328         * c-common.c (same_scalar_type_ignoring_signedness): New.
1329
1330         * c-typeck.c (build_binary_op): Check compatability of vector
1331         types.  Move error report after switch.
1332         Do not clobber code[01] on *_DIV_EXPR case.
1333
1334         * testsuite/gcc.dg/simd-1.c: Update error messages.
1335         * testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
1336         messages.
1337         * testsuite/gcc.dg/simd-2.c: Update error messages.
1338         * testsuite/gcc.dg/simd-4.c: New.
1339
1340 2005-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1341
1342         * Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
1343         * local-alloc.c: Include "ggc.h" and "reload.h".
1344         (struct equivalence): New member is_arg_equivalence.
1345         (local_alloc): Always call update_equiv_regs.
1346         (update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
1347         Detect equivalences made by stores to memory in a second pass.
1348         Return early if not optimizing.
1349         Initialize reg_equiv_init for all equivalences; treat equivalences for
1350         REG_EQUIV notes existing before this pass specially.
1351         (no_equiv): Don't clear reg_equiv_init or remove notes if the
1352         is_arg_equivalence field is set.
1353         * reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
1354         * reload1.c (reg_equiv_init): No longer static.
1355         (reg_equiv_init_size): New variable.
1356         (reload): Don't allocate reg_equiv_init; don't free it when done but
1357         clear it.
1358         Restructure equivalence set up code not to set reg_equiv_init, but to
1359         clear it when we can't use an equivalence.
1360         Undo change disabling equivalences for MEM_READONLY_P memrefs.
1361         Dump equivalencing insns to dump_file.
1362
1363 2005-06-14  Richard Sandiford  <richard@codesourcery.com>
1364
1365         * config/mips/mips.c (machine_function): Add varargs_size field.
1366         (mips_setup_incoming_varargs): Store the amount of extra stack space
1367         there rather than in *pretend_size.  When saving registers, always
1368         expect virtual_incoming_args_rtx to point to the start of the
1369         pretend arguments.
1370         (mips_va_start): Remove alignment hack.  Handle all
1371         !EABI_FLOAT_VARARGS_P cases in the same way.
1372         (compute_frame_size): Handle varargs_size.  Remove the redundant
1373         !TARGET_OLDABI condition in the handling of pretend_args_size.
1374         (mips_initial_elimination_offset): Remove the now-redundant check
1375         of TARGET_NEWABI.
1376
1377 2005-06-14  Jeff Law  <law@redhat.com>
1378
1379         * tree-vrp.c (local_fold): Remove.
1380         (simplify_using_ranges): Use fold_convert, not local_fold.  Tweak
1381         DIV/MOD case slightly for readability.
1382
1383 2005-06-14  Frank Ch. Eigler  <fche@redhat.com>
1384
1385         PR mudflap/21023
1386         * tree-mudflap.c (mudflap_finish_file): Exclude non-public
1387         rather than static objects (!) from libmudflap registration.
1388
1389 2005-06-14  Richard Sandiford  <richard@codesourcery.com>
1390
1391         * opt-functions.awk (global_state_p, needs_state_p, static_var): New.
1392         (var_ref): Take the option's flags as a second parameter.  Check
1393         static_var.
1394         * optc-gen.awk: Declare local state variables.  Pass flags to var_ref.
1395
1396 2005-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1397
1398         PR target/20301
1399         * config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
1400         unsigned index numbers.
1401
1402 2005-06-13  Geoffrey Keating  <geoffk@apple.com>
1403
1404         * Makefile.in (install-man): Doesn't really depend on installdirs.
1405         (various rules for installing manpages): Do depend on installdirs.
1406
1407 2005-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1408
1409         * unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
1410         read_encoded_value_with_base call.
1411         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1412         * unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
1413         * unwind-dw2.c (extract_cie_info): Fix aliasing in
1414         read_encoded_value call.
1415         (execute_cfa_program, uw_frame_state_for): Likewise.
1416
1417 2005-06-13  Roger Sayle  <roger@eyesopen.com>
1418
1419         PR rtl-optimization/22053
1420         * reg-stack.c (compensate_edge): Correct mistake in the assertion
1421         checking of EDGE_ABNORMAL_CALL edges; complex return values can
1422         result in the top two stack slots, st(0) and st(1), being live.
1423
1424 2005-06-13  Jeff Law  <law@redhat.com>
1425
1426         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
1427         simplify DIV, MOD or ABS expressions using VRP information.
1428         Remove WALK_DATA parameter.  Prototype and all callers updated.
1429         (eliminate_redundant_computations): Remove WALK_DATA parameter.
1430         Prototype and all callers updated.
1431         (optimize_stmt): WALK_DATA parameter is now unused.
1432
1433         * tree-vrp.c (local_fold): New function.  Like fold, but
1434         strips useless type conversions in the result.
1435         (simplify_using_ranges): New function, largely cribbed from
1436         tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
1437         (vrp_finalize): Call simplify_using_ranges.
1438
1439 2005-06-13  Mark Mitchell  <mark@codesourcery.com>
1440
1441         * config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
1442         assembler in 64-bit mode.
1443
1444 2005-06-13  David Edelsohn  <edelsohn@gnu.org>
1445
1446         Revert scc_operand patch.
1447         * config/rs6000/predicates.md (scc_operand): Delete.
1448         * config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
1449
1450 2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
1451
1452         PR middle-end/21985
1453         * fold-const.c (split_address_to_core_and_offset): Always return
1454         the address of the base object.
1455
1456 2005-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1457
1458         * doc/invoke.texi (Blackfin Options): Document -mlong-calls.
1459
1460 2005-06-12  Richard Henderson  <rth@redhat.com>
1461
1462         PR tree-opt/21994
1463         * tree-complex.c (update_complex_components_on_edge): New.
1464         (update_parameter_components): Use it.
1465         (update_phi_components): Likewise.
1466         (expand_complex_move): Likewise for is_ctrl_altering_stmt.
1467
1468 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1469
1470         PR tree-optimization/14796
1471         * fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
1472         for unsigned types.
1473
1474 2005-06-12  Kazu Hirata  <kazu@codesourcery.com>
1475
1476         * cgraphunit.c, tree-ssa-loop-ivopts.c,
1477         tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
1478         config/sparc/sparc.c: Fix comment typos.
1479
1480 2005-06-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1481
1482         * arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
1483         (aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
1484         * arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
1485         (aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
1486
1487 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1488
1489         PR tree-optimization/14796
1490         * fold-const.c (fold_binary): Transform (A >> C) << C into
1491         one BIT_AND_EXPR.
1492         <shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
1493
1494 2005-06-11  Geoffrey Keating  <geoffk@apple.com>
1495
1496         * config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
1497         (reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
1498         Handle SImode.
1499         (reg_or_sub_cint_operand): Likewise.
1500         (mask_operand): Handle DImode.
1501         (mask64_operand): Delete.
1502         (and64_operand): Delete.
1503         * config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
1504         instead of mask64_operand.
1505         (print_operand): Likewise.
1506         (rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
1507         reg_or_sub_cint_operand instead of *64_* variants.
1508         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
1509         instead of mask64_operand.
1510         * config/rs6000/rs6000.md: Use mask_operand and and_operand instead
1511         of *64_* variants.
1512         (FP): New.
1513         (add_op2): Delete.
1514         (add<mode>3): Use reg_or_add_cint_operand.
1515         (sub_op2): Delete.
1516         (sub<mode>3): Use reg_or_sub_cint_operand.
1517         (udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
1518         mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
1519         cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
1520         ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
1521         ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
1522         return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
1523         various unnamed patterns): New.
1524         (udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
1525         cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
1526         ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
1527         return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
1528         udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
1529         cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
1530         ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
1531         return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
1532         movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
1533         Delete.
1534
1535 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1536
1537         * rtl.h (to_rtx_code): Remove.
1538         * machmode.h (to_machine_mode): Likewise.
1539         * read-rtl.c (apply_mode_macro): Replace to_machine_mode with
1540         explicit cast.
1541         (apply_mode_maps): Likewise.
1542         (read_rtx_1): Likewise.
1543         (apply_code_macro): Replace to to_rtx_code with explicit cast.
1544         (check_code_macro): Likewise.
1545         (read_rtx_1): Likewise.
1546
1547 2005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1548
1549         * c-typeck.c (convert_for_assignment): Avoid checking
1550         OPT_Wc___compat, as it is always true.
1551
1552 2005-06-11  David Edelsohn  <edelsohn@gnu.org>
1553
1554         * config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
1555
1556 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
1557
1558         Fix PR tree-optimization/22005
1559         Fix PR tree-optimization/22025
1560         
1561         * tree-ssa-structalias.c (struct variable_info): Add has_union
1562         member.
1563         (create_variable_info_for):  Mark variables containing unions.
1564         Don't sort the field stack if notokay is true.
1565         (find_what_p_points_to): Convert variables containing unions back
1566         to their SFT's if necessary.
1567         
1568 2005-06-11  Daniel Berlin  <dberlin@dberlin.org>
1569
1570         * lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
1571         is an INTEGER_CST before calling int_cst_value.
1572
1573 2005-06-10  Uros Bizjak  <uros@kss-loka.si>
1574
1575         PR target/21981
1576         * config/i386/i386.c (ix86_function_value_regno_p): Return true
1577         for FIRST_MMX_REG if TARGET_MMX.
1578         (ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
1579         wrong comment.
1580         (ix86_struct_value_rtx): Emit warning for MMX ABI violations.
1581         (ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
1582
1583 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
1584
1585         * lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
1586         and access function against chrec_dont_know.
1587           
1588 2005-06-10  Daniel Berlin  <dberlin@dberlin.org>
1589
1590         * lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
1591         slightly.
1592         (exit_phi_for_loop_p): New function.
1593         (can_put_in_inner_loop): Ditto.
1594         (can_convert_to_perfect_nest): Ditto.
1595         (perfect_nestify): Create iv with right type.
1596         Rewrite statements in correct order.    
1597
1598 2005-06-10  Keith Besaw  <kbesaw@us.ibm.com>
1599
1600         * tree-ssa-alias.c (new_type_alias): Use existing type
1601         tag if VAR has just one in its may_aliases list.
1602
1603 2005-06-10  Fariborz Jahanian <fjahanian@apple.com>
1604
1605         * rs6000/predicates.md (scc_operand): New.
1606         * rs6000/rs6000.md : Use scc_operand for eq:SI compares.
1607
1608 2005-06-10  Dorit Nuzman  <dorit@il.ibm.com>
1609
1610         * tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
1611         dependence-distance modulo VF is 0 are recorded in the 
1612         SAME_ALIGN_REFs VEC in each DR.
1613         (vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
1614         alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
1615         DR we want to peel for, is set to 0.
1616         * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
1617         * tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
1618         VEC.
1619         * tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
1620         (_stmt_vec_info): Added new field same_align_refs.
1621         (STMT_VINFO_SAME_ALIGN_REFS): New macro.
1622
1623 2005-06-10  Nathan Sidwell  <nathan@codesourcery.com>
1624
1625         * vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
1626
1627 2005-06-10  Alan Modra  <amodra@bigpond.net.au>
1628
1629         * config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
1630         * config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
1631         * config/rs6000/rs6000.c (output_function_profiler): Obey
1632         NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
1633         for -fPIC.  Delete save_lr and substitute its value into strings.
1634
1635 2005-06-09  Dale Johannesen  <dalej@apple.com>
1636
1637         * config/i386/i386.c (optimization_options):  Make -fno-math-errno
1638         the default on Darwin.
1639         * config/rs6000/rs6000.c (optimization_options):  Ditto.
1640         * doc/invoke.texi (-fno-math-errno): Document.
1641
1642 2005-06-09  Dale Johannesen  <dalej@apple.com>
1643
1644         * config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
1645         Change to TARGET_INVALID_WITHIN_DOLOOP.
1646
1647 2005-06-09  David Edelsohn  <edelsohn@gnu.org>
1648
1649         * config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
1650         * config/rs6000/predicates.md (scc_eq_operand): New.
1651
1652 2005-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
1653
1654         * config/sh/sh.md (mextr_rl): Set buffer size properly.
1655         (*mextr_lr): Likewise.
1656
1657 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1658
1659         PR c/21759
1660         * c.opt (Wc++-compat): New.
1661         * doc/invoke.texi (-Wc++-compat): Document.
1662         * c-typeck.c (convert_for_assignment): Check for implicit
1663         conversion void* -> T*.
1664
1665 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.edu>
1666
1667         * machmode.h (to_machine_mode): New.
1668         * rtl.h (to_rtx_code): Likewise.
1669         * read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
1670         (print_c_condition): Convert return value of htab_find().
1671         (apply_code_macro): Add explicit cast when convertin to enums.
1672         (apply_mode_maps): Likewise.
1673         (check_code_macro): Likewise.
1674         (read_rtx_1): Likewise.
1675
1676 2005-06-09  Richard Henderson  <rth@redhat.com>
1677
1678         * config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
1679         Use SCALAR_FLOAT_MODE_P.
1680         * config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
1681         (fselect): Rename from fpcmp; use %F.
1682         (fpcmp): New.
1683
1684 2005-06-09  Jan Hubicka  <jh@suse.cz>
1685
1686         * cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
1687         local statics when doing unit-at-a-time.
1688         (cgraph_varpool_assemble_pending_decls): Output debug info.
1689         * dwarf2out.c (decls_for_scope): Skip local statics.
1690         (dwarf2out_decl): Handle local statics.
1691         * passes.c (rest_of_decl_compilation): Do not differentiate
1692         local and global statics in unit-at-a-time.
1693         * tree-inline.c (remap_decls): Put local static into
1694         unexpanded_vars_list rather than introducing duplicated VAR_DECL
1695         node.
1696
1697 2005-06-09  Daniel Berlin  <dberlin@dberlin.org>
1698
1699         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
1700         prototype.
1701
1702 2005-06-08  Daniel Berlin  <dberlin@dberlin.org>
1703
1704         * Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
1705         * tree-flow.h (find_what_p_points_to): Add prototype.
1706         (push_fields_onto_fieldstack): Ditto.
1707         (sort_fieldstack): Ditto.
1708         * tree-optimize.c (init_tree_optimization_passes): Add
1709         pass_build_pta and pass_del_pta.
1710         * tree-pass.h (pass_build_pta): New structure.
1711         (pass_del_pta): Ditto.
1712         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
1713         using new alias analyzer.
1714         (push_fields_onto_fieldstack): Removed from here.
1715         (bitpos_of_field): Ditto.
1716         (fieldoff_compare): Ditto.
1717         * tree-ssa-structalias.c: New file.
1718         * tree-ssa-structalias.h: Ditto.
1719
1720 2005-06-09  Nathan Sidwell  <nathan@codesourcery.com>
1721
1722         * c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
1723         too.
1724
1725 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1726
1727         * config/bfin/bfin.c (enum bfin_builtins): Moved here from...
1728         * config/bfin/bfin.h (enum bfin_builtins): ... here.
1729
1730 2005-06-09  Adrian Straetling  <straetling@de.ibm.com>
1731
1732         * target.h (insn_valid_within_doloop): Rename into
1733         "invalid_within_doloop".  Change return type to "const char *".
1734         Update Comment.
1735         * targhooks.h (default_insn_valid_within_doloop): Rename into
1736         "default_invalid_within_doloop". 
1737         * targhooks.c (default_insn_valid_within_doloop): Likewise.
1738         Update Comment.
1739         * target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
1740         into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
1741         "default_invalid_within_doloop".
1742         * hooks.c (hook_constcharptr_rtx_null): New function.
1743         (hook_bool_rtx_true): Remove.
1744         * hooks.h (hook_constcharptr_rtx_null): Declare.
1745         (hook_bool_rtx_true): Remove.
1746         * loop-doloop.c (doloop_valid_p): Temporarily store return value of
1747         "invalid_within_doloop" and print error message if non-null.
1748         Update Comment.
1749         * doc/tm.texi: Update documentation.
1750         * config/s390/s390.c: Adjust to new hook name and new default hook.
1751         * config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
1752         into "rs6000_invalid_within_doloop".
1753         (rs6000_invalid_within_doloop): Change return type to "static const
1754         char *" and replace return values.  Update Comment.
1755
1756 2005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
1757
1758         * config/bfin/bfin.opt (mlong-calls): New.
1759         * config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
1760         if TARGET_LONG_CALLS.
1761
1762 2005-06-09  Richard Henderson  <rth@redhat.com>
1763
1764         PR tree-opt/20610
1765         * tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
1766         (struct tree_decl): Add gimple_reg_flag.
1767         * integrate.c (copy_decl_for_inlining): Copy it.
1768         * gimplify.c (internal_get_tmp_var): Set it.
1769         (gimplify_bind_expr): Likewise.
1770         (gimplify_function_tree): Likewise.
1771         (gimplify_modify_expr_complex_part): New.
1772         (gimplify_modify_expr): Use it.
1773         * tree-gimple.c (is_gimple_reg_type): Allow complex.
1774         (is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
1775
1776         * tree-complex.c (complex_lattice_t): New.
1777         (complex_lattice_values, complex_variable_components): New.
1778         (some_nonzerop, find_lattice_value, is_complex_reg,
1779         init_parameter_lattice_values, init_dont_simulate_again, 
1780         complex_visit_stmt, complex_visit_phi, create_components,
1781         update_complex_components, update_parameter_components, 
1782         update_phi_components, update_all_vops, expand_complex_move): New.
1783         (extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
1784         SSA_NAME.
1785         (update_complex_assignment): Use update_complex_components;
1786         handle updates of return_expr properly.
1787         (expand_complex_addition): Use complex lattice values.
1788         (expand_complex_multiplication): Likewise.
1789         (expand_complex_division): Likewise.
1790         (expand_complex_libcall): Use update_complex_components.
1791         (expand_complex_comparison): Use update_stmt.
1792         (expand_complex_operations_1): Use expand_complex_move, retrieve
1793         lattice values.
1794         (tree_lower_complex): Compute lattice values.
1795         (tree_lower_complex_O0): Duplicate from tree_lower_complex.
1796         (pass_lower_complex_O0): Rename from pass_lower_complex.
1797         (pass_lower_complex, gate_no_optimization): New.
1798         * tree-optimize.c (init_tree_optimization_passes): Update for
1799         complex pass changes.
1800         * tree-pass.h (pass_lower_complex_O0): Declare.
1801
1802 2005-06-08  Dale Johannesen  <dalej@apple.com>
1803
1804         * config/darwin.c (darwin_binds_local_p):  New.
1805         * config/darwin-protos.h (darwin_binds_local_p):  Declare it.
1806         * config/i386/i386.c (TARGET_BINDS_LOCAL_P):  Use it for TARGET_MACHO.
1807         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Remove.
1808         (TARGET_BINDS_LOCAL_P):  Change it to darwin_binds_local_p.
1809
1810 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
1811
1812         * config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
1813         rs6000_isel, rs6000_spe, rs6000_alignment_string,
1814         rs6000_sched_restricted_insns_priority_str,
1815         rs6000_sched_restricted_insns_priority, rs6000_abi_string.
1816
1817 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
1818
1819         * tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
1820         instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
1821         * tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
1822         multiplier_allowed_in_address_p, get_address_cost): Ditto.
1823
1824 2005-06-08  Richard Henderson  <rth@redhat.com>
1825
1826         * config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
1827         * config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
1828         Emit out3 load right after alloc.
1829
1830 2005-06-08  Aldy Hernandez  <aldyh@redhat.com>
1831
1832         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
1833         rs6000_explicit_options.
1834
1835 2005-06-08  Richard Henderson  <rth@redhat.com>
1836
1837         * config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
1838         * config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
1839         unwind markup.
1840         * config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
1841
1842 2005-06-08  Joseph S. Myers  <joseph@codesourcery.com>
1843
1844         * config/sol2-c.c (cmn_err_char_table): Allow width for %b
1845         formats.
1846
1847 2005-06-08  James A. Morrison  <phython@gcc.gnu.org>
1848
1849         PR target/20666
1850         * config/sparc/sparc.c (sparc_fold_builtin): New function
1851         (sparc_vis_mul8x16): New function.
1852         (sparc_handle_vis_mul8x16): New function.
1853         (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
1854
1855 2005-06-08  David Edelsohn  <edelsohn@gnu.org>
1856
1857         * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
1858         CTR to LR.
1859         (call_indirect_nonlocal_aix64): Same.
1860         (call_value_indirect_nonlocal_aix32): Same.
1861         (call_value_indirect_nonlocal_aix64): Same.
1862
1863         PR target/10588
1864         (eq): Use CLZ splitter for compare with zero.
1865
1866 2005-06-08  Bernd Schmidt  <bernd.schmidt@analog.com>
1867
1868         * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
1869         everything larger than 8 bytes in memory.
1870
1871         * config/bfin/bfin.h (enum bfin_builtins): New.
1872         * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
1873         New constants.
1874         (csync, ssync): New insn patterns.
1875         * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
1876         New functions.
1877         (def_builtin): New macro.
1878         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
1879
1880         From Jie Zhang  <jie.zhang@analog.com>
1881         * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
1882         behavior of the native assembler in VDSP. So change accordingly.
1883         
1884 2005-06-08  Sebastian Pop  <pop@cri.ensmp.fr>
1885
1886         * tree-data-ref.c (compute_estimated_nb_iterations,
1887         analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
1888         analyze_subscript_affine_affine, find_data_references_in_loop):
1889         Fixed to use chrec_contains_undetermined to test the values of
1890         loop->estimated_nb_iterations.
1891         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
1892         Compute the estimation only when loop->estimated_nb_iterations
1893         has not yet been initialized.
1894         (convert_step_widening, scev_probably_wraps_p): Add a call to
1895         estimate_numbers_of_iterations_loop.
1896         * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
1897
1898 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1899
1900         PR debug/21946
1901         * dwarf2out.c (add_loc_descr_op_piece): Move to the
1902         DWARF2_DEBUGGING_INFO section.
1903
1904 2005-06-08  Richard Henderson  <rth@redhat.com>
1905
1906         PR target/21721
1907         * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
1908
1909 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
1910
1911         PR target/21889
1912         * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
1913         * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
1914         (TARGET_ASM_OUT): Add it.
1915         * doc/tm.texi (Debugging Info): Document it.
1916         * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
1917         Test it instead of ASM_OUTPUT_DWARF_DTPREL.
1918         (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
1919         * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
1920         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
1921         * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
1922         (gen_inlined_tls_plt): Remove unused variable MEM.
1923         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
1924         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1925         * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
1926         * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
1927         unused.
1928         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
1929         * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1930         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
1931         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
1932         unused.
1933         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
1934         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1935         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
1936         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
1937         unused.
1938         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
1939         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1940         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
1941         * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
1942         unused.
1943         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
1944         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1945         * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
1946         (TARGET_GNU_TLS): Define to 1.
1947         * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
1948         * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
1949         unused.
1950         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
1951         if TARGET_GNU_TLS only.
1952         * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
1953
1954         * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
1955         (sparc-*-solaris2*): Likewise on Solaris 7 and up.
1956
1957 2005-06-07  Dale Johannesen  <dalej@apple.com>
1958
1959         * config/i386/i386.md (movqi_1):  Fix case where source
1960         is memory and destination EDI.
1961
1962 2005-06-08  Kazu Hirata  <kazu@codesourcery.com>
1963
1964         * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
1965
1966 2005-06-07  Eric Christopher  <echristo@redhat.com>
1967
1968         * system.h: Poison EXTRA_CC_MODES.
1969         * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
1970         * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
1971         * doc/md.texi (Jump Patterns): Replace reference to
1972         EXTRA_CC_MODES with machine-modes.def.
1973         * doc/rtl.texi (Machine Modes): Ditto.
1974
1975 2005-06-07  Richard Henderson  <rth@redhat.com>
1976
1977         * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
1978         (assemble_start_function): Fix strcmp confusion.
1979
1980 2005-06-07  Uros Bizjak  <uros@kss-loka.si>
1981
1982         * config/i386/i386.h (enum ix86_entity): New.
1983         (enum ix86_stack_slot): New.
1984         (OPTIMIZE_MODE_SWITCHING): Redefine to use
1985         ix86_optimize_mode_switching[] array.
1986         (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
1987         (MODE_NEEDED): Use ix86_mode_needed() function.
1988         (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
1989         function.
1990         (struct machine_function): Use optimize_mode_switching[] array.
1991
1992         * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
1993         (ix86_mode_needed): New function.
1994         (emit_i387_cw_initialization): Cleanup. Use mode to calculate
1995         correct stack positions for stored control words.
1996         (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
1997         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
1998         SLOT_TEMP.
1999         [IX86_BUILTIN_STMXCSR]: Same.
2000
2001         * config/i386/i386-protos.h (assign_stack_local): Change prototype.
2002         (emit_i387_cw_initialization): Change prototype.
2003         (ix86_mode_needed): New prototype.
2004
2005         * config/i386/i386.md (i387_cw attribute): Change order of elements.
2006         (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
2007         (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
2008         (*fist<mode>2_ceil_1): Change constant in call to
2009         assign_386_stack_local to SLOT_TEMP.
2010         (*fix_trunc<mode>_i387_1): Change constant in call to
2011         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2012         Use new ix86_optimize_mode_switching[] array.
2013         (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
2014         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2015         Use new ix86_optimize_mode_switching[] array.
2016         (frndintxf2_ceil, *fist<mode>2_ceil_1):  Change constants in call to
2017         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2018         Use new ix86_optimize_mode_switching[] array.
2019         (frndintxf2_trunc): Change constants in call to
2020         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2021         Use new ix86_optimize_mode_switching[] array.
2022         (frndintxf2_mask_pm): Change constants in call to
2023         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2024         Use new ix86_optimize_mode_switching[] array.
2025
2026         (define_peephole2): Change constant from 17 to FLAGS_REG;
2027
2028 2005-06-07  Richard Henderson  <rth@redhat.com>
2029
2030         PR rtl-opt/21528
2031         * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2032
2033 2005-06-07  Dale Johannesen  <dalej@apple.com>
2034
2035         * tree-nested.c (finalize_nesting_tree_1):  Disable
2036         warn_padded around layout_type call.
2037
2038 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2039
2040         * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2041         before emiting it.
2042
2043 2005-06-07  Eric Christopher  <echristo@redhat.com>
2044
2045         * config/mips/predicates.md: Revert previous patch.
2046
2047 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
2048
2049         PR middle-end/21850
2050         * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2051         from vector types.
2052
2053 2005-06-07  Diego Novillo  <dnovillo@redhat.com>
2054
2055         * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2056         (thread_stats): New local variable.
2057         (redirect_edges): Increment count of threaded edges.
2058         (thread_through_all_blocks): Initialize thread_stats.
2059         Display number of threaded jumps if TDF_STATS is enabled.
2060
2061 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2062
2063         * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2064         the current bit index with no modulo.
2065
2066 2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
2067
2068         PR 18403 and meta PR 21861.
2069         * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2070         * tree-chrec.c: Include cfgloop.h and tree-flow.h.
2071         (evolution_function_is_invariant_rec_p,
2072         evolution_function_is_invariant_p): New.
2073         (chrec_convert): Use an extra parameter AT_STMT for refining the
2074         information that is passed down to convert_step.  Integrate the 
2075         code that was in count_ev_in_wider_type.
2076         * tree-chrec.h (count_ev_in_wider_type): Removed.
2077         (chrec_convert): Modify its declaration.
2078         (evolution_function_is_invariant_p): Declared.
2079         (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2080         * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2081         (scev_probably_wraps_p): Declared.
2082         * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2083         (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2084         Use an extra parameter AT_STMT for refining the information that is
2085         passed down to convert_step.
2086         (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2087         analyze_scalar_evolution_1): Initialize AT_STMT with the current
2088         analyzed statement.
2089         (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2090         * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
2091         can_count_iv_in_wider_type to use convert_step.
2092         * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
2093         code that is independent of the loop over the known iteration
2094         bounds to convert_step_widening, the rest is moved to
2095         proved_non_wrapping_p.
2096         (scev_probably_wraps_p): New.
2097         (can_count_iv_in_wider_type): Renamed convert_step.
2098         * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2099         Use scev_probably_wraps_p for computing init_is_max.
2100         (vrp_visit_assignment): Pass the current analyzed statement to 
2101         adjust_range_with_scev.
2102         (execute_vrp): Call estimate_numbers_of_iterations for refining the 
2103         information provided by scev analyzer.
2104
2105 2005-06-07  Eric Christopher  <echristo@redhat.com>
2106
2107         * config/mips/predicates.md (sleu_operand): Use
2108         IN_RANGE to specify range of operand.
2109
2110 2005-06-07  Steven Bosscher  <stevenb@suse.de>
2111
2112         PR tree-optimization/21847
2113         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2114         -fnon-call-exceptions, also mark statements inherently
2115         necessary if they may throw.
2116
2117 2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
2118
2119         * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2120         ("type"): Add "sem" to 'type' attribute.
2121         ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2122         "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2123         "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2124         "*sync_compare_and_swap_ccsi"): New patterns.
2125         * config/s390/2064.md: ("z_sem"): New insn_reservation.
2126         * config/s390/2084.md: ("x_sem"): New insn_reservation.
2127         * config/s390/s390.c: (s390_compare_emitted): New global variable.
2128         (s390_emit_compare): Do not emit comparison again after cas.
2129         * config/s390/s390.h (s390_compare_emitted): Declare.
2130
2131 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2132
2133         * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2134         sbitmap_iter_cond, sbitmap_iter_next): New.
2135         * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2136         modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2137         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2138         uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2139
2140 2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2141
2142         * tree-ssa-address.c: New file.
2143         * Makefile.in (tree-ssa-address.o): Add.
2144         * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2145         INDIRECT_REFs.  Handle TARGET_MEM_REFs.
2146         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2147         * tree-flow.h (struct mem_address): New.
2148         (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2149         (create_mem_ref, addr_for_mem_ref, get_address_description,
2150         maybe_fold_tmr, multiplier_allowed_in_address_p,
2151         multiply_by_cost):  Declare.
2152         * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2153         * tree-pretty-print.c (dump_generic_node): Ditto.
2154         * tree-ssa-loop-im.c (for_each_index): Ditto.
2155         * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2156         find_interesting_uses_address): Ditto.
2157         (rewrite_address_base, build_addr_strip_iref): Removed.
2158         (struct affine_tree_combination): Moved to tree-flow.h.
2159         (get_ref_tag, copy_ref_info): New functions.
2160         (rewrite_use_address): Produce TARGET_MEM_REFs.
2161         (tree_ssa_iv_optimize): Do not call update_ssa
2162         and rewrite_into_loop_closed_ssa.
2163         (tree_to_aff_combination): Use build_fold_addr_expr instead of
2164         build_addr_strip_iref.
2165         (unshare_aff_combination): New function.
2166         (fold_affine_sum): Removed.
2167         (get_computation_at): Use get_computation_aff.  Unshare the result.
2168         (get_computation_aff, multiplier_allowed_in_address_p): New function.
2169         (multiply_by_cost): Exported.
2170         (get_address_cost): Use multiplier_allowed_in_address_p.
2171         * tree-ssa-operands.c (get_tmr_operands): New function.
2172         (get_expr_operands): Handle TARGET_MEM_REFs.
2173         * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2174         (build): Handle 7 arguments.
2175         (build7_stat): New function.
2176         * tree.def (TARGET_MEM_DEF): New.
2177         * tree.h (REF_ORIGINAL): Removed.
2178         (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2179         TMR_TAG, build7): New macros.
2180         (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2181         * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2182         * doc/c-tree.texi: Document TARGET_MEM_REF.
2183         * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2184
2185 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
2186
2187         PR debug/21946
2188         * dwarf2out.c (add_loc_descr_op_piece): New function.
2189         (multiple_reg_loc_descriptor, concat_loc_descriptor,
2190         loc_descriptor): Use it.
2191         * var-tracking.c: Include regs.h and expr.h.
2192         (emit_note_insn_var_location): Skip over pieces where offset
2193         is smaller than previous offset plus previous piece mode size.
2194         Optimize adjacent hard registers or memory locations.
2195         * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2196
2197 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2198
2199         * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2200         for COND_EXPR.
2201         * gimplify.c (gimplify_cond_expr): No need to fix up the
2202         type of COND_EXPRs.
2203
2204 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2205
2206         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2207         comments.
2208
2209 2005-06-07  Geoffrey Keating  <geoffk@apple.com>
2210
2211         * config/rs6000/host-darwin.c (segv_handler): Widen the possible
2212         'stwux' instructions that are considered to be stack decrements.
2213
2214         * rtlanal.c (subreg_offset_representable_p): Handle objects
2215         with holes.
2216
2217 2005-06-06  Uros Bizjak  <uros@kss-loka.si>
2218
2219         * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2220         in call to pre_edge_lcm.
2221
2222 2005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
2223
2224         * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2225         (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2226         (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2227         Likewise.
2228         (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2229         dwarf register number for SHmedia.
2230         (shmedia_fallback_frame_state): New.
2231         (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2232
2233         * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2234
2235 2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2236
2237         * c-lex.c (lex_string): Use XOBFINISH.
2238         * collect2.c (extract_string, dump_file): Likewise.
2239         * dbxout.c (dbxout_finish_complex_stabs): Likewise.
2240         * gcc.c (init_spec, build_search_list, convert_filename, 
2241         set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2242         * genpreds.c (write_predicate_subfunction): Likewise.
2243         * genflags.c (main): Likewise.
2244         * read-rtl.c (mode_attr_index, apply_macro_to_string, 
2245         join_c_conditions, read_quoted_string, read_braced_string, 
2246         read_rtx_1): Likewise.
2247         * stringpool.c (ggc_alloc_string): Likewise.
2248         * tlink.c (obstack_fgets, recompile_files): Likewise.
2249
2250 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
2251
2252         * intl.h (G_): New macro.
2253         * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2254         instead of msgid for argument name.
2255         * tree-ssa.c (warn_uninit): Likewise.
2256         * c-parser.c (c_parser_error): Likewise.
2257         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2258         * config/darwin-c.c (BAD): Likewise.
2259         * config/c4x/c4x-c.c (BAD): Likewise.
2260         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2261         * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2262         * c-common.c (c_parse_error): Likewise.
2263         * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2264         warning0, pedwarn, error, sorry, fatal_error, internal_error):
2265         Likewise.
2266         (fnotice): Use cmsgid instead of msgid for argument name.
2267         * gcov.c (fnotice): Likewise.
2268         * protoize.c (notice): Likewise.
2269         * final.c (output_operand_lossage): Likewise.
2270         * gcc.c (fatal, notice): Likewise.
2271         (error): Use gmsgid instead of msgid for argument name.
2272         * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2273         of msgid for argument name.
2274         (error): Use gmsgid instead of msgid for argument name.
2275         * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2276         instead of N_().
2277         * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2278         * tree-inline.c (inline_forbidden_p_1): Likewise.
2279         * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
2280         conventions for marking translations.
2281         * doc/install.texi: Mention gettext 0.14.5 or later requirement.
2282
2283         * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2284         build2.
2285
2286         * fold-const.c (operand_equal_p): Don't return 1, if element
2287         chains for 2 VECTOR_CSTs are not the same length.
2288
2289         PR regression/21897
2290         * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
2291         not all VECTOR_CST elements are given.
2292
2293         * combine.c (try_combine): Use hard_regno_nregs array instead of
2294         HARD_REGNO_NREGS macro.
2295         * config/rs6000/rs6000.c (rs6000_split_multireg_move,
2296         rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
2297         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2298
2299 2005-06-06  Daniel Berlin  <dberlin@dberlin.org>
2300
2301         * tree-ssa-reassoc.o: New.
2302         (OBJS-common): Add tree-ssa-reassoc.o
2303         * timevar.def: Add TV_TREE_REASSOC
2304         * tree-optimize.c (pass_reassoc): Add call.
2305         * tree-pass.h (pass_reassoc): Add.
2306         * tree-ssa-reassoc.c: New file.
2307
2308 2005-06-06  Eric Christopher  <echristo@redhat.com>
2309
2310         target/21927
2311         * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2312
2313 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2314
2315         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2316         HAVE_GAS_MAX_SKIP_P2ALIGN.
2317         (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2318
2319 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2320
2321         * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
2322         getopt.h dependency.
2323         (mips-tdump.o): Likewise.
2324
2325 2005-06-06  Jan Hubicka  <jh@suse.cz>
2326
2327         * predict.c (tree_predict_edge): Don't drop useless predictions;
2328         check that it is not called too late in the game.
2329         (gate_estimate_probability): New gate.
2330         (pass_profile): Gate.
2331         * tree-mudflap.c (mf_build_check_statement_for): Do not drop
2332         predictions; update CFG instead.
2333         * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2334
2335 2005-06-06  Jie Zhang  <jie.zhang@analog.com>
2336
2337         * config.gcc (bfin*-uclinux*): New.
2338         * config/bfin/uclinux.h: New file.
2339
2340 2005-06-06  Ben Elliston  <bje@au.ibm.com>
2341
2342         * doc/md.texi (Insn Splitting): Fix some wording.
2343
2344 2005-06-05  David Edelsohn  <edelsohn@gnu.org>
2345
2346         * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
2347         (rs6000_emit_swdivdf): New function.
2348         * config/rs6000/rs6000.md (fres): New pattern.
2349         (divsf3): Add approximation through rs6000_emit_swdivsf.
2350         (fred): New pattern.
2351         (divdf3): Add approximation through rs6000_emit_swdivdf.
2352         * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
2353         (rs6000_emit_swdivdf): Declare.
2354         * config/rs6000/rs6000.opt (mswdiv): New option.
2355         * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2356
2357 2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
2358
2359         PR tree-optimization/21846
2360         * tree-cfg.c (replace_uses_by): Update information stored at loops.
2361         * tree-flow.h (substitute_in_loop_info): Declare.
2362         * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
2363         Ensure that chrec_dont_know and chrec_known have a type.
2364         * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2365
2366 2005-06-05  Steven Bosscher  <stevenb@suse.de>
2367
2368         * config/i386/i386.c (x86_use_loop): Remove.
2369         * config/i386/i386.h (x86_use_loop): Remove extern decl.
2370         (TARGET_USE_LOOP): Remove.
2371         * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
2372         Also remove related define_splits.
2373
2374 2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
2375
2376         * tree-flow.h (stmt_ann_d): Move aux to ...
2377         (tree_ann_common_d): ... here.
2378         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2379         move_computations_stmt, schedule_sm): Update references to
2380         aux.
2381         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2382         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2383         call to set_stmt_info.
2384         (vect_transform_loop): Likewise.
2385         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
2386         Likewise.
2387
2388         * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
2389         bool.
2390         (vect_mark_relevant): Takes two additional arguments - live_p and
2391         relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
2392         (vect_stmt_relevant_p): Differentiate between a live stmt and a
2393         relevant stmt. Return two values = live_p and relevant_p.
2394         (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
2395         vect_stmt_relevant_p with additional arguments. Phis are no longer
2396         put into the worklist (analyzed seperately in analyze_scalar_cycles).
2397         (vect_determine_vectorization_factor): Also check for LIVE_P, because a
2398         stmt that is marked as irrelevant and live, cause it's only used out
2399         side the loop, may need to be vectorized (e.g. reduction).
2400         (vect_analyze_operations): Examine phis. Call
2401         vectorizable_live_operation for for LIVE_P stmts. Check if
2402         need_to_vectorize.
2403         (vect_analyze_scalar_cycles): Update documentation. Don't fail
2404         vectorization - just classify the scalar cycles created by the loop
2405         phis. Call vect_is_simple_reduction.
2406         (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
2407         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2408         call to set_stmt_info.
2409         (vect_get_vec_def_for_operand): Code reorganized - the code that
2410         classifies the type of use was factored out to vect_is_simple_use.
2411         (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
2412         additional arguments.
2413         (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
2414         and computes a loop_vec_def.
2415         (vectorizable_operation, vectorizable_load, vectorizable_condition):
2416         Likewise.
2417         (vectorizable_live_operation): New.
2418         (vect_transform_stmt): Handle LIVE_P stmts.
2419         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
2420         STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
2421         (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
2422         (vect_is_simple_use): Determine the type of the def and return it
2423         in a new function argument. Consider vect_reduction_def and
2424         vect_induction_def, but for now these are not supported.
2425         (vect_is_simple_reduction): New. Empty for now.
2426         * tree-vectorizer.h (vect_def_type): New enum type.
2427         (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
2428         (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
2429         (vect_is_simple_use): New arguments added to function declaration.
2430         (vect_is_simple_reduction): New function declaration.
2431         (vectorizable_live_operation): New function declaration.
2432
2433         * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
2434         (vect_can_advance_ivs_p): Likewise.
2435         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2436
2437 2005-06-05  Eric Christopher  <echristo@redhat.com>
2438
2439         * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2440
2441 2005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>
2442
2443         PR target/21914
2444         * config/mmix/mmix.md ("*movdicc_real_foldable")
2445         ("*movdfcc_real_foldable", "*bCC_foldable")
2446         ("*bCC_inverted_foldable"): Specify DImode for register being
2447         compared.
2448
2449 2005-06-04  Roger Sayle  <roger@eyesopen.com>
2450
2451         * reg-stack.c (struct block_info_def): Correct grammar typo.
2452         (compensate_edge): Clean-up.  Perform as little work as possible
2453         when src and dest stacks match.  Avoid modifying block_info.
2454         Reorder and simplify assertion checks.  Avoid unnecessary copying
2455         of regstack structure.
2456         (convert_regs_1): Set the done flag here...
2457         (convert_regs_2): ... instead of here.
2458
2459 2005-06-04  Dale Johannesen  <dalej@apple.com>
2460
2461         * config/rs6000/rs6000.c (no_global_regs_above): New.
2462         (rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
2463         (rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
2464         (rs6000_conditional_register_usage): Don't put Darwin PIC
2465         register in global_regs.
2466         (rs6000_stack_info):  Don't set lr_save_p just because Darwin 
2467         PIC reg used.
2468         (rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
2469         if not done by lr_save_p.
2470         * config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
2471         Use rotate instead of ashift.
2472         (call_indirect_nonlocal_sysv):  Prefer CTR to LR.
2473         (call_value_indirect_nonlocal_sysv):  Ditto.
2474
2475 2005-06-04  Jan Hubicka  <jh@suse.cz>
2476
2477         * cgraphunit.c (cgraph_reset_node): Break out from ...
2478         (cgraph_finalize_function): ... here.
2479         (cgraph_finalize_compilation_unit): Reset nodes where backend
2480         removed the body.
2481
2482 2005-06-04  Richard Henderson  <rth@redhat.com>
2483
2484         PR target/21888
2485         * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2486         until we've passed initial ldgp.
2487
2488 2005-06-04  Daniel Berlin  <dberlin@dberlin.org>
2489
2490         * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2491         * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
2492         * expr.c (expand_var): Ditto.   
2493         * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
2494         * gimplify.c (gimplify_decl_expr): Ditto.
2495         (gimplify_expr): Ditto.
2496         * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
2497         * tree.c (value_expr_for_decl): New.
2498         (print_value_expr_statistics): New.
2499         (init_ttree): Init value_expr_for_decl.
2500         (decl_value_expr_lookup): New.
2501         (decl_value_expr_insert): Ditto.
2502         (copy_node_stat): Copy DECL_VALUE_EXPR status.
2503         * tree.h (DECL_VALUE_EXPR): Use hashtable.
2504         (SET_DECL_VALUE_EXPR): New.
2505         (DECL_HAS_VALUE_EXPR_P): New.
2506
2507 2005-06-04  Steven Bosscher  <stevenb@suse.de>
2508
2509         * lcm.c: Move all mode-switching related functions from here...
2510         * mode-switching.c: ...to this new file.
2511         * doc/passes.texi: Update accordingly.
2512
2513         * basic-block.h (label_value_list): Remove extern decl.
2514         * cfgrtl.c (label_value_list): Remove.
2515         (can_delete_label_p): Don't look at it.
2516         * cfgcleanup.c (cleanup_cfg): Don't free it.
2517
2518         * common.opt: Don't refer to non-existing flag_alias_check.
2519
2520 2005-06-04  David Edelsohn  <edelsohn@gnu.org>
2521
2522         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
2523
2524 2005-06-04  Kazu Hirata  <kazu@codesourcery.com>
2525
2526         * function.c (prologue, epilogue, sibcall_epilogue): Change
2527         their types to VEC(int,heap)*.
2528         (free_after_compilation): Free the three vectors above.
2529         (init_function_for_compilation, record_insns, contains,
2530         prologue_epilogue_contains, sibcall_epilogue_contains,
2531         reposition_prologue_and_epilogue_notes): Use VEC instead of
2532         VARRAY.  (init_function_once): Remove.
2533         * function.h: Remove the prototype for init_function_once.
2534         * toplev.c (backend_init): Don't call init_function_once.
2535
2536 2005-06-04  Jan Hubicka  <jh@suse.cz>
2537
2538         * predict.c (tree_predict_edge): Do not predict entry edge and
2539         single succestor edge.
2540
2541 2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
2542
2543         PR c/21873
2544         * c-typeck.c (push_init_level): Don't pop levels without braces if
2545         implicit == 1.
2546
2547 2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
2548         
2549         * tree-data-ref.c (compute_self_dependence): New function.
2550         (compute_all_dependences): Use it.
2551
2552 2005-06-03  Geoffrey Keating  <geoffk@apple.com>
2553
2554         * c-parser.c (c_parser_parms_declarator): Don't use chainon().
2555         (c_parser_expr_list): Don't use chainon().
2556
2557         * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
2558         when -isysroot passed.
2559
2560 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
2561
2562         PR c/21879
2563         * c-decl.c (start_function): Restore label_context_stack_se and
2564         label_context_stack_vm  if returning with an error.
2565
2566 2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2567
2568         * configure.ac: Check declaration for asprintf, needed by
2569         libiberty.h. 
2570         * configure: Regenerate.
2571         * config.in: Likewise.
2572
2573 2005-06-03  Diego Novillo  <dnovillo@redhat.com>
2574
2575         * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
2576         allocate info array.
2577         * tree-vrp.c (extract_range_from_unary_expr): Set resulting
2578         range to varying in cast expressions that change
2579         TYPE_PRECISION.
2580
2581 2005-06-03  Eric Christopher  <echristo@redhat.com>
2582
2583         * config/mips/mips.opt: Add RejectNegative to divide-breaks and
2584         divide-traps.
2585
2586 2005-06-03  Jan Hubicka  <jh@suse.cz>
2587
2588         * basic-block.h (remove_predictions_associated_with_edge): Declare.
2589         * cfg.c (remove_edge): Use it.
2590         * predict.c (remove_predictions_associated_with_edge): New function.
2591
2592 2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
2593
2594         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
2595         Clear call_realy_used_regs[r2] when ABI_AIX.
2596
2597 2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
2598
2599         PR middle-end/21858
2600         * fold-const.c (fold_binary): Fix type mismatches in folding
2601         of comparisons.
2602
2603 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
2604
2605         * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
2606         typos.
2607
2608 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
2609
2610         * collect2.c (maybe_unlink): Use unlink_if_ordinary.
2611
2612 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
2613
2614         * reload1.c (reload): Revert my previous patch.
2615
2616 2005-06-03  Nick Clifton  <nickc@redhat.com>
2617
2618         * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
2619         assembler.
2620
2621 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
2622
2623         PR tree-optimization/21849
2624         * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
2625
2626 2005-06-02  Richard Henderson  <rth@redhat.com>
2627
2628         * Makefile.in (tree-vect-generic.o): New.
2629         (OBJS-common, GTFILES, s-gtype): Add it.
2630         * tree-complex.c (build_replicated_const, vector_inner_type,
2631         vector_last_type, vector_last_nunits, build_word_mode_vector_type,
2632         elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
2633         do_negate, expand_vector_piecewise, expand_vector_parallel, 
2634         expand_vector_addition, expand_vector_operation, 
2635         type_for_widest_vector_mode, expand_vector_operations_1, 
2636         gate_expand_vector_operations, expand_vector_operations, 
2637         pass_lower_vector_ssa): Move to tree-vect-generic.c.
2638         (tree_lower_complex): Rename from tree_lower_operations.
2639         (pass_lower_complex): Rename from pass_pre_expand.
2640         * tree-vect-generic.c: New file.
2641         * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
2642         (pass_lower_vector): New.
2643         * tree-optimize.c (init_tree_optimization_passes): Update to match.
2644
2645 2005-06-02  Richard Henderson  <rth@redhat.com>
2646
2647         * modulo-sched.c (doloop_register_get): Protect against 
2648         doloop_end not defined.
2649
2650 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
2651
2652         * config/sh/sh.c (general_movsrc_operand,
2653         general_movdst_operand, arith_reg_operand, arith_reg_dest,
2654         logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
2655         fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
2656         xor_operand, cmp_operand, logical_operand, and_operand,
2657         fpscr_operand, fpul_operand, symbol_ref_operand,
2658         commutative_float_operator, noncommutative_float_operator,
2659         unary_float_operator, binary_float_operator,
2660         binary_logical_operator, equality_comparison_operator,
2661         greater_comparison_operator, less_comparison_operator,
2662         shift_operator, logical_operator, target_reg_operand,
2663         target_operand, mextr_bit_offset, extend_reg_operand,
2664         trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
2665         general_extend_operand, ua_address_operand,
2666         cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
2667         sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
2668         shift_count_reg_operand, shift_count_operand,
2669         unaligned_load_operand): Move to ...
2670         * config/sh/predicates.md: ... here.
2671         * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
2672         Remove.
2673
2674 2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
2675
2676         * tree.c (build_common_builtin_nodes): Fix the return type on
2677         __builtin_memcmp.
2678
2679 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
2680
2681         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
2682         (find_interesting_uses_address): Use build_fold_addr_expr instead.
2683         (strip_offset_1): Likewise.
2684         (tree_to_aff_combination): Likewise.
2685
2686 2005-06-02  DJ Delorie  <dj@redhat.com>
2687
2688         * convert.c (convert_to_pointer): Avoid recursion if no conversion
2689         is needed.
2690
2691 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
2692
2693         * tree-chrec.c (chrec_fold_plus_1): Ensure we build
2694         binary operations with the correct types.
2695         * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
2696         for all computation.
2697
2698 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
2699
2700         * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
2701         config/rs6000/rs6000.md: Fix comment typos.  Follow splling
2702         conventions.
2703         * doc/install.texi: Fix a typo.
2704
2705 2005-06-02  Jan Hubicka  <jh@suse.cz>
2706
2707         * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
2708         inline functions are not local.
2709
2710 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
2711
2712         * gimplify.c (gimplify_ctx): Change the type of case_labels to
2713         VEC from VARRAY.
2714         (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
2715         of case_labels.
2716
2717 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
2718
2719         * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
2720         with correct type.
2721
2722 2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
2723
2724         * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
2725         execute templates.
2726         (s390_dump_pool): Likewise.
2727         (s390_mainpool_start, s390_mainpool_finish): Likewise.
2728         (s390_chunkify_start): Likewise.
2729         (s390_dump_execute): Remove.
2730         (s390_reorg): Handle out-of-pool execute templates.
2731
2732 2005-06-02  Adrian Straetling  <straetling@de.ibm.com>
2733
2734         * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
2735           unconditional jump.
2736
2737 2005-06-02  Jan Hubicka  <jh@suse.cz>
2738
2739         * cgraph.c (cgraph_node): Maintain master clones.
2740         (cgraph_remove_node): Likewise.
2741         (availability_names): New static variable.
2742         (dump_cgraph_node): Dump availability.
2743         (dump_cgraph_varpool_node): Likewise.
2744         (cgraph_is_master_clone, cgraph_master_clone,
2745         cgraph_function_body_availability,
2746         cgraph_variable_initializer_availability): New functions.
2747         * cgraph.h (availability): New enum.
2748         (struct cgraph_node): Add master_clone.
2749         (cgraph_is_master_clone, cgraph_master_clone,
2750         cgraph_function_body_availability,
2751         cgraph_variable_initializer_availability): Declare.
2752         * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
2753         (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
2754         * ipa-inline.c (cgraph_decide_inlining): Do not call
2755         cgraph_remove_unreachable_nodes.
2756
2757         * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
2758         previous patch.
2759
2760 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
2761
2762         PR 21582
2763         * tree-vrp.c (nonnull_arg_p): New.
2764         (get_value_range): Call it.
2765
2766 2005-06-02  Eric Christopher  <echristo@redhat.com>
2767
2768         * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
2769         add PROCESSOR_MAX.
2770         (mips_rtx_cost_data): New datatype.
2771         (MEMORY_MOVE_COST): Use data from structure.
2772         (BRANCH_COST): Ditto.
2773         (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
2774         * config/mips/mips.md (cpu): Rework for processor_type changes.
2775         * config/mips/mips.c (mips_cost): New variable.
2776         (DEFAULT_COSTS): Define.
2777         (mips_rtx_cost_data): New.
2778         (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
2779         for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
2780         FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
2781         (override_options): Set cost data.
2782         (mips_register_move_cost): Formatting changes.
2783         (bdesc_arrays): Use PROCESSOR_MAX.
2784         (mips_init_builtins): Ditto.
2785
2786 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
2787
2788         PR 21765
2789         * doc/invoke.texi: Document -ftree-vrp.
2790
2791 2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
2792
2793         PR tree-optimization/21734
2794         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
2795         phi_result when current_def is not available.
2796         (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
2797         available.      
2798
2799 2005-06-02  David Edelsohn  <edelsohn@gnu.org>
2800
2801         * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
2802         (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
2803
2804 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
2805
2806         * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
2807
2808 2005-06-02  Jan Hubicka  <jh@suse.cz>
2809
2810         * cgraph.c (dump_cgraph_node): Print new flags.
2811         (dump_cgraph_varpool_node): Likewise.
2812         (decide_variable_is_needed): Initialize externally_visible flag.
2813         * cgraph.h (cgraph_local_info): Add externally_visible flag.
2814         (cgraph_varpool_node): Likewise.
2815         (cgraph_function_flags_ready): Declare.
2816         * cgraph.c (cgraph_mark_local_functions): Rename to ...
2817         (cgraph_function_and_variable_visibility) ... this one; handle
2818         externally_visible flags.
2819         (decide_is_function_needed): Set externally_visible flag.
2820         (cgraph_finalize_function): Deal properly with early cleanups.
2821         (cgraph_optimize): Update call of
2822         cgraph_function_and_variable_visibility.
2823
2824 2005-06-02 Steven Bosscher  <stevenb@suse.de>
2825            Mostafa Hagog <mustafa@il.ibm.com>
2826
2827         * cfgloop.h (doloop_condition_get): Make external.
2828         * loop-doloop.c (doloop_condition_get): Generalize to make it
2829         usable in modulo-sched.c.
2830         * modulo-sched.c (doloop_register_get): Use
2831         doloop_condition_get instead of duplicating it.
2832
2833 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
2834
2835         * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
2836         the correct set of init_insns that need deletion.
2837         * local-alloc.c (update_equiv_regs): When substituting sole definition
2838         into sole use of a reg, delete it from liveness information.
2839
2840 2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2841
2842         * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
2843
2844 2005-06-01  Diego Novillo  <dnovillo@redhat.com>
2845
2846         PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
2847         PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
2848         * fold-const.c (invert_tree_comparison): Make extern.
2849         * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
2850         (struct value_range_def): Limewise.
2851         (get_value_range): Remove.
2852         (dump_value_range): Remove.
2853         (dump_all_value_ranges): Remove.
2854         (debug_all_value_ranges): Remove.
2855         (vrp_evaluate_conditional): Declare.
2856         * tree-ssa-propagate.c (struct prop_stats_d): Add field
2857         num_pred_folded.
2858         (substitute_and_fold): Add argument use_ranges_p.
2859         Update all callers.
2860         If use_ranges_p is true, call fold_predicate_in to fold
2861         predicates using range information.
2862         Ignore ASSERT_EXPRs.
2863         Change debugging output to only show statements that have been
2864         folded.
2865         (replace_phi_args_in): Move debugging output code from
2866         substitute and fold.
2867         (fold_predicate_in): New local function.
2868         * tree-ssa-propagate.h (enum value_range_type): Move from
2869         tree-flow.h.
2870         (struct value_range_d): Likewise.
2871         Add field 'equiv'. 
2872         (value_range_t): Rename from value_range.
2873         * tree-vrp.c (found_in_subgraph): Rename from found.
2874         (get_opposite_operand): Remove.
2875         (struct assert_locus_d): Declare.
2876         (assert_locus_t): Declare.
2877         (need_assert_for): Declare.
2878         (asserts_for): Declare.
2879         (blocks_visited): Declare.
2880         (vr_value): Declare.
2881         (set_value_range): Add argument 'equiv'.
2882         Don't drop to VARYING ranges that cover all values in the
2883         type.
2884         Make deep copy of equivalence set 'equiv'.
2885         (copy_value_range): New local function.
2886         (set_value_range_to_undefined): New local function.
2887         (compare_values): Return -2 if either value has overflowed.
2888         (range_includes_zero_p): New local function.
2889         (extract_range_from_assert): Flip the predicate code if the
2890         name being asserted is on the RHS of the predicate.
2891         Avoid creating unnecessary symbolic ranges if the comparison
2892         includes another name with a known numeric range.
2893         Update the equivalnce set of the new range when asserting
2894         EQ_EXPR predicates.
2895         (extract_range_from_ssa_name): Update the equivalence set of
2896         the new range with VAR.
2897         (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
2898         If -fwrapv is used, set the resulting range to VARYING if the
2899         operation overflows.  Otherwise, use TYPE_MIN_VALUE and
2900         TYPE_MAX_VALUE to represent -INF and +INF.
2901         Fix handling of *_DIV_EXPR.
2902         (extract_range_from_unary_expr): Handle MINUS_EXPR and
2903         ABS_EXPR properly by switching the range around if necessary.
2904         (extract_range_from_comparison): New local function.
2905         (extract_range_from_expr): Call it.
2906         (adjust_range_with_scev): Do not adjust the range if using
2907         wrapping arithmetic (-fwrapv).
2908         (dump_value_range): Also show equivalence set.
2909         Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
2910         (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
2911         (infer_value_range): Change return value to bool.
2912         Add arguments 'comp_code_p' and 'val_p'.
2913         Do not attempt to infer ranges from statements that may throw.
2914         Store the comparison code in comp_code_p.
2915         Store the other operand to be used in the predicate in val_p.
2916         (dump_asserts_for): New.
2917         (debug_asserts_for): New.
2918         (dump_all_asserts): New.
2919         (debug_all_asserts): New.
2920         (register_new_assert_for): New.
2921         (register_edge_assert_for): New.
2922         (find_conditional_asserts): New.
2923         (find_assert_locations): New.
2924         (process_assert_insertions_for): New.
2925         (process_assert_insertions): New.
2926         (insert_range_assertions): Initialize found_in_subgraph,
2927         blocks_visited, need_assert_for and asserts_for.
2928         Call find_assert_locations and process_assert_insertions.
2929         (remove_range_assertions): Add more documentation.
2930         (vrp_initialize): Change return type to void.
2931         Do not try to guess if running VRP is worth it.  
2932         (compare_name_with_value): New.
2933         (compare_names): New.
2934         (vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
2935         use_equiv_p is true, call compare_names and
2936         compare_name_with_value to compare all the ranges for every
2937         name in the equivalence set of the predicate operands.
2938         Update all callers.
2939         (vrp_meet): Try harder not to derive a VARYING range.
2940         If two values meet, the resulting equivalence set is the
2941         intersection of the two equivalence sets.
2942         (vrp_visit_phi_node): Call copy_value_range to get the current
2943         range information of the LHS.
2944         (vrp_finalize): Create a value vector representing all the
2945         names that ended up with exactly one value in their range.
2946         Call substitute_and_fold.
2947         (execute_vrp): Document equivalence sets in ranges.
2948         * tree.h (SSA_NAME_VALUE_RANGE): Remove.
2949         (struct tree_ssa_name): Remove field value_range.
2950         (invert_tree_comparison): Declare.
2951
2952 2005-06-01  Daniel Berlin  <dberlin@dberlin.org>
2953
2954         Fix PR tree-optimization/21839
2955
2956         * gimplify.c (zero_sized_field_decl): New function.
2957         (gimplify_init_ctor_eval): Use it.
2958
2959 2005-06-01  Josh Conner <jconner@apple.com>
2960
2961         PR 21478
2962         * gimplify.c (gimplify_init_constructor): Don't spill initializer
2963         to read-only memory if it's sparse.
2964
2965 2005-06-01  Ramana Radhakrishnan  <ramana@codito.com>
2966
2967         * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. 
2968         Add documentation for REG_SETJMP
2969
2970 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
2971
2972         * stmt.c (expand_case): Use build_int_cst.
2973         (node_has_low_bound): Likewise, and correct type mismatch.
2974         (node_has_high_bound): Likewise.
2975         * fold-const.c (fold_binary): Ensure we build trees
2976         with the correct types - undo what STRIP_NOPS possibly did.
2977
2978 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
2979
2980         * tree.h (fold_indirect_ref_1): Export from fold-const.c.
2981         * fold-const.c (fold_indirect_ref_1): No longer static.
2982         * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
2983         folding, if possible.
2984
2985 2005-06-01  Joseph S. Myers  <joseph@codesourcery.com>
2986
2987         * common.opt (fjump-tables): New.
2988         * doc/invoke.texi (-fno-jump-tables): Document.
2989         * stmt.c (expand_end_case_type): Do not emit jump tables unless
2990         flag_jump_tables.
2991
2992 2005-06-01  Richard Earnshaw  <richard.earnshaw@arm.com>
2993
2994         * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
2995         (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
2996         (sunlt, sunle): Enable patterns on VFP.
2997
2998         * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
2999         f_stored, f_flag, f_cvt.
3000         (generic_sched): No-longer used for the arm1020e and arm1022e cores.
3001         Include arm1020e.md.
3002         * vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
3003         the ds and fmac pipelines.  Re-work all load and store patterns and
3004         all conversion patterns to use new attributes.  Adjust reservation
3005         descriptions accordingly.
3006         * arm1020e.md: New file.
3007         * t-arm: Add dependency.
3008
3009 2005-06-01  Jan Hubicka  <jh@suse.cz>
3010
3011         * except.c (struct eh_region): Kill unused fields.
3012         * basic-block.h (struct basic_block_def): Likewise.
3013
3014 2005-06-01  J"orn Rennecke <joern.rennecke@st.com>
3015
3016         PR rtl-optimization/21767
3017         * rtl.h (function_invariant_p): Re-add declaration.
3018         * reload1.c (function_invariant_p): No longer static.
3019         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
3020         might have become invalid.
3021
3022 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
3023
3024         PR c/21536
3025         PR c/20760
3026         * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
3027         on variable sizes types if a decl is a pointer to a VLA.
3028         (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
3029         Call gimplify_type_sizes on aggregate fields.  Prevent infinite
3030         recursion.
3031
3032         * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
3033
3034         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
3035         _mm_set_ps, _mm_setr_ps): Add __extension__.
3036         * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
3037         _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
3038         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
3039         Likewise.
3040         (_mm_clflush): Don't use return in void function.
3041
3042         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
3043         _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
3044         Use __inline instead of inline.
3045
3046 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
3047
3048         * fold-const.c (fold_binary): Fix types in strlen vs.
3049         zero comparison folding.
3050
3051 2005-06-01  Richard Henderson  <rth@redhat.com>
3052
3053         * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
3054         * config.in, configure: Rebuild.
3055         * config/alpha/alpha.c (print_operand): Add 'j'.
3056         * alpha.md (divmodsi_internal_er_1): Use it.
3057         (divmoddi_internal_er_1): Likewise.
3058
3059 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3060
3061         * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
3062         * opts.h (print_filtered_help): Delete.
3063         * opts.c (handle_option, decode_options): Remove calls to
3064         set_target_switch.
3065         (print_target_help): New function.
3066         (common_option, print_help): Call print_target_help instead of
3067         display_target_options.
3068         (print_filtered_help): Make static.
3069         * toplev.h (display_target_options, set_target_switch): Delete.
3070         * toplev.c (target_switches, target_options, display_target_options)
3071         (set_target_switch): Delete.
3072         (print_switch_values): Remove handling of TARGET_SWITCHES and
3073         TARGET_OPTIONS.
3074         (default_get_pch_validity): Likewise.  Only treat target_flags
3075         specially if targetm.check_pch_target_flags is nonnull.
3076         (pch_option_mismatch): New function.
3077         (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
3078         and TARGET_OPTIONS.  Only treat target_flags specially if
3079         targetm.check_pch_target_flags is nonnull.
3080         * config/ia64/ia64.c (ia64_override_options): Don't mention
3081         TARGET_OPTIONS in comment.
3082         * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
3083         * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
3084         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
3085         interaction with TARGET_SWITCHES.
3086         (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3087
3088 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3089
3090         * config/sh/sh.c (multcosts): Check sh_multcost rather than
3091         sh_multcost_str.
3092         (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
3093         (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
3094         (cut2_workaround_str): Delete.
3095         * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
3096         (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
3097         (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
3098         * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
3099         (mgettrcost=, multcost=): New options.
3100
3101 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3102
3103         * opts.h (cl_option_state): New structure.
3104         (get_option_state): Declare.
3105         * opts.c (get_option_state): New function.
3106         * toplev.c (option_affects_pch_p): New function.
3107         (default_get_pch_validity): Store the state of all options for which
3108         option_affects_pch_p returns true.
3109         (default_pch_valid_p): Check the state of those options here.
3110         Only check target_flags separately if targetm.check_pch_target_Flags
3111         is nonnull or if TARGET_SWITCHES is defined.
3112
3113 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3114
3115         * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
3116         names.
3117
3118 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3119
3120         * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
3121
3122 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3123
3124         * gcse.c (compute_transp, load_killed_in_block): Use 
3125         MEM_READONLY_P.
3126
3127 2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
3128
3129         PR target/21854
3130         * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
3131         
3132 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3133
3134         * errors.h (warning, error, fatal, internal_error): Add printf
3135         attribute.
3136         * genmodes.c (make_vector_mode): Fix format arguments.
3137
3138 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3139
3140         * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
3141         config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
3142         lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
3143         tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
3144         tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
3145         tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
3146         tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
3147         tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3148         tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
3149         tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
3150         tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
3151         tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
3152         tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
3153         errors.h and include toplev.h if necessary.
3154         
3155         * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
3156         errors.h otherwise include toplev.h.
3157         
3158         * Makefile.in: Update dependencies.
3159         
3160 2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
3161
3162         * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
3163
3164 2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
3165
3166         * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
3167         * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
3168         be complemented for big-endian.  Mask for AND must be rotated,
3169         not shifted.  Handle short operands with NOT on the memory
3170         operation.
3171
3172 2005-05-30  Daniel Berlin  <dberlin@dberlin.org>
3173
3174         * c-objc-common.c (c_tree_printer): Check flag before hashtable.
3175         Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
3176         * dwarf2out.c (dwarf2out_var_location): Ditto.
3177         * toplev.c (default_tree_printer): Ditto.
3178         * tree-outof-ssa.c (create_temp): Ditto.
3179         * tree-sra.c (instantiate_element): Ditto.
3180         * var-tracking.c (track_expr_p): Ditto.
3181         * tree.c (struct tree_map): New structure.
3182         (debug_expr_for_decl): New.
3183         (tree_map_eq): New function.
3184         (tree_map_hash): Ditto.
3185         (tree_map_marked_p): Ditto.
3186         (print_debug_expr_statistics): Ditto.
3187         (decl_debug_expr_lookup): Ditto.
3188         (decl_debug_expr_insert): Ditto.
3189         (dump_tree_statistics): Dump debug_expr hashtable stats.
3190         * tree.h (DECL_DEBUG_EXPR): Change
3191         (SET_DECL_DEBUG_EXPR): Add.
3192         
3193 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
3194
3195         * configure.ac: Add --enable-secureplt.
3196         (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
3197         * config.in: Regenerate.
3198         * configure: Regenerate.
3199         * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
3200         rs6000/secureplt.h to tm_file when enable_secureplt.
3201         * doc/invoke.texi (msecure-plt, mbss-plt): Document.
3202         * doc/install.texi: Document --enable-targets and --enable-secureplt.
3203         Correct xrefs to "Using the GNU Compiler Collection (GCC)".
3204         * config/rs6000/secureplt.h: New file.
3205         * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
3206         (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
3207         assembler support.
3208         (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
3209         (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
3210         (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
3211         * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
3212         * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
3213         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
3214         TARGET_SECURE_PLT got register load sequence.
3215         (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
3216         TARGET_SECURE_PLT.
3217         (rs6000_elf_declare_function_name): Don't emit toc address offset
3218         word when TARGET_SECURE_PLT.
3219         * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
3220         (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
3221         (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
3222         (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
3223         TARGET_SECURE_PLT.
3224         (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
3225         sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
3226         and -fPIC.
3227         * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
3228         (__trampoline_setup): Likewise.  Init r30 before plt call.
3229
3230 2005-05-31  DJ Delorie  <dj@redhat.com>
3231
3232         * expr.c (convert_move): When a partial_int requires multiple
3233         conversion steps, make sure successive steps convert the
3234         intermediate value, not the original value.
3235
3236         * expmed.c (expand_mult): Convert partial_int multiplies to
3237         shift/add combinations too.
3238
3239         * genmodes.c (mode_data): Add wider_2x.
3240         (calc_wider_mode): Calculate twice-wider mode too.
3241         (emit_mode_wider): Emit twice-wider mode too.
3242         * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
3243         * expr.c (expand_expr_real_1): Use it for expanding
3244         multiplies.
3245
3246 2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
3247
3248         PR tree-optimization/21817
3249         * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
3250
3251 2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
3252
3253         * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
3254         change.
3255
3256 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
3257
3258         PR middle-end/20931
3259         PR middle-end/20946
3260         * fold-const.c (fold_checksum_tree): Copy types also if
3261         TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
3262         Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
3263         first.
3264         Tail recurse TREE_LIST's TREE_CHAIN.
3265
3266 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
3267
3268         PR tree-opt/21732
3269         * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
3270         SSA_NAME twice and cause the loop to become finite.  Remove the test
3271         for val.
3272
3273 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
3274
3275         * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
3276         expression.
3277
3278 2005-05-31  Richard Sandiford  <rsandifo@redhat.com>
3279
3280         * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
3281         the documentation to make it more future-proof.
3282         (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
3283         * target.h (gcc_target): Add check_pch_target_flags.
3284         * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
3285         (TARGET_INITIALIZER): Include it.
3286         * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
3287         * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
3288         * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
3289         (sh_check_pch_target_flags): New function.
3290         (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
3291
3292 2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
3293
3294         * fold-const.c (extract_array_ref): Handle more cases,
3295         do some useful canonicalization of the base.
3296         (fold_binary): Explicitly deal with arrays of zero-sized
3297         structures during folding of &a[i] == &a[j].
3298
3299 2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3300
3301         * doc/install.texi (sparc-sun-solaris2*): Update note
3302         about Sun bug 4910101.
3303         (sparc-sun-solaris2.7): Document bootstrap
3304         failure with Sun WorkShop 6 99/08/18 as.
3305
3306 2005-05-30  Pat Haugen  <pthaugen@us.ibm.com>
3307
3308         * loop.c (loop_invariant_p, valid_initial_value_p): Use
3309         regs_invalidated_by_call instead of call_used_regs.
3310
3311 2005-05-30  Paolo Carlini  <pcarlini@suse.de>
3312
3313         PR middle-end/21743
3314         * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
3315         Enable.
3316         * doc/extend.texi: Add clog, clogf, clogl.
3317
3318 2005-05-30  H.J. Lu  <hongjiu.lu@intel.com>
3319
3320         PR middle-end/20303
3321         * c-pragma.c: Include "vec.h".
3322         (handle_pragma_visibility): Use VEC.
3323
3324         * doc/invoke.texi: Remove the nested visibility push limit.
3325
3326 2005-05-30  Roger Sayle  <roger@eyesopen.com>
3327
3328         PR rtl-optimization/15422
3329         * reg-stack.c (starting_stack_p): New static global.
3330         (straighten_stack): Delete prototype. Change to update the stack
3331         before the current insn.
3332         (subst_stack_regs): Update call to straighten stack.
3333         (emit_swap_insn): Delete prototype.  For the first insn in a
3334         basic block, update stack_in instead of emitting a real swap.
3335         (change_stack): When changing the stack before the first insn
3336         in a basic block, update stack_in instead of emitting real code.
3337         (compensate_edges): Clear starting_stack_p during compensation.
3338         (convert_regs_1): Keep track of starting_stack_p whilst processing
3339         a basic block.
3340
3341 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3342
3343         * tree-ssa-ccp.c (const_val): Make it static.
3344
3345 2005-05-29  Geoffrey Keating  <geoffk@apple.com>
3346
3347         PR target/21761
3348         * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
3349         pattern involving `:P'.
3350
3351         * Makefile.in (install-cpp): Depend on installdirs.
3352
3353 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3354
3355         * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
3356         to VEC(int,heap)*.
3357         (new_elim_graph, clear_elim_graph, delete_elim_graph,
3358         elim_graph_add_edge, elim_graph_remove_succ_edge,
3359         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
3360         instead of VARRAY.
3361
3362 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3363
3364         * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
3365         opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
3366         tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
3367         follow spelling conventions in error/dump messages.
3368
3369 2005-05-29  Roger Sayle  <roger@eyesopen.com>
3370             Richard Henderson  <rth@redhat.com>
3371
3372         * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
3373         if the RHS isn't suitable for calling emit_move_insn.
3374
3375 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3376
3377         * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
3378         fold_unary and fold_binary.
3379
3380 2005-05-29  Roger Sayle  <roger@eyesopen.com>
3381
3382         * reg-stack.c (propagate_stack): Always copy the source stack to
3383         the destination.  This routine is now only called when this is safe.
3384         (better_edge): New function split out from convert_regs_1 to
3385         determine which of two edges is better to propagate across.
3386         (convert_regs_1):  We need only search for a best edge if the
3387         stack layout hasn't been defined yet.  Use better_edge to help
3388         find beste.  No longer traverse unnecessary edges.
3389
3390 2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
3391
3392         * tree-ssa-alias.c (new_type_alias): New procedure to
3393         create a type memory tag for a pointer with a may-alias
3394         set determined from a variable declaration.
3395         * tree-flow.h: export declaration of new_type_alias
3396         * tree-optimize.c (init_tree_optimization_passes): document
3397         that pass_may_alias cannot be called after pass_vectorize.
3398         * tree-vect-transform (vect_create_data_ref_ptr): Call
3399         new_type_alias when an type memory tag isn't available
3400         for a reference.
3401         (vectorizable_store): Use copy_virtual_operands to update
3402         virtual defs in place (so that loop_version can be called).
3403         Call mark_for_renaming for the virtual defs in case peeling
3404         is done and virtual uses outside the loop need to be updated.
3405
3406 2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
3407
3408         PR tree-optimization/21639
3409         * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
3410
3411 2005-05-29  Jan Hubicka  <jh@suse.cz>
3412
3413         PR tree-optimization/21562
3414         * cfgexpand.c (construct_init_block): Deal properly with the case
3415         of entry edge not pointing to very first basic block.
3416
3417 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
3418
3419         * tree-ssa-ccp.c (ccp_fold): Remove code that produces
3420         non-gimple min invariant.
3421
3422         * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
3423         * tree-flow.h: Add prototypes for start_recording_case_labels
3424         and end_recording_case_labels.
3425         * tree-cfg.c (start_recording_case_labels,
3426         end_recording_case_labels): Export.
3427         (cleanup_tree_cfg_loop, modified_noreturn_calls,
3428         cleanup_control_flow, cleanup_control_expr_graph,
3429         remove_fallthru_edge, phi_alternatives_equal,
3430         tree_forwarder_block_p, has_abnormal_incoming_edge_p,
3431         remove_forwarder_block, cleanup_forwarder_blocks,
3432         remove_forwarder_block_with_phi, merge_phi_nodes,
3433         gate_merge_phi, pass_merge_phi): Move to ...
3434         * tree-cfgcleanup.c: ... here.
3435
3436         * basic-block.h: Remove forward declaration of bb_ann_d.
3437
3438 2005-05-28  Jan Hubicka  <jh@suse.cz>
3439
3440         * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
3441         Update profile.
3442         * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
3443         debug output.
3444         (tree_mod_subtract): Fix profile updating code.
3445         (tree_divmod_values_to_profile): Do not produce useless value profilers
3446         for divisions.
3447
3448 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
3449
3450         * tree-ssa-dom.c (vrp_element_p): Define.
3451         (vrp_hash_elt): Change the type of records to
3452         VEC(vrp_element_p,heap).
3453         (vrp_free): New.
3454         (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
3455         Update uses of VRP records.
3456         (simplify_cond_and_lookup_avail_expr, record_range): Update
3457         uses of VRP records.
3458
3459         * tree-inline.c (cfun_stack): Change the type to
3460         VEC(function_p,heap).
3461         (push_cfun, pop_cfun): Use VEC instead of VARRAY.
3462
3463 2005-05-27  Ian Lance Taylor  <ian@airs.com>
3464
3465         * c-decl.c (add_stmt): Add C frontend specific version.
3466         (stmts_are_full_exprs_p): Remove.
3467         * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
3468         (stmts_are_full_exprs_p): Don't declare.
3469         * c-semantics.c (add_stmt): Remove.
3470
3471 2005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3472
3473         * config/mips/mips-protos.h (mips_declare_object): Add printf
3474         attribute.
3475         * config/mips/mips.c (mips_declare_object_name): Fix format
3476         argument.
3477
3478 2005-05-27  Roger Sayle  <roger@eyesopen.com>
3479
3480         * reg-stack.c (compensate_edge): Remove original prototype.
3481         (propagate_stack): New function to copy the stack layout
3482         at the start of a basic block from the layout at the end of
3483         one of its predecessors.
3484         (compensate_edge): Assume that both source and destination
3485         blocks have already had their stack layouts defined.
3486         (compensate_edges): Traverse all non-entry edges in the CFG
3487         and call compensate_edge on each in turn.
3488         (convert_regs_1): Change return type to void.  Call
3489         propagate_stack instead of compensate_edge.
3490         (convert_regs_2): Change return type to void.  Update call
3491         to convert_regs_1 to ignore the (now void) return value.
3492         (convert_regs): Update calls to convert_regs_2 to ignore
3493         the (now void) return value.  After all the basic blocks have
3494         been processed, call compensate_edges to actually emit new
3495         insns.
3496         (reg_to_stack): Initialize the aux info for each basic block
3497         with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
3498
3499 2005-05-28  Jan Hubicka  <jh@suse.cz>
3500
3501         * except.c (can_throw_internal_1, can_throw_external_1): Add 
3502         "is_resx" argument.
3503         (can_throw_external, can_throw_internal): Bring into sync wrt
3504         dealing resx.
3505         * except.h (can_throw_internal_1, can_throw_external_1): Update
3506         prototype.
3507         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
3508         Deal properly with resx.
3509
3510 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
3511
3512         * basic-block.h (basic_block_def): Add phi_nodes and
3513         predictions.  Remove tree_annotations.
3514         * predict.c (tree_predicted_by_p, tree_predict_edge,
3515         combine_predictions_for_bb): Adjust references to predictions.
3516         * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
3517         create_block_annotation.
3518         (create_block_annotation, free_blocks_annotatios,
3519         clear_blocks_annotations): Remove.
3520         (dump_cfg_stats): Don't print out the memory spent on
3521         bb_ann_d.
3522         (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
3523         * tree-flow-inline.h (bb_ann): Remove.
3524         (phi_nodes, set_phi_nodes): Update references to phi_nodes.
3525         * tree-flow.h (bb_ann_d): Remove.
3526         * tree-if-conv.c (process_phi_nodes): Update a reference to
3527         phi_nodes.
3528         * tree-phinodes.c (reserve_phi_args_for_new_edge,
3529         create_phi_node, remove_phi_node): Likewise.
3530         * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
3531         * tree-ssa-dom.c (threaded_blocks): New.
3532         (tree_ssa_dominator_optimize): Initialize, clear, and free
3533         threaded_blocks. Update a call to thread_through_all_blocks.
3534         (thread_across_edge): Use threaded_blocks instead of setting
3535         incoming_edge_threaded.
3536         * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
3537         a bitmap of blocks that are threaded through.
3538         * tree.h: Move the prototype of threaded_through_blocks to
3539         tree-flow.h.
3540
3541         * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
3542         fini_walk_dominator_tree): Use VEC instead of VARRAY.
3543         * domwalk.h (dom_walk_data): Change the type of
3544         block_data_stack and free_block_data to VEC(void_p,heap)*.
3545         * tree-ssa-dse.c (dse_initialize_block_local_data,
3546         dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
3547         VEC instead of VARRAY.
3548
3549 2005-05-27  Jan Hubicka  <jh@suse.cz>
3550
3551         * cgraph.c: Include tree-gimple.h
3552         (cgraph_edge): Rename expr to stmt.
3553         (cgraph_create_edge): Likewise.
3554         (cgraph_clone_node): Likewise.
3555         * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
3556         * cgraphunit.c (record_call_1): Rename to ...
3557         (record_reference): ... this one; do not build edges.
3558         (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
3559         (current_basic_block): Kill.
3560         (cgraph_create_edges): Rewrite to work on gimple statements nicely.
3561         (verify_cgraph_node): Likewise.
3562         * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
3563         (copy_bb): Mess up with cgraph edges here; simplify EH handling.
3564         (copy_edges_for_bb): Simplify EH handling.
3565         (expand_call_inline): Pass statement to cgraph_edge and
3566         cgraph_create_edge.
3567
3568 2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
3569
3570         * tree-inline.c (copy_body_r): Manually fold *& to deal
3571         with ADDR_EXPRs with mismatched types for now.
3572
3573         * gimplify.c (fold_indirect_ref_rhs): New function.
3574         (gimplify_modify_expr_rhs): Use it instead of pessimistic
3575         fold_indirect_ref.
3576
3577         * fold-const.c (fold_indirect_ref_1): Add type argument;
3578         make sure the resulting expression is of this type.
3579         (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
3580
3581 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
3582
3583         PR tree-optimization/21658
3584         * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
3585         fold_binary_to_constant.  Likewise, call fold_unary instead of
3586         fold_unary_to_constant.
3587
3588 2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
3589
3590         * vec.h: Implement integral type vector specialization.
3591         (VEC_T): Define a non-GTY structure.
3592         (VEC_T_GTY): Define a GTY structure.
3593         (VEC_TA): Rename to ...
3594         (VEC_TA_GTY): ... here.
3595         (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
3596         (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
3597         (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
3598         DEF_VEC_P and DEF_VEC_ALLOC_P.
3599         (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
3600         (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
3601         DEF_VEC_O and DEF_VEC_ALLOC_O.
3602         * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
3603         * lambda-code.c: Likewise.
3604         * tree-into-ssa.c: Likewise.
3605         * tree-ssa-live.c: Likewise.
3606
3607 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
3608
3609         * tree-into-ssa.c (update_ssa): Ensure that the operand cache
3610         is up-to-date.
3611         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3612         update_stmt_if_modified before calling update_ssa.
3613
3614 2005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>
3615
3616         * config/rs6000/t-rtems: Remove roe multilib variant.
3617
3618 2005-05-26  Roger Sayle  <roger@eyesopen.com>
3619
3620         PR tree-optimization/9814
3621         * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
3622         instruction, add the necessary clobbers by re-expanding the RTL
3623         for arithmetic operations via optab.c's expand_unop/expand_binop.
3624         (noce_try_bitop): New function to optimize bit manipulation idioms
3625         of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
3626         (noce_process_if_block): Call noce_try_bitop.
3627
3628 2005-05-26  Roger Sayle  <roger@eyesopen.com>
3629
3630         * reg-stack.c (convert_regs_entry, convert_regs_exit,
3631         convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
3632         (reg_to_stack): Move to end of the file.  Initialize the per
3633         basic block information here, instead of...
3634         (convert_regs_entry): Here.
3635         (convert_regs): Change unused return type to void.
3636
3637 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
3638
3639         * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
3640         unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
3641         config/rs6000/eabispe.h, config/rs6000/lynx.h,
3642         config/sh/elf.h, config/sh/symbian-pre.h,
3643         config/sparc/sparc-protos.h: Update copyright.
3644
3645 2005-05-26  Mike Stump  <mrs@apple.com>
3646
3647         * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
3648         for Objective-C++.
3649         
3650 2005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>
3651
3652         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
3653         See through ADDR_EXPR in finding place to propagate into.
3654
3655 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
3656
3657         * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
3658         cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
3659         ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
3660         tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
3661         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
3662         tree-ssa-operands.c, tree-vect-analyze.c,
3663         tree-vect-transform.c, tree-vectorizer.c, tree.c,
3664         config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
3665         config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
3666         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
3667         config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
3668         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
3669         config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
3670         config/sh/ushmedia.h, config/sparc/sparc.c,
3671         config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
3672         typos.  Follow spelling conventions.
3673         * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
3674         Follow spelling conventions.
3675
3676 2005-05-26  David Ung  <davidu@mips.com>
3677
3678         * config/mips/mips.c (mips_use_ins_ext_p): New helper function
3679         that determines whether the MIPS32/64 R2 ext/ins should be used.
3680         * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
3681         * config/mips/mips.md (extzv): Changed predicate for operand to
3682         nonimmediate_operand. Add code to generate insn patterns for
3683         extzvsi and extzvdi.
3684         (extzv<mode>): New pattern to match mips32/64 r2 ext insn.
3685         (insv): Similarly for insertion.
3686         (insv<mode>): Similarly.
3687
3688 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
3689
3690         * simplify-rtx.c (avoid_constant_pool_reference): Support
3691         offsetted addresses in the constant pool.
3692
3693 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
3694
3695         * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
3696         * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
3697
3698 2005-05-26  Jakub Jelinek  <jakub@redhat.com>
3699
3700         PR target/21716
3701         * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
3702         found in the basic block and last insn in the basic block is not
3703         INSN_P.  Remove explicit unspec numbers that are no longer valid
3704         from comments.
3705
3706 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
3707
3708         * tree-vect-transform.c (vectorizable_operation): Try word_mode
3709         vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
3710         if a vector mode is available.
3711
3712 2005-05-25  Roger Sayle  <roger@eyesopen.com>
3713
3714         PR middle-end/21709
3715         * fold-const.c (const_binop): Check for division by zero during
3716         complex division.
3717
3718 2005-05-26  Ian Lance Taylor  <ian@airs.com>
3719
3720         * reload1.c (verify_initial_elim_offsets): Add braces to avoid
3721         having a declaration after a statement.
3722
3723 2005-05-26  Richard Sandiford  <rsandifo@redhat.com>
3724
3725         * opt-functions.awk (var_type): New function.
3726         (var_set): Use CLVC_STRING if var_type returns "const char *".
3727         * opth-gen.awk: Use var_type to find out the types of variables.
3728         Don't print comments above each "extern" definition.
3729         * optc-gen.awk: Use var_type in the same way.
3730         * opts.h (cl_var_cond): Rename to...
3731         (cl_var_type): ...this.  Add CLVC_STRING.
3732         (cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
3733         with "var_type".
3734         * opts.c (handle_option, option_enabled): Update after above name
3735         change.  Cast flag_var before using it.  Handle CLVC_STRING.
3736         
3737         * config/alpha/alpha.h (alpha_tls_size): Delete.
3738         * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
3739         (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
3740         (alpha_fptm_string, alpha_mlat_string): Delete.
3741         (alpha_handle_option): Don't set the above variables here.  Use the
3742         integer argument to check the validity of -mtls-size=.
3743         * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
3744         (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
3745         (mtls-size=): Likewise.  Convert to a UInteger and initialize the
3746         variable to 32.
3747
3748         * config/arc/arc.c (arc_cpu_string, arc_text_string)
3749         (arc_data_string, arc_rodata_string): Delete.
3750         (arc_handle_option): Don't set the above variables here.
3751         * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
3752         and initialize them.
3753
3754         * config/arm/arm.c (target_fpu_name, target_fpe_name)
3755         (target_float_abi_name, target_abi_name, structure_size_string)
3756         (arm_pic_register_string): Delete.
3757         (arm_handle_option): Don't set the above variables here, except
3758         in the handling of -mhard-float and -msoft-float.
3759         * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
3760         (mpic-register=, mstructure-size-boundary=): Add Var()s.
3761
3762         * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
3763         (avr_handle_option): Delete.
3764         * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
3765         them.
3766
3767         * config/bfin/bfin.c (bfin_library_id): Delete.
3768         (bfin_handle_option): Don't set it.
3769         * config/bfin/bfin.opt (mshared-library-id=): Add Var().
3770
3771         * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
3772         * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
3773         (c4x_handle_option): Don't set c4x_rpts_cycles here.
3774         * config/c4x/c4x.opt (mrpts=): Add Var().
3775
3776         * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
3777         cris_elinux_stacksize_str here.
3778         * config/cris/aout.opt (melinux-stacksize=): Add Var().
3779         * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
3780         (cris_tune_str, cris_elinux_stacksize_str): Delete.
3781         * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
3782         (cris_tune_str, cris_elinux_stacksize_str): Delete.
3783         (cris_handle_option): Don't set the above variables here.
3784         * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
3785         (max-stackframe=): Add Var()s.
3786
3787         * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
3788         * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
3789         (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
3790         (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
3791         (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
3792         (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
3793         (ix86_handle_option): Don't set the above variables here.
3794         * config/i386/i386.opt (malign-functions=, malign-jumps=)
3795         (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
3796         (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
3797         Var()s.
3798
3799         * config/ia64/ia64.h (ia64_tls_size): Delete.
3800         * config/ia64/ia64.c (ia64_tls_size): Delete.
3801         (ia64_handle_option): Treat -mtls-size= as a UInteger option,
3802         reading the integer argument from the "value" parameter.  Don't
3803         set ia64_tls_size here.
3804         * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
3805         Add Var() and Init().
3806
3807         * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
3808         (m32r_cache_flush_trap): Delete.
3809         * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
3810         (m32r_cache_flush_trap): Delete.
3811         (m32r_handle_option): Don't set the above variables when handling
3812         -mflush-func= and -mflush-trap=.
3813         * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
3814         and Init()s.
3815
3816         * config/mips/mips.h (mips_cache_flush_func): Delete.
3817         * config/mips/mips.c (mips_arch_string, mips_tune_string)
3818         (mips_cache_flush_func): Delete.
3819         (mips_handle_option): Don't set the above variables when handling
3820         -march=, -mtune= and -mflush-func=.
3821         * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
3822
3823         * config/s390/s390.c (s390_arch_string): Delete.
3824         (s390_handle_option): Don't set it here.
3825         * config/s390/s390.opt (march=): Add Var().
3826
3827         * config/sparc/sparc.h (sparc_cmodel_string): Delete.
3828         * config/sparc/sparc.c (sparc_cmodel_string): Delete.
3829         (sparc_handle_option): Don't set it here.
3830         * config/sparc/sparc.opt (mcmodel=): Add Var().
3831
3832 2005-05-25  Roger Sayle  <roger@eyesopen.com>
3833
3834         * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
3835         call to convert_to_integer by building the NOP_EXPR directly.
3836
3837 2005-05-25  Richard Sandiford  <rsandifo@redhat.com>
3838
3839         * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
3840
3841 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
3842             Jeff Law  <law@redhat.com>
3843
3844         * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
3845         constant and side_effects of the ADDR_EXPR are consistent.
3846
3847         * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
3848         appropriately around calls to recompute_tree_invarant_for_addr_expr.
3849
3850 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
3851
3852         * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
3853         (s390_function_arg, s390_gimplify_va_arg): Use them.
3854         (s390_register_info): Save only required subset of argument
3855         registers into save area for va_list.
3856         (s390_va_start): Initialize only required elements of va_list struct.
3857         (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
3858
3859 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
3860
3861         * reload1.c (verify_initial_elim_offsets): Return boolean status
3862         instead of aborting.
3863         (reload): Adapt verify_initial_elim_offsets call site.  Restart
3864         main loop if some initial elimination offsets changed.
3865
3866 2005-05-25  Adam Nemet  <anemet@lnxw.com>
3867
3868         * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
3869         of -mno-svr4-struct-return.
3870
3871 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
3872
3873         Fix PR tree-optimization/21705
3874         
3875         * tree-ssa-pre.c (in_fre): New static variable.
3876         (create_value_expr_from): Recursively value number reference ops
3877         in argument lists.
3878         (can_value_number_call): Temporary restrict only exists for
3879         PRE, not FRE.
3880
3881 2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
3882
3883         * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
3884         sizeof (bitmap *) with sizeof (bitmap).
3885
3886 2005-05-25  Daniel Berlin <dberlin@dberlin.org>
3887
3888         * lambda-code.c (perfect_nestify): Call update_stmt on the exit
3889         condition.
3890
3891 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
3892
3893         * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
3894         hook_bool_rtx_true.
3895
3896 2005-05-25  Jan Hubicka  <jh@suse.cz>
3897
3898         * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
3899         * cgraph.c (cgraph_create_node): Reset estimated_growth.
3900         * cgraph.h (cgraph_global_info): Add estimated_growth.
3901         * ipa-inline.c: Include coverage.h
3902         (max_insns, max_count): New static variables.
3903         (cgraph_estimate_size_after_inlining): Cache the result.
3904         (cgraph_estimate_growth):
3905         * passes.c (rest_of_clean_state): Kill coverage_end_function.
3906         * timevar.def (TV_INLINE_HEURISTICS): New timevar.
3907         * tree-optimize.c (init_tree_optimization_passes): Move profiling before
3908         inlining.
3909         (ipa_passes): Initialize bitmaps.
3910
3911 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
3912
3913         * loop-doloop.c: Include "target.h". 
3914           (doloop_valid_p): Move tests to function in targhooks.c.
3915         * target.h (struct gcc_target): New target hook
3916           "insn_valid_within_doloop".
3917         * target-def.h: Define default value for "insn_valid_within_doloop".
3918           (TARGET_INITIALIZER): Insert new target hook into initializer.
3919         * targhooks.c (default_insn_valid_within_doloop): New function.
3920         * targhooks.h (default_insn_valid_within_doloop): Declare.
3921         * hooks.c (hook_bool_rtx_true): New function.
3922         * hooks.h (hook_bool_rtx_true): Declare.
3923         * doc/tm.texi: Add documentation for new target hook.
3924
3925 2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
3926
3927         PR target/21412
3928         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
3929         * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
3930         (sparc_tls_referenced_p): New prototype.
3931         * config/sparc/sparc.c (tls_symbolic_operand): Delete.
3932         (sparc_expand_move): Look for TLS addresses with constant offsets.
3933         (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
3934         tls_symbolic_operand.
3935         (legitimate_pic_operand_p): Likewise.
3936         (legitimate_address_p): Likewise.
3937         (legitimize_address): Likewise.
3938         (sparc_tls_symbol_ref_1): New function.
3939         (sparc_tls_referenced_p): New function.
3940         * config/sparc/predicates.md (tgd_symbolic_operand): Use
3941         SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
3942         (tld_symbolic_operand): Likewise.
3943         (tie_symbolic_operand): Likewise.
3944         (tle_symbolic_operand): Likewise.
3945
3946 2005-05-24  DJ Delorie  <dj@redhat.com>
3947         
3948         * common.opt (-Wattributes): New.  Default true.
3949         * doc/invoke.texi (-Wno-attributes): Document.
3950         
3951         * attribs.c (decl_attributes): Move warning control from if() to
3952         warning(OPT_*).
3953         * c-common.c (handle_packed_attribute): Likewise.
3954         (handle_nocommon_attribute): Likewise.
3955         (handle_common_attribute): Likewise.
3956         (handle_noreturn_attribute): Likewise.
3957         (handle_noinline_attribute): Likewise.
3958         (handle_always_inline_attribute): Likewise.
3959         (handle_used_attribute): Likewise.
3960         (handle_unused_attribute): Likewise.
3961         (handle_const_attribute): Likewise.
3962         (handle_transparent_union_attribute): Likewise.
3963         (handle_constructor_attribute): Likewise.
3964         (handle_destructor_attribute): Likewise.
3965         (handle_mode_attribute): Likewise.
3966         (handle_alias_attribute): Likewise.
3967         (handle_visibility_attribute): Likewise.
3968         (handle_tls_model_attribute): Likewise.
3969         (handle_malloc_attribute): Likewise.
3970         (handle_returns_twice_attribute): Likewise.
3971         (handle_pure_attribute): Likewise.
3972         (handle_deprecated_attribute): Likewise.
3973         (handle_vector_size_attribute): Likewise.
3974         (handle_nothrow_attribute): Likewise.
3975         (handle_cleanup_attribute): Likewise.
3976         (handle_warn_unused_result_attribute): Likewise.
3977         (handle_sentinel_attribute): Likewise.
3978         * c-decl.c (diagnose_mismatched_decls): Likewise.
3979         (start_decl): Likewise.
3980         (grokdeclarator): Likewise.
3981         (start_function): Likewise.
3982         * c-format.c (check_function_format): Likewise.
3983         * stor-layout.c (place_field): Likewise.
3984         (finalize_record_size): Likewise.
3985         * tree.c (handle_dll_attribute)): Likewise.
3986         * varasm.c (default_assemble_visibility): Likewise.
3987         * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
3988         (darwin_assemble_visibility): Likewise.
3989         * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
3990         * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
3991         (arm_handle_isr_attribute): Likewise.
3992         * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
3993         (avr_handle_fndecl_attribute): Likewise.
3994         * config/bfin/bfin.c (handle_int_attribute): Likewise.
3995         * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
3996         * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
3997         (h8300_handle_eightbit_data_attribute): Likewise.
3998         (h8300_handle_tiny_data_attribute): Likewise.
3999         * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
4000         (ix86_handle_regparm_attribute): Likewise.
4001         (ix86_handle_struct_attribute): Likewise.
4002         * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
4003         (i386_pe_encode_section_info): Likewise.
4004         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4005         * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
4006         (ip2k_handle_fndecl_attribute): Likewise.
4007         * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
4008         * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
4009         (m68hc11_handle_fntype_attribute): Likewise.
4010         (m68hc11_encode_section_info): Likewise.
4011         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4012         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4013         * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
4014         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
4015         * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
4016         (sh_handle_sp_switch_attribute): Likewise.
4017         (sh_handle_trap_exit_attribute): Likewise.
4018         * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
4019         (sh_symbian_handle_dll_attribute): Likewise.
4020         * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
4021         (xstormy16_handle_below100_attribute): Likewise.
4022         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4023
4024         * c-common.c (unsigned_conversion_warning): Move warning control
4025         from if() to warning(OPT_*).
4026         (c_common_truthvalue_conversion): Likewise.
4027         (c_do_switch_warnings): Likewise.
4028         * c-decl.c (diagnose_mismatched_decls): Likewise.
4029         (diagnose_mismatched_decls): Likewise.
4030         (define_label): Likewise.
4031         (grokdeclarator): Likewise.
4032         * c-format.c (check_format_info): Likewise.
4033         * c-lex.c (interpret_integer): Likwise.
4034         (lex_string): Likewise.
4035         * c-opts.c (c_common_post_options): Likewise.
4036         * c-parser.c (c_parser_unary_expression): Likewise.
4037         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
4038         (handle_pragma_extern_prefix): Likewise.
4039         * c-typeck.c (build_binary_op): Likewise.
4040         * gcse.c (is_too_expensive): Likewise.
4041         * opts.c (decode_options): Likewise.
4042         * stor-layout.c (place_field): Likewise.
4043         * tree-cfg.c (remove_bb): Likewise.
4044
4045         * c.opt (-Wreturn-type): Add Var(warn_return_type).
4046         * flags.h (warn_return_type): Remove.
4047         * toplev.c (warn_return_type): Likewise.
4048
4049 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
4050
4051         * configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
4052         existence of long long and __int64 before determining their size.
4053         * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
4054         * configure, config.h.in:  Regenerate.
4055
4056 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
4057
4058         * configure: Regenerate.
4059
4060 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
4061
4062         * c-common.h (objc_comptypes): Remove prototype.
4063         (objc_compare_types): New prototype.
4064         (objc_volatilized_decl): Likewise.
4065         (objc_type_quals_match): Likewise.
4066         * c-decl.c (objc_mark_locals_volatile): Streamline by calling
4067         objc_volatilize_decl().
4068         * c-typeck.c (comp_target_types): Remove third parameter; do
4069         not call objc_comptypes().
4070         (comptypes): Remove calls to objc_comptypes().
4071         (build_function_call): Extend compatible prototype check to ObjC.
4072         (build_conditional_expr): Adjust call to comp_target_types().
4073         (convert_for_assignment): Call objc_compare_types() instead of
4074         objc_comptypes(); adjust calls to comp_target_types(); call
4075         objc_type_quals_match() before issuing qualifier mismatch
4076         warnings.
4077         (build_binary_op): Call objc_compare_types() before issuing
4078         pointer mismatch warnings; adjust calls to
4079         comp_target_types().
4080         * stub-objc.c (objc_comptypes): Remove stub.
4081         (objc_compare_types): New stub.
4082         (objc_volatilized_decl): Likewise.
4083         (objc_type_quals_match): Likewise.
4084
4085 2005-05-24  Paolo Carlini  <pcarlini@suse.de>
4086
4087         * config/ia64/ia64intrin.h: Define nothing for C++:
4088         overloaded builtins have been ported to C++.
4089
4090 2005-05-24  Jeff Law  <law@redhat.com>
4091
4092         * tree-nested.c (build_addr): New "context" argument.  Temporarily
4093         set current_function_decl around the call to build the ADDR_EXPR.
4094         (get_static_chain): Pass proper context to build_addr.
4095         (convert_nl_goto_reference): Likewise.
4096         (convert_tramp_reference): Likewise.
4097         (final_nesting_tree_1): Likewise.
4098         * tree-profile.c (tree_gen_interval_profiler): Likewise.
4099         (tree_gen_pow2_profiler): Likewise.
4100         (tree_gen_one_value_profiler): Likewise.
4101         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
4102         * tree.h (build_addr): Update prototype.
4103
4104 2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
4105
4106         * tree-flow.h (bb_ann_d): Remove has_escape_site.
4107         * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
4108         write to has_escape_site.
4109
4110 2005-05-24  Jeff Law  <law@redhat.com>
4111
4112         * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
4113         * tree-cfg.c: Include tree-ssa-propagate.h.
4114         (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
4115         needed.
4116
4117 2005-05-24  Nick Clifton  <nickc@redhat.com>
4118
4119         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4120         __NO_FPRS__ when 'f' class registers will not be available. 
4121
4122 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4123
4124         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
4125         nothing was done.
4126         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
4127         nothing then FAIL.
4128         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
4129         prototype.
4130
4131 2005-05-23  Jeff Law  <law@redhat.com>
4132
4133         * tree-ssa-dom.c (cprop_into_stmt): Do not call
4134         recompute_tree_invariant_for_addr_expr here.
4135         (optimize_stmt): Call it here instead and do so if anything
4136         at all has changed in the statement and the RHS is an ADDR_EXPR.
4137         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
4138         needed, call recompute_tree_invariant_for_addr_expr.
4139         * tree-ssa-propagate.c (substitute_and_fold): Call
4140         recompute_tree_invariant_for_addr_expr as needed.
4141
4142 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
4143
4144         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
4145         saving less registers than the replacement.
4146
4147 2005-05-23  Jan Hubicka  <jh@suse.cz>
4148
4149         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
4150
4151 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4152
4153         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
4154         * config/sparc/sparc.c (sparc_expand_move): New function.
4155         (sparc_emit_set_const64): Rewrite assert condition on entry.
4156         (legitimate_constant_p) <CONST_VECTOR>: New case.
4157         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
4158         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
4159         movV64, movtf): Use nonimmediate_operand for the first operand.
4160         Rewrite.  Only invoke sparc_expand_move.
4161         * config/sparc/predicates.md (input_operand): Reorder tests.
4162
4163 2005-05-23  Jan Beulich  <jbeulich@novell.com>
4164
4165         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
4166         missing return statement.
4167
4168 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4169
4170         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
4171         emit_move_insn for moves to TFmode stack slots.
4172
4173 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
4174
4175         * tree-stdarg.c (execute_optimize_stdarg): Handle references
4176         to va_list of the form &va[0].
4177
4178 2005-05-20  Jan Hubicka  <jh@suse.cz>
4179
4180         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
4181         * genemit.c (main): Make insn-emit to include basic-block.h too.
4182
4183 2005-05-20  Jan Hubicka  <jh@suse.cz>
4184
4185         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
4186
4187 2005-05-19  Richard Henderson  <rth@redhat.com>
4188
4189         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
4190         emit_store_conditional): Split out from ...
4191         (alpha_split_atomic_op): ... here.
4192         (alpha_split_compare_and_swap): New; extract from .md file.
4193         (alpha_split_lock_test_and_set): Likewise.
4194         * config/alpha/alpha-protos.h: Update.
4195         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
4196         split code into alpha.c.
4197         (sync_lock_test_and_set<I48MODE>): Likewise.
4198
4199 2005-05-19  Richard Henderson  <rth@redhat.com>
4200
4201         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
4202
4203 2005-05-19  Richard Henderson  <rth@redhat.com>
4204
4205         * config/i386/sse.md (mulv4si3): Use all register inputs.
4206         (mulv2di3): Likewise.
4207
4208 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
4209
4210         * tree-ssa-loop-ivopts.c (determine_base_object): Use
4211         build_fold_addr_expr to generate trees of correct type.
4212         Use fold_buildN if possible.
4213
4214 2005-05-19  Jan Hubicka  <jh@suse.cz>
4215
4216         * basic-block.h (REG_BR_PROB_BASE): Define.
4217         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
4218         (dump_cgraph_node): Dump count.
4219         (cgraph_clone_edge): Rescale counts.
4220         (cgraph_clone_node): Likewise.
4221         * cgraph.h: Include basic-block.h
4222         (cgraph_node): Add count.
4223         (cgraph_edge): Add count and loop_nest.
4224         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
4225         Update prototypes.
4226         * cgraphunit.c: Kill now redundant inlining comment.
4227         (cgraph_create_edges): Make static, maintain current basic block;
4228         fix pasto.
4229         (record_call_1): Fill in new fields.
4230         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
4231         cgraph_clone_node.
4232         (cgraph_decide_recursive_inlining): Likewise.
4233         * rtl.h (REG_BR_PROB_BASE): Kill.
4234         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
4235         (expand_call_inline): Update call of cgraph_create_edge.
4236         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4237
4238 2005-05-19  Nick Clifton  <nickc@redhat.com>
4239
4240         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
4241         new rs6000_explicit_options structure.
4242
4243 2005-05-19  Richard Henderson  <rth@redhat.com>
4244
4245         PR target/21390
4246         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
4247         TFmode code swapping ...
4248         (alpha_emit_xfloating_compare): ... here.
4249         (alpha_emit_setcc): Update to match.
4250         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
4251
4252 2005-05-19  Richard Henderson  <rth@redhat.com>
4253
4254         PR target/21657
4255         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
4256         memory indirection in local-dynamic case.
4257
4258 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
4259             Bernd Schmidt  <bernd.schmidt@analog.com>
4260
4261         * config/bfin/bfin.c (branch_dest): Add comment why it's
4262         necessary.
4263         * config/bfin/bfin.md (attr "length" default): Change the offset of
4264         forward conditional branch of length 4 from 4096 to 4092.
4265
4266 2005-05-19  Jan Beulich  <jbeulich@novell.com>
4267
4268         * unwind-compat.c: Include tconfig.h and tsystem.h.
4269         * unwind-dw2-fde-compat.c: Likewise.
4270
4271 2005-05-18  Richard Henderson  <rth@redhat.com>
4272
4273         PR 21541
4274         * ifcvt.c (noce_process_if_block): Avoid conversion when the
4275         memory destination is readonly.
4276
4277 2005-05-18  Richard Henderson  <rth@redhat.com>
4278
4279         PR 21541
4280         * tree-ssa-operands.c (opf_non_specific): New.
4281         (get_asm_expr_operands): Set it.
4282         (add_call_clobber_ops, add_call_read_ops): Likewise.
4283         (add_stmt_operand): Test it instead of opf_kill_def when
4284         considering unmodifiable variables.
4285
4286         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
4287
4288 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
4289
4290         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
4291         tree-ssa-forwprop.c: Fix comment typos.
4292         * doc/invoke.texi: Fix a typo.
4293
4294 2005-05-18  Richard Henderson  <rth@redhat.com>
4295
4296         * config.gcc (powerpc-*-linux*): Include linux64.opt when
4297         including linux64.h.
4298
4299 2005-05-18  Richard Henderson  <rth@redhat.com>
4300
4301         * tree-cfg.c (pass_remove_useless): Revert last change.
4302         * tree-optimize.c (init_tree_optimization_passes): Initialize
4303         all_lowering_passes with PROP_gimple_any.
4304
4305 2005-05-18  Devang Patel  <dpatel@apple.com>
4306
4307         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
4308         the mask end.
4309         
4310 2005-05-18  Richard Henderson  <rth@redhat.com>
4311
4312         * tree-ssa-forwprop.c (cfg_changed): New.
4313         (tidy_after_forward_propagate_addr): New.
4314         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
4315         (forward_propagate_addr_into_variable_array_index): Likewise.
4316         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
4317         edges were removed.
4318
4319 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
4320
4321         * dummy-checksum.c: New.
4322         * genchecksum.c: New.
4323         * c.opt (print_pch_checksum): New flag.
4324         * c-pch.c (struct c_pch_validity): Make much shorter.
4325         (no_checksum): New.
4326         (host_machine): Remove.
4327         (target_machine): Remove.
4328         (get_ident): Change PCH version number.
4329         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
4330         Don't put triplets or version string in PCH validity data.
4331         Do put the compiler checksum in the validity data.
4332         (c_common_valid_pch): Don't check triplets or version string.  Do
4333         check checksum.
4334         (c_common_print_pch_checksum): New.
4335         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
4336         Print fingerprint with -v.
4337         * c-common.h (c_common_print_pch_checksum): New.
4338         (executable_checksum): New.
4339         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
4340         (cc1-dummy): New rule.
4341         (cc1-checksum.c): New rule.
4342         (cc1-checksum.o): New rule.
4343         (cc1): Add checksum support.
4344         (build/genchecksum): New.
4345         (build/genchecksum.o): New.
4346         (dummy-checksum.o): New.
4347         (genobjnames): Add genchecksum.o.
4348         (mostlyclean): Remove *-checksum.c.
4349         (gnucompare): Add libgcc to list of directories checked.
4350         Make comparison problems in libgcc/ and with checksum files only
4351         be warnings.
4352         * doc/invoke.texi (Precompiled Headers): Remove caution.
4353         Document that it must be the exact same binary.  Add a few
4354         known-safe flags to the list.
4355
4356         * rs6000/predicates.md (fix_trunc_dest_operand): New.
4357         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
4358         Check that a memory operand is valid before trying to use it.
4359         
4360         * tree-cfg.c (pass_remove_useless): This pass works on trees.
4361
4362 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
4363
4364         * tree.c (build1_stat): Don't try to handle two-operand
4365         tree codes.
4366
4367 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
4368
4369         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
4370         * config/sh/sh.h: Update mask names throughout.
4371         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
4372         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
4373         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
4374         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
4375         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
4376         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
4377         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
4378         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
4379         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
4380         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
4381         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
4382         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
4383         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
4384         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
4385         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
4386         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
4387         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
4388         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
4389         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
4390         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
4391         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
4392         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
4393         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
4394         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
4395         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
4396         (SUBTARGET_SWITCHES): Delete.
4397         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
4398         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
4399         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
4400         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
4401         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
4402         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
4403         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
4404         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
4405         (SUPPORT_SH3): Likewise SUPPORT_SH2.
4406         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
4407         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
4408         SUPPORT_SH4_NOFPU.
4409         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
4410         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
4411         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
4412         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
4413         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
4414         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
4415         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
4416         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
4417         (SUPPORT_ANY_SH5): New macros.
4418         (TARGET_NONE): Replace with...
4419         (MASK_ARCH): ...this new macro.
4420         * config/sh/elf.h: Update mask names
4421         * config/sh/linux.h: Likewise.
4422         * config/sh/little.h: Likewise.
4423         * config/sh/netbsd-elf.h: Likewise.
4424         * config/sh/symbian-pre.h: Likewise.
4425         * config/sh/sh.c (sh_handle_option): New function.
4426         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4427         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
4428         (sh_target_switches, target_switches): Delete.
4429         (sh_pch_valid_p): Check for specific differences in the target_flags
4430         settings.
4431         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
4432         * config/sh/sh.opt: New file.
4433
4434 2005-05-18  Richard Henderson  <rth@redhat.com>
4435
4436         PR target/21632
4437         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
4438         small_addr_symbolic_operand.
4439
4440 2005-05-18  Jeff Law  <law@redhat.com>
4441
4442         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
4443         propagate an ADDR_EXPR if the definition and use sites are
4444         in different EH regions.
4445
4446 2005-05-18  Ian Lance Taylor  <ian@airs.com>
4447
4448         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
4449         obstack_grow.
4450
4451 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
4452
4453         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
4454
4455 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
4456         
4457         Fix PR tree-optimization/21407
4458
4459         * tree-ssa-operands.c (note_addressable): Change
4460         COMPONENT_REF handling in response to aliasing
4461         discussion.
4462
4463 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
4464
4465         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
4466         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
4467         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
4468         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
4469         the default on Solaris too.
4470
4471 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
4472
4473         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
4474         is okay too.
4475
4476 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4477
4478         * timevar.def (TV_SCEV_CONST): New timevar.
4479         * tree-optimize.c (init_tree_optimization_passes): Add
4480         pass_scev_cprop.
4481         * tree-pass.h (pass_scev_cprop): Declare.
4482         * tree-scalar-evolution.c (scev_const_prop): New function.
4483         * tree-scalar-evolution.h (scev_const_prop): Declare.
4484         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
4485         New.
4486         * tree-cfg.c (replace_uses_by): Export.
4487         * tree-flow.h (replace_uses_by): Declare.
4488
4489 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
4490             Mike Stump  <mrs@apple.com>
4491
4492         Yet more Objective-C++...
4493
4494         * c-common.h (objc_finish_try_stmt): Add.
4495         (objc_build_synchronized): Add.
4496         (objc_generate_write_barrier): Add.
4497         * stub-objc.c (objc_build_synchronized): Add return value.
4498         (objc_finish_try_stmt): Likewise.
4499         (objc_generate_write_barrier): Add.
4500
4501         * c-common.h (objc_rewrite_function_call): Add.
4502         * c-typeck.c (build_function_call): Allow objc to rewrite
4503         FUNCTION_DECLs.
4504         (build_modify_expr): Allow objc to generate write barriers.
4505         * c.opt (Wassign-intercept): Add.
4506         (Wstrict-selector-match): Add.
4507         (fobjc-call-cxx-cdtors): Add.
4508         (fobjc-direct-dispatch): Add.
4509         (fobjc-gc): Add.
4510         * dbxout.c (get_lang_number): Add Objective-C++ support.
4511         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
4512         (-Wstrict-selector-match): Likewise.
4513         (-fobjc-direct-dispatch): Likewise.
4514         (-Wassign-intercept): Likewise.
4515         (Overall Options): Likewise.
4516         * gengtype.c (get_output_file_with_visibility): Likewise.
4517         * stub-objc.c (objc_rewrite_function_call): Add.
4518         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
4519
4520         * c-common.c (flag_objc_exceptions): Remove.
4521         (flag_objc_sjlj_exceptions): Remove.
4522         * c-decl.c (objc_mark_locals_volatile): Don't change decls
4523         that are already ok.
4524         * c-opts.c (c_common_handle_option, case
4525         OPT_fobjc_exceptions): Remove.
4526         (case OPT_fobjc_sjlj_exceptions): Remove
4527         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
4528         (fobjc-exceptions): Likewise.
4529         (fobjc-sjlj-exceptions): Likewise.
4530         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
4531         (OFFS_ASSIGNIVAR_FAST): Add.
4532         
4533 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
4534
4535         * config/sparc/sparc.md (movhi): Do not test constness
4536         of operand #1 twice.
4537         (movsi): Likewise.
4538         (movdi): Unconditionally accept zero as second operand
4539         when the first is memory.
4540         (movdi_insn_sp32): Handle above case.
4541         (DImode splitter): Use predicates.
4542         (DImode splitter): Use const_zero_operand predicate.
4543         (movsf_insn): Swap 2 alternatives.
4544
4545 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4546
4547         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
4548         expand_simple_operations to bases of the ivs.
4549         (tree_int_cst_sign_bit): Export.
4550         * tree-flow.h (expand_simple_operations): Declare.
4551         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
4552         tree_int_cst_sign_bit.
4553         (expand_simple_operations): Export.
4554         * tree.h (tree_int_cst_sign_bit): Declare.
4555
4556 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4557
4558         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
4559         merged block.
4560         (replace_uses_by): New function.
4561         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
4562         * tree-flow.h (fold_stmt_inplace): Declare.
4563         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
4564         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
4565         info after cfg cleanup.
4566
4567 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4568
4569         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
4570         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
4571         const.
4572
4573 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4574
4575         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
4576         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
4577         * timevar.c (timevar_ggc_mem_total): New variable.
4578         (GGC_MEM_BOUND): New constant.
4579         (get_time): Record ggc memory status.
4580         (timevar_accumulate): Accumulate amount of ggc memory.
4581         (timevar_print): Print consumption of ggc memory.
4582         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
4583         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
4584         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
4585         * timevar.h (struct timevar_time_def): Add ggc_mem field.
4586         (timevar_ggc_mem_total): Declare.
4587
4588 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
4589
4590         * tree-into-ssa.c (update_ssa): Clean up by shortening the
4591         live range of DFS.
4592
4593 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
4594
4595         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
4596         define_code_attr.
4597         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
4598         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
4599         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
4600         ("s<ocond:code>"): Rename from respectively "b<ncond>",
4601         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
4602         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
4603         "s<rcond>" and "s<ocond>".
4604         ("b<ocond:code>", "*b<ocond:code>_reversed")
4605         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
4606         output statement section.
4607
4608 2005-05-17  Roger Sayle  <roger@eyesopen.com>
4609
4610         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
4611
4612 2005-05-17  Steven Bosscher  <stevenb@suse.de>
4613             Stuart Hastings <stuart@apple.com>
4614             Jan Hubicka  <jh@suse.cz>
4615             Dale Johannesen  <dalej@apple.com>
4616
4617         * cgraph.h (cgraph_node): Add 'lowered' state.
4618         (cgraph_lower_function): Declare.
4619         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
4620         (cgraph_lower_function): New function.
4621         (cgraph_create_edges): Deal with lowered function bodies.
4622         (verify_cgraph_node): Likewise.
4623         (cgraph_analyze_function): Do lowering job.
4624         (cgraph_build_static_cdtor): Likewise.
4625         * function.h (struct function): Add saved_eh and saved_cfg.
4626         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
4627         * tree-cfg.c (fold_cond_expr_cond): Export.
4628         * tree-flow.h (fold_cond_expr_cond): Declare.
4629         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
4630         pointer-set.
4631         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
4632         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
4633         callee_cfun, block, eh_region, eh_region_offset.
4634         (inlining_p): New predicate.
4635         (remap_decl): Update for new inline_data; declare newly created inline
4636         vars in low gimple way.
4637         (copy_body_r): Update for new datastructure, simplify some of handling
4638         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
4639         deal with RESX_EXPRs.
4640         (copy_bb): New.
4641         (copy_edges_for_bb): Likewise.
4642         (remap_decl_1): New.
4643         (copy_cfg_body): New.
4644         (copy_generic_body): Rewrite to work on low gimple.
4645         (copy_body): Turn into simple wrapper around copy_cfg_body.
4646         (setup_one_parameter): Insert new statements into given basic block.
4647         (initialize_initialized_parameters): Likewise, reorganize way things are
4648         gimplified.
4649         (declare_return_variable): Update for new inline data datastructure.
4650         (inline_forbidden_p): Work on low gimple.
4651         (estimate_num_insns): Likewise.
4652         (expand_call_inline): Work on CFG.
4653         (push_cfun, pop_cfun): New functions.
4654         (cfun_stack): New stack.
4655         (add_lexical_block): New function.
4656         (gimple_expand_calls_inline): Work on basic block.
4657         (optimize_inline_calls): Likewise.
4658         (clone_body, save_body, unsave_ewpr_now): Update for new
4659         datastructures.
4660         (declare_inline_vars): Work on block instead of bind_expr.
4661         (inlining_p): New predicate.
4662         * tree-inline.h (push_cfun, pop_cfun): Declare.
4663         * tree-optimize.c: Include except.h
4664         (all_lowering_passes): New variable.
4665         (execute_fixup_cfg, pass_fixup_cfg): New pass.
4666         (init_tree_optimization_passes): Move some to all_lowering_passes.
4667         (tree_lowering_passes): New function.
4668         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
4669         * tree-pass.h (tree_lowering_passes): Declare
4670
4671 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
4672
4673         * unwind-dw2-fde-darwin.c: Include tsystem.h.
4674
4675 2005-05-17  Jeff Law  <law@redhat.com>
4676
4677         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
4678         * tree-ssa-forwprop.c: Include langhooks.h.
4679         (forward_propagate_addr_expr_into_variable_array_index): New.
4680         (forward_propagate_addr_expr): New.
4681         (tree_ssa_forward_propagate_single_use_vars): Loop over all
4682         the statements in the block instead of just the last statement.
4683         Call forward_propagate_addr_expr as needed.
4684         (pass_forwprop): Update the SSA graph after forward propagation is
4685         complete.
4686
4687 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
4688
4689         * unwind-dw2-fde-glibc.c (base_from_cb_data,
4690         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
4691         appropriate.
4692         * unwind-dw2-fde.c (__deregister_frame_info_bases,
4693         base_from_object, fde_split, end_fde_sort): Likewise.
4694         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
4695         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
4696         uw_init_context_1): Likewise.
4697         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
4698         _Unwind_Resume_or_Rethrow): Likewise.
4699         * unwind-pe.h (__gxx_abort): Do not define.
4700         (size_of_encoded_value, base_of_encoded_value,
4701         read_encoded_value_with_base): Use gcc_unreachable.
4702         * unwind.h (_Unwind_GetTextRelBase): Likewise.
4703
4704 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
4705
4706         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
4707         (cfi_end): New macros.
4708         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
4709         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
4710         an eight byte stack frame.
4711         (__NR_tkill): Define.
4712         (__div0): Use gettid tkill on GNU/Linux.
4713         (_arm_return): Add CFI.
4714         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
4715
4716 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
4717
4718         * configure.ac: Remove spaces around assignment to
4719         gcc_cv_ld_sysroot.
4720         * configure: Regenerated.
4721
4722 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
4723
4724         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
4725         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
4726         aix_struct_ret.
4727         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
4728         Modify aix_struct_return variable, not target_flags.
4729         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
4730         (rs6000_return_in_memory): Test aix_struct_return.
4731         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
4732         independent variable.  Report mxl-compat.
4733
4734 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
4735
4736         * config/bfin/bfin.md (eh_return): Add missing DONE.
4737
4738 2005-05-17  Ian Lance Taylor  <ian@airs.com>
4739
4740         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
4741         field.
4742         (mode_attr_index): Remove check for defined attribute.  Remove
4743         infile parameter.  Change all callers.
4744         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
4745         return after finding attribute.
4746         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
4747         callers.
4748         (apply_macro_traverse): Set mtd->unknown_mode_attr.
4749         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
4750         attribute used for a mode.
4751
4752 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
4753
4754         * tree-ssa-math-opts.c: New file.
4755
4756 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
4757
4758         * Makefile.in: Add tree-ssa-math-opts.c.
4759         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
4760         * fold-const.c (distribute_real_division): New.
4761         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
4762         * tree-pass.h (pass_cse_reciprocals): New.
4763         * tree-optimize.c (init_tree_optimization_passes): Run it.
4764         * doc/passes.texi: Document the new pass.
4765
4766 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
4767
4768         PR middle-end/21595
4769         * builtins.c (fold_builtin_constant_p): Handle
4770         &"string cst"[0] as constant.
4771
4772 2005-05-17  Richard Henderson  <rth@redhat.com>
4773
4774         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
4775
4776 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
4777
4778         PR middle-end/21492
4779         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
4780         src2 if src2 has been split.
4781
4782         PR tree-optimization/21610
4783         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
4784         returning DECL, call unshare_expr.
4785
4786 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
4787
4788         * config/cris/cris.md: Unquote preparation and output statements.
4789         (BWD, WD, BW): New, mode-macros.
4790         (S, s, m, mm, nbitsm1): New, mode-attrs.
4791         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
4792         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
4793         code-attrs.
4794         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
4795         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
4796         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
4797         "*cmp_swapexthi".
4798         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
4799         ("movdi"): Move misplaced head comment regarding necessity of
4800         movdi from movsi to here.
4801         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
4802         "*mov_sidehi_biap".
4803         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
4804         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
4805         "*mov_sideqi_biap_mem".
4806         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
4807         "*mov_sidehi_mem".
4808         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
4809         "*clear_sidehi_biap" and "*clear_sideqi_biap".
4810         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
4811         and "*clear_sideqi".
4812         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
4813         "*ext_sidehisi_biap".
4814         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
4815         "*ext_sidehisi".
4816         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
4817         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
4818         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
4819         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
4820         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
4821         "zero_extendqisi2".
4822         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
4823         "*op_sidehi_biap" and "*op_sidesi_biap".
4824         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
4825         "*op_sidesi".
4826         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
4827         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
4828         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
4829         "*op_swap_sidehi" and "*op_swap_sidesi".
4830         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
4831         in the N alternative of "subqi3".
4832         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
4833         "*extophisi_side_biap".
4834         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
4835         "*extophisi_side".
4836         ("*extop<mode>si_swap_side_biap"): Replace
4837         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
4838         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
4839         "*extophisi_swap_side".
4840         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
4841         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
4842         "*extophisi_swap".
4843         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
4844         "mulqihi3", "mulhisi3" and "mulhisi3".
4845         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
4846         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
4847         "umulsi3_highpart".
4848         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
4849         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
4850         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
4851         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
4852         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
4853         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
4854         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
4855         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
4856         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
4857         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
4858         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
4859         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
4860         "*ashlhi_lowpart".
4861         ("abs<mode>2"): Replace "abshi2" and "absqi2".
4862         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
4863         "bleu".
4864         ("b<ocond>"): Replace "bgt" and "ble".
4865         ("b<rcond>"): Replace "blt" and "bge".
4866         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
4867         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
4868         "*bleu_reversed".
4869         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
4870         "*ble_reversed".
4871         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
4872         "*blt_reversed".
4873         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
4874         "sne".
4875         ("s<rcond>"): Replace "sge" and "slt".
4876         ("s<ocond>"): Replace "sgt" and "sle".
4877         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
4878         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
4879         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
4880         clear.w [rx=rx+i] and clear.b [rx=rx+i].
4881
4882 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
4883
4884         * varasm.c (struct constant_descriptor_tree): Add hash field.
4885         (const_desc_hash): Just return hash field.
4886         (const_desc_eq): If hash values are different, return 0 immediately.
4887         (output_constant_def): Compute hash field of temporary key, use
4888         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
4889         newly built constant descriptor.
4890         (lookup_constant_def): Compute hash field of temporary key, use
4891         htab_find_with_hash instead of htab_find.
4892
4893 2005-05-16  Richard Henderson  <rth@redhat.com>
4894
4895         * config/i386/sse.md (mulv4si3): New.
4896
4897 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
4898
4899         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
4900         tests for noncanonical versions of reg+constant and
4901         reg+reg*{1,2,4}.
4902
4903 2005-05-16  Richard Henderson  <rth@redhat.com>
4904             Steven Bosscher <stevenb@suse.de>
4905
4906         PR tree-opt/21399
4907         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
4908         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
4909         region data structure to match replacement.
4910         * tree-flow.h: Update to match.
4911         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
4912         * tree-ssa-dom.c (optimize_stmt): Likewise.
4913         * tree-ssa-pre.c (eliminate): Likewise.
4914         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
4915
4916 2005-05-16  Caroline Tice  <ctice@apple.com>
4917
4918         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
4919         internal_error with gcc_assert.
4920         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
4921         * function.h (struct function): Remove space between "*" and
4922         struct field names.
4923         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
4924         modify to use alloca.
4925         (unlikely_text_section): Add check for flag_function_sections.
4926         (assemble_start_function):  Move call to resolve_section, so it
4927         comes before first call to unlikely_text_section.
4928         (assemble_end_function):  Add test and call to function_section
4929         if appropriate.
4930         
4931 2005-05-16  Roger Sayle  <roger@eyesopen.com>
4932
4933         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
4934         instead of build_binary_op when performing code transformations
4935         to avoid error messages about constructs not it the user's code.
4936
4937 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
4938
4939         * tree-ssa-pre.c: Fix a comment typo.
4940
4941 2005-05-16  Richard Henderson  <rth@redhat.com>
4942
4943         PR target/21556
4944         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
4945         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
4946         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
4947         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
4948         add_tprel22): Remove mode from symbolic operand.
4949
4950 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
4951
4952         * optc-gen.awk: Include intl.h after the externally-provided files.
4953
4954 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
4955
4956         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
4957         folding a COND_EXPR_COND in a nondestructive manner.
4958
4959 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
4960
4961         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
4962         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
4963         New values for vec_select definitions and bitmask for element
4964         selection.
4965          
4966 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
4967
4968         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
4969         Change the type to VEC(rtx,gc)*.
4970         (mem_loc_descriptor, add_const_value_attributes,
4971         dwarf2out_init): Adjust uses of used_rtx_varray.
4972
4973         * tree-data-ref.c (compute_all_dependences): Change the type
4974         of dependence_relations to VEC(ddr_p,heap)**.
4975         (compute_data_dependences_for_loop): Change the type of
4976         allrelations to VEC(ddr_p,heap)*.
4977
4978 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
4979
4980         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
4981         system.h, coretypes.h and tm.h.
4982         (options.o): Update dependencies accordingly.
4983         * optc-gen.awk: Allow header_name to be a list of filenames.
4984         Handle the "Condition" flag.
4985         * opts.h (CL_DISABLED): New flag.
4986         * opts.c (handle_option): Print an error for CL_DISABLED options.
4987         * doc/options.texi: Document the "Condition" option flag.
4988
4989 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
4990
4991         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
4992
4993 2005-05-15  Roger Sayle  <roger@eyesopen.com>
4994
4995         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
4996         check for TREE_OVERFLOW on INTEGER_CST trees.
4997         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
4998         CONSTANT_CLASS_P tree nodes.
4999
5000 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5001
5002         PR target/21551
5003         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
5004
5005 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
5006             
5007         Fix PR tree-optimization/21576
5008         
5009         * tree-ssa-pre.c (expression_node_pool): New pool.
5010         (comparison_node_pool): Ditto.
5011         (list_node_pool): Ditto.
5012         (pool_copy_list): New function.
5013         (phi_translate): Handle CALL_EXPR.
5014         (valid_in_set): Ditto.
5015         (create_expression_by_pieces): Ditto.
5016         (insert_into_preds_of_block): Ditto.
5017         (insert_aux): Ditto.
5018         (compute_avail): Ditto.
5019         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
5020         (can_value_number_call): New function.
5021         (find_leader): Update comment.
5022         (init_pre): Create new pools.
5023         (fini_pre): Free new pools.
5024         (pass_pre): Add TODO_update_ssa for the future when we are going
5025         to need vops.
5026         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
5027         (set_value_handle): Ditto.
5028         (get_value_handle): Ditto.
5029
5030 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
5031
5032         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
5033
5034 2005-05-15  Andreas Jaeger  <aj@suse.de>
5035
5036         * gcc.c (pfatal_pexecute): Remove unused local function.
5037
5038 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
5039
5040         * optc-gen.awk: Remove excess indentation.
5041         * opth-gen.awk: Likewise.
5042
5043 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
5044
5045         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
5046         of basic_block_info.  Call init_flow and find_basic_blocks
5047         before dbr_schedule if needed.
5048
5049 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5050
5051         * tree-optimize.c (init_tree_optimization_passes): Move
5052         pass_cd_dce in place of the last pass_dce.
5053
5054         PR tree-optimization/21563
5055         * tree-vrp.c (compare_value): Return boolean_false_node when
5056         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
5057         strictly larger than CST.
5058
5059 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
5060             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5061
5062         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
5063         gcc_assert().
5064         (rev_cond_name) Likewise.
5065         (vax_float_literal) Likewise.
5066         * config/vax/vax.md: Likewise.
5067
5068 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5069
5070         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
5071         registers and use them (specifically the stack pointer).
5072         * config/vax/vax.h: Use above defines right here.
5073
5074         * config/vax/vax.c: (override_options) Remove 'register' keyword.
5075         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
5076         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
5077         whitespace.
5078         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
5079         mostly removal of trailing spaces...
5080         * config/vax/vax-modes.def: Remove trailing whitespace.
5081
5082         * config/vax/elf.h: Update whitespace.
5083
5084 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
5085
5086         Revert
5087         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
5088         * fold-const.c (fold_indirect_ref_1): Avoid removing
5089         NOP_EXPRs with type qualifiers like const.
5090
5091 2005-05-14  Jan Hubicka  <jh@suse.cz>
5092
5093         Patch by Richard Henderson:
5094         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
5095         Handle RESX expressions properly.
5096
5097         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
5098         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
5099         (remove_stmt_from_eh_region_fn): Likewise.
5100
5101         * tree-cfg.c (execute_warn_function_return): Break out noreturn
5102         warning too..
5103         (execute_warn_function_noreturn): ... here.
5104         (pass_warn_function_noreturn): New pass.
5105         * tree-pass.h (pass_warn_function_noreturn): Declare
5106         * tree-optimize.c (init_tree_optimization_passes): Move return
5107         warnings early and add noreturn warnings at place of previous
5108         return warnings.
5109
5110 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5111
5112         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
5113         root_var_init, type_var_init): Use VEC instead of VARRAY.
5114         * tree-ssa-live.h (tree_partition_associator_d): Change the
5115         type of trees to VEC(tree,heap)*.
5116         (tpa_tree): Use VEC instead of VARRAY.
5117
5118 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
5119
5120         * fold-const.c (div_if_zero_remainder): New function.
5121         (try_move_mult_to_index): Use it.
5122
5123 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5124
5125         * tree-eh.c (leh_tf_state): Change the type of dest_array to
5126         VEC(tree,heap)*.
5127         (maybe_record_in_goto_queue, lower_try_finally_onedest,
5128         lower_try_finally_copy, lower_try_finally_switch,
5129         lower_try_finally): Use VEC instead of VARRAY.
5130
5131 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
5132
5133         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
5134         comment regarding defined register classes.
5135         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
5136
5137 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5138
5139         * tree-optimize.c (init_tree_optimization_passes): Move
5140         pass_merge_phi before the first pass_dominator.
5141
5142 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
5143
5144         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
5145         unconditional.
5146
5147 2005-05-13  Josh Conner  <jconner@apple.com>
5148
5149         * config/arm/arm.c (arm_size_return_regs): New.
5150         (thumb_unexpanded_epilogue): replace in-line calculation
5151         of return registers with call to arm_size_return_regs.
5152         (use_return_insn): Include test of which registers are
5153         being used to hold return values, to accommodate
5154         vector return values.
5155
5156 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
5157
5158         * config/rs6000/sysv4.opt (mlittle): Handle.
5159
5160         * config/rs6000/rs6000.c (rs6000_handle_option): Set
5161         target_flags_explicit when appropriate.
5162
5163 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
5164
5165         PR middle-end/20714:
5166         * optabs.c (no_conflict_data): New struct.
5167         (no_conflict_move_test): New function.
5168         (emit_no_conflict_block): Use it.
5169
5170 2005-05-13  Adam Nemet  <anemet@lnxw.com>
5171
5172         * doc/invoke.texi (Debugging Options): Option
5173         -fdump-translation-unit only works with C++ now.
5174
5175 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
5176
5177         Replace calls to abort in CRIS port.
5178         * config/cris/cris.h (CRIS_ASSERT): New macro.
5179         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
5180         internal_error instead of abort.
5181         ("movsi"): Ditto.  Unquote preparation statement section.
5182         ("call", "call_value"): Ditto, but use gcc_assert where
5183         appropriate.  Tweak comments.
5184         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
5185         CRIS_ASSERT.
5186         (cris_op_str): Call internal_error, not abort.
5187         (cris_print_operand): Tweak "abort" reference to "die" in comment.
5188         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
5189         (cris_notice_update_cc): Call internal_error, not abort.
5190         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
5191         (cris_emit_movem_store, cris_asm_output_symbol_ref)
5192         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
5193         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
5194         ENABLE_CHECKING-guarded abort call.
5195         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
5196         Use internal_error at end of test-chain.
5197
5198 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
5199
5200         PR rtl-optimization/20769:
5201         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
5202         pattern emitted by expand_nl_goto_receiver.
5203
5204         PR middle-end/20793:
5205         * integrate.c (allocate_initial_values): Update register liveness
5206         information.
5207
5208 2005-05-13  Josh Conner  <jconner@apple.com>
5209
5210         * arm.c (arm_return_in_memory): Add handling for vector return types.
5211
5212 2005-05-13  David Ung  <davidu@mips.com>
5213
5214         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
5215         name.
5216         * config/mips/mips.c: Add 4km alias.
5217         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
5218         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
5219         description.
5220
5221 2005-05-13  Jan Hubicka  <jh@suse.cz>
5222
5223         * c-decl.c (finish_function): Suppress "control reaches end of
5224         non-void function" when "no return statement in function
5225         returning non-void" is issued.
5226
5227         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
5228         * tree-optimize.c (pass_gimple): Kill.
5229         (init_tree_optimization_passes): Kill pass_gimple.
5230         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
5231         * tree-dump.c (dump_files): Rename .generic to .gimple.*
5232
5233 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
5234
5235         PR rtl-optimization/20756:
5236         * basic-block.h (PROP_DEAD_INSN): Define.
5237         * flow.c (propagate_one_insn): Set during mark_set_regs call
5238         for a dead insn.
5239         (mark_set_1): Emit a clobber when we are about to delete a dead insn
5240         that kills a live register.
5241
5242 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
5243
5244         * config/s390/s390.md: ("DBL"): New mode attribute.
5245         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
5246         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
5247         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
5248
5249 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
5250
5251         * c-format.c (check_format_arg): Handle string literals of
5252         the form &"string"[offset].
5253
5254         * g++.dg/warn/format4.C: New testcase.
5255
5256 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
5257
5258         * config/mips/3000.md, config/mips/4000.md,
5259         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
5260         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
5261         config/mips/generic.md, config/pdp11/pdp11.md,
5262         config/sh/crt1.asm, config/sh/lib1funcs.asm,
5263         config/sh/sh-modes.def, config/sh/sh-protos.h,
5264         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
5265
5266 2005-05-13  Richard Henderson  <rth@redhat.com>
5267
5268         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
5269         addition to move unless dest is a register.  Do not skip
5270         instantiation in dest on addition simplification.
5271
5272 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
5273
5274         * config/cris/cris.c (cris_print_operand) <case 'H'; case
5275         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
5276         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
5277
5278 2005-05-13  Jan Hubicka  <jh@suse.cz>
5279
5280         * basic-block.h (FOR_ALL_BB_FN): New macro.
5281         (init_flow): Initialize cfg structure.
5282         * function.c (allocate_struct_function): Do not initialize cfg structure.
5283         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
5284         (build_tree_cfg): ... here.
5285         * tree-flow.h (init_empty_tree_cfg): Declare.
5286
5287 2005-05-12  Steven Bosscher <stevenb@suse.de>
5288
5289         Fix PR tree-optimization/21520
5290         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
5291         to attempt to fold constants.
5292
5293 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5294
5295         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
5296         only when TARGET_ADJUST_UNROLL_MAX is defined.
5297         (general_movsrc_operand): Use the C style comment.
5298         (ua_offset): Use prototype.
5299
5300 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
5301
5302         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
5303         (struct hmr_data, hoist_memory_reference, memref_del,
5304         struct fmrv_data): Removed.
5305         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
5306         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
5307         list.
5308         (find_more_ref_vops): Traverse the list of memory references.
5309         (determine_lsm_loop): Work with the list of memory references instead
5310         of traversing the hashtable.
5311
5312 2005-05-12  Steven Bosscher  <stevenb@suse.de>
5313             Stuart Hastings <stuart@apple.com>
5314             Jan Hubicka  <jh@suse.cz>
5315
5316         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
5317         duplicate_eh_regions): New functions, based on old
5318         implementation removed with RTL inliner.
5319         (reachable_next_level): Modify behaviour pre-inline.
5320         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
5321         Declare.
5322         * function.h (struct function): Add after_inlining flag.
5323         * tree-optimize.c (tree_rest_of_compilation): Set it.
5324         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
5325         when needed.
5326         * tree-cfg.c (label_to_block_fn): Deal with cases where
5327         label was never insterted into code.
5328
5329 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
5330
5331         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
5332
5333 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
5334
5335         Fix PR tree-optimization/21532
5336         * tree-ssa-pre.c (create_expression_by_pieces): stmt
5337         needs to go onto the inserted_exprs list.
5338
5339 2005-05-12  Ian Lance Taylor  <ian@airs.com>
5340
5341         * c-common.h (statement_code_p): Don't declare.
5342         (STATEMENT_CODE_P): Don't define.
5343         (INIT_STATEMENT_CODES): Don't define.
5344         * c-common.c (statement_code_p): Don't define.
5345
5346 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5347
5348         * config/sparc/sparc.h: Remove dead code.
5349         * config/sparc/sparc.c (sparc_compute_frame_size): Use
5350         FIRST_PARM_OFFSET for the size of the register window area.
5351         (emit_save_regs): Rename into emit_save_or_restore_regs.
5352         Add 'action' parameter.  Use 4095 as upper bound for the offset.
5353         Pass 'action' to save_or_restore_regs.
5354         (emit_restore_regs): Delete.
5355         (sparc_expand_prologue): Call emit_save_or_restore_regs.
5356         (sparc_expand_epilogue): Likewise.
5357         * config/sparc/sparc.md (mode macro P): Move.
5358         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
5359         (mov<V32:mode> expander): Move to the top of the V32 section.
5360         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
5361         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
5362         (sibcall_epilogue): Move.
5363
5364 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
5365
5366         PR target/21501
5367         * arm.c (arm_gen_constant): Sign-extend intermediate values when
5368         synthesizing a constant of the difference of two immediates.
5369
5370 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
5371
5372         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
5373         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
5374         the alternatives using integer registers into the appropriate
5375         primitives.
5376
5377 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
5378
5379         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
5380         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
5381         * bitmap.h: Fixed comments.
5382
5383 2005-05-11  Richard Henderson  <rth@redhat.com>
5384
5385         PR target/21412
5386         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
5387         (ia64_cannot_force_const_mem): New.
5388         (tls_symbolic_operand_type): New.
5389         (ia64_legitimate_constant_p): New.
5390         (ia64_expand_load_address): Return true on success.  Improve
5391         checks for when we should not split.
5392         (ia64_expand_tls_address): New addend operand.  Distribute it
5393         as appropriate to the tls_kind.  Delay referencing gp.
5394         (ia64_expand_move): Split symbolic addend as necessary.  Handle
5395         tls symbols with addends.
5396         * config/ia64/ia64-protos.h: Update.
5397         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
5398         p0, f0, f1, and r13.
5399         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
5400         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
5401         (symbolic_operand splitter): Pass everything through
5402         ia64_expand_load_address and FAIL or DONE as appropriate.
5403         (load_fptr): Only accept after reload.
5404         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
5405         load_symptr_low, load_ltoff_dtpmod,
5406         (load_dtpmod): New.
5407         (load_dtprel): Only accept tls symbols.
5408         (load_dtprel64, load_dtprel22): Likewise.
5409         (load_tprel, load_tprel64, load_tprel22): Likewise.
5410         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
5411         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
5412         (add_dtprel14, add_dtprel22): Likewise.
5413         (add_tprel, add_tprel14, add_tprel22): Likewise.
5414         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
5415         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
5416         (got_symbolic_operand): Check CONST offsets.
5417         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
5418         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
5419         (move_operand): Don't handle tls here.  Check CONST offsets.
5420
5421 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
5422
5423         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
5424         Remove hilo_operand check.
5425         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
5426         * config/mips/predicates.md (hilo_operand): Delete.
5427
5428 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
5429
5430         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
5431
5432 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5433
5434         PR tree-optimizer/18472
5435         * tree-if-conv.c (tree_if_convert_stmt,
5436         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
5437
5438 2005-05-11  Jan Hubicka  <jh@suse.cz>
5439
5440         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
5441         (GTFILES): add except.h.
5442         * except.c (eh_status): Add throw_stmt_table.
5443         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
5444         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
5445         lookup_stmt_eh_region_fn): Declare.
5446         (throw_stmt_node): New structure.
5447         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
5448         * gengtype.c (open_base_files): Add except.h to inlines.
5449         * tree-eh.c (throw_stmt_node): Kill.
5450         (record_stmt_eh_region): Update.
5451         (add_stmt_to_eh_region_fn): Break out from ...
5452         (add_stmt_to_eh_region): ... here.
5453         (remove_stmt_from_eh_region_fn): Break out from ...
5454         (remove_stmt_from_eh_region): ... here.
5455         (lookup_stmt_eh_region_fn): Break out from ...
5456         (lookup_stmt_eh_region): ... here.
5457         (honor_protect_cleanup_actions): Use build_resx.
5458         (lower_try_finally_onedest): Likewise.
5459         (lower_try_finally_copy): Likewise.
5460         (lower_try_finally_switch): Likewise.
5461         (lower_eh_constructs): Update eh table construction.
5462         * tree.c (build_resx): New.
5463         * tree.h (build_resx): Declare.
5464
5465 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
5466
5467         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
5468         is needed.
5469
5470 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5471
5472         * fold-const.c, libgcov.c: Fix comment typos.
5473
5474         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
5475         redundant code.
5476
5477 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
5478
5479         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5480         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
5481         default definition.
5482         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
5483
5484 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
5485
5486         PR bootstrap/21481
5487         * crtstuff.c: Include auto-host.h again, for now.
5488
5489 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
5490
5491         * config/mips/24k.md: Remove trailing whitespace.
5492
5493 2005-05-11  David Ung  <davidu@mips.com>
5494
5495         * config/mips/mips.md (type): Add imul3.
5496         (length, hazard, may_clobber_hilo): Check for imul3.
5497         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
5498         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
5499         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
5500         for a 3 operand mul and its bypasses.
5501         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
5502         * config/mips/4000.md (r4k_imul): Likewise.
5503         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
5504         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
5505         (vr4130_muldi): Likewise.
5506         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
5507         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
5508         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
5509         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
5510         (ir_vr54_imadd_si): Likewise.
5511         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
5512         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
5513         (rm7_impy_di): Likewise.
5514         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
5515         * config/mips/generic.md (generic_imul): Likewise.
5516         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
5517         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
5518
5519 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
5520
5521         PR middle-end/20371:
5522         * tree.h (record_layout_info_s): New member prev_packed.
5523         * stor-layout.c (update_alignment_for_field): Fix comment about
5524         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
5525         we start it properly aligned.
5526         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
5527         to update_alignment_for_field, and recompute it afterwards using
5528         the alignment of the record.
5529         When a packed bitfield precedes an MS bitfield, don't add padding
5530         at the end of the packed bitfield on behalf of the base type of
5531         the packed bit field.
5532         Don't adjust rli->bitpos at the end
5533         of an MS bitfield run if we already adjusted bitpos/offset for an
5534         alignment as large or larger than the bitfield type size.
5535         Take possible record alignment > BIGGEST_ALIGNMENT into account
5536         when calculating actual_align.
5537         Only put packed buit fields into rli->prev_field if they end up
5538         suitably aligned.
5539         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
5540         Update rli->remaining_in_alignment when we have already started a
5541         run of bit fields and we process a packed bit field.
5542
5543 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
5544
5545         * tree-data-ref.c (find_data_references_in_loop): Give up when
5546         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
5547         may embed arbitrary side effects.
5548         Remove the assumption that GIMPLE form contains a single array
5549         access per statement.
5550         When the statement contains virtual operands, fail if it is not
5551         a MODIFY_EXPR or a CALL_EXPR.
5552         Return after the dont know node is inserted.
5553
5554 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
5555
5556         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
5557
5558 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
5559
5560         PR middle-end/19807
5561         PR tree-optimization/19639
5562         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
5563         and generic summands for char* as s * delta, too, folding &a[i]
5564         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
5565         for comparison of steps.  Convert types for index addition.
5566         (fold_binary): Adjust the callers to always dispatch to
5567         try_move_mult_to_index.
5568         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
5569         expr with non-gimple ARRAY_REF offset.
5570
5571 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
5572
5573         * fold-const.c (fold_indirect_ref_1): Avoid removing
5574         NOP_EXPRs with type qualifiers like const.
5575
5576 2005-05-11  Richard Henderson  <rth@redhat.com>
5577
5578         PR c/21502
5579         * c-decl.c (finish_decl): Propagate the completed array type of
5580         a global variable into the binding.
5581
5582 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
5583
5584         * Makefile.in (gtype-desc.o, build/genautomata.o)
5585         (build/varray.o): Depend on $(VARRAY_H).
5586
5587 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
5588
5589         * tree-optimize.c (init_tree_optimization_passes): Re-organize
5590         optimization passes to do an initial batch of scalar cleanups.
5591
5592 2005-05-10  Ian Lance Taylor  <ian@airs.com>
5593
5594         * read-rtl.c (struct macro_traverse_data): Define.
5595         (map_attr_string): New static function, broken out of
5596         apply_macro_to_string.
5597         (mode_attr_index, apply_mode_maps): New static functions.
5598         (apply_macro_to_string): Call map_attr_string.
5599         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
5600         all callers.
5601         (apply_macro_traverse): Expect data to point to a struct
5602         macro_traverse_data.
5603         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
5604         to pass data through htab_traverse.
5605         (read_rtx_1): Add mode_maps parameter.  Change all callers.
5606         Handle mode names which are attribute strings.
5607         * doc/md.texi (Substitutions): Rename from String Substitutions.
5608         Change references.  Document using attributes as modes.
5609
5610 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
5611
5612         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
5613         * tree-optimize.c (init_tree_optimization_passes) Swap
5614         pass_ch and pass_profile.
5615         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
5616         here.  Remove rewrite_into_loop_closed_ssa call.
5617
5618 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
5619
5620         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
5621         function.
5622         (legitimate_reload_constant_p): Add check for const double zero.
5623         * config/s390/s390.md: Add comment for constraint letter 'G'.
5624         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
5625         attributes for new case.
5626         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
5627         s390_const_double_ok_for_constraint_p.
5628         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
5629         Add prototype.
5630
5631 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
5632
5633         PR tree-optimization/21170
5634         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
5635         rewrite_ssa_into_ssa in comments with update_ssa.
5636
5637 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
5638
5639         * tree-ssa-loop-im.c: Include hashtab.h.
5640         (struct mem_ref_loc): New.
5641         (struct mem_ref): Describe the set of references with the same
5642         shape.
5643         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
5644         maybe_queue_var, fem_single_reachable_address,
5645         for_each_memref, single_reachable_address,
5646         is_call_clobbered_ref, determine_lsm_reg): Removed.
5647         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
5648         hoist_memory_reference, memref_hash, memref_eq, memref_del,
5649         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
5650         New functions.
5651         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
5652         (determine_lsm_loop): Rewritten.
5653         (determine_lsm): Do not set stmt uids.
5654
5655 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
5656
5657         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
5658         letters.
5659
5660 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
5661
5662         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
5663         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
5664         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
5665
5666 2005-05-10  Jeff Law  <law@redhat.com>
5667
5668         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
5669         thread_across_edge for any abnormal edges.
5670
5671 2005-05-10  Richard Henderson  <rth@redhat.com>
5672
5673         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
5674         * config/ia64/ia64-protos.h: Declare it.
5675         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
5676         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
5677         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
5678         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
5679         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
5680         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
5681         extend result; use release semantics.
5682         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
5683         (sync_val_compare_and_swap_<IMODE>): Update to match.
5684
5685 2005-05-10  Richard Henderson  <rth@redhat.com>
5686
5687         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
5688         before comparing it for success.
5689
5690 2005-05-10  Richard Henderson  <rth@redhat.com>
5691
5692         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
5693         no return value pattern.
5694
5695 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
5696             H.J. Lu  <hongjiu.lu@intel.com>
5697
5698         * libgcov.c (create_file_directory): New function. Create
5699         directory for the given file name.
5700         (gcov_max_filename): New static var. Keeps size of the longest
5701         file name.
5702         (gcov_exit): Always try to create directory for output
5703         file. Relocate each filename basing on environment vars.
5704         (__gcov_init): Remember the longest file name.
5705         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
5706         * doc/gcov.texi (Cross-profiling): New node documenting
5707         cross-profiling management.
5708         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
5709
5710 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5711
5712         * config/sparc/sparc.c (mem_min_alignment): Do not rely
5713         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
5714
5715 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
5716
5717         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
5718         case code to avoid one move instruction.
5719         (__umodsi3, __modsi3): Merge duplicated code sequences.
5720
5721 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
5722
5723         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
5724         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
5725         * doc/invoke.texi: Fix typos.
5726
5727         * tree-data-ref.c (analyze_array_indexes, analyze_array,
5728         init_data_ref, access_functions_are_affine_or_constant_p,
5729         free_data_refs): Use VEC instead of VARRAY.
5730         * tree-data-ref.h (data_reference): Change the type of
5731         access_fns to VEC(tree,gc)*.
5732         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
5733
5734 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
5735
5736         PR c/17913
5737         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
5738         * fold-const.c (fold): Expand the condition of reducing cond_expr.
5739         (contains_label_1, contains_label_p): New functions for checking
5740         labels in a sub-tree.
5741
5742 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
5743
5744         PR c/21342
5745         * c-decl.c (pushdecl): When there is a declaration in the current
5746         scope and the declarations are external linkage, check for
5747         compatibility with the type in the external scope and update the
5748         type in the external scope with the composite type information.
5749         Do not form a composite type of the new type and the visible type
5750         if they are incompatible.
5751
5752 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
5753
5754         * crtstuff.c: Revert part of 2005-05-08 Change.
5755         (IN_LIBGCC2): Define.
5756
5757 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
5758
5759         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
5760         remove redundant test.
5761         (fp_mov_p): Accept 0.
5762         (fp_high_losum_p): Remove redundant test.
5763         * config/sparc/predicates.md (const_high_operand): Explicitly test
5764         (not small_int_operand).
5765         (fp_const_high_losum_operand): New.
5766         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
5767         (movdi_insn_sp32_v9): Use canonical predicates.
5768         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
5769         (movdi_insn_sp64_novis): Delete.
5770         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
5771         (movsf_insn_novis): Delete.
5772         (movsf_insn_vis): Rename into movsf_insn.
5773         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
5774         (movsf_lo_sum): Use fp_const_high_losum_operand.
5775         (movsf_high): Likewise.
5776         (movsf_high_losum splitter): Likewise.
5777         (mov<V32:mode> expander): Use register_or_zero_operand.
5778         (mov<V64:mode> expander): Likewise.
5779         (movdf_insn_sp32): Use register_or_zero_operand.
5780         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
5781         Rename into movdf_insn_sp32_no_fpu.
5782         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
5783         Rename into movdf_insn_sp32_v9_no_fpu.
5784         (movdf_insn_v9only_novis): Delete.
5785         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
5786         (movdf_insn_sp64_novis): Delete.
5787         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
5788         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
5789         Rename into movdf_insn_sp64_no_fpu.
5790         (movtf expander): Use register_or_zero_operand.
5791         (movtf_insn_sp32): Delete.
5792         (movtf_insn_vis_sp32): Use register_or_zero_operand.
5793         Rename into movtf_insn_sp32.
5794         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
5795         Rename into movtf_insn_sp32_no_fpu.
5796         (movtf_insn_hq_sp64): Delete.
5797         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
5798         Rename into movtf_insn_sp64_hq.
5799         (movtf_insn_sp64): Delete.
5800         (movtf_insn_vis_sp64): Use register_or_zero_operand.
5801         Rename into movtf_insn_sp64.
5802         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
5803         Rename into movtf_insn_sp64_no_fpu.
5804
5805 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
5806
5807         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
5808         gcc_assert and gcc_unreachable as appropriate.
5809         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
5810         xstormy16_output_cbranch_si, xstormy16_split_move,
5811         xstormy16_initial_elimination_offset,
5812         xstormy16_encode_section_info, xstormy16_print_operand_address,
5813         xstormy16_expand_call, xstormy16_expand_arith,
5814         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
5815
5816 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
5817
5818         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
5819         const_copies to VEC(tree,heap)*.
5820         (new_elim_graph, delete_elim_graph, elim_graph_size,
5821         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
5822         instead of VARRAY.
5823
5824 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
5825
5826         PR other/21052
5827         * doc/extend.texi (Type Attributes): Correct example syntax.
5828
5829 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
5830
5831         PR c/21160
5832         * doc/invoke.texi (-Wuninitialized): Update documentation.
5833
5834 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
5835
5836         * arm.c (const_ok_for_arm): Use a faster algorithm.
5837
5838 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
5839
5840         PR target/21477
5841         * config/rs6000/rs6000.md (add_op2): New.
5842         (add<mode>3): Use it.
5843
5844 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
5845
5846         * arm.c (arm_gen_constant): Add new heuristic for generating
5847         constant integers that can be expressed as the difference of two
5848         valid immediates.
5849
5850 2005-05-09  Roger Sayle  <roger@eyesopen.com>
5851
5852         * c-tree.h (parser_build_unary_op): New prototype.
5853         * c-typeck.c (parser_build_unary_op): New function to construct
5854         a unary operation in the C parser.
5855         * c-parser.c (c_parser_unary_expression):  Use the new function
5856         parser_build_unary_op when appropriate.
5857
5858 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
5859
5860         PR 18655
5861         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
5862         before outputting DWARF_FRAME_RETURN_COLUMN.
5863
5864 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
5865
5866         * config/s390/s390.c: (s390_branch_condition_mask,
5867         s390_branch_condition_mnemonic, s390_extra_constraint_str,
5868         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
5869         legitimize_pic_address, s390_emit_tls_call_insn,
5870         legitimize_tls_address, legitimize_tls_address,
5871         s390_expand_addcc, print_shift_count_operand, print_operand,
5872         addr_generation_dependency_p, annotate_constant_pool_refs,
5873         s390_split_branches, find_constant_pool_ref,
5874         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
5875         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
5876         s390_output_pool_entry, s390_function_value,
5877         s390_call_saved_register_used, s390_emit_call): Replace
5878         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
5879         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
5880         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
5881         get_some_local_dynamic_name, s390_function_arg_size,
5882         s390_function_arg_advance, s390_function_arg,
5883         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
5884         default case by gcc_unreachable.
5885         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
5886         conditional abort by gcc_assert.
5887         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
5888         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
5889
5890 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
5891
5892         * config/s390/s390.c: (s390_decompose_address,
5893         tls_symbolic_operand, legitimate_pic_operand_p,
5894         legitimate_constant_p, legitimate_reload_constant_p,
5895         s390_expand_plus_operand, legitimate_address_p,
5896         legitimate_la_operand_p, ): Remove 'register' from signature.
5897         (symbolic_reference_mentioned_p,
5898         tls_symbolic_reference_mentioned_p): Remove 'register' from local
5899         variable declarations.
5900         (legitimize_address): Remove 'register' from
5901         signature and local variable declarations.
5902
5903 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
5904
5905         * config/s390/s390-protos.h: (s390_match_ccmode,
5906         s390_match_ccmode_set, reg_used_in_mem_p,
5907         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
5908         legitimate_la_operand_p, preferred_la_operand_p,
5909         s390_short_displacement, addr_generation_dependency_p,
5910         legitimate_reload_constant_p, legitimate_address_p): Change return type
5911         into 'bool'.
5912         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
5913         * config/s390/s390.c: (s390_match_ccmode,
5914         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
5915         legitimate_reload_constant_p): Change return type into 'bool'.
5916         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
5917         Likewise.  Additionally adapted comment.
5918         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
5919         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
5920         (s390_decompose_address): Change the type of the internal flags
5921         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
5922         (struct s390_address): Change type of "pointer" into bool.
5923         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
5924         Adapt calls for 's390_tm_ccmode' to the new signature.
5925
5926 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
5927
5928         * config/s390/s390.c: (s390_match_ccmode_set,
5929         s390_branch_condition_mnemonic, s390_short_displacement,
5930         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
5931         print_shift_count_operand, get_some_local_dynamic_name,
5932         get_some_local_dynamic_name_1, reg_used_in_mem_p,
5933         addr_generation_dependency_p, s390_split_branches,
5934         annotate_constant_pool_refs, find_constant_pool_ref,
5935         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
5936         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
5937         s390_register_info, s390_frame_info, s390_init_frame_layout,
5938         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
5939         restore_gprs, s390_function_arg_size, s390_function_arg_float,
5940         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
5941         s390_encode_section_info, s390_cannot_force_const_mem,
5942         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
5943         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
5944         s390_adjust_priority, s390_issue_rate,
5945         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
5946         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
5947         s390_build_builtin_va_list, s390_gimplify_va_arg,
5948         s390_function_ok_for_sibcall, s390_call_saved_register_used,
5949         s390_pass_by_reference, s390_fixed_condition_code_regs,
5950         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
5951         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
5952         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
5953         s390_add_pool_insn, s390_find_pool, s390_add_constant,
5954         s390_find_constant, s390_add_execute, s390_find_execute,
5955         s390_execute_label, s390_execute_target, s390_dump_pool,
5956         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
5957         Move target macro definitions to the end of the file.  Move several
5958         functions within the file to assure correct compiling.
5959
5960 2005-05-09  Steven Bosscher  <stevenb@suse.de>
5961
5962         * calls.c (purge_reg_equiv_notes): Remove, fold into...
5963         (fixup_tail_calls): ...here.  Only look at insns between the
5964         start of the function and the FUNCTION_BEG insn note.
5965
5966         * gcse.c (one_cprop_pass): Fix typos in dumps.
5967
5968         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
5969
5970 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
5971
5972         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
5973         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
5974         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
5975         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
5976         CC_REGNUM)'.
5977         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
5978         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
5979         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
5980         REG_SC)'.
5981
5982 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
5983
5984         * config/s390/s390.md: ("gf") New mode attribute.
5985         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
5986         "fixuns_truncsfsi2"): Merge.
5987         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
5988         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
5989         "fix_truncsfsi2_ieee"): Merge.
5990
5991 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
5992
5993         * config/s390/s390.md: ("FPR") New mode macro.
5994         ("de", "dee"): New mode attributes.
5995         ("cmpdf", "cmpsf"): Merge.
5996         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
5997         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
5998         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
5999         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
6000         ("floatdidf2", "floatdisf2"): Merge.
6001         ("adddf3", "addsf3"): Merge.
6002         ("*adddf3", "*addsf3"): Merge.
6003         ("*adddf3_cc", "*addsf3_cc"): Merge.
6004         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
6005         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
6006         ("subdf3", "subsf3"): Merge.
6007         ("*subdf3", "*subsf3"): Merge.
6008         ("*subdf3_cc", "*subsf3_cc"): Merge.
6009         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
6010         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
6011         ("muldf3", "mulsf3"): Merge.
6012         ("*muldf3", "*mulsf3" "): Merge.
6013         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
6014         ("*fmadddf", "*fmaddsf"): Merge.
6015         ("*fmsubdf", "*fmsubsf"): Merge.
6016         ("divdf3", "divsf3"): Merge.
6017         ("*divdf3", "*divsf3"): Merge.
6018         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
6019         ("negdf2", "negsf2"): Merge.
6020         ("*negdf2_cc", "*negsf2_cc"): Merge.
6021         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
6022         ("*negdf2", "*negsf2"): Merge.
6023         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
6024         ("absdf2", "abssf2"): Merge.
6025         ("*absdf2_cc", "*abssf2_cc"): Merge.
6026         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
6027         ("*absdf2", "*abssf2"): Merge.
6028         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
6029         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
6030         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
6031         ("*negabsdf2", "*negabssf2"): Merge.
6032         ("sqrtdf2", "sqrtsf2"): Merge.
6033
6034 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6035
6036         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
6037         attribute names.
6038         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
6039         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
6040         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
6041         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
6042         attribute names.
6043         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
6044         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
6045         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
6046         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
6047         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
6048         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
6049         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
6050         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
6051         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
6052         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
6053         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
6054         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
6055         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
6056         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
6057         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
6058         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
6059         'type' value.
6060         ("*divsf3"): Additionally rename second pattern to
6061         "*divsf3_ibm".
6062         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
6063         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
6064         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
6065         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
6066         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
6067         'type values' and rename 'type' value.
6068         ("*addsf3"): Additionally rename second pattern to
6069         "*addsf3_ibm".
6070
6071 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6072
6073         * config/s390/s390.md: ("SHIFT"): New mode macro.
6074         ("lr", "shift"): New mode attributes.
6075         ("ashldi3", "lshrdi3"): Merge.
6076         ("*ashldi3_31", "*lshrdi3"_31): Merge.
6077         ("*ashldi3_64", "*lshrdi3"_64): Merge.
6078         ("ashlsi3", "lshrsi3"): Merge.
6079
6080 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6081
6082         * config/s390/s390.md: ("DSI", "SCOND"): New mode
6083         macros.
6084         ("E", "g"): New mode attributes.
6085         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
6086         ("*adddi3_alc", "*addsi3_alc"): Merge.
6087         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
6088         ("*subdi3_slb", "*subsi3_slb"): Merge.
6089         ("adddicc", "addsicc"): Merge.
6090         ("*sconddi", "*scondsi"): Merge.
6091         ("*sconddi_neg", "*scondsi_neg"): Merge.
6092         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
6093         ("negdi2", "negsi2"): Extract expander pattern from
6094         "negsi2" and merge with "negdi2".
6095         ("*negdi2"): Merge with instruction pattern of "negsi2".
6096         ("*negdi2_cc", "*negsi2_cc"): Merge.
6097         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
6098         ("rotldi3", "rotlsi3"): Merge.
6099
6100 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6101
6102         * config/s390/s390.md: ("hc"): New mode attribute.
6103         ("extendhidi2", "extendqidi2"): Merge.
6104         ("*extendhidi2", "*extendqidi2"): Merge.
6105         ("extendhisi2", "extendqisi2"): Merge.
6106         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
6107         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
6108         Merged 2 define_split.
6109         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
6110         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
6111
6112 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6113
6114         * config/s390/s390.md: ("COMPARE"): New mode macro.
6115         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
6116         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
6117         "bungt", "bunle", "bunge", "bltgt"): Merge.
6118
6119 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6120
6121         * config/s390/s390.md: ("INT"): New mode macro.
6122         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
6123         Merge.
6124
6125 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6126
6127         * config/s390/s390.md: ("GPR", "P"): New mode macros.
6128         ("cmpdi", "cmpsi"): Merge.
6129         ("strlendi", "strlensi"): Merge.
6130         ("*strlendi", "*strlensi"): Merge.
6131         ("movmemdi", "movmemsi"): Merge.
6132         ("clrmemdi", "clrmemsi"): Merge.
6133
6134 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6135
6136         * config/s390/s390.md: ("HQI"): New mode macro.
6137         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
6138         ("*tmhi_full", "*tmqi_full"): Merge.
6139         ("*tsthiCCT", "*tstqiCCT"): Merge.
6140         ("*tsthi", "*tstqi"): Merge.
6141         ("*tsthi_cconly", "tstqi_cconly"): Merge.
6142         ("*sethighhisi", "*sethighqisi"): Merge.
6143
6144 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
6145
6146         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
6147         config/alpha/unicosmk.h, config/arc/arc.md,
6148         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
6149         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
6150         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
6151         config/arm/semi.h, config/arm/uclinux-elf.h,
6152         config/arm/wince-pe.h, config/fr30/fr30.c,
6153         config/rs6000/altivec.h: Update copyright.
6154
6155 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
6156
6157         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
6158         gcc_assert and gcc_unreachable as appropriate.
6159         (pdp11_output_function_epilogue, output_move_double,
6160         output_move_quad, print_operand_address, output_jump,
6161         output_addr_const_pdp11): Likewise.
6162         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
6163         ASM_OUTPUT_ALIGN): Likewise.
6164         * config/pdp11/pdp11.md: Likewise.
6165         (extendhisi2, subhi3, subqi3): Likewise.
6166
6167 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
6168
6169         PR middle-end/21237
6170         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
6171         to NE_EXPR case.
6172
6173 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
6174
6175         * config/ia64/ia64.c: Fix a comment typo.
6176
6177 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
6178
6179         PR target/21397
6180         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
6181         (arm_override_options): Use them instead of manifest constants.  Don't
6182         allow -march to override the -mtune setting.
6183
6184 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
6185
6186         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
6187         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
6188         (function_arg_advance, function_arg, save_restore_insns,
6189         iq2000_expand_prologue, iq2000_output_conditional_branch,
6190         expand_one_builtin, print_operand):
6191         * config/iq2000/iq2000.md (tablejump): Likewise.
6192
6193 2005-05-09  David Ung  <davidu@mips.com>
6194
6195         * config/mips/mips.h (processor_type): Add names for the 24K.
6196         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
6197         processor family.
6198         * config/mips/mips.md (cnv_mode): New attribute for recording the
6199         conversion types of float convert insns.
6200         (cpu): Add 24k and 24kx.
6201         (include): Include 24k.md file.
6202         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
6203         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
6204         (floatdisf2): Setup cnv_mode.
6205         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
6206         setup cnv_mode.
6207         * config/mips/24k.md: New file, contains 24k DFA pipeline
6208         description.
6209
6210 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
6211
6212         * config/sh/sh.c (print_operand_address): Use gcc_assert and
6213         gcc_unreachable as appropriate.
6214         (print_operand, prepare_move_operands, prepare_scc_operands,
6215         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
6216         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
6217         fixup_mova, gen_far_branch, sh_reorg, split_branches,
6218         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
6219         sh_set_return_address, sh_setup_incoming_varargs,
6220         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
6221         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
6222         check_use_sfunc_addr): Likewise.
6223         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
6224         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6225         * config/sh/symbian.c (sh_symbian_mark_dllexport,
6226         sh_symbian_mark_dllimport): Likewise.
6227         * config/sh/sh.md: Likewise.
6228         (movdicc, call_pop, call_value_pop, casesi_worker_1,
6229         casesi_worker_2, casesi_shift_media, casesi_load_media,
6230         return_media): Likewise.
6231
6232 2005-05-08  Roger Sayle  <roger@eyesopen.com>
6233
6234         PR inline-asm/8788
6235         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
6236         operands.
6237
6238 2005-05-08  Richard Henderson  <rth@redhat.com>
6239
6240         * config/alpha/alpha.c (adjust_address): Fix typo last change.
6241
6242 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6243
6244         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
6245         and -1 can happen in reg_renumber when no hard register is assigned.
6246
6247 2005-05-08  Steven Bosscher  <stevenb@suse.de>
6248             Kazu Hirata  <kazu@cs.umass.edu>
6249
6250         PR tree-optimization/14841, tree-optimization/15838
6251         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
6252         (evaluate_stmt): Call it.
6253
6254 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
6255
6256         * config/ia64/ia64.c (ia64_override_options): Don't set
6257         ia64_flag_var_tracking and clear flag_var_tracking here...
6258         (ia64_file_start): ... but here.
6259
6260 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6261
6262         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
6263         and gcc_unreachable as appropriate.
6264         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
6265         m68hc11_gen_highpart, print_operand, print_operand_address,
6266         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
6267         m68hc11_gen_movhi): Likewise.
6268         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
6269         * config/m68hc11/m68hc11.md: Reword comment.
6270
6271 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6272
6273         PR target/21281
6274         * config/m68hc11/predicates.md (splitable_operand): An immediate is
6275         allowed.
6276
6277 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6278
6279         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
6280         the 68HC12 address indirect addressing mode as it is not supported by
6281         bset and bclr.
6282         * config/m68hc11/m68hc11-protos.h
6283         (m68hc11_valid_addressing_p): Declare.
6284         (m68hc11_add_mode): Declare.
6285         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
6286         register_indirect_p and export it.
6287         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
6288         instruction so that it is part of the good BB.
6289         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
6290         addressing with movw.
6291         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
6292         68HC12.
6293         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
6294         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
6295         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
6296         for 68HC11.
6297         ("*movhi_68hc12"): Handle movhi_const0.
6298         ("*subhi3", "subqi3"): Use general_operand for operand 1.
6299         ("*subhi3_zext"): Likewise.
6300
6301 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6302
6303         PR target/19051
6304         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
6305         operand 1 and fix constraints.
6306         ("mulqihi3"): Use general_operand for operand 2.
6307
6308 2005-05-08  Julian Brown  <julian@codesourcery.com>
6309             H.J. Lu  <hongjiu.lu@intel.com>
6310             Paul Brook  <paul@codesourcery.com>
6311
6312         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
6313         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
6314         20050308/2.16.0 or newer for comdat group.
6315         * configure: Regenerated.
6316         * config.in: Regenerated.
6317         * varasm.c (default_function_rodata_section): Put .rodata section in
6318         COMDAT group when necessary.
6319         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
6320         HAVE_COMDAT_GROUP.
6321         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
6322         available.
6323
6324 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
6325
6326         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
6327         instead of VARRAY.
6328         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
6329         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
6330         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
6331         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6332
6333 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6334
6335         PR target/16925
6336         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
6337         64-bit constants on 64-bit hosts.
6338         (m68hc11_split_logical): Simplify.
6339         (m68hc11_split_move): Likewise.
6340
6341 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6342             Paolo Bonzini  <bonzini@gnu.org>
6343
6344         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
6345         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
6346         * configure.ac (enable_checking): Fix typos in runtime_checking.
6347         (ENABLE_RUNTIME_CHECKING): Mark as target template.
6348         (xm_file): Prepend auto-host.h
6349         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
6350         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
6351         tconfig.h.
6352         * crtstuff.c: Do not include auto-host.h.
6353         (IN_LIBGCC2): Do not define.
6354         * gcov-io.h: Include tconfig.h, not auto-host.h.
6355         * libgcc2.c: Do not include auto-host.h.
6356         (abort): Do not undefine.
6357         * libgcov.c: Remove unneeded comment about config.h.
6358         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
6359         * config.in, configure: Regenerated.
6360
6361 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6362             Falk Hueffner  <falk@debian.org>
6363
6364         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
6365         and gcc_unreachable as appropriate.
6366         (get_aligned_mem, get_unaligned_address,
6367         alpha_emit_set_long_const, alpha_emit_conditional_branch,
6368         alpha_emit_setcc, alpha_emit_conditional_move,
6369         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
6370         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
6371         alpha_expand_unaligned_load, alpha_expand_block_move,
6372         alpha_expand_zap_mask, get_trap_mode_suffix,
6373         get_round_mode_suffix, get_some_local_dynamic_name,
6374         print_operand_address, function_arg, alpha_return_in_memory,
6375         function_value, alpha_expand_builtin,
6376         alpha_initial_elimination_offset, alpha_expand_epilogue,
6377         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
6378         alphaev5_next_group, alpha_align_insns,
6379         unicosmk_initial_elimination_offset, unicosmk_unique_section,
6380         unicosmk_ssib_name): Likewise.
6381         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
6382         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
6383         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
6384         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
6385         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6386         * config/alpha/alpha.md (*divmodsi_internal_er,
6387         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
6388         call_nt, call_umk, call_vms, call_value, sibcall_value,
6389         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
6390         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
6391         * config/alpha/predicates.md (input_operand): Likewise.
6392
6393 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6394
6395         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
6396         gcc_unreachable, as appropriate.
6397         (frv_function_prologue, frv_alloc_temp_reg,
6398         frv_initial_elimination_offset, frv_expand_block_move,
6399         frv_expand_block_clear, frv_print_operand_jump_hint,
6400         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
6401         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
6402         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
6403         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
6404         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
6405         frv_in_small_data_p, frv_asm_out_constructor,
6406         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
6407         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
6408         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
6409         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
6410         sibcall_value, casesi): Likewise.
6411
6412         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
6413         gcc_unreachable as appropriate.
6414         (print_operand_address, mn10300_print_reg_list, expand_prologue,
6415         expand_epilogue, notice_update_cc, initial_offset,
6416         mn10300_address_cost_1): Likewise.
6417         * config/mn10300/mn10300.md: Likewise.
6418         (absdf2, abssf2, negdf2, negsf2): Likewise.
6419
6420 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
6421
6422         PR target/21416
6423         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
6424         comparisons.
6425         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
6426         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
6427         including sunge_<mode> and sungt_<mode>.
6428
6429 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
6430
6431         * integrate.h (get_hard_reg_initial_val): Change type of register
6432         parameter from int to unsigned int.
6433         (has_hard_reg_initial_val): Likewise.
6434         * integrate.c (get_hard_reg_initial_val): Likewise.
6435         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
6436
6437 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
6438
6439         * except.c (eh_status): Change the type of ttype_data to
6440         VEC(tree,gc)*.
6441         (add_ttypes_entry, assign_filter_values,
6442         output_function_exception_table): Use VEC instead of VARRAY.
6443
6444 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
6445
6446         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
6447
6448 2005-05-07  Paul Brook  <paul@codesourcery.com>
6449
6450         * Makefile.in: Fix dependencies.
6451         (GCOV_IO_H, VARRAY_H): Set.
6452
6453 2005-05-07  Anthony Green  <green@redhat.com>
6454
6455         PR bootstrap/21403
6456         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
6457         x$STMP_FIXPROTO test.
6458         * configure: Rebuilt.
6459
6460 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
6461
6462         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
6463         inappropriate feature test macros if flag_iso.
6464
6465 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
6466
6467         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
6468
6469 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
6470
6471         PR target/21441
6472         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
6473         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
6474         Handle moved operand being in special register.
6475         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
6476         presumed working insn.
6477         (mover2side): Add FIXME.
6478
6479 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
6480
6481         * integrate.c (get_func_hard_reg_initial_val): Delete.
6482         (has_func_hard_reg_initial_val): Delete.
6483         (get_hard_reg_initial_val): Inline the old implementation of
6484         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
6485         instead of has_func_hard_reg_initial_val to test for an existing
6486         pseudo.  Only create an rtx if a new initial value entry is needed.
6487         (has_hard_reg_initial_val): Scan the initial value list directly.
6488         Don't create an rtx.
6489
6490 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
6491
6492         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
6493         from extra_options.
6494         * config.in (HAVE_AS_POPCNTB): New.
6495         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
6496         (HAVE_AS_POPCNTB): New.
6497         * configure: Regenerated.
6498         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
6499         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
6500         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
6501         and rs6000_sched_costly_dep.
6502         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
6503         (TARGET_XL_COMPAT): Delete.
6504         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
6505         (popcount<mode>2): New.
6506         (popcntb<mode>2): New.
6507         * config/rs6000/rs6000.opt (mpopcntb): New.
6508
6509         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
6510         if variable name exists.
6511
6512 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
6513
6514         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
6515
6516 2005-05-07  Richard Henderson  <rth@redhat.com>
6517
6518         PR target/21412
6519         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
6520         with constant offsets.
6521
6522 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
6523
6524         * config/v850/v850.c (print_operand): Use gcc_assert and
6525         gcc_unreachable, as appropriate.
6526         (print_operand_address, v850_handle_data_area_attribute,
6527         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
6528         v850_insert_attributes, construct_prepare_instruction): Likewise.
6529         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
6530         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
6531
6532 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
6533
6534         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
6535         config/rs6000/rs6000.h: Fix comment typos.
6536
6537 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
6538
6539         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
6540         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
6541         (mips_scalar_mode_supported_p): Delete.
6542
6543 2005-05-06  Eric Christopher  <echristo@redhat.com>
6544
6545         * config/mips/mips.opt: Remove -mint64 option.
6546         * config/mips/mips.c (override_options): Remove -mint64
6547         handling.
6548         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
6549         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
6550         64-bit integer handling.
6551         * doc/invoke.texi (Option Summary): Remove -mint64 for
6552         mips.
6553
6554 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
6555
6556         PR tree-optimization/19401
6557         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
6558         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
6559         (estimated_unrolled_size): New function.
6560         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
6561         tree_unroll_loops_completely): Always unroll loops if the code size
6562         does not increase.
6563         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
6564         loops should be unrolled completely.
6565         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
6566
6567 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
6568
6569         PR rtl-optimization/21254
6570         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
6571         assumptions for loops that otherwise do not roll.
6572         (find_simple_exit): Prefer # of iterations that is guaranteed
6573         not to be infinite.
6574         * loop-unroll.c (decide_peel_once_rolling,
6575         decide_peel_completely): Check whether the loop is infinite.
6576
6577 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
6578
6579         * config/rs6000/sysv4.opt: Fix typo.
6580
6581 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
6582             Jakub Jelinek  <jakub@redhat.com>
6583
6584         PR target/21329
6585         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
6586         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
6587         Don't use rep; movs{l,q} if the repetition count is really small,
6588         instead use a sequence of movs{l,q} instructions.
6589
6590 2005-05-06  Jeff Law  <law@redhat.com>
6591
6592         PR tree-optimization/21380
6593         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
6594         thread through a block with no preds.
6595
6596 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
6597
6598         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
6599         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
6600         add_call_read_ops): Use VEC instead of VARRAY.
6601
6602 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
6603
6604         * config/mcore/mcore.c (mcore_print_operand_address): Use
6605         gcc_assert and gcc_unreachable as appropriate.
6606         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
6607         mcore_output_andn, output_inline_const, mcore_output_move,
6608         mcore_output_movedouble, mcore_expand_block_move,
6609         layout_mcore_frame, mcore_initial_elimination_offset,
6610         mcore_expand_prolog, mcore_mark_dllexport,
6611         mcore_mark_dllimport): Likewise.
6612         * config/mcore/mcore.h (switch_to_section): Likewise.
6613         * config/mcore/mcore.md: Likewise.
6614
6615 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
6616
6617         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
6618         TARGET_PROFILE_KERNEL.
6619
6620         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
6621         TARGET_PROFILE_KERNEL use.
6622
6623 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
6624
6625         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
6626         and gcc_unreachable, as appropriate.
6627         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
6628         m32r_expand_prologue, m32r_output_function_epilogue,
6629         m32r_legitimize_pic_address, m32r_print_operand_address,
6630         emit_cond_move, m32r_function_symbol,
6631         m32r_output_block_move): Likewise.
6632         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
6633         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
6634         *rev_zero_branch_insn): Likewise.
6635
6636 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
6637
6638         PR c++/20961
6639         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
6640         if both NEWDECL and OLDDECL are already weak.
6641
6642 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
6643
6644         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
6645
6646 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
6647             Kaz Kojima  <kkojima@gcc.gnu.org>
6648
6649         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
6650         and plus_constant.
6651
6652 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
6653             David Edelsohn  <edelsohn@gnu.org>
6654
6655         * config.gcc: Add .opt magic for the rs6000 ports.
6656
6657         * doc/invoke.texi: Document -mabi= option properly.  Document
6658         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
6659         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
6660         -misel=.
6661
6662         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
6663         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
6664         TARGET_XL_COMPAT.
6665
6666         * config/rs6000/aix.opt: New.
6667         * config/rs6000/aix41.opt: New.
6668         * config/rs6000/aix64.opt: New.
6669         * config/rs6000/darwin.opt: New.
6670         * config/rs6000/linux64.opt: New.
6671         * config/rs6000/rs6000.opt: New.
6672         * config/rs6000/sysv4.opt: New.
6673
6674         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
6675         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
6676         SUBTARGET_SWITCHES.
6677         Define TARGET_USES_SYSV4_OPT.
6678         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
6679         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
6680         TARGET_USES_AIX64_OPT.
6681         * config/rs6000/aix51.h: Same.
6682         * config/rs6000/aix52.h: Same.
6683         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
6684         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
6685         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
6686         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
6687         * config/rs6000/linux64.h: Use
6688         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
6689
6690         * config/rs6000/rs6000.c: Remove definitions of
6691         rs6000_sched_restricted_insns_priority,
6692         rs6000_long_double_size_string, rs6000_altivec_vrsave,
6693         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
6694         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
6695         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
6696         rs6000_alignment_string.  Define rs6000_explicit_options.
6697         (rs6000_parse_abi_options): Remove.
6698         (rs6000_parse_alignment_option): Remove.
6699         (rs6000_parse_float_gprs_option): Remove.
6700         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
6701         TARGET_DEFAULT_TARGET_FLAGS.
6702         (rs6000_override_options): Revamp to use new .opt machinery.
6703
6704         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
6705         of new .opt machinery.  Remove target_flags.  Redefine
6706         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
6707         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
6708         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
6709         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
6710         rs6000_longcall_switch, rs6000_default_long_calls,
6711         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
6712         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
6713         TARGET_ALTIVEC_VRSAVE.
6714
6715 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
6716
6717         * config.gcc (hppa1.1-*-rtems*): Remove.
6718         * config/pa/rtems.h: Remove.
6719
6720 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
6721
6722         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
6723         Exclude roe/603e multilib variants.
6724
6725 2005-05-04  Denis Chertykov  <denisc@overta.ru>
6726
6727         PR target/21284
6728         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
6729         for output.
6730
6731 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
6732
6733         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
6734         arm/pe.opt to $extra_options.
6735         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
6736         (target_float_abi_name, target_float_switch, target_abi_name)
6737         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
6738         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
6739         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
6740         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
6741         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
6742         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
6743         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
6744         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
6745         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
6746         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
6747         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
6748         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
6749         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
6750         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
6751         (arm_pic_register_string): Delete.
6752         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
6753         TARGET_TPCS_FRAME.
6754         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
6755         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
6756         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
6757         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
6758         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
6759         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
6760         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
6761         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
6762         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
6763         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
6764         (SUBTARGET_SWITCHES): Delete.
6765         * config/arm/arm.c (target_float_switch): Delete.
6766         (arm_cpu_select): Moved from config/arm/arm.h.
6767         (target_fpu_name, target_fpe_name, target_float_abi_name)
6768         (target_abi_name, structure_size_string, arm_pic_register_string)
6769         (arm_select): Make static.
6770         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6771         (arm_handle_option): New function.
6772         (arm_override_options): Update target_flags checks for new mask names.
6773         Remove target_float_switch code.
6774         (arm_expand_prologue, thumb_expand_prologue): Check
6775         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
6776         * config/arm/arm.opt, config/arm/pe.opt: New files.
6777
6778 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
6779
6780         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
6781         gcc_unreachable as appropriate.
6782         (arc_double_limm_p, arc_setup_incoming_varargs,
6783         arc_compute_function_type, arc_output_function_prologue,
6784         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
6785         output_shift, arc_print_operand, arc_print_operand_address,
6786         arc_final_prescan_insn): Likewise.
6787         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
6788
6789 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
6790
6791         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
6792         comparing Pmode.
6793         (SDI): New.
6794         (cmp): Delete.
6795         (wd): New.
6796         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
6797         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
6798         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
6799         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
6800         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
6801         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
6802         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
6803         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
6804
6805 2005-05-05  Paul Brook  <paul@codesourcery.com>
6806
6807         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
6808         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
6809         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
6810         and tree-data-ref.h with *_H variables.
6811
6812 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
6813
6814         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
6815
6816 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
6817
6818         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
6819
6820 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
6821
6822         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
6823
6824 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
6825
6826         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
6827         setting of vrsave register for current function after
6828         call to save_world is emitted.
6829
6830 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
6831
6832         * config/mmix/predicates.md: New file.
6833         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
6834         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
6835         (mmix_foldable_comparison_operator, mmix_comparison_operator)
6836         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
6837         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
6838         Don't define.
6839         * config/mmix/mmix.md: Include predicates.md.
6840         ("call", "call_value"): Force address to register if it isn't a
6841         mmix_symbolic_or_address_operand.
6842
6843 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
6844
6845         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
6846         the flags are of appropriate types.
6847         (num_ssa_operands): Generalize using the generic interface.
6848         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
6849         iterator.
6850
6851 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
6852
6853         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
6854         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
6855
6856 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
6857
6858         * tree-outof-ssa.c (edge_leader, stmt_list,
6859         analyze_edges_for_bb): Use VEC instead of VARRAY.
6860         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
6861         (perform_edge_inserts): Call init_analayze_edges_for_bb and
6862         fini_analayze_edges_for_bb.
6863
6864 2005-05-04  James E Wilson  <wilson@specifixinc.com>
6865
6866         PR driver/21112
6867         * gcc.c (process_command): In the second argv scan loop, ignore
6868         Xassembler and Xpreprocessor, along with their argument.
6869
6870 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
6871
6872         * tree-flow-inline.h, tree-ssa-operands.c,
6873         tree-ssa-operands.h, tree-ssa-opfinalize.h:
6874         Likewise. tree-vn.c: Fix comment typos.
6875         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
6876
6877 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
6878
6879         * doc/tm.texi (Target Hooks): Document
6880         TARGET_RESOLVE_OVERLOADED_BUILTIN.
6881
6882 2005-05-04  Paul Brook  <paul@codesourcery.com>
6883
6884         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
6885
6886 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
6887
6888         * dwarf2out.c (incomplete_types, retry_incomplete_types,
6889         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
6890         of VARRAY.
6891
6892         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
6893         get_expansion, expand_var_during_unrolling,
6894         insert_var_expansion_initialization,
6895         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
6896         instead of VARRAY.
6897
6898         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
6899         update_stmt.
6900
6901 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
6902
6903         PR middle-end/15618
6904         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
6905         the same as INTEGER_TYPE.
6906         (fold_binary): Fold "bool_var != 0" to bool_var.
6907         Fold "bool_var == 1" to bool_var.
6908
6909 2004-05-03  Richard Henderson  <rth@redhat.com>
6910
6911         PR middle-end/21318
6912         * function.c (instantiate_virtual_regs_in_insn): Use the mode
6913         from recog_data instead of insn_data.
6914
6915 2005-05-03  DJ Delorie  <dj@redhat.com>
6916
6917         * common.opt (fdiagnostics-show-option): No variable is needed.
6918         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
6919         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
6920         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
6921         Save and restore original message format.  Use flag in context
6922         instead of global.
6923         (warning): Don't test for enabled warnings here.
6924         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
6925         here.
6926
6927 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
6928
6929         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
6930         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
6931         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
6932         * aclocal.m4: Don't include accross.m4.
6933         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
6934         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
6935         * configure, config.in: Regenerate.
6936
6937 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
6938
6939         PR middle-end/21265
6940         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
6941         (clear_storage): Add argument.
6942         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
6943         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
6944         tailcall.
6945         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
6946         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
6947         (store_expr, store_constructor): Adjust callers.
6948         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
6949         to emit_block_move if CALL_EXPR_TAILCALL (exp).
6950         (expand_builtin_memmove): Add ORIG_EXP argument, copy
6951         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
6952         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
6953         with EXP.  Pass EXP to expand_builtin_memmove.
6954         (expand_builtin_memset): Add ORIG_EXP argument, pass
6955         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
6956         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
6957         Pass EXP to expand_builtin_memset.
6958         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
6959         the new CALL_EXPR.
6960         (expand_builtin_strncmp): Likewise.
6961         (expand_builtin_printf): Replace ARGLIST argument with EXP.
6962         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
6963         (expand_builtin_fprintf): Likewise.
6964         (expand_builtin): Adjust calls to
6965         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
6966
6967         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
6968         item in V4SF mode.
6969
6970         PR rtl-optimization/21239
6971         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
6972
6973 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
6974
6975         * tree-flow.h (tree_ann_common_d): Move aux to ...
6976         (stmt_ann_d): ... here.
6977         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
6978         move_computations_stmt, schedule_sm): Update references to
6979         aux.
6980         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
6981
6982         * tree-cfg.c (remove_bb): Remove a redundant call to
6983         set_bb_for_stmt.
6984         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
6985         Likewise.
6986
6987 2005-05-03  Richard Henderson  <rth@redhat.com>
6988
6989         * config/rs6000/rs6000.c: Remove conflict markers.
6990
6991         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
6992
6993 2005-05-03  James E Wilson  <wilson@specifixinc.com>
6994
6995         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
6996
6997 2005-05-03  DJ Delorie  <dj@redhat.com>
6998
6999         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
7000         decide if the warning will be printed.
7001         * calls.c (expand_call): Likewise.
7002         * function.c (init-function_start): Likewise.
7003
7004         * common.opt (-fdiagnostics-show-option): New.
7005         * opts.c (option_enabled): Accept the option index instead of a
7006         pointer to the option descriptor.
7007         * opts.h (option_enabled): Likewise.
7008         * toplev.c (print_switch_values): Pass option index, not option
7009         descriptor.
7010         * diagnostic.h (diagnostic_info): Add option_index.
7011         * diagnostic.c: Include opts.h.
7012         (diagnostic_set_info): Initialize option_index.
7013         (diagnostic_report_diagnostic): Amend option name if appropriate.
7014         (warning): Check to see if the specified warning is enabled.
7015         Store option index.
7016         * doc/invoke.texi (-fdiagnostics-show-options): Document.
7017
7018 2005-05-03  Richard Henderson  <rth@redhat.com>
7019
7020         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
7021         SPEC_OR_GEN_REGS definitions.
7022
7023 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
7024
7025         PR target/16888
7026         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
7027         for unavailable registers.
7028
7029 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7030
7031         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
7032
7033         * cfglayout.c (block_locators_blocks,
7034         insn_locators_initialize, insn_scope): Use VEC instead of
7035         VARRAY.
7036
7037         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
7038         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
7039         VARRAY.
7040
7041 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7042
7043         * config/sparc/predicates.md (const_compl_high_operand): New.
7044         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
7045         gen_safe_HIGH64.
7046         (sparc_emit_set_const64_quick1): Adjust for above change.
7047         (sparc_emit_set_const64_quick2): Likewise.
7048         (sparc_emit_set_const64_longway): Likewise.
7049         (sparc_emit_set_const64): Likewise.
7050         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
7051         movdi_const64_special): Delete.
7052         (logical constant splitters): Use const_compl_high_operand.
7053
7054 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
7055
7056         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
7057         rather than STRIP_NOPS.
7058
7059 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
7060
7061         PR rtl-optimization/21330
7062         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
7063         returning non-NULL.
7064         (unswitch_single_loop): Clear cinsn when retrying.
7065
7066         PR target/21297
7067         * config/i386/i386.c (legitimize_address): When canonicalizing
7068         ASHIFT into MULT, multiply by 1 << shift_count instead of
7069         1 << log2 (shift_count).
7070
7071 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
7072
7073         * lambda-code.c (gcc_loop_to_lambda_loop,
7074         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
7075         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
7076         generic operand interface.
7077         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
7078         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
7079         generic operand interface.
7080         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
7081         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
7082         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
7083         num_imm_uses): Use ssa_use_operand_t.
7084         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
7085         get_v_must_def_ops): Delete.
7086         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
7087         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
7088         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
7089         get_v_must_def_kill_ptr): Delete.
7090         (delink_stmt_imm_use): Move and use new operand interface.
7091         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
7092         op_iter_next_tree): Use new operand implementation.
7093         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
7094         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
7095         type check.
7096         (op_iter_next_mustdef, op_iter_next_maydef,
7097         op_iter_next_must_and_may_def): Delete. Replace with...
7098         (op_iter_next_maymustdef): New.  Combine must and may next operations.
7099         (op_iter_init_maydef, op_iter_init_mustdef,
7100         op_iter_init_must_and_may_def): Use new interface.
7101         (single_ssa_tree_operand ): New.  Process single operands only as trees.
7102         (single_ssa_use_operand): New.  Process single operands only as uses.
7103         (single_ssa_def_operand): New.  Process single operands only as defs.
7104         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
7105         specified types.
7106         (num_ssa_operands): New.  Count the number of specified operands.
7107         (compare_ssa_operands_equal): New.  Compare two statements' operands.
7108         (single_phi_def): New.  Return true if PHI has one def of the specified
7109         operand type.
7110         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
7111         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
7112         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
7113         (struct stmt_ann_d): Operands field no longer require GTY().
7114         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
7115         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
7116         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
7117         dump_replaceable_exprs, rewrite_trees): Use generic interface.
7118         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
7119         Use use_operand_p instead of ssa_imm_use_t *.
7120         * tree-pretty-print.c (dump_vops): check if operands are active before
7121         dumping virtual operands.
7122         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
7123         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
7124         (ccp_fold): Use new interface.
7125         (ccp_visit_stmt): Remove unused variables and code.
7126         (convert_to_gimple_builtin): Insert statements before calling
7127         mark_new_vars_to_rename.
7128         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
7129         (copy_prop_visit_cond_stmt): Use generic interface.
7130         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
7131         annotation in table.
7132         (thread_across_edge): Use generic interface.
7133         (initialize_hash_element): Initialzie with stmt, not annotation.
7134         (eliminate_redundant_computations): Use generic interface.
7135         (record_equivalences_from_stmt): Pass stmt, not annotation.
7136         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
7137         interface.
7138         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
7139         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
7140         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
7141         generic operand interface.
7142         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
7143         interface.
7144         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
7145         Interface.
7146         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
7147         (build_defs, build_uses, build_v_may_defs, build_vuses,
7148         build_v_must_defs): Change type to struct opbuild_list_d.
7149         (ops_active): New.  Operands active boolean.
7150         (operand_memory, operand_memory_index): New.  Operand memory managers.
7151         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
7152         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
7153         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
7154         Change from functions to static variable list heads.
7155         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
7156         (opbuild_initialize_real): New.  Initialize a virtual build list.
7157         (opbuild_free): New.  Free a build list.
7158         (opbuild_num_elems): New.  Number of items in a list.
7159         (opbuild_append_real): New.  Add a real (tree *) operand.
7160         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
7161         (opbuild_first): New.  Return first element index in a list.
7162         (opbuild_next): New.  Return next element in a list.
7163         (opbuild_elem_real): New.  Return real element.
7164         (opbuild_elem_virtual): New.  Return virtual element.
7165         (opbuild_elem_uid): New.  Return UID of virtual element.
7166         (opbuild_clear): New.  Reset an operand list.
7167         (opbuild_remove_elem): New.  Remove an element form a list.
7168         (ssa_operands_active): New.  Return true if operand cache is active.
7169         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
7170         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
7171         (correct_use_link): Use use_operand_p.
7172         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
7173         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
7174         (cleanup_v_may_defs): Use new implmentation.
7175         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
7176         implementation.
7177         (append_def, append_use, append_v_may_def, append_vuse,
7178         append_v_must_def): Call opbuild_append routine instead of using varray.
7179         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
7180         global parse_old_ops variable.
7181         (free_ssa_operands): New implementation.
7182         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
7183         (copy_virtual_operands): Move. New generic implementation.
7184         (create_ssa_artficial_load_stmt): Move. New implementation.
7185         (swap_tree_operands): Update for new implementation.
7186         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
7187         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
7188         rather than a varray.
7189         (verify_imm_links): Use use_operand_p.
7190         (dump_immediate_uses_for): If the immediate use variable is a virtual
7191         variable, show the virtual ops in the stmt.
7192         * tree-ssa-operands.h (def_operand_p): No longer a structure.
7193         (NULL_DEF_OPERAND_P): Now a #define.
7194         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
7195         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
7196         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
7197         mustdef_optype_d): New.  Use Linked list representation.
7198         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
7199         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
7200         (struct stmt_operands_d): Change to new pointers that are not GTY.
7201         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
7202         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
7203         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
7204         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
7205         SET_V_MUST_DEF_KILL): Delete.
7206         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
7207         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
7208         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
7209         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
7210         (enum ssa_op_iter_type): Operand iterator typechecking values.
7211         (struct ssa_operand_iterator_d): Use linked lists of operands.
7212         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
7213         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
7214         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
7215         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
7216         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
7217         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
7218         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
7219         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
7220         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
7221         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
7222         alloc_vuse, and alloc_mustdef.
7223         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
7224         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
7225         and finalize_ssa_v_must_def_ops.
7226         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
7227         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
7228         stmt around.
7229         (compute_avail): Use generic iterator interface.
7230         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
7231         (stmt_makes_single_load, stmt_makes_single_store): Use
7232         ZERO_SSA_OPERANDS.
7233         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
7234         (statement_sink_location): Use generic interface.
7235         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
7236         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
7237         reset the immediate use link nodes.
7238         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
7239         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
7240         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
7241         (eliminate_tail_call): Use generic operand interface.
7242         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
7243         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
7244         interface.
7245         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
7246         interface.
7247         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
7248         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
7249         vuse_optype.
7250         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
7251         Use statement pointer instead of vuse_optype.  Use generic interface.
7252         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
7253         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
7254         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
7255         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
7256         * doc/tree-ssa.texi: Update documentation for operand interface.
7257
7258 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
7259
7260         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
7261         gcc_unreachable as appropriate.
7262         (machopic_function_base_name, machopic_indirect_data_reference,
7263         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
7264         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
7265         * config/rs6000/altivec.md (*mov<mode>_internal,
7266         build_vector_mask_for_load): Likewise.
7267         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
7268         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
7269         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
7270         * config/rs6000/predicates.md (easy_fp_constant,
7271         logical_operand): Likewise.
7272         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
7273         compute_save_world_info, rs6000_emit_prologue,
7274         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
7275         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
7276         directly.
7277
7278 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
7279
7280         PR middle-end/21282
7281         * convert.c (convert_to_integer): Convert ceil and floor in
7282         c99 mode only.
7283
7284 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
7285
7286         PR target/20813
7287         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
7288         define_insn_and_split.  Split only when memory operand is
7289         offsettable.  Use adjust_address rather than plus_constant.
7290         (floatunssidf2_internal): Likewise.
7291         (fix_truncdfsi2_internal): Split only when memory operand is
7292         offsettable.  Use adjust_address rather than plus_constant.
7293         (fix_trunctfsi2_internal): Likewise.
7294         (floatsidf2_internal): Likewise.
7295
7296 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
7297
7298         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
7299         (set_value_range_to_null): Likewise.
7300         (set_value_range_to_varying): New function.  Use it in all
7301         call sites that used to call set_value_range (vr, VR_VARYING, ...).
7302         (extract_range_from_assert): If the integral type has a
7303         super-type, and LIMIT is not within MIN and MAX values of that
7304         type, set the resulting range to VR_VARYING.
7305
7306 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
7307
7308         * config/mmix/mmix.opt: New file.
7309         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
7310         (mmix_cc1_ignored_option): Don't declare.
7311         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
7312         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
7313         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
7314         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
7315         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
7316         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
7317         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
7318         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
7319         Don't define.
7320         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
7321         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
7322         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
7323
7324 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
7325
7326         PR c/15698
7327         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
7328         * c-decl.c (current_function_prototype_built_in,
7329         current_function_prototype_arg_types): New.
7330         (merge_decls): Keep source location of prototype followed by
7331         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
7332         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
7333         (start_function): Always set current_function_prototype_locus,
7334         current_function_prototype_built_in and
7335         current_function_prototype_arg_types.  Check for external
7336         prototype whether or not visible for external function and set
7337         current_function_prototype_arg_types accordingly.
7338         (store_parm_decls_oldstyle): Use
7339         current_function_prototype_arg_types for checking old-style
7340         definition against prototype.  Give warnings only if
7341         current_function_prototype_built_in).
7342
7343 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
7344
7345         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
7346         (ggc_alloc_zone_stat): Don't define.
7347         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
7348         ggc_alloc_zone_pass_stat.
7349         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
7350         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
7351         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
7352
7353 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
7354
7355         * calls.c (expand_call): Handle current_function_pretend_args_size
7356         when checking for sibcalls.
7357
7358 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7359
7360         PR tree-optimization/21294
7361         * tree-vrp.c (vrp_expr_computes_nonzero): New.
7362         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
7363
7364 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
7365
7366         PR 19985
7367         * gcov-io.h: Declare gcov external functions hidden.
7368
7369 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7370
7371         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
7372         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
7373         Use VEC instead of VARRAY.
7374         (equiv_free): New.
7375
7376         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
7377         out common code.
7378
7379 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
7380
7381         * c-common.c (resolve_overloaded_builtin): Forward to target
7382         hook for BUILT_IN_MD built-ins.
7383         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
7384         for all types of built-in.
7385         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
7386         in the definition of the target hooks struct.
7387         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
7388         * config/rs6000/altivec.h: Rewritten.
7389         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
7390         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
7391         rs6000_builtin_type, rs6000_builtin_type_compatible,
7392         altivec_overloaded_builtins, rs6000_builtin_type,
7393         rs6000_builtin_type_compatible): New.
7394         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
7395         New.
7396         (def_builtin): Turn into a function.  Check for duplicates and store
7397         the builtin into rs6000_builtin_decls.
7398         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
7399         bdesc_1arg): Add overloaded builtins.
7400         (altivec_expand_builtin): Check for unresolved overloaded builtins,
7401         do not support ALTIVEC_COMPILETIME_ERROR.
7402         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
7403         nodes to represent front-end types.
7404         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
7405         with opaque arguments and/or return values.
7406         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
7407         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
7408         (rs6000_builtin_type_index): New.
7409         (is_ev64_opaque_type): Rename to...
7410         (rs6000_is_opaque_type): ... this.
7411         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
7412         target hook.
7413
7414 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7415
7416         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
7417         instead of VARRAY.
7418
7419 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7420             Bernd Schmidt  <bernd.schmidt@analog.com>
7421
7422         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
7423         print_address_operand, print_operand, legitimize_pic_address,
7424         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
7425         output_pop_multiple): Use gcc_assert or gcc_unreachable as
7426         appropriate.
7427         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
7428
7429 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
7430
7431         * doc/passes.texi: Document vectorization pass.
7432
7433 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7434
7435         * tree-scalar-evolution.c (get_exit_conditions_rec,
7436         select_loops_exit_conditions,
7437         number_of_iterations_for_all_loops,
7438         analyze_scalar_evolution_for_all_loop_phi_nodes,
7439         scev_analysis): Use VEC instead of VARRAY.
7440
7441 2005-05-02  Michael Matz  <matz@suse.de>
7442
7443         PR c++/19542
7444         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
7445         (warn_strict_null_sentinel): Define.
7446         (check_function_sentinel): Check for null_node as valid sentinel too.
7447         * c-common.h (c_tree_index): Added CTI_NULL.
7448         (null_node) Define global_tree[CTI_NULL].
7449         (warn_strict_null_sentinel): Declare.
7450         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
7451         * c.opt: (Wstrict-null-sentinel): New C++ option.
7452         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
7453
7454 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7455
7456         * gimplify.c (gimplify_compound_lval): Use VEC instead of
7457         VARRAY.
7458
7459         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
7460
7461         * dwarf2out.c (decl_scope_table, push_decl_scope,
7462         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
7463         instead of VARRAY.
7464
7465 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
7466
7467         PR C++/14391
7468         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
7469         if !flag_weak.
7470         * doc/cpp.texi (__DEPRECATED): Document.
7471         (__EXCEPTIONS): Likewise.
7472         (__GXX_WEAK__): Likewise.
7473
7474         * function.c (INVOKE__main): Do not define.
7475         (expand_main_function): Check HAS_INIT_SECTION when determining
7476         whether or not to call __main.
7477
7478 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7479
7480         * tree-ssa-loop-ivopts.c: Fix a comment typo.
7481
7482 2005-01-05  Paul Brook  <paul@codesourcery.com>
7483
7484         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
7485         (INITIALIZE_TRAMPOLINE): Use it.
7486         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
7487         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
7488         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
7489
7490 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
7491
7492         * doc/install.texi (Specific): Omit dots in the @anchors names
7493         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
7494         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
7495
7496 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
7497
7498         PR tree-optimization/18316
7499         PR tree-optimization/19126
7500         * tree.c (build_int_cst_type): Avoid shift by size of type.
7501         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
7502         argument.
7503         * tree-scalar-evolution.h (simple_iv): Declaration changed.
7504         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
7505         field.
7506         (dump_cand): Dump depends_on information.
7507         (determine_biv_step): Add argument to simple_iv call.
7508         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
7509         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
7510         constant.
7511         (add_candidate_1): Record depends_on for candidates.
7512         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
7513         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
7514         Handle ivs with nonconstant step.
7515         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
7516         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
7517         (create_new_iv): Unshare the step before passing it to create_iv.
7518         (free_loop_data): Free cand->depends_on.
7519         (build_addr_strip_iref): New function.
7520         (find_interesting_uses_address): Use build_addr_strip_iref.
7521         (strip_offset_1): Split the recursive part from strip_offset.
7522         Strip constant offset component_refs and array_refs.
7523         (strip_offset): Split the recursive part to strip_offset_1.
7524         (add_address_candidates): Removed.
7525         (add_derived_ivs_candidates): Do not use add_address_candidates.
7526         (add_iv_value_candidates): Add candidates with stripped constant
7527         offset.  Consider all candidates with initial value 0 important.
7528         (struct affine_tree_combination): New.
7529         (aff_combination_const, aff_combination_elt, aff_combination_scale,
7530         aff_combination_add_elt, aff_combination_add,
7531         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
7532         fold_affine_sum): New functions.
7533         (get_computation_at): Use fold_affine_sum.
7534         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
7535         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
7536         to simple_iv call.
7537
7538 2005-04-30  Michael Matz  <matz@suse.de>
7539
7540         * config/i386/i386.md (movmemsi): Also active when
7541         TARGET_INLINE_ALL_STRINGOPS.
7542
7543 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
7544
7545         PR bootstrap/20633
7546         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
7547
7548 2005-04-30  Paul Brook  <paul@codesourcery.com>
7549
7550         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
7551         thumb mode.
7552         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
7553         * config/arm/ieee754-sf.S: Ditto.
7554         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
7555         (FUNC_ALIAS): Use .thumb_set for thumb routines.
7556
7557 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7558
7559         * tree-ssanames.c: Fix a comment typo.
7560         * doc/options.texi: Fix a typo.
7561
7562 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
7563
7564         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
7565         gcc_unreachable as appropriate.
7566         (split_adds_subs, cond_string, print_operand,
7567         h8300_initial_elimination_offset, h8300_classify_operand,
7568         h8300_unary_length, h8300_short_immediate_length,
7569         h8300_bitfield_length, h8300_binary_length,
7570         h8300_insn_length_from_table, compute_mov_length, output_plussi,
7571         compute_plussi_length, compute_plussi_cc, output_logical_op,
7572         compute_logical_op_length, compute_logical_op_cc,
7573         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
7574         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
7575         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
7576         h8300_regs_ok_for_stm): Likewise.
7577         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
7578         monitor_prologue): Likewise.
7579
7580 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7581
7582         * loop-invariant.c (invariants, create_new_invariant,
7583         get_inv_cost, best_gain_for_invariant,
7584         find_invariants_to_move, move_invariants,
7585         init_inv_motion_data, free_inv_motion_data): Use VEC instead
7586         of VARRAY.
7587
7588 2005-04-29  Richard Henderson  <rth@redhat.com>
7589
7590         * function.c (instantiate_decls): Remove valid_only argument.
7591         (instantiate_decls_1, instantiate_decl): Likewise.
7592         (instantiate_virtual_regs_1): Delete.
7593         (instantiate_virtual_regs_lossage): Delete.
7594         (instantiate_virtual_regs_in_rtx): New.
7595         (safe_insn_predicate): New.
7596         (instantiate_virtual_regs_in_insn): New.
7597         (instantiate_virtual_regs): Update to match all that.  Only run
7598         instantiate_decls once.
7599
7600 2005-04-29  Richard Henderson  <rth@redhat.com>
7601             Daniel Jacobowitz  <dan@codesourcery.com>
7602
7603         * gengtype.c (write_func_for_structure): Split out ...
7604         (output_type_enum): ... new function.  Fix thinko accessing
7605         TYPE_PARAM_STRUCT data.
7606
7607 2005-04-29  Tom Tromey  <tromey@redhat.com>
7608
7609         * tree.c (build_block): Removed unused 'tags' argument.
7610         * tree.h (build_block): Removed argument.
7611
7612 2005-04-29  Michael Matz  <matz@suse.de>
7613
7614         PR rtl-optimization/21144
7615         * postreload.c (reload_cse_move2add): Check for VOIDmode.
7616
7617 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
7618
7619         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
7620         flag_reorder_blocks.
7621
7622 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
7623
7624         PR tree-optimization/21030
7625         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
7626         ranges where VR->MAX is smaller than VR->MIN.
7627
7628 2005-04-29  Devang Patel  <dpatel@apple.com>
7629
7630         PR tree-optimization/21272
7631         PR tree-optimization/21266
7632         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
7633
7634 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
7635
7636         * tree-flow-inline.h: Fix a comment typo.
7637         * doc/tree-ssa.texi: Fix a typo.
7638
7639         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
7640
7641 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
7642
7643         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
7644         gcc_unreachable as appropriate.
7645         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
7646         fr30_print_operand, fr30_move_double): Likewise.
7647         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
7648
7649 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
7650
7651         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
7652         definition has already been provided.
7653         (ARM_EABI_DTORS_SECTION_OP): Likewise.
7654         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
7655         (ARM_EABI_DTORS_SECTION_OP): Likewise.
7656
7657 2005-04-29  Jim Tison  <jtison@us.ibm.com>
7658
7659         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
7660         trace hooks calls to improve performance.
7661
7662 2005-04-29  Julian Brown  <julian@codesourcery.com>
7663             Mark Mitchell  <mark@codesourcery.com>
7664             Paul Brook  <paul@codesourcery.com>
7665
7666         * crtstuff.c: Handle targets that use .init_array.
7667         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
7668         that INVOKE__main is set correctly.
7669         (expand_main_function): Test INVOKE__main.
7670         * libgcc2.c: Do not define __main when using .init_array.
7671         * config/arm/arm.c (arm_elf_asm_constructor): New function.
7672         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
7673         libgcc version.
7674         (DTORS_SECTION_ASM_OP): Likewise.
7675         (CTOR_LIST_BEGIN): Define specially when in libgcc.
7676         (CTOR_LIST_END): Likewise.
7677         (DTOR_LIST_BEGIN): Likewise.
7678         (DTOR_LIST_END): Likewise.
7679         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
7680         (FINI_SECTION_ASM_OP): Likewise.
7681         (INIT_ARRAY_SECTION_ASM_OP): Define.
7682         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
7683         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
7684         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
7685         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
7686         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
7687
7688 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
7689
7690         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
7691         gcc_assert and gcc_unreachable as appropriate.
7692         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
7693         const_int_cost, output_move_const_into_data_reg,
7694         output_move_qimode, output_move_double, find_addr_reg,
7695         print_operand, print_operand_address): Likewise.
7696         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
7697         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
7698         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
7699         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
7700         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
7701         conditional_trap): Likewise.
7702         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
7703
7704 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
7705
7706         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
7707         gcc_unreachable as appropriate.
7708         (gen_conditional_move, xtensa_split_operand_pair,
7709         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
7710         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
7711         xtensa_copy_incoming_a7, xtensa_output_literal,
7712         xtensa_output_literal, xtensa_output_literal): Likewise.
7713         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
7714         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
7715         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
7716         movsicc_internal1, movsfcc_internal0,
7717         movsfcc_internal1): Likewise.
7718
7719 2005-04-28  James E Wilson  <wilson@specifixinc.com>
7720
7721         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
7722         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
7723
7724 2005-04-28  DJ Delorie  <dj@redhat.com>
7725
7726         * opt-functions.awk (var_set): Emit proper initializer for
7727         non-target bitfields.
7728
7729 2005-04-28  Devang Patel  <dpatel@apple.com>
7730
7731         * dbxout.c (have_used_extensions): Remove.
7732         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
7733         have_used_extensions.
7734
7735 2005-04-28  James E Wilson  <wilson@specifixinc.com>
7736
7737         * doc/install.texi: Update -enable-languages info.  Correct path to
7738         html docs.
7739
7740 2005-04-28  DJ Delorie  <dj@redhat.com>
7741
7742         * optc-gen.awk (END): Make sure no variable is defined more
7743         than once.
7744         * opth-gen.awk (END): Allocate bits on a per-variable basis.
7745         Allow for bitfield variables other than target_flags.
7746         * doc/options.text (Mask): Document that you may specify a
7747         variable other than target_flags.
7748
7749 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
7750
7751         PR rtl-optimization/18877
7752         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
7753         number in val.start.
7754
7755 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
7756
7757         PR target/20813
7758         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
7759         MASK_PPC_GFXOPT.
7760         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
7761         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
7762         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
7763
7764 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
7765
7766         * arm.c (legitimize_pic_address): Fix sense of assertion test for
7767         creating pseudos when the base offset is too large.
7768
7769 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
7770
7771         * global.c (earlyclobber_regclass): Change the type to
7772         VEC(int,heap).
7773         (check_earlyclobber): Update uses of earlyclobber_regclass.
7774         (mark_reg_use_for_earlyclobber): Likewise.
7775         (calculate_local_reg_bb_info): Allocate and free
7776         earlyclobber_regclass using the VEC API.
7777
7778 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
7779
7780         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
7781         assert.
7782
7783 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
7784
7785         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
7786         (*targetm.foo).
7787
7788         * config.gcc: Obsolete c4x-* and tic4x-*.
7789
7790         * tree.h (edge_def): Remove.
7791
7792         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
7793         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
7794         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
7795         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
7796         where appropriate.
7797
7798         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
7799         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
7800         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
7801         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
7802         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
7803         machmode.def, mips-tfile.c, params.c, pretty-print.c,
7804         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
7805         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
7806         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
7807         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
7808         config/i386/cygming.h, config/i386/djgpp.h,
7809         config/i386/lynx.h, config/i386/netware.c,
7810         config/i386/winnt.c, config/ia64/ia64-c.c,
7811         config/iq2000/iq2000.c, config/m32r/little.h,
7812         config/m68k/m68k-protos.h, config/m68k/m68k.h,
7813         config/m68k/m68k.md, config/mcore/mcore.c,
7814         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
7815         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
7816         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
7817         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
7818         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
7819         config/pdp11/pdp11.h, config/rs6000/darwin.h,
7820         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
7821         config/s390/2064.md, config/s390/2084.md,
7822         config/s390/s390-modes.def, config/s390/s390-protos.h,
7823         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
7824         config/stormy16/stormy16.c, config/vax/vax-protos.h,
7825         config/vax/vax.c, config/vax/vax.h,
7826         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
7827         copyright.
7828
7829 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
7830
7831         * c-typeck.c (build_compound_expr): Correct logic in last change.
7832
7833 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
7834
7835         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
7836         parameters.  Replace conditional move code with assert checking for
7837         ar.lc.  Delete obsolete comments.
7838         (set_src_needs_barrier): Delete cond parameter, and code using it.
7839         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
7840         assert checking for PR_REGS.  Fix calls to update_set_flags and
7841         set_src_needs_barrier.
7842         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
7843         callers.  Rewrite explanatory comment before the function.
7844         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
7845         Fix all callers.
7846
7847 2005-04-27  Mike Stump  <mrs@apple.com>
7848
7849         * doc/cpp.texi: gcc now implements universal character names.
7850
7851 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
7852
7853         PR c/21159
7854         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
7855         being a compound expression whose right-hand side is cast to void.
7856
7857 2005-04-27  Caroline Tice  <ctice@apple.com>
7858
7859         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
7860         Remove targetm.have_named_sections test.
7861         (fix_edges_for_rarely_executed_code): Likewise.
7862         (insert_section_boundary_note): Likewise.
7863         (reorder_basic_blocks): Check partitioning flag before calling
7864         verify_hot_cold_block_grouping.
7865         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
7866         the function struct rather than global variables.
7867         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
7868         (COLD_END_LABEL): Likewise
7869         (cold_text_section_label): New static global variable.
7870         (cold_end_label): Likewise.
7871         (dwarf2out_switch_text_section): Get hot/cold section labels from
7872         the function struct rather than global variables; test to make sure
7873         cfun is defined.
7874         (output_aranges): Use cold_text_section_label and cold_end_label;
7875         check partitioning flag before putting out delta.
7876         (output_ranges): Remove incorrect code attempting to use
7877         hot/cold labels.
7878         (output_line_info): Get cold section label from function struct; test
7879         to make sure cfun is defined.
7880         (add_location_or_const_value_attribute): Likewise.
7881         (dwarf2out_var_location): Likewise.
7882         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
7883         write out cold_text_section_label if partition flag is set.
7884         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
7885         * function.h (struct function): Add new fields to point to hot/cold
7886         section labels: hot_section_label, cold_section_label,
7887         hot_section_end_label and cold_section_end_label; also add new field
7888         for cold text section name, unlikely_text_section_name.
7889         * opts.c (decode_options): Turn off partitioning flag if
7890         !targetm.have_named_sections.
7891         * output.h (hot_section_label): Remove.
7892         (hot_section_end_label): Remove.
7893         (cold_section_end_label): Remove.
7894         (unlikely_section_label): Remove.
7895         (unlikely_text_section_name): Remove.
7896         * passes.c (rest_of_handle_final):  Remove extra blank line.
7897         * varasm.c (unlikely_section_label): Remove.
7898         (hot_section_label): Remove.
7899         (hot_section_end_label): Remove.
7900         (cold_section_end_label): Remove.
7901         (unlikely_text_section_name):  Remove.
7902         (initialize_cold_section_name): Modify to call
7903         targetm.strip_name_encoding; to store cold section name in current
7904         function struct, if it exists; and to only use the decl_section_name
7905         if flag_named_sections is true.
7906         (unlikely_text_section): Modify to get section name out of current
7907         function struct, if there is one; otherwise build it from
7908         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
7909         (in_unlikely_text_section): Likewise.
7910         (named_section): Modify to get/put cold section name in current function
7911         struct, if there is one.
7912         (function_section):  Change 'bool unlikely' to 'int reloc'; check
7913         targetm.have_named_sections before calling named_section.
7914         (current_function_section): Likewise.
7915         (assemble_start_function): Modify to get/put unlikely_text_section_name
7916         in current function struct; modify to get hot/cold section labels
7917         from function struct; initialize labels using
7918         ASM_GENERATE_INTERNAL_LABEL;
7919         test partitioning flag before writing out hot section label.
7920         (assemble_end_function): Test partitioning flag before writing out
7921         hot/cold section labels.
7922         (default_section_type_flags_1):  Get cold text section name from
7923         function struct if there is one; Set flags correctly for
7924         cold text section if there is not a current function struct.
7925
7926 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
7927
7928         * tree-ssa-propagate.c (set_rhs): Revert last change.
7929
7930 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
7931
7932         * explow.c (convert_memory_address): Add gcc_assert.
7933
7934 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
7935
7936         * configure.ac: Check for ld --sysroot support.
7937         * gcc.c: Document %R specifier for specs.
7938         (SYSROOT_SPEC): New macro.
7939         (sysroot_spec): New variable.
7940         (static_specs): Add sysroot_spec.
7941         (main): Pass the sysroot spec to the linker if appropriate.
7942         * configure: Regenerated.
7943         * config.in: Likewise.
7944
7945 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
7946
7947         * fold-const.c (fold_binary): Use build_fold_addr_expr
7948         for address calculation and INDIRECT_REF handling.
7949
7950 2005-04-27  Andrew Haley  <aph@redhat.com>
7951
7952         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
7953
7954 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
7955
7956         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
7957         pointer when thumb backtracing is on.
7958
7959         * config/fp-bit.c (abort): Revert change.
7960
7961 2005-04-27  Ian Lance Taylor  <ian@airs.com>
7962
7963         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
7964
7965 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
7966
7967         * tree-ssa-dce.c: Fix a comment typo.
7968
7969 2005-04-27  David S. Miller  <davem@davemloft.net>
7970
7971         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
7972         Kill setjmpless_size.  current_function_calls_setjmp is completely
7973         computed when we are called, so just use the optimized size value
7974         instead of using REG_SAVE_AREA notes.
7975         (optimize_save_area_alloca): Delete....
7976         * rtl.h (optimize_save_area_alloca): Likewise...
7977         * passes.c (rest_of_compilation): and don't call it any more.
7978         * reg-notes.def (SAVE_AREA): Delete.
7979
7980 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
7981
7982         * config/fp-bit.c (abort): Add noreturn attribute.
7983
7984         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
7985         gcc_unreachable as appropriate.
7986         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
7987         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
7988         ASM_OUTPUT_REG_POP): Likewise.
7989
7990 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
7991
7992         * tree-complex.c (expand_vector_operations_1): Do not build
7993         VIEW_CONVERT_EXPR's for the lhs.
7994
7995 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
7996
7997         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
7998         unnecessary noncanonical RTL handling.
7999         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
8000         gcc_assert and gcc_unreachable.
8001
8002         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
8003         gcc_unreachable as appropriate.
8004         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
8005         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
8006         use_return_insn, const_ok_for_op, arm_gen_constant,
8007         arm_canonicalize_comparison, legitimize_pic_address,
8008         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
8009         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
8010         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
8011         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
8012         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
8013         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
8014         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
8015         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
8016         output_call, output_mov_long_double_fpa_from_arm,
8017         output_mov_long_double_arm_from_fpa,
8018         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
8019         output_move_double, arithmetic_instr, shift_op, int_log2,
8020         output_return_instruction, arm_output_function_prologue,
8021         arm_output_epilogue, arm_output_function_epilogue,
8022         emit_multi_reg_push, arm_get_frame_offsets,
8023         arm_compute_initial_elimination_offset, arm_expand_prologue,
8024         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
8025         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
8026         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
8027         thumb_compute_initial_elimination_offset,
8028         thumb_output_function_prologue, thumb_load_double_from_address,
8029         thumb_output_move_mem_multiple, thumb_reload_out_hi,
8030         arm_emit_vector_const, arm_dbx_register_number): Likewise.
8031         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
8032         * config/arm/arm.md (thumb_extendhisi2,
8033         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
8034         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
8035         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
8036         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
8037         * config/arm/cirrus.md (*cirrus_arm_movdi,
8038         *cirrus_movdf_hard_insn): Likewise.
8039         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
8040
8041 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
8042
8043         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
8044         (num_ssa_names): Use VEC_length.
8045         (ssa_names): Use VEC_index.
8046         * tree-ssanames.c (ssa_names): Change the type to
8047         VEC(tree,gc).
8048         (init_ssanames, fini_ssa_names, make_ssanames,
8049         release_ssa_name): Update uses of ssa_names.
8050
8051         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
8052         Use fold_buildN instead of fold (buildN (...)).
8053
8054 2005-04-27  Devang Patel <dpatel@apple.com>
8055
8056         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
8057
8058 2005-04-27  Matt Thomas <matt@3am-software.com>
8059             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
8060
8061         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
8062         (vax_output_mi_thunk): Ditto.
8063         (vax_notice_cc_update): Ditto.
8064         (INDEX_REGISTER_P): Add trailing \.
8065         (BASE_REGISTER_P): Add trailing \.
8066         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
8067
8068 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
8069
8070         * tree-ssa-propagate.c (set_rhs): Check operand of
8071         ADDR_EXPR for gimpliness, too.
8072
8073 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
8074
8075         * tree-ssa-pre.c: Fix a comment typo.
8076
8077 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
8078
8079         PR tree-optimization/21171
8080         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
8081         record address uses if the reference is volatile.
8082
8083 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
8084
8085         * tree-complex.c (expand_vector_operation): New, extracted from
8086         expand_vector_operations_1.
8087         (tree_vec_extract): Build a NOP_EXPR.
8088         (expand_vec_parallel): Do not care about returning the correct type.
8089         (expand_vector_operations_1): Call expand_vector_operation.
8090         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
8091
8092         * tree-complex.c (gate_expand_vector_operations): New.
8093         (pass_lower_vector_ssa): Use it.
8094         * tree-optimize.c (init_tree_optimization_passes): Include
8095         pass_lower_vector_ssa.
8096         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
8097         (vectorizable_operation): Use it.
8098         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
8099         integer modes for the vector type.
8100
8101         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
8102         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
8103         Do not cope with UNITS_PER_SIMD_WORD == 0.
8104         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
8105         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
8106         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
8107         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
8108         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8109         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8110         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8111
8112         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
8113         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
8114         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
8115
8116         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
8117         (UNITS_PER_SIMD_WORD): New.
8118
8119 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8120
8121         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
8122         gcc_unreachable as appropriate.
8123         (ia64_expand_load_address, ia64_expand_tls_address,
8124         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
8125         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
8126         next_scratch_gr_reg, ia64_initial_elimination_offset,
8127         ia64_expand_prologue, ia64_expand_epilogue,
8128         ia64_output_dwarf_dtprel, ia64_print_operand,
8129         ia64_register_move_cost, first_instruction, rws_access_regno,
8130         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
8131         ia64_sched_init, ia64_variable_issue,
8132         ia64_first_cycle_multipass_dfs_lookahead_guard,
8133         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
8134         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
8135         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
8136         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
8137         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
8138         * config/ia64/predicates.md (got_symbolic_operand,
8139         sdata_symbolic_operand): Likewise.
8140         * config/ia64/vect.md (vcondv2sf): Likewise.
8141
8142 2005-04-27  Matt Thomas <matt@3am-software.com>
8143
8144         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
8145         CONSTANT_ADDRESS_P in config/vax/vax.h
8146         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
8147         (INDEX_REGISTER_P): New.
8148         (BASE_REGISTER_P): New.
8149         (indirectable_constant_address_p): New.  Adapted from
8150         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
8151         (indirectable_address_p): New.  Adapted from
8152         INDIRECTABLE_ADDRESS_P in vax.h.
8153         (nonindexed_address_p): New.  Adapted from
8154         GO_IF_NONINDEXED_ADDRESS in vax.h.
8155         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
8156         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
8157         (legitimate_address_p): New.  Adapted from
8158         GO_IF_LEGITIMATE_ADDRESS in vax.h.
8159         (vax_mode_dependent_address_p): New.  Adapted from
8160         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
8161         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
8162         legitimate_constant_address_p.
8163         (CONSTANT_P): Use legitimate_constant_p.
8164         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
8165         (INDIRECTABLE_ADDRESS_P): Removed.
8166         (GO_IF_NONINDEXED_ADDRESS): Removed.
8167         (INDEX_TEMP_P): Removed.
8168         (GO_IF_REG_PLUS_INDEX): Removed.
8169         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
8170         definitions, depending on whether REG_OK_STRICT is defined.
8171         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
8172         Two definitions, depending on whether REG_OK_STRICT is defined.
8173         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
8174         added.
8175         (legitimate_constant_p): Prototype added.
8176         (legitimate_address_p): Prototype added.
8177         (vax_mode_dependent_address_p): Prototype added.
8178
8179 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
8180
8181         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
8182
8183 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
8184
8185         PR c/21213
8186         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
8187         transparent union.
8188
8189 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
8190
8191         PR c/20740
8192         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
8193         assertion failures, if __gcc_host_wide_int__ is not properly
8194         defined.
8195         (init_dynamic_diag_info): Give errors, not assertion failures, if
8196         location_t, tree or __gcc_host_wide_int__ are not properly
8197         defined.
8198
8199 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
8200
8201         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
8202         n_iv_uses, iv_use, n_iv_cands, iv_cand,
8203         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
8204         prepare_decl_rtl, free_loop_data,
8205         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
8206         VARRAY.
8207
8208         * tree.h (tree_phi_node): Add a comment about the order of PHI
8209         arguments.
8210
8211 2005-04-26  Paul Brook  <paul@codesourcery.com>
8212
8213         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
8214
8215 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
8216
8217         * config/mips.mips.c (mips_legitimize_tls_address): Use
8218         gcc_unreachable.
8219
8220         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
8221         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
8222         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
8223
8224         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
8225         'abort'.
8226
8227 2005-04-26  Jeff Law  <law@redhat.com>
8228
8229         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
8230         (op_iter_init_must_and_may_def): Likewise.
8231         (unmodifiable_var_p): Move to a later point in the file.
8232         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
8233         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
8234         (dse_record_phis): Directly check for virtual operands rather than
8235         using need_imm_uses_for.
8236         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
8237         store has multiple V_{MAY,MUST}_DEF operands.
8238
8239 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
8240
8241         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
8242         stmt.
8243
8244 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
8245
8246         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
8247         call to find_edge outside a loop to go through a PHI chain.
8248
8249 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
8250
8251         PR tree-optimization/17598
8252         * fold-const.c (fold_binary): Fold comparisons of addresses
8253         of COMPONENT_REFs which reference the same field to
8254         comparisons of the addresses of the base objects.
8255
8256 2005-04-26  Julian Brown  <julian@codesourcery.com>
8257
8258         * config/arm/arm.c (arm_return_in_msb): New function.
8259         (arm_must_pass_in_stack): New function.
8260         (TARGET_RETURN_IN_MSB): Define target hook.
8261         (TARGET_MUST_PASS_IN_STACK): Define target hook.
8262         (arm_function_value): Pad small aggregate return.
8263         (arm_pad_arg_upward): New function.
8264         (arm_pad_reg_upward): New function.
8265         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
8266         (FUNCTION_ARG_PADDING): Define macro.
8267         (BLOCK_REG_PADDING): Define macro.
8268         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
8269         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
8270         (arm_pad_reg_upward): Declare function.
8271
8272 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
8273
8274         * basic-block.h (ei_cond): New.
8275         (FOR_EACH_EDGE): Call ei_cond.
8276
8277         PR tree-optimization/21047
8278         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
8279         (fold): Don't handle ASSERT_EXPR.
8280
8281 2005-04-25  Roger Sayle  <roger@eyesopen.com>
8282
8283         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
8284         all writes to any stack register as a read/write dependency on
8285         FIRST_STACK_REG.
8286         (sched_analyze_2): Likewise, for reads from any stack register.
8287
8288 2005-04-25  Richard Henderson  <rth@redhat.com>
8289
8290         * final.c (output_addr_const): Revert 2005-04-09 change.
8291
8292 2005-04-25  Mike Stump  <mrs@apple.com>
8293
8294         * config/darwin.c (darwin_encode_section_info): Always set
8295         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
8296
8297 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8298
8299         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
8300         gensupport.c, protoize.c, toplev.c: Replace calls to
8301         `unlock_stream' with `unlock_std_streams'.
8302
8303 2005-04-25  Devang Patel <dpatel@apple.com>
8304
8305         * dbxout.c (dbxout_type): Emit attribute vector.
8306
8307 2005-04-05  Paul Brook  <paul@codesourcery.com>
8308
8309         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
8310         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
8311         * config/arm/arm.c (arm_cxx_atexit_name): New function.
8312         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
8313         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
8314         (register_dtor_fn): Likewise.
8315         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
8316
8317 2005-04-25  Ian Lance Taylor  <ian@airs.com>
8318
8319         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
8320         * c-common.h (EXPR_STMT_EXPR): Don't define.
8321         (c_common_stmt_codes): Don't define.
8322         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
8323         * c-gimplify.c (gimplify_expr_stmt): Remove.
8324         (c_gimplify_expr): Remove EXPR_STMT case.
8325         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
8326         to INIT_STATEMENT_CODES.
8327         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
8328
8329 2005-04-25  Jan Hubicka  <jh@suse.cz>
8330
8331         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
8332
8333         * except.c: Include diagnostic.h
8334         (dump_eh_tree, verify_eh_tree): New functions.
8335         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
8336         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
8337         (dump_function_to_file): dump eh tree.
8338         * tree-eh.c (mark_eh_edge): New function.
8339         (mark_eh_edge_found_error): New static variable.
8340         (verify_eh_edges): New function.
8341
8342 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
8343
8344         * tree-ssa-alias.c (fieldoff_t): Remove.
8345         (fieldoff_s): typedef the structure itself.  Create a vector of
8346         objects.
8347         (push_fields_onto_fieldstack): Return count of fields pushed.
8348         Remove peeling of first field.  Adjust.
8349         (fieldoff_compare): Adjust.
8350         (create_overlap_variables_for): Adjust.
8351
8352 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
8353
8354         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
8355
8356 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
8357
8358         PR bootstrap/21215
8359         * doc/install.texi: Document correct assembler and linker to use
8360         on i?86-*-solaris2.10.
8361
8362 2005-04-25  Steven Bosscher  <stevenb@suse.de>
8363
8364         Fix PR tree-optimization/21173
8365
8366         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
8367         Unshare expression we pass to force_gimple_operand.
8368
8369 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
8370             Stephen Clarke <stevec@superh.com>
8371             Roger Sayle <roger@eyesopen.com>
8372
8373         PR rtl-optimization/20413
8374         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
8375         VOIDmode for LABEL_REF.
8376         * final.c (shorten_branches): Likewise.
8377         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
8378         * loop.c (reg_dead_after_loop): Likewise.
8379         * varasm.c (decode_addr_const): Likewise.
8380         * doc/rtl.texi: Document mode requirement for LABEL_REF.
8381
8382 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
8383
8384         * config.gcc (avr-*-*): Remove redundant "case".
8385
8386 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
8387
8388         * tree-vect-analyze.c (vect_mark_relevant): Take
8389         VEC(tree,heap) instead of varray_type as an argument.
8390         (vect_mark_stmts_to_be_vectorized): Change the type of
8391         worklist to VEC(tree,heap).  Adjust uses of worklist.
8392
8393 2005-04-24  Devang Patel  <dpatel@apple.com>
8394
8395         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
8396
8397 2005-04-24  Ian Lance Taylor  <ian@airs.com>
8398
8399         * c-semantics.c (build_stmt): Remove test of specific tree codes
8400         for TREE_SIDE_EFFECTS handling.
8401
8402 2005-04-24  Per Bothner  <per@bothner.com>
8403
8404         * c-opts.c (finish_options):  Make the line-number of the <built-in>
8405         location 0, as assumed elsewhere, rather than 1.
8406
8407 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
8408
8409         * tree-ssa-uncprop.c (equiv_stack): Change the type o
8410         VEC(tree,heap).
8411         (tree_ssa_uncprop, uncprop_finalize_block,
8412         uncprop_initialize_block): Update uses of equiv_stack.
8413
8414 2005-04-24  Richard Henderson  <rth@redhat.com>
8415
8416         PR rtl-opt/21163
8417         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
8418         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
8419         constm1_rtx.
8420         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
8421         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
8422         <DIV, MOD>: Likewise.
8423
8424 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8425
8426         * collect2.c (main): Unlock the stdio streams.
8427         * gcc.c (main): Likewise.
8428         * gcov-dump.c (main): Likewise.
8429         * gcov.c (main): Likewise.
8430         * gen-protos.c (main): Likewise.
8431         * gensupport.c (init_md_reader_args_cb): Likewise.
8432         * protoize.c (main): Likewise.
8433         * toplev.c (general_init): Likewise.
8434
8435 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
8436
8437         PR middle-end/20991
8438         * cgraph.h (cgraph_local_info): Add vtable_method field.
8439         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
8440         and node is vtable_method, finalized and not reachable, don't do
8441         anything.
8442
8443 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
8444
8445         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
8446         COMPARISON_CLASS_P.
8447         * tree-ssa-pre.c (create_value_expr_from): Use
8448         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
8449         * tree-ssa-propagate.c (stmt_makes_single_load,
8450         stmt_makes_single_store): Use REFERENCE_CLASS_P.
8451         * tree-vect-transform.c (vect_is_simple_cond): Use
8452         COMPARISON_CLASS_P.
8453         * tree-vrp.c (extract_range_from_assert,
8454         build_assert_expr_for, fp_predicate, has_assert_expr): Use
8455         COMPARISON_CLASS_P.
8456
8457         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
8458         of tpa_to_clear to VEC(int,heap).  Update uses of
8459         tpa_to_clear.  Free tpa_to_clear at the end.
8460
8461 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
8462
8463         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
8464         function decl.
8465
8466 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
8467
8468         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
8469         and gcc_unreachable as appropriate.
8470         (num_insns_constant, output_vec_const_move,
8471         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
8472         rs6000_emit_set_const, rs6000_emit_move,
8473         spe_build_register_parallel, function_arg,
8474         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
8475         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
8476         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
8477         rs6000_common_init_builtins, expand_block_clear,
8478         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
8479         extract_ME, rs6000_get_some_local_dynamic_name,
8480         rs6000_output_function_entry, print_operand,
8481         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
8482         output_cbranch, output_e500_flip_gt_bit,
8483         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
8484         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
8485         compute_save_world_info, rs6000_stack_info,
8486         rs6000_emit_load_toc_table, rs6000_frame_related,
8487         spe_synthesize_frame_save, rs6000_emit_epilogue,
8488         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
8489         output_function_profiler, rs6000_trampoline_size,
8490         rs6000_initialize_trampoline, find_addr_reg,
8491         rs6000_machopic_legitimize_pic_address,
8492         rs6000_initial_elimination_offset,
8493         rs6000_dbx_register_number): Likewise.
8494         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
8495         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
8496         *movti_power, *movti_string, call, call_value, sibcall,
8497         sibcall_value): Likewise.
8498         * config/rs6000/spe.md (*movdf_e500_double,
8499         *movv2si_internal): Likewise.
8500         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
8501         from comment.
8502
8503 2005-04-24  Richard Henderson  <rth@redhat.com>
8504
8505         PR target/21101
8506         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
8507         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
8508         Deny modes smaller than 4 bytes.
8509         * config/i386/i386-protos.h: Update.
8510
8511 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
8512
8513         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
8514         Switch h8300-*-rtems* to ELF.
8515
8516 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
8517
8518         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
8519
8520 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
8521
8522         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
8523
8524 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
8525
8526         PR middle-end/21082
8527         * fold-const.c: Fold &a[i]-&a[j] to i-j.
8528
8529 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
8530
8531         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
8532         definitions of ssa names in condition.  Split recusive part to ...
8533         (tree_simplify_using_condition_1): New function.
8534         (expand_simple_operations): New function.
8535
8536 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
8537
8538         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
8539         (find_interesting_uses_cond): Do not use integer_zerop and
8540         integer_nonzerop to check for integer constants.
8541         (set_use_iv_cost): Record the value field.
8542         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
8543         determine_use_iv_cost_outer): Set the value field of the cost pair.
8544         (may_eliminate_iv): Do not return the comparison code.
8545         (iv_elimination_compare): New function.
8546         (determine_use_iv_cost_condition): Set the value field.  Record
8547         noneliminable invariants correctly.
8548         (rewrite_use_compare, rewrite_use_outer): Use the value field.
8549
8550 2005-04-23  DJ Delorie  <dj@redhat.com>
8551
8552         * diagnostic.c (warning): Accept parameter to classify warning option.
8553         (warning0): New, for when a pointer to an error() like function is needed.
8554         * errors.c (warning): Likewise.
8555         * errors.h (warning, warning0): Adjust prototypes.
8556         * toplev.h (warning, warning0): Likewise.
8557
8558         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
8559         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
8560         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
8561         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
8562         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
8563         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
8564         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
8565         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
8566
8567         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
8568         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
8569         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
8570         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
8571         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
8572         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
8573         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
8574         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
8575         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
8576         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
8577         config/rs6000/aix52.h, config/rs6000/darwin.h,
8578         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
8579         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
8580         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
8581         config/stormy16/stormy16.c, config/v850/v850-c.c,
8582         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
8583         callers.
8584
8585 2005-04-23  Richard Henderson  <rth@redhat.com>
8586
8587         PR rtl-opt/21102
8588         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
8589         performing some integral scalar simplifications.
8590
8591 2005-04-23  Richard Henderson  <rth@redhat.com>
8592
8593         PR target/21099
8594         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
8595         simplifying CONST_VECTOR.
8596
8597 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
8598
8599         * tree-ssa-live.c (live_worklist): Take a stack allocated on
8600         heap as an argument.  Update uses of stack.
8601         (calculate_live_on_entry): Allocate stack on heap.
8602
8603         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
8604         partition_link and tpa_nodes on heap.
8605
8606         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
8607         (mark_stmt_necessary, propagate_necessity,
8608         mark_really_necessary_kill_operand_phis): Update uses of
8609         worklist.
8610         (tree_dce_init): Allocate worklist using VEC_alloc.
8611         (tree_dce_done): Free worklist using VEC_free.
8612
8613 2005-04-23  Mike Stump  <mrs@apple.com>
8614
8615         * config/darwin.c (machopic_indirection_name): Don't use
8616         quotes needlessly.
8617         (darwin_emit_unwind_label): Use user_label_prefix instead of
8618         "_".
8619
8620 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
8621
8622         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
8623
8624 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
8625
8626         * config.gcc <cris-*>: Specify .opt files.
8627         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
8628         config/cris/linux.opt: New files.
8629         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
8630         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
8631         (TARGET_ELF): Override to 0.
8632         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
8633         -melinux-stacksize=N.
8634         * config/cris/cris.c: (cris_handle_option): New function.
8635         (TARGET_DEFAULT_TARGET_FLAGS): Override.
8636         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
8637         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
8638         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
8639         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
8640         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
8641         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
8642         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
8643         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
8644         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
8645         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
8646         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
8647         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
8648         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
8649         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
8650         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
8651         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
8652         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
8653         (TARGET_LINUX): Define 0.
8654         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
8655         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
8656         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
8657         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
8658         (TARGET_LINUX): Override to 1.
8659         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
8660
8661 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
8662
8663         * haifa-sched.c (schedule_block): Fix thinko in previous
8664         assertification patch.
8665
8666 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
8667
8668         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
8669         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
8670         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
8671         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
8672         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
8673         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
8674         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
8675         for hpux11.[1-9]*.
8676         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
8677         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
8678         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
8679         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
8680         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
8681         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
8682         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
8683         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
8684         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
8685         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
8686         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
8687         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
8688         (SUBTARGET_OPTIONS): Delete.
8689         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
8690         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
8691         instead of a string.
8692         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
8693         (pa_cpu_string, pa_unix_string): Delete.
8694         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
8695         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
8696         TARGET_HPUX_10_10.
8697         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8698         (pa_handle_option): New function.
8699         (override_options): Remove handling of -march=, -mfixed-range=,
8700         -mschedule= and -munix=.
8701         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
8702         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
8703         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
8704         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
8705         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
8706         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
8707         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
8708         redefining.
8709         * config/pa/pa.opt: New file.
8710         * config/pa/pa-hpux.opt: New file.
8711         * config/pa/pa-hpux1010.opt: New file.
8712         * config/pa/pa-hpux1111.opt: New file.
8713         * config/pa/pa64-hpux.opt: New file.
8714
8715 2005-04-22  David S. Miller  <davem@davemloft.net>
8716
8717         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
8718         integer when it's mode is VOIDmode not DImode.
8719
8720 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
8721
8722         * config/rs6000/rs6000.md (sync_add<mode>_internal,
8723         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
8724         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
8725         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
8726         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
8727         "bne- $-xxx" rather than local labels.
8728         (sync_lock_release<mode>): Add second operand.
8729         (lwsync): Use .long rather than a more meaningful opcode.
8730         * doc/md.texi (Standard Names): Add description of second
8731         parameter to sync_lock_test_and_set.
8732
8733 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
8734
8735         PR tree-optimization/21088
8736         * fold-const.c (fold_unary, fold_binary, fold_ternary):
8737         Export.
8738         * tree-vrp.c (compare_values): Use fold_binary to compare
8739         pointers.  Use boolean_type_node as the type of a comparison
8740         expression being folded.
8741         * tree.h: Add prototypes for fold_unary, fold_binary,
8742         fold_ternary.
8743
8744         * tree-ssa-dom.c: Fix formatting.
8745
8746 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
8747
8748         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
8749         * lambda-code.c (perfect_nestify): Mark virtual operands in
8750         the moved statement for renaming.
8751         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
8752         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
8753         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
8754         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
8755         * tree-flow.h (struct var_ann_d): Update comments.
8756         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
8757         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
8758         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
8759         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
8760         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
8761         debug_names_replaced_by): Remove declarations.
8762         (delete_update_ssa, get_current_def, set_current_def): Declare.
8763         (rewrite_into_loop_closed_ssa): Add new argument.  Update
8764         all callers.
8765         * tree-into-ssa.c: Include params.h.
8766         (old_virtual_ssa_names): Remove.  Update all users.
8767         (need_to_replace_names_p): Remove.  Update all users.
8768         (struct update_ssa_stats_d): Declare.
8769         (update_ssa_stats): New local.
8770         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
8771         dump_tree_ssa_stats, debug_tree_ssa_stats,
8772         dump_update_ssa, debug_update_ssa,
8773         dump_names_replaced_by, debug_names_replaced_by): Declare.
8774         (get_current_def, set current_def): Make extern.
8775         (is_old_name, is_new_name): Protect against references
8776         past the end of the sets.
8777         (add_new_name_mapping): Assert that OLD and NEW are
8778         different SSA names for the same symbol.
8779         When adding a virtual mapping, update stats for virtual
8780         mapping heuristic.
8781         (insert_phi_nodes_for): If UPDATE_P is true, create the
8782         LHS of the new PHI by duplicating SSA name VAR.
8783         (insert_phi_nodes_1): Remove.  Update all users.
8784         (insert_phi_nodes): Remove second argument.  Update all
8785         users.
8786         (maybe_replace_use, maybe_replace_def): New.
8787         (rewrite_update_stmt): Call them.
8788         (mark_def_interesting): Remove calls to is_gimple_reg.
8789         (prepare_phi_args_for_update): Remove.  Update all users.
8790         (prepare_block_for_update): Only process virtual operands
8791         and GIMPLE registers in normal form.
8792         (prepare_use_sites_for): New.
8793         (prepare_names_to_update): Rename from prepare_def_sites.
8794         Call prepare_use_sites_for.
8795         (dump_update_ssa): Rename from dump_repl_tbl.
8796         Update all users.
8797         Show statistics for virtual mapping heuristic.
8798         (debug_update_ssa): Rename from debug_debug_repl_tbl.
8799         (init_update_ssa): Initialize UPDATE_SSA_STATS.
8800         (delete_update_ssa): Make extern.
8801         (mark_set_for_renaming): If the set is empty, do nothing.
8802         (release_ssa_name_after_update_ssa): Update comment.
8803         (insert_updated_phi_nodes_for): Do not remove existing
8804         PHI nodes for symbols.
8805         (switch_virtuals_to_full_rewrite_p): New.
8806         (switch_virtuals_to_full_rewrite): New.
8807         (update_ssa): Call them.
8808         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
8809         for every statement before updating.
8810         If all the names in NEW_SSA_NAMES have been marked for
8811         removal, do nothing.
8812         Only start at the top of the CFG if there are symbols in
8813         SYMS_TO_RENAME.
8814         (ssa_rewrite_finalize_block): Remove.
8815         (ssa_register_new_def): Remove.
8816         (ssa_rewrite_stmt): Remove.
8817         (ssa_rewrite_phi_arguments): Remove.
8818         (ssa_rewrite_initialize_block): Remove.
8819         (ssa_mark_def_sites): Remove.
8820         (ssa_mark_def_sites_initialize_block): Remove.
8821         (ssa_mark_phi_uses): Remove.
8822         (rewrite_ssa_into_ssa): Remove.
8823         * tree-phinodes.c (find_phi_node_for): Remove.
8824         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
8825         Call update_ssa.
8826         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
8827         Remove calls to verify_dominators and
8828         verify_loop_structure.
8829         (tree_unswitch_single_loop): Call update_ssa.
8830         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
8831         returns false.
8832         Call verify_stmts.
8833         (delete_tree_ssa): Assert that need_ssa_update_p returns
8834         false.
8835         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
8836         * tree-vectorizer.c (allocate_new_names, rename_def_op,
8837         free_new_names): Remove.  Update all users.
8838         (rename_use_op): Call get_current_def.
8839         (rename_variables_in_bb): Do not handle any real or
8840         virtual definition.
8841         (slpeel_update_phis_for_duplicate_loop): Call
8842         get_current_def and set_current_def instead of using
8843         SSA_NAME_AUX.
8844         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
8845         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
8846         ssa_names_to_replace and delete_update_ssa.
8847         * doc/invoke.texi: Document --param min-virtual-mappings
8848         and --param virtual-mappings-ratio.
8849
8850 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
8851
8852         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
8853         for newly created PHI nodes.
8854         Call create_new_def_for for every new V_MAY_DEF and
8855         V_MUST_DEF on the copied statement.
8856         (struct ssa_name_map_entry): Remove.
8857         (ssa_name_map_entry_hash): Remove.
8858         (ssa_name_map_entry_eq): Remove.
8859         (allocate_ssa_names): Remove.
8860         (rewrite_to_new_ssa_names_def): Remove.
8861         (rewrite_to_new_ssa_names_use): Remove.
8862         (rewrite_to_new_ssa_names_bb): Remove.
8863         (rewrite_to_new_ssa_names): Remove.
8864         (tree_duplicate_sese_region): Remove variables ver,
8865         definitions, phi, ssa_name_map and bi.
8866         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
8867         Call update_ssa.
8868         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
8869         update_ssa instead of rewrite_ssa_into_ssa.
8870         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
8871         create_new_def_for.
8872         (find_uses_to_rename_use): Add argument 'need_phis'.
8873         (find_uses_to_rename_stmt): Do not scan virtual operands.
8874         (find_uses_to_rename): Only scan PHI nodes for
8875         non-virtual names.
8876         (rewrite_into_loop_closed_ssa): Call update_ssa.
8877         (check_loop_closed_ssa_use): Ignore virtual operands.
8878         (check_loop_closed_ssa_stmt): Likewise.
8879         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
8880         NULL.
8881         (rename_variables, set_phi_def_stmts): Remove.
8882         (tree_duplicate_loop_to_header_edge): Reformat comment.
8883         Remove variables BB, I and DEFINITIONS.
8884         Call need_ssa_update_p.
8885         Call update_ssa.
8886         (lv_adjust_loop_header_phi): Reformat comment.
8887         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
8888         (marked_for_rewrite_p, any_marked_for_rewrite_p,
8889         mark_for_rewrite, unmark_all_for_rewrite,
8890         marked_ssa_names): Remove.  Update all users.
8891         (release_ssa_name): If VAR has been registered for SSA
8892         updating, do nothing.
8893         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
8894         (build_assert_expr_for): Call register_new_name_mapping.
8895         (insert_range_assertions): Update call to update_ssa.
8896         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
8897         marked_for_rewrite_p, any_marked_for_rewrite_p,
8898         marked_ssa_names): Remove.
8899
8900 2005-04-22  Jeff Law  <law@redhat.com>
8901
8902         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
8903         (restore_currdefs_to_original_value): Likewise.
8904         (register_definitions_for_stmt): Likewise.
8905         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
8906         for each variable.  Do not allocate/free block_defs_stack either.
8907         Do not iterate if we just thread jumps.  Only iterate if the
8908         tree_cleanup_cfg does useful work (temporary).
8909         (dom_opt_initialize_block): No longer push a marker on
8910         BLOCK_DEFS_STACK.
8911         (dom_opt_finalize_block): Removal call to restore currdefs.
8912         Relax restrictions for recording edge equivalences.
8913         (record_equivalences_from_phis): No longer need to track
8914         CURRENT_DEF.
8915         (optimize_stmt): Similarly.
8916         (thread_across_edge): Simplify by removing the requirement that
8917         statements in the block we are threading through must be nops.
8918         (initialize_hash_element): Handle GOTO_EXPR.
8919
8920 2005-04-22  David S. Miller  <davem@davemloft.net>
8921
8922         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
8923         CONST_DOUBLE_HIGH.
8924         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
8925         fix check on CONST_DOUBLE mode.  It should be VOIDmode
8926         when it is representing an integer.
8927
8928 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
8929
8930         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
8931         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
8932         * c-format.c (get_constant, decode_format_attr, get_flag_spec,
8933         find_char_info_specifier_index,
8934         find_length_info_modifier_index): Likewise.
8935         * c-typeck.c (composite_type, pop_init_level): Likewise.
8936         * combine.c (cant_combine_insn_p, try_combine): Likewise.
8937         * cse.c (cse_insn): Likewise
8938         * dominance.c (calc_dfs_tree): Likewise
8939         dwarf2out.c (loc_descriptor_from_tree_1,
8940         add_abstract_origin_attribute, force_decl_die,
8941         force_type_die): Likewise
8942         emit-rtl.c (operand_subword_force): Likewise
8943         explow.c (hard_function_value): Likewise
8944         expmed.c (store_bit_field, expand_divmod,
8945         emit_store_flag_force): Likewise
8946         expr.c (emit_move_multi_word, store_expr,
8947         expand_expr_real_1): Likewise
8948         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
8949         output_operand): Likewise
8950         flow.c (recompute_reg_usage): Likewise
8951         * function.c (assign_stack_temp_for_type, assign_temp,
8952         handle_epilogue_set): Likewise
8953         * genextract.c (main): Likewise
8954         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
8955         gimplify_modify_expr_rhs, gimplify_expr): Likewise
8956         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
8957         ready_remove, rm_line_notes, rm_other_notes,
8958         schedule_block): Likewise
8959         mips-tfile.c (copy_object, out_of_bounds): Likewise
8960
8961 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
8962
8963         PR target/20813
8964         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
8965         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
8966         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
8967         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
8968         TARGET_XL_COMPAT.
8969         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
8970
8971 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
8972
8973         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
8974         (gcc_tree_to_linear_expression): Convert to heap allocated
8975         vectors.
8976         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
8977         lbv_to_gcc_expression, lle_to_gcc_expression,
8978         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
8979         perfect_nestify): Likewise.
8980         lambda.h (gcc_loopnest_to_lambda_loopnest,
8981         lambda_loopnest_to_gcc_loopnest): Likewise.
8982         tree-loop-linear.c (linear_transform_loops): Likewise.
8983
8984 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
8985
8986         * config/sparc/predicates.md (arith_double_operand): Use
8987         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
8988         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
8989         (DImode, DFmode constant splitters): Likewise.  Remove code for
8990         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
8991         (logical constant splitters): Use const_int_operand predicate.
8992         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
8993         HOST_BITS_PER_WIDE_INT < 64.
8994
8995 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
8996
8997         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
8998         gcc_unreachable as appropriate.
8999         (force_mode, emit_move_sequence, singlemove_string,
9000         output_move_double, output_fp_move_double, find_addr_reg,
9001         output_block_move, output_block_clear, output_and,
9002         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
9003         pa_adjust_cost, pa_issue_rate, print_operand,
9004         output_global_address, output_arg_descriptor, output_cbranch,
9005         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
9006         output_call): Likewise.
9007         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
9008         prefetch, prefetch_cc, prefetch_nocc): Likewise.
9009
9010 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
9011
9012         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
9013         _gcov_pow2_profiler and _gcov_one_value_profiler.
9014         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
9015         (GTFILES): Add $(srcdir)/tree-profile.c.
9016         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
9017         __gcov_one_value_profiler): Declare.
9018         * gimplify.c (force_gimple_operand): Check whether the statements
9019         should be produced in ssa form.
9020         (force_gimple_operand_bsi): New function.
9021         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
9022         __gcov_one_value_profiler): New functions.
9023         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
9024         the profiled value is a power of two or not.
9025         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
9026         * tree-flow.h (in_ssa_p): Declare.
9027         (force_gimple_operand_bsi): Declare.
9028         * tree-into-ssa.c (in_ssa_p): New variable.
9029         (rewrite_into_ssa): Set in_ssa_p.
9030         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
9031         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
9032         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
9033         tree_one_value_profiler_fn): New variables.
9034         (tree_init_edge_profiler): Initialize the profiler function decls.
9035         (tree_gen_edge_profiler): Use global gcov_type_node.
9036         (prepare_instrumented_value): New function.
9037         (tree_gen_interval_profiler, tree_gen_interval_profiler,
9038         tree_gen_one_value_profiler): Call the library functions instead of
9039         creating instrumentation code.
9040         * tree.c (build_fn_decl): New function.
9041         * tree.h (build_fn_decl): Declare.
9042         * value-prof.c (rtl_divmod_values_to_profile,
9043         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
9044         tree_mod_pow2_value_transform, tree_find_values_to_profile):
9045         Do not handle may_be_other and precise values of exponents at pow2
9046         profiler.
9047         (tree_mod_subtract_transform): Reflect that value field of
9048         histogram has changed meaning.
9049         (tree_divmod_values_to_profile): Record the values correctly.
9050         (tree_values_to_profile): Update comment.
9051         * value-prof.h (struct histogram_value_t): Remove pow2 data.
9052
9053 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
9054
9055         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
9056         (decl).
9057
9058 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
9059
9060         * config/i386/i386.md (length_immediate): Use gcc_assert or
9061         gcc_unreachable, as appropriate.
9062         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
9063         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
9064         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
9065         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
9066         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
9067         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
9068         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
9069         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
9070         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
9071         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
9072         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
9073         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
9074         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
9075         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
9076         *prefetch_sse_rex): Likewise.
9077         * config/i386/predicates.md (x86_64_immediate_operand,
9078         x86_64_zext_immediate_operand, symbolic_operand,
9079         no_seg_address_operand, aligned_operand,
9080         memory_displacement_operand): Likewise.
9081         * config/i386/sse.md (*mov<mode>_internal,
9082         *movv2df_internal): Likewise.
9083
9084 2005-04-22  Jan Hubicka  <jh@suse.cz>
9085
9086         * Makefile.in (ipa.o, ipa-inline.o): New files.
9087         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
9088         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
9089         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
9090         * cgraphunit.c (cgraph_default_inline_p,
9091         cgraph_decide_inlining_incrementally,  ncalls_inlined,
9092         nfunctions_inlined, initial_insns, overall_insns,
9093         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
9094         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9095         cgraph_mark_inline, cgraph_check_inline_limits,
9096         cgraph_default_inline_p, cgraph_recursive_inlining_p,
9097         update_callee_keys, lookup_recursive_calls,
9098         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
9099         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
9100         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
9101         pass_ipa_inline): Move to ipa-inline.c
9102         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
9103         * ipa.c: New file.
9104         * ipa-inline.c: New file.
9105
9106 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9107
9108         * doc/invoke.texi (SPARC options): Document that -mapp-regs
9109         is turned off by default on Solaris.
9110
9111 2005-04-21  Roger Sayle  <roger@eyesopen.com>
9112
9113         * c-common.h (objc_build_method_signature): Update prototype.
9114         * stub-objc.c (objc_build_method_signature): Update the stub
9115         implementation to accept and ignore additional parameter.
9116         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
9117         the value of ellipsis to objc_build_method_signature instead
9118         of setting TREE_OVERFLOW on the parms TREE_LIST node.
9119
9120 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
9121
9122         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
9123         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
9124         gen_rtx_* not gen_rtx_fmt_*.
9125         (rs6000_emit_vector_select): Likewise.
9126         (rs6000_emit_sync): New.
9127         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
9128         (larx, stcx, cmp): New mode substitutions.
9129         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
9130         UNSPEC_ISYNC): New constants.
9131         (rlwinm): Give name.
9132         (memory_barrier, isync, lwsync): New insns.
9133         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
9134         (sync_lock_release<mode>): New expander.
9135         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
9136         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
9137         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
9138         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
9139         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
9140         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
9141         (sync_add<mode>_internal, sync_addshort_internal,
9142         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
9143         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
9144         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
9145
9146         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
9147         is the memory before, not after, the operation.  Clarify
9148         barrier requirements.
9149
9150 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9151
9152         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
9153         * lambda.h (lambda_vector_min_nz): Likewise.
9154         * langhooks.h (struct lang_hooks_for_types,
9155         struct lang_hooks): Likewise.
9156         * output.h (assemble_integer, this_is_asm_operands): Likewise.
9157         * tree.h: Likewise.
9158         * vec.h: Likewise.
9159         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
9160
9161         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
9162         comments to avoid 'abort'.  Use gcc_assert as necessary.
9163         * opts.c (common_handle_option): Likewise.
9164         * pretty-print.c (pp_base_format_text): Likewise.
9165         * print-rtl.c (print_rtx): Likewise.
9166         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
9167         * regmove.c (try_auto_increment): Likewise.
9168         * reload.c (find_valid_class, find_reloads_toplev,
9169         find_equiv_reg): Likewise.
9170         * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
9171         merge_assigned_reloads): Likewise.
9172         * tree-inline.c (inline_forbidden_p_1,
9173         estimate_num_insns_1): Likewise.
9174         * tree-optimize.c (execute_todo): Likewise.
9175         * tree-outof-ssa.c (eliminate_phi): Likewise.
9176         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
9177         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
9178         * tree-ssa-operands.c (parse_ssa_operands,
9179         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
9180         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
9181         * tree-ssanames.c (release_ssa_name): Likewise.
9182         * tree.c (int_bit_position, int_byte_position, tree_low_cst,
9183         walk_tree): Likewise.
9184
9185         * tree-ssa-operands.c (verify_abort): Fold into ..
9186         (verify_imm_links): ... here.
9187
9188 2005-04-21  Richard Henderson  <rth@redhat.com>
9189
9190         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
9191         on non-memory operand for previous inversion.
9192
9193 2005-04-21  Devang Patel  <dpatel@apple.com>
9194
9195         PR optimization/20994
9196         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
9197         x = !(a == b) : p , q;.
9198         (pass_if_conversion): Verify stmts and flow.
9199
9200 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9201
9202         * optabs.c (gen_conditional_trap): Restore #define.
9203
9204         * alias.c (true_dependence): Remove 'abort' from comments. Use
9205         gcc_assert and gcc_unreachable as appropriate.
9206         (canon_true_dependence): Likewise.
9207         * bb-reorder.c (connect_traces): Likewise.
9208         * c-common.c (c_add_case_label): Likewise.
9209         * c-decl.c (finish_function): Likewise.
9210         * caller-save.c (insert_restore, insert_save): Likewise.
9211         * cfg.c (update_bb_profile_for_threading): Likewise.
9212         * cfganal.c (flow_active_insn_p): Likewise.
9213         * cfgexpand.c (add_reg_br_prob_note): Likewise.
9214         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
9215         cfg_layout_merge_blocks): Likewise.
9216         * ifcvt.c (cond_exec_process_insns, merge_if_block,
9217         find_if_block): Likewise.
9218         * integrate.c (allocate_initial_values): Likewise.
9219         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
9220         swap_condition, unsigned_condition, signed_condition,
9221         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
9222         reg_or_subregno): Likewise.
9223         * lambda-code.c (lambda_compute_auxillary_space,
9224         lambda_transform_legal_p): Likewise.
9225         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
9226         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
9227         lhd_incomplete_type_error, lhd_expand_expr,
9228         lhd_types_compatible_p, lhd_tree_size): Likewise.
9229         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
9230         * local-alloc.c (update_equiv_regs): Likewise.
9231         * loop-unroll.c (peel_loop_completely
9232         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
9233         peel_loop_simple, unroll_loop_stupid,
9234         analyze_iv_to_split_insn): Likewise.
9235         * loop.c (gen_prefetch, find_and_verify_loops,
9236         basic_induction_var): Likewise.
9237         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
9238         * value-prof.c (tree_find_values_to_profile): Likewise.
9239         * varasm.c (named_section, default_assemble_integer,
9240         decode_addr_const): Likewise.
9241
9242 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
9243            Fariborz Jahanian <fjahanian@apple.com>
9244
9245         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
9246         portion of argument passed in fpr.
9247         * expr.c (emit_push_insn): Fix computation of 'offset' used to
9248         decide on partial argument save on stack.
9249
9250 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
9251
9252         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
9253         comment typos.
9254
9255 2005-04-21  Jan Hubicka  <jh@suse.cz>
9256
9257         * cgraphunit.c: Include tree-pass.h
9258         (cgraph_decide_recursive_inlining,
9259         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
9260         cgraph_decide_inlining): Dump goes to dump_file.
9261         (cgraph_optimize): Call ipa passes instead of inliner.
9262         (cgraph_gate_inlining, pass_ipa_inline): New.
9263         * tree-optimize.c (all_ipa_passes): New static variable.
9264         (register_one_dump_file): Dead with IPA passes.
9265         (register_dump_files): Likewise.
9266         (init_tree_optimization_passes): Initialize IPA passes.
9267         (execute_todo): Do cgraph dump when asked to, do not dump function body
9268         for IPA pass.
9269         * tree-pass.h (TODO_dump_cgraph): New macro.
9270         (ipa_passes): Declare.
9271         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
9272
9273 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9274
9275         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
9276         gcc_assert instead of abort.
9277         (classify_argument, examine_argument, construct_container,
9278         contains_128bit_aligned_vector_p, ix86_check_movabs,
9279         standard_80387_constant_opcode, standard_80387_constant_rtx,
9280         ix86_initial_elimination_offset, ix86_compute_frame_layout,
9281         pro_epilogue_adjust_stack, ix86_expand_epilogue,
9282         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
9283         legitimize_tls_address, output_pic_addr_const,
9284         i386_output_dwarf_dtprel, put_condition_code, print_reg,
9285         get_some_local_dynamic_name, print_operand, print_operand_address,
9286         output_387_binary_op, emit_i387_cw_initialization,
9287         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
9288         ix86_expand_clear, ix86_expand_binary_operator,
9289         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
9290         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
9291         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
9292         ix86_expand_branch, ix86_expand_setcc,
9293         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
9294         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
9295         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
9296         memory_address_length, ix86_attr_length_immediate_default,
9297         ix86_attr_length_address_default, ix86_agi_dependant,
9298         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
9299         ix86_expand_binop_builtin, ix86_force_to_memory,
9300         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
9301         x86_emit_floatuns): Likewise.
9302         * config/i386/netware.c (gen_regparm_prefix,
9303         i386_nlm_strip_name_encoding): Likewise.
9304         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
9305
9306 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9307
9308         * optabs.c (gen_condiational_trap): Remove #define.
9309         (add_equal_note): Assertify. Remove explicit indirection from
9310         call via function pointer.
9311         (expand_ternary_op, expand_simple_binop, expand_binop,
9312         expand_twoval_unop, expand_twoval_binop,
9313         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
9314         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
9315         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
9316         prepare_float_lib_cmp, emit_conditional_move,
9317         emit_conditional_add, gen_add2_insn, gen_add3_insn,
9318         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
9319         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
9320         vector_compare_rtx, expand_vec_cond_expr): Likewise.
9321
9322 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9323
9324         * vec.h: Update API to separate allocation mechanism from type.
9325         (VEC_safe_grow): New.
9326         * vec.c (calculate_allocation): New.
9327         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
9328         (vec_gc_free, vec_heap_free): Remove.
9329         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
9330         (VEC): Likewise.
9331         (mangle_macro_name): New.
9332         (struct macro_def): New.
9333         (struct macro): Add multiple argument values.
9334         (macro_expans_end): New.
9335         (push_macro_expansion):  Chain on new macro. Process multiple
9336         args, create follow on expansion. Return follow on argument.
9337         (macro_input): Deal with multiple arguments.
9338
9339         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
9340         (struct tree_binfo): Adjust.
9341         * basic-block.h: Define VEC(edge,gc).
9342         (struct edge_def): Adjust.
9343         (struct basic_block_def, struct edge_iterator): Likewise.
9344         (ei_container, ei_start_1, ei_last_1): Likewise.
9345         * cfg.c (connect_src, connect_dest): Likewise.
9346         * cfgrtl.c (force_nonfallthru_and_redirect)
9347         * dbxout.c (dbxout_type)
9348         * dwarf2out.c (gen_member_die)
9349         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
9350         (gcc_tree_to_linear_expression): Adjust.
9351         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
9352         lbv_to_gcc_expression, lle_to_gcc_expression,
9353         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
9354         perfect_nestify): Likewise.
9355         * lambda.h (gcc_loopnest_to_lambda_loopnest,
9356         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
9357         * profile.c (instrument_values): Adjust.
9358         * tree-cfg.c (modified_noreturn_calls): Adjust.
9359         (remove_fallthru_edge): Likewise.
9360         * tree-dump.c (dequeue_and_dump): Adjust.
9361         * tree-flow-inline.h (mark_stmt_modified): Adjust.
9362         * tree-flow.h (modified_noreturn_calls): Adjust.
9363         (tree_on_heap): Remove. (yay!)
9364         (register_new_def): Adjust.
9365         * tree-into-ssa.c: Define VEC(int,heap).
9366         (block_defs_stack): Adjust.
9367         (find_idf, insert_phi_nodes, register_new_def,
9368         rewrite_initialize_block, rewrite_finalize_block,
9369         register_new_update_single, rewrite_update_init_block,
9370         rewrite_update_fini_block, rewrite_blocks,
9371         ssa_rewrite_finalize_block, ssa_register_new_def,
9372         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
9373         * tree-loop-linear.c (linear_transform_loops): Adjust.
9374         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
9375         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
9376         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
9377         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
9378         vrp_variables_stack): Adjust declarations.
9379         (tree_ssa_dominator_optimize): Adjust.
9380         (dom_opt_initialize_block, remove_local_expressions_from_table,
9381         restore_nonzero_vars_to_original_value,
9382         restore_vars_to_original_value,
9383         restore_currdefs_to_original_value, dom_opt_finalize_block,
9384         record_var_is_nonzero, record_cond, record_const_or_copy_1,
9385         optimize_stmt, update_rhs_and_lookup_avail_expr,
9386         lookup_avail_expr, record_range): Likewise.
9387         * tree-ssa-pre.c: Define VEC(basic_block,heap).
9388         (compute_antic_aux): Adjust.
9389         (inserted_exprs, create_expression_by_pieces,
9390         insert_into_preds_of_block, eliminate, mark_operand_necessary,
9391         remove_dead_inserted_code, fini_pre): Likewise.
9392         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
9393         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
9394         ssa_prop_init): Likewise.
9395         * tree-ssa.c: Define VEC(bitmap,heap).
9396         (verify_name_tags): Adjust.
9397         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
9398         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
9399         tree_divmod_values_to_profile, tree_find_values_to_profile,
9400         value_profile_transformations): Likewise.
9401         * value-prof.h: Define VEC(histogram_value,heap).
9402         * varasm.c: Remove alias_pair pointer typedef, define
9403         VEC(alias_pair,gc).
9404         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
9405
9406         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
9407         not a pointer to it.  Create an object vector.
9408         (extern_symbols): Turn into an object vector.
9409         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
9410
9411 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
9412
9413         PR/20742
9414         * Makefile.in (tree-chrec.o): Depend on params.h.
9415         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
9416         default value 20.
9417         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
9418         and fold build with fold_buildN.
9419         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
9420         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
9421         (tree_contains_chrecs): Compute an estimation of the size of the
9422         given expression.
9423         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
9424         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
9425         * tree-scalar-evolution.c (simple_iv): Ditto.
9426         * doc/invoke.texi (scev-max-expr-size): Documented.
9427
9428 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
9429
9430         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
9431         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
9432         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
9433         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
9434         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
9435         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
9436         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
9437         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
9438         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
9439         (darwin_fix_and_continue_switch): Delete.
9440         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
9441         (SUBTARGET_SWITCHES): Delete.
9442         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
9443         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
9444         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
9445         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
9446         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
9447         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
9448         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
9449         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
9450         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
9451         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
9452         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
9453         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
9454         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
9455         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
9456         (TARGET_64BIT): Undef before redefining.
9457         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
9458         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
9459         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
9460         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
9461         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
9462         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
9463         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
9464         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
9465         (ix86_debug_arg_string, ix86_debug_addr_string)
9466         (ix86_align_loops_string, ix86_align_jumps_string)
9467         (ix86_align_funcs_string): Delete.
9468         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
9469         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
9470         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
9471         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
9472         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
9473         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
9474         (SUBTARGET_SWITCHES): Delete.
9475         * config/i386/i386.c (ix86_debug_arg_string): Delete.
9476         (ix86_debug_addr_string): Delete.
9477         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
9478         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
9479         (ix86_align_loops_string, ix86_align_jumps_string)
9480         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
9481         (ix86_align_funcs_string): Make static.
9482         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9483         (ix86_handle_option): New function.
9484         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
9485         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
9486         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
9487         of darwin_fix_and_continue_switch.
9488         (darwin_one_byte_bool): Delete.
9489         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
9490         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
9491         to darwin_one_byte_bool.
9492         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
9493         * config/i386/djgpp.opt, config/i386/i386.opt,
9494         * config/i386/sco5.opt: New files.
9495
9496 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
9497
9498         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
9499         fp_zero_operand, fp_register_operand, intreg_operand,
9500         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
9501         call_operand, call_operand_address, tgd_symbolic_operand,
9502         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
9503         symbolic_operand, symbolic_memory_operand, label_ref_operand,
9504         sp64_medium_pic_operand, data_segment_operand,
9505         text_segment_operand, splittable_symbolic_memory_operand,
9506         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
9507         eq_or_neq, normal_comp_operator, noov_compare_op,
9508         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
9509         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
9510         const64_operand, const64_high_operand, arith11_operand,
9511         arith10_operand, arith_double_operand, arith_double_4096_operand,
9512         arith_double_add_operand, arith11_double_operand,
9513         arith10_double_operand, small_int, small_int_or_double,
9514         uns_small_int, uns_arith_operand, clobbered_register,
9515         input_operand, compare_operand): Delete.
9516         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
9517         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
9518         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
9519         (GEN_HIGHINT64, GEN_INT64): Delete.
9520         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
9521         gen_safe_XOR64): Adjust for above deletion.
9522         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
9523         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
9524         (legitimate_constant_p): Use const_zero_operand instead.
9525         (sparc_extra_constraint_check): Likewise.
9526         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
9527         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
9528         (PREDICATE_CODES): Delete.
9529         * config/sparc/sparc.md: Include predicates.md.
9530         (All patterns): Adjust for new predicate names.
9531         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
9532         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
9533         (movdi): Use general_operand predicate.
9534         (movdi_sp64_dbl): Delete.
9535         (movdi_const64_special): Add 'N' constraint.
9536         (movdicc): Use arith10_operand predicate.
9537         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
9538         (movdi_cc_reg_sp64): Use arith10_operand predicate.
9539         (movdi_cc_reg_sp64_trunc): Delete.
9540         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
9541         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
9542         (subdi3_sp32): Delete.
9543         (subdi3_insn_sp32): Change to define_insn_and_split.
9544         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
9545         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
9546         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
9547         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
9548         small_int_operand predicate.
9549         (divdi3, udivdi3): Use arith_operand predicate.
9550         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
9551         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
9552         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
9553         (xordi3_sp64_dbl): Delete.
9554         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
9555         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
9556         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
9557         cmp_ccx_set_not): Use arith_operand predicate.
9558         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
9559         * config/sparc/predicates.md: New file.
9560
9561 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
9562
9563         PR tree-optimization/14846
9564         * fold-const.c (fold_single_bit_test_into_sign_test): New,
9565         split out from ...
9566         (fold_single_bit_test): ... here.
9567         (fold_binary): Call fold_single_bit_test_into_sign_test
9568         instead of fold_single_bit_test.
9569
9570 2005-04-20  James E Wilson  <wilson@specifixinc.com>
9571
9572         PR c++/20805
9573         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
9574         is another declaration.
9575
9576 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
9577
9578         * config/cris/predicates.md: New file.
9579         * config/cris/cris-protos.h (cris_store_multiple_op_p)
9580         (cris_movem_load_rest_p): Declare.
9581         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
9582         (cris_movem_load_rest_p): Ditto.  Globalize.
9583         (cris_bdap_operand, cris_bdap_biap_operand,
9584         cris_orthogonal_operator, cris_commutative_orth_op,
9585         cris_operand_extend_operator,
9586         cris_additive_operand_extend_operator, cris_extend_operator,
9587         cris_plus_or_bound_operator, cris_mem_op,
9588         cris_general_operand_or_symbol,
9589         cris_general_operand_or_gotless_symbol,
9590         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
9591         cris_load_multiple_op): Remove predicate functions.
9592         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
9593         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
9594         * config/cris/cris.h (PREDICATE_CODES): Don't define.
9595         * config/cris/cris.md: Include predicates.md.
9596         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
9597
9598 2005-04-20  Ian Lance Taylor  <ian@airs.com>
9599
9600         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
9601         * c-common.h (STMT_EXPR_STMT): Don't define.
9602         (STMT_EXPR_NO_SCOPE): Don't define.
9603         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
9604         * c-pretty-print.c (pp_c_primary_expression): Likewise.
9605         (pp_c_expression): Likewise.
9606
9607 2005-04-20  Richard Henderson  <rth@redhat.com>
9608
9609         PR target/21100
9610         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
9611
9612 2005-04-20  Jeff Law  <law@redhat.com>
9613
9614         * reload1.c (reload): Ignore equivalences between pseudos and
9615         read only memory.
9616
9617 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
9618
9619         PR c/12913
9620         * c-tree.h (struct c_label_list): Update comment.
9621         (struct c_label_context): Rename to struct c_label_context_se.
9622         (label_context_stack): Rename to label_context_stack_se.
9623         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
9624         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
9625         c_end_vm_scope): New.
9626         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
9627         * c-decl.c (pop_scope): Call c_end_vm_scope.
9628         (pushdecl): Call c_begin_vm_scope for variably modified
9629         declarations.
9630         (define_label): Check for jumping into scope of identifier with
9631         variably modified type.  Push label on stack for those defined at
9632         current context of identifiers with variably modified type.
9633         (start_function): Create stack level for context of identifiers
9634         with variably modified type.
9635         (finish_function): Pop stack level for context of identifiers with
9636         variably modified type.
9637         * c-typeck.c (label_context_stack): Rename to
9638         label_context_stack_se.
9639         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
9640         (c_finish_goto_label): Check for jumping into scope of identifier
9641         with variably modified type.  Push label on stack for those jumped
9642         to from current context of identifiers with variably modified
9643         type.
9644         (struct c_switch): Add blocked_vm.
9645         (c_start_case): Initialize blocked_vm.
9646         (do_case): Check blocked_vm.
9647         (c_finish_case): Add comment.
9648         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
9649         variable label_context_stack.
9650
9651 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
9652
9653         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
9654         conditional_replacement, value_replacement, abs_replacement,
9655         minmax_replacement.
9656         (replace_phi_edge_with_variable): Remove argument BB.
9657         (conditional_replacement, value_replacement,
9658         minmax_replacement, abs_replacement): Remove argument PHI_BB.
9659         Update a call to replace_phi_edge_with_variable.
9660
9661         * tree-ssa-phiopt.c: Fix comments.
9662
9663 2005-04-20  Michael Matz  <matz@suse.de>
9664
9665         PR20973
9666         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
9667         pseudos.
9668
9669 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
9670
9671         * tree-ssa-phiopt.c: Fix comment typos.
9672
9673         PR tree-optimization/21116
9674         * tree-ssa-phiopt.c: Fix a typo.
9675
9676 2005-04-19  Richard Henderson  <rth@redhat.com>
9677
9678         * builtins.c (expand_builtin_sync_operation): Revert last change.
9679         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
9680         not vs new value.
9681         (expand_compare_and_swap_loop): Likewise.
9682         (expand_sync_operation): Remove fallback from NAND to AND; invert
9683         memory operand when expanding from cmpxchg.
9684         (expand_sync_fetch_operation): Likewise.
9685         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
9686         compare-and-swap.
9687
9688         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
9689         when implementing NAND.  Fix double-add for AFTER.
9690         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
9691         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
9692         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
9693         memory value.
9694         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
9695         memory barrier.
9696
9697         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
9698         to return old memory value.
9699         (sync_compare_and_swap_cc<IMODE>): Likewise.
9700
9701         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
9702         return pre-reload.  Don't consider output or anti dependencies.
9703         * config/ia64/sync.md (IMODE): New.
9704         (modesuffix): Add QI and HI.
9705         (memory_barrier): Simplify expansion.
9706         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
9707         (cmpxchg_acq_<IMODE>): Likewise.
9708         (sync_lock_test_and_set<IMODE>): Likewise.
9709         (sync_lock_release<IMODE>): Likewise.
9710
9711 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
9712
9713         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
9714         ~X or ~Y simplify.
9715
9716 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
9717
9718         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
9719
9720 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
9721             Joseph S. Myers  <joseph@codesourcery.com>
9722
9723         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
9724         * c-typeck.c (build_c_cast): Check these options.
9725         * doc/invoke.texi: Document these options.
9726
9727 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
9728
9729         * tree-ssa-phiopt.c: Update a comment about the pass.
9730
9731 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
9732
9733         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
9734         config/mcore/mcore.c: Fix comment typos.
9735
9736 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
9737
9738         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
9739         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
9740
9741 2005-04-19  Paul Brook  <paul@codesourcery.com>
9742
9743         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
9744
9745 2005-04-19  Andrew Haley  <aph@redhat.com>
9746
9747         PR java/21022
9748         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
9749         looking at a field's bitpos.
9750
9751 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9752
9753         * system.h (fopen, fdopen, freopen): Define these to the unlocked
9754         libiberty functions.
9755
9756 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
9757
9758         PR tree-optimization/21096
9759         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
9760
9761 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
9762
9763         PR target/21098
9764         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
9765         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
9766
9767 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
9768
9769         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
9770         refers to the function being dumped.
9771
9772 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
9773
9774         * varasm.c (assemble_start_function): Remove reset of in_section.
9775
9776 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
9777
9778         PR tree-optimization/21085
9779         * fold-const (fold_binary): Don't change X % -C to X % C if C has
9780         overflowed.
9781
9782 2005-04-19  Ben Elliston  <bje@au.ibm.com>
9783
9784         * doc/invoke.texi (Optimize Options): Refer to the correct
9785         optimisation flag -ftree-dominator-opts, not -ftree-dom.
9786
9787 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
9788
9789         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
9790         alloca argument to be big enough.
9791
9792 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
9793
9794         PR middle-end/21049
9795         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
9796         cfun->cfg are NULL.
9797
9798 2005-04-18  Tom Tromey  <tromey@redhat.com>
9799
9800         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
9801         typo.
9802
9803 2005-04-18  Richard Henderson  <rth@redhat.com>
9804
9805         * config/alpha/alpha.c (alpha_split_atomic_op): New.
9806         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
9807         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
9808         * config/alpha/alpha-protos.h: Update.
9809         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
9810         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
9811         (attr type): Add ld_l, st_c, mb.
9812         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
9813         iornotsi3, xorsi_internal, xornotsi3): New.
9814         * config/alpha/ev4.md (ev4_ld): Add ld_l.
9815         (ev4_ist_c, ev4_mb): New.
9816         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
9817         (ev5_ld_l): New.
9818         * config/alpha/ev6.md (ev6_ild): Add ld_l.
9819         (ev6_ist): Add st_c.
9820         (ev6_mb): New.
9821         * config/alpha/sync.md: New file.
9822
9823 2005-04-18  Richard Henderson  <rth@redhat.com>
9824
9825         * builtins.c (expand_builtin_sync_operation): Fold nand to and
9826         for constants.
9827
9828         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
9829
9830 2005-04-18  Devang Patel  <dpatel@apple.com>
9831
9832         * config/rs6000/atlivec.md (mulv4si3): New pattern.
9833
9834 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
9835
9836         PR tree-optimization/20922
9837         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
9838         Fold X + c >= X and fold X - c <= X to true.
9839
9840 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
9841
9842         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
9843         unsigned int.
9844         (emergency_labeled_state_free): Likewise.
9845
9846 2005-04-18  Nick Clifton  <nickc@redhat.com>
9847
9848         * config/h8300/h8300.md (jump): Remove prescan parameter from
9849         calls to final_scan_insn.
9850
9851         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
9852         parameter from calls to final_scan_insn.
9853
9854         * config.gcc (m68hc12): Use the m68hc11.opt file for target
9855         specific options.
9856         (v850e, v850e1): Use the v850.opt file for target specific
9857         options.
9858
9859 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
9860
9861         PR tree-optimization/21001
9862         * tree-optimize.c (init_tree_optimization_passes): Move the
9863         first pass_forwprop immediately before pass_vrp.
9864
9865 2005-04-17  Ian Lance Taylor  <ian@airs.com>
9866
9867         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
9868         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
9869         from enum tree_code op to bool is_sizeof.
9870         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
9871         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
9872         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
9873         case.
9874         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
9875         cases.
9876         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
9877         ALIGNOF_EXPR cases.
9878
9879 2005-04-17  Ian Lance Taylor  <ian@airs.com>
9880
9881         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
9882
9883 2005-04-17  Richard Henderson  <rth@redhat.com>
9884
9885         * config/alpha/alpha.c (va_list_skip_additions): Only define if
9886         TARGET_ABI_OSF.
9887         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
9888         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
9889         of indirection through ssa names while looking for the gpr counter
9890         field.
9891         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
9892         saved va_list_gpr_size and va_list_fpr_size.
9893
9894 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
9895
9896         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
9897         both pointers or both integers.
9898
9899         * tree-vrp.c (maybe_add_assert_expr): Don't assert
9900         ASSERT_EXPRs for single-use variable.
9901
9902         * tree-into-ssa.c: Fix a comment typo.
9903
9904 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
9905
9906         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
9907         -mipsN before forcing a default of -mips2.
9908
9909 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
9910
9911         * predict.h (IS_TAKEN): Remove.
9912         * rtl.h (NOTE_PREDICTION): Likewise.
9913
9914         * modulo-sched.c (CFG_HOOKS): Remove.
9915
9916         * c-parser.c (N_C_TTYPES): Remove.
9917
9918         * tree-flow-inline.h (get_stmt_operands): Remove.
9919         * lambda-code.c, tree-ssa-loop-unswitch.c,
9920         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
9921         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
9922         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
9923         calls to get_stmt_operands.
9924         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
9925
9926 2005-04-17  Richard Henderson  <rth@redhat.com>
9927
9928         PR target/20375
9929         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
9930         of CUMULATIVE_ARGS past the last named argument.
9931         (alpha_va_start): Expect pretend_args_size only if strictly less than
9932         6 named arguments.
9933
9934 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
9935
9936         PR middle-end/21024
9937         * builtins.c (expand_builtin_strcat): Convert the result of
9938         strlen to the right type.
9939         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
9940         avoid creating type mismatches.
9941         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
9942         type mismatches.
9943
9944         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
9945
9946 2005-04-16  Richard Henderson  <rth@redhat.com>
9947
9948         PR target/21051
9949         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
9950         Use the mode of boolean_type_node when the user doesn't provide one.
9951         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
9952
9953 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
9954
9955         PR target/20126
9956         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
9957         (const)).
9958
9959         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
9960         comment.
9961
9962 2005-04-16  Roger Sayle  <roger@eyesopen.com>
9963             Steven Bosscher  <stevenb@suse.de>
9964
9965         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
9966         (fold_unary_to_constant): Likewise.
9967
9968 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
9969
9970         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
9971         PROP_ASM_SCAN.
9972
9973 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
9974
9975         * doc/install.texi (Specific): Avoid using asterisks in @anchor
9976         names related to target triplets.
9977         Remove i?86-*-esix from platform directory.
9978         Remove powerpc-*-eabiaix from platform directory.
9979
9980 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
9981
9982         PR middle-end/20491
9983         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
9984         falling through from SUBREG case to REG.
9985
9986 2005-04-15  Roger Sayle  <roger@eyesopen.com>
9987
9988         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
9989         (fold_binary): Update comment mentioning fold_relational_hi_lo.
9990         (fold_binary_to_constant): Simplify using fold_binary.
9991         (fold_unary_to_constant): Likewise, simplify using fold_unary.
9992
9993 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9994
9995         * gthr-posix.c (pthread_cancel): Define.
9996         (pthread_mutexattr_init): Likewise.
9997         (pthread_mutexattr_settype): Likewise.
9998         (pthread_mutexattr_destroy): Likewise.
9999
10000 2005-04-15  David S. Miller  <davem@davemloft.net>
10001
10002         PR target/20673
10003         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
10004
10005 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10006
10007         PR tree-optimization/21031
10008         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
10009         (forward_propagate_into_cond_1): Call it.  Forward propagate
10010         integer-integer casts into COND_EXPRs.
10011
10012 2005-04-15  Dave Korn  <dave.korn@artimi.com>
10013
10014         * gcc.c (default_compilers): Clarify obscure error message when
10015         reading from standard input.
10016
10017 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10018
10019         * basic-block.h (PROP_EQUAL_NOTES): Remove.
10020         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
10021
10022         * tree-ssa-alias.c (init_alias_info): Remove a call to
10023         get_stmt_operands.
10024
10025 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
10026
10027         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
10028         of non-virtual PHI nodes like we use to.
10029
10030 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
10031
10032         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
10033         (attr_copy_rtx): Do not use it.
10034
10035 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
10036
10037         * doc/tree-ssa.texi: Grammer/abbreviation updates.
10038
10039 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
10040
10041         * tree-vect-transform.c (vectorizable_store): Mark necessary
10042         objects in the vectorized store needing renaming.  Update the
10043         SSA graph for V_MAY_DEF operands in the original store.
10044
10045 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
10046
10047         * tree-ssa-pre.c (compute_avail): It's okay to have
10048         TREE_INVARIANT's here, and value number the resulting expressions.
10049         (create_expression_by_pieces): Make sure operands that were
10050         min_invariant when we started, stay that way.
10051
10052 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
10053
10054         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
10055
10056 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10057
10058         PR tree-optimization/20936.
10059         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
10060
10061 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10062
10063         * doc/invoke.texi: Fix typos.
10064         * doc/md.texi: Likewise.
10065         * doc/rtl.texi: Likewise.
10066         * doc/sourcebuild.texi: Likewise.
10067         * doc/tm.texi: Likewise.
10068
10069 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
10070
10071         PR tree-optimization/21004
10072         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
10073         and floorl in c99 mode only.
10074         * builtins.c (expand_builtin_int_roundingfn): Assert that
10075         fallback_fndecl is not NULL_TREE.
10076
10077 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10078
10079         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
10080         * basic-block.h: Update the prototype for
10081         purge_all_dead_edges.
10082         * cfgexpand.c (tree_expand_cfg): Update a call to
10083         purge_all_dead_edges.
10084         * combine.c (combine_instructions): Likewise.
10085         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
10086         rest_of_handle_cse2, rest_of_handle_gcse,
10087         rest_of_handle_postreload): likewise.
10088
10089 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
10090
10091         PR middle-end/20739
10092         * gimplify.c (gimplify_addr_expr): Compensate for removal of
10093         e.g. cv-qualification conversions.
10094
10095 2005-04-14  Mike Stump  <mrs@apple.com>
10096
10097         * config/darwin-c.c (framework_construct_pathname): We must
10098         find all headers of a framework in the first instance of it
10099         found in the seach path.
10100
10101 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
10102
10103         PR tree-optimization/21021
10104         * tree-vrp.c (compare_values): Work around a bug in the front
10105         end that produces a comparison of mismatched types.
10106
10107 2004-04-14  Richard Henderson  <rth@redhat.com>
10108
10109         * config/ia64/ia64.h (enum fetchop_code): Remove.
10110         (enum ia64_builtins): Move ...
10111         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
10112         members except BSP and FLUSHRS.
10113         (ia64_init_builtins): Remove __sync builtins.
10114         (ia64_expand_builtin): Likewise.
10115         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
10116         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
10117         (ia64_expand_lock_release): Remove.
10118         * config/ia64/ia64.md (mf): Move to sync.md.
10119         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
10120         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
10121         * config/ia64/sync.md: New file.
10122         (memory_barrier): Rename from mf.
10123         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
10124         (cmpxchg_acq_<I48MODE>): Likewise.
10125         (sync_lock_test_and_set<I48MODE>): Likewise.
10126
10127         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
10128         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
10129
10130 2004-04-14  Richard Henderson  <rth@redhat.com>
10131
10132         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
10133         (ix86_compare_emitted): New.
10134         (ix86_expand_compare): Use ix86_compare_emitted if set.
10135         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
10136         and ix86_compare_op0 are set.
10137         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
10138         (TARGET_CMPXCHG, TARGET_XADD): New.
10139         (ix86_compare_emitted): Declare.
10140         * config/i386/i386.md: Include sync.md
10141         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
10142         (UNSPECV_XCHG, UNSPECV_LOCK): New.
10143         * config/i386/sync.md: New file.
10144
10145 2004-04-14  Richard Henderson  <rth@redhat.com>
10146
10147         PR middle-end/14311
10148         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
10149         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
10150         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
10151         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
10152         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
10153         BT_FN_I8_VPTR_I8_I8): New.
10154         * builtins.def (DEF_SYNC_BUILTIN): New.
10155         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
10156         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
10157         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
10158         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
10159         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
10160         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
10161         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
10162         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
10163         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
10164         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
10165         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
10166         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
10167         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
10168         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
10169         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
10170         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
10171         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
10172         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
10173         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
10174         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
10175         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
10176         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
10177         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
10178         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
10179         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
10180         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
10181         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
10182         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
10183         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
10184         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
10185         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
10186         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
10187         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
10188         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
10189         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
10190         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
10191         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
10192         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
10193         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
10194         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
10195         BUILT_IN_SYNCHRONIZE: New.
10196         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
10197         as a function.  Accept __sync_ as a prefix as well.
10198         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
10199         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
10200         expand_builtin_lock_release): New.
10201         (expand_builtin): Call them.
10202         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
10203         neither BOTH_P nor FALLBACK_P are defined.
10204         (builtin_type_for_size): New.
10205         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
10206         (resolve_overloaded_builtin): New.
10207         * c-common.h (resolve_overloaded_builtin): Declare.
10208         (builtin_type_for_size): Declare.
10209         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
10210         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
10211         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
10212         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
10213         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
10214         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
10215         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
10216         sync_compare_and_swap_cc, sync_lock_test_and_set,
10217         sync_lock_release): New.
10218         * optabs.h: Declare them.
10219         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
10220         expand_sync_operation, expand_sync_fetch_operation,
10221         expand_sync_lock_test_and_set): Declare.
10222         * genopinit.c (optabs): Add sync optabs.
10223         * optabs.c (init_optabs): Initialize sync optabs.
10224         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
10225         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
10226         expand_sync_operation, expand_sync_fetch_operation,
10227         expand_sync_lock_test_and_set): New.
10228         * doc/extend.texi (Atomic Builtins): New section
10229         * doc/md.texi (Standard Names): Add sync patterns.
10230
10231 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
10232
10233         * tree-eh.c (lower_try_finally_copy): Generate new code in
10234         response to goto_queue entries as if the queue was sorted by
10235         index, not pointers.
10236         (lower_try_finally_switch): Likewise.
10237
10238 2005-04-14  Richard Henderson  <rth@redhat.com>
10239
10240         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
10241         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
10242         register.
10243         (ix86_expand_fp_movcc): Update to match.
10244         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
10245         * config/i386/i386-protos.h: Update.
10246         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
10247         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
10248
10249 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
10250
10251         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
10252         refer to 4.0.
10253
10254 2005-04-14  Julian Brown  <julian@codesourcery.com>
10255
10256         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
10257         link failures on ppc64 Linux.
10258
10259 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10260
10261         * config.gcc: Set cpu_type for s390.
10262
10263 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
10264
10265         Fix PR tree-optimization/20963
10266         * tree-ssa-pre.c (compute_avail): Remove special case for
10267         TREE_INVARIANT.
10268         (create_expression_by_pieces): Add value numbers for forced out
10269         statements.
10270
10271 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
10272
10273         * config/cris/cris.md: Replace references to (reg:SI 16) with
10274         (reg:SI CRIS_SRP_REGNUM).
10275
10276 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
10277
10278         PR tree-optimization/20657
10279         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
10280         create an appropriate range from it.
10281
10282 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
10283
10284         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
10285         <UNSPEC_FIST_CEIL> case.
10286
10287         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
10288         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
10289         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
10290         to implement lfloor and llfloor built-ins as x87 intrinsic function.
10291         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
10292         (lfloor<mode>2): New expanders.
10293         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
10294         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
10295         to implement lceil and llceil built-ins as x87 intrinsic function.
10296         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
10297         (lceil<mode>2): New expanders.
10298
10299 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
10300
10301         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
10302         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
10303
10304 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
10305
10306         PR target/20927
10307         * config/s390/s390-modes.def: Define TFmode.
10308
10309 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
10310
10311         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
10312         (JUMP_TABLES_IN_TEXT_SECTION): Define.
10313         * config/mips/mips.c (mips16_insn_length): Remove reference to
10314         JUMP_TABLES_IN_TEXT_SECTION.
10315
10316 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
10317
10318         * simplify-rtx.c (simplify_binary_operation_1): Return
10319         scalar or vector of constant 0, depending on the xor's
10320         mode.
10321
10322 2005-04-13  Dale Johannesen  <dalej@apple.com>
10323
10324         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
10325         (objc-act.o):  Ditto.
10326         * objc/objc-act.c (objc_gimplify_expr):  New.
10327         (objc_get_callee_fndecl):  New.
10328         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
10329         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
10330         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
10331
10332 2005-04-13  Devang Patel  <dpatel@apple.com>
10333
10334         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
10335         temp variables.
10336
10337 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
10338
10339         CRIS prologue as RTL.
10340         * config/cris/cris-protos.h (cris_emit_movem_store)
10341         (cris_expand_prologue): Prototype.
10342         * config/cris/cris.c (struct machine_function): New member
10343         stdarg_regs.
10344         (cfa_label_num, cris_target_asm_function_prologue): Remove.
10345         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
10346         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
10347         (cris_load_multiple_op, cris_return_address_on_stack)
10348         (cris_return_address_on_stack_for_return): ISO-Cify.
10349         (cris_store_multiple_op): New predicate function.
10350         (cris_expand_prologue, cris_emit_movem_store): New functions.
10351         (cris_print_operand) <case 'O'>: Handle modifications other than
10352         post-increment.
10353         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
10354         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
10355         (cris_gen_movem_load): Rearrange slightly to make local variable
10356         src a parameter, removing osrc.
10357         (cris_setup_incoming_varargs): Set machine_function member
10358         stdarg_regs to correspond to the number of registers that need to
10359         be saved.
10360         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
10361         CRIS_UNSPEC_GOT.
10362         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
10363         cris_general_operand_or_gotless_symbol accept UNSPEC.
10364         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
10365         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
10366         ("*cris_store_multiple"): New pattern.  Tweak common comment above
10367         this and "*cris_load_multiple".
10368         ("prologue"): New define_expand.
10369
10370         * config/cris/cris.md ("epilogue"): Conditionalize on
10371         TARGET_PROLOGUE_EPILOGUE.
10372
10373 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
10374
10375         PR target/20924
10376         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
10377         fpsr 0 instead of fpsr 1.
10378         (divsf3_internal_thr): Ditto.
10379         (divdf3_internal_lat): Ditto.
10380         (divdf3_internal_thr): Ditto.
10381         (divxf3_internal_lat): Ditto.
10382         (divxf3_internal_thr): Ditto.
10383
10384 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
10385
10386         PR tree-optimization/20913
10387         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
10388
10389         PR tree-optimization/20702
10390         * tree-vrp.c (maybe_add_assert_expr): Recurse into
10391         dominator children that haven't been walked into.
10392
10393 2005-04-13  Julian Brown  <julian@codesourcery.com>
10394
10395         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
10396         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
10397         is true.
10398
10399 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
10400
10401         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
10402         config/i386/sse.md: Fix comment typos.
10403
10404         * genattrtab.c (NULL_ATTR): Remove.
10405         * ifcvt.c (NULL_EDGE): Likewise.
10406
10407         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
10408
10409         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
10410         NOTE_PREDICT): Remove.
10411
10412 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10413
10414         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
10415         * configure: Regenerate.
10416         * config.in: Likewise.
10417         * system.h: Declare vsnprintf if not already declared.
10418
10419 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10420
10421         * optc-gen.awk: Handle stand-alone Mask records.
10422         * opth-gen.awk: Likewise.
10423         * doc/options.texi (Option file format): Document them.
10424         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
10425         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
10426         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
10427         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
10428         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
10429         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
10430         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
10431         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
10432         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
10433         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
10434         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
10435         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
10436         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
10437         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
10438         TARGET_LONG_DOUBLE_128): Likewise.
10439         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
10440         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
10441         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
10442         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
10443         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
10444         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
10445         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
10446         * config/sparc/sparc.c (fpu_option_set): New global.
10447         (sparc_handle_option): New function.
10448         (sparc_override_options): Test fpu_option_set.
10449         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
10450         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
10451         * config/sparc/sparc.opt: New file.
10452         * config/sparc/little-endian.opt: Likewise.
10453         * config/sparc/long-double-switch.opt: Likewise.
10454
10455 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10456
10457         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
10458         (bfin_handle_options): Set it if -mshared-library-id= is seen.
10459         * config/bfin/bfin.opt (mshared-library-id=): Lose
10460         Var(bfin_lib_id_given).
10461
10462 2005-04-13  Matt Thomas  <matt@3am-software.com>
10463
10464         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
10465         defining.
10466
10467 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
10468
10469         * rtl.h (CLEAR_RTX_FLAGS): Remove.
10470
10471         * cgraphunit.c (INSNS_PER_CALL): Remove.
10472
10473         * tree-ssa-forwprop.c (vars,
10474         record_single_argument_cond_exprs,
10475         substitute_single_use_vars): Remove.
10476         (forward_propagate_into_cond_1, forward_propagate_into_cond):
10477         New.
10478         (tree_ssa_forward_propagate_single_use_vars): Call
10479         forward_propagate_into_cond for each COND_EXPR.
10480
10481         * tree-inline.c (INSNS_PER_STMT): Remove.
10482
10483 2005-04-12  Richard Henderson  <rth@redhat.com>
10484
10485         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
10486         (ix86_expand_sse_fp_minmax): ... from ...
10487         (ix86_expand_fp_movcc): ... here.
10488         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
10489         * config/i386/i386-protos.h: Update.
10490         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
10491         (sse_setccsf, sse_setccdf): Allow before reload.
10492         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
10493         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
10494         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
10495         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
10496         (anddf3, nanddf3, iordf3, xordf3): New.
10497
10498 2005-04-12  Jeff Law  <law@redhat.com>
10499
10500         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
10501         (tree-ssa-uncprop.o): Add dependencies.
10502         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
10503         * tree-flow.h (remove_useless_stmts): Remove prototype.
10504         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
10505         remove_useless_stmts.
10506         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
10507         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
10508         * tree-pass.h (pass_uncprop): Declare.
10509         * tree-ssa-uncprop.c: New file.
10510
10511 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
10512
10513         PR target/20670
10514         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
10515
10516 2005-04-12  Caroline Tice  <ctice@apple.com>
10517
10518         Temporary fix for partitioning problems.
10519         * passes.c (rest_of_handle_final): Remove code that
10520         frees unlikely_text_section_name,
10521         * varasm.c (assemble_start_function): Test for partitioning
10522         flag before writing out section labels.
10523         (assemble_end_function): Test for partitioning flag before
10524         writing out section labels.
10525
10526 2005-04-12  Steven Bosscher  <stevenb@suse.de>
10527             Stuart Hastings <stuart@apple.com>
10528             Jan Hubicka  <jh@suse.cz>
10529
10530         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
10531         references to gt-tree-cfg.h.
10532         * basic-block.h (struct basic_block_def): Don't skip rbi
10533         for garbage collection.
10534         (struct reorder_block_def): Make GTY-able.
10535         (struct control_flow_graph): New structure.
10536         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
10537         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
10538         but instead defines to the control_flow_graph for cfun.
10539         (label_to_block_map): New define, points to the label map of
10540         the control_flow_graph for cfun.
10541         (n_edges_for_function, n_basic_blocks_for_function,
10542         last_basic_block_for_function, basic_block_info_for_function,
10543         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
10544         basic_block_info_for_function, label_to_block_map_for_function):
10545         Counterparts for the above, taking a struct function as an extra
10546         argument.
10547         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
10548         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
10549         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
10550         (alloc_rbi_pool, free_rbi_pool): Remove.
10551         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
10552         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
10553         here...
10554         (cfg_layout_finalize) ... and don't free it here.
10555         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
10556         garbage collected.
10557         * flow.c (free_basic_block_vars): Set label_to_block_map and
10558         n_edges to zero too.
10559         * function.h (struct function): Add cfg field.
10560         * function.c (allocate_struct_function): Allocate the cfg.
10561         * tree-cfg.c (label_to_block_map): Remove.
10562         (build_tree_cfg): Don't allocate the rbi pool here...
10563         (delete_tree_cfg_annotations): ...and don't free it here.
10564         Also don't nullify label_to_block_map for cfun.
10565
10566 2005-04-12  Caroline Tice  <ctice@apple.com>
10567
10568         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
10569         Revert my patch from April 9.
10570         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
10571         (reorder_basic_blocks): Revert my patch from April 9.
10572         (insert_section_boundary_note): Revert my patch from April 9.
10573         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
10574         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
10575         (COLD_END_LABEL):  Revert my patch from April 9.
10576         (cold_text_section_label):  Revert my patch from April 9.
10577         (cold_end_label): Revert my patch from April 9.
10578         (dwarf2out_switch_text_section): Revert my patch from April 9.
10579         (output_aranges): Revert my patch from April 9.
10580         (output_ranges):  Revert my patch from April 9.
10581         (output_line_info): Revert my patch from April 9.
10582         (add_location_or_const_value_attribute):  Revert my patch from April 9.
10583         (dwarf2out_var_location): Revert my patch from April 9.
10584         (dwarf2out_init):  Revert my patch from April 9.
10585         (dwarf2out_finish): Revert my patch from April 9.
10586         * function.h (struct function): Revert my patch from April 9.
10587         * opts.c (decode_options): Revert my patch from April 9.
10588         * output.h (unlikely_section_label, hot_section_label,
10589         hot_section_end_label, cold_section_end_label,
10590         unlikely_text_section_name): Revert my patch from April 9.
10591         * passes.c (rest_of_handle_final): Revert my patch from April 9.
10592         * varasm.c (unlikely_section_label, hot_section_label,
10593         hot_section_end_label, cold_section_end_label,
10594         unlikely_text_section_name): Revert my patch from April 9.
10595         (initialize_cold_section_name): Revert my patch from April 9.
10596         (unlikely_text_section): Revert my patch from April 9.
10597         (in_unlikely_text_section): Revert my patch from April 9.
10598         (named_section): Revert my patch from April 9.
10599         (function_section): Revert my patch from April 9.
10600         (current_function_section): Revert my patch from April 9.
10601         (assemble_start_function): Revert my patch from April 9.
10602         (assemble_end_function): Revert my patch from April 9.
10603         (default_section_type_flags_1): Revert my patch from April 9.
10604
10605 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
10606
10607         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
10608         * config/sparc/sparc.md (untyped_call): Save the registers manually.
10609
10610         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
10611
10612 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
10613
10614         PR middle-end/20917
10615         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
10616         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
10617
10618 2004-04-12  Richard Henderson  <rth@redhat.com>
10619
10620         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
10621         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
10622         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
10623         (UNSPEC_*, UNSPECV_*): Renumber.
10624
10625 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
10626
10627         PR mudflap/19266
10628         From Richard Henderson <rth@redhat.com>:
10629         * tree-mudflap.c (mf_build_check_statement_for): Correct block
10630         splitting logic.
10631
10632 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
10633
10634         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
10635
10636 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
10637
10638         * config/bfin/bfin.c (bfin_library_id_string): Remove.
10639         (bfin_library_id): New variable.
10640         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
10641         instead of bfin_library_id_string.
10642         (bfin_handle_option): New function.
10643         (override_options): Remove most code to deal with shared library IDs,
10644         just check they aren't used without -mid-shared-library.
10645         (TARGET_HANDLE_OPTION): Define.
10646         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
10647         * config/bfin/bfin.opt (mshared-library-id=): New.
10648
10649 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
10650
10651         * tree-vect-transform.c: Fix comment typos.
10652
10653 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
10654
10655         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
10656         split critical edges when not possible/profitable.
10657
10658 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
10659
10660         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
10661         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
10662         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
10663         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
10664         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
10665         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
10666         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
10667         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
10668         MASK_NO_BITFIELD.
10669         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
10670         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
10671         * config/ns32k/ns32k.opt: New file.
10672
10673 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
10674
10675         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
10676         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
10677         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
10678         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
10679         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
10680         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
10681         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
10682         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
10683         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
10684         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
10685         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
10686         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
10687         (MASK_COLDFIRE): Formatting fixes.
10688         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
10689         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
10690         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
10691         "_current_shared_library_a5_offset_".
10692         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
10693         (MASK_ALL_CPU_BITS): New macro.
10694         (m68k_handle_option): New function.
10695         (override_options): Remove handling of m68k_library_id_string.
10696         * config/m68k/m68k.opt: New file.
10697         * config/m68k/ieee.opt: New file.
10698
10699 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
10700
10701         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
10702         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
10703         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
10704         (TARGET_CXX): Adjust accordingly.
10705         * target.h (struct gcc_target): Remove epxort_class_data.  Add
10706         determine_class_data_visibility and class_data_always_comdat.
10707         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
10708         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
10709         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
10710         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
10711         (arm_cxx_determine_class_data_visibility): New.
10712         (arm_cxx_class_data_always_comdat): Likewise.
10713         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
10714         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
10715         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
10716         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
10717         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
10718         Define.
10719
10720 2005-04-11  Devang Patel  <dpatel@apple.com>
10721
10722         * tree-data-ref.c (build_classic_dist_vector,
10723         compute_subscript_distance): Make externally visible.
10724         * tree-data-ref.h (build_classic_dist_vector,
10725         compute_subscript_distance): Same.
10726         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
10727         Check distance vector against vectorization factor.
10728         (vect_analyze_loop): Determine vectorizaion factor before
10729         analyzing data dependences.
10730         * tree-vectorizer.c (loops_num): Make it externally visible and
10731         rename ...
10732         * tree-vectorizer.c (vect_loops_num): ... new name.
10733         * tree-vectorizer.h  (vect_loops_num): New.
10734
10735 2005-04-11  Devang Patel  <dpatel@apple.com>
10736
10737         * tree-vect-analyze.c (vect_analyze_operations): Check
10738         vectorizable codition.
10739         * tree-vect-transform.c (vect_is_simple_cond): New function.
10740         (vectorizable_condition): New function.
10741         (vect_transform_stmt): Handle condition_vec_info_type.
10742         * tree-vectorizer.h (enum stmt_vec_info_type): Add
10743         condition_vec_info_type.
10744         (vectorizable_condition): New.
10745
10746 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
10747
10748         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
10749         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
10750         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
10751
10752         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
10753         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
10754
10755         * dwarf2out.c (output_line_info): Don't try to dereference
10756         a NULL current_function_decl.
10757
10758         * config/t-slibgcc-darwin: Don't put shared libraries in
10759         directories other than $(slibdir).
10760         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
10761         OS uses for it.
10762
10763 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
10764
10765         PR tree-optimization/20933
10766         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
10767         logic to reject aliases between read-only and writable
10768         variables ...
10769         (may_alias_p): ... here.
10770         (get_tmt_for): Do not associate read-only tags to pointers
10771         whose pointed-to type is not read-only.
10772         * tree-ssa.c (verify_ssa): Check that memory stores have at
10773         least one V_MAY_DEF or V_MUST_DEF.
10774
10775 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10776
10777         PR/17092
10778         * configure.ac (gcc_UNLOCKED_FUNCS): New.
10779         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
10780         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
10781         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
10782         _unlocked function.
10783         (fwrite_unlocked): Fix prototype.
10784
10785         * configure, config.in: Regenerate.
10786
10787 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
10788
10789         * tree-ssa-loop-im.c: Include real.h.
10790         (determine_invariantness_stmt): If real division divisor is
10791         invariant and flag_unsafe_math_optimizations enabled, generate
10792         invariant reciprocal for hoisting.
10793         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
10794
10795 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
10796
10797         Fix PR tree-optimization/20926
10798
10799         * tree-ssa-alias.c (add_type_alias): Handle subvars.
10800
10801 2005-04-11  Devang Patel  <dpatel@apple.com>
10802
10803         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
10804         operand ordering.
10805
10806 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
10807
10808         * fold-const.c (fold_binary_op_with_conditional_arg):
10809         use fold_buildN instead of "fold (buildN" in some
10810         non obvious places.
10811         (fold_unary): Likewise.
10812         (fold_binary): Likewise.
10813
10814 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
10815
10816         Fix PR tree-optimization/20612
10817         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
10818         handling
10819         (perfect_nestify): preheaderbb is *not* part of loop of the
10820         old destination.
10821
10822 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
10823
10824         * tree-ssa-alias.c (may_alias_p): If the variable
10825         is a global variable and the pointer is parameter
10826         and -fargument-noalias-global is used, then
10827         the pointer cannot alias the variable.
10828
10829 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
10830
10831         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
10832         * config/sparc/sparc.h: Likewise.
10833         * config/sparc/sparc.md: Likewise.
10834
10835 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
10836
10837         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
10838
10839         * tree-vrp.c: Fix a comment typo.
10840
10841 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
10842
10843         PR tree-optimization/20920
10844         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
10845         SSA_NAME flows through an abnormal edge.
10846         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
10847         through abnormal edges.
10848         (maybe_add_assert_expr): Likewise.
10849
10850 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
10851
10852         * config/s390/s390.h (s390_tune_string, s390_arch_string)
10853         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
10854         (s390_stack_size_string, s390_stack_guard_string, target_flags)
10855         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
10856         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
10857         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
10858         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
10859         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
10860         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
10861         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
10862         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
10863         (TARGET_HANDLE_OPTION): Likewise.
10864         (s390_tune): Initialize to PROCESSOR_max.
10865         (s390_arch_string): Make static.
10866         (s390_tune_string, s390_warn_framesize_string): Delete.
10867         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
10868         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
10869         (s390_handle_arch_option, s390_handle_option): New functions.
10870         (override_options): Remove parsing of option strings.
10871         * config/s390/s390.opt: New file.
10872
10873 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
10874
10875         * tree-complex.c (expand_vector_operations): Call
10876         update_stmt_if_modified.
10877
10878 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
10879
10880         * tree-vect-analyze (vect_determine_vectorization_factor):
10881         Do not use GET_MODE_NUNITS.
10882         * tree-vect-transform.c (vect_get_vec_def_for_operand,
10883         (vectorizable_load, vect_transform_loop): Likewise.
10884
10885 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
10886
10887         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
10888         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
10889         * optabs.h (enum optab_index): Add new OTI_lceil.
10890         (lceil_optab): Define corresponding macro.
10891         * optabs.c (init_optabs): Initialize lceil_optab.
10892         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
10893         and lceildi2 patterns.
10894         * builtins.c (expand_builtin_int_roundingfn): Handle
10895         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
10896         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
10897         BUILT_IN_LLCEIL{,F,L}.
10898         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
10899         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
10900         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
10901         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
10902         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
10903         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
10904         into lceil built-in function and (long long int)ceil{,f,l} into
10905         llceil built-in function.
10906         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
10907         BUILT_IN_LLCEIL.
10908
10909 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10910
10911         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
10912         zero.
10913
10914 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
10915
10916         * config/arm/arm.c: Fix a comment typo.
10917         * doc/tree-ssa.texi: Fix a typo.
10918
10919 2005-04-10  Steven Bosscher  <stevenb@suse.de>
10920
10921         * cselib.c (clear_table): Rename to cselib_clear_table.
10922         * cselib.h (cselib_clear_table): Add prototype.
10923         * gcse.c (gcse_main): Make 'f' argument unused.
10924         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
10925         of each basic block instead.
10926         (compute_sets, compute_hash_table_work): Likewise.
10927         (constprop_register): Change int 'alter_jumps' argument to bool.
10928         (do_local_cprop): Likewise.
10929         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
10930         the insn chain.  Explicitly clear the cselib tables after finishing
10931         one basic block.  Make sure there are no unterminated libcall blocks.
10932         Update compute_sets call.
10933         (cprop): Walk basic blocks instead of the insn chain.
10934         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
10935         Likewise.
10936         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
10937         one_cprop_pass calls.
10938
10939 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
10940
10941         * combine.c (combine_simplify_rtx): Remove a transformation that
10942         relies on an invalid assumption about rtl sign-extension semantics.
10943
10944 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
10945
10946         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
10947         to build_int_cst_wide.
10948
10949 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
10950
10951         PR target/20126
10952         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
10953         set the original address pseudo to the correct value before the
10954         original insn, if possible, and leave the insn alone, otherwise
10955         create a new pseudo, set it and replace it in the insn.
10956         * recog.c (validate_change_maybe_volatile): New.
10957         * recog.h (validate_change_maybe_volatile): Declare.
10958
10959 2005-04-09  Caroline Tice  <ctice@apple.com>
10960
10961         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
10962         Remove targetm.have_named_sections test.
10963         (fix_edges_for_rarely_executed_code): Likewise.
10964         (insert_section_boundary_note): Likewise.
10965         (reorder_basic_blocks): Check partitioning flag before calling
10966         verify_hot_cold_block_grouping.
10967         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
10968         the function struct rather than global variables.
10969         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
10970         (COLD_END_LABEL): Likewise
10971         (cold_text_section_label): New static global variable.
10972         (cold_end_label): Likewise.
10973         (dwarf2out_switch_text_section): Get hot/cold section labels from
10974         the function struct rather than global variables.
10975         (output_aranges): Use cold_text_section_label and cold_end_label;
10976         check partitioning flag before putting out delta.
10977         (output_ranges): Remove incorrect code attempting to use
10978         hot/cold labels.
10979         (output_line_info): Get cold section label from function struct.
10980         (add_location_or_const_value_attribute): Likewise.
10981         (get_subprogram_die): Get hot/cold section labels from function struct.
10982         (dwarf2out_var_location): Likewise.
10983         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
10984         write out cold_text_section_label if partition flag is set.
10985         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
10986         * function.h (struct function): Add new fields to point to hot/cold
10987         section labels: hot_section_label, cold_section_label,
10988         hot_section_end_label and cold_section_end_label; also add new field
10989         for cold text section name, unlikely_text_section_name.
10990         * opts.c (decode_options): Turn off partitioning flag if
10991         !targetm.have_named_sections.
10992         * output.h (hot_section_label): Remove.
10993         (hot_section_end_label): Remove.
10994         (cold_section_end_label): Remove.
10995         (unlikely_section_label): Remove.
10996         (unlikely_text_section_name): Remove.
10997         * passes.c (rest_of_handle_final):  Remove code that frees
10998         unlikely_text_section_name.
10999         * varasm.c (unlikely_section_label): Remove.
11000         (hot_section_label): Remove.
11001         (hot_section_end_label): Remove.
11002         (cold_section_end_label): Remove.
11003         (unlikely_text_section_name):  Remove.
11004         (initialize_cold_section_name): Modify to call
11005         targetm.strip_name_encoding; to store cold section name in current
11006         function struct, if it exists; and to only use the decl_section_name
11007         if flag_named_sections is true.
11008         (unlikely_text_section): Modify to get section name out of current
11009         function struct, if there is one; otherwise build it from
11010         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
11011         (in_unlikely_text_section): Likewise.
11012         (named_section): Modify to get/put cold section name in current function
11013         struct, if there is one.
11014         (function_section):  Change 'bool unlikely' to 'int reloc'; check
11015         targetm.have_named_sections before calling named_section.
11016         (current_function_section): Likewise.
11017         (assemble_start_function): Modify to get/put unlikely_text_section_name
11018         in current function struct; modify to get hot/cold section labels
11019         from function struct; initialize labels using
11020         ASM_GENERATE_INTERNAL_LABEL;
11021         test partitioning flag before writing out hot section label.
11022         (assemble_end_function): Test partitioning flag before writing out
11023         hot/cold section labels.
11024         (default_section_type_flags_1):  Modify to use array instead of
11025          char* for unlikely_text_section_name; set flags correctly for
11026          cold text section if there is not a current function decl.
11027
11028 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
11029
11030         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
11031         and TI_VA_LIST_FPR_COUNTER_FIELD.
11032         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
11033         * tree-pass.h (pass_stdarg): Add.
11034         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
11035         * tree-stdarg.c: New file.
11036         * tree-stdarg.h: New file.
11037         * Makefile.in (OBJS-common): Add tree-stdarg.o.
11038         (tree-stdarg.o): Add dependencies.
11039         * function.h (struct function): Add va_list_gpr_size and
11040         va_list_fpr_size fields.
11041         * function.c (allocate_struct_function): Initialize them.
11042         * target.h (struct gcc_target): Add stdarg_optimize_hook.
11043         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
11044         (TARGET_INITIALIZER): Add it.
11045
11046         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
11047         va_list_{g,f}pr_counter_field.
11048         (ix86_setup_incoming_varargs): Don't do anything if reg_save
11049         area will not be used.  Only save registers that tree-stdarg.c
11050         detected they need saving.
11051         (ix86_va_start): Don't set up fields that won't be used.
11052
11053         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
11054         va_list_{g,f}pr_counter_field.
11055         (setup_incoming_varargs): Don't do anything if reg_save
11056         area will not be used.  Only save registers that tree-stdarg.c
11057         detected they need saving.
11058         (rs6000_va_start): Don't set up fields that won't be used.
11059
11060         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
11061         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
11062         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
11063         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
11064
11065 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
11066
11067         PR target/20795
11068         * config/i386/i386.c (construct_container): Pass empty aligned
11069         struct, union or class in memory.
11070
11071 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
11072
11073         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
11074         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
11075         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
11076         config/rs6000/predicates.md: Fix comment typos.
11077
11078         * sched-int.h (haifa_insn_data): Remove blockage and units.
11079         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
11080         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
11081         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
11082
11083 2005-04-09  Jan Hubicka  <jh@suse.cz>
11084             Steven Bosscher  <stevenb@suse.de>
11085
11086         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
11087         * cfgloop.c (get_loop_exit_edges): Likewise.
11088         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
11089         (unloop): Likewise.
11090         * loop-unroll.c (analyze_insns_in_loop): Likewise.
11091         * tree-cfg.c (dump_cfg_status): Likewise.
11092
11093 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
11094
11095         * config/rs6000/predicates.md (altivec_register_operand): Remove
11096         redundant match_code test.
11097         (gpc_reg_operand): Same.
11098         (cc_reg_operand): Same.
11099         (cc_reg_not_cr0_operand): Same.
11100
11101 2005-04-09  Jan Hubicka  <jh@suse.cz>
11102
11103         Forgotten hunk from my last merge patch:
11104         * final.c (output_addr_const): Do not call mark_referenced.
11105
11106 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
11107
11108         * doc/tree-ssa.texi: Add immediate use documentation.
11109
11110 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
11111
11112         * arm.c (FL_WBUF): Define.
11113         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
11114         (arm_is_6_or_7): Delete.
11115         (arm_tune_wbuf): New.
11116         (arm_override_options): Set arm_tune_wbuf.
11117         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
11118         (arm_is_6_or_7): Delete declaration.
11119         (arm_tune_wbuf): New declartion.
11120         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
11121         (model_wbuf): Derive from arm_tune_wbuf.
11122         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
11123         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
11124         (arm740t): Mark CPUs as having a write buffer.
11125
11126 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
11127
11128         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
11129         of 'const_double_operand' in operand 2 constraints.  Update enable
11130         condition.
11131
11132 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
11133
11134         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
11135         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
11136         * optabs.h (enum optab_index): Add new OTI_lfloor.
11137         (lfloor_optab): Define corresponding macro.
11138         * optabs.c (init_optabs): Initialize lfloor_optab.
11139         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
11140         and lfloordi2 patterns.
11141         * builtins.c (expand_builtin_int_roundingfn): New prototype.
11142         (expand_builtin_int_roundingfn): New function.
11143         (fold_builtin_int_roundingfn): New prototype.
11144         (fold_builtin_int_roundingfn): New function, renamed from
11145         fold_builtin_lround.
11146         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
11147         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
11148         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
11149         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
11150         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
11151         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
11152         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
11153         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
11154         into lfloor built-in function and (long long int)floor{,f,l} into
11155         llfloor built-in function.
11156         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
11157         BUILT_IN_LLFLOOR.
11158
11159 2005-04-08  Ian Lance Taylor  <ian@airs.com>
11160
11161         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
11162         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
11163         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
11164         (DO_COND, DO_BODY): Likewise.
11165         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
11166         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
11167         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
11168         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
11169         (build_continue_stmt, build_break_stmt): Don't declare.
11170         (c_do_switch_warnings): Update declaration.
11171         * c-gimplify.c (enum bc_t): Remove.
11172         (struct c_gimplify_ctx, ctxp): Remove.
11173         (push_context, pop_context): Remove static functions.
11174         (c_genericize): Don't call push_context or pop_context.
11175         (begin_bc_block, finish_bc_block): Remove static functions.
11176         (build_bc_goto): Likewise.
11177         (gimplify_c_loop): Likewise.
11178         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
11179         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
11180         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
11181         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
11182         * c-common.c (c_do_switch_warnings): Rename from
11183         c_do_switch_warnings_1.
11184         (c_do_switch_warnings) [old version]: Remove.
11185         (c_do_switch_expr_warnings): Remove.
11186         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
11187         function instead of c_do_switch_expr_warnings.
11188         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
11189         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
11190         * c-pretty-print.c (pp_c_statement): Likewise.
11191         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
11192
11193 2005-04-08  Devang Patel  <dpatel@apple.com>
11194
11195         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
11196         While selecting replacement condition pay attention to loop header.
11197
11198 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
11199
11200         Merge from tree-cleanup-branch: VRP, store CCP, store
11201             copy-prop, incremental SSA updating of FUD chains and
11202             newly exposed symbols.
11203
11204         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
11205         (OBJS-common): Add tree-vrp.o.
11206         (tree-vrp.o): New rule.
11207         * basic-block.h (nearest_common_dominator_for_set): Declare.
11208         * common.opt (ftree-store-ccp): New flag.
11209         (ftree-copy-prop): New flag.
11210         (ftree-vrp): New flag.
11211         (ftree-store-copy-prop): New flag.
11212         * dominance.c (nearest_common_dominator_for_set): New.
11213         * domwalk.c (walk_dominator_tree): Only traverse
11214         statements in blocks marked in walk_data->interesting_blocks.
11215         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
11216         * fold-const.c (fold): Handle ASSERT_EXPR.
11217         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
11218         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
11219         flag_tree_vrp at -O2.
11220         * timevar.def (TV_TREE_VRP): Define.
11221         (TV_TREE_COPY_PROP): Define.
11222         (TV_TREE_STORE_COPY_PROP): Define.
11223         (TV_TREE_SSA_INCREMENTAL): Define.
11224         (TV_TREE_STORE_CCP): Define.
11225         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
11226         to kill_redundant_phi_nodes from comment.
11227         (verify_expr): Handle ASSERT_EXPR.
11228         * tree-dfa.c (mark_new_vars_to_rename): Remove second
11229         argument.  Update all users.
11230         (mark_call_clobbered_vars_to_rename): Remove.  Update all
11231         users.
11232         * tree-flow-inline.h (unmodifiable_var_p): New.
11233         * tree-flow.h (enum value_range_type): Declare.
11234         (struct value_range_def): Declare.
11235         (value_range): Declare.
11236         (remove_all_phi_nodes_for): Remove.  Update all users.
11237         (find_phi_node_for): Declare.
11238         (add_type_alias): Declare.
11239         (count_uses_and_derefs): Declare.
11240         (kill_redundant_phi_nodes): Remove.
11241         (rewrite_into_ssa): Remove.
11242         (rewrite_def_def_chains): Remove.
11243         (update_ssa, register_new_name_mapping, create_new_def_for,
11244         need_ssa_update_p, name_registered_for_update_p,
11245         release_ssa_name_after_update_ssa, dump_repl_tbl,
11246         debug_repl_tbl, dump_names_replaced_by,
11247         debug_names_replaced_by, mark_sym_for_renaming,
11248         mark_set_for_renaming, get_current_def, set_current_def,
11249         get_value_range, dump_value_range, debug_value_range,
11250         dump_all_value_ranges, debug_all_value_ranges,
11251         expr_computes_nonzero, loop_depth_of_name,
11252         unmodifiable_var_p): Declare.
11253         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
11254         ASSERT_EXPR.
11255         * tree-into-ssa.c (block_defs_stack): Update comment.
11256         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
11257         syms_to_rename, names_to_release, repl_tbl,
11258         need_to_initialize_update_ssa_p, need_to_update_vops_p,
11259         need_to_replace_names_p): New locals.
11260         (NAME_SETS_GROWTH_FACTOR): Define.
11261         (struct repl_map_d): Declare.
11262         (struct mark_def_sites_global_data): Add field
11263         interesting_blocks.
11264         (enum rewrite_mode): Declare.
11265         (REGISTER_DEFS_IN_THIS_STMT): Define.
11266         (compute_global_livein): Use last_basic_block instead of
11267         n_basic_blocks.
11268         (set_def_block): Remove last argument.  Update all callers.
11269         (prepare_use_operand_for_rename): Remove.  Update all callers.
11270         (prepare_def_operand_for_rename): Remove.  Update all callers.
11271         (symbol_marked_for_renaming): New.
11272         (is_old_name): New.
11273         (is_new_name): New.
11274         (repl_map_hash): New.
11275         (repl_map_eq): New.
11276         (repl_map_free): New.
11277         (names_replaced_by): New.
11278         (add_to_repl_tbl): New.
11279         (add_new_name_mapping): New.
11280         (mark_def_sites): Assume that all the operands in the
11281         statement are in normal form.
11282         (find_idf): Assert that the block in the stack is valid.
11283         (get_default_def_for): New.
11284         (insert_phi_nodes_for): Add new argument 'update_p'.
11285         Add documentation.
11286         If update_p is true, add a new mapping between the LHS of
11287         each new PHI and the name that it replaces.
11288         (insert_phi_nodes_1): Only call find_idf if needed.
11289         (get_reaching_def): Call get_default_def_for.
11290         (rewrite_operand): Remove.
11291         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
11292         and REWRITE_THIS_STMT are false.
11293         Assume that all the operands in the statement are in
11294         normal form.
11295         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
11296         (rewrite_virtual_phi_arguments): Remove.
11297         (invalidate_name_tags): Remove.
11298         (register_new_update_single, register_new_update_set,
11299         rewrite_update_init_block, replace_use,
11300         rewrite_update_fini_block, rewrite_update_stmt,
11301         rewrite_update_phi_arguments): New.
11302         rewrite_blocks): Remove argument 'fix_virtual_phis'.
11303         Add arguments 'entry', 'what' and 'blocks'.
11304         Initialize the dominator walker according to 'what' and
11305         'blocks'.
11306         Start the dominator walk at 'entry'.
11307         (mark_def_site_blocks): Add argument 'interesting_blocks'.
11308         Use it to configure the dominator walker.
11309         (rewrite_into_ssa): Remove argument 'all'.
11310         Make internal.
11311         (rewrite_all_into_ssa): Remove.
11312         (rewrite_def_def_chains): Remove.
11313         (mark_def_interesting, mark_use_interesting,
11314         prepare_phi_args_for_update, prepare_block_for_update,
11315         prepare_def_site_for, prepare_def_sites,
11316         dump_names_replaced_by, debug_names_replaced_by,
11317         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
11318         delete_update_ssa, create_new_def_for,
11319         register_new_name_mapping, mark_sym_for_renaming,
11320         mark_set_for_renaming, need_ssa_update_p,
11321         name_registered_for_update_p, ssa_names_to_replace,
11322         release_ssa_name_after_update_ssa,
11323         insert_updated_phi_nodes_for, update_ssa): New.
11324         * tree-loop-linear.c (linear_transform_loops): Call
11325         update_ssa instead of rewrite_into_ssa.
11326         * tree-optimize.c (vars_to_rename): Remove.
11327         Update all users.
11328         (init_tree_optimization_passes): Replace
11329         pass_redundant_phi with pass_copy_prop.
11330         Add pass_vrp.
11331         Replace pass_ccp with pass_store_ccp.
11332         Add pass_store_copy_prop after pass_store_ccp.
11333         (execute_todo): If the TODO_ flags don't include updating
11334         the SSA form, assert that it does not need to be updated.
11335         Call update_ssa instead of rewrite_into_ssa and
11336         rewrite_def_def_chains.
11337         If TODO_verify_loops is set, call verify_loop_closed_ssa.
11338         (tree_rest_of_compilation):
11339         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
11340         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
11341         TODO_cleanup_cfg): Renumber.
11342         (TODO_verify_loops, TODO_update_ssa,
11343         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
11344         TODO_update_ssa_only_virtuals): Define.
11345         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
11346         Declare.
11347         * tree-phinodes.c (make_phi_node): Update documentation.
11348         (remove_all_phi_nodes_for): Remove.
11349         (find_phi_node_for): New.
11350         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
11351         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
11352         (interpret_rhs_modify_expr): Likewise.
11353         * tree-sra.c (decide_instantiations): Mark all symbols in
11354         SRA_CANDIDATES for renaming.
11355         (mark_all_v_defs_1): Rename from mark_all_v_defs.
11356         (mark_all_v_defs): New function.  Update all users to call it
11357         with the whole list of scalarized statements, not just the
11358         first one.
11359         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
11360         (compute_flow_insensitive_aliasing): If the tag is
11361         unmodifiable and the variable isn't or vice-versa, don't
11362         make them alias of each other.
11363         (setup_pointers_and_addressables): If the type tag for
11364         VAR is about to change, mark the old one for renaming.
11365         (add_type_alias): New.
11366         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
11367         (ccp_lattice_t): Rename from latticevalue.
11368         (value): Remove.  Update all users.
11369         (const_val): New local variable.
11370         (do_store_ccp): New local variable.
11371         (dump_lattice_value): Handle UNINITIALIZED.
11372         (debug_lattice_value): New.
11373         (get_default_value): Re-write.
11374         (set_lattice_value): Re-write.
11375         (def_to_varying): Remove.  Update all users.
11376         (likely_value): Return VARYING for statements that make
11377         stores when STORE_CCP is false.
11378         Return VARYING for any statement other than MODIFY_EXPR,
11379         COND_EXPR and SWITCH_EXPR.
11380         (ccp_initialize): Re-write.
11381         (replace_uses_in, replace_vuse_in, substitute_and_fold):
11382         Move to tree-ssa-propagate.c.
11383         (ccp_lattice_meet): Handle memory stores when
11384         DO_STORE_CCP is true.
11385         (ccp_visit_phi_node): Likewise.
11386         (ccp_fold): Likewise.
11387         (evaluate_stmt): Likewise.
11388         (visit_assignment): Likewise.
11389         (ccp_visit_stmt): Likewise.
11390         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
11391         into DO_STORE_CCP.
11392         (do_ssa_ccp): New.
11393         (pass_ccp): Use it.
11394         (do_ssa_store_ccp): New.
11395         (gate_store_ccp): New.
11396         (pass_store_ccp): Declare.
11397         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
11398         (may_propagate_copy): Reformat.
11399         Don't abort if ORIG is a virtual and DEST isn't.
11400         If NEW does not have alias information but DEST does,
11401         copy it.
11402         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
11403         copy_prop_kind, which_copy_prop): Declare.
11404         (stmt_may_generate_copy, get_copy_of_val,
11405         get_last_copy_of, set_copy_of_val, dump_copy_of,
11406         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
11407         copy_prop_visit_stmt, copy_prop_visit_phi_node,
11408         init_copy_prop, fini_copy_prop, execute_copy_prop,
11409         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
11410         store_copy_prop): New.
11411         (pass_copy_prop, pass_store_copy_prop): Declare.
11412         * tree-ssa-dom.c (struct opt_stats_d): Add fields
11413         'num_const_prop' and 'num_copy_prop'.
11414         (cprop_operand): Update them.
11415         (dump_dominator_optimization_stats): Dump them.
11416         (tree_ssa_dominator_optimize): Call update_ssa instead of
11417         rewrite_into_ssa.
11418         (loop_depth_of_name): Declare extern.
11419         (simplify_cond_and_lookup_avail_expr): Guard against NULL
11420         values for LOW or HIGH.
11421         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
11422         (record_equivalences_from_stmt): Call expr_computes_nonzero.
11423         (cprop_operand): Only propagate if VAL != OP.
11424         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
11425         statement for renaming.
11426         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
11427         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
11428         add_type_alias if necessary.
11429         Call mark_new_vars_to_rename.
11430         (tree_ssa_iv_optimize): If new symbols need to be renamed,
11431         mark every statement updated, call update_ssa and
11432         rewrite_into_loop_closed_ssa.
11433         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
11434         from LIVEIN if VAR is a virtual.
11435         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
11436         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
11437         (get_call_expr_operands): Reformat statement.
11438         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
11439         symbols.
11440         * tree-ssa-propagate.c (ssa_prop_init): Initialize
11441         SSA_NAME_VALUE for every name.
11442         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
11443         get_value_loaded_by): New.
11444         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
11445         substitute_and_fold): Move from tree-ssa-ccp.c.
11446         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
11447         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
11448         get_value_loaded_by, replace_uses_in, substitute_and_fold):
11449         Declare.
11450         * tree-ssa.c (verify_use): Fix error message.
11451         (propagate_into_addr, replace_immediate_uses, get_eq_name,
11452         check_phi_redundancy, kill_redundant_phi_nodes,
11453         pass_redundant_phi): Remove.  Update all users.
11454         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
11455         add_type_alias, if necessary.
11456         * tree-vectorizer.h (struct _stmt_vect_info): Update
11457         documentation for field 'memtag'.
11458         * tree-vrp.c: New file.
11459         * tree.def (ASSERT_EXPR): Define.
11460         * tree.h (ASSERT_EXPR_VAR): Define.
11461         (ASSERT_EXPR_COND): Define.
11462         (SSA_NAME_VALUE_RANGE): Define.
11463         (struct tree_ssa_name): Add field 'value_range'.
11464         (PHI_REWRITTEN): Remove.
11465         (struct tree_phi_node): Remove field 'rewritten'.
11466         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
11467         -ftree-store-copy-prop): Document.
11468         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
11469         Document usage of update_ssa.
11470
11471 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
11472
11473         PR target/20814
11474         * config/rs6000/predicates.md (altivec_register_operand): Accept
11475         SUBREG.
11476         (and64_operand): Do not limit CONST_INT to mask64_operand.
11477         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
11478         (and_operand): Do not limit CONST_INT to mask_operand.
11479
11480 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
11481
11482         PR rtl-optimization/20466
11483         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
11484         for overlap of the address of each list member.
11485         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
11486
11487 2005-04-08  Mike Stump  <mrs@apple.com>
11488
11489         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
11490
11491         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
11492         instead of 4.
11493
11494 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
11495
11496         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
11497
11498         * function.c (push_function_context_to): Don't set
11499         contains_functions.
11500         * function.h (function): Remove contains_functions.
11501         (current_function_contains_functions): Remove.
11502
11503         * function.h (function): Remove instrument_entry_exit.
11504         (current_function_instrument_entry_exit): Remove.
11505
11506         * function.h (nonlocal_labels): Remove.
11507
11508         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
11509
11510         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
11511         (check_attr_value, write_attr_get, write_expr_attr_cache,
11512         find_attr, make_internal_attr): Don't reference negative_ok or
11513         unsigned_p.
11514         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
11515         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
11516         (ATTR_STATIC): Adjust the value.
11517
11518         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
11519
11520 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
11521
11522         * config/s390/tpf.h (ASM_SPEC): Define.
11523
11524 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
11525
11526         * tree-flow.h: Remove the prototype for
11527         redirect_immediate_uses.
11528         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
11529
11530 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
11531
11532         * arm.c (arm_const_double_by_parts): New function.
11533         * arm-protos.h (arm_const_double_by_parts): Add prototype.
11534         * arm.md (define_split for 64-bit constants): Add another one.
11535
11536 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
11537
11538         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
11539
11540 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11541
11542         * system.h: Revert last change.
11543
11544 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
11545
11546         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
11547         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
11548         (TARGET_SWITCHES): Delete.
11549         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
11550         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
11551         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
11552         * config/xtensa/xtensa.opt: New file.
11553
11554 2005-04-08  Ben Elliston  <bje@au.ibm.com>
11555
11556         * config/fp-bit.c: Include L_mul_tf in #endif comment.
11557         * config/fp-bit.h: Tidy comments.
11558
11559 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11560
11561         * system.h: Poison PARAMS.
11562
11563 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
11564
11565         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
11566         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
11567         (TARGET_SWITCHES): Delete.
11568         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
11569         * config/vax/vax.opt: New file.
11570
11571 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
11572
11573         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
11574
11575 2005-04-07  Ian Lance Taylor  <ian@airs.com>
11576
11577         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
11578         define.
11579         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
11580         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
11581         Likewise.
11582
11583 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
11584
11585         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
11586         all immediate uses in PHI nodes.
11587
11588 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
11589
11590         * arm.c (arm_const_double_inline_cost): Handle any constant by
11591         using gen_lowpart and gen_highpart_mode.
11592         (note_invalid_constants): All constants in an RTX with a constraint
11593         that permits memory are now pushed to the constant pool.
11594         (output_move_double): Delete code to handle reg to reg and
11595         constant to reg moves.
11596         (const_double_needs_minipool, output_mov_immediate): Delete.
11597         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
11598         CONST_INT and CONST_VECTOR.
11599         * arm.md (ANY64): New mode macro.
11600         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
11601         (movdf_soft_insn): Split reg-reg and const-reg moves.
11602         (split patterns for 64-bit constant and register moves): New.
11603         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
11604         (cirrus_movdf_hard_insn): Likewise.
11605         * fpa.md (movdf_fpa): Likewise.
11606         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
11607         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
11608         constraints.
11609         (movv2si_internal_2): Likewise.
11610         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
11611         (movdf_vfp): Likewise.
11612         * arm-protos.h (output_mov_immediate): Delete prototype.
11613
11614 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
11615
11616         PR target/20093
11617         * simplify-rtx.c (simplify_unary_operation_1): Check
11618         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
11619
11620 2005-04-06  James E Wilson  <wilson@specifixinc.com>
11621
11622         PR target/20717
11623         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
11624         ADDR_EXPR.
11625
11626 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
11627
11628         * coverage.h (GCOV_TYPE_NODE): Delete.
11629         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
11630         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
11631         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
11632         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
11633         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
11634
11635 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
11636
11637         PR other/20792
11638         * Makefile.in (gcc.pot): Remove options.c dependency.
11639         * optc-gen.awk: Don't quote help strings with N_().
11640
11641 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
11642
11643         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
11644         the function returns a pointer type.
11645
11646 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
11647
11648         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
11649         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
11650         * doc/invoke.texi: Documnet salias-max-implicit-fields.
11651         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
11652         explicit_uses members.
11653         (get_or_create_used_part_for): Initialize new fields.
11654         (fieldoff_compare): New function.
11655         (create_overlap_variables_for): Count number of fields, use
11656         heuristic to determine whether to create subvars for vars with
11657         only implicit uses.
11658         Sort the field list by offset and avoid creating duplicate SFT's.
11659
11660 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
11661
11662         * c.opt (-F): Remove trailing whitespace from help string.
11663         (-finput-charset): Use a tab to separate the switch name and help
11664         string.
11665         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
11666         (-ftree-vectorizer-verbose): Likewise.
11667
11668 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
11669
11670         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
11671         a PHI argument where a use occurs instead of all PHI arguments.
11672
11673 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
11674
11675         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
11676         scope.
11677
11678 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
11679
11680         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
11681         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
11682         config/bfin/bfin.h: Fix comment typos.
11683
11684 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
11685
11686         * doc/install.texi: Update the URL for Jacks.
11687         * doc/sourcebuild.texi: Likewise.
11688
11689 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
11690
11691         PR target/17245
11692         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
11693         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
11694
11695 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
11696
11697         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
11698
11699 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
11700
11701         * config/v850/v850-protos.h (override_options): Delete.
11702         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
11703         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
11704         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
11705         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
11706         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
11707         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
11708         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
11709         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
11710         (OVERRIDE_OPTIONS): Delete.
11711         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
11712         (small_memory_info): Remove the value field.
11713         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
11714         TARGET_NO_APP_REGS.
11715         * config/v850/v850.c (small_memory): Remove the value field.
11716         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
11717         (override_options): Delete.
11718         (v850_handle_memory_option, v850_handle_option): New functions.
11719         * config/v850/v850.opt: New file.
11720
11721 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
11722
11723         * config.host: Add a section for generic hosts, and a subsection
11724         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
11725         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
11726         * config/host-darwin.h: New.
11727         * config/x-darwin: New.
11728         * config/i386/host-i386-darwin.c: New.
11729         * config/i386/x-darwin: New.
11730         * config/rs6000/host-darwin.c: Include host-darwin.h.
11731         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
11732         (darwin_rs6000_gt_pch_use_address): Likewise.
11733         * config/rs6000/x-darwin: Change name of .o built, update
11734         dependencies for changes to rs6000/host-darwin.c.
11735
11736 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11737
11738         PR target/17824
11739         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
11740
11741 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
11742
11743         * tree-vect-analyze.c (vect_analyze_loop_form): Call
11744         split_loop_exit_edge instead of loop_split_edge_with.
11745
11746 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
11747
11748         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
11749         UNSPEC_SET_VSCR): New constants, used throughout.
11750         (*andc3_v4sf): New.
11751         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
11752         Replace with...
11753         (altivec_vspltis<VI_char>): ... this pattern, using
11754         a QImode const_int_operand for the immediate.
11755         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
11756         define_expands.
11757
11758 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
11759
11760         PR target/17822
11761         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
11762
11763 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
11764
11765         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
11766
11767 2005-04-06  Ben Elliston  <bje@au.ibm.com>
11768
11769         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
11770         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
11771         macros as living in "this file" and not gcc.h.
11772
11773 2005-04-06  Ben Elliston  <bje@au.ibm.com>
11774
11775         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
11776         -ftree-live_range_split.  Perhaps renamed at some point?
11777
11778 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
11779
11780         PR target/20625
11781         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
11782         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
11783
11784 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
11785
11786         * tree-flow.h (number_of_iterations_cond): Declaration removed.
11787         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
11788         (number_of_iterations_special): New function.
11789         (number_of_iterations_exit): Use number_of_iterations_special.
11790         Use simplify_using_outer_evolutions only at -O3.
11791         (number_of_iterations_cond, tree_simplify_using_condition,
11792         simplify_using_initial_conditions, loop_niter_by_eval,
11793         compare_trees, can_count_iv_in_wider_type_bound,
11794         simplify_using_outer_evolutions): Use fold_build.
11795
11796 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
11797
11798         * doc/install.texi (Configuration): Document --with-java-home.
11799
11800 2005-04-05  Richard Henderson  <rth@redhat.com>
11801
11802         PR target/20342
11803         PR target/20447
11804         * config/i386/i386.c (print_operand): Handle vector zeros.
11805         (ix86_split_to_parts): Handle CONST_VECTOR.
11806         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
11807         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
11808         what modes to tie for MMX and SSE registers.
11809         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
11810         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
11811         to vector modes as well.
11812         * config/i386/predicates.md (const0_operand): Handle VOIDmode
11813         properly as an input mode.
11814
11815 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
11816
11817         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
11818
11819 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
11820
11821         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
11822
11823 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
11824
11825         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
11826         and local functions, set sse_nregs to 8 and float_in_sse.
11827         (function_arg_advance, function_arg): If float_in_sse, pass
11828         SFmode and DFmode arguments in SSE registers.
11829         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
11830
11831         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
11832         of -funit-at-a-time.
11833
11834 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
11835
11836         * config/i386/i386-protos.h (ix86_function_value): Accept two
11837         arguments, like the target macro.
11838         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
11839         * config/i386/i386.c (ix86_function_value): Accept the second
11840         argument of the target macro.
11841         (ix86_function_ok_for_sibcall): Pass a function pointer to
11842         ix86_function_value.
11843         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
11844         call to ix86_value_regno).
11845         (ix86_value_regno): Add support for returning floating point values
11846         in SSE registers.
11847
11848 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
11849
11850         PR tree-optimization/20076
11851         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
11852         that call __builtin_return or __builtin_apply_args.
11853
11854 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
11855
11856         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
11857         Use immediate use iterator.
11858         (stmt_is_bumper_for_loop): Use immediate use iterator.
11859         * predict.c (strip_builtin_expect): Use update_stmt.
11860         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
11861         on all elements of a STATEMENT_LIST.
11862         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
11863         (bsi_remove): Remove imm_use links and mark the stmt as modified.
11864         (bsi_replace): Mark stmt as modified and the update it.
11865         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
11866         (expand_complex_libcal): Call update_stmt.
11867         (expand_complex_comparison): Call mark_stmt_modified.
11868         (expand_complex_operations_1): Call update_stmt_if_modified.
11869         (expand_vector_operations_1): Call mark_stmt_modified.
11870         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
11871         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
11872         add_immediate_use, redirect_immediate_use,
11873         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
11874         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
11875         (mark_new_vars_to_rename): Call update_stmt.
11876         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
11877         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
11878         Ignore PHI nodes.
11879         (unmodify_stmt): Delete.
11880         (update_stmt): New.  Force an update of a stmt.
11881         (update_stmt_if_modified): update a stmt if it is out of date.
11882         (get_stmt_operands): Verify stmt is NOT modified.
11883         (stmt_modified_p): Update comment.
11884         (delink_imm_use): Remove a use node from its immuse list.
11885         (link_imm_use_to_list): Link a use node to a specific list.
11886         (link_imm_use): Link a node to the correct list.
11887         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
11888         it in the correct list, if appropriate.
11889         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
11890         (relink_imm_use): Link a use node in place of another node in a list.
11891         (relink_imm_use_stmt): LInk a node in place of another node, and set
11892         the stmt pointer.
11893         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
11894         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
11895         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
11896         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
11897         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
11898         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
11899         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
11900         (has_zero_uses): New.  Return true if there are no uses of a var.
11901         (has_single_use): New.  Return true if there is only a single use of a
11902         variable.
11903         (single_imm_use): New.  Return the simgle immediate use.
11904         (num_imm_uses): New.  Return the number of immediate uses.
11905         (get_v_must_def_ops): Use is now a pointer.
11906         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
11907         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
11908         the use node.
11909         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
11910         (delink_stmt_imm_use): Delink all immuses from a stmt.
11911         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
11912         * tree-flow.h (struct dataflow_d): Delete.
11913         (immediate_use_iterator_d): New.  Immediate use iterator struct.
11914         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
11915         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
11916         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
11917         iteration.
11918         (struct stmt_ann_d): Remove dataflow_t from struct.
11919         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
11920         (if_convertible_phi_p): Use FAST immuse iterator.
11921         (if_convertible_loop_p): Don't call compute_immediate_uses.
11922         (replace_phi_with_cond_modify_expr): Call update_stmt.
11923         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
11924         update_stmt_if_modified.
11925         (rewrite_all_into_ssa): Initialize ssa operands.
11926         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
11927         compute_immediate_uses.
11928         * tree-optimize.c (execute_todo): Call verify_ssa whenever the
11929         ssa_property is available.
11930         (execute_one_pass):  Change parameters passed to execute_todo.
11931         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
11932         (remove_ssa_form): Call fini_ssa_operands.
11933         (insert_backedge_copies): Delete call to modify_stmt.
11934         * tree-phinodes.c (make_phi_node): Initialize use nodes.
11935         (release_phi_node): Delink any use nodes before releasing.
11936         (resize_phi_node): Relink any use nodes.
11937         (remove_phi_arg_num): Delink the use node.
11938         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
11939         (remove_all_phi_nodes_for): Release phi node first.
11940         * tree-pretty-print.c (dump_generic_node): Print stmt address.
11941         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
11942         (scalarize_use, scalarize_copy): Call update_stmt.
11943         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
11944         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
11945         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
11946         (ccp_initialize): Remove call to compute_immediate_uses.
11947         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
11948         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
11949         stmts.
11950         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
11951         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
11952         (eliminate_redundant_computations): Call mark_stmt_modified.
11953         (cprop_operand): Call mark_stmt_modified.
11954         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
11955         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
11956         (dse_optimize_stmt): Use new immuse interface.
11957         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
11958         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
11959         (substitute_single_use_vars): Use new immuse interface.
11960         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
11961         and compute_immediate_uses.
11962         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
11963         interface.
11964         (rewrite_mem_refs): Call update_stmt.
11965         (determine_lsm): Remove call to compute_imm_uses and free_df.
11966         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
11967         (try_unroll_loop_completely): Call update_stmt.
11968         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
11969         (rewrite_use_compare): Call update_stmt.
11970         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
11971         (rewrite_use) : Call update_stmt.
11972         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
11973         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
11974         update_stmt.
11975         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
11976         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
11977         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
11978         use nodes.
11979         (initialize_vuse_operand): New.  Initialize a vuse operand.
11980         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
11981         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
11982         (finalize_ssa_defs): Use stmt parameter.
11983         (correct_use_link): Ensure a use node is in the correct list, and has
11984         the correct stmt pointer.
11985         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
11986         finalize_ssa_v_must_defs): Also initialize use nodes.
11987         (finalize_ssa_stmt_operands): Pass extra stmt operands.
11988         (build_ssa_operands): Seperate parsing from final operand construction.
11989         (parse_ssa_operands): New.  Parse entry point for operand building.
11990         (swap_tree_operands): New.  Swap 2 tree operands.
11991         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
11992         operands.
11993         (get_expr_operands): Call swap_tree_operands when needed.
11994         (copy_virtual_operands): Use initialize routines for virtual use ops.
11995         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
11996         (verify_abort): New.  Issue imm_use error.
11997         (verify_imm_links): New Verify imm_use links for a var.
11998         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
11999         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
12000         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
12001         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
12002         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
12003         (NULL_USE_OPERAND_P) Define.
12004         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
12005         use node.
12006         (struct vuse_operand_type): New struct.
12007         (SET_USE): Call set_ssa_use_from_ptr.
12008         (USE_STMT): Define.
12009         (PHI_ARG_INDEX_FROM_USE): Define.
12010         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
12011         argument via SET_USE, not PHI_ARG_DEF_TREE.
12012         * tree-ssa-pre.c (eliminate): Call update_stmt.
12013         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
12014         call free_df.
12015         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
12016         (nearest_common_dominator_of_uses): Use imm_use iterator.
12017         (statement_sink_location): Use imm_use iterator and interface.
12018         (execute_sink_code): Don't call compute_immediate_uses or free-df.
12019         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
12020         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
12021         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
12022         (verify_ssa): Ensure no stmt is marked modify after optimization pass
12023         if new parameter is true.
12024         (init_tree_ssa): Don't initialize operand cache here.
12025         (delete_tree_ssa): Don't destroy operand cache here.
12026         (propagate_into_addr): Pass in a use pointer, return true if anything
12027         was changed.
12028         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
12029         (check_phi_redundancy): Use imm_use iterator.
12030         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
12031         free_df.
12032         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
12033         (release_ssa_name): Delink node and all elements in its imm_use list.
12034         * tree-tailcall.c (adjust_return_value): Call update_stmt.
12035         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
12036         * tree-vectorizer.c (need_imm_uses_for): Delete.
12037         (vectorize_loops): Dont call compute_immediate_uses or free_df.
12038         * tree.h (struct ssa_imm_use_d): Define.
12039         (SSA_NAME_IMM_USE_NODE): Define.
12040         (struct tree_ssa_name): Add imm_use node.
12041         (PHI_DF): Delete.
12042         (PHI_ARG_IMM_USE_NODE): Define.
12043         (struct phi_arg_d): Add imm_use node.
12044         (struct tree_phi_node): Remove struct dataflow_d element.
12045         (TDF_STMTADDR): Define.
12046
12047 2005-04-05  Dale Johannesen  <dalej@apple.com>
12048
12049         * doc/invoke.texi (Optimization Options):  Remove
12050         duplicate -fcse-follow-jumps.  Add -fweb.
12051         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
12052         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
12053
12054 2005-04-05  Per Bothner  <per@bothner.com>
12055
12056         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
12057         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
12058         (warn_uninit): Get EXPR_LOCUS from context now instead.
12059         This fixes a USE_MAPPED_LOCATION testsuite failure.
12060
12061         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
12062
12063 2005-04-05  Per Bothner  <per@bothner.com>
12064
12065         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
12066         of the artification 'return 0' in main() to BUILTINS_LOCATION.
12067         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
12068         before warning.
12069
12070 2004-04-05  Devang Patel  <dpatel@apple.com>
12071
12072         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
12073         (lhsr<mode>3): ... new name.
12074         (altivec_vsra<VI_char>): Rename to ..
12075         (ashr<mode>3): ... new name.
12076         * config/rs6000/rs6000.c (builtin_description): Rename shift
12077         operations.
12078
12079 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
12080
12081         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
12082         gen_lowpart_for_combine.
12083         * cse.c (gen_lowpart_if_possible): Move...
12084         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
12085         gen_lowpart_SUBREG.
12086         (gen_lowpart_no_emit_general): Use it.
12087
12088 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
12089
12090         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
12091         overriding.
12092
12093 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
12094
12095         * system.h: Fix typo.
12096
12097 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
12098
12099         * config/bfin/bfin-modes.def: New file.
12100         * config/bfin/bfin-protos.h: New file.
12101         * config/bfin/bfin.c: New file.
12102         * config/bfin/bfin.h: New file.
12103         * config/bfin/bfin.md: New file.
12104         * config/bfin/bfin.opt: New file.
12105         * config/bfin/crti.s: New file.
12106         * config/bfin/crtn.s: New file.
12107         * config/bfin/elf.h: New file.
12108         * config/bfin/lib1funcs.asm: New file.
12109         * config/bfin/predicates.md: New file.
12110         * config/bfin/t-bfin: New file.
12111         * config/bfin/t-bfin-elf: New file.
12112         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
12113         Document new attributes.
12114         (interrupt, interrupt_handler, saveall): Update documentation for
12115         these attributes.
12116         * doc/install.texi (Specific): Add entry for the Blackfin.
12117         * doc/invoke.texi (Blackfin Options): New section.
12118         * doc/md.texi (Blackfin family): New section to document constraints.
12119         * config.gcc: Add bfin*-* and bfin*-elf configurations.
12120
12121 2005-04-05  Olivier Hainque  <hainque@adacore.com>
12122
12123         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
12124         match what the system unwinder expects.
12125         * config/mips/mips.c (mips_frame_set): If we're saving the return
12126         address register and the dwarf return address column number differs
12127         from the hard register number, adjust the note reg to refer to the
12128         former.
12129
12130 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
12131
12132         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
12133         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
12134         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
12135         (processor_type): New enum.
12136         (mn10300_processor): New variable.
12137         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
12138         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
12139         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
12140         (PROCESSOR_DEFAULT): New macro.
12141         * config/mn10300/mn10300.c (mn10300_processor): New variable.
12142         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12143         (mn10300_handle_option, mn10300_override_options): New functions.
12144         * config/mn10300/mn10300.opt: New file.
12145
12146 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
12147             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
12148
12149         PR tree-optimization/19903
12150         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
12151         that don't fit in their type after conversion.
12152
12153 2005-04-05  Uros Bizjak <uros@kss-loka.si>
12154
12155         PR target/20421
12156         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
12157         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
12158         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
12159         flag here. Implement using define_insn_and_split.
12160         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
12161         (frndintxf2_mask_pm_i387): New insn patterns.
12162         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
12163         Do not set ix86_optimize_mode_switching flag.
12164         (ceilsf2, ceildf2, ceilxf2): Same.
12165         (btruncsf2, btruncdf2, btruncxf2): Same.
12166         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
12167
12168 2005-04-05  Ian Lance Taylor  <ian@airs.com>
12169
12170         PR debug/9963
12171         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
12172         i386_pe_record_external_function.
12173         (i386_pe_record_external_function): Update declaration.
12174         * config/i386/winnt.c (struct extern_list): Add decl field.
12175         (i386_pe_record_external_function): Add decl parameter.
12176         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
12177         identifier.
12178         * config/i386/i386-protos.h (i386_pe_record_external_function):
12179         Update declaration.
12180
12181 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
12182
12183         * config/m68k/m68k-protos.h: Add a prototype for
12184         valid_dbcc_comparison_p_2.
12185         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
12186         extend_operator, const_uint32_operand, const_sint32_operand,
12187         general_src_operand, nonimmediate_src_operand,
12188         memory_src_operand, post_inc_operand, pre_dec_operand,
12189         pcrel_address): Move to predicates to predicates.md.
12190         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
12191         * config/m68k/m68k.md: Include predicates.md.
12192         * config/m68k/predicates.md: New.
12193
12194 2005-04-04  Roger Sayle  <roger@eyesopen.com>
12195
12196         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
12197
12198         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
12199
12200 2005-04-04  Ian Lance Taylor  <ian@airs.com>
12201
12202         * c-typeck.c (struct c_switch): Rename switch_stmt field to
12203         switch_expr.
12204         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
12205         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
12206         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
12207         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
12208         * c-common.c (c_do_switch_warnings_1): New static function broken
12209         out of c_do_switch_warnings.
12210         (c_do_switch_warnings): Call c_do_switch_warnings_1.
12211         (c_do_switch_expr_warnings): New function.
12212         * c-common.h (c_do_switch_expr_warnings): Declare.
12213
12214 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
12215             Daniel Jacobowitz  <dan@codesourcery.com>
12216
12217         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
12218         trapping divide.
12219         * rtlanal.c (may_trap_p): Same.
12220
12221 2005-04-04  Dale Johannesen  <dalej@apple.com>
12222
12223         * ChangeLog:  remove reference to ChangeLog.12.
12224
12225 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
12226
12227         CRIS epilogue as RTL.
12228         * config/cris/cris.md: Change all 0 in unspec 0 to
12229         CRIS_UNSPEC_PLT.
12230         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
12231         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
12232         patterns.
12233         ("return"): Change to define_expand.  Call cris_expand_return for
12234         actual expansion.
12235         ("*return_expanded"): New pattern.
12236         ("epilogue"): New define_expand.
12237         * config/cris/cris.h (PREDICATE_CODES): Add
12238         cris_load_multiple_op.
12239         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
12240         type.
12241         (enum cris_retinsn_type): New.
12242         (struct machine_function): New member return_type.
12243         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
12244         (cris_target_asm_function_epilogue): Remove, moving RTLified
12245         contents to...
12246         (cris_expand_epilogue): New function.
12247         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
12248         (cris_gen_movem_load, cris_load_multiple_op)
12249         (cris_return_address_on_stack_for_return, cris_expand_return): New
12250         functions.
12251         (cris_target_asm_function_prologue)
12252         (cris_initial_frame_pointer_offset): Call
12253         cris_reg_saved_in_regsave_area instead of complicated expression.
12254         Call cris_return_address_on_stack instead of an expression.
12255         (cris_print_operand) <case 'o', case 'O'>: New cases.
12256         (cris_return_address_on_stack): Change return-type to bool.
12257         (cris_simple_epilogue): Ditto.  Return false if registers are
12258         saved.
12259         * config/cris/cris-protos.h (cris_simple_epilogue)
12260         (cris_return_address_on_stack): Adjust prototype return type.
12261         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
12262         (cris_return_address_on_stack_for_return): New prototypes.
12263
12264 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
12265
12266         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
12267         gpr_or_int12_operand.
12268
12269         * config/frv/frv-protos.h: Add a prototype to
12270         frv_legitimate_memory_operand and frv_const_unspec_p.
12271         (frv_unspec): Move from frv.c.
12272         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
12273         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
12274         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
12275         gpr_or_fpr_operand, gpr_or_int12_operand,
12276         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
12277         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
12278         int6_operand, int5_operand, uint5_operand, uint4_operand,
12279         uint1_operand, int_2word_operand, uint16_operand,
12280         upper_int16_operand, integer_register_operand,
12281         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
12282         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
12283         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
12284         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
12285         move_destination_operand, movcc_fp_destination_operand,
12286         frv_function_symbol_referenced_p, move_source_operand,
12287         condexec_dest_operand, condexec_source_operand,
12288         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
12289         const_unspec_operand, gpr_or_memory_operand,
12290         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
12291         icc_operand, fcc_operand, cc_operand, icr_operand,
12292         fcr_operand, cr_operand, call_operand, sibcall_operand,
12293         symbolic_operand, relational_operator,
12294         integer_relational_operator, float_relational_operator,
12295         ccr_eqne_operator, minmax_operator,
12296         condexec_si_binary_operator, condexec_si_media_operator,
12297         condexec_si_divide_operator, condexec_si_unary_operator,
12298         condexec_sf_conv_operator, condexec_sf_add_operator,
12299         condexec_memory_operand, intop_compare_operator, acc_operand,
12300         even_acc_operand, quad_acc_operand, accg_operand: Move to
12301         predicates.md.
12302         * config/frv/frv.h (PREDICATE_CODES): Remove.
12303         * config/frv/frv.md: Include predicates.md.
12304         * config/frv/predicates.md: New.
12305
12306 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
12307
12308         PR target/19537
12309         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
12310         * tree-ssa-loop-ivopts.c: Include langhooks.h.
12311         (add_standard_iv_candidates_for_size): New function, extracting code
12312         from add_standard_iv_candidates and parameterizing it by type size.
12313         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
12314
12315 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
12316
12317         * system.h (GCOV_SIZE_TYPE): Unposion.
12318         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
12319         (GCOV_TYPE_SIZE): ...this new macro.
12320         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
12321         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
12322         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
12323         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
12324         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
12325         instead of unsigned_intSI_type_node.
12326         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
12327         (rtl_gen_one_value_profiler_no_edge_manipulation)
12328         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
12329         * value-prof.c: Include coverage.h.
12330
12331 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
12332             Diego Novillo <dnovillo@redhat.com>
12333
12334         Fix PR tree-optimization/20703
12335         Fix PR tree-optimization/20725
12336
12337         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
12338         (create_expression_by_pieces): Ditto.
12339         (valid_in_set): Ditto. Also handle tcc_declaration.
12340         (find_or_generate_expression): Handle comparison class.
12341         (insert_into_preds_of_block): Ditto.
12342         (insert_aux): Ditto.
12343         (create_value_expr_from): Handle comparison class, recursively
12344         handle reference nodes.
12345         (compute_avail): Handle comparison classes, rewrite a little cleaner.
12346         (execute_pre): Fix spacing.
12347         (do_fre): Renamed to execute_fre.
12348
12349 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12350
12351         * doc/invoke.texi (SPARC options): Document that
12352         -mlittle-endian is not supported on Linux either.
12353
12354 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12355
12356         PR target/4198
12357         PR target/12027
12358         * config.gcc (Obsolete configurations): Remove
12359         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
12360         (sparclite-*-coff*): Delete.
12361         (sparclite-*-elf*): Likewise.
12362         (sparc86x-*-elf*): Likewise.
12363         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
12364         * config/sparc/lite.h: Delete.
12365         * config/sparc/litecoff.h: Likewise.
12366         * config/sparc/liteelf.h: Likewise.
12367         * config/sparc/sp86x-elf.h: Likewise.
12368         * config/sparc/t-sparclite: Likewise.
12369         * config/sparc/t-sp86x: Likewise.
12370
12371 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
12372
12373         * config/s390/s390-protos.h: (s390_comparison,
12374         s390_alc_comparison, s390_slb_comparison, const0_operand,
12375         consttable_operand, larl_operand, s_operand,
12376         shift_count_operand, bras_sym_operand, load_multiple_operation,
12377         store_multiple_operation, s390_plus_operand): Remove prototypes.
12378         (s390_legitimate_address_without_index_p): New prototype.
12379         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
12380         to s390.h.
12381         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
12382         const0_operand, consttable_operand, larl_operand, s_operand,
12383         shift_count_operand, bras_sym_operand, load_multiple_operation,
12384         store_multiple_operation, s390_plus_operand): Move to
12385         predicates.md.
12386         (check_mode): Remove.
12387         (s390_branch_condition_mask): Remove 'static'. Move prototype to
12388         s390-protos.h.
12389         (s390_legitimate_address_without_index_p): New.
12390         * config/s390/s390.h (PREDICATE_CODES): Remove.
12391         * config/s390/s390.md: Include predicates.md.
12392         * config/s390/predicates.md: New.
12393
12394 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12395
12396         PR target/20446
12397         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
12398         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
12399         (NEED_INDICATE_EXEC_STACK): Define to 1.
12400         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
12401         (NEED_INDICATE_EXEC_STACK): Define to 1.
12402         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
12403         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
12404         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
12405         (pic_helper_emitted_p): New global.
12406         (emit_pic_helper): New function extracted from...
12407         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
12408         Do not call emit_pic_helper if delay_pic_helper is true.
12409         (sparc_expand_prologue): Pass 'false' to load_pic_register.
12410         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
12411         (sparc_file_end): New function.
12412
12413 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
12414
12415         * config/mcore/mcore-protos.h: Remove the prototypes for
12416         mcore_arith_reg_operand, mcore_general_movsrc_operand,
12417         mcore_general_movdst_operand, mcore_reload_operand,
12418         mcore_arith_J_operand, mcore_arith_K_operand,
12419         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
12420         mcore_arith_K_S_operand, mcore_arith_imm_operand,
12421         mcore_arith_any_imm_operand, mcore_arith_O_operand,
12422         mcore_literal_K_operand, mcore_addsub_operand,
12423         mcore_compare_operand, mcore_load_multiple_operation,
12424         mcore_store_multiple_operation, mcore_call_address_operand.
12425         Add a prototype for const_ok_for_mcore.
12426         * config/mcore/mcore.c (mcore_call_address_operand,
12427         mcore_general_movsrc_operand, mcore_general_movdst_operand,
12428         mcore_arith_reg_operand, mcore_reload_operand,
12429         mcore_arith_J_operand, mcore_arith_K_operand,
12430         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
12431         mcore_arith_M_operand, mcore_arith_imm_operand,
12432         mcore_arith_any_imm_operand, mcore_arith_O_operand,
12433         mcore_literal_K_operand, mcore_addsub_operand,
12434         mcore_compare_operand, mcore_load_multiple_operation,
12435         mcore_store_multiple_operation): Move to predicates.md.
12436         (const_ok_for_mcore): Export.
12437         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
12438         * config/mcore/mcore.md: Include predicates.md.
12439         * config/mcore/predicates.md: New.
12440
12441         * config/mcore/predicates.md: Fix a comment typo.
12442
12443 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
12444             Adrian Straetling  <straetling@de.ibm.com>
12445
12446         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
12447         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
12448         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
12449         attribute.
12450         ("imul"): Removed from "type" attribute.
12451         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
12452         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
12453         Changed type to imulsi.
12454         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
12455
12456 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
12457
12458         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
12459         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
12460         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
12461         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
12462         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
12463         (TARGET_SWITCHES, mcore_stack_increment_string)
12464         (TARGET_OPTIONS): Delete.
12465         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
12466         than *_BIT constants.
12467         (TARGET_8ALIGN): #undef old definition before redefining to 1.
12468         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
12469         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
12470         (mcore_override_options): Delete mcore_stack_increment code.
12471         Change use of M340_BIT to MASK_M340.
12472         * config/mcore/mcore.opt: New file.
12473
12474 2005-04-04  Ian Lance Taylor  <ian@airs.com>
12475
12476         * config/arm/arm.c (replace_symbols_in_block): Remove static
12477         function.
12478
12479 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
12480
12481         * config/fr30/fr30-protos.h: Remove the prototypes for
12482         stack_add_operand, add_immediate_operand,
12483         high_register_operand, low_register_operand, call_operand,
12484         di_operand, and nonimmediate_di_operand.
12485         * config/fr30/fr30.c (stack_add_operand,
12486         add_immediate_operand, high_register_operand,
12487         low_register_operand, call_operand, di_operand,
12488         nonimmediate_di_operand): Move to predicates.md.
12489         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
12490         * config/fr30/fr30.md: Include predicates.md.
12491         * config/fr30/predicates.md: New.
12492
12493         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
12494         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
12495         mcore_call_address_operand.
12496
12497         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
12498         general_movsrc_operand.
12499
12500 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
12501
12502         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
12503         after freeing.
12504
12505 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
12506
12507         PR target/14812
12508         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
12509         a negated value.
12510
12511 2005-04-04  Richard Henderson  <rth@redhat.com>
12512             Jakub Jelinek  <jakub@redhat.com>
12513
12514         PR rtl-optimization/16104
12515         * fold-const.c (fold_unary): Fix folding of vector conversions.
12516
12517 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
12518
12519         * config.gcc (xstormy16-*-elf): Set extra_options.
12520         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
12521         * config/stormy16/stormy16.opt: New file.
12522
12523 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
12524
12525         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
12526         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
12527         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
12528         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
12529         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
12530         (TARGET_UNIX_ASM): Delete.
12531         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
12532         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
12533         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
12534         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12535         * config/pdp11/pdp11.opt: New file.
12536
12537 2005-04-03  Roger Sayle  <roger@eyesopen.com>
12538             Alexandre Oliva  <aoliva@redhat.com>
12539
12540         PR c++/19199
12541         * fold-const.c (non_lvalue): Split tests into...
12542         (maybe_lvalue_p): New function.
12543         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
12544         C++ front-end prior to lowering into gimple form.
12545
12546 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12547
12548         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
12549         BUILT_IN_STRNCASECMP): New.
12550         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
12551         and strndup.
12552
12553 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
12554
12555         PR target/14812
12556         * arm.md (addsi3_compare0_for_combiner): Delete.
12557         (addsi3_compare0_scratch_for_combiner): Delete.
12558         (cmpsi_neg_shiftsi): Delete.
12559         (compare_negsi_si): New pattern.
12560         (cmpsi_negshiftsi_si): New pattern.
12561         (negated_cbranchsi4): Restrict to equality_operator.
12562
12563         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
12564         template.
12565
12566 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
12567
12568         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
12569         Fix comment typos.
12570
12571         * doc/install.texi: Fix a typo.
12572
12573 2005-04-03  Steven Bosscher  <stevenb@suse.de>
12574
12575         PR middle-end/20648
12576         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
12577         a computed goto if the edge to the computed goto block has
12578         incoming abnormal edges.  Clarify how the function works.
12579
12580 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
12581
12582         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
12583         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
12584         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
12585         hash_scan_set, reg_set_between_after_reload_p,
12586         reg_used_between_after_reload_p, get_avail_load_store_reg,
12587         eliminate_partially_redundant_load): Likewise.
12588         * postreload.c (reload_cse_simplify_set,
12589         reload_combine_note_use): Likewise.
12590         * predict.c (predict_insn, expected_value_to_br_prob,
12591         propagate_freq, expensive_function_p): Likewise.
12592         * print-rtl.c (print_rtx): Likewise.
12593         * profile.c (instrument_edges, instrument_values,
12594         compute_branch_probabilities, branch_prob, union_groups,
12595         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
12596         * protoize.c (in_system_include_dir, file_could_be_converted,
12597         file_normally_convertible, gen_aux_info_file, seek_to_line,
12598         do_cleaning): Likewise.
12599         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
12600         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
12601         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
12602
12603 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
12604
12605         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
12606         * modulo-sched.c (undo_replace_buff_elem): New structure.
12607         (kernel_number_of_cycles, ps_unschedule_node,
12608         undo_generate_reg_moves,free_undo_replace_buff,
12609         undo_permute_partial_schedule,  loop_single_full_bb_p,
12610         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
12611         build_loops_structure, get_sched_window): New.
12612         (generate_reg_moves): Return undo_replace_buff_elem and other
12613         fixes.
12614         (generate_prolog_epilog): Remove old loop versioning.
12615         (sms_schedule): Use loop information and loop_version.
12616         (sms_schedule_by_order): Split part of it to get_sched_window.
12617         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
12618         cfg_layout_finalize and free_dominance_info before/after SMS.
12619
12620 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
12621
12622         * cfghooks.c (lv_flush_pending_stmts,
12623         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
12624         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
12625         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
12626         lv_add_condition_to_bb,
12627         lv_adjust_loop_header_phi, extract_cond_bb_edges,
12628         flush_pending_stmts): New in cfg_hooks structure.
12629         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
12630         extract_cond_bb_edges, lv_adjust_loop_header_phi,
12631         lv_add_condition_to_bb): New declarations.
12632         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
12633         bool.
12634         (loop_version): Declare.
12635         * cfgloopmanip.c (cfghooks.h): Include.
12636         (duplicate_loop_to_header_edge): Change return type to bool.
12637         (loop_version, lv_adjust_loop_entry_edge): Move here.
12638         * cfgrtl.c (cfgloop.h): Include.
12639         (rtl_verify_flow_info_1): Fix.
12640         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
12641         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
12642         initialization.
12643         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
12644         tree_lv_add_condition_to_bb): New.
12645         (tree_cfg_hooks): Add new hooks to initialization.
12646         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
12647         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
12648
12649 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
12650
12651         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
12652         xstormy16_below100_or_register,
12653         xstormy16_splittable_below100_or_register, and
12654         nonimmediate_nonstack_operand.
12655
12656         * config/stormy16/stormy16-protos.h: Remove the prototypes for
12657         xstormy16_ineqsi_operator, equality_operator,
12658         inequality_operator, shift_operator,
12659         xstormy16_below100_operand, xstormy16_below100_or_register,
12660         xstormy16_splittable_below100_or_register,
12661         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
12662         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
12663         equality_operator, inequality_operator,
12664         xstormy16_below100_operand, xstormy16_below100_or_register,
12665         xstormy16_splittable_below100_or_register,
12666         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
12667         nonimmediate_nonstack_operand, shift_operator): Move to
12668         predicates.md.
12669         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
12670         * config/stormy16/stormy16.md: Include predicates.md.
12671         * config/stormy16/predicates.md: New.
12672
12673 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
12674
12675         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
12676         small_int, large_int, reg_or_0_operand, simple_memory_operand,
12677         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
12678         move_operand, power_of_2_operand): Move to predicates.md.
12679         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
12680         PREDICATE_CODE): Remove.
12681         * config/iq2000/iq2000.md: Include predicates.md.
12682         * config/iq2000/predicates.md: New.
12683
12684 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
12685
12686         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
12687         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
12688         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
12689         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
12690         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
12691         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
12692         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
12693         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
12694         (TARGET_M68HC11): Delete.
12695         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
12696         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
12697         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
12698         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
12699         (nb_soft_regs): Delete.
12700         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
12701         (m68hc11_override_options): Remove the code that caters for MASK_M6811
12702         and MASK_M6812 being set simultaneously.  Change the code that sets
12703         the default m68hc11_soft_reg_count to use integers instead of strings.
12704         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
12705         m68hc11_soft_reg_count (which now has an int type) as the number
12706         of soft registers.
12707         * config/m68hc11/m68hc11.opt: New file.
12708
12709 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
12710
12711         * config/fr30/fr30.h (PREDICATE_CODES): Remove
12712         fp_displacement_operand, sp_displacement_operand.
12713
12714         * config/m68hc11/m68hc11-protos.h: Add a prototype for
12715         m68hcc_auto_inc_p.
12716         Remove the prototypes for tst_operand, cmp_operand,
12717         stack_register_operand, d_register_operand,
12718         hard_addr_reg_operand, splitable_operand,
12719         m68hc11_logical_operator, m68hc11_arith_operator,
12720         m68hc11_non_shift_operator, m68hc11_shift_operator,
12721         m68hc11_unary_operator, m68hc11_eq_compare_operator,
12722         non_push_operand, hard_reg_operand, and
12723         reg_or_some_mem_operand.
12724         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
12725         extern.
12726         (tst_operand, cmp_operand, non_push_operand,
12727         splitable_operand, reg_or_some_mem_operand,
12728         stack_register_operand, d_register_operand,
12729         hard_addr_reg_operand, hard_reg_operand,
12730         m68hc11_eq_compare_operator, m68hc11_logical_operator,
12731         m68hc11_arith_operator, m68hc11_non_shift_operator,
12732         m68hc11_shift_operator, m68hc11_unary_operator): Move to
12733         predicates.md.
12734         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
12735         * config/m68hc11/m68hc11.md: Include predicates.md.
12736         * config/m68hc11/predicates.md: New.
12737
12738 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
12739
12740         PR debug/19345
12741         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
12742         change checked in along with 2005-03-03's patch for debug/20253.
12743         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
12744         (remap_decl): Insert type decl in map earlier.
12745
12746 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
12747
12748         PR tree-optimization/20640
12749         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
12750         post-dominator if it has phi nodes.
12751         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
12752         before dead statements.
12753
12754 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
12755
12756         PR middle-end/20491
12757         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
12758
12759 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
12760
12761         PR rtl-optimization/20290
12762         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
12763         in every iteration if the entry point is the exit test.
12764
12765 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
12766
12767         * config/cris/cris.md (attribute "length"): Define.
12768
12769 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
12770
12771         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
12772         (word_offset_memref_operand): New.
12773         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
12774         (indexed_or_indirect_operand): Delete.
12775         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
12776         (indexed_or_indirect_operand): Delete.
12777
12778         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
12779
12780         PR 20650
12781         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
12782         a register.
12783
12784         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
12785         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
12786
12787 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
12788
12789         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
12790
12791 2005-04-01  Ian Lance Taylor  <ian@airs.com>
12792
12793         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
12794         (rus, prus): Remove static variables.
12795         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
12796         (process_command): Permit report_times and use_pipes together.
12797
12798 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
12799
12800         * c-decl.c (validate_proto_after_old_defn): Look at
12801         TYPE_MAIN_VARIANT of argument types.
12802
12803 2005-04-01  Paul Brook  <paul@codesourcery.com>
12804
12805         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
12806         (arm_output_function_epilogue): Allow call_via_SP.
12807         (thumb_call_via_reg, arm_file_end): Ditto.
12808         * config/arm/arm.h (struct machine_function): Include space for SP.
12809         (thumb_call_via_label): Update declaration.
12810
12811 2005-04-01  Ian Lance Taylor  <ian@airs.com>
12812
12813         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
12814         doing a peephole optimization, once again put any notes in the
12815         proper position.
12816
12817 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
12818
12819         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
12820
12821 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
12822
12823         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
12824         (block_alloc, find_free_reg): Likewise.
12825         * loop-doloop.c (doloop_modify): Likewise.
12826         * loop-invariant.c (record_use): Likewise.
12827         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
12828         get_iv_value, canon_condition, eliminate_implied_condition,
12829         eliminate_implied_condition, simplify_using_initial_values,
12830         shorten_into_mode, canonicalize_iv_subregs,
12831         iv_number_of_iterations): Likewise.
12832         * loop-unroll.c (expand_var_during_unrolling): Likewise.
12833         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
12834         unswitch_loop): Likewise.
12835         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
12836         move_movables, replace_call_address, find_and_verify_loops,
12837         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
12838         record_giv, final_giv_value, general_induction_var,
12839         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
12840         loop_giv_dump): Likewise.
12841
12842         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
12843         GCOV_CHECK_WRITING): Remove.
12844         (gcov_position, gcov_rewrite): Use gcc_assert.
12845         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
12846         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
12847         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
12848         gcc_assert.
12849
12850 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
12851
12852         * tree-inline.c: Fix a typo.
12853
12854 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
12855
12856         * configure.ac (enable-checking): Explicitly set all variables for
12857         collective switch values.  Alphabetize variables. Rename
12858         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
12859         synonym for 'no'.
12860         * doc/install.texi (enable-checking): Update documentation.
12861         * configure: Rebuilt.
12862
12863 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
12864
12865         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
12866         possible.
12867
12868 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
12869
12870         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
12871         Also reject cases where this pattern will cause load delay stalls
12872         unless optimizing for size and it will produce a shorter sequence.
12873         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
12874         variants to avoid pre-adjusting the base when possible.
12875
12876 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
12877
12878         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
12879         the frame and argument pointers.
12880         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
12881         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
12882         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
12883         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
12884         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
12885         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
12886
12887 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
12888
12889         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
12890         with entry for selectany attribute.
12891         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
12892         Declare.
12893         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
12894         (i386_pe_asm_named_section): Handle sections generated by
12895         selectany attribute.
12896         * doc/extend.texi (selectany): Document attribute.
12897
12898 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
12899             Jan Hubicka  <jh@suse.cz>
12900
12901         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
12902         to fix addresses involving EBP and ESP.
12903         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
12904         for SUBREGed registers.
12905         (legitimate_address_p): Accept SUBREGed registers.
12906
12907 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
12908
12909         PR c++/19406
12910         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
12911         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
12912         for FIELD_DECLs.
12913
12914 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
12915
12916         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
12917
12918 2005-04-01  James E Wilson  <wilson@specifixinc.com>
12919
12920         PR c++/20505
12921         * dwarf2out.c (rtl_for_decl_init): New function.
12922         (rtl_for_decl_location): Extracted from here.
12923         (tree_add_const_value_attribute): Call rtl_for_decl_init and
12924         add_const_value_attribute.  Delete initializer_constant_valid_p call.
12925
12926 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
12927
12928         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
12929         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
12930         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
12931         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
12932         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
12933         config/i386/i386.md, config/rs6000/predicates.md,
12934         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
12935         config/s390/s390.c, config/stormy16/stormy16.c,
12936         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
12937         typos.
12938
12939 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
12940
12941         PR c/17855
12942         * gimplify.c (gimplify_expr): Create a temporary for lvalue
12943         COND_EXPR and CALL_EXPR.
12944
12945 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
12946
12947         PR target/20632
12948         * genautomata.c (first_cycle_unit_presence): Check all alternative
12949         states for unit presence.
12950
12951         * doc/md.texi: Remove remark about impossibility to query unit
12952         presence in non nondeterministic automaton state.
12953
12954         * config/ia64/ia64.c (get_template): Change order of unit querying.
12955
12956 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
12957
12958         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
12959         obsolete comment.
12960
12961 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
12962
12963         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
12964         flag for edges outside any loops.
12965
12966 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
12967
12968         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
12969
12970 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
12971
12972         * tree-ssa-alias.c: Follow spelling conventions.
12973         * doc/tree-ssa.texi: Fix a typo.
12974
12975 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
12976
12977         * postreload-gcse.c: Include target.h.
12978         (gcse_after_reload_main): Return early if we cannot modify jumps.
12979         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
12980
12981 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
12982
12983         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
12984         expensive operations.
12985
12986 2005-03-31  Ian Lance Taylor  <ian@airs.com>
12987
12988         * collect2.c (lderrout): New variable.
12989         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
12990         if it is set, to stderr.
12991         (handler): Unlink lderrout if it is set.
12992         (dump_file): Add "to" parameter.  Change all callers.
12993         (main): Initialize lderrout.
12994         (collect_execute): Add errname parameter.  Change all callers.
12995         Rename redir parameter to outname.  Never pass
12996         PEX_STDERR_TO_STDOUT to pex_run.
12997         * collect2.h (collect_execute, dump_file): Update declarations.
12998         * tlink.c (tlink_execute): Add errname parameter.  Change all
12999         callers.
13000         (do_tlink): Check lderrout as well as ldout.
13001
13002 2005-03-31  Caroline Tice  <ctice@apple.com>
13003
13004         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
13005         (bb-reorder.o): Add errors.h to list of requirements.
13006         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
13007         profiledbootstrap flags.
13008         * bb-reorder.c (errors.h): Add new include.
13009         (struct bbro_basic_block_data_def): Add new field, in_trace.
13010         (add_unlikely_executed_notes):  Remove function.
13011         (mark_bb_for_unlikely_executed_section): Remove function.
13012         (insert_section_boundary_note): New function.
13013         (verify_hot_cold_block_grouping): New function.
13014         (push_to_next_round_p): Remove variables and tests that push all
13015         cold blocks to last round.
13016         (find_traces): Remove code that added extra round of trace finding
13017         when doing partitioning.
13018         (find_traces_1_round) :  Remove variable last_round;  add code to
13019         update new struct field, in_trace; correct trace_length where it was
13020         incorrect before (after call to copy_bb); change code that pushed all
13021         cold blocks to last round. Instead verify that all blocks going into
13022         a trace belong in the same partition.
13023         (connect_traces): Modify to connect the traces in two passes, if the
13024         function contains both hot and cold blocks.  The first pass connects
13025         all the traces for blocks in the partition that the first block in
13026         the function belongs to; the second pass connnects all the traces
13027         containing blocks that belong in the other partition.
13028         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
13029         code that automatically put the first block in a function into the
13030         hot partition if the function had any hot blocks.
13031         (fix_crossing_unconditional_branches): Check number of succ edges
13032         before attempting to get one.
13033         (fix_edges_for_rarely_executed_code):  Update comment describing
13034         function.
13035         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
13036         remove call to add_unlikely_executed_notes; add call to
13037         verify_hot_cold_block_grouping.
13038         (duplicate_computed_gotos): Don't change computed goto if it's a
13039         crossing edge.
13040         (partition_hot_cold_basic_blocks):  Update function comment.
13041         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
13042         condition.
13043         (try_forward_edges): Likewise.
13044         (merge_blocks_move_predecessor_nojumps): Likewise.
13045         (merge_blocks_move_successor_nojumps): Likewise.
13046         (merge_blocks_move): Likewise.
13047         (try_crossjump_bb): Likewise.
13048         * cfglayout.c (update_unlikely_executed_notes): Remove function.
13049         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
13050         notes to cold bb's; remove call to update_unlikely_executed_notes.
13051         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
13052         NOTE_INSN_SWITCH_TEXT_SECTIONS.
13053         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
13054         function declaration.
13055         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
13056         from consideration.
13057         (rtl_can_merge_blocks): Remove redundancy from condition.
13058         (try_redirect_by_replacing_jump): Likewise.
13059         (force_nonfallthru_and_redirect): Remove code for adding
13060         UNLIKELY_EXECUTED_CODE notes to cold bb's.
13061         (commit_one_edge_insertion): Likewise.
13062         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
13063         * dbxout.c (FORCE_TEXT): Replace function_section with
13064         current_function_section.
13065         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
13066         function, switch_text_section.
13067         (struct xcoff_debug): Likewise.
13068         (dbxout_function_end): Add code to put out label diffs for both
13069         hot and cold sections.
13070         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
13071         for new debug_hooks funciton, switch_text_section..
13072         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
13073         switch_text_section.
13074         * dwarf2out.c (struct dw_fde_struct):  Add five new fields:
13075         dw_fde_hot_section_label, dw_fde_hot_section_end_label,
13076         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
13077         dw_fde_switched_sections.
13078         (output_call_frame_info):  Add test to see if function switches text
13079         sections in the middle; if so, use appropriate extra hot and cold
13080         section labels to compute size deltas for the hot and cold sections.
13081         (dwarf2out_begin_prologue): Add code to initialize new fields in
13082         dw_fde_struct.
13083         (dwarf2out_switch_text_section): New function (invoked through
13084         debug_hook); updates new fields in dw_fde_struct appropriately and
13085         increments separate_line_info_table_in_use.
13086         (dwarf2_debug_hooks): Initialize switch_text_section function to be
13087         dwarf2out_switch_text_section.
13088         (struct var_loc_node): Add new field, section_label.
13089         (output_aranges): Add code to check whether in hot or cold section and
13090         use the appropriate label in calculating deltas.
13091         (output_ranges): Likewise.
13092         (output_line_info): Add code to check which section we're in and
13093         use appropriate hot/cold label.
13094         (add_location_or_constant_value_attribute): Likewise.
13095         (gen_subprogam_die): Modify arange attributes to use correct labels.
13096         (dwarf2out_begin_block): Change call to function_section into call to
13097         current_function_section.
13098         (dwarf2out_end_block): Likewise.
13099         (dwarf2out_source_line): Likewise.
13100         (dwarf2out_var_location): Add code to check whether in hot or cold
13101         section and use the appropriate label.
13102         * except.c (output_function_exception_table): Change call to
13103         function_section into call to current_function_section.
13104         * final.c (profile_function): Likewise.
13105         (scan_ahead_for_unlikely_executed_note): Remove function.
13106         (final_scan_insn):  Remove calls to
13107         scan_ahead_for_unlikely_executed_note, and related code for switching
13108         to cold section, except for the single time
13109         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
13110         debug_hooks->switch_text_sections; replace appropriate calls to
13111         function_section with calls to current_function_section.
13112         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
13113         test_bb to condition.
13114         (find_if_case_2): Likewise.
13115         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
13116         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
13117         * opts.c (decode_options): Change warning about hot/cold partitioning
13118         with exceptionss to inform (so as not to cause bootstrap failures);
13119         remove warning about partitioning with DWARF debug info.
13120         * output.h (current_function_section): Add new function decl.
13121         (insert_section_boundary_note): Likewise.
13122         (enum in_section): Move this declaration here from varasm.c.
13123         (unlikely_section_label): Likewise.
13124         (unlikely_text_section_name): Likewise.
13125         (last_text_section_name): New global variable.
13126         (last_text_section): Likewise.
13127         (hot_section_label): Likewise.
13128         (hot_section_end_label): Likewise.
13129         (cold_section_end_label): Likewise.
13130         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
13131         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
13132         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
13133         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
13134         insn from consideration.
13135         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
13136         switch_text_section.
13137         * varasm.c (basic-block.h): Add new include.
13138         (unlikely_section_label_printed): Remove global variable.
13139         (unlikely_section_label): Make global variable not be static any more.
13140         (unlikely_text_section_name): Likewise.
13141         (hot_section_end_label): New global variable (not static)
13142         (first_function_block_is_cold): Likewise.
13143         (hot_section_label): Likewise.
13144         (cold_section_end_label): Likewise..
13145         (last_text_section): New global variable, not static.
13146         (last_text_section_name): New global variable, not static.
13147         (initialize_cold_section_name): New function.
13148         (enum in_section): Move declaration to output.h.
13149         (text_section): Update last_text_section.
13150         (unlikely_text_section): Replace code to determine cold section name
13151         with call to initialize_cold_section_name; Add code to update
13152         last_text_section; remove code for printing out label.
13153         (named_section_real): Add code to update last_text_section and
13154         last_text_section_name as appropriate.
13155         (function_section): Change test for 'unlikely' to depend on
13156         first_function_block_is_cold (moved old test to
13157         current_function_section).
13158         (current_function_section): New function.
13159         (assemble_start_function): Move code that frees
13160         unlikely_text_section_name; initialize hot_section_end_label;
13161         print hot and cold section labels at the start of the function;
13162         set first_function_block_is_cold, if appropriate; initialize l
13163         ast_text_section; add call to insert_section_boundary_note.
13164         (assemble_end_function):  Add code to write out hot and cold section
13165         end labels.
13166         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
13167         switch_text_section.
13168         * config/darwin.c (machopic_select_section): Replace incorrect
13169         function in base_funs; update reloc for cold sections if necessary.
13170         * config/darwin.h (SECTION_FUNCTION):  Add code to update
13171         last_text_section if appropriate.
13172         (text_unlikely_section): Remove.
13173         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
13174         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
13175         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
13176         partitioning for this architecture.
13177
13178 2005-03-31  Olivier Hainque  <hainque@adacore.com>
13179
13180         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
13181         defined and non-zero.
13182
13183 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13184
13185         PR c++/18644
13186         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
13187         semantics.
13188
13189 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
13190
13191         PR target/20611
13192         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
13193         label operand.  Remove (use (unspec..)).  Don't emit a label on
13194         the offset word.
13195         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
13196         generate inline label for load_toc_v4_PIC_1b.
13197         (rs6000_emit_load_toc_table): Likewise.
13198
13199 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
13200
13201         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
13202         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
13203
13204 2005-03-29  Devang Patel  <dpatel@apple.com>
13205
13206         * tree-sra.c (decide_block_copy): Disable scalarization of
13207         sub-elements.
13208
13209 2005-03-30  Stuart Hastings  <stuart@apple.com>
13210             Dale Johannesen  <dalej@apple.com>
13211
13212         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
13213         * print-tree.c (print_node):  Add case STATEMENT_LIST.
13214
13215 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
13216
13217         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
13218         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
13219         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
13220         is given with "powerpc64*" or "all", or when --with-cpu chooses
13221         a 64-bit cpu.
13222
13223 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
13224
13225         PR debug/20268
13226         * dwarf2out.c (add_high_low_attributes): New function, extracted from
13227         gen_lexical_block_die.
13228         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
13229
13230 2005-03-31  Jan Hubicka  <jh@suse.cz>
13231
13232         2004-11-02  Jan Hubicka  <jh@suse.cz>
13233
13234         * cgraph.c (cgraph_varpool_node_name): New function.
13235         (dump_cgraph_varpool_node): New function.
13236         (dump_varpool): New function.
13237         * cgraphunit.c (cgraph_optimize): Dump varpool.
13238
13239         2004-10-16  Jan Hubicka  <jh@suse.cz>
13240
13241         * cgraph.c (decide_is_variable_needed): New function.
13242         (cgraph_varpool_finalize_decl): Use it.
13243         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
13244         unit-at-a-time.
13245         * final.c (output_addr_const): Do not call mark_referenced.
13246         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
13247         always go via cgraph.
13248         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
13249         (check_global_declarations): Ifdef out code clearing DECL_RTL.
13250         * tree-optimize.c (execute_inline): Mark functions called.
13251         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
13252
13253         2004-10-11  Jan Hubicka  <jh@suse.cz>
13254
13255         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
13256         (cgraph_varpool_last_needed_node): New static variable.
13257         (enqueue_needed_varpool_node): Break out from ...; add items to the
13258         end of queue; update first pointers.
13259         (cgraph_varpool_mark_needed_node): ... here.
13260         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
13261         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
13262         * cgraph.h (cgraph_varpool_node): Add analyzed field.
13263         (cgraph_varpool_first_unanalyzed_node): Declare.
13264         * cgraphunit.c: Include output.h.
13265         (cgraph_varpool_analyze_pending_decls): New function.
13266         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
13267         for errors, analyze pending decls.
13268         (cgraph_finalize_compilation_unit): Only analyze decls.
13269         (cgraph_optimize): Assemble the decls after expanding.
13270
13271 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
13272
13273         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
13274         subvars get marked properly in tags for grouping.
13275         (add_pointed_to_var): Mark only actual pointed to
13276         variables/subvars in addresses needed.
13277         (create_overlap_variables_for): Clear call clobbered on original
13278         variable.
13279         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
13280         addresable vars with subvars into list.
13281         * tree-ssa.c (verify_ssa_name): Verify original is not used where
13282         subvar should be.
13283
13284 2005-03-30  Richard Henderson  <rth@redhat.com>
13285
13286         * cgraph.h (struct cgraph_node): Add alias.
13287         * varasm.c (assemble_alias): Set it.
13288         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
13289         avoid calling cgraph_expand_function.
13290
13291 2005-03-30  Tom Tromey  <tromey@redhat.com>
13292
13293         * tree.def (FILE_TYPE): Removed.
13294         * typeclass.h (enum type_class): Removed file_type_class.
13295         * dwarf2out.c (is_base_type): Updated.
13296         (gen_type_die): Likewise.
13297         * dbxout.c (dbxout_type): Updated.
13298         * builtins.c (type_to_class): Updated.
13299         * tree.c (type_contains_placeholder_1): Updated.
13300         * config/sparc/sparc.c (sparc_type_code): Updated.
13301         * config/ia64/ia64.c (hfa_element_mode): Updated.
13302         * expr.c (count_type_elements): Updated.
13303         * stor-layout.c (layout_type): Updated.
13304         * tree-inline.c (remap_type): Updated.
13305         * tree-pretty-print.c (dump_generic_node): Updated.
13306
13307 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
13308
13309         * builtins.c (expand_builtin_powi): Fix mode of
13310         2nd argument to match int.
13311         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
13312         2nd argument type to int.
13313         * libgcc2.c: Change prototype of __powi* functions to use
13314         int.
13315
13316 2005-03-30  Dale Johannesen  <dalej@apple.com>
13317
13318         PR middle-end/19225
13319         * calls.c (expand_call):  Flush pending deferrals before
13320         throwing call.
13321
13322 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
13323
13324         PR c/772
13325         PR c/17913
13326         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
13327         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
13328         c_label_context, label_context_stack): New.
13329         * c-decl.c (define_label): Check for jumps into statement
13330         expressions.  Add label to list of defined labels.
13331         (start_function): Push context on label_context_stack.
13332         (finish_function): Pop context from label_context_stack.
13333         * c-typeck.c (label_context_stack): New.
13334         (c_finish_goto_label): Check for jumps into statement
13335         expressions.  Add label to list of jumped to labels.
13336         (struct c_switch): Add blocked_stmt_expr.
13337         (c_start_case): Initialize it.
13338         (do_case): Check it.
13339         (c_finish_case): Verify !blocked_stmt_expr.
13340         (c_begin_stmt_expr):  Push context on label_context_stack.
13341         Increment blocked_stmt_expr.  Mark labels jumped to from outside
13342         as undefinable.
13343         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
13344         defined in the statement expression and no longer jumpable to.
13345         Mark labels jumped to from just outside the statement expression
13346         as again definable.  Pop context from label_context_stack.
13347         * doc/extend.texi (Statement Exprs): Update.
13348
13349 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
13350
13351         PR c/20368
13352         * c-decl.c (start_function): Check for old_decl being
13353         error_mark_node.
13354
13355 2005-03-30  Ian Lance Taylor  <ian@airs.com>
13356
13357         * final.c (final): Remove prescan parameter.  Change all callers.
13358         (final_scan_insn): Remove prescan parameter.  Change all callers.
13359
13360 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
13361
13362         * tree-vectorizer.c: Fix comment typos.
13363
13364 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
13365
13366         * tree-scalar-evolution.c (instantiate_parameters_1): Return
13367         as soon as a chrec_dont_know is detected.
13368
13369 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
13370
13371         Merge from csl-arm-branch.
13372         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
13373
13374         * tlink.c (recompile_files): Do not assume that "rename" can
13375         overwrite an existing file.
13376
13377 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
13378
13379         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
13380         * gcc/configure: Regenerate.
13381
13382 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
13383
13384         * doc/install.texi: Update binutils requirement for powerpc*-linux.
13385
13386         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
13387
13388         * calls.c (struct arg_data): Update "partial" comment.
13389         (load_register_parameters): Update "nregs" comment.
13390
13391 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13392
13393         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
13394         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
13395         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
13396         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
13397         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
13398         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
13399         than target_flags & 0.
13400         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
13401         (iq2000_arch, iq2000_parse_cpu): Delete.
13402         (TARGET_HANDLE_OPTION): Override default.
13403         (iq2000_handle_option): New function.
13404         (override_options): Remove -march= and -mcpu= handling.
13405         * config/iq2000/iq2000.opt: New file.
13406
13407 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13408
13409         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
13410         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
13411         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
13412         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
13413         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
13414         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
13415         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
13416         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
13417         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
13418         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
13419         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
13420         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
13421         (c4x_rpts_cycles_string, c4x_cpu_version_string)
13422         (TARGET_OPTIONS): Delete.
13423         (c4x_rpts_cycles, c4x_cpu_version): Declare.
13424         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
13425         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
13426         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
13427         (c4x_cpu_version_string): Delete.
13428         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
13429         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
13430         equivalent -mcpu= option.
13431         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
13432         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
13433         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
13434         or clearing the appropriate MASK_* bit.
13435         (c4x_file_start): Use c4x_cpu_version.
13436         * config/c4x/c4x.opt: New file.
13437
13438 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13439
13440         * doc/options.texi: Document the new MaskExists flag.
13441         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
13442         if the option has the MaskExists flag.
13443
13444 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13445
13446         * opt-functions.awk (flag_set_p, test_flag): New functions.
13447         (switch_flags): Use them.
13448         * opth-gen.awk: Use flag_set_p to check for flags.
13449         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
13450
13451 2005-03-30  Ian Lance Taylor  <ian@airs.com>
13452
13453         * config.host (i[34567]86-*-mingw32*): Don't set
13454         host_can_use_collect2 to no.
13455
13456 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
13457
13458         PR target/20203
13459         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
13460         Remove convert_memory_address call duplicating that in memory_address.
13461
13462 2005-03-29  Richard Henderson  <rth@redhat.com>
13463
13464         PR c/20519
13465         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
13466         (build_compound_literal): Likewise.  Propagate decl type into the
13467         initializer.
13468         (finish_decl): Likewise.  Use new return value from complete_array_type
13469         for zero sized arrays.
13470         (complete_array_type): Move ...
13471         * c-common.c (complete_array_type): ... here.  Change first argument
13472         to pointer-to-type-node.  Consistently use sizetype for the index
13473         except for zero sized arrays.  Detect zero sized arrays for pedantic
13474         mode diagnostics.  Create a new type node instead of modifying the
13475         old node in place.
13476         * c-tree.h (complete_array_type): Move decl ...
13477         * c-common.h (complete_array_type): ... here.
13478
13479 2005-03-29  Richard Henderson  <rth@redhat.com>
13480
13481         PR tree-opt/19108
13482         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
13483
13484 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
13485
13486         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
13487         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
13488         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
13489         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
13490
13491 2005-03-29  Eric Christopher  <echristo@redhat.com>
13492
13493         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
13494         truthvalue conversion removal.
13495
13496 2005-03-29  Ian Lance Taylor  <ian@airs.com>
13497
13498         PR bootstrap/14316
13499         * collect2.c: Never include <vfork.h>.
13500         (VFORK_STRING, vfork): Don't define.
13501         (pid): Remove global variable.
13502         (handler): Call raise instead of kill (getpid(), ...).
13503         (collect_wait): Add pex parameter.  Change all callers.  Use
13504         pex_get_status rather than pwait.
13505         (do_wait): Add pex parameter.  Change all callers.
13506         (collect_execute): Return struct pex_obj * rather than void.  Use
13507         pex routines rather than pexecute.
13508         (fork_execute): Get pex_obj from collect_execute, and pass it to
13509         do_wait.
13510         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
13511         Only declare quit_handler if SIGQUIT is defined.
13512         (scan_libraries): Likewise.
13513         * collect2.h (collect_execute): Update declaration.
13514         (collect_wait): Update declaration.
13515         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
13516         pass it to collect_wait.
13517
13518 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
13519
13520         PR c/20672
13521         * c-parser.c (c_parser_compound_statement_nostart): Give error
13522         message for EOF instead of just setting parser->error.
13523
13524 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
13525
13526         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
13527         (slpeel_update_phi_nodes_for_guard1): New function.
13528         (slpeel_update_phi_nodes_for_guard2): New function.
13529         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
13530         of slpeel_update_phi_nodes_for_guard.
13531         (vectorize_loops): Remove call to loop_closed_rewrite.
13532         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
13533         assertion.
13534
13535 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
13536
13537         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
13538         (TARGET_LITTLE_ENDIAN): New macro.
13539         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
13540         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
13541         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
13542         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
13543         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
13544         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
13545         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
13546         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
13547         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
13548         (TARGET_OPTIONS): Delete.
13549         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
13550         (CACHE_FLUSH_TRAP): Turn into an integer.
13551         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
13552         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
13553         -mflush-trap is in use.
13554         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
13555         (m32r_cache_flush_trap_string): Delete.
13556         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
13557         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
13558         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
13559         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
13560         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
13561         -mmodel= and -msdata= handling from...
13562         (m32r_init): ...here.
13563         * config/m32r/m32r.opt: New file.
13564
13565 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
13566
13567         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
13568         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
13569         * tree-vect-analyze.c (vect_object_analysis): additional parm
13570         pass back a "struct ptr_info_def *" with the points-to info.
13571         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
13572         statement using info returned from vect_object_analysis.
13573         * tree-vect-transform.c (update_vuses_to_preheader): New function.
13574         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
13575         for virtual uses and defs when creating a replacement vector
13576         reference.  Call duplicate_ssa_name_ptr_info to define points-to
13577         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
13578         (vectorizable_store): copy_virtual_operands and update
13579         definition statements.
13580         (vectorizable_load): copy_virtual_operands.  Remove call to
13581         mark_call_clobbered_vars_to_rename for call to "const" builtin.
13582         * tree-vectorizer.c (vectorize_loops): Remove calls to
13583         rewrite_into_ssa and bitmap_clear (vars_to_rename).
13584         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
13585         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
13586         define macro STMT_VINFO_PTR_INFO for use in accessing.
13587         * tree.h add export of duplicate_ssa_name_ptr_info.
13588         * rs6000.c (altivec_init_builtins): Declare builtin function
13589         __builtin_altivec_mask_for_load to be "const".
13590
13591 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
13592
13593         PR middle-end/20622
13594         * cgraph.h (struct cgraph_varpool_node): Add alias field.
13595         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
13596         assemble_variable on aliases.
13597         * varasm.c (assemble_alias): Set node->alias.
13598         * toplev.c (wrapup_global_declarations): Don't call
13599         rest_of_decl_compilation on aliases again.
13600
13601 2005-03-29  Paul Brook  <paul@codesourcery.com>
13602
13603         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
13604         * config/arm/arm.c (arm_dbx_register_number): New function.
13605         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
13606
13607 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
13608
13609         PR middle-end/20263
13610         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
13611         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
13612
13613 2005-03-29  Dale Johannesen <dalej@apple.com>
13614
13615         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
13616         $(TREE_H) and $(COVERAGE_H).
13617         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
13618         * opts.c (common_handle_option): Enable tree-based value transforms.
13619         * toplev.c (process_options): Ditto.
13620         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
13621         refers to references to this type.
13622         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
13623         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
13624         for may_be_more, may_be_less.
13625         (rtl_gen_pow2_profiler): Adjust.
13626         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
13627         (rtl_gen_one_value_profiler): Adjust.
13628         (rtl_gen_const_delta_profiler): Adjust.
13629         * tree-profile.c (tree_gen_interval_profiler): Implement.
13630         (tree_gen_pow2_profiler): Ditto.
13631         (tree_gen_one_value_profiler): Ditto.
13632         (tree_profiling): New.
13633         (pass_tree_profile): Reference it.
13634         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
13635         tree.h, gcov-io.h.
13636         (insn_divmod_values_to_profile): Rename to
13637         rtl_divmod_values_to_profile. Adjust.
13638         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
13639         (insn_prefetch_values_to_profile): Adjust.
13640         (rtl_value_profile_transformations): Adjust.
13641         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
13642         (gen_mod_pow2): Rename to rtl_mod_pow2.
13643         (gen_mod_subtract): Rename to rtl_mod_subtract.
13644         (divmod_fixed_value_transform): Rename to
13645         rtl_divmod_fixed_value_transform.
13646         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
13647         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
13648         (rtl_find_values_to_profile): Adjust.
13649         (tree_value_profile_transformations): Implement.
13650         (tree_divmod_values_to_profile): New.
13651         (tree_values_to_profile): New.
13652         (tree_divmod_fixed_value): New.
13653         (tree_mod_pow2): New.
13654         (tree_mod_subtract): New.
13655         (tree_divmod_fixed_value_transform): New.
13656         (tree_mod_pow2_value_transform): New.
13657         (tree_mod_subtract_transform): New.
13658         (tree_find_values_to_profile): Implement.
13659         * profile.c (instrument_values):  Free histograms.
13660         (compute_value_histograms): Adjust. Implement tree version.
13661
13662 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
13663
13664         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
13665         * config/i386/i386.c (output_fix_trunc): Add new round_mode
13666         variable.  Output "fldcw" depending on round_mode.
13667         * config/i386/i386.md (UNSPEC_FIST): New.
13668         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
13669         New isns patterns to implement lrint and llrint built-ins as x87
13670         intrinsic function.
13671         (fistdi2, fist<mode>2 splitters): New splitters.
13672         (lrint<mode>2): New expanders.
13673
13674 2005-03-28  Ian Lance Taylor  <ian@airs.com>
13675
13676         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
13677         0 when calling final_scan_insn.
13678
13679 2005-03-28  Jan Hubicka  <jh@suse.cz>
13680
13681         PR middle-end/20635
13682         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
13683         as needed.
13684
13685         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
13686         types where possible.
13687
13688 2005-03-26  Per Bothner  <per@bothner.com>
13689
13690         Make -f[no-]show-column also control non-cpp diagnostics.
13691         * c.opt (fshow-column): Move option from here ...
13692         * common.opt (fshow-column): ... to here.
13693         * diagnostic.c (diagnostic_build_prefix): Only print column number
13694         if flag_show_column.
13695
13696 2005-03-27  Steven Bosscher  <stevenb@suse.de>
13697
13698         * vax-protos.h (vax_output_int_move, vax_output_int_add,
13699         vax_output_conditional_branch): New prototypes.
13700         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
13701         extracted from vax.md mov and add patterns.
13702         (vax_output_conditional_branch): New function to output conditional
13703         branch instructions.
13704         * vax.md: Use mode macros for arithmetic and mov patterns.
13705         Use code macros for the jump patterns.
13706
13707 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
13708
13709         * Makefile.in (libbackend.o): Depend on version files;
13710         add custom generation command.
13711
13712 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
13713
13714         PR target/20636
13715         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
13716         sure that we have a REG before getting its REGNO.
13717
13718 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13719
13720         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
13721         * builtins.def (BUILT_IN_STRNDUP): New.
13722
13723 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
13724
13725         PR tree-optimization/20470
13726         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
13727         ABS(x-y).
13728
13729 2005-03-25  Mike Stump  <mrs@apple.com>
13730
13731         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
13732         sized objects.
13733
13734 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
13735
13736         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
13737         Use our own structure definitions.
13738
13739         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
13740         (fix_truncdfsi2): Allow registers or memory as destination.
13741         When TARGET_PPC_GFXOPT, generate simplified pattern.
13742         (fix_truncdfsi2_internal): Use define_insn_and_split.
13743         (fix_truncdfsi2_internal_gfxopt): New.
13744         (fctiwz): Don't confuse register allocation by giving it no choices.
13745         (stfiwx): New.
13746         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
13747         (EXTRA_MEMORY_CONSTRAINT): Likewise.
13748         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
13749         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
13750
13751 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
13752
13753         * dominance.c (free_dominance_info): Speed up by freeing et
13754         data structures without maintaining other nodes.
13755         * et-forest.c (et_free_tree_force): New.
13756         * et-forest.h: Add a prototype for et_free_tree_force.
13757
13758         * tree.c (get_set_constructor_bits,
13759         get_set_constructor_bytes): Remove.
13760         * tree.h: Remove the corresponding prototypes.
13761
13762 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
13763
13764         PR target/15491
13765         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
13766         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
13767         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
13768         PRE_DEC, NEG and NOT.
13769
13770 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
13771
13772         * fold-const.c: Convert uses of fold (build (...)) to
13773         fold_buildN.
13774
13775 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
13776
13777         PR rtl-optimization/20249
13778         * cse.c (insert_regs): Do not record equivalence of registers in
13779         different modes.
13780
13781 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
13782
13783         * emit-rtl.c (reverse_comparison): Remove.
13784         * rtl.h: Remove the corresponding prototype.
13785
13786 2005-03-24  James E Wilson  <wilson@specifixinc.com>
13787
13788         * doc/install.texi (--enable-altivec): Delete docs.
13789
13790 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
13791
13792         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
13793         SFmode and DFmode before reload when
13794         flag_unsafe_math_optimizations not enabled.
13795
13796 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
13797
13798         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
13799
13800         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
13801         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
13802
13803 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
13804
13805         * configure.ac (enable-checking): Add 'runtime' option.
13806         * doc/install.texi (enable-checking): Document 'runtime' checking.
13807         * tsystem.h (gcc_assert, gcc_unreachable): Define.
13808         * config.in: Regenerated.
13809         * configure: Regenerated.
13810
13811 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
13812
13813         * optabs.h (enum optab_index): Remove OTI_llrint.
13814         (llrint_optab): Remove macro.
13815         * optabs.c (init_optabs): Remove llrint_optab initialization.
13816         * genopinit.c (optabs): Remove llrint_optab implementation.
13817         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
13818         using lrint_optab.
13819
13820 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
13821
13822         PR rtl-optimization/20532
13823         * simplify-rtx.c (simplify_binary_operation_1): Protect from
13824         overflow when adding coefficients for PLUS or MINUS.
13825         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
13826         two as multiplier.
13827
13828 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
13829
13830         * langhooks.h (truthvalue_conversion): Remove.
13831         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
13832         LANG_HOOKS_TRUTHVALUE_CONVERSION.
13833         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
13834         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
13835         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
13836
13837 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
13838
13839         * params.def: Fix a typo.
13840         * config/mips/mips.c: Follow the spelling convensions.
13841         * doc/invoke.texi: Fix typos.
13842
13843 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
13844
13845         Fix PR tree-optimization/20601
13846
13847         * tree-ssa-pre.c (insert_aux): Add missing condition to
13848         constification.
13849
13850 2005-03-23  Ian Lance Taylor  <ian@airs.com>
13851
13852         * final.c (final_scan_insn): Don't remove no-op instructions.
13853         * reload1.c (reload): Remove simple no-op instructions even when
13854         not optimizing.
13855
13856 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
13857
13858         PR tree-optimization/20501
13859         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
13860         reporting that peeling for alignment is applied moved to...
13861         * (vect_analyze_data_refs_alignment): Here.
13862
13863 2005-03-23  Ian Lance Taylor  <ian@airs.com>
13864
13865         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
13866
13867 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13868
13869         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
13870         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
13871
13872 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
13873
13874         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
13875         imply that this is called once, independent of asms in code.
13876         Adjust to now being pased output and input lists.  Mention helper
13877         function decl_overlaps_hard_reg_set_p.
13878         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
13879         hook_tree_tree_identity and to take three trees, returning third.
13880         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
13881         prototype.
13882         * stmt.c: include hard-reg-set.h before tree.h.
13883         (decl_overlaps_hard_reg_set_p): New function, broken out from...
13884         (decl_conflicts_with_clobbers_p): Call
13885         decl_overlaps_hard_reg_set_p.
13886         (expand_asm_operands): Pass output and input lists in call to
13887         targetm.md_asm_clobbers.
13888         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
13889         hook_tree_tree_tree_tree_3rd_identity.
13890         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
13891         parameters.
13892         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
13893         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
13894         parameters, first two unused.
13895         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
13896         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
13897         in constraint letters and MOF is not mentioned as a asm-declared
13898         register in neither of the input and output lists.
13899
13900 2005-03-23  DJ Delorie  <dj@redhat.com>
13901
13902         * optabs.c (expand_binop): Make sure the first subword's result
13903         gets stored.
13904
13905 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
13906
13907         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
13908         Call c_common_truthvalue_conversion rather than
13909         lang_hooks.truthvalue_conversion.
13910         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
13911         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
13912         c-typeck.c.
13913         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
13914         c_common_truthvalue_conversion.
13915         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
13916         c_parser_conditional_expression, c_parser_binary_expression): Call
13917         c_objc_common_truthvalue_conversion.
13918         * c-typeck.c (build_unary_op): Call
13919         c_objc_common_truthvalue_conversion.
13920         (build_conditional_expr): Do not call
13921         lang_hooks.truthvalue_conversion.
13922         (build_binary_op): Call c_common_truthvalue_conversion.
13923         (c_objc_common_truthvalue_conversion): Moved from
13924         c-objc-common.c.  Call default_function_array_conversion instead
13925         of default_conversion.
13926
13927 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
13928
13929         * c-common.h (default_conversion): Remove.
13930         (perform_integral_promotions): Add.
13931         * c-tree.h (default_conversion): Add.
13932         * c-typeck.c (perform_integral_promotions): New, split out from
13933         default_conversion.
13934         * c-common.c (check_case_value): Use perform_integral_promotions,
13935         not default_conversion.
13936         (c_add_case_label): Don't continue processing case label after
13937         found to be pointer.
13938
13939 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
13940
13941         * gcc.c (do_spec_1): Do not add a -L path for a directory in
13942         the prefix list if we have already added a multilib directory
13943         based on that path.
13944         (main): Do not add MD_EXEC_PREFIX to the list of directories to
13945         search with -L.
13946
13947 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
13948
13949         * reload1.c (indirect_symref_ok, reload_obstack): Make them
13950         static.
13951         * reload.h: Remove the prototype for indirect_symref_ok.
13952
13953         * reload1.c (indirect_symref_ok): Make it global.
13954         * reload.h: Add a prototype for indirect_symref_ok.
13955
13956 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
13957
13958         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
13959         ashlhi3 expander.
13960
13961 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
13962
13963         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
13964
13965 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
13966
13967         * c-opts.c (c_common_parse_file): Only start/end main source file
13968         if debug hooks says the writer wants it.
13969         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
13970         member.
13971         (xcoff_debug_hooks): Ditto.
13972         * debug.c (do_nothing_hooks): Ditto.
13973         * debug.h (gcc_debug_hooks): Ditto.
13974         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
13975         * sdbout.c (sdb_debug_hooks): Ditto.
13976         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
13977
13978 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
13979
13980         * doc/extend.texi: Deprecate C++ min/max operators.
13981
13982 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
13983
13984         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
13985         artificial original candidates.
13986
13987 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
13988             Jan Hubicka  <jh@suse.cz>
13989             Steven Bosscher <stevenb@suse.de>
13990
13991         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
13992         call cost based on argument sizes.
13993         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
13994         inlining.
13995         * params.def: (max-inline-inssn-single): Set to 450.
13996         (max-inline-insns-auto): Set to 90.
13997         (max-inline-insns-recursive): Set to 450
13998         (max-inline-insns-recursive-auto): Set to 450.
13999         (large-function-insns): Set to 2700.
14000         (inline-call-cost): New parameter.
14001         * tree-inline.c (estimate_move_cost): New function.
14002         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
14003         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
14004         based on arguments.
14005         * tree-inline.h (estimate_move_cost): Declare.
14006         * invoke.texi: (max-inline-inssn-single): Change default to 450.
14007         (max-inline-insns-auto): Change default to 90.
14008         (max-inline-insns-recursive): Change default to 450
14009         (max-inline-insns-recursive-auto): Change default to 450.
14010         (large-function-insns): Change default to 2700.
14011         (inline-call-cost): Document new parameter.
14012
14013 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
14014
14015         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
14016         (TARGET_DEFAULT): Delete.
14017         * config/i860/i860.opt: New file.
14018
14019 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
14020
14021         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
14022         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
14023         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
14024         (frv_sched_lookahead): Delete.
14025         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
14026         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
14027         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
14028         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
14029         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
14030         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
14031         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
14032         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
14033         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
14034         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
14035         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
14036         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
14037         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
14038         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
14039         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
14040         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
14041         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
14042         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
14043         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
14044         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
14045         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
14046         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
14047         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
14048         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
14049         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
14050         (frv_sched_lookahead): Delete.
14051         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
14052         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
14053         (frv_handle_option): New function.  Move -mcpu= handling from...
14054         (frv_override_options): ...here.  Remove handling of other
14055         TARGET_OPTIONS.
14056         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
14057         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
14058         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
14059         and TARGET_NO_MULTI_CE.
14060         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
14061         !TARGET_VLIW_BRANCH.
14062         * config/frv/frv.opt: New file.
14063
14064 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
14065
14066         * fold-const.c (fold_ternary): Take decomposed arguments of
14067         CALL_EXPR.
14068         (fold): Update a call to fold_ternary.
14069
14070         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
14071         * tree.h: Add corresponding prototypes.
14072
14073 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
14074
14075         PR target/20561
14076         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
14077         between jump table and its label.
14078         * final.c (shorten_branches): Handle notes in between ADDR_VEC
14079         resp. ADDR_DIFF_VEC and the label preceeding it.
14080         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
14081         is emitted in the right section.
14082
14083 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
14084
14085         * fold-const.c (fold_unary, fold_binary): Update comments
14086         about arguments.
14087
14088 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
14089
14090         PR rtl-optimization/20527
14091         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
14092         REG_INC note, test that the register also isn't mentioned in PRED
14093         or SUCC.
14094
14095 2005-03-22  Ben Elliston  <bje@au.ibm.com>
14096
14097         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
14098         and definition.
14099
14100 2005-03-21  Mike Stump  <mrs@apple.com>
14101
14102         * varasm.c (default_assemble_visibility): Remove extra ().
14103
14104 2005-03-21  Roger Sayle  <roger@eyesopen.com>
14105
14106         PR middle-end/20557
14107         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
14108         to determine whether a block can be duplicated, rather than test
14109         whether the block contains noncopyable insns ourselves.
14110
14111 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14112
14113         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
14114         predicates.
14115
14116 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
14117
14118         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
14119
14120 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
14121
14122         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
14123         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
14124         * config/fr30/fr30.opt: New file.
14125
14126 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
14127
14128         Fix PR tree-optimization/20542
14129
14130         * tree-flow-inline.h (overlap_subvar): Move to here.
14131         * tree-ssa-operands.c: From here.
14132         * tree-flow.h (overlap_subvar): Declare.
14133         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
14134         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
14135         for variables with subvars.
14136
14137 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
14138
14139         PR middle-end/20177
14140         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
14141         * modulo-sched.c (const_iteration_count): Return on NULL
14142         pre-header.
14143         (print_node_sched_params): Return on NULL dump_file.
14144         (generate_reg_moves): Handle reg-anti dependencies and disregard
14145         closing branch when generating register moves.
14146         (sms_schedule): Mark the SMSed block dirty.
14147         * passes.c (rest_of_handle_sms): Call update_life_info for all
14148         basic-blocks.
14149         * testsuite/gcc.dg/20050321-1.c: New test.
14150
14151 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
14152
14153         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
14154         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
14155         movqi_internal): Likewise.
14156
14157 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
14158
14159         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
14160         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
14161         xtensa_b4const): Delete prototypes.
14162         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
14163         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
14164         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
14165         xtensa_extra_constraint): New prototypes.
14166         (add_operand, arith_operand, nonimmed_operand, mem_operand,
14167         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
14168         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
14169         move_operand, const_float_1_operand, fpmem_offset_operand,
14170         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
14171         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
14172         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
14173         argument type to HOST_WIDE_INT.
14174         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
14175         xtensa_mask_immediate): Likewise.
14176         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
14177         Likewise.  Also make these functions static.
14178         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
14179         (xtensa_const_ok_for_letter_p): New.
14180         (add_operand, arith_operand, nonimmed_operand, mem_operand,
14181         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
14182         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
14183         move_operand, const_float_1_operand, fpmem_offset_operand,
14184         branch_operator, ubranch_operator, boolean_operator): Move to
14185         predicates.md.
14186         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
14187         (xtensa_mem_offset): Change return type to bool.
14188         (xtensa_extra_constraint): New.
14189         (gen_int_relational): Update type of const_range_p function pointer.
14190         Use xtensa_b4const_or_zero.
14191         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
14192         xtensa_const_ok_for_letter_p.  Update comments.
14193         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
14194         (PREDICATE_CODES): Delete.
14195         * config/xtensa/xtensa.md: Include predicates.md.
14196         * config/xtensa/predicates.md: New file.
14197
14198 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14199
14200         * config/v850/v850-protos.h: Remove the prototypes for
14201         reg_or_int9_operand, reg_or_const_operand,
14202         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
14203         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
14204         movsi_source_operand, power_of_two_operand,
14205         not_power_of_two_operand, special_symbolref_operand,
14206         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
14207         register_is_ok_for_epilogue.
14208         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
14209         reg_or_int9_operand, reg_or_const_operand,
14210         call_address_operand, special_symbolref_operand,
14211         movsi_source_operand, power_of_two_operand,
14212         not_power_of_two_operand, register_is_ok_for_epilogue,
14213         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
14214         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
14215         predicates.md.
14216         * config/v850/v850.h (PREDICATE_CODES): Remove.
14217         * config/v850/v850.md: Include predicates.md.
14218         * config/v850/predicates.md: New.
14219
14220 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
14221
14222         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
14223         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
14224         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
14225         (itoolsdir, itoolsdatadir): Move definition above new first use.
14226         (install-itoolsdirs): New rule.
14227         (install-mkheaders): Depend on install-itoolsdirs, not
14228         install-include-dir.
14229
14230 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14231
14232         * tree-into-ssa.c: Remove obsolete comments.
14233
14234 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
14235
14236         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
14237         unrolling if -fpeel-loops is specified, too.
14238         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
14239         Remove superfluous check for flag_unroll_loops.
14240
14241 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
14242
14243         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
14244         (lrint_optab, llrint_optab): Define corresponding macros.
14245         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
14246         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
14247         pattern and llrint_optab using llrintdi2 patterns.
14248         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
14249         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
14250         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
14251         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
14252         flag_unsafe_math_optimizations is set.
14253
14254 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
14255
14256         * combine.c (combine_simplify_rtx, simplify_if_then_else,
14257         simplify_logical, if_then_else_cond, known_cond,
14258         simplify_comparison): Adjust calls to reverse_comparison.
14259         Don't use combine_reversed_comparison_code).
14260         (combine_reversed_comparison_code): Remove.
14261         (reversed_comparison): Using reversed_comparison_code, move it...
14262         * jump.c (reversed_comparison): ... here.
14263         * rtl.h (reversed_comparison): Add prototype.
14264
14265 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14266
14267         * builtins.c (fold_builtin): Take decomposed arguments of
14268         CALL_EXPR.
14269         * fold-const.c (fold_ternary): Update a call to fold_builtin.
14270         * gimplify.c (gimplify_call_expr): Likewise.
14271         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
14272         * tree.h: Update the prototype of fold_builtin.
14273
14274 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
14275
14276         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
14277         * rtlhooks.c (gen_lowpart_no_emit_general): New.
14278         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
14279         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
14280         * simplify-rtx.c (simplify_binary_operation_1): Use it.
14281
14282 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14283
14284         * builtins.c (fold_builtin_1): Take decomposed arguments of
14285         CALL_EXPR.
14286         (fold_builtin): Update a call to fold_builtin_1.
14287
14288 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
14289
14290         PR other/20564
14291         * gcov.c (output_lines): Only output function block summary when
14292         outputting branch information.
14293         * doc/gcov.texi: Document format of preamble and additional block
14294         information lines.
14295
14296 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
14297
14298         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
14299         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
14300         the defaults false if BITS_PER_UNIT != 8.
14301         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
14302         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
14303         than BITS_PER_UNIT != 8.
14304         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
14305         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
14306         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
14307         #undefs.
14308         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
14309         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
14310
14311 2005-03-20  Roger Sayle  <roger@eyesopen.com>
14312
14313         PR middle-end/20539
14314         * fold-const.c (fold_binary): Fix type mismatch between
14315         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
14316         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
14317         for non-truth-valued expressions.
14318
14319         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
14320         and FUNCTION_DECL in the main switch.
14321         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
14322         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
14323         we also need to convert their operands to match.
14324         <TRUTH_NOT_EXPR>: Likewise.
14325
14326 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
14327
14328         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
14329         diagnostic without checking whether an lvalue.
14330         * c-common.h (lvalue_p): Remove.
14331         (enum lvalue_use): Update comment.
14332         (lvalue_or_else): Replace by lvalue_error.
14333         * c-typeck.c (lvalue_p): Make static.
14334         (lvalue_or_else): New.  Call lvalue_error.
14335
14336 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
14337
14338         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
14339         (function_arg_advance): Use rs6000_parm_start.
14340         (function_arg, rs6000_arg_partial_bytes): Likewise.
14341
14342 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
14343
14344         * c-common.c (check_case_value): Adjust comment about stripping
14345         NOPs.
14346         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
14347         * c-typeck.c (default_conversion, convert_arguments,
14348         build_modify_expr, convert_for_assignment, store_init_value,
14349         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
14350         manually.  Remove inaccurate comments.
14351
14352 2005-03-20  Roger Sayle  <roger@eyesopen.com>
14353             Joseph S. Myers  <joseph@codesourcery.com>
14354
14355         * varasm.c (do_assemble_alias): Restore comment describing function.
14356         Annotate the target parameter as potentially unused.
14357
14358 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14359
14360         PR target/18551
14361         * config/avr/avr.c (avr_output_function_prologue): Do not use
14362         current_function_name() in a label, use a local label instead.
14363
14364 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
14365
14366         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
14367         flag_finite_math_only, not flag_unsafe_math_optimizations.
14368
14369 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
14370
14371         * builtins.c (fold_builtin_1): Update a call to
14372         targetm.fold_builtin.
14373         * hooks.c (hook_tree_tree_bool_null): Rename to
14374         hook_tree_tree_tree_bool_null.  Take one more argument of type
14375         tree.
14376         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
14377         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
14378         hook_tree_tree_tree_bool_null.
14379         * target.h (gcc_target): Update the prototype of fold_builtin.
14380         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
14381         arguments of CALL_EXPR.
14382         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
14383         new prototype.
14384
14385 2005-03-20  Jan Hubicka  <jh@suse.cz>
14386
14387         * cgraph.h (cgraph_node): Add prev_clone pointer.
14388         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
14389         (cgraph_clone_node): Produce doubly linked chain.
14390
14391 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
14392
14393         * c-common.c (handle_aligned_attribute, check_function_sentinel,
14394         get_nonnull_operand, handle_sentinel_attribute,
14395         check_function_arguments_recurse): Do not strip NOPS from
14396         INTEGER_CSTs.
14397         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
14398         Likewise.
14399         * c-format.c (get_constant): Likewise.
14400         * c-parser.c (c_parser_postfix_expression): Likewise.
14401         * c-typeck.c (set_init_index): Likewise.
14402         (convert_arguments): Don't check for NOP_EXPR containing integer
14403         constant.
14404
14405 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
14406
14407         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
14408         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
14409         Take decomposed arguments of CALL_EXPR.
14410         (fold_builtin_1): Update calls to the functions mentioned
14411         above.
14412
14413 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
14414
14415         * c-decl.c (check_bitfield_type_and_width): Require bit-field
14416         width to have integer type.
14417         (build_enumerator): Require enumerator value to have integer type.
14418
14419 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
14420
14421         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
14422         to __builtin_inff.
14423
14424 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
14425
14426         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
14427         std=iso9899:199x): Correct descriptions.
14428
14429 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
14430
14431         * config.gcc: Consistently use solaris2.1[0-9]* instead of
14432         solaris2.1[0-9].
14433
14434 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
14435
14436         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
14437         of CALL_EXPR.
14438         (expand_builtin_memcpy, fold_builtin_1): Update calls to
14439         fold_builtin_memcpy.
14440
14441         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
14442         arguments of CALL_EXPR.
14443         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
14444         fold_builtin_found, fold_builtin_1): Update calls to
14445         fold_trunc_transparent_mathfn.
14446
14447 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14448
14449         PR middle-end/20493
14450         * fold-const.c (fold_widened_comparison): Don't optimize casts of
14451         function pointers on targets that require function pointer
14452         canonicalization.
14453         (fold_sign_changed_comparison): Likewise.
14454
14455 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
14456
14457         * combine.c (try_combine): When changing the mode of a hard reg, make
14458         sure that doing so is valid.
14459
14460 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
14461
14462         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
14463         (TARGET_HANDLE_OPTION): Override default.
14464         (avr_handle_option): New function.
14465         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
14466         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
14467         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
14468         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
14469         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
14470         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
14471         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
14472         (TARGET_OPTIONS): Delete.
14473         * config/avr/avr.opt: New file.
14474
14475 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14476
14477         * config/m32r/m32r-protos.h: Remove the prototypes for
14478         call_address_operand, symbolic_operand, seth_add3_operand,
14479         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
14480         reg_or_uint16_operand, reg_or_cmp_int16_operand,
14481         two_insn_const_operand, move_src_operand,
14482         move_double_src_operand, move_dest_operand,
14483         eqne_comparison_operator, signed_comparison_operator,
14484         large_insn_p, conditional_move_operand, carry_compare_operand,
14485         m32r_block_immediate_operand, extend_operand,
14486         reg_or_eq_int16_operand, int8_operand, and
14487         reg_or_zero_operand.
14488         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
14489         seth_add3_operand, int8_operand, cmp_int16_operand,
14490         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
14491         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
14492         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
14493         move_double_src_operand, move_dest_operand,
14494         eqne_comparison_operator, signed_comparison_operator,
14495         extend_operand, small_insn_p, large_insn_p,
14496         conditional_move_operand, carry_compare_operand,
14497         m32r_block_immediate_operand): Move to predicates.md.
14498         (MAX_MOVE_BYTES): Move to m32r.h.
14499         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
14500         * config/m32r/m32r.md: Include predicates.md.
14501         * config/m32r/predicates.md: New.
14502
14503 2005-03-18  James E Wilson  <wilson@specifixinc.com>
14504
14505         PR c++/19769
14506         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
14507         origin.
14508
14509 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14510
14511         * config/mn10300/mn10300-protos.h: Remove the prototypes for
14512         call_address_operand, const_8bit_operand.
14513         * config/mn10300/mn10300.c (call_address_operand,
14514         const_8bit_operand, const_1f_operand): Move to predicates.md.
14515         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
14516         * config/mn10300/mn10300.md: Include predicates.md.
14517         * config/mn10300/predicates.md: New.
14518
14519 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
14520
14521         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
14522         declarations in diagnostics and %E for identifiers, not %s.
14523
14524 2005-03-18  Jan Hubicka  <jh@suse.cz>
14525             Dale Johannesen  <dalej@apple.com>
14526
14527         * basic-block.h (scale_bbs_frequencies_int,
14528         scale_bbs_frequencies_gcov_type): Declare.
14529         * cfg.c (RDIV): New macro.
14530         (update_bb_frequency_for_threading): Fix.
14531         * basic-block.h (scale_bbs_frequencies_int,
14532         scale_bbs_frequencies_gcov_type): New.
14533         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
14534         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
14535         scale_bbs_frequencies_int.
14536         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
14537
14538 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14539
14540         * config/m32r/m32r-protos.h: Remove the prototypes for
14541         call_address_operand, symbolic_operand, seth_add3_operand,
14542         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
14543         reg_or_uint16_operand, reg_or_cmp_int16_operand,
14544         two_insn_const_operand, move_src_operand,
14545         move_double_src_operand, move_dest_operand,
14546         eqne_comparison_operator, signed_comparison_operator,
14547         large_insn_p, conditional_move_operand, carry_compare_operand,
14548         m32r_block_immediate_operand, extend_operand,
14549         reg_or_eq_int16_operand, int8_operand, and
14550         reg_or_zero_operand.
14551         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
14552         seth_add3_operand, int8_operand, cmp_int16_operand,
14553         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
14554         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
14555         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
14556         move_double_src_operand, move_dest_operand,
14557         eqne_comparison_operator, signed_comparison_operator,
14558         extend_operand, small_insn_p, large_insn_p,
14559         conditional_move_operand, carry_compare_operand,
14560         m32r_block_immediate_operand): Move to predicates.md.
14561         (MAX_MOVE_BYTES): Move to m32r.h.
14562         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
14563         * config/m32r/m32r.md: Include predicates.md.
14564         * config/m32r/predicates.md: New.
14565
14566         * config/pa/pa-protos.h: Add prototypes for magic_milli and
14567         shadd_constant_p.
14568         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
14569         symbolic_operand, symbolic_memory_operand,
14570         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
14571         indexed_memory_operand, move_dest_operand, move_src_operand,
14572         prefetch_cc_operand, prefetch_nocc_operand,
14573         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
14574         arith_operand, arith11_operand, pre_cint_operand,
14575         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
14576         ireg_operand, int5_operand, uint5_operand, int11_operand,
14577         uint32_operand, arith5_operand, and_operand, ior_operand,
14578         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
14579         pc_or_label_operand, div_operand, plus_xor_ior_operator,
14580         shadd_operand, movb_comparison_operator,
14581         cmpib_comparison_operator): Move to predicates.md.
14582         (magic_milli, shadd_constant_p): Make it extern.
14583         * config/pa/pa.h (PREDICATE_CODES): Remove.
14584         * config/pa/pa.md: Include predicates.md.
14585         * config/pa/predicates.md: New.
14586
14587         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
14588         predicate.
14589
14590 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14591
14592         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
14593         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
14594         config/alpha/freebsd.h, config/alpha/linux.h,
14595         config/alpha/netbsd.h, config/alpha/osf5.h,
14596         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
14597         config/h8300/h8300-protos.h, config/h8300/h8300.c,
14598         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
14599         doc/cppopts.texi: Update copyright.
14600
14601 2005-03-18  Jan Hubicka  <jh@suse.cz>
14602
14603         PR middle-end/20225
14604         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
14605         too late.
14606         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
14607         called too late.
14608
14609 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14610
14611         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
14612         VEC_safe_push.
14613
14614 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
14615
14616         * combine.c (gen_binary): Remove.
14617         (known_cond, simplify_shift_const, find_split_point,
14618         combine_simplify_rtx, simplify_if_then_else, simplify_set,
14619         simplify_logical, expand_field_assignment, extract_left_shift,
14620         force_to_mode, if_then_else_cond, apply_distributive_law,
14621         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
14622         simplify_comparison, reversed_comparison): Replace with
14623         simplify_gen_binary, simplify_gen_relational or
14624         distribute_and_simplify_rtx.
14625         (distribute_and_simplify_rtx): New function.
14626
14627 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
14628             Paolo Bonzini  <gcc.gnu.org>
14629
14630         * calls.c (setjmp_call_p, special_function_p): Update comments
14631         at the head of the functions.
14632
14633 2005-03-18  Jan Hubicka  <jh@suse.cz>
14634
14635         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
14636
14637         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
14638         function body should be released; do not proactively release function
14639         bodies in non-unit-at-a-time mode.
14640
14641 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
14642
14643         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
14644         mno-fp-ret-in-387 multilib variants.
14645
14646 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
14647
14648         * common.opt (m): Remove.
14649         * opts.c (handle_option): Pass 'm' options to set_target_switch if
14650         table lookup fails.
14651         (common_handle_option): Remove OPT_m case.
14652
14653 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14654
14655         * builtins.c (fold_builtin_bitop): Take decomposed arguments
14656         of CALL_EXPR.
14657         (fold_builtin_1): Update a call to fold_builtin_bitop.
14658
14659         * builtins.c (fold_builtin_signbit): Take decomposed arguments
14660         of CALL_EXPR.
14661         (fold_builtin_1): Update a call to fold_builtin_signbit.
14662
14663 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
14664
14665         PR tree-optimization/20474
14666         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
14667         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
14668
14669 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
14670
14671         * config/h8300/h8300-protos.h: Remove prototypes for
14672         general_operand_src, general_operand_dst, single_one_operand,
14673         single_zero_operand, call_insn_operand,
14674         two_insn_adds_subs_operand, small_call_insn_operand,
14675         jump_address_operand, bit_operand, bit_memory_operand,
14676         stack_pointer_operand, const_int_gt_2_operand,
14677         const_int_ge_8_operand, const_int_qi_operand,
14678         const_int_hi_operand, incdec_operand, bit_operator,
14679         nshift_operator, eqne_operator, gtle_operator,
14680         gtuleu_operator, iorxor_operator.
14681         Add prototypes for h8sx_shift_type h8sx_classify_shift and
14682         h8300_ldm_stm_parallel.
14683         * config/h8300/h8300.c (h8sx_shift_type,): Move to
14684         h8300-protos.h.
14685         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
14686         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
14687         (h8300_ldm_stm_parallel): Make it extern.
14688         (h8300_ldm_parallel, h8300_stm_parallel,
14689         h8300_return_parallel, general_operand_src,
14690         general_operand_dst, h8300_dst_operand, h8300_src_operand,
14691         nibble_operand, reg_or_nibble_operand, single_one_operand,
14692         single_zero_operand, call_insn_operand,
14693         two_insn_adds_subs_operand, small_call_insn_operand,
14694         jump_address_operand, bit_operand, bit_memory_operand,
14695         stack_pointer_operand, const_int_gt_2_operand,
14696         const_int_ge_8_operand, const_int_qi_operand,
14697         const_int_hi_operand, incdec_operand, eqne_operator,
14698         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
14699         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
14700         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
14701         nshift_operator): Move to predicates.md.
14702         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
14703         * config/h8300/h8300.md: Include predicates.md.
14704         * config/h8300/predicates.md: New.
14705
14706 2005-03-17  Richard Henderson  <rth@redhat.com>
14707
14708         * config.gcc (ia64*-*-hpux*): Add extra_options.
14709         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
14710         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
14711         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
14712         (ia64_tls_size_string, ia64_tune_string): Remove.
14713         (ia64_tune): Init to PROCESSOR_ITANIUM2.
14714         (TARGET_DEFAULT_TARGET_FLAGS): New.
14715         (TARGET_HANDLE_OPTION): New.
14716         (ia64_override_options): Move options parsing ...
14717         (ia64_handle_option): ... here.  New.
14718         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
14719         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
14720         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
14721         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
14722         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
14723         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
14724         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
14725         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
14726         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
14727         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
14728         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
14729         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
14730         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
14731         TARGET_EARLY_STOP_BITS): Remove.
14732         (TARGET_ILP32): Default false.
14733         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
14734         (enum ia64_inline_type): New.
14735         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
14736         * config/ia64/ia64.md: Update for new definitions of
14737         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
14738         * config/ia64/ia64.opt: New file.
14739         * config/ia64/ilp32.opt: New file.
14740
14741 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
14742
14743         PR target/18380
14744         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
14745
14746 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
14747
14748         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
14749         instead of MASK_H8300S.
14750         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
14751         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
14752         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
14753         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
14754         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
14755         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
14756         TARGET_SWITCHES): Remove.
14757         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
14758         TARGET_H8300SX.
14759         * config/h8300/h8300.opt: New.
14760
14761         * config/alpha/alpha.opt, config/arc/arc.opt,
14762         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
14763         notices.
14764
14765 2005-03-17  Ian Lance Taylor  <ian@airs.com>
14766
14767         * gmon.c: Remove.
14768
14769 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
14770
14771         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
14772         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
14773         (TARGET_HANDLE_OPTION): Override default.
14774         (arc_handle_option): New function.
14775         (arc_init): Remove code to set arch_cpu_string.
14776         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
14777         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
14778         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
14779         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
14780         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
14781         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
14782         (arc_rodata_string, TARGET_OPTIONS): Delete.
14783         * config/arc/arc.opt: New file.
14784
14785 2005-03-17  Richard Henderson  <rth@redhat.com>
14786
14787         * doc/extend.texi (Weak Pragmas): New section.
14788         (attribute alias): Clarify that target must be in the same
14789         translation unit.
14790
14791 2005-03-17  Richard Henderson  <rth@redhat.com>
14792
14793         * config/alpha/alpha.opt: New file.
14794         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
14795         of alpha_cpu.
14796         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
14797         alpha_fprm_string, alpha_fptm_string): Make static.
14798         (alpha_tls_size_string): Remove.
14799         (alpha_handle_option): New.
14800         (override_options): Update for alpha_cpu/alpha_tune split.
14801         (alpha_file_start): Likewise.
14802         (TARGET_DEFAULT_TARGET_FLAGS): New.
14803         (TARGET_HANDLE_OPTION): New.
14804         * config/alpha/alpha.h (alpha_tune): Declare.
14805         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
14806         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
14807         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
14808         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
14809         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
14810         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
14811         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
14812         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
14813         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
14814         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
14815         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
14816         (TARGET_DEFAULT): Remove MASK_FP.
14817         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
14818         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
14819         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
14820         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
14821         alpha_tls_size_string): Remove.
14822         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
14823         (attribute tune): Rename from attribute cpu.
14824         * config/alpha/ev4.md: Update to match.
14825         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
14826         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
14827         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
14828         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
14829         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
14830         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
14831
14832 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
14833
14834         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
14835         and return without creating new state if before_nops_num is nonzero.
14836         * config/ia64/ia64.md (first_insn): New attribute.
14837         (alloc): Set it to yes.
14838
14839 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
14840
14841         * tree-vectorizer.c (new_vec_stmt_info): Initialize
14842         STMT_VINFO_SUBVARS to NULL.
14843         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
14844
14845 2005-03-16 Dale Johannesen  <dalej@apple.com>
14846
14847         * rtlanal.c (find_first_parameter_load):  Rewrite to
14848         return actual first param load or the call if none,
14849         instead of first in block, when not all loads exist.
14850
14851 2005-03-16  Roger Sayle  <roger@eyesopen.com>
14852
14853         * optabs.c (expand_copysign_absneg): Make static.
14854         * optabs.h (expand_copysign_absneg): Delete prototype.
14855         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
14856
14857 2005-03-16  Richard Henderson  <rth@redhat.com>
14858
14859         PR middle-end/15700
14860         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
14861         (alias_pairs): Rename from output_defs.
14862         (find_decl_and_mark_needed): Split out from assemble_alias.
14863         (do_assemble_alias): New.
14864         (assemble_output_def): Remove.
14865         (finish_aliases_1, finish_aliases_2): New.
14866         (process_pending_assemble_output_defs): Remove.
14867         (assemble_alias): Defer aliases for which we don't yet have a
14868         non-external decl for the target symbol.
14869         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
14870         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
14871         * toplev.c (compile_file): Use finish_aliases_2 instead of
14872         process_pending_assemble_output_defs.
14873         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
14874         (process_pending_assemble_output_defs): Remove.
14875
14876 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
14877
14878         Fix PR tree-optimization/20489
14879
14880         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
14881         for empty structures.
14882
14883 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
14884
14885         Fix PR tree-optimization/20490
14886
14887         * tree-ssa-pre.c (create_expression_by_pieces): Use
14888         force_gimple_operand on result of fold.
14889
14890 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
14891
14892         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
14893         of closing parenthesis.
14894
14895 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
14896
14897         * builtins.c (expand_movstr): Update a call to
14898         fold_builtin_strcpy.
14899         (expand_builtin_strncpy): Update a call to
14900         fold_builtin_strncpy.
14901         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
14902         arguments of CALL_EXPR.
14903         (fold_builtin_1): Update calls to fold_builtin_strcpy and
14904         fold_builtin_strncpy.
14905         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
14906         * tree.h: Update the prototypes of fold_builtin_strcpy and
14907         fold_builtin_strncpy.
14908
14909 2005-03-16  Steven Bosscher  <stevenb@suse.de>
14910             Dorit Naishlos  <dorit@il.ibm.com>
14911
14912         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
14913         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
14914         error.
14915
14916 2005-03-16  Steven Bosscher  <stevenb@suse.de>
14917
14918         * tree-inline.c (walk_type_fields, walk_tree,
14919         walk_tree_without_duplicates): Move from here...
14920         * tree.c: ...to here.
14921
14922 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
14923
14924         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
14925         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
14926         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
14927         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
14928         (version): Define using $(BASEVER_c).
14929         (Makefile, config.status, build/gcov-iov.o): No longer depends on
14930         version.c.
14931         (version.o): Depend on version files; add custom generation command.
14932         (prefix.o): Define BASEVER on command line.
14933         (s-iov): Depend on version files; adjust command.
14934         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
14935         Add gcc-vers.texi.
14936         (gcc-vers.texi): New rule.
14937         (doc/%.info, doc/%.dvi): Add -I . to command line.
14938         (doc/gccinstall.dvi): Likewise.
14939         (PACKAGE): Delete.  All uses replaced with "gcc".
14940         * aclocal.m4: Do not include gcc-version.m4.
14941         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
14942         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
14943         Set is_release based on contents of DEV-PHASE.
14944         Set gcc_version based on contents of BASE-VER.
14945         Define WIN32_REGISTRY_KEY only if the user overrode the default.
14946         * config.in, configure: Regenerate.
14947         * gccbug.in: Determine version of GCC in use at runtime.
14948         * gcov-iov.c: Get version number and development phase from
14949         command line, not by including version.c.
14950         * intl.c: Replace all uses of PACKAGE with "gcc".
14951         * libada-mk.in: Delete unused "gcc_version" variable.
14952         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
14953         * version.c: (VERSUFFIX): New hook for redistributors; adjust
14954         commentary to match.
14955         (version_string): Put together from pieces.
14956         * config/alpha/x-vms: Do not use $(gcc_version).
14957         * config/i386/t-nwld: Likewise.
14958         * doc/include/gcc-common.texi: Include gcc-vers.texi for
14959         version-GCC and DEVELOPMENT.
14960
14961 2005-03-15  Roger Sayle  <roger@eyesopen.com>
14962
14963         PR tree-optimization/17454
14964         * tree.c (tree_size): Add case for TREE_BINFO.
14965         * fold-const.c (fold_checksum_tree): Only clear the overloaded
14966         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
14967
14968 2005-03-15  Roger Sayle  <roger@eyesopen.com>
14969
14970         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
14971         op1 whilst expanding the signed widenening multiply variant.
14972
14973 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
14974
14975         * toplev.c (display_target_options): Avoid unused variable warning if
14976         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
14977         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
14978         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
14979         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
14980         (mips_isa_info): New variable.
14981         (mips_parse_cpu): Remove the first argument and leave the caller
14982         to report errors.
14983         (TARGET_HANDLE_OPTION): Override default.
14984         (mips_handle_option): New function.  Move option validation code from...
14985         (override_options): ...here.  Update calls to mips_parse_cpu.
14986         * config/mips/mips.h (mips_arch_string, mips_tune_string)
14987         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
14988         (SUBTARGET_TARGET_OPTIONS): Delete.
14989         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
14990         (mno-flush-func, mtune=): New options.
14991
14992 2005-03-15  Roger Sayle  <roger@eyesopen.com>
14993             Richard Henderson  <rth@redhat.com>
14994
14995         * real.c (c4x_single_format, c4x_extended_format): Provide values
14996         for signbit_ro for c4x's single and extended floating point formats.
14997         * optabs.c (expand_copysign): Use the floating point format's
14998         signbit_ro for expanding via expand_copysign_absneg, and it's
14999         signbit_rw field for expanding via expand_copysign_bit.
15000
15001 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
15002
15003         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
15004         known_alignment_for_access_p.
15005         (known_alignment_for_access_p): New.
15006         (do_peeling_for_alignment): Field made int instead of bool and renamed
15007         to peeling_for_alignment.
15008         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
15009         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
15010         functionality used to be in vect_analyze_operations.
15011         (vect_analyze_operations): Code to determine vectorization factor was
15012         moved to vect_determine_vectorization_factor.
15013         (vect_enhance_data_refs_alignment): Update to correct alignment when it
15014         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
15015         factor.
15016         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
15017         be part of vect_analyze_operations).
15018         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
15019         creating the guard condition, as the number of iterations may be
15020         constant.
15021         (slpeel_tree_peel_loop_to_edge): Use new name of
15022         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
15023         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
15024         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
15025         (vect_do_peeling_for_alignment): Use fold.
15026         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
15027
15028         (vect_update_inits_of_dr): Renamed to
15029         vect_update_init_of_dr.
15030         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
15031         (vectorizable_store): Fix assertion to use == instead of =.
15032
15033 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
15034
15035         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
15036         call_used_regs for wCG registers.
15037
15038 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
15039
15040         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
15041         for non-offsettable memory references to cope with outstanding reload
15042         replacements, take 2.
15043
15044 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
15045
15046         PR target/18668
15047         * config/i386/i386.h (x86_fisttp): New.
15048         (TARGET_FISTTP): New macro.
15049         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
15050         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
15051         instruction when fisttp flag is set.
15052         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
15053
15054         * config/i386/i386.md (type attribute): Add fisttp.
15055         (unit attribute): Set to i387 for fisttp type.
15056         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
15057         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
15058         TARGET_FISTTP.
15059         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
15060         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
15061         macros.
15062         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
15063         patterns for TARGET_FISTTP.  Enable patterns for
15064         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
15065         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
15066         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
15067         implement fisttp x87 insn.
15068         (fix_trunc*_i387_fisttp splitters): New patterns.
15069         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
15070         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
15071         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
15072         clobber.
15073         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
15074         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
15075         Implement using mode macros. Disable patterns for TARGET_FISTTP.
15076         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
15077         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
15078         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
15079         Disable patterns for TARGET_FISTTP.
15080         (fix_trunc*_i387 splitters): Implement usign mode macros.
15081         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
15082         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
15083         (fix_trunx*_sse peephole2s): Implement using mode macros.
15084
15085 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
15086
15087         PR rtl-optimization/20291
15088         * combine.c (try_combine): If splitting fails, re-try with
15089         original combined pattern, i.e. before clobber stripping.
15090
15091 2005-03-14  Eric Christopher  <echristo@redhat.com>
15092
15093         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
15094         STACK_GROWS_DOWNWARD.
15095
15096 2005-03-14  Roger Sayle  <roger@eyesopen.com>
15097
15098         * real.h (struct real_format): Split the signbit field into two
15099         two fields, signbit_ro and signbit_rw.
15100         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
15101         mips_double_format, ieee_extended_motorola_format,
15102         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
15103         ieee_extended_intel_128_format, ibm_extended_format,
15104         mips_extended_format, ieee_quad_format, mips_quad_format,
15105         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
15106         i370_double_format, c4x_single_format, c4x_extended_format,
15107         real_internal_format): Update initializers for new field.
15108         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
15109         real_format structure.
15110         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
15111         field of the real_format structure.
15112
15113 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
15114
15115         Fix PR tree-optimization/20458
15116
15117         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
15118         DECL_EXTERNAL on STRUCT_FIELD tags.
15119         (clear_call_clobbered): Ditto.
15120         * tree-ssa-operands.c (note_addressable): Make sure the original
15121         variable doesn't slip into the addressable list if we have
15122         subvars.
15123         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
15124         tags too.
15125
15126 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
15127
15128         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
15129         (-fwide-exec-charset): Likewise.
15130         (-finput-charset): Likewise.
15131         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
15132         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
15133         * c.opt (Wnormalized): New.
15134
15135 2005-03-14  Devang Patel  <dpatel@apple.com>
15136
15137         * doc/invoke.texi: Add reference to Visibility document.
15138
15139 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
15140
15141         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
15142         MASK_SPLIT_ADDRESSES.
15143         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
15144         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
15145         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
15146         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
15147         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
15148         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
15149         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
15150         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
15151         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
15152         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
15153         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
15154         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
15155         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
15156         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
15157         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
15158         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
15159         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
15160         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
15161         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
15162         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
15163         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
15164         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
15165         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
15166         (TARGET_EXPLICIT_RELOCS): Delete.
15167         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
15168         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
15169         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
15170         (override_options): Set MASK_LONG64 if -mint64 is given and no
15171         -mlongXX option is.  Complain about -mint64 -mlong32.
15172         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
15173         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
15174         * config/mips/mips.opt: New file.
15175
15176 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
15177
15178         * config.gcc (extra_options): New variable for listing option files.
15179         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
15180         * configure.ac (extra_opt_files): New AC_SUBST variable.
15181         (tm_file_list, tm_include_list): Include options.h first.
15182         * configure: Regenerate.
15183         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
15184         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
15185         (s-options-h): New rule.
15186         (options.h): Depend on it.
15187         (TEXI_GCCINT_FILES): Add options.texi.
15188         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
15189         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
15190         * target.h (gcc_target): Add default_target_flags and handle_option.
15191         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
15192         (TARGET_HANDLE_OPTION): New macros.
15193         (TARGET_INITIALIZER): Include them.
15194         * opt-functions.awk (opt_args, nth_arg): New functions.
15195         (switch_flags): Handle the "Target" flag.
15196         (var_args): Delete.
15197         (var_name): Use opt_args and nth_arg.
15198         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
15199         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
15200         macros for the "Mask" and "InverseMask" options.
15201         * opts.h (cl_var_cond): New enum.
15202         (cl_option): Replace the "has_set_value" and "set_value" fields with
15203         "var_cond" and "var_value".
15204         (CL_TARGET): New macro.
15205         (option_enabled, print_filtered_help): Declare.
15206         (decode_options): Move definition.
15207         * opts.c (handle_option): Search for the original option before
15208         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
15209         var_cond and var_value fields.  Use targetm.handle_option to handle
15210         target options.
15211         (decode_options): Set target_flags to targetm.default_target_flags.
15212         (print_filtered_help): Make global.  Handle CL_TARGET.
15213         (option_enabled): New function.
15214         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
15215         (display_target_options, set_target_switch, print_switch_values)
15216         (default_pch_valid_p): Guard uses of target_switches with
15217         #ifdef TARGET_SWITCHES.  Also...
15218         (display_target_options): Display the CL_TARGET entries in cl_options.
15219         (set_target_option): Don't complain about the "" option when
15220         TARGET_SWITCHES is undefined.
15221         (print_switch_values): Use option_enabled.
15222         (default_pch_valid_p): Check cl_options[] when looking for something
15223         that has changed the value of target_flags.
15224         * c.opt: Remove documentation from top of file.
15225         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
15226         * doc/sourecebuild.texi: Refer to the new options documentation
15227         instead of c.opt.  Document machine-specific .opt files.
15228         * doc/tm.texi (target_flags): Say that this variable is declared
15229         by options.h.
15230         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
15231         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
15232         an alternative.
15233         * doc/options.texi: New file.
15234
15235 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
15236
15237         PR middle-end/18628
15238         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
15239         register.
15240
15241 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
15242
15243         PR c++/20280
15244         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
15245         temporary variable of pointer type if an lvalues is required.
15246         (gimplify_modify_expr_rhs): Request an rvalue from it.
15247         (gimplify_expr): Pass fallback on.
15248
15249 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15250
15251         * cfgbuild.c: Update comments.
15252
15253 2005-03-14  Roger Sayle  <roger@eyesopen.com>
15254
15255         PR rtl-optimization/17236
15256         * optabs.c (expand_doubleword_mult): New helper function split out
15257         from expand_binop.  Permute the order in which instructions are
15258         emitted to minimize the number of simultaneously live registers.
15259         (expand_binop): Call expand_doubleword_mult to synthesize a double
15260         word multiplication.
15261
15262 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15263
15264         * basic-block.h: Update the prototypes of cached_make_edge and
15265         rtl_make_eh_edge.
15266         * cfg.c (cached_make_edge): Take edge_cache representing one
15267         row of the adjacency matrix of edges.
15268         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
15269         (make_edges): Initialize edge_cache to represent one row of
15270         the adjacency matrix of edges.
15271
15272 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15273
15274         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
15275         New functions.
15276         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
15277         Remove unused removed_phis variable.
15278         (conditional_replacement): Use build1/build2.
15279         (abs_replacement): Use last_and_only_stmt and build1/build2.
15280
15281 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15282
15283         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
15284         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
15285         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
15286         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
15287         * c-common.c (handle_novops_attribute): New function.
15288         (c_common_attribute_table): Add "no vops" entry.
15289         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
15290         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
15291         * tree-ssa-operands.c (get_call_expr_operands): Do not
15292         create virtual operands for calls with ECF_NOVOPS flag.
15293         * tree.h (DECL_IS_NOVOPS): New macro.
15294         (struct tree_decl): Add novops_flag.
15295         (ECF_NOVOPS): New constant.
15296
15297 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
15298
15299         PR target/17688
15300         * config/i386/i386.c (x86_use_himode_fiop): New.
15301         (x86_use_simode_fiop): Rename from x86_use_fiop.
15302         * config/i386/i386.h (x86_use_himode_fiop): Declare.
15303         (TARGET_USE_HIMODE_FIOP): New.
15304         (x86_use_simode_fiop): Rename from x86_use_fiop.
15305         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
15306
15307         * config/i386/i386.md (X87MODEI12): New mode macro define.
15308         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
15309         to implement x87 FP compare with HImode input operands.
15310         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
15311         Use X87MODEI12 mode macro to handle HImode input operands.
15312         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
15313         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
15314         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
15315         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
15316         macro to implement x87 operators with HImode input operands.
15317         (fop splitters): Use X87MODEI12 mode macro to handle HImode
15318         input operands.
15319
15320 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15321
15322         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
15323         integer_zerop.
15324         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
15325         constants invariant.
15326
15327 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15328
15329         * basic-block.h (BB_VISITED): Removed.
15330         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
15331
15332 2005-03-14  Falk Hueffner  <falk@debian.org>
15333
15334         PR bootstrap/20424
15335         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
15336
15337 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15338
15339         * ggc-zone.c: Fix comment typos.
15340
15341         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
15342         stringpool.c, config/mips/mips-protos.h: Update copyright.
15343
15344 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
15345
15346         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
15347         throughout with its typedef, "rtx".
15348         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
15349         (rs6000_tls_symbol_ref_1): Remove inline keyword.
15350         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
15351         regs in comment to match code.
15352
15353 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15354
15355         * except.c (check_handled): Make it static.
15356         * except.h: Remove the corresponding prototype.
15357
15358         * function.c (get_func_frame_size): Make it static.
15359         * function.h: Remove the corresponding type.
15360
15361         * regclass.c (reg_class_superclasses, reg_class_subclasses):
15362         Make them static.
15363         * hard-reg-set.h: Remove the corresponding declarations.
15364
15365         * tree-cfg.c (verify_stmts): Check that
15366         bb_for_stmt (stmt) == bb for every PHI node and statement.
15367
15368 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
15369
15370         * config.gcc: Remove excess indentation.
15371         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
15372
15373 2005-03-13  Roger Sayle  <roger@eyesopen.com>
15374
15375         PR middle-end/19331
15376         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
15377         * fold-const.c (fold_sign_changed_comparison): Likewise.
15378         (fold_binary): Optimize comparisons against widened operands if
15379         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
15380
15381 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15382
15383         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
15384         (sparc_override_options): Initialize it.
15385         (sparc_struct_value_rtx): Set it on the MEM to be returned.
15386
15387 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
15388
15389         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
15390         (reg_or_none500mem_operand): New predicate.
15391         (zero_reg_mem_operand): New predicate.
15392         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
15393         to reg_or_none500mem_operand.
15394         (extendsfdf2_fpr): Add MEM alternative.
15395         (extenddftf2_internal): Change operand2 predicate to
15396         zero_reg_mem_operand.
15397
15398 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15399
15400         * ggc-zone.c: Rewritten.
15401
15402         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
15403         if there are none.
15404         * configure.ac: Define GGC_ZONE for --with-gc=zone.
15405         * config.in: Regenerated.
15406         * configure: Regenerated.
15407         * gengtype.c (write_types_process_field, write_func_for_structure):
15408         Pass new argument to gt_pch_note_object.
15409         * ggc-common.c (struct ptr_data): Add TYPE.
15410         (gt_pch_note_object): Take TYPE argument and save it.
15411         (call_count): Update call to ggc_pch_count_object.
15412         (call_alloc): Update call to ggc_pch_alloc_object.
15413         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
15414         file.
15415         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
15416         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
15417         (ggc_alloc_zone_stat): Delete.
15418         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
15419         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
15420         (ggc_pch_alloc_object): Update prototypes.
15421         (garbage_zone): Delete.
15422         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
15423         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
15424         pointers.
15425         (tree_id_zone): New variable.
15426         (ggc_alloc_cleared_zone): Remove unused.
15427         (ggc_alloc_zone): Define.
15428         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
15429         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
15430         ggc_alloc_zone_stat.
15431         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
15432         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
15433         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
15434         (make_node_stat): Likewise.  Use tree_id_zone.
15435
15436 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15437             Joseph S. Myers  <joseph@codesourcery.com>
15438
15439         * configure.ac: Check for MIPS TLS.
15440         * configure: Regenerated.
15441         * config/mips/mips-protos.h (enum mips_symbol_type): Add
15442         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
15443         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
15444         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
15445         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
15446         (mips_classify_symbol, mips_symbolic_constant_p)
15447         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
15448         (mips_tls_operand_p, mips_call_tls_get_addr)
15449         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
15450         (mips_tls_symbol_ref_1): New functions.
15451         (mips_legitimize_address, mips_legitimize_const_move): Call
15452         mips_legitimize_tls_address.
15453         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
15454         for MIPS16.
15455         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
15456         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
15457         (mips_char_to_class): Document V1_REG.
15458         (HAVE_AS_TLS): Provide default.
15459         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
15460         constants.
15461         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
15462         !TARGET_ABICALLS.
15463         (tls_get_tp_<mode>): New instruction.
15464
15465 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15466
15467         * configure.ac: Update checks for target tools.
15468         * configure: Regenerated.
15469
15470 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15471
15472         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
15473
15474 2005-03-13  Roger Sayle  <roger@eyesopen.com>
15475
15476         * expmed.c (expand_mult): Use synthetic multiplication sequences for
15477         more classes of DImode multiplication by constant.  Allow both
15478         multiplication by small negative constants (by performing a
15479         multiplication by a positive constant and negating the result) and
15480         multiplications by large powers of two, by using a left shift.
15481
15482 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
15483
15484         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
15485         of basic blocks into work_stack.
15486
15487         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
15488         config/mips/vr.h: Update copyright.
15489
15490         * c-decl.c (c_init_decl_processing): Remove useless calls to
15491         build_function_type.
15492
15493         * builtins.c (fold_trunc_transparent_mathfn,
15494         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
15495         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
15496         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
15497         fold_builtin_strcpy, fold_builtin_strncpy,
15498         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
15499         TREE_TYPE (exp).
15500
15501         * builtins.c (expand_builtin_mathfn_3): Remove local variable
15502         before_call.
15503
15504         * lambda-code.c (lambda_compute_auxillary_space): Remove local
15505         variable determinant.
15506
15507         * tree-cfg.c (group_case_labels): Remove local variable type.
15508
15509         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
15510         variable ann.
15511
15512         * tree-ssa-phiopt.c (value_replacement): Remove local variable
15513         result.
15514
15515 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
15516
15517         PR target/18251
15518         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
15519         (*movmemqi_insn): Delete.
15520         (*movmemhi): Delete.
15521
15522 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
15523
15524         * builtins.c (fold_builtin_classify): Take decomposed
15525         arguments of CALL_EXPR.
15526         (fold_builtin_1): Update a call to fold_builtin_classify.
15527
15528 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
15529
15530         PR c/20402
15531         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
15532         through into call to parser_xref_tag after parse error.
15533         (c_parser_struct_declaration): Consistently return NULL_TREE on
15534         error.
15535
15536 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
15537
15538         * tree-flow-inline.h (ref_contains_array_ref): New function.
15539         (lookup_subvars_for_var): Ditto.
15540         (get_subvars_for_var): Ditto.
15541         (var_can_have_subvars): Ditto.
15542
15543         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
15544         (struct subvar): New type.
15545
15546         * tree-dfa.c (okay_component_ref_for_subvars): New function.
15547
15548         * tree-optimize.c (init_tree_optimization_passes): Call
15549         pass_create_structure_vars.
15550
15551         * tree-ssa-alias.c: Include vec.h.
15552         (init_alias_info): Don't auto-clear call clobbered on struct-field
15553         tags.
15554         (compute_flow_insensitive_aliasing): Handle subvars.
15555         (group_aliases): Handle STRUCT_FIELD aliases.
15556         (setup_pointers_and_addressables): Ditto.
15557         Don't mark variables non-addressable if they still have
15558         addressable subvars.
15559         Also mark subvars addressable when the real variable is marked
15560         addressable.
15561         (add_pointed_to_var): Try to prune the pointed-to set by only
15562         pointing to subvars when possible.
15563         Otherwise, make sure we set addresses_needed and pt_vars to
15564         properly include subvars.
15565         (bitpos_of_field): New function.
15566         (push_fields_onto_fieldstack): Ditto.
15567         (get_or_create_used_part_for): Ditto.
15568         (create_overlap_variables_for): Ditto.
15569         (find_used_portions): Ditto.
15570         (create_structure_vars): Ditto.
15571         (pass_create_structure_vars): New structure.
15572
15573         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
15574         (get_expr_operands): Handle subvars.  Also try to turn
15575         COMPONENT_REF accesses into must-defs now that we can accurately
15576         portray it.
15577         (note_addressable): Try to only mark as addressable those subvars
15578         we know a COMPONENT_REF touches.
15579         (overlap_subvar): New function.
15580
15581         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
15582         Handle subvar storing.
15583         (vect_address_analysis): Update caller of vect_object_analysis.
15584
15585         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
15586
15587         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
15588         (STMT_VINFO_SUBVARS): New macro.
15589
15590         * common.opts: add flag_tree_salias.
15591
15592         * opts.c (decode_options): flag_tree_salias defaults to on.
15593
15594         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
15595
15596         * doc/tree-ssa.texi: Document structural alias analysis.
15597
15598 2005-03-12  Steven Bosscher  <stevenb@suse.de>
15599
15600         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
15601         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
15602         * tree-ssa-operands.c (get_expr_operands): Likewise.
15603         (get_expr_operands): Likewise for ERROR_MARK.
15604
15605 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
15606
15607         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
15608         var.
15609
15610         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
15611         removed_phis.
15612
15613         * tree-ssa-pre.c (compute_avail): Remove local variable val.
15614         (mark_operand_necessary): Remove local variable ver.
15615
15616         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
15617         variable prefix_len.
15618
15619         * value-prof.c (mod_subtract_transform): Remove local variable
15620         value.
15621
15622         * builtins.c (fold_builtin_exponent): Take decomposed
15623         arguments of CALL_EXPR.
15624         (fold_builtin_1): Update a call to fold_builtin_exponent.
15625
15626         * builtins.c (fold_builtin_logarithm): Take decomposed
15627         arguments of CALL_EXPR.
15628         (fold_builtin_1): Update a call to fold_builtin_logarithm.
15629
15630         * c-decl.c (c_init_decl_processing): Remove local variables
15631         ptr_ftype_void and ptr_ftype_ptr.
15632
15633         * gimplify.c (gimplify_expr): Remove local variables r0 and
15634         r1.
15635
15636         * reg-stack.c (move_for_stack_reg): Remove local variable
15637         push_insn.
15638         (compare_for_stack_reg): Remove local variable flags_user.
15639         (convert_regs_1): Remove local variable deleted.
15640
15641         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
15642         variable new_cond.
15643         (combine_blocks): Remove local variables exits and new_e.
15644
15645         * tree-inline.c (expand_call_inline): Remove local variable
15646         decl.
15647
15648         * tree-ssa-live.c (create_ssa_var_map,
15649         calculate_live_on_entry): Remove local variable snn.
15650
15651 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
15652
15653         * c-lex.c (c_lex_with_flags): Add parameter to call to
15654         cpp_spell_token.
15655
15656 2005-03-11  Per Bothner  <per@bothner.com>
15657
15658         * c-tree.h (struct c_declarator): New id_loc field.
15659         * c-pragma.h (c_lex_with_flags): Take position reference.
15660         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
15661         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
15662         (c_lex): Pass dummy location to c_lex_with_flags.
15663         * c-parser.c (c_lex_one_token): Set c_token's location using
15664         c_lex_with_flags, instead of input_location, which might be "ahead".
15665         (c_parser_direct_declarator): Set declarator's id_loc from
15666         c_token's id_loc.
15667         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
15668         declarator's id_loc, rather than probably-imprecise input_location.
15669         (build_id_declarator): Initialize c_declarator's id_loc field.
15670
15671 2005-03-11  Roger Sayle  <roger@eyesopen.com>
15672
15673         PR middle-end/20419
15674         * builtins.c (expand_builtin_signbit): Force the signbit's word
15675         into an integer register to avoid SUBREGs of floating point modes.
15676
15677 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
15678
15679         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
15680         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
15681         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
15682         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
15683
15684 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
15685
15686         PR rtl-optimization/20306
15687         * expr.c (emit_move_complex): Set try_int false if mode is
15688         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
15689         emit_block_move if try_int is true.
15690
15691 2005-03-11  Richard Henderson  <rth@redhat.com>
15692
15693         PR target/20415
15694         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
15695         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
15696         to match.
15697
15698 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
15699
15700         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
15701         (TARGET_FIX_VR4130): New macro.
15702         (TARGET_OPTIONS): Add -mfix-vr4130.
15703         (ISA_HAS_MACCHI): New macro.
15704         (ASM_SPEC): Add -mfix-vr4130.
15705         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
15706         (override_options): Handle mips_fix_vr4130_string.
15707         (mips_avoid_hazards): Clear all_noreorder_p
15708         if we're working around VR4130 errata and the macc alternatives
15709         are not available.
15710         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
15711         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
15712         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
15713         (MULTILIB_DEFAULTS): Remove leading "march=".
15714         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
15715         if no architecture option is given.
15716         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
15717         VR4130 multilibs.
15718         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
15719         * doc/invoke.texi: Document -mfix-vr4130.
15720
15721 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
15722
15723         * config/mips/mips.c (override_options): Only warn about -mint64
15724         deprecation if TARGET_INT64.
15725
15726 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15727
15728         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
15729         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
15730         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
15731         are non-specific regarding the nonnull parameter positions.
15732         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
15733         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
15734         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
15735         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
15736
15737         * builtins.def: Use the non-specific "nonnull" attibute lists.
15738
15739 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
15740
15741         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
15742         single_pred_edge, single_succ, single_pred): Improve comments.
15743
15744 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
15745
15746         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
15747         single_pred_edge, single_succ, single_pred): New inline functions.
15748         * bb-reorder.c (rotate_loop, find_traces_1_round,
15749         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
15750         duplicate_computed_gotos): Use the single_succ/pred functions.
15751         * cfganal.c (forwarder_block_p): Ditto.
15752         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
15753         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
15754         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
15755         merge_seq_blocks): Ditto.
15756         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
15757         * cfglayout.c (fixup_reorder_chain): Ditto.
15758         * cfgloop.c (mark_single_exit_loops, update_latch_info,
15759         canonicalize_loop_headers, verify_loop_structure): Ditto.
15760         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
15761         mfb_update_loops, create_preheader, force_single_succ_latches,
15762         create_loop_notes): Ditto.
15763         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
15764         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
15765         commit_one_edge_insertion, purge_dead_edges,
15766         cfg_layout_can_merge_blocks_p): Ditto.
15767         * except.c (sjlj_emit_function_enter): Ditto.
15768         * flow.c (init_propagate_block_info): Ditto.
15769         * function.c (thread_prologue_and_epilogue_insns): Ditto.
15770         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
15771         insert_insn_end_bb): Ditto.
15772         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
15773         find_if_case_2): Ditto.
15774         * lambda-code.c (perfect_nestify): Ditto.
15775         * lcm.c (optimize_mode_switching): Ditto.
15776         * loop-doloop.c (doloop_modify): Ditto.
15777         * loop-init.c (loop_optimizer_init): Ditto.
15778         * loop-iv.c (simplify_using_initial_values): Ditto.
15779         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
15780         * loop-unswitch.c (unswitch_loop): Ditto.
15781         * modulo-sched.c (generate_prolog_epilog): Ditto.
15782         * predict.c (combine_predictions_for_insn, estimate_probability,
15783         tree_estimate_probability, last_basic_block_p,
15784         estimate_bb_frequencies): Ditto.
15785         * profile.c (branch_prob): Ditto.
15786         * regrename.c (copyprop_hardreg_forward): Ditto.
15787         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
15788         * tracer.c (layout_superblocks): Ditto.
15789         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
15790         cfg_remove_useless_stmts_bb, cleanup_control_flow,
15791         cleanup_control_expr_graph, disband_implicit_edges,
15792         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
15793         tree_verify_flow_info, tree_make_forwarder_block,
15794         tree_forwarder_block_p, remove_forwarder_block,
15795         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
15796         * tree-if-conv.c (tree_if_conversion): Ditto.
15797         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
15798         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
15799         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
15800         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
15801         copy_loop_headers): Ditto.
15802         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
15803         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
15804         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
15805         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
15806         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
15807         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
15808         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
15809         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
15810         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
15811         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
15812         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
15813         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
15814         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
15815         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
15816         slpeel_add_loop_guard): Ditto.
15817
15818 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
15819
15820         PR tree-optimization/15784
15821         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
15822         and -1 - A to ~A.
15823
15824         * stmt.c (expand_case): Don't change index_type.  Convert minval
15825         to the proper type.
15826
15827         PR tree-optimization/20130
15828         * fold-const.c (fold): Fold x * -1 into -x.
15829
15830 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15831
15832         PR rtl-optimization/20331
15833         * rtlanal.c (modified_between_p): Check its address first for MEM.
15834         (modified_in_p): Likewise.
15835
15836 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
15837
15838         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
15839
15840 2005-03-10  Steven Bosscher  <stevenb@suse.de>
15841
15842         * expr.c (expand_expr_real_1): If possible, use a conditional
15843         move for expanding MIN_EXPR and MAX_EXPR.
15844         Use temp for moving around rtx-en.
15845
15846 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
15847
15848         PR rtl-opt/20412
15849         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
15850         correct mode.
15851
15852 2005-03-10  Roger Sayle  <roger@eyesopen.com>
15853
15854         * builtins.c (expand_builtin_signbit): Extend to handle floating
15855         point modes wider than the largest integer type, using the
15856         operand_subword_force function to obtain the signbit's word.
15857
15858 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
15859
15860         PR target/20322
15861         * combine.c (try_combine): If recog_for_combine added CLOBBERs
15862         to NEWI2PAT, fail to combine if they are used by NEWPAT.
15863
15864 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
15865
15866         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
15867
15868 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
15869
15870         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
15871         type void.
15872         (perform_edge_inserts): Unconditionally call
15873         free_dominator_info.
15874
15875         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
15876
15877 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
15878
15879         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
15880
15881 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
15882
15883         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
15884
15885         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
15886         gcc_unreachable.
15887         (rtl_register_value_prof_hooks,
15888         tree_value_profile_transformations,
15889         tree_register_value_prof_hooks): Likewise.
15890         * var-tracking.c (stack_adjust_offset_pre_post,
15891         variable_htab_free, variable_union, dataflow_set_different_2,
15892         count_uses, variable_was_changed, set_frame_base_location,
15893         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
15894         vt_add_function_parameters): Likewise.
15895         * varasm.c (named_section_real, named_section, make_decl_rtl,
15896         asm_emit_uninitialised, assemble_integer, decode_addr_const,
15897         const_hash_1, compare_constant, copy_constant, force_const_mem,
15898         output_constant_pool_2, output_constant_pool_1, output_constant,
15899         output_constructor, make_decl_one_only, decl_tls_model,
15900         default_no_named_section, default_elf_select_section_1,
15901         default_unique_section_1): Likewise.
15902         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
15903         * vmsdbgout.c (addr_const_to_string): Likewise.
15904
15905         PR c++/20375
15906         * function.c (struct assign_parm_data_one): Remove last_named
15907         field.
15908         (assign_parm_find_data_types): Don't determine last_named.
15909         Reorder named_parm determination.
15910         (assign_parms): Only setup varargs on the last non-varadic
15911         parameter.
15912
15913 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
15914
15915         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
15916         sda base address on medium model.
15917
15918 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
15919
15920         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
15921         * cfgloop.c (flow_loop_nodes_find): Export.
15922         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
15923         Declare.
15924         * cfgloopmanip.c (fix_loop_structure): New function.
15925         * predict.c (predict_loops): Clean up the loops information.
15926         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
15927         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
15928         loop structure.
15929         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
15930         (rewrite_into_loop_closed_ssa): Declaration changed.
15931         * tree-loop-linear.c (linear_transform_loops): Add argument to
15932         rewrite_into_loop_closed_ssa call.
15933         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
15934         * tree-ssa-loop-im.c (move_computations): Ditto.
15935         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
15936         * tree-vectorizer.c (vectorize_loops): Ditto.
15937         * tree-optimize.c: Include cfgloop.h.
15938         (execute_todo): Choose whether to call cleanup_tree_cfg or
15939         cleanup_tree_cfg_loop.
15940         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
15941         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
15942         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
15943         cleanup_tree_cfg_loop call.
15944         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
15945         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
15946         work on part of cfg.
15947
15948 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
15949
15950         PR inline-asm/20314
15951         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
15952         with multiple alternatives.
15953
15954         * stmt.c (parse_output_constraint): Fix a typo.
15955
15956 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
15957
15958         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
15959         assembly directive instead of deprecated "no-generics".
15960
15961 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
15962
15963         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
15964         for non-offsettable memory references to cope with outstanding reload
15965         replacements.
15966         * config/s390/s390.md ("reload_outti"): Call find_replacement to
15967         avoid losing outstanding address reloads.
15968         ("reload_outdi", "reload_outdf"): Likewise.
15969
15970 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15971
15972         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
15973         code.  Add more cbrt transformations.
15974
15975 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15976
15977         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
15978
15979 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
15980
15981         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
15982         NULL_TREE when a given tree is not simplified.
15983         (fold): Return the original tree when any of the functions
15984         mentioned above NULL_TREE.
15985
15986         * fold-const.c (fold_unary, fold_binary): Take decomposed
15987         arguments, code, type, op0, and op1 in case of fold_binary.
15988         (fold): Update calls to fold_unary and fold_binary.
15989
15990 2005-03-09  Roger Sayle  <roger@eyesopen.com>
15991
15992         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
15993         a fndecl and an arglist instead of a CALL_EXPR, exp.
15994
15995 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
15996
15997         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
15998
15999         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
16000
16001         * expr.c (expand_assignment): Remove orig_to_rtx.
16002
16003         * fold-const.c (int_const_binop): Remove no_overflow.
16004
16005         * ifcvt.c (noce_emit_move_insn): Remove inmode.
16006
16007         * loop-iv.c (get_biv_step_1): Remove lhs.
16008
16009         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
16010
16011         * real.c (real_nan): Remove neg.
16012
16013         * function.c (thread_prologue_and_epilogue_insns): Remove i
16014         and newinsn.
16015
16016         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
16017         tb.
16018
16019         * tree-eh.c (tree_could_trap_p): Remove idx.
16020
16021         * tree-into-ssa.c (ann): Remove ann.
16022
16023         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
16024
16025         * tree-sra.c (decide_block_copy): Remove inst_count.
16026
16027         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
16028
16029         * tree-ssa-loop-im.c (lhs): Remove.
16030
16031         * cfgbuild.c (state, STATE, SET_STATE,
16032         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
16033         make_edges.
16034         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
16035         (find_basic_blocks): Set the state of each basic block to
16036         BLOCK_NEW.
16037
16038 2005-03-08  Jeff Law  <law@redhat.com>
16039
16040         * tree-cfg.c (cleanup_control_flow): If removal of a computed
16041         goto results in the removal of edges in the CFG, then we need
16042         to recompute dominators.
16043
16044 2005-03-09  Ben Elliston  <bje@au.ibm.com>
16045
16046         * c-common.c (c_do_switch_warnings): Comment fix.
16047
16048 2005-03-08  Julian Brown  <julian@codesourcery.com>
16049
16050         * Patch from 2005-03-08 reverted for causing regressions and
16051         ppc-darwin bootstrap failure.
16052
16053 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
16054
16055         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
16056         Define the real function for ppc-darwin.
16057         * c-typeck.c (convert_arguments): Check for target-specific
16058         invalid argument call to unprototyped function.
16059         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
16060         New Macro.
16061         * target.h (invalid_arg_for_unprototyped_fn): New field
16062         in struct calls.
16063         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
16064         default target hook.
16065         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
16066         Declare.
16067
16068 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16069
16070         * c-typeck.c (constructor_stack, constructor_range_stack,
16071         initializer_stack): Make them static.
16072
16073         * cfg.c (rbi_pool): Make it static.
16074
16075         * gimple-low.c (lower_stmt_body): Make it static.
16076         * tree-flow.h: Remove the corresponding prototype.  Don't
16077         declare lower_data.
16078
16079         * sched-deps.c (cache_size): Make it static.
16080
16081         * stor-layout.c (lang_adjust_rli): Make it static.
16082
16083 2005-03-08  Julian Brown  <julian@codesourcery.com>
16084
16085         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
16086         from being used for symbols with vague linkage when
16087         HAVE_GAS_COMDAT_GROUP is true.
16088
16089 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
16090
16091         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
16092         nlabel == JUMP_LABEL (jump).
16093
16094 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16095
16096         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
16097         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
16098         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
16099         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
16100
16101 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
16102
16103         PR c/14411
16104         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
16105         * c-common.c (handle_returns_twice): New function.
16106         (c_common_attribute_table): Declare eturns_twice' attribute.
16107         * doc/extend.texi: Document eturns_twice' attribute.
16108         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
16109         (struct tree_decl): Add returns_twice_flag.
16110
16111 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16112
16113         * tree-ssa-phiopt.c: Fix a comment typo.
16114
16115         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
16116         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
16117         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
16118         copyright.
16119
16120 2005-03-08  Richard Henderson  <rth@redhat.com>
16121
16122         * config/alpha/alpha.c (code_for_builtin): Replace special-case
16123         builtin codes with ctzdi2, clzdi2, popcountdi2.
16124         (struct alpha_builtin_def): Add is_const.
16125         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
16126         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
16127         (alpha_init_builtins): Init them.  Set nothrow and const attributes
16128         on builtins.
16129         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
16130         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
16131         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
16132         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
16133         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
16134         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
16135         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
16136         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
16137         (TARGET_FOLD_BUILTIN): New.
16138         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
16139         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
16140         (ffsdi2): Use ctz.
16141         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
16142
16143 2005-03-08  Ira Rosen  <irar@il.ibm.com>
16144
16145         PR tree-optimization/20122
16146         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
16147         condition of access function instead of base.
16148
16149 2005-03-07  Jeff Law  <law@redhat.com>
16150             Steven Bosscher  <stevenb@suse.de>
16151
16152         * tree-cfg.c (find_taken_edge_computed_goto): New function.
16153         (find_taken_edge): Call find_taken_edge_computed_goto as
16154         appropriate.  Allow any gimple invariant rather than just
16155         INTEGER_CST for VAL.
16156         (cleanup_control_flow): Cleanup a computed goto which has turned
16157         into a simple goto.
16158         (tree_merge_blocks): If block B has any forced labels, move
16159         them to the start of block A.
16160         * tree-ssa-dom.c (thread_across_edge): Allow threading across
16161         computed gotos as well.
16162         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
16163         removal of unnecessary computed gotos too.
16164         (lookup_redirection_data): Fix type of INSERT argument.  Callers
16165         updated.
16166
16167 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16168
16169         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
16170         Remove trailing spaces.
16171
16172         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
16173         unshare_all_trees): Make them static.
16174         * tree-gimple.h: Remove the corresponding prototypes.
16175
16176         * diagnostic.h: Remove unused prototype
16177         debug_output_buffer.
16178         * modulo-sched.c: Remove unused prototype
16179         set_row_column_for_ps.
16180
16181         * tree-ssa-phiopt.c (tree_ssa_phiopt,
16182         replace_phi_edge_with_variable): Remove unused variable i.
16183
16184 2005-03-07  Per Bothner  <per@bothner.com>
16185
16186         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
16187
16188 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
16189
16190         PR tree-opt/17671
16191         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
16192         bbs on the COND_EXPR instead of the PHI_NODEs.
16193         (candidate_bb_for_phi_optimization): Remove.
16194         (replace_phi_with_stmt): Rename to ...
16195         (replace_phi_edge_with_variable): this and change so that we
16196         replace the phi argument instead of removing the PHI.
16197         (conditional_replacement): Change so we deal with PHI with more
16198         than two arguments.
16199         (value_replacement): Likewise.
16200         (abs_replacement): Likewise.
16201
16202 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
16203
16204         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
16205         output_e500_flip_gt_bit.
16206
16207         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
16208         as bit 31.
16209         (rs6000_generate_compare): Fix logic to look at the correct bits.
16210         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
16211         Look at GT bit.
16212         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
16213         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
16214         gen_move_from_CR_gt_bit.
16215
16216         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
16217         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
16218         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
16219
16220         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
16221         (E500_CR_IOR_COMPARE): New constant.
16222
16223 2005-03-08  Earl Chew <earl_chew@agilent.com>
16224             David Billinghurst <David.Billinghurst@riotinto.com>
16225
16226         * config/i386/host-cygwin.c: New file to support precompiled
16227         headers on cygwin
16228         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
16229         * config.host: Use above files for cygwin host.
16230
16231 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
16232
16233         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
16234         ordering ops from earlier change.
16235
16236 2005-03-07  Per Bothner  <per@bothner.com>
16237
16238         Various fixes to allow us to again build if --enable-mapped-location:
16239         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
16240         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
16241         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
16242         local variable loc. Change logic appropriately.
16243         * tree-vect-transform.c (vect_finish_stmt_generation): Use
16244         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
16245         * c-parser.c (c_parser_for_statement): Initialize loc variable.
16246         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
16247         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
16248
16249 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
16250
16251         PR rtl-optimization/19683
16252         * reload1.c (choose_reload_regs): Pass the number of bits, not the
16253         number of bytes, to smallest_int_for_mode.  Fix arguments to
16254         REG_CANNOT_CHANGE_MODE_P.
16255
16256 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16257
16258         * reorg.c (relax_delay_slots): Check that the jump is
16259         conditional before trying to invert it.
16260
16261 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
16262
16263         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
16264         Make them static.
16265
16266         * calls (stack_arg_under_construction): Make it static.
16267
16268         * flow.c (regs_live_at_setjmp): Make it static.
16269         * flow.h: Remove the corresponding prototype.
16270
16271         * reload1.c (reload_startobj, reload_firstobj,
16272         something_needs_operands_changed, reload_inherited,
16273         reload_inheritance_insn, reload_override_in,
16274         reload_spill_index): Make them static.
16275
16276         * recog.c (verify_changes): Make it static.
16277         * recog.h: Remove the corresponding prototype.
16278
16279         * cfgbuild.c (find_sub_basic_blocks): Remove.
16280         * basic-block.h: Remove the corresponding prototype.
16281         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
16282         in comments.
16283         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
16284
16285         * tree-ssa-operands.c (check_build_stmt): Remove.
16286
16287         * stor-layout.c (set_alignment): Remove.
16288         * tree.h: Remove the corresponding prototype.
16289
16290         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
16291
16292         * tree-ssa-dce.c (control_dependence_map,
16293         visited_control_parents): Make them static.
16294
16295         * cfghooks.c (verify_flow_info): Remove local variable
16296         num_bb_notes.
16297
16298         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
16299         last_bb_seen.
16300
16301         * loop-unswitch.c (unswitch_loop): Remove local variable src.
16302
16303 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
16304
16305         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
16306
16307 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
16308
16309         * config/ia64/hpux.h (LINK_SPEC): Add -z.
16310         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
16311         PARALLEL for an empty structure.
16312
16313 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
16314
16315         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
16316
16317         * fold-const.c (fold_binary): Unroll the very first "for"
16318         loop.
16319
16320 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
16321
16322         * config/rs6000/predicates.md (branch_comparison_operator): Remove
16323         redundant match_code test.
16324         (scc_comparison_operator): Swap match_operand and match_code
16325         tests.
16326         (branch_positive_comparison_operator): Same.
16327         (trap_comparison_operator): Use comparison_operator and swap with
16328         match_code test.
16329
16330 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
16331
16332         PR target/20288
16333         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
16334         (out_movhi_r_mr): Read low byte of volatile MEM first.
16335         (out_movhi_mr_r): Write high byte of volatile MEM first.
16336
16337 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
16338
16339         * cselib.c (reg_values, reg_values_size): Make them static.
16340
16341         * cse.c (cse_reg_info_table): Make it static.
16342
16343         * fold-const.c (fold_unary): Use build1 instead of copy_node.
16344
16345 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
16346
16347         * cse.c (find_best_addr): Use canon_for_address.
16348
16349 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
16350
16351         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
16352         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
16353         SUBREG and MEM, respectively.
16354
16355         * fold-const.c (fold_binary): Use code instead of t.
16356
16357         * fold-const.c (optimize_minmax_comparison): Take decomposed
16358         arguments code, type, op0, and op1 instead of t.
16359         (fold_binary): Update a call to optimize_minmax_comparison.
16360
16361         * fold-const.c (fold_range_test): Take decomposed arguments
16362         code, type, op0, and op1 instead of t.
16363         (fold_binary): Update a call to fold_range_test.
16364
16365         * fold-const.c (fold_binary_op_with_conditional_arg): Take
16366         decomposed arguments code, type, op0, and op1 instead of t.
16367         (fold_binary): Update a call to fold_range_test.
16368
16369 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
16370
16371         * fold-const.c (fold_binary): Avoid directly using the original
16372         expression t as much as possible.
16373
16374 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
16375
16376         * c-semantics.c (build_stmt): Use TYPE_P instead of
16377         IS_NON_TYPE_CODE_CLASS.
16378         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
16379         (NON_TYPE_CHECK): Use TYPE_P instead of
16380         IS_NON_TYPE_CODE_CLASS.
16381
16382         * fold-const.c (fold): Remove handling of binary expressions.
16383
16384 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
16385
16386         * doc/c-tree.texi: Wrap comments in @r{}.
16387         * doc/cpp.texi: Likewise.
16388         * doc/cppinternals.texi: Likewise.
16389         * doc/extend.texi: Likewise.
16390         * doc/md.texi: Likewise.
16391         * doc/objc.texi: Likewise.
16392         * doc/sourcebuild.texi: Likewise.
16393         * doc/tm.texi: Likewise.
16394         * doc/tree-ssa.texi
16395
16396 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
16397
16398         * predict.c (apply_return_prediction): Standardize PHI chain
16399         walking.
16400         * tree-ssa.c (ssa_redirect_edge): Likewise.
16401
16402         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
16403         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
16404         Update copyright.
16405
16406         * tree-phinodes.c (remove_phi_node): Drop the last argument.
16407         * tree-flow.h: Adjust the prototype for remove_phi_node.
16408         * lambda-code.c (perfect_nestify): Adjust a call to
16409         remove_phi_node.
16410         * tree-cfg.c
16411         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
16412         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
16413         Likewise.
16414         * tree-ssa-dce.c (remove_dead_phis): Likewise.
16415         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
16416         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
16417         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
16418
16419         * combine.c (simplify_and_const_int): Use gen_int_mode instead
16420         of GEN_INT (trunc_int_for_mode (...)).
16421         * loop-iv.c (iv_number_of_iterations): Likewise.
16422         * postreload.c (reload_cse_move2add): Likewise.
16423         * simplify-rtx.c (simplify_const_unary_operation,
16424         simplify_const_binary_operation): Likewise.
16425         * stor-layout.c (get_mode_bounds): Likewise.
16426
16427         * fold-const.c (fold_binary): New.
16428         (fold): Call fold_binary on binary expressions.
16429
16430 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
16431
16432         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
16433         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
16434         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
16435         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
16436         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
16437
16438 2005-03-04  Devang Patel  <dpatel@apple.com>
16439
16440         PR tree-optimization/18815
16441         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
16442         loops with zero exit edges.
16443
16444 2005-03-04  Devang Patel  <dpatel@apple.com>
16445
16446         * doc/invoke.texi: Remove reference to webpage that does not exist.
16447
16448 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
16449             Joseph S. Myers  <joseph@codesourcery.com>
16450
16451         PR c++/19797
16452         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
16453         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
16454         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
16455         * pa.c (get_plabel): Change argument to symbol_ref.  Call
16456         maybe_get_identifier instead of get_identifier.
16457         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
16458         (struct deferred_plabel): Replace name field with symbol field.
16459         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
16460         ASM_OUTPUT_EXTERNAL_REAL is defined.
16461         (output_global_address): Use output_addr_const for output of all
16462         symbol_refs.
16463         (output_deferred_plabels): Use symbol_ref instead of name for address
16464         output.
16465         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
16466         ASM_OUTPUT_SYMBOL_REF): New macros.
16467         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
16468         comment.
16469         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
16470         label.
16471
16472 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
16473
16474         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
16475         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
16476
16477 2005-03-04  Jeff Law  <law@redhat.com>
16478
16479         * basic-block.h (rediscover_loops_after_threading): Declare.
16480         * tree-ssa-dom.c: Include cfgloop.h.
16481         (tree_ssa_dominator_optimize): Discover loops and some basic
16482         properties.  Remove forwarder blocks recreated by loop header
16483         canonicalization.  Also mark backedges in the CFG.
16484         * tree-ssa-threadupdate.c: Include cfgloop.h
16485         (rediscover_loops_after_threading): Define.
16486         (struct local_info): New field, JUMP_THREADED.
16487         (prune_undesirable_thread_requests): New function.
16488         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
16489         then record that fact for the callers of redirct_edges.
16490         (thread_block): If BB has incoming backedges, then call
16491         prune_undesirable_thraed_requests.    Note when we are
16492         going to have to rediscover loop information.  Return a
16493         boolean indicating if any jumps were threaded.
16494         (thread_through_all_blocks): Bubble up boolean indicating
16495         if any jumps were threaded.
16496         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
16497         (tree-ssa-threadupdate.o): Similarly.
16498
16499 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
16500
16501         * fold-const.c (fold_ternary): Unroll the "for" loop to
16502         extract operands.
16503
16504 2005-03-04  Andrew Haley  <aph@redhat.com>
16505
16506         * unwind-dw2-fde-glibc.c (struct
16507         unw_eh_callback_data.check_cache): New field.
16508         (frame_hdr_cache): New.
16509         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
16510         Cache frame header info.
16511
16512 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
16513
16514         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
16515         (print_c_condition): Declare.
16516         * read-rtl.c (ptr_loc): New structure.
16517         (ptr_locs, ptr_loc_obstack, joined_conditions)
16518         (joined_conditions_obstack): New variables.
16519         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
16520         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
16521         (join_c_conditions, print_c_condition): New functions.
16522         (apply_macro_to_string): Associate the new string with the same
16523         source location as the old one.
16524         (add_condition_to_string): Use join_c_conditions.
16525         (read_string): Use set_rtx_ptr_loc to record a filename and line
16526         number for the string.
16527         (read_rtx): Initialize the new variables above.
16528         * genattrtab.c (write_test_expr, write_attr_value): Use
16529         print_c_condition.
16530         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
16531         comment above the GCC_VERSION check.
16532         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
16533         Inline the definition of MAYBE_EVAL.
16534         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
16535         * genoutput.c (process_template): Likewise.
16536         * genpreds.c (write_predicate_subfunction): Likewise.
16537         (write_predicate_expr): Use print_c_condition.
16538         * genrecog.c (write_cond): Likewise.
16539         * gensupport.c (process_rtx): Use join_c_conditions to join the
16540         conditions of a define_insn_and_split.  Record a source location
16541         for the string after the "&&".
16542         (alter_test_for_insn): Use join_c_conditions.
16543
16544 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
16545
16546         Revert for now:
16547         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
16548         PR tree-optimization/15784
16549         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
16550         and -1 - A to ~A.
16551
16552 2005-03-04  Ben Elliston  <bje@au.ibm.com>
16553
16554         * gcc.c (option_map): Add --coverage.
16555         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
16556         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
16557         * config/darwin.h: Pass -lgcov for `coverage'.
16558         * doc/invoke.texi (Debugging Options): Document --coverage.
16559
16560 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
16561
16562         * gcse.c (bypass_block): Use find_edge wherever possible.
16563
16564 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
16565
16566         Fix PR debug/20253
16567
16568         * c-opts.c (c_common_parse_file): Call start_source_file
16569         and end_source_file at the approriate times.
16570
16571         * dwarf2out.c (dwarf2out_finish): Don't auto-end
16572         the main file, it will be done for us now.
16573
16574 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
16575
16576         * fold-const.c (fold_ternary): New.
16577         (fold): Call fold_ternary on ternary expressions.  Remove
16578         handling of ternary expressions.
16579
16580 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
16581
16582         PR tree-optimization/15784
16583         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
16584         and -1 - A to ~A.
16585
16586 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
16587
16588         * config/rs6000/predicates.md (branch_comparison_operator):
16589         Convert from C block to conditional format.
16590
16591 2005-03-03  Jan Hubicka  <jh@suse.cz>
16592
16593         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
16594         and non-constant public variables.
16595
16596 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
16597
16598         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
16599         with LABEL_EXPR.
16600
16601         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
16602         EDGE_I.
16603
16604         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
16605         calls to release_ssa_name and release_phi_node.
16606
16607         * fold-const.c (fold): Remove handling of unary expressions.
16608
16609         * fold-const.c (fold_unary): Avoid directly using the original
16610         expression t as much as possible.
16611
16612 2005-03-03  Roger Sayle  <roger@eyesopen.com>
16613             Andrew Pinski  <pinskia@physics.uc.edu>
16614
16615         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
16616         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
16617
16618 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
16619
16620         Describe special registers SRP and MOF as allocatable registers.
16621         * config/cris/cris.c (cris_md_asm_clobbers): New function.
16622         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
16623         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
16624         TARGET_HAS_MUL_INSNS.
16625         (cris_print_operand) <case 'd'>: New case.
16626         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
16627         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
16628         define.
16629         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
16630         (REG_ALLOC_ORDER): Update for MOF.
16631         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
16632         SPECIAL_REGS.
16633         (GENERAL_REGS): No longer a define of ALL_REGS.
16634         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
16635         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
16636         Adjust accordingly.
16637         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
16638         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
16639         (SECONDARY_RELOAD_CLASS): Define.
16640         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
16641         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
16642         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
16643         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
16644         (REGISTER_MOVE_COST): Define.
16645         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
16646         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
16647         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
16648         (CRIS_MOF_REGNUM): New define_constants.
16649         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
16650         special registers.
16651         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
16652         New patterns.
16653         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
16654         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
16655         Adjust for MOF being properly described as a register.
16656         (indir_to_reg_split): Name this split.  Conditionalize on the
16657         destination register being a general register.
16658         (movei): Conditionalize on on operands 0 and 1 having the same
16659         register class.
16660
16661 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
16662
16663         PR target/20277
16664         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
16665         -mcpu to override any other explicitly given flags.
16666
16667 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
16668
16669         * recog.c (verify_changes, confirm_change_group): New functions,
16670         broken out of apply_change_group.
16671         (apply_change_group): Use them.
16672         * recog.h (verify_change, confirm_change_group): Declare.
16673         * rtl.h (redirect_jump_2): Declare.
16674         * jump.c (redirect_exp, invert_exp): Delete.
16675         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
16676         (redirect_jump_2): New function, broken out of redirect_jump.
16677         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
16678         (invert_jump): Use invert_jump_1 and redirect_jump_2.
16679         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
16680
16681 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
16682
16683         * varasm.c (named_section): Use xstrdup rather than doing it by
16684         hand.
16685
16686         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
16687
16688 2005-03-02  Devang Patel  <dpatel@apple.com>
16689
16690         Undo PR tree-optimization/18815 fix.
16691
16692 2005-03-02  Devang Patel  <dpatel@apple.com>
16693
16694         PR tree-optimization/18815
16695         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
16696         loops with zero exit edges.
16697
16698 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
16699
16700         * cfg.c (connect_src, connect_dest, disconnect_src,
16701         disconnct_dest): New.
16702         (unchecked_make_edge, remove_edge, redirect_edge_succ,
16703         redirect_edge_pred): Use the new functions.
16704
16705         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
16706         free_dominance_info only when needed.
16707
16708 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
16709
16710         PR target/20276
16711         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
16712         (reg_or_sub_cint64_operand): Same.
16713
16714 2005-03-02  Jeff Law  <law@redhat.com>
16715
16716         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
16717         CFG_ALTERED in the main DOM iteration loop.
16718
16719 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
16720
16721         PR c++/19916
16722         * varasm.c (initializer_constant_valid_p): Allow conversions
16723         between OFFSET_TYPEs.  Tidy.
16724
16725 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
16726
16727         * config/cris/cris.md ("return"): Remove epilogue delay list
16728         sanity check.
16729
16730 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
16731
16732         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
16733         for Thumb.
16734         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
16735
16736 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
16737
16738         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
16739         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
16740         config/m68k/m68k.c, config/mips/mips.h,
16741         config/rs6000/rs6000-protos.h, doc/contrib.texi,
16742         doc/include/gcc-common.texi: Update copyright.
16743
16744         PR middle-end/18029 and PR middle-end/18030
16745         * expr.c (optimize_bitfield_assignment_op): Add a special case
16746         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
16747
16748         * fold-const.c (fold_unary): New.
16749         (fold): Call fold_unary on unary expressions.
16750
16751 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
16752
16753         * cgraph.h (struct cgraph_edge): Add prev_caller and
16754         prev_callee fields.
16755         (cgraph_node_remove_callees): Export.
16756         * cgraph.c (cgraph_create_edge): Initialize prev_caller
16757         and prev_callee.
16758         (cgraph_edge_remove_callee): New function.
16759         (cgraph_edge_remove_caller): Likewise.
16760         (cgraph_remove_edge): Use.
16761         (cgraph_redirect_edge_callee): Likewise.
16762         (cgraph_node_remove_callees): New function.
16763         (cgraph_node_remove_callers): Likewise.
16764         (cgraph_remove_node): Use.
16765         * tree-optimize.c (tree_rest_of_compilation): Use
16766         cgraph_node_remove_callees instead of manual loop.
16767         * cgraphunit.c (cgraph_finalize_function): Likewise.
16768         (cgraph_expand_function): Likewise.
16769         (cgraph_remove_unreachable_nodes): Likewise.
16770
16771 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
16772
16773         PR c/8927
16774         * c-tree.h (undeclared_variable, build_external_ref): Add extra
16775         argument.
16776         * c-decl.c (undeclared_variable): Take location as argument.
16777         * c-typeck.c (build_external_ref): Likewise.
16778         * c-parser.c (c_parser_postfix_expression): Pass location of
16779         identifier to build_external_ref.
16780
16781 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
16782
16783         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
16784         CCEQ mode for branch_positive_comparison_operator test.
16785         * config/rs6000/predicates (branch_comparison_operator): Revert to
16786         define_predicate.
16787         (scc_comparison_operator): Same.
16788         (branch_positive_comparison_operator): Same.
16789
16790 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
16791
16792         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
16793         (cris_delay_slots_for_epilogue): Remove.
16794         (save_last): Move into cris_target_asm_function_epilogue.
16795         (cris_target_asm_function_epilogue): Remove tests for file being
16796         NULL.
16797         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
16798         (cris_delay_slots_for_epilogue): Remove prototypes.
16799         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
16800         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
16801
16802 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
16803
16804         * config/rs6000/predicates.md (branch_comparison_operator): Change
16805         to define_special_predicate.
16806         (scc_comparison_operator): Same.
16807         (branch_positive_comparison_operator): Same.
16808
16809 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
16810
16811         * Makefile.in (tree-ssa-sink.o): New.
16812         (OBJS-common): Add tree-ssa-sink.o.
16813         * common.opt: Add -ftree-sink
16814         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
16815         * timevar.def (TV_TREE_SINK): new timevar.
16816         * tree-flow.h (is_hidden_global_store): Prototype.
16817         * tree-optimize.c (init_tree_optimization_passes): Add
16818         pass_sink_code.
16819         * tree-pass.h (pass_sink_code): New.
16820         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
16821         for non-obvious global store store to is_hidden_global_store, and
16822         call that new function.
16823         * tree-ssa-sink.c: New file.
16824         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
16825         * doc/passes.texi: Document forward store motion.
16826         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
16827         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
16828         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
16829         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
16830
16831 2005-03-01  Per Bothner  <per@bothner.com>
16832
16833         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
16834         and we have a non-zero column-number, add it to the message.
16835         Also factor out the diagnostic_kind_text.
16836
16837 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
16838
16839         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
16840         flow_loop_pre_header_scan, flow_loop_pre_header_find,
16841         flow_loop_scan): Removed.
16842         (flow_loop_dump): Do not dump removed fields.
16843         (flow_loop_free): Do not free removed fields.
16844         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
16845         (loop_exit_edge_p): New function.
16846         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
16847         num_pre_header_edges, entry_edges, num_entries, exit_edges,
16848         num_exits, exits_doms.
16849         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
16850         LOOP_EDGES, LOOP_ALL): Removed.
16851         (flow_loop_scan): Declaration removed.
16852         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
16853         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
16854         flow_loops_find.
16855         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
16856         (if_convert): Call flow_loops_find and flow_loops_free
16857         when calling mark_loop_exit_edges.
16858         * cfgloopanal.c (mark_loop_exit_edges): Moved from
16859         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
16860         free_dominance_info calls.
16861         * loop-init.c (flow_loops_find): Ditto.
16862         * passes.c (rest_of_handle_branch_prob): Ditto.
16863         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
16864         * loop-unroll.c (analyze_insns_in_loop): Do not use
16865         EDGE_LOOP_EXIT.
16866         * predict.c (predict_loops): Do not call flow_loop_scan.
16867         Use get_loop_exit_edges.
16868         (tree_estimate_probability): Do not pass flags to flow_loops_find.
16869         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
16870         Do not use EDGE_LOOP_EXIT.
16871         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
16872         to bb_with_exit_edge_p.
16873         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
16874         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
16875         to bb_with_exit_edge_p.
16876         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
16877         EDGE_LOOP_EXIT.
16878         * tree-loop-linear.c (linear_transform_loops): Do not call
16879         flow_loop_scan.  Use loop->single_exit.
16880         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
16881         (vect_analyze_loop_form): Do not call flow_loop_scan.
16882         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
16883         loop->single_exit.
16884         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
16885         loop->single_exit.
16886         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
16887         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
16888         slpeel_tree_duplicate_loop_to_edge_cfg,
16889         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
16890         Use loop_preheader_edge and loop->single_exit.  Do not call
16891         flow_loop_scan.
16892
16893 2005-03-01  Nick Clifton  <nickc@redhat.com>
16894
16895         * config/arm/arm.c (thumb_find_work_register): Check all of the
16896         argument registers to see if they are free, and a couple of
16897         special cases where the last argument register but can be proved
16898         to be available during the function's prologue.
16899         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
16900         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
16901         thumb_unexpanded_epilogue): Use unsigned long as the type for the
16902         register bit-mask.
16903         (thumb_compute_save_reg_mask): Likewise.  Also use
16904         thumb_find_work_register() to ensure that there is agreement about
16905         which work register is going to be used in the prologue.
16906         (thumb_output_function_prologue): Use unsigned long as the type
16907         for the register bit-mask.  Also delay pushing the link register if
16908         other high registers are going to be pushed.
16909         (thumb_compute_save_reg_mask, emit_multi_reg_push,
16910         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
16911         redundant prototypes.
16912
16913 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
16914
16915         PR target/19819
16916         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
16917         and after reload in REG+REG indexed addresses without REG_POINTER
16918         set in the base and not set in the index.
16919
16920 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
16921
16922         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
16923         Don't undefine here.
16924         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
16925         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
16926         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
16927         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
16928         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
16929         Delete.
16930         * config.gcc (sh*-*-linux*): Use config/linux.h.
16931
16932 2005-02-28  Dale Johannesen  <dalej@apple.com>
16933             Stan Shebs  <shebs@apple.com>
16934
16935         Rewrite of 64-bit Darwin structure-by-value pass/return.
16936         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
16937         intoffset, use_stack, named.
16938         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
16939         (rs6000_darwin64_record_arg_advance_flush):  New.
16940         (rs6000_darwin64_record_arg_advance_recurse): New.
16941         (rs6000_darwin64_record_arg_flush):  New.
16942         (rs6000_darwin64_record_arg_recurse):  New.
16943         (rs6000_darwin64_record_arg):  New.
16944         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
16945         (function_arg_boundary):  Handle 128-bit aligned structs.
16946         (function_arg_advance):  Rewrite darwin64 struct handling.
16947         (function_arg):  Call rs6000_darwin64_record_arg.
16948         (function_arg_partial_nregs):  Handle darwin64 structs.
16949         (rs6000_darwin64_function_value):  Remove.
16950         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
16951
16952 2005-02-28  Roger Sayle  <roger@eyesopen.com>
16953
16954         PR tree-optimization/20216
16955         * tree-chrec.c (tree_fold_factorial): Delete.
16956         (tree_fold_binomial): Change argument list to take a return type
16957         and change the type of K to unsigned int.  Rewrite to avoid explicit
16958         evaluation of factorials, and (recursively) calling fold to perform
16959         compile-time arithmetic.  Return NULL on (internal) overflow.
16960         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
16961         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
16962         if any intermediate calculation overflows.
16963         (chrec_apply): Update call to chrec_evaluate.
16964
16965 2005-02-28  James E Wilson  <wilson@specifixinc.com>
16966
16967         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
16968
16969 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
16970
16971         PR c/20245
16972         * c-parser.c (c_parser_compound_statement): Return error_mark_node
16973         instead of NULL_TREE on error.
16974
16975 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
16976
16977         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
16978         (EASY_VECTOR_15_ADD_SELF): Remove.
16979         (num_insns_constant_wide): Not static.
16980         (validate_condition_mode): Not static.
16981         (toc_relative_expr_p): Not static.
16982         (legitimate_indirect_address_p): Not static.
16983         (macho_lo_sum_memory_operand): Not static.
16984         (invalid_e500_subreg): Not static.
16985         (easy_vector_same): Not static.
16986         (easy_vector_splat_const): Not static.
16987         (RS6000_SYMBOL_REF_TLS_P): Remove.
16988         (any_operand): Delete.
16989         (any_parallel_operand): Delete.
16990         (count_register_operand): Delete.
16991         (altivec_register_operand): Delete.
16992         (xer_operand): Delete.
16993         (s8bit_cint_operand): Delete.
16994         (short_cint_operand): Delete.
16995         (u_short_cint_operand): Delete.
16996         (non_short_cint_operand): Delete.
16997         (exact_log2_cint_operand): Delete.
16998         (gpc_reg_operand): Delete.
16999         (cc_reg_operand): Delete.
17000         (cc_reg_not_cr0_operand): Delete.
17001         (reg_or_short_operand): Delete.
17002         (reg_or_neg_short_operand): Delete.
17003         (reg_or_aligned_short_operand): Delete.
17004         (reg_or_u_short_operand): Delete.
17005         (reg_or_cint_operand): Delete.
17006         (reg_or_arith_cint_operand): Delete.
17007         (reg_or_add_cint64_operand): Delete.
17008         (reg_or_sub_cint64_operand): Delete.
17009         (reg_or_logical_cint_operand): Delete.
17010         (got_operand): Delete.
17011         (got_no_const_operand): Delete.
17012         (easy_fp_constant): Delete.
17013         (easy_vector_constant): Delete.
17014         (easy_vector_constant_add_self): Delete.
17015         (zero_constant): Delete.
17016         (zero_fp_constant): Delete.
17017         (volatile_mem_operand): Delete.
17018         (offsettable_mem_operand): Delete.
17019         (mem_or_easy_const_operand): Delete.
17020         (add_operand): Delete.
17021         (non_add_cint_operand): Delete.
17022         (logical_operand): Delete.
17023         (non_logical_cint_operand): Delete.
17024         (mask_operand): Delete.
17025         (mask_operand_wrap): Delete.
17026         (mask64_operand): Delete.
17027         (mask64_2_operand): Delete.
17028         (and64_operand): Delete.
17029         (and64_2_operand): Delete.
17030         (and_operand): Delete.
17031         (reg_or_mem_operand): Delete.
17032         (lwa_operand): Delete.
17033         (symbol_ref_operand): Delete.
17034         (call_operand): Delete.
17035         (current_file_function_operand): Delete.
17036         (input_operand): Delete.
17037         (rs6000_nonimmediate_operand): Delete.
17038         (rs6000_tls_symbol_ref): Delete.
17039         (save_world_operation): Delete.
17040         (restore_world_operation): Delete.
17041         (load_multiple_operation): Delete.
17042         (store_multiple_operation): Delete.
17043         (vrsave_operation): Delete.
17044         (mfcr_operation): Delete.
17045         (mtcrf_operation): Delete.
17046         (lmw_operation): Delete.
17047         (stmw_operation): Delete.
17048         (branch_comparison_operator): Delete.
17049         (branch_positive_comparison_operator): Delete.
17050         (scc_comparison_operator): Delete.
17051         (trap_comparison_operator): Delete.
17052         (boolean_operator): Delete.
17053         (boolean_or_operator): Delete.
17054         (min_max_operator): Delete.
17055         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
17056         (EASY_VECTOR_15): Moved to here.
17057         (EASY_VECTOR_15_ADD_SELF): Move to here.
17058         (PREDICATE_CODES): Delete.
17059         * config/rs6000/rs6000-protos.h: Delete predicate functions.
17060         Declare functions no longer static.
17061         * config/rs6000/predicates.md: New.
17062         * config/rs6000/rs6000.md: Include predicates.md
17063
17064 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
17065
17066         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
17067         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
17068         REG_ALWAYS_RETURN.
17069         * cfgrtl.c (need_fake_edge_p): Likewise.
17070         * combine.c (distribute_notes): Likewise.
17071         * emit-rtl.c (try_split): Likewise.
17072         * recog.c (peephole2_opimize): Likewise.
17073         * reg-notes.def (ALWAYS_RETURN): Remove.
17074         * rtl.h (LCT_ALWAYS_RETURN): Remove.
17075         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
17076         * tree.h (ECF_ALWAYS_RETURN): Remove.
17077
17078 2005-02-28  Roger Sayle  <roger@eyesopen.com>
17079
17080         PR middle-end/19874
17081         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
17082         between different machine modes is never a "useless" conversion.
17083
17084 2005-02-28  Geert Bosch  <bosch@gnat.com>
17085
17086         PR ada/15977
17087         * doc/contrib.texi: List contributors for Ada front end
17088
17089 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
17090
17091         * simplify-rtx.c (simplify_unary_operation_1,
17092         simplify_const_unary_operation): New, extracted from...
17093         (simplify_unary_operation): ... this one.
17094         (simplify_binary_operation_1,
17095         simplify_const_binary_operation): New, extracted from...
17096         (simplify_binary_operation): ... this one.
17097         * rtl.h (simplify_const_unary_operation,
17098         simplify_const_binary_operation): Add prototypes.
17099
17100 2005-02-28  Julian Brown  <julian@codesourcery.com>
17101
17102         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
17103         building libjava and caused PR regression/20228.
17104
17105 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
17106
17107         PR bootstrap/17383
17108         * Makefile.in (host_subdir): New.
17109         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
17110         * configure: Regenerate.
17111
17112 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
17113
17114         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
17115         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
17116         installation directory first.
17117
17118 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
17119
17120         PR target/19065.
17121         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
17122         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
17123         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
17124         * config/cris/cris.md: Tweak comments referring to Q.
17125         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
17126         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
17127         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
17128         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
17129         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
17130         Insert spaces in constraints to align alternatives vertically for
17131         readability.
17132         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
17133         operand 1: "M".
17134
17135 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17136
17137         PR rtl-optimization/17728
17138         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
17139         operand 0 from general_operand to move_dest_operand.
17140
17141 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17142
17143         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
17144         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
17145         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
17146         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
17147
17148 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
17149
17150         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
17151         * configure: Regenerate.
17152         * libada-mk.in: Remove CC; rename
17153         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
17154
17155 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
17156
17157         PR tree-opt/20188
17158         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
17159         for the lhs, also walk over the tree.  Likewise for rhs.
17160
17161 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
17162
17163         * tree-ssa-dom.c (simple_iv_increment_p): New function.
17164         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
17165         Do not propagate value of iv before increment over the increment.
17166
17167 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
17168
17169         * c-parser.c: New file.
17170         * c-parse.in: Remove.
17171         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
17172         Remove.
17173         (c-parser.o): Add dependencies.
17174         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
17175         maintainer-clean, TAGS): Update.
17176         * c-config-lang.in (gtfiles): Update.
17177         * gengtype-lex.l: Don't handle "@@".
17178         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
17179         objc_build_synchronized, objc_begin_try_stmt,
17180         objc_begin_catch_clause, objc_finish_catch_clause,
17181         objc_build_finally_clause, objc_finish_try_stmt): New.
17182         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
17183         type_seen_p.
17184         (c_parse_init): Update comment.
17185         * c-decl.c (c_init_decl_processing): Update comment.
17186         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
17187         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
17188         new c_declspecs members.
17189
17190 2005-02-25  Julian Brown  <julian@codesourcery.com>
17191
17192         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
17193         from being used for symbols with vague linkage when
17194         HAVE_GAS_COMDAT_GROUP is true.
17195
17196 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
17197
17198         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
17199
17200 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
17201
17202         PR target/19930
17203         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
17204         (LIBGCC2_HAS_DF_MODE): New.
17205         (LIBGCC2_HAS_XF_MODE): New.
17206         (LIBGCC2_HAS_TF_MODE): New.
17207         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
17208         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
17209         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
17210         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
17211         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
17212         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
17213         and add _fixtfdi, _fixunstfdi, _floatditf
17214         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
17215         L_fixunstfdi, L_floatditf.
17216         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
17217         (LIBGCC2_HAS_TF_MODE): Define.
17218
17219 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
17220
17221         PR tree-optimization/20204
17222         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
17223         REWRITE_THIS_STMT markers on PHI nodes.
17224         (rewrite_initialize_block): Likewise.
17225
17226 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
17227
17228         * version.c (version_string): Update to 4.1.
17229
17230 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
17231
17232         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
17233         Clarify that the alternative way doesn't work in GNU C++.
17234
17235 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
17236
17237         PR tree-optimization/19937
17238         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
17239         to the type of the induction variable.
17240
17241 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
17242
17243         PR rtl-optimization/20117
17244         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
17245         the block including noncopyable insn.
17246
17247 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
17248
17249         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
17250         calls to find_reg_note.
17251
17252 2005-02-24  Richard Henderson  <rth@redhat.com>
17253
17254         PR tree-opt/20127
17255         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
17256         the type.
17257
17258 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
17259
17260         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
17261         vector types if to use base reg for misaligned non-word ld/std.
17262
17263 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
17264
17265         PR target/14619
17266         * config/cris/cris.c (cris_target_asm_function_prologue): Create
17267         dwarf2 label manually and put it after, not before the prologue.
17268
17269 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
17270
17271         PR target/19019
17272         * reload.c (operands_match_p): Only increment register number for
17273         SCALAR_INT_MODE_P modes in multiple hard registers.
17274
17275         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
17276         Fix formatting.
17277
17278 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17279
17280         * ChangeLog.5: Fix log message typo(s).
17281         * ChangeLog.7: Likewise.
17282         * ChangeLog.tree-ssa: Likewise.
17283         * cfgexpand.c: Fix comment typo(s).
17284         * conflict.c: Likewise.
17285         * defaults.h: Likewise.
17286         * dwarf2out.c: Likewise.
17287         * gcse.c: Likewise.
17288         * ggc-page.c: Likewise.
17289         * tree-eh.c: Likewise.
17290         * tree-ssa-dom.c: Likewise.
17291
17292 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
17293
17294         PR target/19019
17295         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
17296         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
17297         if SHARED is defined.
17298
17299         PR target/20196
17300         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
17301         allow splitting only if operands 0 and 3 don't overlap.
17302
17303 2005-02-24  Richard Henderson  <rth@redhat.com>
17304
17305         PR middle-end/19953
17306         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
17307         (fold_builtin_1): Call them.
17308         * fold-const.c (fold_complex_mult_parts): Split out from ...
17309         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
17310         (fold_complex_div_parts, fold_complex_div): New.
17311         (fold): Use them.
17312         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
17313
17314 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17315
17316         * tree-ssa-ccp.c (visit_assignment): Verify that result of
17317         VIEW_CONVERT_EXPR is_gimple_min_invariant.
17318
17319         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
17320         (print_node): Likewise.
17321         Print TYPE_SIZES_GIMPLIFIED.
17322
17323 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
17324
17325         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
17326         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
17327         operands as commutative in constraints.
17328
17329 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
17330
17331         * tree-into-ssa.c: Re-organize internal functions.
17332
17333 2005-02-24  Richard Henderson  <rth@redhat.com>
17334
17335         PR middle-end/18902
17336         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
17337         for c99.
17338         * common.opt (fcx-limited-range): New.
17339         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
17340         * toplev.c (flag_complex_method): Initialize to 1.
17341         (process_options): Set flag_complex_method to 0 if
17342         flag_cx_limited_range.
17343         * doc/invoke.texi (-fcx-limited-range): New.
17344
17345 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
17346
17347         * cse.c (delete_trivially_dead_insns): Speed up by using
17348         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
17349         prev_real_insn.
17350
17351 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
17352
17353         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
17354         functions when -mid-shared-library is being used.
17355
17356 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
17357
17358         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
17359         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
17360         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
17361         * system.h: Poison LINK_LIBGCC_SPECIAL.
17362
17363 2005-02-23  James E Wilson  <wilson@specifixinc.com>
17364
17365         * gengtype.c (note_insn_name): Make 1 element larger.
17366
17367 2005-02-23  Roger Sayle  <roger@eyesopen.com>
17368
17369         PR target/20018
17370         PR rtl-optimization/20097
17371         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
17372         BImode SUBREGs of SImode registers which confuse the ia64 backend.
17373
17374 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
17375
17376         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
17377         * t-aix52 (SHLIB_INSTALL): Same.
17378
17379 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
17380
17381         * genpreds.c: Update copyright.
17382
17383 2005-02-23  Michael Beach  <michaelb@ieee.org>
17384
17385         PR target/20159
17386         * config/sparc/t-elf (startup files): Assemble with CPP.
17387
17388 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
17389
17390         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
17391         (write_predicate_expr): Likewise.
17392
17393 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
17394
17395         PR tree-optimization/20100
17396         PR tree-optimization/20115
17397         * tree-optimize.c (init_tree_optimization_passes): Remove
17398         pass_maybe_create_global_var.
17399         * tree-pass.h (pass_maybe_create_global_var): Remove.
17400         * tree-ssa-alias.c (aliases_computed_p): Declare.
17401         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
17402         (count_calls_and_maybe_create_global_var): Remove.
17403         (pass_maybe_create_global_var): Remove.
17404         (init_alias_info): Do not declare aliases_computed_p.
17405         (maybe_create_global_var): If the function contains no
17406         call-clobbered variables and a mix of pure/const and regular
17407         function calls, create .GLOBAL_VAR.
17408         Mark all call-clobbered variables for renaming.
17409         (merge_pointed_to_info): Update comment.
17410         (add_pointed_to_var): Likewise.
17411         (is_escape_site): Likewise.
17412         Accept struct alias_info * instead of size_t *.
17413         Update all users.
17414         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
17415         as necessary.
17416         * tree-ssa-operands.c (get_call_expr_operands): If
17417         ALIASES_COMPUTED_P is false, do not add call-clobbering
17418         operands.
17419         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
17420         (delete_tree_ssa): Likewise.
17421
17422 2005-02-22  James E Wilson  <wilson@specifixinc.com>
17423
17424         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
17425         (do_compile): Do call it here.
17426
17427 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
17428
17429         PR rtl-optimization/20017.
17430         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
17431         rest_of_handle_cse2, rest_of_handle_gcse): Call
17432         delete_dead_jumptables immediately before calling cleanup_cfg.
17433
17434 2005-02-22  Devang Patel  <dpatel@apple.com>
17435
17436         PR 19952
17437         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
17438         all labels
17439
17440 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
17441
17442         * config/rs6000/aix.h (WINT_TYPE): Define.
17443
17444 2005-02-22  Stan Shebs  <shebs@apple.com>
17445
17446         * config/rs6000/rs6000.c (rs6000_override_options): Default to
17447         natural alignment for 64-bit Darwin.
17448         (rs6000_parse_alignment_option): Warn about uses of -malign-power
17449         on 64-bit Darwin.
17450         * doc/invoke.texi: Document this.
17451
17452 2005-02-22  DJ Delorie  <dj@redhat.com>
17453
17454         * c-common.c (c_common_type_for_mode): Pass the mode's precision
17455         to make_[un]signed_type, not the mode itself.
17456
17457 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
17458
17459         * cfg.c (cached_make_edge): Call make_edge if edge cache is
17460         not available.  Use tail calls wherever possible.
17461         (make_edge): Call unchecked_make_edge to create an edge.
17462
17463         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
17464         (coalesce_ssa_name): Don't check for
17465         SSANORM_USE_COALESCE_LIST.
17466         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
17467
17468 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
17469
17470         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
17471         (rewrite_into_ssa): ... here.
17472
17473 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
17474
17475         PR tree-optimization/19786
17476         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
17477         tag to another's may-alias bitmap when adding to the other's list.
17478
17479 2005-02-21  DJ Delorie  <dj@redhat.com>
17480
17481         * tree-ssa-loop-ivopts.c (computation_cost): Start register
17482         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
17483         registers in unsupported ways.
17484         * expmed.c (init_expmed): Likewise.
17485
17486 2005-02-21  Stan Cox  <scox@redhat.com>
17487
17488         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
17489
17490 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
17491
17492         * tree-cfg.c (fold_cond_expr_cond): New.
17493         (make_edges): Call fold_cond_expr_cond.
17494         (find_taken_edge): Accept nothing but INTEGER_CST.
17495         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
17496         and 1.
17497         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
17498
17499         * flow.c (delete_dead_jumptables): Speed up by scanning insns
17500         that do not belong to any basic block.
17501
17502 2005-02-21  Jeff Law  <law@redhat.com>
17503
17504         * cfganal.c (find_unreachable_blocks): Manually CSE load of
17505         e->dest.
17506
17507 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
17508
17509         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
17510         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
17511         Adjust their definitions.
17512         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
17513         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
17514
17515         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
17516         genautomata.c, langhooks.c, langhooks.h, system.h,
17517         config/arm/lib1funcs.asm: Update copyright.
17518
17519 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
17520
17521         * dbxout.c (dbxout_function_end): Emit Lscope label always.
17522
17523 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
17524
17525         PR bootstrap/13770
17526         * doc/install.texi: Document --with-gc.
17527
17528 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
17529
17530         * simplify-rtx.c (simplify_unary_operation): Add a missing
17531         "break" statement.
17532
17533 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
17534
17535         PR tree-optimization/18663
17536         * tree-ssa-dom.c (extract_range_from_cond): Return 0
17537         if the type has variable bounds.
17538
17539 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
17540
17541         * gcse.c: Remove an obsolete comment.
17542
17543         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
17544
17545 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
17546
17547         * doc/extend.texi (Function Attributes) <Attribute const>: The
17548         attribute "pure" is below this text, not above.
17549
17550 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17551
17552         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
17553         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
17554         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
17555
17556 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
17557
17558         PR 18785
17559         * langhooks.h (struct lang_hooks): Add to_target_charset.
17560         * langhooks.c (lhd_to_target_charset): New function.
17561         * langhooks-def.h: Declare lhd_to_target_charset.
17562         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
17563         (LANG_HOOKS_INITIALIZER): Update.
17564         * c-common.c (c_common_to_target_charset): New function.
17565         * c-common.h: Declare it.
17566         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
17567         c_common_to_target_charset.
17568
17569         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
17570         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
17571         Delete definitions.
17572         * system.h: Poison them.
17573         * doc/tm.texi: Don't discuss them.
17574         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
17575         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
17576         (pp_c_char): Do not attempt to generate letter escapes for
17577         newline, tab, etc.
17578         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
17579         * config/mips/mips.c (mips_output_ascii): Likewise.
17580
17581 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
17582
17583         PR tree-optimization/19951
17584         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
17585         is abnormal.
17586
17587 2005-02-19  Steven Bosscher  <stevenb@suse.de>
17588
17589         PR middle-end/19698
17590         * function.h (struct function): New field `max_loop_depth'.
17591         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
17592         (flow_loops_find): Reset the max loop depth count before finding loops.
17593         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
17594         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
17595         (calculate_global_regs_live): Make sure the loop will terminate
17596         when the initial sets are not empty.
17597
17598 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
17599
17600         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
17601         object inside.
17602         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
17603
17604 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
17605
17606         PR other/19525
17607         * doc/invoke.texi: Remove documentation of %M spec.
17608         * gcc.c: Likewise.
17609         (init_spec): Remove %M suffix from -lgcc_s.
17610         (do_spec_1): Remove 'M' case.
17611         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
17612         to put shared libraries in the multilib directory.  Remove the
17613         shlib_so_soname substitution variable.  Don't add a multilib encoding
17614         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
17615         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
17616         SHLIB_INSTALL as well as SHLIB_LINK.
17617         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
17618         (SHLIB_NAME): Delete.
17619         (SHLIB_DIR): New macro.
17620         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
17621         (SHLIB_INSTALL): Adjust accordingly.
17622         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
17623         * config/t-slibgcc-sld: Likewise.
17624         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
17625         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
17626         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
17627         in $(SHLIB_DIR).
17628         (SHLIBUNWIND_INSTALL): Adjust accordingly.
17629         * config/i386/t-nwld (SHLIB_SONAME): Delete.
17630         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
17631         Use @shlib_base_name@ instead of @shlib_so_name@.
17632         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
17633         and @shlib_base_name@.so in @multilib_dir@.
17634         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
17635         to the install path.
17636         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
17637         (SHLIB_LINK): Remove previous workaround.
17638         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
17639         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
17640         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
17641         the install path.
17642         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
17643         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
17644         (SHLIB_INSTALL): Adjust accordingly.
17645         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
17646         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
17647         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
17648         config/t-slibgcc-elf-ver.
17649
17650 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
17651             Jakub Jelinek  <jakub@redhat.com>
17652
17653         PR tree-optimization/19828
17654         * tree-ssa-loop-im.c: Add a TODO comment.
17655         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
17656         without side-effects.
17657
17658 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
17659
17660         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
17661         call fold_convert.
17662
17663 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
17664
17665         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
17666         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
17667         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
17668         functions.
17669         (ia64_reorg): Delete fixup_errata call.
17670         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
17671         (TARGET_SWITCHES): Delete -mb-step entry.
17672
17673 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
17674
17675         PR c/20043
17676         * c-typeck.c (composite_type): Handle quals in transparent unions.
17677         (type_lists_compatible_p): Likewise.
17678
17679 2005-02-18  Stan Shebs  <shebs@apple.com>
17680
17681         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
17682         expressions in the .literal8 section.
17683
17684 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
17685
17686         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
17687
17688 2005-02-18  Roger Sayle  <roger@eyesopen.com>
17689
17690         * fold-const.c (constant_boolean_node): Always create values of the
17691         specified type, don't bother calling truthvalue_conversion.
17692
17693 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
17694
17695         * except.c (output_function_exception_table): Call
17696         assemble_external_libcall (eh_personality_libfunc).
17697
17698 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
17699
17700         PR target/19886
17701         * config/ia64/ia64.h (struct machine_function): Add state_num.
17702         * config/ia64/ia64.c (process_epilogue,
17703         process_for_unwind_directive): Use new unwind state numbers each
17704         time rather than state 1.
17705
17706 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
17707
17708         PR target/20054
17709         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
17710         before the "*llgt_didi" pattern.
17711
17712 2005-02-18  Jason Merrill  <jason@redhat.com>
17713
17714         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
17715
17716 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
17717
17718         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
17719         (div0): Use it in place of ARM_FUNC_ALIAS.
17720         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
17721
17722 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
17723
17724         PR middle-end/20030
17725         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
17726         access, the lower bound of the array type if it exists.
17727
17728 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
17729
17730         PR c++/20008
17731         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
17732         cases that are out-of-range for the index type.
17733
17734 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
17735
17736         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
17737         (estimate_case_costs): Don't call convert.
17738         * expmed.c (expand_shift): Likewise.
17739         (make_tree): Call fold_convert instead of convert.
17740
17741 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
17742
17743         PR c++/19813
17744         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
17745         that ref to be marked MEM_READONLY_P doesn't have base that needs
17746         constructing.
17747
17748 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
17749
17750         * genautomata.c (output_get_cpu_unit_code_func,
17751         output_cpu_unit_reservation_p): Don't generate old-style function
17752         definitions.
17753
17754 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
17755
17756         PR c++/20023
17757         PR tree-optimization/20009
17758         * convert.c (convert_to_integer): Revert 2005-02-16 change.
17759
17760         PR tree-optimization/18947
17761         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
17762         inline, remove all nodes that are inlined into the extern inline
17763         being redefined.
17764
17765 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
17766
17767         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
17768         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
17769         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
17770         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
17771         Update copyright.
17772
17773 2005-02-17  Roger Sayle  <roger@eyesopen.com>
17774
17775         PR tree-optimization/19917
17776         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
17777         to be potentially trapping.
17778
17779 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
17780
17781         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
17782
17783 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
17784
17785         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
17786         tem becomes a local variable which is set to the value of the
17787         back end defined INITIAL_FRAME_ADDRESS macro.
17788         (expand_builtin_frame_address): Omit the base parameter to
17789         expand_builtin_return_addr.
17790         (expand_builtin_profile_func): Likewise.
17791         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
17792         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
17793         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
17794
17795 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
17796
17797         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
17798         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
17799         * config/frv/frv.c (frv_function_epilogue): Likewise.
17800
17801 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
17802
17803         * lambda-code (perfect_nestify): Remove mark/unmark
17804         for rewriting hack.
17805         * tree-loop-linear.c (linear_transform_loops): Add
17806         rewrite_into_ssa call so that ssa is correct for
17807         rewriting into loop closed.
17808
17809 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
17810
17811         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
17812         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
17813         BITMAP_FREE.
17814         * bt-load.c (btr_def_live_range, combine_btr_defs,
17815         migrate_btr_def, migrate_btr_defs): Likewise.
17816         * cfgcleanup.c (thread_jump): Likewise.
17817         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
17818         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
17819         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
17820         df_rd_local_compute, df_reg_info_compute): Likewise.
17821         * dominance.c (init_dom_info, free_dom_info): Likewise.
17822         * flow.c (init_propagate_block_info,
17823         free_propagate_block_info): Likewise.
17824         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
17825         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
17826         modify_reg_pav): Likewise.
17827         * loop-invariant.c (find_defs, find_invariant_insn,
17828         find_invariants, free_inv_motion_data): Likewise.
17829         * predict.c (tree_predict_by_opcode,
17830         estimate_bb_frequencies): Likewise.
17831         * stmt.c (expand_case): Likewise.
17832         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
17833         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
17834         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
17835         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
17836         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
17837         rewrite_ssa_into_ssa): Likewise.
17838         * tree-optimize.c (tree_rest_of_compilation): Likewise.
17839         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
17840         analyze_edges_for_bb, perform_edge_inserts): Likewise.
17841         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
17842         * tree-sra.c (tree_sra): Likewise.
17843         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
17844         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
17845         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
17846         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
17847         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
17848         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
17849         Likewise.
17850         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
17851         calculate_live_on_entry, calculate_live_on_exit,
17852         build_tree_conflict_graph): Likewise.
17853         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
17854         record_important_candidates, set_use_iv_cost, find_depends,
17855         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
17856         tree_ssa_iv_optimize_finalize): Likewise.
17857         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
17858         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
17859         tree_duplicate_loop_to_header_edge): Likewise.
17860         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
17861         * tree-ssa.c (verify_flow_insensitive_alias_info,
17862         verify_name_tags, verify_ssa, init_tree_ssa,
17863         delete_tree_ssa): Likewise.
17864         * tree-ssanames.c (marked_ssa_names, init_ssanames,
17865         fini_ssanames): Likewise.
17866         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
17867
17868 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
17869
17870         * config/rs6000/t-rtems: Completely reworked.
17871
17872 2005-02-17  Ira Rosen  <irar@il.ibm.com>
17873
17874         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
17875
17876 2005-02-17  Ira Rosen  <irar@il.ibm.com>
17877
17878         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
17879         POINTER_TYPE_P when checking that type is a pointer.
17880         (vect_get_memtag): Remove.
17881         (vect_address_analysis): Use POINTER_TYPE_P. Call
17882         vect_object_analysis with dummy parameter for memtag.
17883         (vect_object_analysis): Extract memtag (functionality that
17884         used to be in vect_get_memtag and moved here). Fix printings.
17885         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
17886         with correct parameters. Remove call to vect_get_memtag.
17887
17888 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
17889
17890         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
17891         (tree-vectorizer.o): Added missing dependencies.
17892
17893         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
17894         decleration.
17895         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
17896         declaration in tree-vectorizer.c, now has an extern declaration in
17897         tree-vectorizer.h).
17898         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
17899         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
17900         get_vectype_for_scalar_type, vect_is_simple_use,
17901         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
17902         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
17903         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
17904         vectorizable_store, vectorizable_operation, vectorizable_assignment,
17905         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
17906         find_loop_location): Likewise.
17907
17908         * tree-vectorizer.c (langhooks.h): #include removed.
17909         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
17910         moved to tree-vectorized.h.
17911         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
17912         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
17913         get_vectype_for_scalar_type, vect_is_simple_use,
17914         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
17915         vect_supportable_dr_alignment, new_loop_vec_info,
17916         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
17917         vect_set_verbosity_level, find_loop_location): Likewise.
17918
17919         (vect_analyze_loop): Function externalized. Declaration moved to
17920         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
17921         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
17922         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
17923         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
17924         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
17925         vect_enhance_data_refs_alignment, vect_analyze_operations,
17926         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
17927         vect_stmt_relevant_p, vect_get_loop_niters,
17928         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
17929         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
17930         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
17931         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
17932         vect_get_memtag): Likewise.
17933
17934         (vectorizable_load): Function externalized. Declaration moved to
17935         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
17936         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
17937         vect_transform_loop): Likewise.
17938         (vect_transform_stmt): Moved to tree-vect-transform.c.
17939         (vect_align_data_ref, vect_create_destination_var,
17940         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
17941         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
17942         vect_get_vec_def_for_operand, vect_init_vector,
17943         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
17944         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
17945         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
17946         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
17947         vect_do_peeling_for_loop_bound): Likewise.
17948
17949         * tree-vect-analyze.c: New file.
17950         * tree-vect-transform.c: New file.
17951
17952 2005-02-17  Jason Merrill  <jason@redhat.com>
17953
17954         PR mudflap/19319, c++/19317
17955         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
17956         slot explicit.
17957
17958 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
17959
17960         * doc/install.texi (Specific): Update link for Darwin-specific
17961         tool binary site.
17962
17963 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
17964
17965         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
17966         constant_boolean_node.
17967
17968 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
17969
17970         PR target/19019
17971         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
17972         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
17973
17974 2005-02-16  Richard Henderson  <rth@redhat.com>
17975
17976         PR 19920
17977         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
17978         with W_TYPE_SIZE.
17979         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
17980         replace uses with Wtype_MAXp1_F.
17981         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
17982         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
17983         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
17984         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
17985         and HAVE_TFMODE as appropriate.
17986         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
17987         (__floatdisf): Likewise.
17988         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
17989         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
17990         (Wtype_MAXp1_F): New.
17991         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
17992         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
17993
17994 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
17995
17996         * PR target/19162
17997         * arm.c (arm_apply_result_size): New function.
17998         * arm.h (APPLY_RESULT_SIZE): Define.
17999         * arm-protos.h (arm_apply_result_size): Add prototype.
18000         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
18001         (movxf): New expand.
18002         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
18003         (call_value_symbol): Remove predicate for operand 0.
18004         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
18005         (untyped_call): Rework to correclty return values for any type.
18006         (untyped_return): New expand.
18007         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
18008
18009 2005-02-16  Stan Shebs  <shebs@apple.com>
18010
18011         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
18012         * config/rs6000/t-darwin8: New, for 64-bit multilib.
18013
18014 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
18015
18016         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
18017         configure settings on Solaris 7 and later.
18018
18019 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
18020
18021         PR tree-optimization/19865
18022         * tree-optimize.c (init_tree_optimization_passes): Run
18023         pass_may_alias after pass_sra.
18024
18025 2005-02-16  Richard Henderson  <rth@redhat.com>
18026             Stuart Hastings  <stuart@apple.com>
18027
18028         PR debug/19521
18029         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
18030         Do nothing if debug info suppressed for this function.
18031         (dbxout_begin_function): Early exit if debug info suppressed for
18032         this function.
18033
18034 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
18035
18036         PR target/20007
18037         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
18038         find_basic_blocks.
18039         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
18040
18041         PR tree-optimization/19967
18042         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
18043         expand_builtin_strchr, expand_builtin_strrchr): Take a new
18044         argument TYPE.  Adjust calls to fold_builtin_XXX.
18045         (expand_builtin, fold_builtin_1): Adjust calls to
18046         expand_builtin_XXX.
18047         (fold_builtin_strchr, fold_builtin_strpbrk,
18048         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
18049         result to a requested type TYPE.
18050
18051 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
18052
18053         PR middle-end/19857
18054         * fold-const.c (fold): Don't optimize (T)(x & cst) to
18055         (T)x & (T)cst if (T)cst overflows.
18056         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
18057         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
18058
18059 2005-02-15  Jeff Law  <law@redhat.com>
18060
18061         * gcse.c (blocks_with_calls): New bitmap.
18062         (alloc_gcse_mem): Allocate it.
18063         (free_gcse_mem): Free it.
18064         (clear_modifY_mem_tables): Clear it.
18065         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
18066         when we encounter CALL_INSNs.
18067         (compute_transp, case MEM): Handle blocks with calls separate
18068         from blocks without calls.  Use bitmap iterators rather than
18069         FOR_EACH_BB.
18070
18071 2005-02-15  Peter O'Gorman  <peter@pogma.com>
18072
18073         PR bootstrap/18810
18074         * mklibgcc.in (vis_hide): Use a temporary object file, not
18075         -o /dev/null.
18076
18077 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
18078
18079         PR target/19924
18080         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
18081         access optimization.
18082
18083 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
18084             Alan Modra  <amodra@bigpond.net.au>
18085
18086         PR target/19019
18087         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
18088         (_xlqsub): Rename to __gcc_qsub.
18089         (_xlqmul): Rename to __gcc_qmul.
18090         (_xlqdiv): Rename to __gcc_qdiv.
18091         Provide versioned symbol aliases with old names.
18092         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
18093         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
18094         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
18095         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
18096         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
18097
18098 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
18099
18100         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
18101         Fold ~(A - 1) and ~(A + -1) to -A.
18102
18103 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
18104
18105         PR pch/14940
18106         PR target/19300
18107         * config/host-linux.c (linux_gt_pch_use_address): Copy from
18108         config/pa/pa-host.c:pa_gt_pch_use_address.
18109
18110 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
18111
18112         * tree-vn.c (get_value_handle): Make sure that given an
18113         is_gimple_min_invariant expression, we always return it.
18114
18115 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
18116
18117         * passes.c (rest_of_handle_gcse): Fix a comment.
18118
18119 2005-02-15  Jeff Law  <law@redhat.com>
18120
18121         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
18122         bitmap.
18123         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
18124         (canon_list_insert, record_last_mem_set_info): Similarly.
18125         (clear_modify_mem_tables): Similarly.
18126
18127 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
18128
18129         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
18130         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
18131         config/mips/mips.md, config/rs6000/aix.h,
18132         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
18133
18134 2005-02-15  Richard Henderson  <rth@redhat.com>
18135
18136         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
18137         call to be best_edge.
18138
18139 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
18140
18141         * basic-block.h: Adjust the prototype for find_basic_blocks.
18142         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
18143         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
18144         find_basic_blocks.
18145
18146         * flow.c (recompute_reg_usage): Remove all arguments.
18147         * passes.c (rest_of_compilation): Adjust the call to
18148         recompute_reg_usage.
18149         * rtl.h: Adjust the prototype for recompute_reg_usage.
18150
18151 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
18152
18153         * tree-dump.c (dump_files): Update to reflect new member
18154         of dump_file_info.
18155         (dump_register): Add new argument.
18156         Set glob name.
18157         (dump_switch_p_1): Check against glob name if doglob was passed.
18158         (dump_switch_p): Check against regular first, then glob if
18159         we didn't have any hits on the dump name.
18160         * tree-optimize.c (register_one_dump_file):
18161         Pass in glob name as well.
18162         * tree-pass.h (struct dump_file_info): Add glob
18163         member.
18164
18165 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
18166
18167         PR preprocessor/16323
18168         * doc/invoke.texi: Document that -Wendif-labels is on by default.
18169
18170 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
18171
18172         PR target/19019
18173         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
18174         (trunctfdf2_internal1): New.
18175         (trunctfdf2_internal2): Renamed from trunctfdf2.
18176
18177 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
18178
18179         PR tree-optimization/19853
18180         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
18181
18182 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
18183
18184         * passes.c (rest_of_handle_loop_optimize): Remove calls to
18185         delete_dead_jumptables and cleanup_cfg.
18186
18187 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
18188
18189         * reload.c (find_reloads): Swap address_reloaded flags when
18190         swapping commutative operands.
18191
18192 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
18193
18194         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
18195         Use standard_iv_increment_position for computing the bsi position
18196         for create_iv.
18197         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
18198         the bsi position.
18199
18200 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
18201
18202         PR target/17428
18203         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
18204         life range of hard registers.
18205         * value-prof.c (insn_prefetch_values_to_profile): Only
18206         scan normal insns.
18207
18208         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
18209         profile in libcalls.
18210
18211 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
18212
18213         * bitmap.h (bitmap_and_compl_into): Return bool.
18214         * bitmap.c (bitmap_and_compl_into): Return changed flag.
18215
18216 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
18217
18218         PR tree-optimization/19944
18219         * fold-const.c (fold): Re-add ABS_EXPR folding.
18220
18221 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
18222
18223         PR target/19019
18224         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
18225         {TARGET,MASK}_XL_COMPAT.
18226         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
18227         MASK_XL_COMPAT.
18228         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
18229         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
18230         TARGET_XL_COMPAT.
18231         (rs6000_arg_partial_bytes): Same.
18232         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
18233         and XL compatibility enabled.
18234         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
18235         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
18236         test to final condition.
18237         (cmptf_internal2): New.
18238         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
18239         xl-compat.  Add TFmode information to description.
18240
18241 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
18242
18243         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
18244
18245 2005-02-13  Jason Merrill  <jason@redhat.com>
18246
18247         PR c++/16405
18248         * fold-const.c (fold_indirect_ref_1): Split out from...
18249         (build_fold_indirect_ref): Here.
18250         (fold_indirect_ref): New fn.
18251         * tree.h: Declare it.
18252         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
18253         (gimplify_modify_expr_rhs): Likewise.
18254         (gimplify_expr): Likewise.
18255
18256 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
18257
18258         PR tree-optimization/14303
18259         PR tree-optimization/15784
18260         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
18261         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
18262         ABS_EXPR<x> != 0 to x != 0.
18263
18264 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
18265
18266         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
18267         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
18268         spelling conventions.
18269
18270         * passes.c (rest_of_handle_gcse): Don't run cse_main and
18271         delete_trivially_dead_insns too many times.
18272
18273         * passes.c (rest_of_handle_gcse): Remove dead assignments to
18274         tem and tem2.
18275
18276 2005-02-12  Ira Rosen  <irar@il.ibm.com>
18277
18278         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
18279         (vect_is_simple_iv_evolution): Remove redundant parameter
18280         and step check.
18281         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
18282         without last parameter.
18283         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
18284         Return pointer step. Call vect_is_simple_iv_evolution without
18285         last parameter. Check only that the step is multiple of size
18286         type. Remove stmt_vinfo updates.
18287         (vect_get_memtag_and_dr): Remove.
18288         (vect_get_memtag): New function.
18289         (vect_address_analysis): New function.
18290         (vect_object_analysis): New function.
18291         (vect_analyze_data_refs): Call vect_object_analysis and
18292         vect_get_memtag. Update stmt_vinfo fields.
18293
18294 2005-02-12  Ira Rosen  <irar@il.ibm.com>
18295
18296         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
18297         exist and are objects. Remove checks for pointer.
18298         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
18299         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
18300         (vect_create_data_ref_ptr): Likewise.
18301         (vect_base_addr_differ_p): New function.
18302         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
18303         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
18304         Don't set the DR_BASE_NAME field of data-ref.
18305         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
18306
18307 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
18308
18309         * optabs.h (enum optab_index): Add new OTI_ldexp.
18310         (ldexp_optab): Define corresponding macro.
18311         * optabs.c (init_optabs): Initialize ldexp_optab.
18312         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
18313         patterns.
18314         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
18315         using ldexp_optab.
18316         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
18317         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
18318
18319         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
18320         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
18321         intrinsics.
18322
18323 2005-02-12  Ira Rosen  <irar@il.ibm.com>
18324
18325         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
18326         to base_address.
18327         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
18328         stmt_vec_info.
18329         (vect_get_base_and_offset): Always return an address.
18330         (vect_create_addr_base_for_vector_ref): Remove treatment for
18331         different data reference types.
18332         (vect_compute_data_ref_alignment): Rename base to base_address in
18333         stmt_vec_info. Get the object in order to force its alignment.
18334         (vect_get_memtag_and_dr): Rename base to base_address in
18335         stmt_vec_info. Extract the object for memtag analysis.
18336
18337 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
18338
18339         PR regression/19898.
18340         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
18341         changes cc_status, use apply modified_in_p to part of cc_status
18342         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
18343         body.
18344
18345 2005-02-11  Richard Henderson  <rth@redhat.com>
18346
18347         * tree-complex.c (expand_complex_libcall): New.
18348         (expand_complex_multiplication): Use it for c99 compliance.
18349         (expand_complex_division): Likewise.
18350         * fold-const.c (fold_complex_add, fold_complex_mult): New.
18351         (fold): Call them.
18352         * builtins.c (built_in_names): Remove const.
18353         * tree.c (build_common_builtin_nodes): Build complex arithmetic
18354         builtins.
18355         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
18356         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
18357         (built_in_names): Remove const.
18358         * c-common.c (c_common_type_for_mode): Handle complex modes.
18359         * flags.h, toplev.c (flag_complex_method): Rename from
18360         flag_complex_divide_method.
18361         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
18362         __mulsc3, __muldc3, __mulxc3, __multc3): New.
18363         * libgcc2.h: Declare them.
18364         * libgcc-std.ver: Export them.
18365         * mklibgcc.in (lib2funcs): Build them.
18366
18367 2005-02-11  Steven Bosscher  <stevenb@suse.de>
18368
18369         PR tree-optimization/19876
18370         Partially revert my change from 2005-01-14
18371         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
18372         (compute_antic): ...and remove the loop here.
18373
18374 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
18375
18376         PR middle-end/19858
18377         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
18378         is number of inner's bits, avoid creating a BIT_FIELD_REF.
18379
18380         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
18381         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
18382
18383 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
18384
18385         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
18386         offsets for the big-endian 32-bit case.
18387
18388 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
18389
18390         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
18391
18392 2005-02-11  Dale Johannesen  <dalej@apple.com>
18393
18394         * cselib.c (cselib_process_insn):  Clear out regs where
18395         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
18396         * reload.c (find_equiv_reg): Ditto.
18397
18398 2005-02-11  Ian Lance Taylor  <ian@airs.com>
18399
18400         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
18401         with no elements.
18402
18403         * tree.c (build_function_type_list): Work correctly if there are
18404         no arguments.
18405
18406 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
18407
18408         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
18409         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
18410         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
18411         TARGET_ZARCH instead of TARGET_64BIT.
18412
18413 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
18414
18415         * config/rs6000/t-rtems:
18416         (MULTILIB_OPTIONS): Remove mcpu=602.
18417         (MUTLILIB_DIRNAMES): Remove m602.
18418         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
18419         Let mcpu=602 match mcpu=603.
18420         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
18421
18422 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18423
18424         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
18425         signal trampolines.
18426
18427 2005-02-10  David Daney  <ddaney@avtrex.com>
18428
18429         * config/alpha/linux-unwind.h: Add exception clause to copyright.
18430         * config/i386/linux-unwind.h: Likewise.
18431         * config/ia64/linux-unwind.h: Likewise.
18432         * config/mips/linux-unwind.h: Likewise.
18433         * config/pa/linux-unwind.h: Likewise.
18434         * config/rs6000/linux-unwind.h: Likewise.
18435         * config/s390/linux-unwind.h: Likewise.
18436         * config/sh/linux-unwind.h: Likewise.
18437         * config/sparc/linux-unwind.h: Likewise.
18438
18439 2005-02-10  Steven Bosscher  <stevenb@suse.de>
18440
18441         PR tree-optimization/17549
18442         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
18443         TER to replace a DEF with its expression if the DEF and the
18444         rhs of the expression we replace into have the same root
18445         variable.
18446
18447 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
18448
18449         * config/mips/mips.md: Fix the placement of the match_scratch in the
18450         lea64 peephole2.
18451
18452 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
18453
18454         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
18455         Fix comment typos.
18456
18457 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
18458
18459         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
18460         (strip_offset): Handle addresses.
18461         (add_address_candidates): Use strip_offset.
18462         (difference_cost): Reflect strip_offset change.
18463         (force_var_cost, difference_cost): Strip nops.
18464
18465 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
18466
18467         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
18468
18469         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
18470         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
18471         config/cris/cris-protos.h, config/cris/cris.c: Update
18472         copyright.
18473
18474 2005-02-10  Jeff Law  <law@redhat.com>
18475
18476         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
18477         (lookup_avail_expr): Similarly.
18478
18479 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
18480
18481         * builtins.c (fold_builtin_powi): New function.
18482         (fold_builtin_1): Call it.
18483
18484 2005-02-10  Steven Bosscher  <stevenb@suse.de>
18485
18486         PR documentation/19309
18487         * doc/cpp.texi: The __GNUC__ and related predefined macros
18488         are also defined for the "standalone" cpp.
18489         Some non-GCC compilers may also define __GNUC__.
18490
18491 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
18492
18493         PR c/19342
18494         * c-typeck.c (common_type): New routine.  Old common_type renamed
18495         to...
18496         (c_common_type): ...this.
18497         (build_conditional_expr, build_binary_op): Use c_common_type instead
18498         of common_type.
18499
18500 2005-02-10  Steven Bosscher  <stevenb@suse.de>
18501
18502         * doc/md.texi: Replace @samp{length} with @code{length}.
18503
18504 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
18505
18506         PR tree-optimization/18687
18507         * tree-flow.h (find_loop_niter): Declare.
18508         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
18509         Try using scev even for loops with more than one exit.
18510         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
18511         (struct ivopts_data): Added niters field.
18512         (struct nfe_cache_elt): New.
18513         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
18514         functions.
18515         (tree_ssa_iv_optimize_init): Initialize niters cache.
18516         (determine_number_of_iterations): Removed.
18517         (find_induction_variables): Do not call determine_number_of_iterations.
18518         Access niters for single exit through niter_for_single_dom_exit.
18519         (add_iv_outer_candidates): Access niters for single exit through
18520         niter_for_single_dom_exit.
18521         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
18522         number_of_iterations_cond.
18523         (iv_period): New function.
18524         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
18525         (may_replace_final_value): Take data argument.  Use
18526         niter_for_single_dom_exit.
18527         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
18528         (rewrite_use_compare): Pass data to may_eliminate_iv.
18529         (rewrite_use_outer): Pass data to may_replace_final_value.
18530         (free_loop_data): Clean up the niters cache.
18531         (tree_ssa_iv_optimize_finalize): Free the niters cache.
18532         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
18533         * tree-ssa-loop-niter.c (find_loop_niter): New function.
18534         (find_loop_niter_by_eval): Use tree_int_cst_lt.
18535         (num_ending_zeros): Moved to tree.c.
18536         * tree.h (num_ending_zeros): Declare.
18537         * tree.c (num_ending_zeros): Moved from tree.c.
18538
18539 2005-02-09  Richard Henderson  <rth@redhat.com>
18540
18541         * builtins.c (DEF_BUILTIN): Add COND argument.
18542         * tree.h (DEF_BUILTIN): Likewise.
18543         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
18544         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
18545         match.
18546         (DEF_BUILTIN_STUB): New.
18547         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
18548         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
18549         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
18550         * c-common.c (DEF_BUILTIN): Add COND argument.
18551         * tree.c (local_define_builtin): New.
18552         (build_common_builtin_nodes): New.
18553
18554 2005-02-09  Roger Sayle  <roger@eyesopen.com>
18555
18556         * fold-const.c (fold_strip_sign_ops): New function to simplify a
18557         floating point expression ignoring the sign of the result.
18558         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
18559         (fold) <MULT_EXPR>: Use it to simplify x*x.
18560         * tree.h (fold_strip_sign_ops): Prototype here.
18561         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
18562         argument.  Use fold_strip_sign_ops to simplify the first argument.
18563         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
18564         first argument when the second argument is an even integer
18565         constant, but only with -funsafe_math_optimizations.
18566         (fold_builtin_1): Update call to fold_builtin_copysign.
18567
18568 2005-02-09  Ian Lance Taylor  <ian@airs.com>
18569
18570         PR middle-end/19583
18571         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
18572         just check whether EH_FILTER_FAILURE falls through.
18573
18574 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
18575
18576         * gcc/haifa-sched.c (schedule_block): Make queued sched group
18577         insns return to ready list in the next turn.
18578
18579 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
18580
18581         PR middle-end/19402
18582         * builtins.def: New __builtin_powi[lf].
18583         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
18584         (expand_builtin_powi): New function.
18585         (expand_builtin): Dispatch to expand_builtin_powi.
18586         * libgcc2.h: Add prototypes for __builtin_powi[lf].
18587         * libgcc2.c: Add __builtin_powi[lf] implementation.
18588         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
18589         * optabs.h: Add powi_optab.
18590         * optabs.c (init_optabs): Initialize powi_optab.
18591         * doc/extend.texi: Document __builtin_powi[lf].
18592
18593 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
18594
18595         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
18596         exists.
18597
18598 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
18599
18600         PR middle-end/19854
18601         * fold-const.c (try_move_mult_to_index): Remove redundant
18602         type argument.  Create ADDR_EXPR with correct type.
18603         (fold): Update callers of try_move_mult_to_index.  Convert
18604         result to the appropriate type.
18605
18606 2005-02-09  Roger Sayle  <roger@eyesopen.com>
18607
18608         PR target/19597
18609         * config/avr/avr.c (default_rtx_costs): Delete.
18610         (avr_operand_rtx_cost): New function.
18611         (avr_rtx_costs): Completely rewrite.
18612
18613 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
18614
18615         PR target/19806
18616         * config/cris/cris.c (in_code): New variable.
18617         (cris_output_addr_const): Now a static function, a wrapper for
18618         output_addr_const.
18619         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
18620         case from old cris_output_addr_const.
18621         (cris_asm_output_label_ref): Similar for LABEL_REF.
18622         (cris_output_addr_const_extra): Similar for UNSPEC.
18623         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
18624         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
18625         * config/cris/cris-protos.h (cris_output_addr_const): Remove
18626         declaration.
18627         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
18628         (cris_asm_output_label_ref): Declare.
18629
18630 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
18631
18632         PR preprocessor/19801
18633         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
18634         filenames that changed when libcpp was moved to the toplevel.
18635
18636 2005-02-07  Roger Sayle  <roger@eyesopen.com>
18637
18638         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
18639         zero extensions of BImode operands.  Call lowpart_subreg instead
18640         of gen_lowpart_common and gen_lowpart_SUBREG.
18641
18642 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
18643
18644         PR ada/19489
18645         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
18646         * configure.ac: Set cc_for_cross_gnattools.
18647         * configure: Regenerate.
18648
18649 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
18650
18651         PR target/19803
18652         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
18653
18654 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
18655
18656         PR debug/19327
18657         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
18658         of nested functions.
18659
18660 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
18661
18662         * doc/extend.texi: Document deprecated extensions allowing
18663         static floating-point members to have initializers and allowing
18664         floating-point literals in integral constant expressions.
18665
18666 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
18667
18668         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
18669         config/darwin7.h, config/mips/mips.c,
18670         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
18671         Update copyright.
18672
18673         * cse.c: Update comments.
18674
18675 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
18676
18677         PR middle-end/19775
18678         * builtins.c (fold_builtin_sqrt): Transform
18679         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
18680         pow(x,y*0.5).
18681
18682 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
18683             Dorit Naishlos  <dorit@il.ibm.com>
18684
18685         * doc/invoke.texi (ftree-vectorizer-verbose): New.
18686         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
18687         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
18688         was added.
18689         * tree.h (vect_set_verbosity_level): New extern function declaration
18690         added.
18691         * tree-vectorizer.h (verbosity_levels): New enum type.
18692         * tree-vectorizer.c (vect_debug_stats): Function removed.
18693         (vect_debug_details): Likewise.
18694         (vect_verbosity_level): Global variable was defined and initialized.
18695         (vect_dump): Global variable definition.
18696         (vect_print_dump_info): New function.
18697         (vect_set_dump_settings): New function.
18698         (vect_set_verbosity_level): New function.
18699         (vectorize_loops): Add call to vect_set_dump_settings.
18700
18701         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
18702         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
18703         (slpeel_tree_peel_loop_to_edge): Likewise.
18704
18705         (vect_analyze_offset_expr): Call to vect_print_dump_info with
18706         appropriate verbosity level instead of call to vect_debug_details
18707         or vect_debug_stats.
18708         (vect_get_base_and_offset):
18709         (vect_create_addr_base_for_vector_ref):
18710         (get_vectype_for_scalar_type):
18711         (vect_create_data_ref_ptr):
18712         (vect_init_vector):
18713         (vect_get_vec_def_for_operand):
18714         (vect_finish_stmt_generation):
18715         (vectorizable_assignment):
18716         (vectorizable_operation):
18717         (vectorizable_store):
18718         (vectorizable_load):
18719         (vect_transform_stmt):
18720         (vect_update_ivs_after_vectorizer):
18721         (vect_do_peeling_for_loop_bound):
18722         (vect_update_inits_of_drs):
18723         (vect_do_peeling_for_alignment):
18724         (vect_transform_loop):
18725         (vect_is_simple_use):
18726         (vect_analyze_operations):
18727         (vect_is_simple_iv_evolution):
18728         (vect_analyze_scalar_cycles):
18729         (vect_analyze_data_ref_dependence):
18730         (vect_analyze_data_ref_dependences):
18731         (vect_compute_data_ref_alignment):
18732         (vect_enhance_data_refs_alignment):
18733         (vect_analyze_data_refs_alignment):
18734         (vect_analyze_data_ref_access):
18735         (vect_analyze_data_ref_accesses):
18736         (vect_analyze_pointer_ref_access):
18737         (vect_get_memtag_and_dr):
18738         (vect_analyze_data_refs):
18739         (vect_mark_relevant):
18740         (vect_stmt_relevant_p):
18741         (vect_mark_stmts_to_be_vectorized):
18742         (vect_can_advance_ivs_p):
18743         (vect_get_loop_niters):
18744         (vect_analyze_loop_form):
18745         (vect_analyze_loop):
18746         (vectorize_loops): Likewise.
18747
18748         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
18749         (vect_update_inits_of_drs):
18750         (vect_do_peeling_for_alignment):
18751         (vect_transform_loop):
18752         (vect_analyze_operations):
18753         (vect_analyze_scalar_cycles):
18754         (vect_analyze_data_ref_dependences):
18755         (vect_analyze_data_refs_alignment):
18756         (vect_analyze_data_ref_accesses):
18757         (vect_analyze_data_refs):
18758         (vect_mark_stmts_to_be_vectorized):
18759         (vect_get_loop_niters):
18760         (vect_analyze_loop_form):
18761         (vect_analyze_loop): Likewise.
18762         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
18763
18764 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
18765
18766         PR bootstrap/19796
18767         Revert:
18768         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
18769         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
18770         either -ffast-math or -funsafe-math-optimizations is in use.
18771
18772         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
18773         * config/mips/irix-csr.c: New file.
18774         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
18775         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
18776         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
18777         executables.
18778
18779 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
18780
18781         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
18782         redundant, incorrect definitions.
18783
18784         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
18785         expand.
18786         ("*tls_indirect_call"): New, reference hard regs directly.
18787         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
18788
18789 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
18790
18791         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
18792         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
18793
18794 2005-02-06  Roger Sayle  <roger@eyesopen.com>
18795
18796         PR rtl-optimization/19800
18797         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
18798         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
18799         gen_lowpart.
18800
18801 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
18802
18803         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
18804
18805 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
18806
18807         PR other/17135
18808         * doc/invoke.texi: Correct documentation of -freorder-functions.
18809
18810 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
18811
18812         PR other/14402
18813         * doc/invoke.texi: Don't mention gccbug.
18814
18815 2005-02-06  Roger Sayle  <roger@eyesopen.com>
18816             Andrew Pinski  <pinskia@physics.uc.edu>
18817             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
18818
18819         * simplify-rtx.c (simplify_relational_operation_1): Simplify
18820         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
18821         into just (zero_extract:SI FOO (const_int 1) BAR).
18822
18823 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
18824
18825         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
18826         macro locally.  Don't give last revision date.  Use GCC version
18827         number from gcc-common.texi.
18828         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
18829         revision date.  Use GCC version number from gcc-common.texi.
18830         Describe being a library as current state rather than as 3.x
18831         history.
18832         * doc/gcc.texi: Remove last update date.
18833         * doc/gccint.texi: Likewise.  Update copyright dates.
18834         * doc/install.texi: Update copyright dates.
18835
18836 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
18837
18838         PR other/7549
18839         * doc/invoke.texi: Mention for each option included in -Wall that
18840         it is included in -Wall.
18841         * doc/gcc.texi: Update copyright and last modification date.
18842
18843 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
18844
18845         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
18846         unnecessary cast to original induction variable increments.
18847
18848 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
18849
18850         PR tree-optimization/18219
18851         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
18852         in distributed form.
18853
18854 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
18855
18856         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
18857         Set bitpos and offset later in the function.  Do nothing if the
18858         target is a register and if the bitfield lies completely outside
18859         that register.
18860         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
18861         here.  Return an uninitialised register if the source value is stored
18862         in a register and the bitfield lies completely outside that register.
18863
18864 2005-02-06  Steven Bosscher  <stevenb@suse.de>
18865
18866         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
18867         not SET_DEST.
18868
18869 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
18870
18871         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
18872
18873 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
18874
18875         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
18876         * config/darwin8.h: New.
18877         * config/darwin7.h: Update comment.
18878
18879 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
18880             Dorit Naishlos  <dorit@il.ibm.com>
18881
18882         * tree-vectorizer.h (LOC): New type.
18883         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
18884         (loop_line_number): New field in struct _loop_vec_info.
18885         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
18886
18887         * tree-vectorizer.c (input.h): Included.
18888         (find_loop_location): New function.
18889         (vect_debug_stats): Argument changed from loop to LOC. Computation of
18890         loop line number removed.
18891         (vect_debug_details): Likewise.
18892         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
18893
18894         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
18895         call to vect_debug_details/stats changed from loop to loop_loc.
18896         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
18897         (slpeel_tree_peel_loop_to_edge): Likewise.
18898
18899         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
18900         changed from NULL to UNKNOWN_LOC.
18901         (vect_get_base_and_offset):
18902         (vect_create_addr_base_for_vector_ref):
18903         (get_vectype_for_scalar_type):
18904         (vect_create_data_ref_ptr):
18905         (vect_init_vector):
18906         (vect_get_vec_def_for_operand):
18907         (vect_finish_stmt_generation):
18908         (vectorizable_assignment):
18909         (vectorizable_operation):
18910         (vectorizable_store):
18911         (vectorizable_load):
18912         (vect_transform_stmt):
18913         (vect_update_ivs_after_vectorizer):
18914         (vect_do_peeling_for_loop_bound):
18915         (vect_do_peeling_for_alignment):
18916         (vect_transform_loop):
18917         (vect_is_simple_use):
18918         (vect_analyze_operations):
18919         (vect_is_simple_iv_evolution):
18920         (vect_analyze_scalar_cycles):
18921         (vect_analyze_data_ref_dependences):
18922         (vect_compute_data_ref_alignment):
18923         (vect_enhance_data_refs_alignment):
18924         (vect_analyze_data_ref_access):
18925         (vect_analyze_data_ref_accesses):
18926         (vect_analyze_pointer_ref_access):
18927         (vect_get_memtag_and_dr):
18928         (vect_analyze_data_refs):
18929         (vect_mark_relevant):
18930         (vect_stmt_relevant_p):
18931         (vect_mark_stmts_to_be_vectorized):
18932         (vect_can_advance_ivs_p):
18933         (vect_get_loop_niters):
18934         (vect_analyze_loop):
18935         (vectorize_loops): Likewise.
18936
18937         (vectorizable_load): Argument in call to vect_debug_details/stats
18938         changed from loop to LOOP_LOC (loop_vinfo).
18939         (vect_transform_loop):
18940         (vect_analyze_operations):
18941         (vect_analyze_scalar_cycles):
18942         (vect_analyze_data_ref_dependence):
18943         (vect_enhance_data_refs_alignment):
18944         (vect_analyze_data_ref_accesses):
18945         (vect_analyze_pointer_ref_access):
18946         (vect_analyze_data_refs):
18947         (vect_analyze_loop): Likewise.
18948
18949         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
18950         changed from loop to loop_loc.
18951
18952         (vect_enhance_data_refs_alignment): Removed unused variable loop.
18953
18954 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
18955             Dorit Naishlos  <dorit@il.ibm.com>
18956
18957         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
18958         declaration added.
18959         (vect_analyze_data_ref_dependences): Likewise.
18960
18961         (vect_is_simple_use): Argument changed from loop structure to
18962         loop_vect_info structure.
18963         (vect_can_advance_ivs_p): Likewise.
18964         (vect_create_index_for_vector_ref): Likewise.
18965         (vect_update_ivs_after_vectorizer): Likewise.
18966         (new_stmt_vec_info): Likewise.
18967
18968         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
18969         changed from loop to loop_vinfo.
18970         (vect_create_data_ref_ptr): First argument in call to
18971         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
18972         (vectorizable_assignment): Second argument in call to vect_is_simple_use
18973         was changed from loop to loop_vinfo.
18974         (vectorizable_operation): Likewise.
18975         (vectorizable_store): Likewise.
18976         (vect_mark_stmts_to_be_vectorized): Likewise.
18977         (vect_do_peeling_for_loop_bound): First argument in call to
18978         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
18979         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
18980         was changed from loop to loop_vinfo.
18981         (vect_analyze_data_ref_dependences): Third argument in call to
18982         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
18983
18984         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
18985         (vect_create_data_ref_ptr): Likewise.
18986         (vect_init_vector): Likewise.
18987         (vect_get_vec_def_for_operand): Likewise.
18988         (vectorizable_assignment): Likewise.
18989         (vectorizable_operation): Likewise.
18990         (vectorizable_store): Likewise.
18991         (vectorizable_load): Likewise.
18992         (vect_update_ivs_after_vectorizer): Likewise.
18993         (vect_is_simple_use): Likewise.
18994         (vect_analyze_data_ref_dependence): Likewise.
18995         (vect_analyze_pointer_ref_access): Likewise.
18996         (vect_can_advance_ivs_p): Likewise.
18997
18998         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
18999         before _stmt_vec_info.
19000         (_stmt_vec_info): Loop field replaced by loop_vec_info.
19001         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
19002         (new_stmt_vec_info): Argument changed from loop structure to
19003         loop_vect_info structure
19004
19005         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
19006         (vect_analyze_offset_expr): Avoid 80 columns overflow.
19007         (vect_create_addr_base_for_vector_ref): Likewise.
19008         (vect_analyze_pointer_ref_access): Likewise.
19009
19010 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
19011
19012         PR tree-opt/19768
19013         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
19014         phi flag if the phi is abnormal.
19015
19016 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
19017
19018         PR tree-opt/19736
19019         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
19020         information for the new statement.
19021
19022 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
19023
19024         PR driver/19117
19025         * gcc.c (main): Include the target in -v output.
19026
19027 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
19028
19029         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
19030         Do not drop the extend if we'd have to add a paradoxical subreg
19031         later.  Include optabs.h and insn-codes.h.
19032         * Makefile.in (combine.o): Depend on $(OPTABS_H).
19033
19034 2005-02-02  Roger Sayle  <roger@eyesopen.com>
19035
19036         PR middle-end/19405
19037         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
19038         * fold-const.c (const_binop): Avoid constant folding floating
19039         point operations in modes that use composite representations.
19040         * simplify-rtx.c (simplify_binary_operation): Likewise.
19041
19042 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
19043
19044         * config/rs6000/altivec.md (altivec_dst): Make the first operand
19045         a REG, not a MEM.
19046         (altivec_dstt): Likewise.
19047         (altivec_dstst): Likewise.
19048         (altivec_dststt): Likewise.
19049         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
19050         of first operand.
19051
19052 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
19053
19054         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
19055         EXPR_LOCUS from orig_cond to the new cond_stmt.
19056         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
19057         the new vec_stmt.
19058
19059 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
19060
19061         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
19062         standard_iv_increment_position. Remove call to bsi_next
19063         (no need to bump the iterator anymore).
19064         (vect_create_index_for_vector_ref): Call
19065         standard_iv_increment_position. Remove second function argument.
19066         (vect_finish_stmt_generation): Remove call to bsi_next
19067         (no need to bump the iterator anymore).
19068         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
19069         to vect_create_index_for_vector_ref.
19070
19071 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
19072
19073         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
19074         phis are used out of the loop.
19075
19076 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
19077
19078         PR c/17807
19079         * c-decl.c (undef_nested_function): New variable.
19080         (pop_scope): Diagnose undefined nested functions.
19081         (finish_function): Don't attempt cgraph processing or genericizing
19082         if current top-level function contained an undefined nested
19083         function.  Reset undef_nested_function at the end of a top-level
19084         function.
19085
19086 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
19087
19088         * tree.c (build_int_cst_type): Take sign of the value into account
19089         when deciding whether sign extend the value.
19090
19091 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
19092
19093         PR c/18502
19094         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
19095         (cpp_options, cc1_options): Change %{std*&ansi} to
19096         %{std*&ansi&trigraphs}.
19097
19098 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
19099
19100         * cse.c: Update comments.
19101
19102 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
19103
19104         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
19105         arguments go on the stack.  Do not put complex doubles in odd/even
19106         pairs.
19107
19108 2005-02-02  Steven Bosscher  <stevenb@suse.de>
19109
19110         * doc/invoke.texi: Update the options enabled at -O1, -O2,
19111         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
19112         -ftree-pre, and -fthread-jumps.
19113
19114 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
19115
19116         PR tree-optimization/19578
19117         * tree-flow.h (modified_noreturn_calls): Declare.
19118         (noreturn_call_p): Declare.
19119         * tree-flow-inline.h (noreturn_call_p): New function.
19120         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
19121         * tree-cfg.c (modified_noreturn_calls): New variable.
19122         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
19123         that contain a mid-block noreturn call.
19124         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
19125
19126 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
19127
19128         * df.c (df_def_record_1, df_uses_record): Don't use
19129         DF_FOR_REGALLOC.
19130         * df.h (DF_FOR_REGALLOC): Remove.
19131
19132 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
19133
19134         PR c/19435
19135         * c-typeck.c (really_start_incremental_init): Reset
19136         constructor_max_index for arrays of incomplete type.
19137
19138 2005-02-02  Jeff Law  <law@redhat.com>
19139
19140         * gcse.c (struct reg_set): Store the block index where the register
19141         was set rather than the setting insn.
19142         (record_one_set, compute_transp): Corresponding changes.
19143         (pre_insert_copy_insn): Do not call replace_one_set.
19144         (replace_one_set): Remove.
19145
19146 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
19147
19148         PR other/15514
19149         * doc/gcov.texi: Fix typo.
19150
19151 2005-02-01  Richard Henderson  <rth@redhat.com
19152
19153         PR target/19680
19154         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
19155         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
19156         type to bool.
19157         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
19158         * config/i386/i386-protos.h: Update.
19159
19160 2005-02-01  Steven Bosscher  <stevenb@suse.de>
19161
19162         PR tree-optimization/19217
19163         * tree-cfg.c (verify_expr): Use the data field to see if TP was
19164         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
19165         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
19166         that it is walking a PHI node.
19167
19168 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
19169
19170         * doc/extend.texi (Nested Functions): Update.
19171
19172 2005-02-01  Richard Henderson  <rth@redhat.com>
19173
19174         PR 19696
19175         * optabs.c (expand_copysign_absneg): Export.
19176         * optabs.h (expand_copysign_absneg): Declare.
19177         * config/rs6000/rs6000.md (copysigntf3): New.
19178
19179 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
19180
19181         PR tree-optimization/19633
19182         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
19183         * tree-ssa-alias.c (init_alias_info): Initialize.
19184         (merge_pointed_to_info): Set.
19185         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
19186         (dump_points_to_info_for): Show value of pt_null.
19187         (struct count_ptr_d): Declare.
19188         (find_ptr_dereference): Remove.
19189         (ptr_is_dereferenced_by): Remove.
19190         (count_ptr_derefs): New local function.
19191         (count_uses_and_derefs): New local function.
19192         (compute_points_to_and_addr_escape): Call it.  If the number
19193         of dereferences is greater than zero, mark the pointer as
19194         dereferenced.  If there are fewer dereferences than uses of
19195         the pointer, the pointer's value escapes.
19196
19197 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
19198
19199         PR tree-optimization/19670
19200         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
19201         here...
19202         (verify_use): ... set it here, instead.
19203
19204 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
19205
19206         * doc/sourcebuild.texi (Test directives): Fix formatting.
19207
19208         * doc/sourcebuild.texi (Test directives): Describe selector
19209         expressions.
19210
19211 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
19212
19213         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
19214         specific 64-bit CPUs.
19215
19216 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
19217
19218         PR target/16201
19219         * arm.c (arm_eliminable_register): New function.
19220         (adjacent_mem_locations): Don't allow eliminable registers.  Use
19221         HOST_WIDE_INT for address offsets.
19222         * arm-protos.h (arm_eliminable_register): Add prototype.
19223
19224 2005-02-01  Steven Bosscher  <stevenb@suse.de>
19225
19226         PR optimization/15242
19227         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
19228         * basic-block.h (duplicate_computed_gotos): Add prototype.
19229         * bb-reorder.c (duplicate_computed_gotos): New function to
19230         duplicate sufficiently small blocks ending in a computed jump.
19231         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
19232         if not optimizing for size.
19233         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
19234         never do tail merging for blocks ending in a computed jump.
19235         * doc/invoke.texi: Document the max-goto-duplication-insns param.
19236
19237 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
19238
19239         Patch from Richard Sandiford <rsandifo@redhat.com>
19240         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
19241         from inheriting a subreg equivalence with a non-spill register.
19242
19243         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
19244
19245 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
19246
19247         * config/frv/frv.c (movcc_fp_destination_operand): New.
19248         (gpr_or_memory_operand): Fix typo in comment.
19249         (gpr_or_memory_operand_with_scratch): New.
19250         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
19251         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
19252         movcc_fp_destination_operand.
19253         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
19254         Legitimize memory addresses using a scratch register.
19255
19256 2005-01-31  Jeff Law  <law@redhat.com>
19257
19258         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
19259         bitmap a sparse bitmap instead of a simple bitmap.
19260         (mark_def_sites_initialize_block):  Corresponding changes.
19261         (ssa_mark_def_sites_initialize_block): Likewise.
19262         (ssa_mark_phi_uses): Likewise.
19263         (mark_def_site, ssa_mark_def_sites): Likewise.
19264         (mark_def_site_blocks): Likewise.
19265         (rewrite_ssa_into_ssa): Likewise.
19266
19267         * tree-ssa-dom.c (record_cond): Pass correct variable type
19268         for last argument to htab_find_slot_with_hash.
19269
19270         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
19271         effects when optimizing 0 % X.  Do not try to optimize X % 0.
19272
19273 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
19274
19275         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
19276         1_mmalua.
19277
19278 2005-02-01  Eric Christopher  <echristo@redhat.com>
19279
19280         * config/mips/mips.c (override_options): Warn if -mint64
19281         is used.
19282         * doc/invoke.texi (MIPS Options): Document that -mint64 is
19283         deprecated.
19284
19285 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
19286
19287         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
19288         timestamp.
19289         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
19290         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
19291         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
19292         (cached_regno): Initialize to INVALID_REGNUM.
19293         (cse_reg_info_table_size,
19294         cse_reg_info_table_first_uninitialized,
19295         cse_reg_info_timestamp): New.
19296         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
19297         get_cse_reg_info.
19298         (init_cse_reg_info, get_cse_reg_info_1): New.
19299         (get_cse_reg_info): Cache the last look-up.
19300         (new_basic_block): Update the code to clear mappings from
19301         registers to cse_reg_info entries.
19302         (cse_main): Call init_cse_reg_info.
19303
19304         * cse.c (get_cse_reg_info): Update a comment.
19305
19306 2005-01-31  Steven Bosscher  <stevenb@suse.de>
19307
19308         PR c/19333
19309         * c-decl.c (start_decl): Do not warn about arrays of elements with
19310         an incomplete type here.
19311         (grokdeclarator): Do it here by making a pedwarn an error.
19312         * c-typeck.c (push_init_level): If there were previous errors with
19313         the constructor type, do not warn about braces for initializers.
19314         (process_init_element): Likewise for excess initializer elements.
19315
19316 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
19317
19318         * cse.c (delete_trivially_dead_insn): Don't iterate.
19319
19320 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
19321
19322         * config/rs6000/rs6000.md (copysignsf3): New expand.
19323         (copysigndf3): Likewise.
19324
19325 2005-01-31  Steven Bosscher  <stevenb@suse.de>
19326
19327         * recog.c (constrain_operands): Only look for earlyclobber operand
19328         conflicts if an '&' constraint was seen.
19329
19330 2005-01-31  Marc Espie <espie@openbsd.org>
19331
19332         * config.gcc: Don't include embedded systems fragment, switches default
19333         debugging format to ELF.
19334         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
19335         longer pick it up there.
19336
19337 2005-01-31  Dale Johannesen  <dalej@apple.com>
19338
19339         * doc/extend.texi (nested functions): Fix linkage description.
19340         Clarify that static is not allowed.
19341
19342 2005-01-31  Dale Johannesen  <dalej@apple.com>
19343
19344         * config/rs6000/darwin.md (movsf_low_di):  Make work.
19345         (movdf_low_di):  Make work.
19346
19347 2005-01-31  Dale Johannesen  <dalej@apple.com>
19348
19349         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
19350         Make work for 64 bit.
19351
19352 2005-01-31  Roger Sayle  <roger@eyesopen.com>
19353             Dale Johannesen  <dalej@apple.com>
19354
19355         PR middle-end/19650
19356         * fold-const.c (fold_binary_op_with_conditional_arg):
19357         Make types match original operands, before STRIP_NOPS.
19358
19359 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
19360
19361         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
19362         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
19363         (struct gcc_sigcontext): Delete.  Merge contents to..
19364         (struct gcc_ucontext): ..here.
19365         (get_sigcontext): Delete.
19366         (get_regs): New function, like get_sigcontext but return regs ptr.
19367         64-bit version finds regs from r1 to support vdso.
19368         (ppc_linux_aux_vector): New function.
19369         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
19370         and vector regs.
19371
19372 2005-01-31  Ira Rosen  <irar@il.ibm.com>
19373
19374         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
19375         sizetype.
19376         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
19377         redundant fold. Fix misalignment for MINUS_EXPR.
19378         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
19379         (vect_analyze_pointer_ref_access): Likewise.
19380         (vect_get_memtag_and_dr): Likewise.
19381
19382 2005-01-31  Richard Henderson  <rth@redhat.com>
19383
19384         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
19385         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
19386         absnegdf2_i387, absnegxf2_i387): Likewise.
19387
19388 2005-01-31  Richard Henderson  <rth@redhat.com>
19389
19390         PR 19696
19391         * optabs.c (expand_copysign_absneg): New.
19392         (expand_copysign_bit): Split out from ...
19393         (expand_copysign): ... here.  Use expand_copysign_absneg.
19394
19395 2005-01-30  Roger Sayle  <roger@eyesopen.com>
19396
19397         PR middle-end/19697
19398         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
19399         constant as the second operand and a register as the third.
19400
19401 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
19402
19403         PR target/19704
19404         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
19405         that dllimport'd functions do not use all call-clobbered registers
19406         to pass parameters.
19407
19408 2005-01-30  Richard Henderson  <rth@redhat.com>
19409
19410         PR 19696
19411         * optabs.c (expand_absneg_bit): Split out from expand_unop and
19412         expand_abs_nojump and generalize.  Use operand_subword and
19413         emit_no_conflict_block.  Support large modes.
19414         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
19415         back to maximum.
19416         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
19417         negation to subtraction.
19418         (expand_copysign): Check that the format has signed zeros.
19419         Use operand_subword and emit_no_conflict_block.  Support large modes.
19420
19421 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
19422
19423         Fix PR tree-optimization/19624
19424
19425         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
19426         * tree-ssa-pre.c: Add cfgloop.h.
19427         Update comment.
19428         (pre_stats): New member, constified.
19429         (inserted_exprs): New static variable.
19430         (NECESSARY): New macro.
19431         (create_expression_by_pieces): Fold the expression, and
19432         mark it as defaulting to not necessary. Also put in
19433         inserted_exprs.
19434         (fully_constant_expression): New function.
19435         (insert_into_preds_of_block): Modify to not insert phis when we
19436         are playing with induction variables.
19437         Push phis onto the inserted_exprs vector, and mark them as not
19438         necessary by default.
19439         (insert_aux): Call fully_constant_expression on eprime.
19440         If all edges produce the same value, mark it constant.
19441         (mark_operand_necessary): New function.
19442         (remove_dead_inserted_code): New function.
19443         (init_pre): Init loop optimizer to get loop info.
19444         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
19445         (execute_pre): Commit edge inserts, then remove dead code.
19446
19447 2005-01-30  Richard Henderson  <rth@redhat.com>
19448
19449         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
19450         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
19451
19452 2005-01-30  Richard Henderson  <rth@redhat.com>
19453
19454         PR target/19700
19455         * config/i386/i386.c (ix86_expand_copysign): New.
19456         (ix86_split_copysign_const): New.
19457         (ix86_split_copysign_var): Rename from ix86_split_copysign,
19458         rearrange op1/nmask operands.
19459         * config/i386/i386-protos.h: Update.
19460         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
19461         (copysigndf3): Likewise.
19462         (copysignsf3_const, copysigndf3_const): New.
19463         (copysignsf3_var): Rename from copysignsf3, split out splitter
19464         and fix split predicate for X constraint.
19465         (copysigndf3_var): Similarly.
19466
19467 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
19468
19469         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
19470         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
19471         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
19472
19473 2005-01-29  Richard Henderson  <rth@redhat.com>
19474
19475         PR target/19690
19476         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
19477         of # and * in constraints.
19478
19479 2005-01-29  Richard Henderson  <rth@redhat.com>
19480
19481         PR middle-end/19689
19482         * expr.c (store_field): Don't strip sub-mode cast when the input
19483         data is even smaller.
19484
19485 2005-01-29  Richard Henderson  <rth@redhat.com>
19486
19487         PR middle-end/19687
19488         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
19489         union being empty.
19490
19491 2005-01-29  Richard Henderson  <rth@redhat.com>
19492
19493         * combine.c (make_field_assignment): Fix argument order
19494         to gen_int_mode.
19495
19496 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
19497
19498         PR tree-optimization/15791
19499         * fold-const.c (extract_array_ref): New function.
19500         (fold): Fold comparisons between &a[i] and &a[j] or
19501         semantically equivalent trees.
19502
19503 2005-01-29  Jeff Law  <law@redhat.com>
19504
19505         * gcse.c (insert_expr_in_table): Revamp handling of available
19506         and anticipatable occurrence lists to avoid unnecessary list
19507         walking.
19508         (insert_set_in_table): Similarly.
19509
19510 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
19511
19512         * c-common.c (fix_string_type): Just use c_build_qualified_type to
19513         build string type.
19514         (c_build_qualified_type): Build qualified array types with
19515         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
19516         * c-decl.c (c_make_fname_decl): Build unqualified array type
19517         before qualified type.
19518         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
19519         type is qualified, not just if type itself is.  Don't apply
19520         qualifiers to array type when declarator is processed.  Apply
19521         qualifiers to field type whether or not it is an array type.
19522         Don't handle array types specially for applying qualifiers to
19523         variables.
19524         * c-typeck.c (composite_type): Build unqualified element type and
19525         array type when forming composite of array types.
19526         (common_pointer_type, comptypes, comp_target_types,
19527         type_lists_compatible_p, build_indirect_ref, build_array_ref,
19528         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
19529         types.
19530         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
19531         (args2) in variables a1 and a2.
19532
19533 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
19534
19535         * cse.c (n_elements_made, max_elements_made): Remove.
19536         (insert): Don't touch n_elements_made.
19537         (cse_main): Don't touch n_elements_made or max_elements_made.
19538
19539 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
19540
19541         PR target/15384
19542         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
19543         configuration part of dp-bit.c to be lost.
19544
19545 2005-01-28  Roger Sayle  <roger@eyesopen.com>
19546
19547         * expmed.c (expand_mult_highpart_optab): When attempting to use
19548         a non-widening multiplication in a wider mode, the operands need
19549         to be converted (zero or sign extended) to that mode.
19550
19551 2005-01-28  Ian Lance Taylor  <ian@airs.com>
19552
19553         PR middle-end/16558
19554         PR middle-end/19583
19555         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
19556         through if both operands fall through.
19557
19558 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
19559
19560         * cse.c (fold_rtx) <PC>: Don't optimize.
19561
19562 2005-01-28  Jeff Law  <law@redhat.com>
19563
19564         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
19565         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
19566
19567 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
19568
19569         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
19570         cse_reg_info_used_list_end): Remove.
19571         (cse_reg_info_list, cse_reg_info_list_free): New.
19572         (get_cse_reg_info): When allocating an instance of
19573         cse_reg_info, add it to the beginning of the cse_reg_info_list
19574         list.  Remove code to maintain cse_reg_info_used_list.
19575         (new_basic_block): Reset the free list to the beginning of
19576         cse_reg_info_list.
19577
19578 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
19579
19580         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
19581         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
19582         (frv_expand_mdpackh_builtin): New function.
19583         (frv_expand_builtin): Use it to expand __MDPACKH.
19584         * doc/extend.texi (__MDPACKH): Update documentation.
19585
19586 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
19587
19588         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
19589         SSE_FLOAT_MODE_P for use_sse computation.
19590
19591 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
19592
19593         PR target/19663
19594         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
19595
19596 2005-01-27  Richard Henderson  <rth@redhat.com>
19597
19598         * builtins.c (expand_builtin_copysign): New.
19599         (expand_builtin): Call it.
19600         * genopinit.c (optabs): Add copysign_optab.
19601         * optabs.c (init_optabs): Initialize it.
19602         (expand_copysign): New.
19603         * optabs.h (OTI_copysign, copysign_optab): New.
19604         (expand_copysign): Declare.
19605
19606         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
19607         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
19608
19609         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
19610         (ix86_expand_fp_absneg_operator): ... here.
19611         (ix86_split_copysign): New.
19612         * config/i386/i386-protos.h: Update.
19613         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
19614         (copysignsf3, copysigndf3): New.
19615
19616         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
19617         (copysignsf3, ncopysignsf3): New.
19618         (copysigndf3, ncopysigndf3): New.
19619         (copysignxf3, ncopysignxf3): New.
19620         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
19621
19622 2005-01-27  Arend Bayer  <arend.bayer@web.de>
19623             Kazu Hirata  <kazu@cs.umass.edu>
19624
19625         * cse.c: (find_best_addr): Don't call copy_rtx before calling
19626         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
19627         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
19628         NULL_RTX.
19629
19630 2005-01-27  Jeff Law  <law@redhat.com>
19631
19632         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
19633         definitions of SSA_NAMEs which are not being rewritten.
19634         (rewrite_ssa_into_ssa): Only initialize the current definition
19635         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
19636         If checking is enabled, assert that SSA_NAME_AUX is clear for all
19637         SSA_NAMEs before returning.
19638
19639 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
19640
19641         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
19642         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
19643         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
19644         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
19645         config/mips/iris6.h, config/sh/sh.c: Update copyright.
19646
19647 2005-01-27  Steven Bosscher  <stevenb@suse.de>
19648
19649         PR middle-end/17278
19650         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
19651         higher to -O2 and higher.  Likewise for tree PRE.
19652         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
19653         and better.
19654
19655 2005-01-27  Ian Lance Taylor  <ian@airs.com>
19656
19657         PR middle-end/19583
19658         * gimple-low.c (try_catch_may_fallthru): New static function.
19659         (block_may_fallthru): Handle TRY_CATCH_EXPR.
19660         * tree-inline.c (expand_call_inline): Don't warn about reaching
19661         the end of a non-void function being inlined if the function uses
19662         a return slot.
19663
19664 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
19665
19666         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
19667
19668         PR c/18946
19669         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
19670         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
19671         (implicitly_declare): Handle error_mark_node.
19672
19673 2005-01-27  Richard Henderson  <rth@redhat.com>
19674
19675         PR tree-opt/14329
19676         * tree.h (struct tree_decl): Add debug_expr_is_from.
19677         (DECL_DEBUG_EXPR_IS_FROM): New.
19678         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
19679         * dwarf2out.c (dwarf2out_var_location): Update to match.
19680         * tree-outof-ssa.c (create_temp): Likewise.
19681         * var-tracking.c (track_expr_p): Likewise.
19682         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
19683         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
19684         * toplev.c (default_tree_printer): Likewise.
19685
19686 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
19687
19688         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
19689         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
19690
19691 2005-01-27  Steven Bosscher  <stevenb@suse.de>
19692
19693         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
19694         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
19695         ASM_CLOBBERS): Add tree checks.
19696
19697         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
19698         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
19699         * c-common.def (SWITCH_STMT): Update to match.
19700         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
19701         macros instead of SWITCH_EXPR ones.
19702         * c-dump.c (c_dump_tree): Likewise.
19703         * c-gimplify.c (gimplify_switch_stmt): Likewise.
19704         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
19705
19706         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
19707
19708 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
19709
19710         * unwind-dw2.c (execute_stack_op): Add missing cases for
19711         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
19712
19713 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
19714
19715         * config.gcc (Obsolete configurations): Remove 'dummy', add
19716         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
19717         sparc-*-openbsd*.
19718
19719 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
19720
19721         PR tree-optimization/19633
19722         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
19723         CALL_EXPRs.
19724         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
19725         are no call-clobbered variables.
19726         * tree-outof-ssa.c (check_replaceable): Return false for calls
19727         with side-effects.
19728
19729 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
19730
19731         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
19732         even for variables with NULL DECL_INITIAL.
19733
19734 2005-01-26  Stuart Hastings  <stuart@apple.com>
19735
19736         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
19737
19738 2005-01-26  Richard Henderson  <rth@redhat.com>
19739
19740         PR middle-end/18008
19741         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
19742         field's type.
19743         * expr.c (store_field): Strip conversions to odd-bit-sized types
19744         if the destination field width matches.
19745
19746 2005-01-26  Richard Henderson  <rth@redhat.com>
19747
19748         * c-decl.c, expmed.c, expr.c: Revert last change.
19749
19750 2005-01-26  Richard Henderson  <rth@redhat.com>
19751
19752         PR middle-end/18008
19753         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
19754         field's type.
19755         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
19756         if we don't need the bits above those present in the current mode.
19757         * expr.c (store_field): Strip conversions to odd-bit-sized types
19758         if the destination field width matches.
19759
19760 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
19761
19762         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
19763         either -ffast-math or -funsafe-math-optimizations is in use.
19764
19765 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
19766
19767         PR target/19293
19768         PR target/19329
19769         * config/avr/avr.c (notice_update_cc): Only set condition code for
19770         ashrqi3 if shift count > 0.
19771         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
19772         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
19773         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
19774         count <= 0 as a no-op, and shift count >= width by copying zero
19775         or sign bit to all bits of the result.
19776         * config/avr/avr.md (all shifts): Add alternatives for zero shift
19777         count, with attribute "length" set to 0 and "cc" set to "none".
19778
19779 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
19780
19781         * doc/invoke.texi: Document -mTLS.
19782
19783         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
19784         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
19785         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
19786         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
19787         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
19788         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
19789         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
19790         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
19791
19792         * configure.ac: Check for a TLS capable gas.
19793
19794         * configure: Regenerate.
19795
19796 2005-01-26  Richard Henderson  <rth@redhat.com>
19797
19798         PR middle-end/18008
19799         * combine.c (make_field_assignment): Simplify store to zero_extract
19800         from a source with an overlapping mask.
19801
19802 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
19803
19804         2004-11-11  Eric Christopher  <echristo@redhat.com>
19805
19806         * config/frv/frv.md: Add fr400_integer automaton. Don't
19807         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
19808         to TYPE_MACC.
19809
19810 2005-01-26  Steven Bosscher  <stevenb@suse.de>
19811
19812         PR middle-end/16585
19813         * cfgbuild.c (make_edges): Do not clear or set
19814         current_function_has_computed_jump.
19815         * function.h (struct function): Remove the has_computed_jump field.
19816         (current_function_has_computed_jump): Do not define.
19817         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
19818         in a computed jump.  Ignore current_function_has_computed_jump.
19819
19820 2005-01-26  Richard Henderson  <rth@redhat.com>
19821
19822         PR middle-end/19515
19823         * expr.c (categorize_ctor_elements): New argument p_must_clear.
19824         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
19825         fully initialized.
19826         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
19827         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
19828         objects into static storage if they have more than one non-zero value.
19829         * tree.h (categorize_ctor_elements): Update decl.
19830
19831 2005-01-26  Steven Bosscher  <stevenb@suse.de>
19832
19833         PR middle-end/19616
19834         * tree.h (CALL_EXPR_TAILCALL): Add comment.
19835         * calls.c (check_sibcall_argument_overlap_1): Revert the change
19836         to this function from 2004-07-10.
19837         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
19838         the current function for tail call optimizations if the address
19839         of one of it its arguments is taken.
19840
19841 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
19842
19843         * cse.c (fold_rtx): Call equiv_constant only when necessary.
19844
19845 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
19846
19847         * function.c (expand_function_end): If current_function_calls_alloca,
19848         emit stack restore in a place that is reached when the function falls
19849         through at the end.
19850
19851 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
19852
19853         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
19854         rule to avoid matching inappropriate suffix rule.
19855
19856 2005-01-26  Jan Hubicka  <jh@suse.cz>
19857
19858         PR tree-optimization/19241
19859         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
19860
19861 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
19862
19863         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
19864         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
19865         of doubling.
19866         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
19867         <sim*>: Always use crt1.o, regardless of N in simN.
19868         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
19869         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
19870         (CRT_CALL_STATIC_FUNCTION): Remove.
19871         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
19872         use crt1.o, regardless of N in simN.
19873         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
19874         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
19875         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
19876         case isystem setting.
19877         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
19878
19879 2005-01-25  Ian Lance Taylor  <ian@airs.com>
19880
19881         * gimple-low.c (block_may_fallthru): Correct handling of
19882         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
19883
19884 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
19885
19886         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
19887         handlers to match indentation; nested under the mtune=* handler.
19888         Similar for mcpu= and march=.
19889
19890 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
19891
19892         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
19893         * config/mips/linux64.h (LIB_SPEC): Likewise.
19894         * config/mn10300/linux.h (LIB_SPEC): Likewise.
19895         * config/sh/linux.h (LIB_SPEC): Likewise.
19896
19897 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
19898
19899         * config/frv/frv.c (frv_legitimize_tls_address): New.
19900         (TARGET_HAVE_TLS): Define.
19901         (FRV_SYMBOL_REF_TLS_P): Define.
19902         (frv_override_options): Handle new register classes.
19903         (frv_legitimate_address_p): Reject tls addresses.
19904         (frv_legitimize_address): Handle TLS addresses.
19905         (gen_inlined_tls_plt): New.
19906         (gen_tlsmoff): New.
19907         (frv_legitimize_tls_address): New.
19908         (unspec_got_name): Add TLS entries.
19909         (got12_operand): Add R_FRV_TLSMOFF12 case.
19910         (frv_emit_move): Fixup TLS addresses.
19911         (frv_emit_movsi): Legitimize TLS addresses.
19912
19913         * config/frv/frv.h (MASK_BIG_TLS): New.
19914         (TARGET_BIG_TLS): New.
19915         (HAVE_AS_TLS): Define.
19916         (TARGET_SWITCHES): Add -mTLS and -mtls options.
19917         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
19918         (REG_CLASS_NAMES): Same.
19919         (REG_CLASS_CONTENTS): Same.
19920         (CONSTRAINT_LEN): New.
19921         (REG_CLASS_FROM_CONSTRAINT): New.
19922         (PREDICATE_CODES): Add symbolic_operand.
19923
19924         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
19925         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
19926         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
19927         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
19928         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
19929         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
19930         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
19931         GR9_REG, GR14_REG, LRREG.
19932         (type): Add load_or_call attribute.
19933         ("load_or_call"): New reservation.
19934         ("call_gettlsoff"): New.
19935         ("tls_indirect_call"): New.
19936         ("tls_load_gottlsoff12"): New.
19937         ("tlsoff_hilo"): New.
19938         ("tls_tlsdesc_ldd"): New.
19939         ("tls_tlsoff_ld"): New.
19940         ("tls_lddi"): New.
19941
19942         * config/frv/frv-protos.h (symbolic_operand): Protoize.
19943
19944         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
19945
19946         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
19947         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
19948         * config/frv/frv.c (TLS_BIAS): Define.
19949         (frv_output_dwarf_dtprel): New.
19950
19951 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
19952
19953         PR rtl-optimization/19579
19954         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
19955         both A and B, see if they don't clobber registers the other expr uses.
19956
19957 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
19958
19959         * real.c (do_add): Initialize signalling and canonical members.
19960
19961         * real.c (real_from_integer): Zero out destination.
19962
19963 2005-01-18  Jan Hubicka  <jh@suse.cz>
19964
19965         PR tree-optimize/19337
19966         * tree-inline.c (initialize_inlined_parameters): Copy
19967         saved_static_chain_decl only.
19968
19969 2005-01-25  Richard Henderson  <rth@redhat.com>
19970
19971         PR target/19556
19972         PR target/19584
19973         * config/i386/i386.c (x86_inter_unit_moves): Zero.
19974         (ix86_preferred_reload_class): Rewrite fp-constant section, with
19975         80387 enabled, to return a proper subclass.  Return the subset that
19976         overlaps with GENERAL_REGS for PLUS.
19977         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
19978
19979 2005-01-25  Richard Henderson  <rth@redhat.com>
19980
19981         PR middle-end/19609
19982         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
19983
19984 2005-01-25  Roger Sayle  <roger@eyesopen.com>
19985
19986         * expmed.c (choose_multiplier): Change interface to return the
19987         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
19988         (expand_divmod): Update calls to choose_multiplier.
19989
19990 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19991
19992         PR middle-end/19330
19993         * expmed.c (extract_bit_field): Use adjust_address instead of
19994         gen_lowpart when op0 is a MEM.
19995
19996 2005-01-24  Steven Bosscher  <stevenb@suse.de>
19997
19998         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
19999
20000 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
20001
20002         * config/mips/irix-csr.c: New file.
20003         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
20004         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
20005         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
20006         executables.
20007
20008 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
20009
20010         PR bootstrap/19364
20011         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
20012         sparc/elf.h, add sparc/sp-elf.h.
20013         (sparc-*-rtems*): Likewise.
20014         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
20015         tm-dwarf2.h, add sparc/sp-elf.h.
20016         (sparc86x-*-elf): Likewise.
20017         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
20018         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
20019         TARGET_OS_CPP_BUILTINS.
20020         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20021         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20022         Undefine it.
20023         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
20024         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
20025         (SWITCH_TAKES_ARG): Likewise.
20026         (LOCAL_LABEL_PREFIX): Likewise.
20027         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
20028         (TARGET_N_FORMAT_TYPES): Delete.
20029         (TARGET_FORMAT_TYPES): Likewise.
20030         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
20031         * config/sparc/elf.h: Delete.
20032         * config/sparc/sp-elf.h: New file.
20033
20034 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
20035
20036         * tree-flow-inline.h (phi_arg_from_edge): Remove.
20037         * tree-flow.h: Remove the corresponding prototype.
20038         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
20039         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
20040
20041 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
20042
20043         PR target/17751
20044         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
20045         for AIX ABI or ELF -fPIC.
20046         (rs6000_emit_load_toc_table): Don't create toc_section here.
20047         (rs6000_xcoff_file_start): Nor here.
20048
20049 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
20050
20051         * sh.c (ra.h): Don't #include.
20052         (hard_regs_intersect_p): New function, resurrected from ra.c.
20053
20054         * sh.c: Fix 1996 Copyright.
20055
20056 2005-01-24  Richard Henderson  <rth@redhat.com>
20057             Aldy Hernandez  <aldyh@redhat.com>
20058
20059         * regrename.c (note_sets): Handle subregs.
20060
20061 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
20062
20063         PR bootstrap/18058
20064         * genconditions.c (write_header, write_conditions): Elide file if
20065         not GCC >= 3.0.1.
20066
20067 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
20068
20069         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
20070         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
20071         Update copyright.
20072
20073 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
20074
20075         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
20076         expand_builtin_printf, expand_builtin_fprintf,
20077         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
20078         checking against POINTER_TYPE.
20079         (validate_arglist): Handle POINTER_TYPE code by checking
20080         POINTER_TYPE_P.
20081
20082 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
20083
20084         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
20085         init_rtlanal): New.
20086         (for_each_rtx): Call for_each_rtx_1.
20087         * rtl.h (init_rtlanal): Declare.
20088         * toplev.c (backend_init): Call init_rtlanal.
20089
20090 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
20091
20092         * flow.c (propagate_one_insn): Formatting.
20093
20094         PR middle-end/19551
20095         * flow.c (libcall_dead_p): Be more conservative if unsure.
20096         If there are any instructions between insn and call, see if they are
20097         all dead before saying the libcall is dead.
20098
20099 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
20100
20101         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
20102         operand constraint for operand 0.
20103
20104 2005-01-23  Richard Henderson  <rth@redhat.com>
20105
20106         PR 19486
20107         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
20108         edges leading to join block.
20109
20110 2005-01-23  Roger Sayle  <roger@eyesopen.com>
20111
20112         * expmed.c (expand_mult_highpart): Make static.  Change type of
20113         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
20114         (expand_divmod): Updates calls to expand_mult_highpart by using
20115         gen_int_mode to pass a CONST_INT rtx.
20116         * rtl.h (expand_mult_highpart): Remove prototype.
20117
20118 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
20119
20120         * flow.c (regset_bytes, regset_size): Remove.
20121
20122         * cfganal.c: Fix a reference to Harvey's paper.
20123
20124 2005-01-23  Steven Bosscher  <stevenb@suse.de>
20125
20126         PR rtl-optimization/19464
20127         * tree-optimize.c (init_tree_optimization_passes): Add one more
20128         copyrename pass just before out-of-ssa.
20129
20130 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
20131
20132         PR bootstrap/18058
20133         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
20134         * ggc-none.c (ggc_free): Define.
20135
20136 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
20137
20138         * cse.c (max_reg, max_insn_uid): Remove.
20139         (cse_main): Don't access max_reg or max_insn_uid.
20140
20141         * c-common.c (explicit_flag_signed_bitfields,
20142         lang_statement_code_p, lang_expand_function_end): Remove.
20143         * c-common.h: Remove the corresponding declarations.
20144         * c-opts.c (c_common_handle_option): Remove all write access
20145         to explicit_flag_signed_bitfields.
20146
20147         * cgraph.c (cgraph_varpool_n_nodes): Remove.
20148         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
20149         * cgraph.h: Remove the corresponding declaration.
20150
20151         * gcse.c (null_pointer_info): Remove.
20152
20153 2005-01-23  Roger Sayle  <roger@eyesopen.com>
20154             Eric Botcazou  <ebotcazou@libertysurf.fr>
20155
20156         * combine.c (simplify_logical): Only simplify logical expressions
20157         of the form ior(and(x,y),z) by the inverse distributive law if the
20158         result is cheaper than the original.
20159
20160 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
20161
20162         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
20163         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
20164         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
20165         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
20166         config/freebsd-spec.h, config/arm/arm.h,
20167         config/h8300/h8300.md, config/i386/i386.md,
20168         config/i386/predicates.md, config/i386/sse.md,
20169         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
20170         config/vax/vax.md: Fix comment typos.  Follow spelling
20171         conventions.
20172
20173 2005-01-23  Steven Bosscher  <stevenb@suse.de>
20174
20175         * gengtype.c (walk_type): Produce `not equal to' compares for loop
20176         tests, instead of `less than'.
20177
20178 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
20179
20180         * function.c (assign_parm_setup_block): When creating a new stack slot
20181         for a parameter, get its alignment from the parameter's DECL_ALIGN
20182         rather than the type's TYPE_ALIGN.  Make sure that the parameter
20183         is at least word aligned.
20184
20185 2005-01-22  Roger Sayle  <roger@eyesopen.com>
20186
20187         PR middle-end/19378
20188         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
20189
20190 2005-01-22  Richard Henderson  <rth@redhat.com>
20191
20192         PR target/19506
20193         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
20194         in both compare operands.
20195         (movdfcc_1_sse_max): Likewise.
20196         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
20197         (movdfcc_1_sse): Likewise.
20198         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
20199         scratch register as needed.
20200
20201 2005-01-22  Richard Henderson  <rth@redhat.com>
20202
20203         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
20204
20205         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
20206
20207 2005-01-22  Richard Henderson  <rth@redhat.com>
20208
20209         * genopinit.c (optabs): Use smin/smax for floating point too.
20210         * doc/md.texi: Update to match.  Clarify that floating point
20211         results are undefined for +0/-0 and NaN.
20212         * doc/rtl.texi: Likewise.
20213         * rtl.def (SMIN, SMAX): Likewise
20214         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
20215
20216         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
20217         leading 's' to the name.
20218         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
20219         smaxxf3, sminxf3): Likewise.
20220         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
20221         Likewise.
20222
20223 2005-01-22  Paul Brook  <paul@codesourcery.com>
20224
20225         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
20226
20227 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
20228
20229         * config/s390/s390.c (struct processor_costs): New fields
20230         dlgr, dlr, dr, dsgfr, dsgr.
20231         (z900_cost, z990_cost): Values for new fields.
20232         (s390_rtx_costs): New cases MEM und COMPARE in switch
20233         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
20234         DIV, MOD, UDIV, UMOD.
20235
20236 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
20237
20238         * config/s390/s390.md ("doloop_si64"): Reload input value directly
20239         into the register being decremented.
20240         ("doloop_si31", "doloop_di"): Likewise.
20241         ("*doloop_si_long"): Adapt pattern.
20242
20243 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
20244
20245         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
20246         access registers.
20247         (CLASS_MAX_NREGS): Likewise.
20248
20249 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
20250
20251         * doc/tree-ssa.texi (Statement Operands): Add example for new
20252         must-def macro. Note deprecation of old operands interface.
20253
20254 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
20255
20256         PR tree-optimization/19484
20257         * tree-cfg.c (remove_fallthru_edge): New function.
20258         (cleanup_control_flow): Remove fallthru edges from calls that are
20259         now known not to return.
20260
20261 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
20262
20263         Fix PR tree-optimization/19038
20264         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
20265         copies with loop variant ones.
20266
20267 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
20268
20269         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
20270         config/alpha/alpha-protos.h, config/alpha/alpha.h,
20271         config/alpha/alpha.md, config/alpha/predicates.md,
20272         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
20273         config/sparc/sol2.h: Update copyright.
20274
20275         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
20276         first label to see if it is a nonlocal label.
20277
20278 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
20279             Andrew Pinski  <pinskia@physics.uc.edu>
20280
20281         PR target/19491
20282         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
20283         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
20284
20285 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
20286
20287         * config/rs6000/rtems.h: Update copyright.
20288
20289 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
20290
20291         PR target/19548
20292         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
20293         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
20294         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
20295
20296 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
20297
20298         PR c/18809
20299         * c-typeck.c (convert_arguments): Check for error_mark_node.
20300
20301 2005-01-21  Ian Lance Taylor  <ian@airs.com>
20302
20303         PR tree-optimization/13000
20304         * tree-inline.c: Include "tree-flow.h".
20305         (expand_call_inline): If warn_return_type, warn if non-void inline
20306         function falls through.
20307         * tree-cfg.c (execute_warn_function_return): Don't warn about
20308         control reaching end if TREE_NO_WARNING is set.  Set
20309         TREE_NO_WARNING.
20310         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
20311         has been lowered.
20312         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
20313         branch if we don't need one.
20314         * c-typeck.c: Include "tree-flow.h"
20315         (c_finish_bc_stmt): Don't add a goto if the current statement
20316         list doesn't fall through to the current point.
20317
20318 2005-01-21  Roger Sayle  <roger@eyesopen.com>
20319
20320         PR rtl-optimization/576
20321         * real.c (real_arithmetic): Change return type from void to bool
20322         to return an indication that the result may be inexact.
20323         * real.h (real_arithmeric): Update prototype.
20324         * fold-const.c (const_binop):  Don't constant fold floating
20325         point expressions when the user specifies -frounding-math and
20326         the result may depend upon the run-time rounding mode.
20327         (fold_convert_const_real_from_real): Clean-up.
20328         (fold_initializer): Ignore flag_rounding_math for initializers.
20329         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
20330         constant fold FP operations with flag_rounding_math if the
20331         result may depend upon the run-time rounding mode.
20332
20333 2005-01-21  Tom Tromey  <tromey@redhat.com>
20334
20335         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
20336
20337 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
20338
20339         * tree-cfg.c: Fix comment typos.
20340
20341 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
20342
20343         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
20344         around the call to rest_of_handle_branch_target_load_optimize.
20345
20346 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
20347
20348         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
20349         (sparc64-*-openbsd*): Likewise.
20350         (sparclite-*-elf*): Include tm-dwarf2.h.
20351         (sparc86x-*-elf*): Likewise.
20352         (sparc64-*-elf*): Likewise.
20353         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
20354         (DBX_DEBUGGING_INFO): Likewise.
20355         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
20356         (PREFERRED_DEBUGGING_TYPE): Likewise.
20357         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
20358         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
20359         (PREFERRED_DEBUGGING_TYPE): Likewise.
20360         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
20361         (PREFERRED_DEBUGGING_TYPE): Likewise.
20362         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
20363
20364 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
20365
20366         PR target/18701
20367         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
20368
20369 2005-01-20  Paul Brook  <paul@codesourcery.com>
20370
20371         * doc/rtl.texi: Document value extension requirements for CONST_INT.
20372
20373 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
20374
20375         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
20376         label is first in a sequence of labels.
20377
20378         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
20379
20380 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
20381             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
20382
20383         * doc/sourcebuild.texi (Test Directives): New.
20384
20385 2005-01-20  Roger Sayle  <roger@eyesopen.com>
20386
20387         * real.c (real_floor): Don't leave the result uninitialized when
20388         mode is VOIDMode, but return the unrounded intermediate value.
20389         (real_ceil): Likewise.
20390
20391 2005-01-20  Paul Brook  <paul@codesourcery.com>
20392
20393         * config/arm/arm.md (insv): Use gen_int_mode.
20394
20395 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
20396
20397         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
20398         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20399         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20400         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20401         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20402
20403 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
20404
20405         Fix PR debug/19124
20406         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
20407         fbreg, so we have to assume we can't.
20408         (loc_descriptor_from_tree_1): Ditto.
20409         (containing_function_has_frame_base): New function.
20410         (add_location_or_const_value_attribute): Use it.
20411         Also try to generate a frame_base from a single element location
20412         list.
20413
20414 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
20415
20416         PR tree-optimization/15349
20417         * timevar.def (TV_TREE_MERGE_PHI): New.
20418         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
20419         PHI_WANTED.
20420         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
20421         calls to tree_forwarder_block_p.
20422         (remove_forwarder_block_with_phi, merge_phi_nodes,
20423         gate_merge_phi, pass_merge_phi): New.
20424         * tree-optimize.c (init_tree_optimization_passes): Add
20425         pass_merge_phi.
20426         * tree-pass.h: Add an extern for pass_merge_phi;
20427
20428 2005-01-20  Richard Henderson  <rth@redhat.com>
20429
20430         PR target/19418
20431         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
20432         (_mm_castps_pd, _mm_castps_si128): New.
20433         (_mm_castsi128_ps, _mm_castsi128_pd): New.
20434
20435 2005-01-20  Richard Henderson  <rth@redhat.com>
20436
20437         PR target/19530
20438         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
20439         __builtin_ia32_vec_init_v2si.
20440         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
20441         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
20442         (ix86_init_mmx_sse_builtins): Create it.
20443         (ix86_expand_builtin): Expand it.
20444         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
20445         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
20446         (vec_extractv2si_0, vec_extractv2si_1): New.
20447
20448 2005-01-20  Richard Henderson  <rth@redhat.com>
20449
20450         PR target/16533
20451         * config/i386/i386.c (ix86_expand_push): New.
20452         * config/i386/mmx.md (push<MMXMODE>1): New.
20453         * config/i386/sse.md (push<SSEMODE>1): New.
20454         * config/i386/i386-protos.h: Update.
20455
20456 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
20457
20458         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
20459         copyright.
20460
20461 2005-01-20  Richard Henderson  <rth@redhat.com>
20462
20463         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
20464         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
20465
20466 2005-01-19  Richard Henderson  <rth@redhat.com>
20467
20468         PR target/19350
20469         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
20470         to V4SFmode in SSE1 fallback load path.
20471
20472 2005-01-19  Richard Henderson  <rth@redhat.com>
20473
20474         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
20475         in QImode expansion to ix86_expand_vector_set.
20476         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
20477
20478 2005-01-19  Richard Henderson  <rth@redhat.com>
20479
20480         PR target/19511
20481         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
20482         subclass of the input class.
20483         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
20484         Always true for cross-SSE1 classes.  Rationalize conditionals.
20485         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
20486         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
20487         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
20488         (movdi_2): Add MMX/SSE zeros.
20489         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
20490         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
20491         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
20492         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
20493         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
20494         (zero_extendsidi2_rex64_1): Remove.
20495         (MOV0 peephole): Check GENERAL_REG_P.
20496
20497 2005-01-19  Richard Henderson  <rth@redhat.com>
20498
20499         PR target/19427
20500         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
20501         shufps elements.
20502         (ix86_expand_vector_extract): Likewise.
20503
20504 2005-01-19  Richard Henderson  <rth@redhat.com>
20505
20506         PR middle-end/19304
20507         * expr.c (emit_move_change_mode): New argument force; use
20508         simplify_gen_subreg if true.
20509         (emit_move_via_alt_mode): Merge into ...
20510         (emit_move_via_integer): ... here.
20511         (emit_move_ccmode): Use emit_move_change_mode directly.
20512
20513 2005-01-19  Richard Henderson  <rth@redhat.com>
20514
20515         PR target/19518
20516         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
20517         (alpha_preferred_reload_class): Handle CONST_VECTOR.
20518         (alpha_emit_set_const_1): Add no_output parameter; don't emit
20519         rtl if true.
20520         (alpha_emit_set_const): Likewise.  Make static.
20521         (alpha_emit_set_long_const): Make static.
20522         (alpha_extract_integer): Split out from alpha_expand_mov.
20523         (alpha_split_const_mov): Likewise.
20524         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
20525         (alpha_legitimate_constant_p): New.
20526         * config/alpha/alpha-protos.h: Update.
20527         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
20528         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
20529         * config/alpha/alpha.md (movsi): Add n alternative.
20530         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
20531         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
20532         (splitters for all of the above): Use alpha_split_const_mov.
20533         * config/alpha/predicates.md (non_add_const_operand): New.
20534         (non_zero_const_operand): New.
20535         (input_operand): Use alpha_legitimate_constant_p after reload.
20536
20537 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
20538
20539         PR tree-optimization/19038
20540         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
20541         (add_candidate): Add ivs with increment in latch only if
20542         allow_ip_end_pos_p is true.
20543         (determine_iv_cost): Use empty_block_p.
20544
20545 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
20546
20547         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
20548         (compute_dominance_frontiers): Ditto.
20549
20550 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
20551
20552         PR target/19529
20553         * config/sh/t-rtems: New.
20554         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
20555
20556 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
20557
20558         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
20559         the offset of the selected field.
20560
20561 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
20562
20563         * tree-cfg.c (remove_forwarder_block): Fix the check to
20564         prevent a nonlocal label from appearing in the middle of a
20565         basic block.
20566
20567 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
20568
20569         PR rtl-optimization/19462
20570         * reorg.c (find_end_label): Create return insn only if
20571         current_function_epilogue_delay_list is empty.
20572
20573 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
20574
20575         * doc/passes.texi: Remove paragraph mentioning new-ra.
20576
20577 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
20578
20579         PR rtl-optimization/15139
20580         * combine.c: Include params.h.
20581         (count_rtxs): New function.
20582         (record_value_for_reg): If replace_rtx would replace at least
20583         2 occurrences of REG in VALUE and TEM is really large, replace REG with
20584         (clobber (const_int 0)) instead of TEM.
20585         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
20586         * params.h (MAX_LAST_VALUE_RTL): New.
20587         * Makefile.in (combine.o): Depend on $(PARAMS_H).
20588         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
20589
20590         PR c/17297
20591         * c-typeck.c (digest_init): Only call build_vector if all constructor
20592         elements are *_CST nodes.
20593         * gimplify.c (gimplify_init_constructor): Likewise.
20594
20595         PR middle-end/19164
20596         * c-typeck.c (digest_init): Only call build_vector if inside_init
20597         is a CONSTRUCTOR.
20598
20599 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
20600
20601         * toplev.c (init_asm_output): Remove dead #ifdef.
20602
20603 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
20604
20605         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
20606
20607 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
20608
20609         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
20610         accessing DECL_FUNCTION_CODE.
20611         * dojump.c (do_jump): Likewise.
20612         * gimplify.c (gimplify_call_expr): Likewise.
20613         * predict.c (expr_expected_value): Likewise.
20614         (strip_builtin_expect): Likewise.
20615         * tree-inline.c (estimate_num_insns_1): Likewise.
20616         * tree-ssa-loop-im.c (stmt_cost): Likewise
20617         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
20618         (tree_expr_nonnegative_p): Likewise.
20619
20620 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
20621
20622         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
20623         variant of the load_pcrel_sym pattern.
20624         * config/sparc/sparc.md (P macro): Move to the top.
20625         (load_pcrel_sym): Macroize using P.
20626         (save_register_window): Likewise.
20627
20628 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
20629
20630         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
20631         ("sordered"): Same.
20632
20633 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
20634
20635         PR C/19472
20636         * c-typeck.c (build_asm_expr): Strip nops off
20637         input memory operands.
20638
20639 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
20640
20641         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
20642         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
20643         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
20644         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
20645
20646 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
20647
20648         PR target/19379
20649         * config/i386/i386.c (override_options): If the 80387 is disabled,
20650         then do not return FP values using FP registers.
20651
20652 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
20653
20654         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
20655         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
20656         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
20657         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
20658         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
20659         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
20660         output.h, postreload-gcse.c, postreload.c, recog.c,
20661         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
20662         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
20663         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
20664         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
20665         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
20666         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
20667         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
20668         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
20669
20670         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
20671         config/alpha/alpha.c, config/arm/vfp.md,
20672         config/i386/emmintrin.h, config/i386/i386-modes.def,
20673         config/i386/i386-protos.h, config/i386/i386.h,
20674         config/i386/pmmintrin.h, config/i386/ppro.md,
20675         config/i386/predicates.md, config/i386/xmmintrin.h,
20676         config/i860/i860.c, config/ia64/ia64-modes.def,
20677         config/ia64/ia64-protos.h, config/ia64/ia64.h,
20678         config/ia64/ia64.md, config/ia64/itanium1.md,
20679         config/ia64/itanium2.md, config/ia64/predicates.md,
20680         config/iq2000/iq2000.h, config/mips/linux64.h,
20681         config/rs6000/aix41.h, config/rs6000/aix43.h,
20682         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
20683         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
20684         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
20685         config/sparc/linux64.h, config/sparc/litecoff.h,
20686         config/sparc/sp64-elf.h, config/sparc/sparc.c,
20687         config/sparc/sparc.h, config/sparc/sparc.md,
20688         config/sparc/sysv4-only.h: Update copyright.
20689
20690 2005-01-18  Richard Henderson  <rth@redhat.com>
20691
20692         PR target/19496
20693         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
20694
20695 2005-01-18  Marc Espie  <espie@openbsd.org>
20696         * config/i386/openbsdelf.h: Typo.
20697
20698 2005-01-18  Richard Henderson  <rth@redhat.com>
20699
20700         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
20701         special case for sse.
20702         * config/i386/predicates.md (sse_comparison_operator): Likewise.
20703
20704 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
20705
20706         * tree-inline.c (estimate_num_insns_1): Added cases for
20707         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
20708
20709 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
20710
20711         PR rtl-optimization/19296
20712         * combine.c (simplify_comparison): Rewrite the condition under
20713         which a non-paradoxical SUBREG of a PLUS can be lifted when
20714         compared against a constant.
20715
20716 2005-01-18  Andi Kleen <ak@muc.de>
20717
20718         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
20719         * c.opt (-Wpointer-sign): Add.
20720         * doc/invoke.texi: (-Wpointer-sign): Add.
20721
20722 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
20723
20724         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
20725         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
20726         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
20727         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
20728         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
20729         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
20730         for TARGET_MIX_SSE_I387.
20731         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
20732         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
20733         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
20734         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
20735         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
20736         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
20737         TARGET_MIX_SSE_I387.
20738         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
20739         from expander.
20740
20741 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
20742
20743         PR target/19424
20744         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
20745         Add movaps alternative for xmm reg->reg move.
20746
20747 2005-01-17  Jeff Law  <law@redhat.com>
20748
20749         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
20750         at the end of the main DOM loop rather than just before DOM exits.
20751
20752 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
20753
20754         PR tree-optimization/19121
20755         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
20756         adding aliases to a name tag, also add them to the pointer's
20757         type tag.
20758         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
20759         sensitive alias info at all.  Only check that the two pointers
20760         have compatible pointed-to sets.
20761         * tree-ssa.c (verify_name_tags): Verify that the alias set of
20762         a pointer's type tag is a superset of the alias set of the
20763         pointer's name tag.
20764
20765 2005-01-17  James E Wilson  <wilson@specifixinc.com>
20766
20767         PR target/19357
20768         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
20769         comment to document why.
20770
20771 2005-01-17  Richard Henderson  <rth@redhat.com>
20772
20773         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
20774         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
20775         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
20776         sse2_vmsminv2df3_finite): New.
20777         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
20778         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
20779         Force op1 into register.
20780
20781 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
20782
20783         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
20784         bubblestrap from always rebuilding build directory.
20785
20786 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
20787
20788         * config/s390/s390.md ("*clc"): Remove incorrect '='.
20789         ("*cmpmem_short"): Likewise.
20790
20791 2005-01-17  Steven Bosscher  <stevenb@suse.de>
20792
20793         * basic-block.h: Document BB_* flags.
20794         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
20795         use an sbitmap instead.
20796         * sched-rgn.c (compute_trg_info): Likewise.
20797
20798 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
20799
20800         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
20801         redundant target_cpu_default and extra_parts lines.  Use the default
20802         "from-abi" ISA.
20803         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
20804         (SUBTARGET_EXTRA_SPECS): Delete.
20805         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
20806         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
20807         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
20808         and "n32" for -mabi=n32.
20809
20810 2005-01-17  Ian Lance Taylor  <ian@airs.com>
20811
20812         PR c/5675
20813         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
20814         fold constant variables into initial values.
20815
20816 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
20817
20818         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
20819
20820         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
20821         through the statements backward.
20822
20823 2005-01-17  Ian Lance Taylor  <ian@airs.com>
20824
20825         PR middle-end/13127:
20826         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
20827         a variable set to the return value of the inlined function.
20828
20829 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
20830
20831         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
20832         when modes are tieable.
20833
20834 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
20835
20836         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
20837         of pthread_create to find out if threads are enabled.
20838         * gthr-posix95.h (__gthread_active_p): Likewise.
20839
20840 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
20841
20842         * common.opt (-fnew-ra): Remove.
20843         * ra*.*: Remove.
20844         * toplev.h (flag_new_regalloc): Remove.
20845         * Makefile.in (ra*.*): Don't mention.
20846         * passes.c (rest_of_handle_new_regalloc): Remove.
20847         (rest_of_handle_combine, rest_of_compilation): Always consider
20848         flag_new_regalloc as false.
20849         * doc/invoke.texi: Don't document -fnew-ra.
20850
20851 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
20852
20853         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
20854         last parameter to reg_scan.
20855         * loop.c (loop_optimize): Likewise.
20856         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
20857         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
20858         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
20859         rest_of_handle_gcse, rest_of_handle_loop_optimize,
20860         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
20861         * regclass.c (reg_scan): Likewise, for the declaration.
20862         * rtl.h (reg_scan): Likewise, for the prototype.
20863
20864 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
20865
20866         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
20867         mark_dfs_back_edges.
20868
20869 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
20870
20871         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
20872         (compute_avail): Uses don't go in tmp_gen.
20873
20874 2005-01-16  Steven Bosscher  <stevenb@suse.de>
20875
20876         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
20877         loop to look for a free slot in a page entry.
20878
20879 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20880
20881         PR target/16304
20882         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
20883         * toplev.c (compile_file): Call process_pending_assemble_output_defs
20884         just before targetm.asm_out.file_end.
20885         * tree.h (process_pending_assemble_output_defs): Declare.
20886         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
20887         New functions.
20888         (assemble_alias): Defer generation of assembly code for defines when
20889         TARGET_DEFERRED_OUTPUT_DEFS is true.
20890         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
20891         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
20892         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
20893
20894 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20895
20896         PR target/19336
20897         * pa.c (pa_scalar_mode_supported_p): New function.
20898         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
20899         * pa.h (MIN_UNITS_PER_WORD): Add comment.
20900
20901         * pa-protos.h (prefetch_operand): Delete.
20902         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
20903         * pa.c (prefetch_operand): Delete.
20904         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
20905         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
20906         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
20907         and prefetch_nocc_operand.
20908         * pa.md (prefetch): Rework to avoid reload problems handling short
20909         displacements when a cache control completer needs to be provided.
20910         (prefetch_32, prefetch_64): Delete.
20911         (prefetch_cc, prefetch_nocc): New patterns.
20912
20913 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
20914
20915         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
20916
20917 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20918
20919         PR ada/19388
20920         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
20921         exceeds maximum alignment for global common data.
20922         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
20923         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
20924
20925 2004-01-15  Roger Sayle  <roger@eyesopen.com>
20926
20927         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
20928
20929 2004-01-15  Roger Sayle  <roger@eyesopen.com>
20930
20931         * harg-reg-set.h (reg_class_names): Prototype global array.
20932         * regclass.c (reg_class_names): Declare here and initialize to
20933         REG_CLASS_NAMES.
20934         (dump_regclass): Remove local declaration of reg_class_names.
20935         (regclass): Likewise.
20936         * cfg.c (dump_flow_info): Likewise.
20937         * ra-debug.c (reg_class_names): Likewise.
20938         * regrename.c (reg_class_names): Likewise.
20939         * reload.c (reg_class_names): Likewise.
20940         * reload1.c (spill_failure): Likewise.
20941         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
20942
20943 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
20944
20945         * config/s390/s390.md ("reload_outti"): Remove predicate for
20946         output operand.  Abort if operand is not a MEM.
20947         ("reload_outdi", "reload_outdf"): Likewise.
20948
20949 2005-01-15  Marc Espie  <espie@openbsd.org>
20950
20951         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
20952         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
20953         * config/openbsd.h:  Fix C++ includes for native configurations.
20954         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
20955         Add trampoline support.
20956         * config/i386/openbsdelf.h: New.
20957
20958 2005-01-15  Marc Espie  <espie@openbsd.org>
20959
20960         * collect2.c (main): Explicitly parse -dynamic-linker option.
20961
20962 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
20963
20964         PR tree-optimization/19060
20965         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
20966         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
20967         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
20968         and handle extract_range_from_cond returning false.
20969         * fold-const.c (fold): Optimize comparisons with min/max even for
20970         width > HOST_BITS_PER_WIDE_INT.
20971
20972 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
20973
20974         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
20975         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
20976         Remove little endian multilib variants.
20977         Add mips32 multilib variant.
20978
20979 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
20980
20981         * explow.c (copy_all_reg, stabilize): Remove.
20982         * expr.h: Remove the corresponding prototypes.
20983
20984         * rtlanal.c (regs_set_between_p): Remove.
20985         * rtl.h: Remove the corresponding prototype.
20986
20987 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
20988
20989         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
20990         to rs6000_nonimmediate_operand.
20991         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
20992         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
20993         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
20994         rs6000_nonimmediate_operand.
20995         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
20996         rs6000_nonimmediate_operand.
20997
20998 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
20999
21000         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
21001
21002 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21003
21004         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
21005         on e500v2.
21006         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
21007         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
21008
21009         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
21010         (rs6k_nonimmediate_operand): New.
21011         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
21012         correctly.
21013         (legitimate_lo_sum_address_p): Same.
21014         (rs6000_legitimize_address): Same.
21015         (rs6000_legitimize_reload_address): Same.
21016         (rs6000_legitimate_address): Same.
21017         (spe_build_register_parallel): Pass DF and DC modes in a DI
21018         register.
21019
21020         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
21021         to rs6k_nonimmediate_operand.
21022
21023         * config/rs6000/spe.md ("*frob_df_di"): New.
21024         ("*frob_di_df"): New.
21025         ("*frob_di_df_2"): New.
21026         ("*mov_sidf_e500_subreg0"): New.
21027         ("*mov_sidf_e500_subreg4"): New.
21028         ("*movdf_e500_double"): Change predicate to
21029         rs6k_nonimmediate_operand.
21030
21031 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21032
21033         * postreload.c (move2add_note_store): Only call
21034         trunc_int_for_mode on scalar integers.
21035
21036 2005-01-14  Steven Bosscher  <stevenb@suse.de>
21037
21038         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
21039         replace BB_VISITED uses.
21040         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
21041         (propagate_necessity): Check the bitmap instead of BB_VISITED.
21042         (tree_dce_done): Free visited_control_parents.
21043         (perform_tree_ssa_dce): Allocate and clear it.
21044         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
21045         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
21046         instead of BB_VISITED.
21047
21048 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
21049
21050         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
21051         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
21052         Remove unused prototypes.
21053
21054 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21055
21056         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
21057         64-bit register usage.
21058         (spe_func_has_64bit_regs_p): Add FIXME note.
21059
21060 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21061
21062         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
21063         flag_finite_math_only with flag_unsafe_math_optimizations.
21064
21065 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
21066
21067         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
21068         end-of-stack check.
21069         (__tpf_eh_return): Copy TPF private stack area from the module
21070         boundary stack frame.  Add check for when module addresses are
21071         equal, but no stub address is found.
21072
21073 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
21074
21075         PR target/7525
21076         * arm.h (struct machine_function): Add call_via field.
21077         (thumb_call_via_label): Declare.
21078         * arm.c (thumb_call_via_label): New variable.
21079         (thumb_call_reg_needed): New variable.
21080         (arm_output_function_epilogue): For Thumb code, output any per-function
21081         call-indirect trampolines.
21082         (thumb_call_via_reg): New function.
21083         (arm_file_end): New function.
21084         (TARGET_ASM_FILE_END): Call arm_file_end.
21085         (aof_file_end): Likewise.
21086         * arm-protos.h (thumb_call_via_reg): Declare.
21087         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
21088         thumb_call_via_reg in normal case.
21089
21090 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
21091
21092         PR middle-end/19084
21093         PR rtl-optimization/19348
21094         * recog.c (peephole2_optimize): Do global life update if some peephole
21095         decides it doesn't need at least one of its inputs and that change
21096         influences liveness at the start of the basic block.
21097
21098         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
21099         arguments instead of 1.
21100
21101 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
21102
21103         PR middle-end/18820
21104         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
21105         zero for nested functions needing a static chain or functions
21106         with a non-constant address.
21107
21108 2005-01-13  Roger Sayle  <roger@eyesopen.com>
21109
21110         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
21111         (and (sign_extend X) C) into (zero_extend (and X C)).
21112
21113 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
21114
21115         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
21116
21117 2005-01-13  Richard Henderson  <rth@redhat.com>
21118
21119         PR target/19009
21120         PR target/19250
21121         PR target/19252
21122         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
21123         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
21124         not just TARGET_SSE.
21125         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
21126         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
21127         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
21128         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
21129         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
21130         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
21131         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
21132         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
21133         (movdicc_c_rex64): Rename with '*'.
21134         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
21135         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
21136         (movsfcc_1_387): Rename from movsfcc_1.
21137         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
21138         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
21139         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
21140         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
21141         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
21142         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
21143         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
21144         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
21145         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
21146         sse_movdfcc_const0_4): Remove.
21147         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
21148         recognize min/max early.  Update for changed sse cmove patterns.
21149         (ix86_split_sse_movcc): New.
21150         * config/i386/i386-protos.h: Update.
21151
21152 2005-01-13  Steven Bosscher  <stevenb@suse.de>
21153
21154         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
21155         (fix_stmt_v_may_defs): Likewise.
21156
21157 2005-01-13  Richard Henderson  <rth@redhat.com>
21158
21159         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
21160         for converting the mask.
21161
21162 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
21163
21164         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
21165         definition to 600.
21166
21167 2005-01-13  Richard Henderson  <rth@redhat.com>
21168
21169         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
21170         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
21171         IX86_BUILTIN_MOVDQ2Q): Remove.
21172         (IX86_BUILTIN_VEC_EXT_V4SI): New.
21173         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
21174         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
21175         shuffling.
21176         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
21177         (sse2_pextrw): Fix immediate constraint.
21178         (sse2_loadq, sse2_loadq_rex64): Remove.
21179         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
21180         Use __builtin_ia32_vec_ext_<size>.
21181         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
21182
21183 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
21184
21185         * function.c (assign_parm_setup_block): Look inside original
21186         entry_parm when inspecting PARALLEL.
21187
21188 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
21189             Joel Sherrill  <joel@oarcorp.com>
21190
21191         PR target/19399
21192         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
21193         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
21194         rtems_gxx_recursive_mutex_init.
21195         (__gthread_recursive_mutex_lock): New function.
21196         (__gthread_recursive_mutex_trylock): Likewise.
21197         (__gthread_recursive_mutex_unlock): Likewise.
21198
21199 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
21200
21201         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
21202
21203 2005-01-13  Jan Beulich  <jbeulich@novell.com>
21204
21205         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
21206         (ashrti3_internal): Indicate output is early clobber. Generate result
21207         into output rather than first input. Use move for low word of output
21208         if shift count is exactly 64.
21209         (lshrti3_internal): Likewise.
21210
21211 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
21212
21213         PR target/18329
21214         PR target/18330
21215         * reload1.c (delete_output_reload): Don't delete an output reload
21216         if the pseudo lives longer than a single basic block.  Adjust and
21217         improve wording of comment.
21218
21219 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
21220
21221         PR target/19334
21222         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
21223         of TYPE_SIZE where we mean the number of bytes.
21224
21225 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
21226
21227         * function.c (assign_parm_setup_block): Relax condition on
21228         multi-register optimization.
21229
21230 2005-01-12  Nick Clifton  <nickc@redhat.com>
21231
21232         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
21233         an "in_delay_slot" attribute of "no" to prevent them being used in
21234         delay slots.  This is forbidden because they might generate
21235         exceptions.
21236
21237 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
21238
21239         PR target/19389
21240         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
21241         with r->Y and Y->r.
21242
21243 2005-01-12  Nick Clifton  <nickc@redhat.com>
21244
21245         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
21246         passed on to GAS) but do not define, as GAS no longer supports or
21247         needs the -m2000 option.
21248
21249 2005-01-11  Roger Sayle  <roger@eyesopen.com>
21250
21251         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
21252         type as args of unprototyped builtins aren't automatically promoted.
21253         (fold_builtin_abs): Likewise.
21254
21255 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21256
21257         * Makefile.in: Set a `build-warn' variable.
21258
21259 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
21260
21261         PR tree-optimization/17949
21262         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
21263         (find_interesting_uses_address): Use it.
21264
21265 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
21266
21267         * regrename.c (kill_value): Handle subreg's that won't simplify.
21268
21269 2005-01-11  Richard Henderson  <rth@redhat.com>
21270
21271         PR target/13366
21272         * config/i386/i386.h (enum ix86_builtins): Move ...
21273         * config/i386/i386.c: ... here.
21274         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
21275         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
21276         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
21277         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
21278         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
21279         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
21280         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
21281         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
21282         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
21283         IX86_BUILTIN_LOADDDUP): Remove.
21284         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
21285         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
21286         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
21287         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
21288         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
21289         (ix86_init_builtins): Make static.
21290         (ix86_init_mmx_sse_builtins): Update for changed builtins.
21291         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
21292         if all the modes match.  Otherwise, fake it.
21293         (get_element_number, ix86_expand_vec_init_builtin,
21294         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
21295         (ix86_expand_builtin): Make static.  Update for changed builtins.
21296         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
21297         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
21298         (ix86_expand_vector_init_duplicate): New.
21299         (ix86_expand_vector_init_low_nonzero): New.
21300         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
21301         Split out from ix86_expand_vector_init; handle integer modes.
21302         (ix86_expand_vector_init): Use them.
21303         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
21304         * config/i386/i386-protos.h: Update.
21305         * config/i386/predicates.md (reg_or_0_operand): New.
21306         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
21307         (movv2sf_internal): Likewise.  And a splitter to match them all.
21308         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
21309         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
21310         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
21311         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
21312         (mmx_pinsrw): Fix operand ordering.
21313         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
21314         rather than sse_loadss expander.
21315         (movv2df splitter): Similarly.
21316         (sse_loadss, sse_loadlss): Remove.
21317         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
21318         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
21319         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
21320         (sse3_movddup): Rename with '*'.
21321         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
21322         (sse2_loadsd): Remove.
21323         (vec_dupv2df_sse3): Rename from sse3_loadddup.
21324         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
21325         (sse2_pinsrw): Fix argument ordering.
21326         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
21327         (sse2_stored): Remove 'r' destination.
21328         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
21329         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
21330         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
21331         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
21332         vec_extractv16qi, vec_initv16qi): New.
21333
21334         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
21335         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
21336         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
21337         constructor form.
21338         (_mm_load_pd, _mm_store_pd): Use plain dereference.
21339         (_mm_load_si128, _mm_store_si128): Likewise.
21340         (_mm_load1_pd): Use _mm_set1_pd.
21341         (_mm_load_sd): Use _mm_set_sd.
21342         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
21343         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
21344         (_mm_set_epi64): Use _mm_set_epi64x.
21345         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
21346         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
21347         _mm_setr_epi8): Use _mm_set_foo form.
21348         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
21349         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
21350         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
21351         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
21352         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
21353         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
21354         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
21355         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
21356         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
21357         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
21358         (_mm_movedup_pd): Use _mm_shuffle_pd.
21359         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
21360         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
21361         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
21362         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
21363         Use _mm_setzero_ps.
21364         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
21365         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
21366         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
21367         (_mm_store_ps): Use raw dereference.
21368         (_mm_store1_ps): Use _mm_storeu_ps.
21369         (_mm_storer_ps): Use _mm_store_ps.
21370         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
21371         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
21372
21373 2005-01-11  Stan Shebs  <shebs@apple.com>
21374
21375         * config/rs6000/rs6000.c (machopic_output_stub): Issue
21376         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
21377
21378 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
21379
21380         PR target/18761
21381         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
21382         Skip all DECLs except for FIELD_DECLs.
21383
21384 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
21385
21386         * config/s390/s390.c (override_options): Return error if
21387         -mbackchain, -mpacked-stack and -mhard-float are used together.
21388         (s390_va_start): Remove the backchain && packed-stack special case.
21389         (s390_gimplify_va_arg): Likewise.
21390         * doc/invoke.texi: Remove the ABI incompatibility note.
21391
21392 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
21393
21394         * config/s390/s390.c (struct s390_frame_layout): Remove
21395         save_backchain_p.
21396         (s390_frame_info, s390_emit_prologue): Replace occurrences of
21397         save_backchain_p with TARGET_BACKCHAIN.
21398
21399 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
21400
21401         PR target/18916
21402         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
21403         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
21404         * function.c (locate_and_pad_parm): Set new field.
21405         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
21406         Tweak where_pad test to include "none".  Always set mem align for
21407         stack_parm.
21408         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
21409         not sufficient for type.
21410         (assign_parm_setup_block): If stack_parm is zero on entry, always
21411         make a new stack local.  Block move old stack parm if necessary
21412         to new aligned stack local.
21413         (assign_parm_setup_stack): Use a block move to handle
21414         potentially misaligned entry_parm.
21415         (assign_parms_unsplit_complex): Specify required alignment when
21416         creating stack local.
21417         * calls.c (compute_argument_addresses): Override alignment of stack
21418         arg calculated from its type with the alignment given by
21419         FUNCTION_ARG_BOUNDARY.
21420         (store_one_arg): Likewise.
21421
21422 2005-01-11  Jan Beulich  <jbeulich@novell.com>
21423
21424         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
21425         Change respective itanium_class attribute to ialu.
21426         (shladdp4_internal): New.
21427         * config/ia64/predicates.md (shladd_log2_operand): New.
21428
21429 2005-01-11  Richard Henderson  <rth@redhat.com>
21430
21431         * expr.c (store_constructor): Use rtvec_alloc instead of
21432         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
21433
21434 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
21435
21436         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
21437
21438 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
21439
21440         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
21441         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
21442         (TARGET_RWRELOC): Define.
21443         (ia64_rwreloc_section_type_flags): Delete.
21444         (ia64_section_type_flags): New function.
21445         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
21446         (TARGET_RWRELOC): Define.
21447
21448 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
21449
21450         PR target/18987
21451         * config/ia64/ia64.c (process_set): For alloc insn, only call
21452         process_epilogue is !frame_pointer_needed.
21453
21454 2005-01-10  Roger Sayle  <roger@eyesopen.com>
21455
21456         PR c++/19355
21457         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
21458         unary operator and can't be treated as a binary/comparison operator.
21459
21460 2005-01-10  Richard Henderson  <rth@redhat.com>
21461
21462         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
21463         (ix86_return_in_memory): Likewise.
21464         (function_arg_advance):  Likewise.  Mirror structure in function_arg
21465         for choosing register to advance.
21466
21467 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
21468
21469         * tree-vectorizer.c, tree.def: Fix comment typos.
21470
21471 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
21472
21473         * config/s390/s390.c (struct processor_costs): 4 new fields:
21474         ddbr, ddr, debr, der.
21475         (s390_rtx_costs): More precise handling of divide instructions.
21476
21477 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
21478
21479         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
21480
21481 2005-01-10  Jan Beulich  <jbeulich@novell.com>
21482
21483         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
21484         names resulting from -ffunction-sections/-fdata-sections and linkonce
21485         ones.
21486         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
21487         based on the section name. Rearrange the section name comparison logic
21488         slightly so that each section name is compared against at most once.
21489
21490 2005-01-10  Ben Elliston  <bje@au.ibm.com>
21491
21492         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
21493         targets for which -fPIC reduces limitations on the GOT size.
21494
21495 2005-01-09  Falk Hueffner  <falk@debian.org>
21496
21497         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
21498         X/C1 cmpop C2.
21499
21500 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
21501
21502         PR target/18720
21503         * collect2.c (main): Set aixrtl_flag for -brtl option.
21504         (resolve_lib_name): Search for .so file extension before .a
21505         if aixrtl_flag set.
21506
21507 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
21508
21509         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
21510         (vect_analyze_data_refs_alignment): Add dump prints.
21511
21512 2005-01-09  Ira Rosen  <irar@il.ibm.com>
21513
21514         * tree-vectorizer.c (vect_analyze_offset_expr): Use
21515         expr_invariant_in_loop_p.
21516         Initialize outputs first thing in the function.
21517         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
21518         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
21519         (vect_analyze_pointer_ref_access): Check that the initial condition of
21520         the access function is loop invariant.
21521
21522 2005-01-09  Richard Henderson  <rth@redhat.com>
21523
21524         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
21525         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
21526         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
21527         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
21528         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
21529         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
21530         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
21531         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
21532         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
21533         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
21534         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
21535         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
21536         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
21537         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
21538         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
21539         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
21540         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
21541         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
21542         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
21543         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
21544         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
21545         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
21546         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
21547         mmx_ prefix.
21548         (mmx_clrdi, pavgusb): Remove.
21549         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
21550         with leading sse_ prefix.
21551         * config/i386/sse.md: Receive them.
21552         * config/i386/mmx.md: New file.
21553         (MMXMODE12, MMXMODE24, mmxvecsize): New.
21554         (subrv2sf3): Turn into expander for normal subtraction.
21555         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
21556         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
21557         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
21558         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
21559         commutative; use ix86_binary_operator_ok.
21560         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
21561         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
21562         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
21563         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
21564         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
21565         Macroize from existing patterns; use ix86_binary_operator_ok.
21566         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
21567         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
21568         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
21569         with vec_select+vec_concat.
21570         (mmx_pshufw, mmx_pshufw_1): Likewise.
21571         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
21572         (mmx_uavgv4hi3): Model correctly.
21573         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
21574         _mm_xor_si64): Remove casts.
21575
21576 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
21577
21578         PR tree-optimization/19224
21579         * tree-scalar-evolution.c (get_instantiated_value,
21580         set_instantiated_value): New functions.
21581         (instantiate_parameters_1): Cache the results.
21582         (instantiate_parameters, resolve_mixers): Initialize and free
21583         the cache.
21584
21585 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
21586
21587         * config/i386/i386.md (addhi_4): Correct reference in comment.
21588         (addqi_4): Same.
21589
21590 2005-01-08  Richard Henderson  <rth@redhat.com>
21591
21592         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
21593         (_mm_cvtsi128_si64x): Likewise.
21594         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
21595         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
21596         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
21597         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
21598         * config/i386/i386-protos.h: Update.
21599         * config/i386/i386.c (print_operand): Add 'H'.
21600         (ix86_fixup_binary_operands): Split out from ...
21601         (ix86_expand_binary_operator): ... here.
21602         (ix86_fixup_binary_operands_no_copy): New.
21603         (ix86_expand_fp_absneg_operator): Handle vector mode results.
21604         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
21605         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
21606         (safe_vector_operand): Use CONST0_RTX.
21607         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
21608         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
21609         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
21610         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
21611         special cases.
21612         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
21613         (IX86_BUILTIN_CMPNGESS): New.
21614         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
21615         (attr type): Add sselog1.
21616         (attr unit, attr memory): Handle it.
21617         (movti, movti_internal, movti_rex64): Move near other integer moves.
21618         (movtf, movtf_internal): Move near other fp moves.
21619         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
21620         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
21621         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
21622         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
21623         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
21624         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
21625         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
21626         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
21627         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
21628         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
21629         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
21630         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
21631         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
21632         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
21633         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
21634         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
21635         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
21636         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
21637         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
21638         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
21639         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
21640         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
21641         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
21642         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
21643         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
21644         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
21645         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
21646         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
21647         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
21648         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
21649         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
21650         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
21651         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
21652         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
21653         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
21654         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
21655         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
21656         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
21657         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
21658         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
21659         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
21660         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
21661         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
21662         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
21663         same time.
21664         (SSEPUSH, push<SSEPUSH>): Remove.
21665         (MMXPUSH, push<MMXPUSH>): Remove.
21666         (sse_movaps, sse_movaps_1, sse_movups): Remove.
21667         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
21668         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
21669         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
21670         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
21671         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
21672         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
21673         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
21674         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
21675         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
21676         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
21677         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
21678         (ppro_sse_log_V4SF): Handle sselog1.
21679         * config/i386/predicates.md (const_0_to_1_operand): New.
21680         (const_0_to_255_mul_8_operand): New.
21681         (const_1_to_31_operand): Rename from const_int_1_31_operand.
21682         (const_2_to_3_operand, const_4_to_7_operand): New.
21683         * config/i386/sse.md: New file.
21684         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
21685         (sse_movups): Rename from sse_movups_1.
21686         (sse_loadlss): Rename from sse_loadss_1.
21687         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
21688         from the name.
21689         (negv4sf2): Use ix86_expand_fp_absneg_operator.
21690         (absv4sf2, negv2df, absv2df): New.
21691         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
21692         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
21693         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
21694         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
21695         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
21696         (sse3_addsubv4sf3): Model correctly.
21697         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
21698         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
21699         (sse_movhlps): Model with vec_select+vec_concat.
21700         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
21701         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
21702         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
21703         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
21704         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
21705         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
21706         sse2_pshufhw_1): Likewise.
21707         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
21708         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
21709         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
21710         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
21711         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
21712         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
21713         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
21714         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
21715         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
21716         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
21717         sminv8hi3): Mark commutative
21718         operands.  Use ix86_binary_operator_ok.
21719         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
21720         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
21721         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
21722         sse2_punpcklqdq): Allow operand2 in memory.
21723         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
21724         sse2_movsd): Add memory alternatives.
21725         (sse_storelps): Turn expander into an insn; split after reload.
21726         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
21727         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
21728
21729 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
21730
21731         * configure.ac (DWARF-2 debug_line): Use objdump.
21732         * configure: Regenerate.
21733
21734 2005-01-08  Jeff Law  <law@redhat.com>
21735             Diego Novillo  <dnovillo@redhat.com>
21736
21737         PR tree-optimization/18241
21738         * tree-nrv.c (tree_nrv): Ignore volatile return values.
21739         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
21740         statements with volatile operands.
21741         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
21742         operands after marking a statement with has_volatile_ops.
21743
21744 2005-01-08  Roger Sayle  <roger@eyesopen.com>
21745
21746         * tree.c (int_fits_type_p): Always honor integer constant
21747         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
21748
21749 2005-01-08  Roger Sayle  <roger@eyesopen.com>
21750
21751         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
21752         the latent bug in rtl_delete_block has been resolved.
21753
21754 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
21755
21756         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
21757         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
21758
21759 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
21760
21761         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
21762         library as @multilib_dir@/$(SHLIB_SONAME).
21763
21764 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
21765
21766         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
21767         * configure: Regenerate.
21768
21769 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
21770
21771         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
21772         TYPE_MODE.
21773
21774 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
21775
21776         PR target/13674
21777         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
21778         Convert non-word aligned offset address using ld/std into
21779         indirect address.
21780
21781 2005-01-07  Richard Henderson  <rth@redhat.com>
21782
21783         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
21784
21785 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
21786
21787         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
21788
21789 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
21790
21791         PR tree-optimization/19283
21792         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
21793         is not shorter than the original type.
21794
21795         PR rtl-optimization/19012
21796         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
21797
21798         PR rtl-optimization/18861
21799         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
21800         (FULL_STATE): Define.
21801         (mark_tablejump_edge): New function.
21802         (purge_dead_tablejump_edges): New function.
21803         (find_bb_boundaries): Use it.
21804
21805         PR tree-optimization/18828
21806         * builtins.c (expand_builtin_next_arg): Remove argument and all
21807         the argument checking.
21808         (expand_builtin): Adjust caller.
21809         (expand_builtin_va_start): Likewise.  Remove error for too many
21810         arguments.
21811         (fold_builtin_next_arg): Issue error for too many arguments.
21812         After checking arguments, replace them with magic arguments that
21813         prevent further checking of the args.
21814
21815 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21816
21817         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
21818
21819 2005-01-06  Roger Sayle  <roger@eyesopen.com>
21820
21821         PR target/6077
21822         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
21823         and %{.S:...} (and their negative variants) to test whether the
21824         input file is assembler or pre-processed-assembler independent of
21825         the actual filename extension.
21826
21827 2005-01-06  Roger Sayle  <roger@eyesopen.com>
21828
21829         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
21830         of sign or zero extended values.
21831
21832 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
21833
21834         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
21835         for IBM long double format correctly.
21836
21837 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
21838
21839         Fix PR tree-optimization/18792
21840
21841         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
21842         to first_loop_depth, and use loop depth instead of loop number.
21843         (build_classic_dir_vector): Ditto.
21844         (compute_data_dependences_for_loop): Use depth, not loop number.
21845         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
21846         number. Pass in loops, instead of loop numbers.
21847         (gather_interchange_stats): Ditto.
21848         (linear_transform_loops): Ditto.
21849
21850 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
21851
21852         PR rtl-opt/13299
21853         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
21854         biv_fits_mode_p, extension_within_bounds_p): New functions.
21855         (check_ext_dependent_givs): Use them.
21856
21857 2005-01-06  Roger Sayle  <roger@eyesopen.com>
21858
21859         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
21860         more than one barrier, in which case we should delete them all.
21861
21862 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
21863
21864         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
21865
21866 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
21867
21868         Fix PR middle-end/19286
21869         Fix PR debug/19267
21870         * dwarf2out.c (gen_subprogram_die): If we've already tried to
21871         output this subprogram, simply ignore this attempt to do it again.
21872         (add_abstract_origin_attribute): Don't abort trying to add the abstract
21873         origin attribute if it's not possible.
21874         (gen_block_die): Don't ignore subblocks of "unused" blocks.
21875         (decls_for_scope): Ditto.
21876         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
21877         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
21878
21879 2005-01-05  Richard Henderson  <rth@redhat.com>
21880
21881         PR target/11327
21882         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
21883         (bdesc_2arg): Use it.
21884         (ix86_expand_binop_builtin): Force operands into registers
21885         when optimizing.
21886         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
21887         ix86_expand_sse_compare, ix86_expand_sse_comi,
21888         ix86_expand_builtin): Likewise.
21889
21890 2005-01-05  Richard Henderson  <rth@redhat.com>
21891
21892         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
21893         and VEC_SELECT.
21894         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
21895         (mulv4hi3): Set itanium_class mmmul.
21896         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
21897         (fpack): Rename from fpack_sfsf.
21898
21899 2005-01-05  Richard Henderson  <rth@redhat.com>
21900
21901         PR rtl-opt/10692
21902         * reload1.c (do_input_reload): Restrict the optimization deleteing
21903         a previous output reload to RELOAD_FOR_INPUT.
21904
21905 2005-01-05  Steven Bosscher  <stevenb@suse.de>
21906
21907         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
21908         comment that we fall through after case.
21909         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
21910         (distribute_links): Likewise.
21911         * cse.c (cse_insn): Likewise.
21912         * cselib.c (cselib_invalidate_mem): Likewise.
21913         * df.c: Update comments at the top of the file.
21914         (read_modify_subreg_p): Update comments here too.
21915         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
21916         * flow.c (mark_set_1): Likewise.
21917         (mark_used_regs): Likewise.
21918         * gcse.c (mems_conflict_for_gcse_p): Likewise.
21919         (canon_list_insert): Likewise.
21920         (mark_set): Likewise.
21921         (try_replace_reg): Likewise.
21922         (store_killed_in_insn): Likewise.
21923         * loop.c (count_one_set): Likewise.
21924         (basic_induction_var): Likewise.
21925         * postreload-gcse.c (find_mem_conflicts): Likewise.
21926         * postreload.c (reload_combine_note_store): Likewise.
21927         (move2add_note_store): Likewise.
21928         * reload.c (find_equiv_reg): Likewise.
21929         (mark_referenced_resources): Likewise.
21930         * rtlanal.c (set_noop_p): Likewise.
21931         (note_stores): Likewise.
21932         (note_uses): Likewise.
21933         * sched-deps.c (sched_analyze_1): Likewise.
21934         * sched-rgn.c (check_live_1): Likewise.
21935         (update_live_1): Likewise.
21936         * config/i860/i860.c: Likewise.
21937
21938         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
21939         an lvalue.
21940         (ZERO_EXTRACT): Mention that this one can be an lvalue.
21941
21942         * doc/rtl.texi: Update documentation for bit-fields and SET.
21943
21944 2005-01-05  Roger Sayle  <roger@eyesopen.com>
21945
21946         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
21947
21948 2005-01-05  Jan Hubicka  <jh@suse.cz>
21949             Richard Henderson  <rth@redhat.com>
21950
21951         PR target/18910
21952         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
21953         with an offset.
21954
21955 2005-01-05  Richard Henderson  <rth@redhat.com>
21956
21957         PR target/12902
21958         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
21959         (sse_shufps): Change operand 3 to const_int_operand.
21960         (sse2_storelps): Fix typo in template.
21961         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
21962         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
21963         (ix86_expand_builtin): Likewise.
21964
21965 2005-01-05  Julian Brown  <julian@codesourcery.com>
21966
21967         * config/arm/arm.c (arm_return_in_memory): Treat complex types
21968         as aggregates for AAPCS ABIs.
21969
21970 2005-01-05  Stan Shebs  <shebs@apple.com>
21971
21972         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
21973         Mach-O getters if ppc64.
21974         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
21975         size argument.
21976         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
21977         signed four-byte field for global code case.
21978         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
21979
21980 2005-01-05  Roger Sayle  <roger@eyesopen.com>
21981
21982         PR middle-end/19100
21983         * c-common.c: Include real.h.
21984         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
21985         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
21986         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
21987         * Makefile.in (c-common.o): Update dependencies.
21988
21989 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
21990
21991         * c-parse.in (asm_string): Add trailing semicolon.
21992
21993 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
21994
21995         * c-parse.in (asm_string): New.  Don't allow wide strings in
21996         'asm'.
21997         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
21998         asm_string instead of STRING.
21999
22000 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
22001
22002         * c-typeck.c (constructor_no_implicit): Remove.
22003         (set_designator, process_init_element): Don't check
22004         constructor_no_implicit.
22005
22006 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
22007             Kaz Kojima  <kkojima@gcc.gnu.org>
22008
22009         PR target/16482
22010         * lcm.c (create_pre_exit): New.
22011         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
22012         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
22013
22014 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
22015
22016         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
22017         -msoft-float in target_float_switch.
22018         * arm.c (arm_override_options): Fix processing of target_float_switch.
22019
22020 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
22021
22022         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
22023         preferencing.
22024
22025 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
22026
22027         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
22028         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
22029
22030 2005-01-04  Roger Sayle  <roger@eyesopen.com>
22031
22032         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
22033         if deleting the then-block allows the test-block to fallthru to the
22034         else-block.
22035
22036 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
22037
22038         PR c/19152
22039         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
22040         after the full declaration if the are in two different TUs.
22041
22042 2005-01-04  Richard Henderson  <rth@redhat.com>
22043
22044         PR tree-opt/19158
22045         * tree-sra.c (generate_one_element_init): Just
22046         call gimplify_and_add.
22047         (generate_element_init): Record the
22048         new referenced variables and mark them for renaming
22049         and split out to ...
22050         (generate_element_init_1): This.
22051         (scalarize_init): Don't call push_gimplify_context/
22052         pop_gimplify_context.
22053
22054 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
22055
22056         * toplev.c (get_src_pwd): Handle failure of getpwd().
22057
22058 2005-01-04  Roger Sayle  <roger@eyesopen.com>
22059
22060         * fold-const.c (fold_single_bit_test): Delete unreachable handling
22061         of TRUTH_NOT_EXPR.
22062         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
22063         all the cases handled by it are inverted by invert_truthvalue.
22064
22065 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
22066
22067         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
22068         (save_register_windowsi): Likewise.
22069
22070 2005-01-04  Richard Henderson  <rth@redhat.com>
22071
22072         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
22073
22074 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
22075
22076         PR middle-end/17767
22077         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
22078         any simplifications of vector mode comparison operators.
22079         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
22080
22081 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
22082             Devang Patel  <dpatel@apple.com>
22083
22084         PR tree-optimization/18308
22085         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
22086         the operands before creating a new expression.
22087         * dojump.c (do_jump): Make drop_through_label available
22088         for all cases.  Add expansion of COND_EXPR.
22089
22090 2005-01-04  Ira Rosen  <irar@il.ibm.com>
22091
22092         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
22093         INTEGER_CST instead of TREE_CONSTANT.
22094         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
22095         instead of TREE_CONSTANT.
22096         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
22097         instead of TREE_CONSTANT.
22098
22099 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
22100
22101         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
22102
22103 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
22104
22105         PR target/19240
22106         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
22107         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
22108
22109 2005-01-03  Richard Henderson  <rth@redhat.com>
22110
22111         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
22112         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
22113         fold_convert_const_real_from_real): Split out from ...
22114         (fold_convert_const): ... here.
22115
22116 2005-01-03  Richard Henderson  <rth@redhat.com>
22117
22118         PR target/19235
22119         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
22120         (mov<MMXMODEI>_internal): Likewise.
22121         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
22122         Add V2SF case; use it for SSE1; don't use TI.
22123         (movdf_integer): Likewise.
22124         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
22125
22126 2005-01-03  Ira Rosen  <irar@il.ibm.com>
22127
22128         * tree-vectorizer.c (vect_strip_conversions): New function.
22129         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
22130         check for binary class.
22131
22132 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
22133
22134         Fix PR debug/17924
22135         Fix PR debug/19191
22136         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
22137         is a decl.
22138         * gimple-low.c (mark_blocks_with_used_vars): New function.
22139         (mark_blocks_with_used_subblocks): Ditto.
22140         (mark_used_blocks): Ditto.
22141         (pass_mark_used_blocks): New pass.
22142         * tree-inline.c: Include debug.h.
22143         (expand_call_inline): Call outlining_inline_function here.
22144         * tree-optimize.c (init_tree_optimization_passes): Add
22145         pass_mark_used_blocks.
22146         * tree-pass.h (pass_mark_used_blocks): New.
22147         * Makefile.in (tree-inline.o): Add debug.h dependency.
22148
22149 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
22150
22151         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
22152         VAR_DECLs to have weak_import attribute.
22153
22154         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
22155         'struct ucontext'.
22156
22157 2004-01-03  Steven Bosscher  <stevenb@suse.de>
22158
22159         * passes.c (rest_of_compilation): Don't run regmove if only
22160         flag_expensive_optimizations, require flag_regmove instead.
22161
22162 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
22163
22164         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
22165         register "sparc".
22166         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
22167         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
22168         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
22169         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
22170
22171 2005-01-03  Richard Henderson  <rth@redhat.com>
22172
22173         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
22174         (ia64_const_ok_for_letter_p): New.
22175         (ia64_const_double_ok_for_letter_p): New.
22176         (ia64_extra_constraint): New.
22177         (ia64_expand_vecint_compare): New.
22178         (ia64_expand_vcondu_v2si): New.
22179         (ia64_expand_vecint_cmov): New.
22180         (ia64_expand_vecint_minmax): New.
22181         (ia64_print_operand): Add 'v'.
22182         (ia64_preferred_reload_class): New.
22183         (ia64_vector_mode_supported_p): New.
22184         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
22185         (PREFERRED_RELOAD_CLASS): Move to function.
22186         (CONST_OK_FOR_LETTER_P): Move to function.
22187         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
22188         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
22189         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
22190         (EXTRA_CONSTRAINT): Move to function.
22191         * config/ia64/ia64.md: Include vect.md.
22192         (itanium_class): Add mmalua.
22193         (type): Handle it.
22194         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
22195         (1b_mmalua): New.
22196         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
22197         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
22198         CONST0_RTX.
22199         (const_int_2bit_operand): New.
22200         (fr_reg_or_0_operand): New.
22201         * config/ia64/ia64-modes.def: Add vector modes.
22202         * config/ia64/ia64-protos.h: Update.
22203         * config/ia64/vect.md: New file.
22204
22205 2005-01-03  Richard Henderson  <rth@redhat.com>
22206
22207         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
22208
22209 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
22210
22211         PR target/19236
22212         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
22213         to SFmode.
22214         (log1pdf2): Change mode of operands[0,1] to DFmode.
22215
22216 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
22217
22218         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
22219         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
22220         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
22221         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
22222         SPARC_RELAXED_ORDERING.
22223
22224 2005-01-03  Richard Henderson  <rth@redhat.com>
22225             Uros Bizjak  <uros@kss-loka.si>
22226
22227         PR target/14631
22228         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
22229         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
22230         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
22231         handling.
22232         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
22233         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
22234         const_pow2_1_to_128_operand): New predicates.
22235
22236 2005-01-02  Greg McGary  <greg@mcgary.org>
22237
22238         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
22239         anonymous decls.
22240         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
22241         object.  [ptr_type]: Remove unused variable.
22242         Remember nearest addressable array-element or record-component
22243         when checking bitfield components.  Tolerate empty BIND_EXPR.
22244
22245 2005-01-01  Richard Henderson  <rth@redhat.com>
22246
22247         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
22248         that don't narrow the value.  Fail for other conversions.
22249
22250 2005-01-01  Richard Henderson  <rth@redhat.com>
22251
22252         PR c/19031
22253         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
22254         * c-lang.c (finish_file): Don't do it here.
22255         * objc/objc-act.c (objc_finish_file): Likewise.
22256
22257         * cgraph.c (decl_assembler_name_equal): New.
22258         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
22259         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
22260         * cgraph.h (struct cgraph_varpool_node): Add next.
22261         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
22262         * varasm.c (assemble_alias): Mark the target as needed.
22263
22264 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
22265
22266         PR middle-end/19221
22267         * function.c (get_arg_pointer_save_area): Use entry_of_function
22268         instead of get_insns.
22269
22270 2005-01-01  Roger Sayle  <roger@eyesopen.com>
22271             Andrew Pinski  <pinskia@physics.uc.edu>
22272             James E. Wilson  <wilson@specifixinc.com>
22273
22274         PR rtl-optimization/12092
22275         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
22276         is zero.
22277
22278 2005-01-01  Roger Sayle  <roger@eyesopen.com>
22279             Olivier Hainque  <hainque@act-europe.fr>
22280
22281         * tree.c (int_fits_type_p): A narrower type always fits in a
22282         wider one, except for negative values into unsigned types.
22283
22284 2005-01-01  Roger Sayle  <roger@eyesopen.com>
22285
22286         * tree.c (int_fits_type_p): Compare the result of force_fit_type
22287         with the original constant rather than require TREE_OVERFLOW.
22288
22289 2005-01-01  Steven Bosscher  <stevenb@suse.de>
22290
22291         PR middle-end/17544
22292         * c-decl.c (finish_function): If compiling C99, annotate the
22293         compiler generated return with the current file name and line 0.
22294         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
22295         the source line is greater than 0.
22296         (remove_bb): Likewise.