OSDN Git Service

2005-03-31 Jan Hubicka <jh@suse.cz>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-31  Jan Hubicka  <jh@suse.cz>
2
3         2004-11-02  Jan Hubicka  <jh@suse.cz>
4
5         * cgraph.c (cgraph_varpool_node_name): New function.
6         (dump_cgraph_varpool_node): New function.
7         (dump_varpool): New function.
8         * cgraphunit.c (cgraph_optimize): Dump varpool.
9
10         2004-10-16  Jan Hubicka  <jh@suse.cz>
11
12         * cgraph.c (decide_is_variable_needed): New function.
13         (cgraph_varpool_finalize_decl): Use it.
14         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
15         unit-at-a-time.
16         * final.c (output_addr_const): Do not call mark_referenced.
17         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
18         always go via cgraph.
19         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
20         (check_global_declarations): Ifdef out code clearing DECL_RTL.
21         * tree-optimize.c (execute_inline): Mark functions called.
22         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
23
24         2004-10-11  Jan Hubicka  <jh@suse.cz>
25
26         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
27         (cgraph_varpool_last_needed_node): New static variable.
28         (enqueue_needed_varpool_node): Break out from ...; add items to the
29         end of queue; update first pointers.
30         (cgraph_varpool_mark_needed_node): ... here.
31         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
32         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
33         * cgraph.h (cgraph_varpool_node): Add analyzed field.
34         (cgraph_varpool_first_unanalyzed_node): Declare.
35         * cgraphunit.c: Include output.h.
36         (cgraph_varpool_analyze_pending_decls): New function.
37         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
38         for errors, analyze pending decls.
39         (cgraph_finalize_compilation_unit): Only analyze decls.
40         (cgraph_optimize): Assemble the decls after expanding.
41
42 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
43
44         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
45         subvars get marked properly in tags for grouping.
46         (add_pointed_to_var): Mark only actual pointed to
47         variables/subvars in addresses needed.
48         (create_overlap_variables_for): Clear call clobbered on original
49         variable.
50         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
51         addresable vars with subvars into list.
52         * tree-ssa.c (verify_ssa_name): Verify original is not used where
53         subvar should be.
54
55 2005-03-30  Richard Henderson  <rth@redhat.com>
56
57         * cgraph.h (struct cgraph_node): Add alias.
58         * varasm.c (assemble_alias): Set it.
59         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
60         avoid calling cgraph_expand_function.
61
62 2005-03-30  Tom Tromey  <tromey@redhat.com>
63
64         * tree.def (FILE_TYPE): Removed.
65         * typeclass.h (enum type_class): Removed file_type_class.
66         * dwarf2out.c (is_base_type): Updated.
67         (gen_type_die): Likewise.
68         * dbxout.c (dbxout_type): Updated.
69         * builtins.c (type_to_class): Updated.
70         * tree.c (type_contains_placeholder_1): Updated.
71         * config/sparc/sparc.c (sparc_type_code): Updated.
72         * config/ia64/ia64.c (hfa_element_mode): Updated.
73         * expr.c (count_type_elements): Updated.
74         * stor-layout.c (layout_type): Updated.
75         * tree-inline.c (remap_type): Updated.
76         * tree-pretty-print.c (dump_generic_node): Updated.
77
78 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
79
80         * builtins.c (expand_builtin_powi): Fix mode of
81         2nd argument to match int.
82         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
83         2nd argument type to int.
84         * libgcc2.c: Change prototype of __powi* functions to use 
85         int.
86
87 2005-03-30  Dale Johannesen  <dalej@apple.com>
88
89         PR middle-end/19225
90         * calls.c (expand_call):  Flush pending deferrals before
91         throwing call.
92
93 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
94
95         PR c/772
96         PR c/17913
97         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
98         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
99         c_label_context, label_context_stack): New.
100         * c-decl.c (define_label): Check for jumps into statement
101         expressions.  Add label to list of defined labels.
102         (start_function): Push context on label_context_stack.
103         (finish_function): Pop context from label_context_stack.
104         * c-typeck.c (label_context_stack): New.
105         (c_finish_goto_label): Check for jumps into statement
106         expressions.  Add label to list of jumped to labels.
107         (struct c_switch): Add blocked_stmt_expr.
108         (c_start_case): Initialize it.
109         (do_case): Check it.
110         (c_finish_case): Verify !blocked_stmt_expr.
111         (c_begin_stmt_expr):  Push context on label_context_stack.
112         Increment blocked_stmt_expr.  Mark labels jumped to from outside
113         as undefinable.
114         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
115         defined in the statement expression and no longer jumpable to.
116         Mark labels jumped to from just outside the statement expression
117         as again definable.  Pop context from label_context_stack.
118         * doc/extend.texi (Statement Exprs): Update.
119
120 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
121
122         PR c/20368
123         * c-decl.c (start_function): Check for old_decl being
124         error_mark_node.
125
126 2005-03-30  Ian Lance Taylor  <ian@airs.com>
127
128         * final.c (final): Remove prescan parameter.  Change all callers.
129         (final_scan_insn): Remove prescan parameter.  Change all callers.
130
131 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
132
133         * tree-vectorizer.c: Fix comment typos.
134
135 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
136
137         * tree-scalar-evolution.c (instantiate_parameters_1): Return 
138         as soon as a chrec_dont_know is detected.
139
140 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
141
142         Merge from csl-arm-branch.
143         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
144
145         * tlink.c (recompile_files): Do not assume that "rename" can
146         overwrite an existing file.
147
148 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
149
150         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
151         * gcc/configure: Regenerate.
152
153 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
154
155         * doc/install.texi: Update binutils requirement for powerpc*-linux.
156
157         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
158
159         * calls.c (struct arg_data): Update "partial" comment.
160         (load_register_parameters): Update "nregs" comment.
161
162 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
163
164         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
165         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
166         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
167         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
168         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
169         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
170         than target_flags & 0.
171         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
172         (iq2000_arch, iq2000_parse_cpu): Delete.
173         (TARGET_HANDLE_OPTION): Override default.
174         (iq2000_handle_option): New function.
175         (override_options): Remove -march= and -mcpu= handling.
176         * config/iq2000/iq2000.opt: New file.
177
178 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
179
180         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
181         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
182         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
183         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
184         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
185         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
186         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
187         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
188         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
189         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
190         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
191         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
192         (c4x_rpts_cycles_string, c4x_cpu_version_string)
193         (TARGET_OPTIONS): Delete.
194         (c4x_rpts_cycles, c4x_cpu_version): Declare.
195         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
196         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
197         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
198         (c4x_cpu_version_string): Delete.
199         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
200         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
201         equivalent -mcpu= option.
202         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
203         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
204         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
205         or clearing the appropriate MASK_* bit.
206         (c4x_file_start): Use c4x_cpu_version.
207         * config/c4x/c4x.opt: New file.
208
209 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
210
211         * doc/options.texi: Document the new MaskExists flag.
212         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
213         if the option has the MaskExists flag.
214
215 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
216
217         * opt-functions.awk (flag_set_p, test_flag): New functions.
218         (switch_flags): Use them.
219         * opth-gen.awk: Use flag_set_p to check for flags.
220         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
221
222 2005-03-30  Ian Lance Taylor  <ian@airs.com>
223
224         * config.host (i[34567]86-*-mingw32*): Don't set
225         host_can_use_collect2 to no.
226
227 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
228
229         PR target/20203
230         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
231         Remove convert_memory_address call duplicating that in memory_address.
232
233 2005-03-29  Richard Henderson  <rth@redhat.com>
234
235         PR c/20519
236         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
237         (build_compound_literal): Likewise.  Propagate decl type into the
238         initializer.
239         (finish_decl): Likewise.  Use new return value from complete_array_type
240         for zero sized arrays.
241         (complete_array_type): Move ...
242         * c-common.c (complete_array_type): ... here.  Change first argument
243         to pointer-to-type-node.  Consistently use sizetype for the index
244         except for zero sized arrays.  Detect zero sized arrays for pedantic
245         mode diagnostics.  Create a new type node instead of modifying the
246         old node in place.
247         * c-tree.h (complete_array_type): Move decl ...
248         * c-common.h (complete_array_type): ... here.
249
250 2005-03-29  Richard Henderson  <rth@redhat.com>
251
252         PR tree-opt/19108
253         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
254
255 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
256
257         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
258         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
259         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
260         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
261
262 2005-03-29  Eric Christopher  <echristo@redhat.com>
263
264         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
265         truthvalue conversion removal.
266
267 2005-03-29  Ian Lance Taylor  <ian@airs.com>
268
269         PR bootstrap/14316
270         * collect2.c: Never include <vfork.h>.
271         (VFORK_STRING, vfork): Don't define.
272         (pid): Remove global variable.
273         (handler): Call raise instead of kill (getpid(), ...).
274         (collect_wait): Add pex parameter.  Change all callers.  Use
275         pex_get_status rather than pwait.
276         (do_wait): Add pex parameter.  Change all callers.
277         (collect_execute): Return struct pex_obj * rather than void.  Use
278         pex routines rather than pexecute.
279         (fork_execute): Get pex_obj from collect_execute, and pass it to
280         do_wait.
281         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
282         Only declare quit_handler if SIGQUIT is defined.
283         (scan_libraries): Likewise.
284         * collect2.h (collect_execute): Update declaration.
285         (collect_wait): Update declaration.
286         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
287         pass it to collect_wait.
288
289 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
290
291         PR c/20672
292         * c-parser.c (c_parser_compound_statement_nostart): Give error
293         message for EOF instead of just setting parser->error.
294
295 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
296
297         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
298         (slpeel_update_phi_nodes_for_guard1): New function.
299         (slpeel_update_phi_nodes_for_guard2): New function.
300         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
301         of slpeel_update_phi_nodes_for_guard.
302         (vectorize_loops): Remove call to loop_closed_rewrite.
303         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
304         assertion.
305
306 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
307
308         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
309         (TARGET_LITTLE_ENDIAN): New macro.
310         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
311         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
312         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
313         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
314         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
315         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
316         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
317         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
318         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
319         (TARGET_OPTIONS): Delete.
320         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
321         (CACHE_FLUSH_TRAP): Turn into an integer.
322         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
323         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
324         -mflush-trap is in use.
325         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
326         (m32r_cache_flush_trap_string): Delete.
327         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
328         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
329         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
330         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
331         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
332         -mmodel= and -msdata= handling from...
333         (m32r_init): ...here.
334         * config/m32r/m32r.opt: New file.
335
336 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
337
338         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
339         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
340         * tree-vect-analyze.c (vect_object_analysis): additional parm
341         pass back a "struct ptr_info_def *" with the points-to info.
342         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
343         statement using info returned from vect_object_analysis.
344         * tree-vect-transform.c (update_vuses_to_preheader): New function.
345         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
346         for virtual uses and defs when creating a replacement vector
347         reference.  Call duplicate_ssa_name_ptr_info to define points-to
348         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
349         (vectorizable_store): copy_virtual_operands and update
350         definition statements.
351         (vectorizable_load): copy_virtual_operands.  Remove call to
352         mark_call_clobbered_vars_to_rename for call to "const" builtin.
353         * tree-vectorizer.c (vectorize_loops): Remove calls to
354         rewrite_into_ssa and bitmap_clear (vars_to_rename).
355         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
356         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
357         define macro STMT_VINFO_PTR_INFO for use in accessing.
358         * tree.h add export of duplicate_ssa_name_ptr_info.
359         * rs6000.c (altivec_init_builtins): Declare builtin function
360         __builtin_altivec_mask_for_load to be "const".
361
362 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
363
364         PR middle-end/20622
365         * cgraph.h (struct cgraph_varpool_node): Add alias field.
366         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
367         assemble_variable on aliases.
368         * varasm.c (assemble_alias): Set node->alias.
369         * toplev.c (wrapup_global_declarations): Don't call
370         rest_of_decl_compilation on aliases again.
371
372 2005-03-29  Paul Brook  <paul@codesourcery.com>
373
374         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
375         * config/arm/arm.c (arm_dbx_register_number): New function.
376         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
377
378 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
379
380         PR middle-end/20263
381         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
382         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
383
384 2005-03-29  Dale Johannesen <dalej@apple.com>
385
386         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
387         $(TREE_H) and $(COVERAGE_H).
388         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
389         * opts.c (common_handle_option): Enable tree-based value transforms.
390         * toplev.c (process_options): Ditto.
391         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
392         refers to references to this type.
393         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
394         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
395         for may_be_more, may_be_less.
396         (rtl_gen_pow2_profiler): Adjust.
397         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
398         (rtl_gen_one_value_profiler): Adjust.
399         (rtl_gen_const_delta_profiler): Adjust.
400         * tree-profile.c (tree_gen_interval_profiler): Implement.
401         (tree_gen_pow2_profiler): Ditto.
402         (tree_gen_one_value_profiler): Ditto.
403         (tree_profiling): New.
404         (pass_tree_profile): Reference it.
405         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
406         tree.h, gcov-io.h.
407         (insn_divmod_values_to_profile): Rename to 
408         rtl_divmod_values_to_profile. Adjust.
409         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
410         (insn_prefetch_values_to_profile): Adjust.
411         (rtl_value_profile_transformations): Adjust.
412         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
413         (gen_mod_pow2): Rename to rtl_mod_pow2.
414         (gen_mod_subtract): Rename to rtl_mod_subtract.
415         (divmod_fixed_value_transform): Rename to 
416         rtl_divmod_fixed_value_transform.
417         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
418         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
419         (rtl_find_values_to_profile): Adjust.
420         (tree_value_profile_transformations): Implement.
421         (tree_divmod_values_to_profile): New.
422         (tree_values_to_profile): New.
423         (tree_divmod_fixed_value): New.
424         (tree_mod_pow2): New.
425         (tree_mod_subtract): New.
426         (tree_divmod_fixed_value_transform): New.
427         (tree_mod_pow2_value_transform): New.
428         (tree_mod_subtract_transform): New.
429         (tree_find_values_to_profile): Implement.
430         * profile.c (instrument_values):  Free histograms.
431         (compute_value_histograms): Adjust. Implement tree version.
432
433 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
434
435         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
436         * config/i386/i386.c (output_fix_trunc): Add new round_mode
437         variable.  Output "fldcw" depending on round_mode.
438         * config/i386/i386.md (UNSPEC_FIST): New.
439         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
440         New isns patterns to implement lrint and llrint built-ins as x87
441         intrinsic function.
442         (fistdi2, fist<mode>2 splitters): New splitters.
443         (lrint<mode>2): New expanders.
444
445 2005-03-28  Ian Lance Taylor  <ian@airs.com>
446
447         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
448         0 when calling final_scan_insn.
449
450 2005-03-28  Jan Hubicka  <jh@suse.cz>
451
452         PR middle-end/20635
453         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
454         as needed.
455
456         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
457         types where possible.
458
459 2005-03-26  Per Bothner  <per@bothner.com>
460
461         Make -f[no-]show-column also control non-cpp diagnostics.
462         * c.opt (fshow-column): Move option from here ...
463         * common.opt (fshow-column): ... to here.
464         * diagnostic.c (diagnostic_build_prefix): Only print column number
465         if flag_show_column.
466
467 2005-03-27  Steven Bosscher  <stevenb@suse.de>
468
469         * vax-protos.h (vax_output_int_move, vax_output_int_add,
470         vax_output_conditional_branch): New prototypes.
471         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
472         extracted from vax.md mov and add patterns.
473         (vax_output_conditional_branch): New function to output conditional
474         branch instructions.
475         * vax.md: Use mode macros for arithmetic and mov patterns.
476         Use code macros for the jump patterns.
477
478 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
479
480         * Makefile.in (libbackend.o): Depend on version files;
481         add custom generation command.
482
483 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
484
485         PR target/20636
486         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
487         sure that we have a REG before getting its REGNO.
488
489 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
490
491         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
492         * builtins.def (BUILT_IN_STRNDUP): New.
493
494 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
495
496         PR tree-optimization/20470
497         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
498         ABS(x-y).
499
500 2005-03-25  Mike Stump  <mrs@apple.com>
501
502         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
503         sized objects.
504
505 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
506
507         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
508         Use our own structure definitions.
509
510         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
511         (fix_truncdfsi2): Allow registers or memory as destination.
512         When TARGET_PPC_GFXOPT, generate simplified pattern.
513         (fix_truncdfsi2_internal): Use define_insn_and_split.
514         (fix_truncdfsi2_internal_gfxopt): New.
515         (fctiwz): Don't confuse register allocation by giving it no choices.
516         (stfiwx): New.
517         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
518         (EXTRA_MEMORY_CONSTRAINT): Likewise.
519         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New. 
520         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
521
522 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
523
524         * dominance.c (free_dominance_info): Speed up by freeing et
525         data structures without maintaining other nodes.
526         * et-forest.c (et_free_tree_force): New.
527         * et-forest.h: Add a prototype for et_free_tree_force.
528
529         * tree.c (get_set_constructor_bits,
530         get_set_constructor_bytes): Remove.
531         * tree.h: Remove the corresponding prototypes.
532
533 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
534
535         PR target/15491
536         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
537         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
538         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
539         PRE_DEC, NEG and NOT.
540
541 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
542
543         * fold-const.c: Convert uses of fold (build (...)) to
544         fold_buildN.
545
546 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
547
548         PR rtl-optimization/20249
549         * cse.c (insert_regs): Do not record equivalence of registers in
550         different modes.
551
552 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
553
554         * emit-rtl.c (reverse_comparison): Remove.
555         * rtl.h: Remove the corresponding prototype.
556
557 2005-03-24  James E Wilson  <wilson@specifixinc.com>
558
559         * doc/install.texi (--enable-altivec): Delete docs.
560
561 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
562
563         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
564         SFmode and DFmode before reload when
565         flag_unsafe_math_optimizations not enabled.
566
567 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
568
569         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
570
571         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
572         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
573
574 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
575
576         * configure.ac (enable-checking): Add 'runtime' option.
577         * doc/install.texi (enable-checking): Document 'runtime' checking.
578         * tsystem.h (gcc_assert, gcc_unreachable): Define.
579         * config.in: Regenerated.
580         * configure: Regenerated.
581
582 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
583
584         * optabs.h (enum optab_index): Remove OTI_llrint.
585         (llrint_optab): Remove macro.
586         * optabs.c (init_optabs): Remove llrint_optab initialization.
587         * genopinit.c (optabs): Remove llrint_optab implementation.
588         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
589         using lrint_optab.
590
591 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
592
593         PR rtl-optimization/20532
594         * simplify-rtx.c (simplify_binary_operation_1): Protect from
595         overflow when adding coefficients for PLUS or MINUS.
596         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
597         two as multiplier.
598
599 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
600
601         * langhooks.h (truthvalue_conversion): Remove.
602         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
603         LANG_HOOKS_TRUTHVALUE_CONVERSION.
604         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
605         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
606         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
607
608 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
609
610         * params.def: Fix a typo.
611         * config/mips/mips.c: Follow the spelling convensions.
612         * doc/invoke.texi: Fix typos.
613
614 2005-03-18  Dale Johannese  <dalej@apple.com>
615
616         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
617
618 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
619
620         Fix PR tree-optimization/20601
621
622         * tree-ssa-pre.c (insert_aux): Add missing condition to
623         constification.
624
625 2005-03-23  Ian Lance Taylor  <ian@airs.com>
626
627         * final.c (final_scan_insn): Don't remove no-op instructions.
628         * reload1.c (reload): Remove simple no-op instructions even when
629         not optimizing.
630
631 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
632  
633         PR tree-optimization/20501
634         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
635         reporting that peeling for alignment is applied moved to...
636         * (vect_analyze_data_refs_alignment): Here.
637
638 2005-03-23  Ian Lance Taylor  <ian@airs.com>
639
640         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
641
642 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
643
644         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
645         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
646
647 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
648
649         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
650         imply that this is called once, independent of asms in code.
651         Adjust to now being pased output and input lists.  Mention helper
652         function decl_overlaps_hard_reg_set_p.
653         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
654         hook_tree_tree_identity and to take three trees, returning third.
655         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
656         prototype.
657         * stmt.c: include hard-reg-set.h before tree.h.
658         (decl_overlaps_hard_reg_set_p): New function, broken out from...
659         (decl_conflicts_with_clobbers_p): Call
660         decl_overlaps_hard_reg_set_p.
661         (expand_asm_operands): Pass output and input lists in call to
662         targetm.md_asm_clobbers.
663         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
664         hook_tree_tree_tree_tree_3rd_identity.
665         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
666         parameters.
667         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
668         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
669         parameters, first two unused.
670         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
671         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
672         in constraint letters and MOF is not mentioned as a asm-declared
673         register in neither of the input and output lists.
674
675 2005-03-23  DJ Delorie  <dj@redhat.com>
676
677         * optabs.c (expand_binop): Make sure the first subword's result
678         gets stored.
679
680 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
681
682         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
683         Call c_common_truthvalue_conversion rather than
684         lang_hooks.truthvalue_conversion.
685         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
686         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
687         c-typeck.c.
688         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
689         c_common_truthvalue_conversion.
690         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
691         c_parser_conditional_expression, c_parser_binary_expression): Call
692         c_objc_common_truthvalue_conversion.
693         * c-typeck.c (build_unary_op): Call
694         c_objc_common_truthvalue_conversion.
695         (build_conditional_expr): Do not call
696         lang_hooks.truthvalue_conversion.
697         (build_binary_op): Call c_common_truthvalue_conversion.
698         (c_objc_common_truthvalue_conversion): Moved from
699         c-objc-common.c.  Call default_function_array_conversion instead
700         of default_conversion.
701
702 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
703
704         * c-common.h (default_conversion): Remove.
705         (perform_integral_promotions): Add.
706         * c-tree.h (default_conversion): Add.
707         * c-typeck.c (perform_integral_promotions): New, split out from
708         default_conversion.
709         * c-common.c (check_case_value): Use perform_integral_promotions,
710         not default_conversion.
711         (c_add_case_label): Don't continue processing case label after
712         found to be pointer.
713
714 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
715
716         * gcc.c (do_spec_1): Do not add a -L path for a directory in
717         the prefix list if we have already added a multilib directory
718         based on that path.
719         (main): Do not add MD_EXEC_PREFIX to the list of directories to
720         search with -L.
721
722 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
723
724         * reload1.c (indirect_symref_ok, reload_obstack): Make them
725         static.
726         * reload.h: Remove the prototype for indirect_symref_ok.
727
728         * reload1.c (indirect_symref_ok): Make it global.
729         * reload.h: Add a prototype for indirect_symref_ok.
730
731 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
732
733         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
734         ashlhi3 expander.
735
736 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
737
738         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
739
740 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
741
742         * c-opts.c (c_common_parse_file): Only start/end main source file
743         if debug hooks says the writer wants it.
744         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
745         member.
746         (xcoff_debug_hooks): Ditto.
747         * debug.c (do_nothing_hooks): Ditto.
748         * debug.h (gcc_debug_hooks): Ditto.
749         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
750         * sdbout.c (sdb_debug_hooks): Ditto.
751         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
752         
753 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
754
755         * doc/extend.texi: Deprecate C++ min/max operators.
756
757 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
758
759         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
760         artificial original candidates.
761
762 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
763             Jan Hubicka  <jh@suse.cz>
764             Steven Bosscher <stevenb@suse.de>
765
766         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
767         call cost based on argument sizes.
768         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
769         inlining.
770         * params.def: (max-inline-inssn-single): Set to 450.
771         (max-inline-insns-auto): Set to 90.
772         (max-inline-insns-recursive): Set to 450
773         (max-inline-insns-recursive-auto): Set to 450.
774         (large-function-insns): Set to 2700.
775         (inline-call-cost): New parameter.
776         * tree-inline.c (estimate_move_cost): New function.
777         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
778         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
779         based on arguments.
780         * tree-inline.h (estimate_move_cost): Declare.
781         * invoke.texi: (max-inline-inssn-single): Change default to 450.
782         (max-inline-insns-auto): Change default to 90.
783         (max-inline-insns-recursive): Change default to 450
784         (max-inline-insns-recursive-auto): Change default to 450.
785         (large-function-insns): Change default to 2700.
786         (inline-call-cost): Document new parameter.
787
788 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
789
790         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
791         (TARGET_DEFAULT): Delete.
792         * config/i860/i860.opt: New file.
793
794 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
795
796         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
797         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
798         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
799         (frv_sched_lookahead): Delete.
800         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
801         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
802         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
803         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
804         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
805         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
806         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
807         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
808         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
809         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
810         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
811         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
812         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
813         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
814         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
815         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
816         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
817         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
818         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
819         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
820         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
821         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
822         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
823         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
824         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
825         (frv_sched_lookahead): Delete.
826         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
827         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
828         (frv_handle_option): New function.  Move -mcpu= handling from...
829         (frv_override_options): ...here.  Remove handling of other
830         TARGET_OPTIONS.
831         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
832         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
833         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
834         and TARGET_NO_MULTI_CE.
835         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
836         !TARGET_VLIW_BRANCH.
837         * config/frv/frv.opt: New file.
838
839 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
840
841         * fold-const.c (fold_ternary): Take decomposed arguments of
842         CALL_EXPR.
843         (fold): Update a call to fold_ternary.
844
845         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
846         * tree.h: Add corresponding prototypes.
847
848 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
849
850         PR target/20561
851         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
852         between jump table and its label.
853         * final.c (shorten_branches): Handle notes in between ADDR_VEC
854         resp. ADDR_DIFF_VEC and the label preceeding it.
855         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
856         is emitted in the right section.
857
858 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
859
860         * fold-const.c (fold_unary, fold_binary): Update comments
861         about arguments.
862
863 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
864
865         PR rtl-optimization/20527
866         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
867         REG_INC note, test that the register also isn't mentioned in PRED
868         or SUCC.
869
870 2005-03-22  Ben Elliston  <bje@au.ibm.com>
871
872         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
873         and definition.
874
875 2005-03-21  Mike Stump  <mrs@apple.com>
876
877         * varasm.c (default_assemble_visibility): Remove extra ().
878
879 2005-03-21  Roger Sayle  <roger@eyesopen.com>
880
881         PR middle-end/20557
882         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
883         to determine whether a block can be duplicated, rather than test
884         whether the block contains noncopyable insns ourselves.
885
886 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
887
888         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
889         predicates.
890
891 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
892
893         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
894
895 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
896
897         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
898         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
899         * config/fr30/fr30.opt: New file.
900
901 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
902         
903         Fix PR tree-optimization/20542
904
905         * tree-flow-inline.h (overlap_subvar): Move to here.
906         * tree-ssa-operands.c: From here.
907         * tree-flow.h (overlap_subvar): Declare.
908         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
909         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
910         for variables with subvars.
911         
912 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
913
914         PR middle-end/20177
915         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
916         * modulo-sched.c (const_iteration_count): Return on NULL
917         pre-header.
918         (print_node_sched_params): Return on NULL dump_file.
919         (generate_reg_moves): Handle reg-anti dependencies and disregard
920         closing branch when generating register moves.
921         (sms_schedule): Mark the SMSed block dirty.
922         * passes.c (rest_of_handle_sms): Call update_life_info for all
923         basic-blocks.
924         * testsuite/gcc.dg/20050321-1.c: New test.
925
926 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
927
928         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
929         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
930         movqi_internal): Likewise.
931
932 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
933
934         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
935         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
936         xtensa_b4const): Delete prototypes.
937         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
938         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
939         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
940         xtensa_extra_constraint): New prototypes.
941         (add_operand, arith_operand, nonimmed_operand, mem_operand,
942         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
943         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
944         move_operand, const_float_1_operand, fpmem_offset_operand,
945         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
946         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
947         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
948         argument type to HOST_WIDE_INT.
949         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
950         xtensa_mask_immediate): Likewise.
951         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
952         Likewise.  Also make these functions static.
953         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
954         (xtensa_const_ok_for_letter_p): New.
955         (add_operand, arith_operand, nonimmed_operand, mem_operand,
956         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
957         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
958         move_operand, const_float_1_operand, fpmem_offset_operand,
959         branch_operator, ubranch_operator, boolean_operator): Move to
960         predicates.md.
961         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
962         (xtensa_mem_offset): Change return type to bool.
963         (xtensa_extra_constraint): New.
964         (gen_int_relational): Update type of const_range_p function pointer.
965         Use xtensa_b4const_or_zero.
966         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
967         xtensa_const_ok_for_letter_p.  Update comments.
968         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
969         (PREDICATE_CODES): Delete.
970         * config/xtensa/xtensa.md: Include predicates.md.
971         * config/xtensa/predicates.md: New file.
972
973 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
974
975         * config/v850/v850-protos.h: Remove the prototypes for
976         reg_or_int9_operand, reg_or_const_operand,
977         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
978         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
979         movsi_source_operand, power_of_two_operand,
980         not_power_of_two_operand, special_symbolref_operand,
981         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
982         register_is_ok_for_epilogue.
983         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
984         reg_or_int9_operand, reg_or_const_operand,
985         call_address_operand, special_symbolref_operand,
986         movsi_source_operand, power_of_two_operand,
987         not_power_of_two_operand, register_is_ok_for_epilogue,
988         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
989         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
990         predicates.md.
991         * config/v850/v850.h (PREDICATE_CODES): Remove.
992         * config/v850/v850.md: Include predicates.md.
993         * config/v850/predicates.md: New.
994
995 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
996
997         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
998         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
999         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
1000         (itoolsdir, itoolsdatadir): Move definition above new first use.
1001         (install-itoolsdirs): New rule.
1002         (install-mkheaders): Depend on install-itoolsdirs, not
1003         install-include-dir.
1004
1005 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1006
1007         * tree-into-ssa.c: Remove obsolete comments.
1008
1009 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
1010
1011         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
1012         unrolling if -fpeel-loops is specified, too.
1013         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1014         Remove superfluous check for flag_unroll_loops.
1015
1016 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
1017
1018         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
1019         (lrint_optab, llrint_optab): Define corresponding macros.
1020         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
1021         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
1022         pattern and llrint_optab using llrintdi2 patterns.
1023         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
1024         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
1025         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
1026         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
1027         flag_unsafe_math_optimizations is set.
1028
1029 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1030
1031         * combine.c (combine_simplify_rtx, simplify_if_then_else,
1032         simplify_logical, if_then_else_cond, known_cond,
1033         simplify_comparison): Adjust calls to reverse_comparison.
1034         Don't use combine_reversed_comparison_code).
1035         (combine_reversed_comparison_code): Remove.
1036         (reversed_comparison): Using reversed_comparison_code, move it...
1037         * jump.c (reversed_comparison): ... here.
1038         * rtl.h (reversed_comparison): Add prototype.
1039
1040 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1041
1042         * builtins.c (fold_builtin): Take decomposed arguments of
1043         CALL_EXPR.
1044         * fold-const.c (fold_ternary): Update a call to fold_builtin.
1045         * gimplify.c (gimplify_call_expr): Likewise.
1046         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
1047         * tree.h: Update the prototype of fold_builtin.
1048
1049 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1050
1051         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
1052         * rtlhooks.c (gen_lowpart_no_emit_general): New.
1053         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
1054         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
1055         * simplify-rtx.c (simplify_binary_operation_1): Use it.
1056
1057 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1058
1059         * builtins.c (fold_builtin_1): Take decomposed arguments of
1060         CALL_EXPR.
1061         (fold_builtin): Update a call to fold_builtin_1.
1062
1063 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1064
1065         PR other/20564
1066         * gcov.c (output_lines): Only output function block summary when
1067         outputting branch information.
1068         * doc/gcov.texi: Document format of preamble and additional block
1069         information lines.
1070
1071 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1072
1073         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
1074         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
1075         the defaults false if BITS_PER_UNIT != 8.
1076         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
1077         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
1078         than BITS_PER_UNIT != 8.
1079         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
1080         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
1081         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
1082         #undefs.
1083         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
1084         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
1085
1086 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1087
1088         PR middle-end/20539
1089         * fold-const.c (fold_binary): Fix type mismatch between
1090         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
1091         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
1092         for non-truth-valued expressions.
1093
1094         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
1095         and FUNCTION_DECL in the main switch.
1096         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1097         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
1098         we also need to convert their operands to match.
1099         <TRUTH_NOT_EXPR>: Likewise.
1100
1101 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
1102
1103         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
1104         diagnostic without checking whether an lvalue.
1105         * c-common.h (lvalue_p): Remove.
1106         (enum lvalue_use): Update comment.
1107         (lvalue_or_else): Replace by lvalue_error.
1108         * c-typeck.c (lvalue_p): Make static.
1109         (lvalue_or_else): New.  Call lvalue_error.
1110
1111 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
1112
1113         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
1114         (function_arg_advance): Use rs6000_parm_start.
1115         (function_arg, rs6000_arg_partial_bytes): Likewise.
1116
1117 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1118
1119         * c-common.c (check_case_value): Adjust comment about stripping
1120         NOPs.
1121         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
1122         * c-typeck.c (default_conversion, convert_arguments,
1123         build_modify_expr, convert_for_assignment, store_init_value,
1124         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
1125         manually.  Remove inaccurate comments.
1126
1127 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1128             Joseph S. Myers  <joseph@codesourcery.com>
1129
1130         * varasm.c (do_assemble_alias): Restore comment describing function.
1131         Annotate the target parameter as potentially unused.
1132
1133 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1134
1135         PR target/18551
1136         * config/avr/avr.c (avr_output_function_prologue): Do not use
1137         current_function_name() in a label, use a local label instead.
1138
1139 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
1140
1141         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1142         flag_finite_math_only, not flag_unsafe_math_optimizations.
1143
1144 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1145
1146         * builtins.c (fold_builtin_1): Update a call to
1147         targetm.fold_builtin.
1148         * hooks.c (hook_tree_tree_bool_null): Rename to
1149         hook_tree_tree_tree_bool_null.  Take one more argument of type
1150         tree.
1151         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1152         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1153         hook_tree_tree_tree_bool_null.
1154         * target.h (gcc_target): Update the prototype of fold_builtin.
1155         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1156         arguments of CALL_EXPR.
1157         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
1158         new prototype.
1159
1160 2005-03-20  Jan Hubicka  <jh@suse.cz>
1161
1162         * cgraph.h (cgraph_node): Add prev_clone pointer.
1163         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1164         (cgraph_clone_node): Produce doubly linked chain.
1165
1166 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1167
1168         * c-common.c (handle_aligned_attribute, check_function_sentinel,
1169         get_nonnull_operand, handle_sentinel_attribute,
1170         check_function_arguments_recurse): Do not strip NOPS from
1171         INTEGER_CSTs.
1172         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1173         Likewise.
1174         * c-format.c (get_constant): Likewise.
1175         * c-parser.c (c_parser_postfix_expression): Likewise.
1176         * c-typeck.c (set_init_index): Likewise.
1177         (convert_arguments): Don't check for NOP_EXPR containing integer
1178         constant.
1179
1180 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1181
1182         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1183         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1184         Take decomposed arguments of CALL_EXPR.
1185         (fold_builtin_1): Update calls to the functions mentioned
1186         above.
1187
1188 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1189
1190         * c-decl.c (check_bitfield_type_and_width): Require bit-field
1191         width to have integer type.
1192         (build_enumerator): Require enumerator value to have integer type.
1193
1194 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1195
1196         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1197         to __builtin_inff.
1198
1199 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1200
1201         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1202         std=iso9899:199x): Correct descriptions.
1203
1204 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1205
1206         * config.gcc: Consistently use solaris2.1[0-9]* instead of
1207         solaris2.1[0-9].
1208
1209 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1210
1211         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1212         of CALL_EXPR.
1213         (expand_builtin_memcpy, fold_builtin_1): Update calls to
1214         fold_builtin_memcpy.
1215
1216         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1217         arguments of CALL_EXPR.
1218         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1219         fold_builtin_found, fold_builtin_1): Update calls to
1220         fold_trunc_transparent_mathfn.
1221
1222 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1223
1224         PR middle-end/20493
1225         * fold-const.c (fold_widened_comparison): Don't optimize casts of
1226         function pointers on targets that require function pointer
1227         canonicalization.
1228         (fold_sign_changed_comparison): Likewise.
1229
1230 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
1231
1232         * combine.c (try_combine): When changing the mode of a hard reg, make
1233         sure that doing so is valid.
1234
1235 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
1236
1237         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1238         (TARGET_HANDLE_OPTION): Override default.
1239         (avr_handle_option): New function.
1240         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1241         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1242         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1243         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1244         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1245         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1246         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1247         (TARGET_OPTIONS): Delete.
1248         * config/avr/avr.opt: New file.
1249
1250 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1251
1252         * config/m32r/m32r-protos.h: Remove the prototypes for
1253         call_address_operand, symbolic_operand, seth_add3_operand,
1254         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1255         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1256         two_insn_const_operand, move_src_operand,
1257         move_double_src_operand, move_dest_operand,
1258         eqne_comparison_operator, signed_comparison_operator,
1259         large_insn_p, conditional_move_operand, carry_compare_operand,
1260         m32r_block_immediate_operand, extend_operand,
1261         reg_or_eq_int16_operand, int8_operand, and
1262         reg_or_zero_operand.
1263         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1264         seth_add3_operand, int8_operand, cmp_int16_operand,
1265         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1266         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1267         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1268         move_double_src_operand, move_dest_operand,
1269         eqne_comparison_operator, signed_comparison_operator,
1270         extend_operand, small_insn_p, large_insn_p,
1271         conditional_move_operand, carry_compare_operand,
1272         m32r_block_immediate_operand): Move to predicates.md.
1273         (MAX_MOVE_BYTES): Move to m32r.h.
1274         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1275         * config/m32r/m32r.md: Include predicates.md.
1276         * config/m32r/predicates.md: New.
1277
1278 2005-03-18  James E Wilson  <wilson@specifixinc.com>
1279
1280         PR c++/19769
1281         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1282         origin.
1283
1284 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1285
1286         * config/mn10300/mn10300-protos.h: Remove the prototypes for
1287         call_address_operand, const_8bit_operand.
1288         * config/mn10300/mn10300.c (call_address_operand,
1289         const_8bit_operand, const_1f_operand): Move to predicates.md.
1290         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1291         * config/mn10300/mn10300.md: Include predicates.md.
1292         * config/mn10300/predicates.md: New.
1293
1294 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
1295
1296         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1297         declarations in diagnostics and %E for identifiers, not %s.
1298
1299 2005-03-18  Jan Hubicka  <jh@suse.cz>
1300             Dale Johannesen  <dalej@apple.com>
1301
1302         * basic-block.h (scale_bbs_frequencies_int,
1303         scale_bbs_frequencies_gcov_type): Declare.
1304         * cfg.c (RDIV): New macro.
1305         (update_bb_frequency_for_threading): Fix.
1306         * basic-block.h (scale_bbs_frequencies_int,
1307         scale_bbs_frequencies_gcov_type): New.
1308         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1309         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1310         scale_bbs_frequencies_int.
1311         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1312
1313 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1314
1315         * config/m32r/m32r-protos.h: Remove the prototypes for
1316         call_address_operand, symbolic_operand, seth_add3_operand,
1317         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1318         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1319         two_insn_const_operand, move_src_operand,
1320         move_double_src_operand, move_dest_operand,
1321         eqne_comparison_operator, signed_comparison_operator,
1322         large_insn_p, conditional_move_operand, carry_compare_operand,
1323         m32r_block_immediate_operand, extend_operand,
1324         reg_or_eq_int16_operand, int8_operand, and
1325         reg_or_zero_operand.
1326         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1327         seth_add3_operand, int8_operand, cmp_int16_operand,
1328         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1329         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1330         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1331         move_double_src_operand, move_dest_operand,
1332         eqne_comparison_operator, signed_comparison_operator,
1333         extend_operand, small_insn_p, large_insn_p,
1334         conditional_move_operand, carry_compare_operand,
1335         m32r_block_immediate_operand): Move to predicates.md.
1336         (MAX_MOVE_BYTES): Move to m32r.h.
1337         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1338         * config/m32r/m32r.md: Include predicates.md.
1339         * config/m32r/predicates.md: New.
1340
1341         * config/pa/pa-protos.h: Add prototypes for magic_milli and
1342         shadd_constant_p.
1343         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1344         symbolic_operand, symbolic_memory_operand,
1345         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1346         indexed_memory_operand, move_dest_operand, move_src_operand,
1347         prefetch_cc_operand, prefetch_nocc_operand,
1348         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1349         arith_operand, arith11_operand, pre_cint_operand,
1350         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1351         ireg_operand, int5_operand, uint5_operand, int11_operand,
1352         uint32_operand, arith5_operand, and_operand, ior_operand,
1353         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1354         pc_or_label_operand, div_operand, plus_xor_ior_operator,
1355         shadd_operand, movb_comparison_operator,
1356         cmpib_comparison_operator): Move to predicates.md.
1357         (magic_milli, shadd_constant_p): Make it extern.
1358         * config/pa/pa.h (PREDICATE_CODES): Remove.
1359         * config/pa/pa.md: Include predicates.md.
1360         * config/pa/predicates.md: New.
1361
1362         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1363         predicate.
1364
1365 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1366
1367         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1368         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1369         config/alpha/freebsd.h, config/alpha/linux.h,
1370         config/alpha/netbsd.h, config/alpha/osf5.h,
1371         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1372         config/h8300/h8300-protos.h, config/h8300/h8300.c,
1373         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1374         doc/cppopts.texi: Update copyright.
1375
1376 2005-03-18  Jan Hubicka  <jh@suse.cz>
1377
1378         PR middle-end/20225
1379         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1380         too late.
1381         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1382         called too late.
1383
1384 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1385
1386         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1387         VEC_safe_push.
1388
1389 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
1390
1391         * combine.c (gen_binary): Remove.
1392         (known_cond, simplify_shift_const, find_split_point,
1393         combine_simplify_rtx, simplify_if_then_else, simplify_set,
1394         simplify_logical, expand_field_assignment, extract_left_shift,
1395         force_to_mode, if_then_else_cond, apply_distributive_law,
1396         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1397         simplify_comparison, reversed_comparison): Replace with
1398         simplify_gen_binary, simplify_gen_relational or
1399         distribute_and_simplify_rtx.
1400         (distribute_and_simplify_rtx): New function.
1401
1402 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
1403             Paolo Bonzini  <gcc.gnu.org>
1404
1405         * calls.c (setjmp_call_p, special_function_p): Update comments
1406         at the head of the functions.
1407
1408 2005-03-18  Jan Hubicka  <jh@suse.cz>
1409
1410         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1411
1412         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1413         function body should be released; do not proactively release function
1414         bodies in non-unit-at-a-time mode.
1415
1416 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
1417
1418         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1419         mno-fp-ret-in-387 multilib variants.
1420
1421 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
1422
1423         * common.opt (m): Remove.
1424         * opts.c (handle_option): Pass 'm' options to set_target_switch if
1425         table lookup fails.
1426         (common_handle_option): Remove OPT_m case.
1427
1428 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1429
1430         * builtins.c (fold_builtin_bitop): Take decomposed arguments
1431         of CALL_EXPR.
1432         (fold_builtin_1): Update a call to fold_builtin_bitop.
1433
1434         * builtins.c (fold_builtin_signbit): Take decomposed arguments
1435         of CALL_EXPR.
1436         (fold_builtin_1): Update a call to fold_builtin_signbit.
1437
1438 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
1439
1440         PR tree-optimization/20474
1441         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1442         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
1443
1444 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1445
1446         * config/h8300/h8300-protos.h: Remove prototypes for
1447         general_operand_src, general_operand_dst, single_one_operand,
1448         single_zero_operand, call_insn_operand,
1449         two_insn_adds_subs_operand, small_call_insn_operand,
1450         jump_address_operand, bit_operand, bit_memory_operand,
1451         stack_pointer_operand, const_int_gt_2_operand,
1452         const_int_ge_8_operand, const_int_qi_operand,
1453         const_int_hi_operand, incdec_operand, bit_operator,
1454         nshift_operator, eqne_operator, gtle_operator,
1455         gtuleu_operator, iorxor_operator.
1456         Add prototypes for h8sx_shift_type h8sx_classify_shift and
1457         h8300_ldm_stm_parallel.
1458         * config/h8300/h8300.c (h8sx_shift_type,): Move to
1459         h8300-protos.h.
1460         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
1461         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
1462         (h8300_ldm_stm_parallel): Make it extern.
1463         (h8300_ldm_parallel, h8300_stm_parallel,
1464         h8300_return_parallel, general_operand_src,
1465         general_operand_dst, h8300_dst_operand, h8300_src_operand,
1466         nibble_operand, reg_or_nibble_operand, single_one_operand,
1467         single_zero_operand, call_insn_operand,
1468         two_insn_adds_subs_operand, small_call_insn_operand,
1469         jump_address_operand, bit_operand, bit_memory_operand,
1470         stack_pointer_operand, const_int_gt_2_operand,
1471         const_int_ge_8_operand, const_int_qi_operand,
1472         const_int_hi_operand, incdec_operand, eqne_operator,
1473         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1474         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1475         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1476         nshift_operator): Move to predicates.md.
1477         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1478         * config/h8300/h8300.md: Include predicates.md.
1479         * config/h8300/predicates.md: New.
1480
1481 2005-03-17  Richard Henderson  <rth@redhat.com>
1482
1483         * config.gcc (ia64*-*-hpux*): Add extra_options.
1484         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1485         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1486         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1487         (ia64_tls_size_string, ia64_tune_string): Remove.
1488         (ia64_tune): Init to PROCESSOR_ITANIUM2.
1489         (TARGET_DEFAULT_TARGET_FLAGS): New.
1490         (TARGET_HANDLE_OPTION): New.
1491         (ia64_override_options): Move options parsing ...
1492         (ia64_handle_option): ... here.  New.
1493         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1494         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1495         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1496         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1497         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1498         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1499         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1500         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1501         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1502         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1503         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1504         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1505         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1506         TARGET_EARLY_STOP_BITS): Remove.
1507         (TARGET_ILP32): Default false.
1508         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1509         (enum ia64_inline_type): New.
1510         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1511         * config/ia64/ia64.md: Update for new definitions of
1512         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1513         * config/ia64/ia64.opt: New file.
1514         * config/ia64/ilp32.opt: New file.
1515
1516 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1517
1518         PR target/18380
1519         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1520
1521 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1522
1523         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1524         instead of MASK_H8300S.
1525         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1526         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1527         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1528         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1529         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1530         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1531         TARGET_SWITCHES): Remove.
1532         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1533         TARGET_H8300SX.
1534         * config/h8300/h8300.opt: New.
1535
1536         * config/alpha/alpha.opt, config/arc/arc.opt,
1537         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1538         notices.
1539
1540 2005-03-17  Ian Lance Taylor  <ian@airs.com>
1541
1542         * gmon.c: Remove.
1543
1544 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
1545
1546         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
1547         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1548         (TARGET_HANDLE_OPTION): Override default.
1549         (arc_handle_option): New function.
1550         (arc_init): Remove code to set arch_cpu_string.
1551         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1552         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1553         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1554         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1555         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1556         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1557         (arc_rodata_string, TARGET_OPTIONS): Delete.
1558         * config/arc/arc.opt: New file.
1559
1560 2005-03-17  Richard Henderson  <rth@redhat.com>
1561
1562         * doc/extend.texi (Weak Pragmas): New section.
1563         (attribute alias): Clarify that target must be in the same
1564         translation unit.
1565
1566 2005-03-17  Richard Henderson  <rth@redhat.com>
1567
1568         * config/alpha/alpha.opt: New file.
1569         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
1570         of alpha_cpu.
1571         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1572         alpha_fprm_string, alpha_fptm_string): Make static.
1573         (alpha_tls_size_string): Remove.
1574         (alpha_handle_option): New.
1575         (override_options): Update for alpha_cpu/alpha_tune split.
1576         (alpha_file_start): Likewise.
1577         (TARGET_DEFAULT_TARGET_FLAGS): New.
1578         (TARGET_HANDLE_OPTION): New.
1579         * config/alpha/alpha.h (alpha_tune): Declare.
1580         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1581         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1582         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1583         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1584         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1585         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1586         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1587         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1588         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1589         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1590         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1591         (TARGET_DEFAULT): Remove MASK_FP.
1592         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1593         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1594         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1595         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1596         alpha_tls_size_string): Remove.
1597         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1598         (attribute tune): Rename from attribute cpu.
1599         * config/alpha/ev4.md: Update to match.
1600         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1601         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1602         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1603         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1604         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1605         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1606
1607 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
1608
1609         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1610         and return without creating new state if before_nops_num is nonzero.
1611         * config/ia64/ia64.md (first_insn): New attribute.
1612         (alloc): Set it to yes.
1613
1614 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1615
1616         * tree-vectorizer.c (new_vec_stmt_info): Initialize
1617         STMT_VINFO_SUBVARS to NULL.
1618         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1619
1620 2005-03-16 Dale Johannesen  <dalej@apple.com>
1621
1622         * rtlanal.c (find_first_parameter_load):  Rewrite to
1623         return actual first param load or the call if none,
1624         instead of first in block, when not all loads exist.
1625
1626 2005-03-16  Roger Sayle  <roger@eyesopen.com>
1627
1628         * optabs.c (expand_copysign_absneg): Make static.
1629         * optabs.h (expand_copysign_absneg): Delete prototype.
1630         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1631
1632 2005-03-16  Richard Henderson  <rth@redhat.com>
1633
1634         PR middle-end/15700
1635         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1636         (alias_pairs): Rename from output_defs.
1637         (find_decl_and_mark_needed): Split out from assemble_alias.
1638         (do_assemble_alias): New.
1639         (assemble_output_def): Remove.
1640         (finish_aliases_1, finish_aliases_2): New.
1641         (process_pending_assemble_output_defs): Remove.
1642         (assemble_alias): Defer aliases for which we don't yet have a
1643         non-external decl for the target symbol.
1644         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1645         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1646         * toplev.c (compile_file): Use finish_aliases_2 instead of
1647         process_pending_assemble_output_defs.
1648         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1649         (process_pending_assemble_output_defs): Remove.
1650
1651 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1652
1653         Fix PR tree-optimization/20489
1654
1655         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1656         for empty structures.
1657
1658 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1659
1660         Fix PR tree-optimization/20490
1661
1662         * tree-ssa-pre.c (create_expression_by_pieces): Use
1663         force_gimple_operand on result of fold.
1664
1665 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
1666
1667         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1668         of closing parenthesis.
1669
1670 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
1671
1672         * builtins.c (expand_movstr): Update a call to
1673         fold_builtin_strcpy.
1674         (expand_builtin_strncpy): Update a call to
1675         fold_builtin_strncpy.
1676         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1677         arguments of CALL_EXPR.
1678         (fold_builtin_1): Update calls to fold_builtin_strcpy and
1679         fold_builtin_strncpy.
1680         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1681         * tree.h: Update the prototypes of fold_builtin_strcpy and
1682         fold_builtin_strncpy.
1683
1684 2005-03-16  Steven Bosscher  <stevenb@suse.de>
1685             Dorit Naishlos  <dorit@il.ibm.com>
1686
1687         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1688         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1689         error.
1690
1691 2005-03-16  Steven Bosscher  <stevenb@suse.de>
1692
1693         * tree-inline.c (walk_type_fields, walk_tree,
1694         walk_tree_without_duplicates): Move from here...
1695         * tree.c: ...to here.
1696
1697 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
1698
1699         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1700         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1701         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1702         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1703         (version): Define using $(BASEVER_c).
1704         (Makefile, config.status, build/gcov-iov.o): No longer depends on
1705         version.c.
1706         (version.o): Depend on version files; add custom generation command.
1707         (prefix.o): Define BASEVER on command line.
1708         (s-iov): Depend on version files; adjust command.
1709         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1710         Add gcc-vers.texi.
1711         (gcc-vers.texi): New rule.
1712         (doc/%.info, doc/%.dvi): Add -I . to command line.
1713         (doc/gccinstall.dvi): Likewise.
1714         (PACKAGE): Delete.  All uses replaced with "gcc".
1715         * aclocal.m4: Do not include gcc-version.m4.
1716         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1717         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1718         Set is_release based on contents of DEV-PHASE.
1719         Set gcc_version based on contents of BASE-VER.
1720         Define WIN32_REGISTRY_KEY only if the user overrode the default.
1721         * config.in, configure: Regenerate.
1722         * gccbug.in: Determine version of GCC in use at runtime.
1723         * gcov-iov.c: Get version number and development phase from
1724         command line, not by including version.c.
1725         * intl.c: Replace all uses of PACKAGE with "gcc".
1726         * libada-mk.in: Delete unused "gcc_version" variable.
1727         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1728         * version.c: (VERSUFFIX): New hook for redistributors; adjust
1729         commentary to match.
1730         (version_string): Put together from pieces.
1731         * config/alpha/x-vms: Do not use $(gcc_version).
1732         * config/i386/t-nwld: Likewise.
1733         * doc/include/gcc-common.texi: Include gcc-vers.texi for
1734         version-GCC and DEVELOPMENT.
1735
1736 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1737
1738         PR tree-optimization/17454
1739         * tree.c (tree_size): Add case for TREE_BINFO.
1740         * fold-const.c (fold_checksum_tree): Only clear the overloaded
1741         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1742
1743 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1744
1745         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1746         op1 whilst expanding the signed widenening multiply variant.
1747
1748 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
1749
1750         * toplev.c (display_target_options): Avoid unused variable warning if
1751         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1752         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1753         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1754         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1755         (mips_isa_info): New variable.
1756         (mips_parse_cpu): Remove the first argument and leave the caller
1757         to report errors.
1758         (TARGET_HANDLE_OPTION): Override default.
1759         (mips_handle_option): New function.  Move option validation code from...
1760         (override_options): ...here.  Update calls to mips_parse_cpu.
1761         * config/mips/mips.h (mips_arch_string, mips_tune_string)
1762         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1763         (SUBTARGET_TARGET_OPTIONS): Delete.
1764         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1765         (mno-flush-func, mtune=): New options.
1766
1767 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1768             Richard Henderson  <rth@redhat.com>
1769
1770         * real.c (c4x_single_format, c4x_extended_format): Provide values
1771         for signbit_ro for c4x's single and extended floating point formats.
1772         * optabs.c (expand_copysign): Use the floating point format's
1773         signbit_ro for expanding via expand_copysign_absneg, and it's
1774         signbit_rw field for expanding via expand_copysign_bit.
1775
1776 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
1777
1778         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1779         known_alignment_for_access_p.
1780         (known_alignment_for_access_p): New.
1781         (do_peeling_for_alignment): Field made int instead of bool and renamed
1782         to peeling_for_alignment.
1783         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1784         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1785         functionality used to be in vect_analyze_operations.
1786         (vect_analyze_operations): Code to determine vectorization factor was
1787         moved to vect_determine_vectorization_factor.
1788         (vect_enhance_data_refs_alignment): Update to correct alignment when it
1789         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1790         factor.
1791         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1792         be part of vect_analyze_operations).
1793         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1794         creating the guard condition, as the number of iterations may be
1795         constant.
1796         (slpeel_tree_peel_loop_to_edge): Use new name of
1797         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1798         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1799         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1800         (vect_do_peeling_for_alignment): Use fold.
1801         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1802
1803         (vect_update_inits_of_dr): Renamed to
1804         vect_update_init_of_dr.
1805         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1806         (vectorizable_store): Fix assertion to use == instead of =.
1807
1808 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
1809
1810         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1811         call_used_regs for wCG registers.
1812
1813 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
1814
1815         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1816         for non-offsettable memory references to cope with outstanding reload
1817         replacements, take 2.
1818
1819 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
1820
1821         PR target/18668
1822         * config/i386/i386.h (x86_fisttp): New.
1823         (TARGET_FISTTP): New macro.
1824         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1825         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
1826         instruction when fisttp flag is set.
1827         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1828
1829         * config/i386/i386.md (type attribute): Add fisttp.
1830         (unit attribute): Set to i387 for fisttp type.
1831         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1832         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1833         TARGET_FISTTP.
1834         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1835         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1836         macros.
1837         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1838         patterns for TARGET_FISTTP.  Enable patterns for
1839         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1840         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1841         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1842         implement fisttp x87 insn.
1843         (fix_trunc*_i387_fisttp splitters): New patterns.
1844         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1845         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
1846         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
1847         clobber.
1848         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1849         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1850         Implement using mode macros. Disable patterns for TARGET_FISTTP.
1851         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1852         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1853         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1854         Disable patterns for TARGET_FISTTP.
1855         (fix_trunc*_i387 splitters): Implement usign mode macros.
1856         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1857         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1858         (fix_trunx*_sse peephole2s): Implement using mode macros.
1859
1860 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
1861
1862         PR rtl-optimization/20291
1863         * combine.c (try_combine): If splitting fails, re-try with
1864         original combined pattern, i.e. before clobber stripping.
1865
1866 2005-03-14  Eric Christopher  <echristo@redhat.com>
1867
1868         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1869         STACK_GROWS_DOWNWARD.
1870
1871 2005-03-14  Roger Sayle  <roger@eyesopen.com>
1872
1873         * real.h (struct real_format): Split the signbit field into two
1874         two fields, signbit_ro and signbit_rw.
1875         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1876         mips_double_format, ieee_extended_motorola_format,
1877         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1878         ieee_extended_intel_128_format, ibm_extended_format,
1879         mips_extended_format, ieee_quad_format, mips_quad_format,
1880         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1881         i370_double_format, c4x_single_format, c4x_extended_format,
1882         real_internal_format): Update initializers for new field.
1883         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1884         real_format structure.
1885         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1886         field of the real_format structure.
1887
1888 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
1889
1890         Fix PR tree-optimization/20458
1891
1892         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1893         DECL_EXTERNAL on STRUCT_FIELD tags.
1894         (clear_call_clobbered): Ditto.
1895         * tree-ssa-operands.c (note_addressable): Make sure the original
1896         variable doesn't slip into the addressable list if we have
1897         subvars.
1898         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1899         tags too.
1900
1901 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
1902
1903         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1904         (-fwide-exec-charset): Likewise.
1905         (-finput-charset): Likewise.
1906         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1907         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1908         * c.opt (Wnormalized): New.
1909
1910 2005-03-14  Devang Patel  <dpatel@apple.com>
1911
1912         * doc/invoke.texi: Add reference to Visibility document.
1913
1914 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
1915
1916         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1917         MASK_SPLIT_ADDRESSES.
1918         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1919         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1920         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1921         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1922         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1923         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1924         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1925         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1926         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1927         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1928         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1929         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1930         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1931         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1932         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1933         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1934         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1935         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1936         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1937         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1938         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1939         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1940         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1941         (TARGET_EXPLICIT_RELOCS): Delete.
1942         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1943         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1944         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1945         (override_options): Set MASK_LONG64 if -mint64 is given and no
1946         -mlongXX option is.  Complain about -mint64 -mlong32.
1947         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
1948         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
1949         * config/mips/mips.opt: New file.
1950
1951 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
1952
1953         * config.gcc (extra_options): New variable for listing option files.
1954         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
1955         * configure.ac (extra_opt_files): New AC_SUBST variable.
1956         (tm_file_list, tm_include_list): Include options.h first.
1957         * configure: Regenerate.
1958         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
1959         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
1960         (s-options-h): New rule.
1961         (options.h): Depend on it.
1962         (TEXI_GCCINT_FILES): Add options.texi.
1963         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
1964         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
1965         * target.h (gcc_target): Add default_target_flags and handle_option.
1966         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
1967         (TARGET_HANDLE_OPTION): New macros.
1968         (TARGET_INITIALIZER): Include them.
1969         * opt-functions.awk (opt_args, nth_arg): New functions.
1970         (switch_flags): Handle the "Target" flag.
1971         (var_args): Delete.
1972         (var_name): Use opt_args and nth_arg.
1973         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
1974         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
1975         macros for the "Mask" and "InverseMask" options.
1976         * opts.h (cl_var_cond): New enum.
1977         (cl_option): Replace the "has_set_value" and "set_value" fields with
1978         "var_cond" and "var_value".
1979         (CL_TARGET): New macro.
1980         (option_enabled, print_filtered_help): Declare.
1981         (decode_options): Move definition.
1982         * opts.c (handle_option): Search for the original option before
1983         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
1984         var_cond and var_value fields.  Use targetm.handle_option to handle
1985         target options.
1986         (decode_options): Set target_flags to targetm.default_target_flags.
1987         (print_filtered_help): Make global.  Handle CL_TARGET.
1988         (option_enabled): New function.
1989         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
1990         (display_target_options, set_target_switch, print_switch_values)
1991         (default_pch_valid_p): Guard uses of target_switches with
1992         #ifdef TARGET_SWITCHES.  Also...
1993         (display_target_options): Display the CL_TARGET entries in cl_options.
1994         (set_target_option): Don't complain about the "" option when
1995         TARGET_SWITCHES is undefined.
1996         (print_switch_values): Use option_enabled.
1997         (default_pch_valid_p): Check cl_options[] when looking for something
1998         that has changed the value of target_flags.
1999         * c.opt: Remove documentation from top of file.
2000         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
2001         * doc/sourecebuild.texi: Refer to the new options documentation
2002         instead of c.opt.  Document machine-specific .opt files.
2003         * doc/tm.texi (target_flags): Say that this variable is declared
2004         by options.h.
2005         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
2006         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
2007         an alternative.
2008         * doc/options.texi: New file.
2009
2010 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2011
2012         PR middle-end/18628
2013         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
2014         register.
2015
2016 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2017
2018         PR c++/20280
2019         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
2020         temporary variable of pointer type if an lvalues is required.
2021         (gimplify_modify_expr_rhs): Request an rvalue from it.
2022         (gimplify_expr): Pass fallback on.
2023
2024 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2025
2026         * cfgbuild.c: Update comments.
2027
2028 2005-03-14  Roger Sayle  <roger@eyesopen.com>
2029
2030         PR rtl-optimization/17236
2031         * optabs.c (expand_doubleword_mult): New helper function split out
2032         from expand_binop.  Permute the order in which instructions are
2033         emitted to minimize the number of simultaneously live registers.
2034         (expand_binop): Call expand_doubleword_mult to synthesize a double
2035         word multiplication.
2036
2037 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2038
2039         * basic-block.h: Update the prototypes of cached_make_edge and
2040         rtl_make_eh_edge.
2041         * cfg.c (cached_make_edge): Take edge_cache representing one
2042         row of the adjacency matrix of edges.
2043         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
2044         (make_edges): Initialize edge_cache to represent one row of
2045         the adjacency matrix of edges.
2046
2047 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2048
2049         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
2050         New functions.
2051         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
2052         Remove unused removed_phis variable.
2053         (conditional_replacement): Use build1/build2.
2054         (abs_replacement): Use last_and_only_stmt and build1/build2.
2055
2056 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2057
2058         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
2059         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
2060         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
2061         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
2062         * c-common.c (handle_novops_attribute): New function.
2063         (c_common_attribute_table): Add "no vops" entry.
2064         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
2065         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
2066         * tree-ssa-operands.c (get_call_expr_operands): Do not
2067         create virtual operands for calls with ECF_NOVOPS flag.
2068         * tree.h (DECL_IS_NOVOPS): New macro.
2069         (struct tree_decl): Add novops_flag.
2070         (ECF_NOVOPS): New constant.
2071
2072 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
2073
2074         PR target/17688
2075         * config/i386/i386.c (x86_use_himode_fiop): New.
2076         (x86_use_simode_fiop): Rename from x86_use_fiop.
2077         * config/i386/i386.h (x86_use_himode_fiop): Declare.
2078         (TARGET_USE_HIMODE_FIOP): New.
2079         (x86_use_simode_fiop): Rename from x86_use_fiop.
2080         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
2081
2082         * config/i386/i386.md (X87MODEI12): New mode macro define.
2083         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
2084         to implement x87 FP compare with HImode input operands.
2085         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
2086         Use X87MODEI12 mode macro to handle HImode input operands.
2087         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
2088         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
2089         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
2090         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
2091         macro to implement x87 operators with HImode input operands.
2092         (fop splitters): Use X87MODEI12 mode macro to handle HImode
2093         input operands.
2094
2095 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2096
2097         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
2098         integer_zerop.
2099         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
2100         constants invariant.
2101
2102 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2103
2104         * basic-block.h (BB_VISITED): Removed.
2105         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
2106
2107 2005-03-14  Falk Hueffner  <falk@debian.org>
2108
2109         PR bootstrap/20424
2110         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
2111
2112 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2113
2114         * ggc-zone.c: Fix comment typos.
2115
2116         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
2117         stringpool.c, config/mips/mips-protos.h: Update copyright.
2118
2119 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2120
2121         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
2122         throughout with its typedef, "rtx".
2123         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
2124         (rs6000_tls_symbol_ref_1): Remove inline keyword.
2125         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
2126         regs in comment to match code.
2127
2128 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2129
2130         * except.c (check_handled): Make it static.
2131         * except.h: Remove the corresponding prototype.
2132
2133         * function.c (get_func_frame_size): Make it static.
2134         * function.h: Remove the corresponding type.
2135
2136         * regclass.c (reg_class_superclasses, reg_class_subclasses):
2137         Make them static.
2138         * hard-reg-set.h: Remove the corresponding declarations.
2139
2140         * tree-cfg.c (verify_stmts): Check that
2141         bb_for_stmt (stmt) == bb for every PHI node and statement.
2142
2143 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2144
2145         * config.gcc: Remove excess indentation.
2146         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2147
2148 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2149
2150         PR middle-end/19331
2151         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2152         * fold-const.c (fold_sign_changed_comparison): Likewise.
2153         (fold_binary): Optimize comparisons against widened operands if
2154         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2155
2156 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2157
2158         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2159         (sparc_override_options): Initialize it.
2160         (sparc_struct_value_rtx): Set it on the MEM to be returned.
2161
2162 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
2163
2164         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2165         (reg_or_none500mem_operand): New predicate.
2166         (zero_reg_mem_operand): New predicate.
2167         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2168         to reg_or_none500mem_operand.
2169         (extendsfdf2_fpr): Add MEM alternative.
2170         (extenddftf2_internal): Change operand2 predicate to
2171         zero_reg_mem_operand.
2172
2173 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2174
2175         * ggc-zone.c: Rewritten.
2176
2177         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2178         if there are none.
2179         * configure.ac: Define GGC_ZONE for --with-gc=zone.
2180         * config.in: Regenerated.
2181         * configure: Regenerated.
2182         * gengtype.c (write_types_process_field, write_func_for_structure):
2183         Pass new argument to gt_pch_note_object.
2184         * ggc-common.c (struct ptr_data): Add TYPE.
2185         (gt_pch_note_object): Take TYPE argument and save it.
2186         (call_count): Update call to ggc_pch_count_object.
2187         (call_alloc): Update call to ggc_pch_alloc_object.
2188         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2189         file.
2190         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2191         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2192         (ggc_alloc_zone_stat): Delete.
2193         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2194         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2195         (ggc_pch_alloc_object): Update prototypes.
2196         (garbage_zone): Delete.
2197         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2198         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
2199         pointers.
2200         (tree_id_zone): New variable.
2201         (ggc_alloc_cleared_zone): Remove unused.
2202         (ggc_alloc_zone): Define.
2203         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2204         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2205         ggc_alloc_zone_stat.
2206         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2207         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2208         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2209         (make_node_stat): Likewise.  Use tree_id_zone.
2210
2211 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2212             Joseph S. Myers  <joseph@codesourcery.com>
2213
2214         * configure.ac: Check for MIPS TLS.
2215         * configure: Regenerated.
2216         * config/mips/mips-protos.h (enum mips_symbol_type): Add
2217         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2218         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2219         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2220         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2221         (mips_classify_symbol, mips_symbolic_constant_p)
2222         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2223         (mips_tls_operand_p, mips_call_tls_get_addr)
2224         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2225         (mips_tls_symbol_ref_1): New functions.
2226         (mips_legitimize_address, mips_legitimize_const_move): Call
2227         mips_legitimize_tls_address.
2228         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
2229         for MIPS16.
2230         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2231         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2232         (mips_char_to_class): Document V1_REG.
2233         (HAVE_AS_TLS): Provide default.
2234         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2235         constants.
2236         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
2237         !TARGET_ABICALLS.
2238         (tls_get_tp_<mode>): New instruction.
2239
2240 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2241
2242         * configure.ac: Update checks for target tools.
2243         * configure: Regenerated.
2244
2245 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2246
2247         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2248
2249 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2250
2251         * expmed.c (expand_mult): Use synthetic multiplication sequences for
2252         more classes of DImode multiplication by constant.  Allow both
2253         multiplication by small negative constants (by performing a
2254         multiplication by a positive constant and negating the result) and
2255         multiplications by large powers of two, by using a left shift.
2256
2257 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2258
2259         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2260         of basic blocks into work_stack.
2261
2262         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2263         config/mips/vr.h: Update copyright.
2264
2265         * c-decl.c (c_init_decl_processing): Remove useless calls to
2266         build_function_type.
2267
2268         * builtins.c (fold_trunc_transparent_mathfn,
2269         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2270         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2271         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2272         fold_builtin_strcpy, fold_builtin_strncpy,
2273         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2274         TREE_TYPE (exp).
2275
2276         * builtins.c (expand_builtin_mathfn_3): Remove local variable
2277         before_call.
2278
2279         * lambda-code.c (lambda_compute_auxillary_space): Remove local
2280         variable determinant.
2281
2282         * tree-cfg.c (group_case_labels): Remove local variable type.
2283
2284         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2285         variable ann.
2286
2287         * tree-ssa-phiopt.c (value_replacement): Remove local variable
2288         result.
2289
2290 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2291
2292         PR target/18251
2293         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2294         (*movmemqi_insn): Delete.
2295         (*movmemhi): Delete.
2296
2297 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2298
2299         * builtins.c (fold_builtin_classify): Take decomposed
2300         arguments of CALL_EXPR.
2301         (fold_builtin_1): Update a call to fold_builtin_classify.
2302
2303 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
2304
2305         PR c/20402
2306         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2307         through into call to parser_xref_tag after parse error.
2308         (c_parser_struct_declaration): Consistently return NULL_TREE on
2309         error.
2310
2311 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
2312
2313         * tree-flow-inline.h (ref_contains_array_ref): New function.
2314         (lookup_subvars_for_var): Ditto.
2315         (get_subvars_for_var): Ditto.
2316         (var_can_have_subvars): Ditto.
2317
2318         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2319         (struct subvar): New type.
2320
2321         * tree-dfa.c (okay_component_ref_for_subvars): New function.
2322
2323         * tree-optimize.c (init_tree_optimization_passes): Call
2324         pass_create_structure_vars.
2325
2326         * tree-ssa-alias.c: Include vec.h.
2327         (init_alias_info): Don't auto-clear call clobbered on struct-field
2328         tags.
2329         (compute_flow_insensitive_aliasing): Handle subvars.
2330         (group_aliases): Handle STRUCT_FIELD aliases.
2331         (setup_pointers_and_addressables): Ditto.
2332         Don't mark variables non-addressable if they still have
2333         addressable subvars.
2334         Also mark subvars addressable when the real variable is marked
2335         addressable.
2336         (add_pointed_to_var): Try to prune the pointed-to set by only
2337         pointing to subvars when possible.
2338         Otherwise, make sure we set addresses_needed and pt_vars to
2339         properly include subvars.
2340         (bitpos_of_field): New function.
2341         (push_fields_onto_fieldstack): Ditto.
2342         (get_or_create_used_part_for): Ditto.
2343         (create_overlap_variables_for): Ditto.
2344         (find_used_portions): Ditto.
2345         (create_structure_vars): Ditto.
2346         (pass_create_structure_vars): New structure.
2347
2348         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2349         (get_expr_operands): Handle subvars.  Also try to turn
2350         COMPONENT_REF accesses into must-defs now that we can accurately
2351         portray it.
2352         (note_addressable): Try to only mark as addressable those subvars
2353         we know a COMPONENT_REF touches.
2354         (overlap_subvar): New function.
2355
2356         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2357         Handle subvar storing.
2358         (vect_address_analysis): Update caller of vect_object_analysis.
2359
2360         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2361
2362         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2363         (STMT_VINFO_SUBVARS): New macro.
2364
2365         * common.opts: add flag_tree_salias.
2366
2367         * opts.c (decode_options): flag_tree_salias defaults to on.
2368
2369         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2370
2371         * doc/tree-ssa.texi: Document structural alias analysis.
2372
2373 2005-03-12  Steven Bosscher  <stevenb@suse.de>
2374
2375         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2376         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2377         * tree-ssa-operands.c (get_expr_operands): Likewise.
2378         (get_expr_operands): Likewise for ERROR_MARK.
2379
2380 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
2381
2382         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2383         var.
2384
2385         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2386         removed_phis.
2387
2388         * tree-ssa-pre.c (compute_avail): Remove local variable val.
2389         (mark_operand_necessary): Remove local variable ver.
2390
2391         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2392         variable prefix_len.
2393
2394         * value-prof.c (mod_subtract_transform): Remove local variable
2395         value.
2396
2397         * builtins.c (fold_builtin_exponent): Take decomposed
2398         arguments of CALL_EXPR.
2399         (fold_builtin_1): Update a call to fold_builtin_exponent.
2400
2401         * builtins.c (fold_builtin_logarithm): Take decomposed
2402         arguments of CALL_EXPR.
2403         (fold_builtin_1): Update a call to fold_builtin_logarithm.
2404
2405         * c-decl.c (c_init_decl_processing): Remove local variables
2406         ptr_ftype_void and ptr_ftype_ptr.
2407
2408         * gimplify.c (gimplify_expr): Remove local variables r0 and
2409         r1.
2410
2411         * reg-stack.c (move_for_stack_reg): Remove local variable
2412         push_insn.
2413         (compare_for_stack_reg): Remove local variable flags_user.
2414         (convert_regs_1): Remove local variable deleted.
2415
2416         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2417         variable new_cond.
2418         (combine_blocks): Remove local variables exits and new_e.
2419
2420         * tree-inline.c (expand_call_inline): Remove local variable
2421         decl.
2422
2423         * tree-ssa-live.c (create_ssa_var_map,
2424         calculate_live_on_entry): Remove local variable snn.
2425
2426 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
2427
2428         * c-lex.c (c_lex_with_flags): Add parameter to call to
2429         cpp_spell_token.
2430
2431 2005-03-11  Per Bothner  <per@bothner.com>
2432
2433         * c-tree.h (struct c_declarator): New id_loc field.
2434         * c-pragma.h (c_lex_with_flags): Take position reference.
2435         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2436         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2437         (c_lex): Pass dummy location to c_lex_with_flags.
2438         * c-parser.c (c_lex_one_token): Set c_token's location using
2439         c_lex_with_flags, instead of input_location, which might be "ahead".
2440         (c_parser_direct_declarator): Set declarator's id_loc from
2441         c_token's id_loc.
2442         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
2443         declarator's id_loc, rather than probably-imprecise input_location.
2444         (build_id_declarator): Initialize c_declarator's id_loc field.
2445
2446 2005-03-11  Roger Sayle  <roger@eyesopen.com>
2447
2448         PR middle-end/20419
2449         * builtins.c (expand_builtin_signbit): Force the signbit's word
2450         into an integer register to avoid SUBREGs of floating point modes.
2451
2452 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
2453
2454         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
2455         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
2456         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
2457         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2458
2459 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
2460
2461         PR rtl-optimization/20306
2462         * expr.c (emit_move_complex): Set try_int false if mode is
2463         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
2464         emit_block_move if try_int is true.
2465
2466 2005-03-11  Richard Henderson  <rth@redhat.com>
2467
2468         PR target/20415
2469         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2470         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2471         to match.
2472
2473 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
2474
2475         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2476         (TARGET_FIX_VR4130): New macro.
2477         (TARGET_OPTIONS): Add -mfix-vr4130.
2478         (ISA_HAS_MACCHI): New macro.
2479         (ASM_SPEC): Add -mfix-vr4130.
2480         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2481         (override_options): Handle mips_fix_vr4130_string.
2482         (mips_avoid_hazards): Clear all_noreorder_p
2483         if we're working around VR4130 errata and the macc alternatives
2484         are not available.
2485         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2486         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2487         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2488         (MULTILIB_DEFAULTS): Remove leading "march=".
2489         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
2490         if no architecture option is given.
2491         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2492         VR4130 multilibs.
2493         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2494         * doc/invoke.texi: Document -mfix-vr4130.
2495
2496 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
2497
2498         * config/mips/mips.c (override_options): Only warn about -mint64
2499         deprecation if TARGET_INT64.
2500
2501 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2502
2503         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2504         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2505         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2506         are non-specific regarding the nonnull parameter positions.
2507         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2508         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2509         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2510         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2511
2512         * builtins.def: Use the non-specific "nonnull" attibute lists.
2513
2514 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
2515
2516         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2517         single_pred_edge, single_succ, single_pred): Improve comments.
2518
2519 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
2520
2521         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2522         single_pred_edge, single_succ, single_pred): New inline functions.
2523         * bb-reorder.c (rotate_loop, find_traces_1_round,
2524         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2525         duplicate_computed_gotos): Use the single_succ/pred functions.
2526         * cfganal.c (forwarder_block_p): Ditto.
2527         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2528         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2529         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2530         merge_seq_blocks): Ditto.
2531         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2532         * cfglayout.c (fixup_reorder_chain): Ditto.
2533         * cfgloop.c (mark_single_exit_loops, update_latch_info,
2534         canonicalize_loop_headers, verify_loop_structure): Ditto.
2535         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2536         mfb_update_loops, create_preheader, force_single_succ_latches,
2537         create_loop_notes): Ditto.
2538         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2539         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2540         commit_one_edge_insertion, purge_dead_edges,
2541         cfg_layout_can_merge_blocks_p): Ditto.
2542         * except.c (sjlj_emit_function_enter): Ditto.
2543         * flow.c (init_propagate_block_info): Ditto.
2544         * function.c (thread_prologue_and_epilogue_insns): Ditto.
2545         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2546         insert_insn_end_bb): Ditto.
2547         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2548         find_if_case_2): Ditto.
2549         * lambda-code.c (perfect_nestify): Ditto.
2550         * lcm.c (optimize_mode_switching): Ditto.
2551         * loop-doloop.c (doloop_modify): Ditto.
2552         * loop-init.c (loop_optimizer_init): Ditto.
2553         * loop-iv.c (simplify_using_initial_values): Ditto.
2554         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2555         * loop-unswitch.c (unswitch_loop): Ditto.
2556         * modulo-sched.c (generate_prolog_epilog): Ditto.
2557         * predict.c (combine_predictions_for_insn, estimate_probability,
2558         tree_estimate_probability, last_basic_block_p,
2559         estimate_bb_frequencies): Ditto.
2560         * profile.c (branch_prob): Ditto.
2561         * regrename.c (copyprop_hardreg_forward): Ditto.
2562         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2563         * tracer.c (layout_superblocks): Ditto.
2564         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2565         cfg_remove_useless_stmts_bb, cleanup_control_flow,
2566         cleanup_control_expr_graph, disband_implicit_edges,
2567         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2568         tree_verify_flow_info, tree_make_forwarder_block,
2569         tree_forwarder_block_p, remove_forwarder_block,
2570         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2571         * tree-if-conv.c (tree_if_conversion): Ditto.
2572         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2573         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2574         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2575         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2576         copy_loop_headers): Ditto.
2577         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2578         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2579         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2580         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2581         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2582         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2583         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2584         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2585         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2586         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2587         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2588         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2589         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2590         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2591         slpeel_add_loop_guard): Ditto.
2592
2593 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
2594
2595         PR tree-optimization/15784
2596         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
2597         and -1 - A to ~A.
2598
2599         * stmt.c (expand_case): Don't change index_type.  Convert minval
2600         to the proper type.
2601
2602         PR tree-optimization/20130
2603         * fold-const.c (fold): Fold x * -1 into -x.
2604
2605 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2606
2607         PR rtl-optimization/20331
2608         * rtlanal.c (modified_between_p): Check its address first for MEM.
2609         (modified_in_p): Likewise.
2610
2611 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
2612
2613         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2614
2615 2005-03-10  Steven Bosscher  <stevenb@suse.de>
2616
2617         * expr.c (expand_expr_real_1): If possible, use a conditional
2618         move for expanding MIN_EXPR and MAX_EXPR.
2619         Use temp for moving around rtx-en.
2620
2621 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
2622
2623         PR rtl-opt/20412
2624         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2625         correct mode.
2626
2627 2005-03-10  Roger Sayle  <roger@eyesopen.com>
2628
2629         * builtins.c (expand_builtin_signbit): Extend to handle floating
2630         point modes wider than the largest integer type, using the
2631         operand_subword_force function to obtain the signbit's word.
2632
2633 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
2634
2635         PR target/20322
2636         * combine.c (try_combine): If recog_for_combine added CLOBBERs
2637         to NEWI2PAT, fail to combine if they are used by NEWPAT.
2638
2639 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
2640
2641         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2642
2643 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
2644
2645         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2646         type void.
2647         (perform_edge_inserts): Unconditionally call
2648         free_dominator_info.
2649
2650         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2651
2652 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
2653
2654         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2655
2656 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
2657
2658         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2659
2660         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2661         gcc_unreachable.
2662         (rtl_register_value_prof_hooks,
2663         tree_value_profile_transformations,
2664         tree_register_value_prof_hooks): Likewise.
2665         * var-tracking.c (stack_adjust_offset_pre_post,
2666         variable_htab_free, variable_union, dataflow_set_different_2,
2667         count_uses, variable_was_changed, set_frame_base_location,
2668         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2669         vt_add_function_parameters): Likewise.
2670         * varasm.c (named_section_real, named_section, make_decl_rtl,
2671         asm_emit_uninitialised, assemble_integer, decode_addr_const,
2672         const_hash_1, compare_constant, copy_constant, force_const_mem,
2673         output_constant_pool_2, output_constant_pool_1, output_constant,
2674         output_constructor, make_decl_one_only, decl_tls_model,
2675         default_no_named_section, default_elf_select_section_1,
2676         default_unique_section_1): Likewise.
2677         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2678         * vmsdbgout.c (addr_const_to_string): Likewise.
2679
2680         PR c++/20375
2681         * function.c (struct assign_parm_data_one): Remove last_named
2682         field.
2683         (assign_parm_find_data_types): Don't determine last_named.
2684         Reorder named_parm determination.
2685         (assign_parms): Only setup varargs on the last non-varadic
2686         parameter.
2687
2688 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
2689
2690         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
2691         sda base address on medium model.
2692
2693 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
2694
2695         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2696         * cfgloop.c (flow_loop_nodes_find): Export.
2697         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2698         Declare.
2699         * cfgloopmanip.c (fix_loop_structure): New function.
2700         * predict.c (predict_loops): Clean up the loops information.
2701         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2702         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2703         loop structure.
2704         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2705         (rewrite_into_loop_closed_ssa): Declaration changed.
2706         * tree-loop-linear.c (linear_transform_loops): Add argument to
2707         rewrite_into_loop_closed_ssa call.
2708         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2709         * tree-ssa-loop-im.c (move_computations): Ditto.
2710         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2711         * tree-vectorizer.c (vectorize_loops): Ditto.
2712         * tree-optimize.c: Include cfgloop.h.
2713         (execute_todo): Choose whether to call cleanup_tree_cfg or
2714         cleanup_tree_cfg_loop.
2715         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2716         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2717         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2718         cleanup_tree_cfg_loop call.
2719         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2720         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2721         work on part of cfg.
2722
2723 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
2724
2725         PR inline-asm/20314
2726         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2727         with multiple alternatives.
2728
2729         * stmt.c (parse_output_constraint): Fix a typo.
2730
2731 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
2732
2733         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2734         assembly directive instead of deprecated "no-generics".
2735
2736 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
2737
2738         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2739         for non-offsettable memory references to cope with outstanding reload
2740         replacements.
2741         * config/s390/s390.md ("reload_outti"): Call find_replacement to
2742         avoid losing outstanding address reloads.
2743         ("reload_outdi", "reload_outdf"): Likewise.
2744
2745 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2746
2747         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2748         code.  Add more cbrt transformations.
2749
2750 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2751
2752         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2753
2754 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2755
2756         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2757         NULL_TREE when a given tree is not simplified.
2758         (fold): Return the original tree when any of the functions
2759         mentioned above NULL_TREE.
2760
2761         * fold-const.c (fold_unary, fold_binary): Take decomposed
2762         arguments, code, type, op0, and op1 in case of fold_binary.
2763         (fold): Update calls to fold_unary and fold_binary.
2764
2765 2005-03-09  Roger Sayle  <roger@eyesopen.com>
2766
2767         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2768         a fndecl and an arglist instead of a CALL_EXPR, exp.
2769
2770 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2771
2772         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2773
2774         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2775
2776         * expr.c (expand_assignment): Remove orig_to_rtx.
2777
2778         * fold-const.c (int_const_binop): Remove no_overflow.
2779
2780         * ifcvt.c (noce_emit_move_insn): Remove inmode.
2781
2782         * loop-iv.c (get_biv_step_1): Remove lhs.
2783
2784         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2785
2786         * real.c (real_nan): Remove neg.
2787
2788         * function.c (thread_prologue_and_epilogue_insns): Remove i
2789         and newinsn.
2790
2791         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2792         tb.
2793
2794         * tree-eh.c (tree_could_trap_p): Remove idx.
2795
2796         * tree-into-ssa.c (ann): Remove ann.
2797
2798         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2799
2800         * tree-sra.c (decide_block_copy): Remove inst_count.
2801
2802         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2803
2804         * tree-ssa-loop-im.c (lhs): Remove.
2805
2806         * cfgbuild.c (state, STATE, SET_STATE,
2807         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2808         make_edges.
2809         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2810         (find_basic_blocks): Set the state of each basic block to
2811         BLOCK_NEW.
2812
2813 2005-03-08  Jeff Law  <law@redhat.com>
2814
2815         * tree-cfg.c (cleanup_control_flow): If removal of a computed
2816         goto results in the removal of edges in the CFG, then we need
2817         to recompute dominators.
2818
2819 2005-03-09  Ben Elliston  <bje@au.ibm.com>
2820
2821         * c-common.c (c_do_switch_warnings): Comment fix.
2822
2823 2005-03-08  Julian Brown  <julian@codesourcery.com>
2824
2825         * Patch from 2005-03-08 reverted for causing regressions and
2826         ppc-darwin bootstrap failure.
2827
2828 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
2829
2830         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2831         Define the real function for ppc-darwin.
2832         * c-typeck.c (convert_arguments): Check for target-specific
2833         invalid argument call to unprototyped function.
2834         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2835         New Macro.
2836         * target.h (invalid_arg_for_unprototyped_fn): New field
2837         in struct calls.
2838         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2839         default target hook.
2840         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2841         Declare.
2842
2843 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2844
2845         * c-typeck.c (constructor_stack, constructor_range_stack,
2846         initializer_stack): Make them static.
2847
2848         * cfg.c (rbi_pool): Make it static.
2849
2850         * gimple-low.c (lower_stmt_body): Make it static.
2851         * tree-flow.h: Remove the corresponding prototype.  Don't
2852         declare lower_data.
2853
2854         * sched-deps.c (cache_size): Make it static.
2855
2856         * stor-layout.c (lang_adjust_rli): Make it static.
2857
2858 2005-03-08  Julian Brown  <julian@codesourcery.com>
2859
2860         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2861         from being used for symbols with vague linkage when
2862         HAVE_GAS_COMDAT_GROUP is true.
2863
2864 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
2865
2866         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2867         nlabel == JUMP_LABEL (jump).
2868
2869 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2870
2871         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2872         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2873         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2874         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2875
2876 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
2877
2878         PR c/14411
2879         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2880         * c-common.c (handle_returns_twice): New function.
2881         (c_common_attribute_table): Declare eturns_twice' attribute.
2882         * doc/extend.texi: Document eturns_twice' attribute.
2883         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2884         (struct tree_decl): Add returns_twice_flag.
2885
2886 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2887
2888         * tree-ssa-phiopt.c: Fix a comment typo.
2889
2890         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2891         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2892         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2893         copyright.
2894
2895 2005-03-08  Richard Henderson  <rth@redhat.com>
2896
2897         * config/alpha/alpha.c (code_for_builtin): Replace special-case
2898         builtin codes with ctzdi2, clzdi2, popcountdi2.
2899         (struct alpha_builtin_def): Add is_const.
2900         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2901         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2902         (alpha_init_builtins): Init them.  Set nothrow and const attributes
2903         on builtins.
2904         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2905         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2906         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2907         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2908         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2909         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2910         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2911         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2912         (TARGET_FOLD_BUILTIN): New.
2913         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2914         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2915         (ffsdi2): Use ctz.
2916         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2917
2918 2005-03-08  Ira Rosen  <irar@il.ibm.com>
2919
2920         PR tree-optimization/20122
2921         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2922         condition of access function instead of base.
2923
2924 2005-03-07  Jeff Law  <law@redhat.com>
2925             Steven Bosscher  <stevenb@suse.de>
2926
2927         * tree-cfg.c (find_taken_edge_computed_goto): New function.
2928         (find_taken_edge): Call find_taken_edge_computed_goto as
2929         appropriate.  Allow any gimple invariant rather than just
2930         INTEGER_CST for VAL.
2931         (cleanup_control_flow): Cleanup a computed goto which has turned
2932         into a simple goto.
2933         (tree_merge_blocks): If block B has any forced labels, move
2934         them to the start of block A.
2935         * tree-ssa-dom.c (thread_across_edge): Allow threading across
2936         computed gotos as well.
2937         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2938         removal of unnecessary computed gotos too.
2939         (lookup_redirection_data): Fix type of INSERT argument.  Callers
2940         updated.
2941
2942 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2943
2944         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
2945         Remove trailing spaces.
2946
2947         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
2948         unshare_all_trees): Make them static.
2949         * tree-gimple.h: Remove the corresponding prototypes.
2950
2951         * diagnostic.h: Remove unused prototype
2952         debug_output_buffer.
2953         * modulo-sched.c: Remove unused prototype
2954         set_row_column_for_ps.
2955
2956         * tree-ssa-phiopt.c (tree_ssa_phiopt,
2957         replace_phi_edge_with_variable): Remove unused variable i.
2958
2959 2005-03-07  Per Bothner  <per@bothner.com>
2960
2961         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
2962
2963 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
2964
2965         PR tree-opt/17671
2966         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
2967         bbs on the COND_EXPR instead of the PHI_NODEs.
2968         (candidate_bb_for_phi_optimization): Remove.
2969         (replace_phi_with_stmt): Rename to ...
2970         (replace_phi_edge_with_variable): this and change so that we
2971         replace the phi argument instead of removing the PHI.
2972         (conditional_replacement): Change so we deal with PHI with more
2973         than two arguments.
2974         (value_replacement): Likewise.
2975         (abs_replacement): Likewise.
2976
2977 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
2978
2979         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
2980         output_e500_flip_gt_bit.
2981
2982         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
2983         as bit 31.
2984         (rs6000_generate_compare): Fix logic to look at the correct bits.
2985         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
2986         Look at GT bit.
2987         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
2988         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
2989         gen_move_from_CR_gt_bit.
2990
2991         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
2992         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
2993         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
2994
2995         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
2996         (E500_CR_IOR_COMPARE): New constant.
2997
2998 2005-03-08  Earl Chew <earl_chew@agilent.com>
2999             David Billinghurst <David.Billinghurst@riotinto.com>
3000
3001         * config/i386/host-cygwin.c: New file to support precompiled
3002         headers on cygwin
3003         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
3004         * config.host: Use above files for cygwin host.
3005
3006 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
3007
3008         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
3009         ordering ops from earlier change.
3010
3011 2005-03-07  Per Bothner  <per@bothner.com>
3012
3013         Various fixes to allow us to again build if --enable-mapped-location:
3014         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
3015         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
3016         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
3017         local variable loc. Change logic appropriately.
3018         * tree-vect-transform.c (vect_finish_stmt_generation): Use
3019         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
3020         * c-parser.c (c_parser_for_statement): Initialize loc variable.
3021         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
3022         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
3023
3024 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
3025
3026         PR rtl-optimization/19683
3027         * reload1.c (choose_reload_regs): Pass the number of bits, not the
3028         number of bytes, to smallest_int_for_mode.  Fix arguments to
3029         REG_CANNOT_CHANGE_MODE_P.
3030
3031 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3032
3033         * reorg.c (relax_delay_slots): Check that the jump is
3034         conditional before trying to invert it.
3035
3036 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3037
3038         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
3039         Make them static.
3040
3041         * calls (stack_arg_under_construction): Make it static.
3042
3043         * flow.c (regs_live_at_setjmp): Make it static.
3044         * flow.h: Remove the corresponding prototype.
3045
3046         * reload1.c (reload_startobj, reload_firstobj,
3047         something_needs_operands_changed, reload_inherited,
3048         reload_inheritance_insn, reload_override_in,
3049         reload_spill_index): Make them static.
3050
3051         * recog.c (verify_changes): Make it static.
3052         * recog.h: Remove the corresponding prototype.
3053
3054         * cfgbuild.c (find_sub_basic_blocks): Remove.
3055         * basic-block.h: Remove the corresponding prototype.
3056         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
3057         in comments.
3058         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
3059
3060         * tree-ssa-operands.c (check_build_stmt): Remove.
3061
3062         * stor-layout.c (set_alignment): Remove.
3063         * tree.h: Remove the corresponding prototype.
3064
3065         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
3066
3067         * tree-ssa-dce.c (control_dependence_map,
3068         visited_control_parents): Make them static.
3069
3070         * cfghooks.c (verify_flow_info): Remove local variable
3071         num_bb_notes.
3072
3073         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
3074         last_bb_seen.
3075
3076         * loop-unswitch.c (unswitch_loop): Remove local variable src.
3077
3078 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
3079
3080         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
3081
3082 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
3083
3084         * config/ia64/hpux.h (LINK_SPEC): Add -z.
3085         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
3086         PARALLEL for an empty structure.
3087
3088 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3089
3090         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
3091
3092         * fold-const.c (fold_binary): Unroll the very first "for"
3093         loop.
3094
3095 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
3096
3097         * config/rs6000/predicates.md (branch_comparison_operator): Remove
3098         redundant match_code test.
3099         (scc_comparison_operator): Swap match_operand and match_code
3100         tests.
3101         (branch_positive_comparison_operator): Same.
3102         (trap_comparison_operator): Use comparison_operator and swap with
3103         match_code test.
3104
3105 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3106
3107         PR target/20288
3108         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
3109         (out_movhi_r_mr): Read low byte of volatile MEM first.
3110         (out_movhi_mr_r): Write high byte of volatile MEM first.
3111
3112 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3113
3114         * cselib.c (reg_values, reg_values_size): Make them static.
3115
3116         * cse.c (cse_reg_info_table): Make it static.
3117
3118         * fold-const.c (fold_unary): Use build1 instead of copy_node.
3119
3120 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
3121
3122         * cse.c (find_best_addr): Use canon_for_address.
3123
3124 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3125
3126         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
3127         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
3128         SUBREG and MEM, respectively.
3129
3130         * fold-const.c (fold_binary): Use code instead of t.
3131
3132         * fold-const.c (optimize_minmax_comparison): Take decomposed
3133         arguments code, type, op0, and op1 instead of t.
3134         (fold_binary): Update a call to optimize_minmax_comparison.
3135
3136         * fold-const.c (fold_range_test): Take decomposed arguments
3137         code, type, op0, and op1 instead of t.
3138         (fold_binary): Update a call to fold_range_test.
3139
3140         * fold-const.c (fold_binary_op_with_conditional_arg): Take
3141         decomposed arguments code, type, op0, and op1 instead of t.
3142         (fold_binary): Update a call to fold_range_test.
3143
3144 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3145
3146         * fold-const.c (fold_binary): Avoid directly using the original
3147         expression t as much as possible.
3148
3149 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3150
3151         * c-semantics.c (build_stmt): Use TYPE_P instead of
3152         IS_NON_TYPE_CODE_CLASS.
3153         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3154         (NON_TYPE_CHECK): Use TYPE_P instead of
3155         IS_NON_TYPE_CODE_CLASS.
3156
3157         * fold-const.c (fold): Remove handling of binary expressions.
3158
3159 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
3160
3161         * doc/c-tree.texi: Wrap comments in @r{}.
3162         * doc/cpp.texi: Likewise.
3163         * doc/cppinternals.texi: Likewise.
3164         * doc/extend.texi: Likewise.
3165         * doc/md.texi: Likewise.
3166         * doc/objc.texi: Likewise.
3167         * doc/sourcebuild.texi: Likewise.
3168         * doc/tm.texi: Likewise.
3169         * doc/tree-ssa.texi
3170
3171 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3172
3173         * predict.c (apply_return_prediction): Standardize PHI chain
3174         walking.
3175         * tree-ssa.c (ssa_redirect_edge): Likewise.
3176
3177         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3178         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3179         Update copyright.
3180
3181         * tree-phinodes.c (remove_phi_node): Drop the last argument.
3182         * tree-flow.h: Adjust the prototype for remove_phi_node.
3183         * lambda-code.c (perfect_nestify): Adjust a call to
3184         remove_phi_node.
3185         * tree-cfg.c
3186         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3187         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3188         Likewise.
3189         * tree-ssa-dce.c (remove_dead_phis): Likewise.
3190         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3191         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3192         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3193
3194         * combine.c (simplify_and_const_int): Use gen_int_mode instead
3195         of GEN_INT (trunc_int_for_mode (...)).
3196         * loop-iv.c (iv_number_of_iterations): Likewise.
3197         * postreload.c (reload_cse_move2add): Likewise.
3198         * simplify-rtx.c (simplify_const_unary_operation,
3199         simplify_const_binary_operation): Likewise.
3200         * stor-layout.c (get_mode_bounds): Likewise.
3201
3202         * fold-const.c (fold_binary): New.
3203         (fold): Call fold_binary on binary expressions.
3204
3205 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
3206
3207         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3208         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3209         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3210         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3211         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3212
3213 2005-03-04  Devang Patel  <dpatel@apple.com>
3214
3215         PR tree-optimization/18815
3216         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3217         loops with zero exit edges.
3218
3219 2005-03-04  Devang Patel  <dpatel@apple.com>
3220
3221         * doc/invoke.texi: Remove reference to webpage that does not exist.
3222
3223 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
3224             Joseph S. Myers  <joseph@codesourcery.com>
3225
3226         PR c++/19797
3227         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3228         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3229         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3230         * pa.c (get_plabel): Change argument to symbol_ref.  Call
3231         maybe_get_identifier instead of get_identifier.
3232         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3233         (struct deferred_plabel): Replace name field with symbol field.
3234         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3235         ASM_OUTPUT_EXTERNAL_REAL is defined.
3236         (output_global_address): Use output_addr_const for output of all
3237         symbol_refs.
3238         (output_deferred_plabels): Use symbol_ref instead of name for address
3239         output.
3240         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3241         ASM_OUTPUT_SYMBOL_REF): New macros.
3242         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
3243         comment.
3244         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3245         label.
3246
3247 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
3248
3249         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3250         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3251
3252 2005-03-04  Jeff Law  <law@redhat.com>
3253
3254         * basic-block.h (rediscover_loops_after_threading): Declare.
3255         * tree-ssa-dom.c: Include cfgloop.h.
3256         (tree_ssa_dominator_optimize): Discover loops and some basic
3257         properties.  Remove forwarder blocks recreated by loop header
3258         canonicalization.  Also mark backedges in the CFG.
3259         * tree-ssa-threadupdate.c: Include cfgloop.h
3260         (rediscover_loops_after_threading): Define.
3261         (struct local_info): New field, JUMP_THREADED.
3262         (prune_undesirable_thread_requests): New function.
3263         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
3264         then record that fact for the callers of redirct_edges.
3265         (thread_block): If BB has incoming backedges, then call
3266         prune_undesirable_thraed_requests.    Note when we are
3267         going to have to rediscover loop information.  Return a
3268         boolean indicating if any jumps were threaded.
3269         (thread_through_all_blocks): Bubble up boolean indicating
3270         if any jumps were threaded.
3271         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3272         (tree-ssa-threadupdate.o): Similarly.
3273
3274 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3275
3276         * fold-const.c (fold_ternary): Unroll the "for" loop to
3277         extract operands.
3278
3279 2005-03-04  Andrew Haley  <aph@redhat.com>
3280
3281         * unwind-dw2-fde-glibc.c (struct
3282         unw_eh_callback_data.check_cache): New field.
3283         (frame_hdr_cache): New.
3284         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3285         Cache frame header info.
3286
3287 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
3288
3289         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3290         (print_c_condition): Declare.
3291         * read-rtl.c (ptr_loc): New structure.
3292         (ptr_locs, ptr_loc_obstack, joined_conditions)
3293         (joined_conditions_obstack): New variables.
3294         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3295         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3296         (join_c_conditions, print_c_condition): New functions.
3297         (apply_macro_to_string): Associate the new string with the same
3298         source location as the old one.
3299         (add_condition_to_string): Use join_c_conditions.
3300         (read_string): Use set_rtx_ptr_loc to record a filename and line
3301         number for the string.
3302         (read_rtx): Initialize the new variables above.
3303         * genattrtab.c (write_test_expr, write_attr_value): Use
3304         print_c_condition.
3305         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
3306         comment above the GCC_VERSION check.
3307         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3308         Inline the definition of MAYBE_EVAL.
3309         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3310         * genoutput.c (process_template): Likewise.
3311         * genpreds.c (write_predicate_subfunction): Likewise.
3312         (write_predicate_expr): Use print_c_condition.
3313         * genrecog.c (write_cond): Likewise.
3314         * gensupport.c (process_rtx): Use join_c_conditions to join the
3315         conditions of a define_insn_and_split.  Record a source location
3316         for the string after the "&&".
3317         (alter_test_for_insn): Use join_c_conditions.
3318
3319 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
3320
3321         Revert for now:
3322         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3323         PR tree-optimization/15784
3324         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3325         and -1 - A to ~A.
3326
3327 2005-03-04  Ben Elliston  <bje@au.ibm.com>
3328
3329         * gcc.c (option_map): Add --coverage.
3330         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3331         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3332         * config/darwin.h: Pass -lgcov for `coverage'.
3333         * doc/invoke.texi (Debugging Options): Document --coverage.
3334
3335 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3336
3337         * gcse.c (bypass_block): Use find_edge wherever possible.
3338
3339 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
3340
3341         Fix PR debug/20253
3342
3343         * c-opts.c (c_common_parse_file): Call start_source_file
3344         and end_source_file at the approriate times.
3345
3346         * dwarf2out.c (dwarf2out_finish): Don't auto-end
3347         the main file, it will be done for us now.
3348
3349 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3350
3351         * fold-const.c (fold_ternary): New.
3352         (fold): Call fold_ternary on ternary expressions.  Remove
3353         handling of ternary expressions.
3354
3355 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3356
3357         PR tree-optimization/15784
3358         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3359         and -1 - A to ~A.
3360
3361 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
3362
3363         * config/rs6000/predicates.md (branch_comparison_operator):
3364         Convert from C block to conditional format.
3365
3366 2005-03-03  Jan Hubicka  <jh@suse.cz>
3367
3368         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
3369         and non-constant public variables.
3370
3371 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3372
3373         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
3374         with LABEL_EXPR.
3375
3376         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
3377         EDGE_I.
3378
3379         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
3380         calls to release_ssa_name and release_phi_node.
3381
3382         * fold-const.c (fold): Remove handling of unary expressions.
3383
3384         * fold-const.c (fold_unary): Avoid directly using the original
3385         expression t as much as possible.
3386
3387 2005-03-03  Roger Sayle  <roger@eyesopen.com>
3388             Andrew Pinski  <pinskia@physics.uc.edu>
3389
3390         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
3391         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
3392
3393 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
3394
3395         Describe special registers SRP and MOF as allocatable registers.
3396         * config/cris/cris.c (cris_md_asm_clobbers): New function.
3397         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
3398         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
3399         TARGET_HAS_MUL_INSNS.
3400         (cris_print_operand) <case 'd'>: New case.
3401         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
3402         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
3403         define.
3404         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
3405         (REG_ALLOC_ORDER): Update for MOF.
3406         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
3407         SPECIAL_REGS.
3408         (GENERAL_REGS): No longer a define of ALL_REGS.
3409         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
3410         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
3411         Adjust accordingly.
3412         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
3413         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
3414         (SECONDARY_RELOAD_CLASS): Define.
3415         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
3416         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
3417         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM