OSDN Git Service

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