OSDN Git Service

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