OSDN Git Service

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