OSDN Git Service

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