OSDN Git Service

* dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-31  Olivier Hainque  <hainque@adacore.com>
2
3         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
4         defined and non-zero.
5
6 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7
8         PR c++/18644
9         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
10         semantics. 
11
12 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
13
14         PR target/20611
15         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
16         label operand.  Remove (use (unspec..)).  Don't emit a label on
17         the offset word.
18         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
19         generate inline label for load_toc_v4_PIC_1b.
20         (rs6000_emit_load_toc_table): Likewise.
21
22 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
23
24         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
25         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
26
27 2005-03-29  Devang Patel  <dpatel@apple.com>
28
29         * tree-sra.c (decide_block_copy): Disable scalarization of
30         sub-elements.
31         
32 2005-03-30  Stuart Hastings  <stuart@apple.com>
33             Dale Johannesen  <dalej@apple.com>
34
35         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
36         * print-tree.c (print_node):  Add case STATEMENT_LIST.
37
38 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
39
40         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
41         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
42         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
43         is given with "powerpc64*" or "all", or when --with-cpu chooses
44         a 64-bit cpu.
45
46 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
47
48         PR debug/20268
49         * dwarf2out.c (add_high_low_attributes): New function, extracted from
50         gen_lexical_block_die.
51         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
52
53 2005-03-31  Jan Hubicka  <jh@suse.cz>
54
55         2004-11-02  Jan Hubicka  <jh@suse.cz>
56
57         * cgraph.c (cgraph_varpool_node_name): New function.
58         (dump_cgraph_varpool_node): New function.
59         (dump_varpool): New function.
60         * cgraphunit.c (cgraph_optimize): Dump varpool.
61
62         2004-10-16  Jan Hubicka  <jh@suse.cz>
63
64         * cgraph.c (decide_is_variable_needed): New function.
65         (cgraph_varpool_finalize_decl): Use it.
66         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
67         unit-at-a-time.
68         * final.c (output_addr_const): Do not call mark_referenced.
69         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
70         always go via cgraph.
71         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
72         (check_global_declarations): Ifdef out code clearing DECL_RTL.
73         * tree-optimize.c (execute_inline): Mark functions called.
74         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
75
76         2004-10-11  Jan Hubicka  <jh@suse.cz>
77
78         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
79         (cgraph_varpool_last_needed_node): New static variable.
80         (enqueue_needed_varpool_node): Break out from ...; add items to the
81         end of queue; update first pointers.
82         (cgraph_varpool_mark_needed_node): ... here.
83         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
84         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
85         * cgraph.h (cgraph_varpool_node): Add analyzed field.
86         (cgraph_varpool_first_unanalyzed_node): Declare.
87         * cgraphunit.c: Include output.h.
88         (cgraph_varpool_analyze_pending_decls): New function.
89         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
90         for errors, analyze pending decls.
91         (cgraph_finalize_compilation_unit): Only analyze decls.
92         (cgraph_optimize): Assemble the decls after expanding.
93
94 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
95
96         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
97         subvars get marked properly in tags for grouping.
98         (add_pointed_to_var): Mark only actual pointed to
99         variables/subvars in addresses needed.
100         (create_overlap_variables_for): Clear call clobbered on original
101         variable.
102         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
103         addresable vars with subvars into list.
104         * tree-ssa.c (verify_ssa_name): Verify original is not used where
105         subvar should be.
106
107 2005-03-30  Richard Henderson  <rth@redhat.com>
108
109         * cgraph.h (struct cgraph_node): Add alias.
110         * varasm.c (assemble_alias): Set it.
111         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
112         avoid calling cgraph_expand_function.
113
114 2005-03-30  Tom Tromey  <tromey@redhat.com>
115
116         * tree.def (FILE_TYPE): Removed.
117         * typeclass.h (enum type_class): Removed file_type_class.
118         * dwarf2out.c (is_base_type): Updated.
119         (gen_type_die): Likewise.
120         * dbxout.c (dbxout_type): Updated.
121         * builtins.c (type_to_class): Updated.
122         * tree.c (type_contains_placeholder_1): Updated.
123         * config/sparc/sparc.c (sparc_type_code): Updated.
124         * config/ia64/ia64.c (hfa_element_mode): Updated.
125         * expr.c (count_type_elements): Updated.
126         * stor-layout.c (layout_type): Updated.
127         * tree-inline.c (remap_type): Updated.
128         * tree-pretty-print.c (dump_generic_node): Updated.
129
130 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
131
132         * builtins.c (expand_builtin_powi): Fix mode of
133         2nd argument to match int.
134         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
135         2nd argument type to int.
136         * libgcc2.c: Change prototype of __powi* functions to use
137         int.
138
139 2005-03-30  Dale Johannesen  <dalej@apple.com>
140
141         PR middle-end/19225
142         * calls.c (expand_call):  Flush pending deferrals before
143         throwing call.
144
145 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
146
147         PR c/772
148         PR c/17913
149         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
150         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
151         c_label_context, label_context_stack): New.
152         * c-decl.c (define_label): Check for jumps into statement
153         expressions.  Add label to list of defined labels.
154         (start_function): Push context on label_context_stack.
155         (finish_function): Pop context from label_context_stack.
156         * c-typeck.c (label_context_stack): New.
157         (c_finish_goto_label): Check for jumps into statement
158         expressions.  Add label to list of jumped to labels.
159         (struct c_switch): Add blocked_stmt_expr.
160         (c_start_case): Initialize it.
161         (do_case): Check it.
162         (c_finish_case): Verify !blocked_stmt_expr.
163         (c_begin_stmt_expr):  Push context on label_context_stack.
164         Increment blocked_stmt_expr.  Mark labels jumped to from outside
165         as undefinable.
166         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
167         defined in the statement expression and no longer jumpable to.
168         Mark labels jumped to from just outside the statement expression
169         as again definable.  Pop context from label_context_stack.
170         * doc/extend.texi (Statement Exprs): Update.
171
172 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
173
174         PR c/20368
175         * c-decl.c (start_function): Check for old_decl being
176         error_mark_node.
177
178 2005-03-30  Ian Lance Taylor  <ian@airs.com>
179
180         * final.c (final): Remove prescan parameter.  Change all callers.
181         (final_scan_insn): Remove prescan parameter.  Change all callers.
182
183 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
184
185         * tree-vectorizer.c: Fix comment typos.
186
187 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
188
189         * tree-scalar-evolution.c (instantiate_parameters_1): Return
190         as soon as a chrec_dont_know is detected.
191
192 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
193
194         Merge from csl-arm-branch.
195         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
196
197         * tlink.c (recompile_files): Do not assume that "rename" can
198         overwrite an existing file.
199
200 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
201
202         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
203         * gcc/configure: Regenerate.
204
205 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
206
207         * doc/install.texi: Update binutils requirement for powerpc*-linux.
208
209         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
210
211         * calls.c (struct arg_data): Update "partial" comment.
212         (load_register_parameters): Update "nregs" comment.
213
214 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
215
216         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
217         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
218         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
219         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
220         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
221         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
222         than target_flags & 0.
223         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
224         (iq2000_arch, iq2000_parse_cpu): Delete.
225         (TARGET_HANDLE_OPTION): Override default.
226         (iq2000_handle_option): New function.
227         (override_options): Remove -march= and -mcpu= handling.
228         * config/iq2000/iq2000.opt: New file.
229
230 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
231
232         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
233         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
234         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
235         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
236         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
237         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
238         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
239         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
240         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
241         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
242         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
243         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
244         (c4x_rpts_cycles_string, c4x_cpu_version_string)
245         (TARGET_OPTIONS): Delete.
246         (c4x_rpts_cycles, c4x_cpu_version): Declare.
247         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
248         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
249         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
250         (c4x_cpu_version_string): Delete.
251         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
252         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
253         equivalent -mcpu= option.
254         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
255         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
256         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
257         or clearing the appropriate MASK_* bit.
258         (c4x_file_start): Use c4x_cpu_version.
259         * config/c4x/c4x.opt: New file.
260
261 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
262
263         * doc/options.texi: Document the new MaskExists flag.
264         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
265         if the option has the MaskExists flag.
266
267 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
268
269         * opt-functions.awk (flag_set_p, test_flag): New functions.
270         (switch_flags): Use them.
271         * opth-gen.awk: Use flag_set_p to check for flags.
272         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
273
274 2005-03-30  Ian Lance Taylor  <ian@airs.com>
275
276         * config.host (i[34567]86-*-mingw32*): Don't set
277         host_can_use_collect2 to no.
278
279 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
280
281         PR target/20203
282         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
283         Remove convert_memory_address call duplicating that in memory_address.
284
285 2005-03-29  Richard Henderson  <rth@redhat.com>
286
287         PR c/20519
288         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
289         (build_compound_literal): Likewise.  Propagate decl type into the
290         initializer.
291         (finish_decl): Likewise.  Use new return value from complete_array_type
292         for zero sized arrays.
293         (complete_array_type): Move ...
294         * c-common.c (complete_array_type): ... here.  Change first argument
295         to pointer-to-type-node.  Consistently use sizetype for the index
296         except for zero sized arrays.  Detect zero sized arrays for pedantic
297         mode diagnostics.  Create a new type node instead of modifying the
298         old node in place.
299         * c-tree.h (complete_array_type): Move decl ...
300         * c-common.h (complete_array_type): ... here.
301
302 2005-03-29  Richard Henderson  <rth@redhat.com>
303
304         PR tree-opt/19108
305         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
306
307 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
308
309         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
310         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
311         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
312         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
313
314 2005-03-29  Eric Christopher  <echristo@redhat.com>
315
316         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
317         truthvalue conversion removal.
318
319 2005-03-29  Ian Lance Taylor  <ian@airs.com>
320
321         PR bootstrap/14316
322         * collect2.c: Never include <vfork.h>.
323         (VFORK_STRING, vfork): Don't define.
324         (pid): Remove global variable.
325         (handler): Call raise instead of kill (getpid(), ...).
326         (collect_wait): Add pex parameter.  Change all callers.  Use
327         pex_get_status rather than pwait.
328         (do_wait): Add pex parameter.  Change all callers.
329         (collect_execute): Return struct pex_obj * rather than void.  Use
330         pex routines rather than pexecute.
331         (fork_execute): Get pex_obj from collect_execute, and pass it to
332         do_wait.
333         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
334         Only declare quit_handler if SIGQUIT is defined.
335         (scan_libraries): Likewise.
336         * collect2.h (collect_execute): Update declaration.
337         (collect_wait): Update declaration.
338         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
339         pass it to collect_wait.
340
341 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
342
343         PR c/20672
344         * c-parser.c (c_parser_compound_statement_nostart): Give error
345         message for EOF instead of just setting parser->error.
346
347 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
348
349         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
350         (slpeel_update_phi_nodes_for_guard1): New function.
351         (slpeel_update_phi_nodes_for_guard2): New function.
352         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
353         of slpeel_update_phi_nodes_for_guard.
354         (vectorize_loops): Remove call to loop_closed_rewrite.
355         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
356         assertion.
357
358 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
359
360         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
361         (TARGET_LITTLE_ENDIAN): New macro.
362         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
363         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
364         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
365         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
366         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
367         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
368         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
369         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
370         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
371         (TARGET_OPTIONS): Delete.
372         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
373         (CACHE_FLUSH_TRAP): Turn into an integer.
374         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
375         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
376         -mflush-trap is in use.
377         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
378         (m32r_cache_flush_trap_string): Delete.
379         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
380         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
381         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
382         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
383         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
384         -mmodel= and -msdata= handling from...
385         (m32r_init): ...here.
386         * config/m32r/m32r.opt: New file.
387
388 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
389
390         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
391         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
392         * tree-vect-analyze.c (vect_object_analysis): additional parm
393         pass back a "struct ptr_info_def *" with the points-to info.
394         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
395         statement using info returned from vect_object_analysis.
396         * tree-vect-transform.c (update_vuses_to_preheader): New function.
397         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
398         for virtual uses and defs when creating a replacement vector
399         reference.  Call duplicate_ssa_name_ptr_info to define points-to
400         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
401         (vectorizable_store): copy_virtual_operands and update
402         definition statements.
403         (vectorizable_load): copy_virtual_operands.  Remove call to
404         mark_call_clobbered_vars_to_rename for call to "const" builtin.
405         * tree-vectorizer.c (vectorize_loops): Remove calls to
406         rewrite_into_ssa and bitmap_clear (vars_to_rename).
407         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
408         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
409         define macro STMT_VINFO_PTR_INFO for use in accessing.
410         * tree.h add export of duplicate_ssa_name_ptr_info.
411         * rs6000.c (altivec_init_builtins): Declare builtin function
412         __builtin_altivec_mask_for_load to be "const".
413
414 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
415
416         PR middle-end/20622
417         * cgraph.h (struct cgraph_varpool_node): Add alias field.
418         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
419         assemble_variable on aliases.
420         * varasm.c (assemble_alias): Set node->alias.
421         * toplev.c (wrapup_global_declarations): Don't call
422         rest_of_decl_compilation on aliases again.
423
424 2005-03-29  Paul Brook  <paul@codesourcery.com>
425
426         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
427         * config/arm/arm.c (arm_dbx_register_number): New function.
428         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
429
430 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
431
432         PR middle-end/20263
433         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
434         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
435
436 2005-03-29  Dale Johannesen <dalej@apple.com>
437
438         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
439         $(TREE_H) and $(COVERAGE_H).
440         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
441         * opts.c (common_handle_option): Enable tree-based value transforms.
442         * toplev.c (process_options): Ditto.
443         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
444         refers to references to this type.
445         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
446         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
447         for may_be_more, may_be_less.
448         (rtl_gen_pow2_profiler): Adjust.
449         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
450         (rtl_gen_one_value_profiler): Adjust.
451         (rtl_gen_const_delta_profiler): Adjust.
452         * tree-profile.c (tree_gen_interval_profiler): Implement.
453         (tree_gen_pow2_profiler): Ditto.
454         (tree_gen_one_value_profiler): Ditto.
455         (tree_profiling): New.
456         (pass_tree_profile): Reference it.
457         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
458         tree.h, gcov-io.h.
459         (insn_divmod_values_to_profile): Rename to
460         rtl_divmod_values_to_profile. Adjust.
461         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
462         (insn_prefetch_values_to_profile): Adjust.
463         (rtl_value_profile_transformations): Adjust.
464         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
465         (gen_mod_pow2): Rename to rtl_mod_pow2.
466         (gen_mod_subtract): Rename to rtl_mod_subtract.
467         (divmod_fixed_value_transform): Rename to
468         rtl_divmod_fixed_value_transform.
469         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
470         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
471         (rtl_find_values_to_profile): Adjust.
472         (tree_value_profile_transformations): Implement.
473         (tree_divmod_values_to_profile): New.
474         (tree_values_to_profile): New.
475         (tree_divmod_fixed_value): New.
476         (tree_mod_pow2): New.
477         (tree_mod_subtract): New.
478         (tree_divmod_fixed_value_transform): New.
479         (tree_mod_pow2_value_transform): New.
480         (tree_mod_subtract_transform): New.
481         (tree_find_values_to_profile): Implement.
482         * profile.c (instrument_values):  Free histograms.
483         (compute_value_histograms): Adjust. Implement tree version.
484
485 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
486
487         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
488         * config/i386/i386.c (output_fix_trunc): Add new round_mode
489         variable.  Output "fldcw" depending on round_mode.
490         * config/i386/i386.md (UNSPEC_FIST): New.
491         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
492         New isns patterns to implement lrint and llrint built-ins as x87
493         intrinsic function.
494         (fistdi2, fist<mode>2 splitters): New splitters.
495         (lrint<mode>2): New expanders.
496
497 2005-03-28  Ian Lance Taylor  <ian@airs.com>
498
499         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
500         0 when calling final_scan_insn.
501
502 2005-03-28  Jan Hubicka  <jh@suse.cz>
503
504         PR middle-end/20635
505         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
506         as needed.
507
508         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
509         types where possible.
510
511 2005-03-26  Per Bothner  <per@bothner.com>
512
513         Make -f[no-]show-column also control non-cpp diagnostics.
514         * c.opt (fshow-column): Move option from here ...
515         * common.opt (fshow-column): ... to here.
516         * diagnostic.c (diagnostic_build_prefix): Only print column number
517         if flag_show_column.
518
519 2005-03-27  Steven Bosscher  <stevenb@suse.de>
520
521         * vax-protos.h (vax_output_int_move, vax_output_int_add,
522         vax_output_conditional_branch): New prototypes.
523         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
524         extracted from vax.md mov and add patterns.
525         (vax_output_conditional_branch): New function to output conditional
526         branch instructions.
527         * vax.md: Use mode macros for arithmetic and mov patterns.
528         Use code macros for the jump patterns.
529
530 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
531
532         * Makefile.in (libbackend.o): Depend on version files;
533         add custom generation command.
534
535 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
536
537         PR target/20636
538         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
539         sure that we have a REG before getting its REGNO.
540
541 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
542
543         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
544         * builtins.def (BUILT_IN_STRNDUP): New.
545
546 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
547
548         PR tree-optimization/20470
549         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
550         ABS(x-y).
551
552 2005-03-25  Mike Stump  <mrs@apple.com>
553
554         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
555         sized objects.
556
557 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
558
559         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
560         Use our own structure definitions.
561
562         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
563         (fix_truncdfsi2): Allow registers or memory as destination.
564         When TARGET_PPC_GFXOPT, generate simplified pattern.
565         (fix_truncdfsi2_internal): Use define_insn_and_split.
566         (fix_truncdfsi2_internal_gfxopt): New.
567         (fctiwz): Don't confuse register allocation by giving it no choices.
568         (stfiwx): New.
569         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
570         (EXTRA_MEMORY_CONSTRAINT): Likewise.
571         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
572         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
573
574 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
575
576         * dominance.c (free_dominance_info): Speed up by freeing et
577         data structures without maintaining other nodes.
578         * et-forest.c (et_free_tree_force): New.
579         * et-forest.h: Add a prototype for et_free_tree_force.
580
581         * tree.c (get_set_constructor_bits,
582         get_set_constructor_bytes): Remove.
583         * tree.h: Remove the corresponding prototypes.
584
585 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
586
587         PR target/15491
588         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
589         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
590         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
591         PRE_DEC, NEG and NOT.
592
593 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
594
595         * fold-const.c: Convert uses of fold (build (...)) to
596         fold_buildN.
597
598 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
599
600         PR rtl-optimization/20249
601         * cse.c (insert_regs): Do not record equivalence of registers in
602         different modes.
603
604 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
605
606         * emit-rtl.c (reverse_comparison): Remove.
607         * rtl.h: Remove the corresponding prototype.
608
609 2005-03-24  James E Wilson  <wilson@specifixinc.com>
610
611         * doc/install.texi (--enable-altivec): Delete docs.
612
613 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
614
615         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
616         SFmode and DFmode before reload when
617         flag_unsafe_math_optimizations not enabled.
618
619 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
620
621         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
622
623         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
624         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
625
626 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
627
628         * configure.ac (enable-checking): Add 'runtime' option.
629         * doc/install.texi (enable-checking): Document 'runtime' checking.
630         * tsystem.h (gcc_assert, gcc_unreachable): Define.
631         * config.in: Regenerated.
632         * configure: Regenerated.
633
634 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
635
636         * optabs.h (enum optab_index): Remove OTI_llrint.
637         (llrint_optab): Remove macro.
638         * optabs.c (init_optabs): Remove llrint_optab initialization.
639         * genopinit.c (optabs): Remove llrint_optab implementation.
640         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
641         using lrint_optab.
642
643 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
644
645         PR rtl-optimization/20532
646         * simplify-rtx.c (simplify_binary_operation_1): Protect from
647         overflow when adding coefficients for PLUS or MINUS.
648         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
649         two as multiplier.
650
651 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
652
653         * langhooks.h (truthvalue_conversion): Remove.
654         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
655         LANG_HOOKS_TRUTHVALUE_CONVERSION.
656         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
657         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
658         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
659
660 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
661
662         * params.def: Fix a typo.
663         * config/mips/mips.c: Follow the spelling convensions.
664         * doc/invoke.texi: Fix typos.
665
666 2005-03-18  Dale Johannese  <dalej@apple.com>
667
668         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
669
670 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
671
672         Fix PR tree-optimization/20601
673
674         * tree-ssa-pre.c (insert_aux): Add missing condition to
675         constification.
676
677 2005-03-23  Ian Lance Taylor  <ian@airs.com>
678
679         * final.c (final_scan_insn): Don't remove no-op instructions.
680         * reload1.c (reload): Remove simple no-op instructions even when
681         not optimizing.
682
683 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
684
685         PR tree-optimization/20501
686         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
687         reporting that peeling for alignment is applied moved to...
688         * (vect_analyze_data_refs_alignment): Here.
689
690 2005-03-23  Ian Lance Taylor  <ian@airs.com>
691
692         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
693
694 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
695
696         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
697         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
698
699 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
700
701         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
702         imply that this is called once, independent of asms in code.
703         Adjust to now being pased output and input lists.  Mention helper
704         function decl_overlaps_hard_reg_set_p.
705         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
706         hook_tree_tree_identity and to take three trees, returning third.
707         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
708         prototype.
709         * stmt.c: include hard-reg-set.h before tree.h.
710         (decl_overlaps_hard_reg_set_p): New function, broken out from...
711         (decl_conflicts_with_clobbers_p): Call
712         decl_overlaps_hard_reg_set_p.
713         (expand_asm_operands): Pass output and input lists in call to
714         targetm.md_asm_clobbers.
715         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
716         hook_tree_tree_tree_tree_3rd_identity.
717         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
718         parameters.
719         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
720         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
721         parameters, first two unused.
722         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
723         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
724         in constraint letters and MOF is not mentioned as a asm-declared
725         register in neither of the input and output lists.
726
727 2005-03-23  DJ Delorie  <dj@redhat.com>
728
729         * optabs.c (expand_binop): Make sure the first subword's result
730         gets stored.
731
732 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
733
734         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
735         Call c_common_truthvalue_conversion rather than
736         lang_hooks.truthvalue_conversion.
737         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
738         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
739         c-typeck.c.
740         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
741         c_common_truthvalue_conversion.
742         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
743         c_parser_conditional_expression, c_parser_binary_expression): Call
744         c_objc_common_truthvalue_conversion.
745         * c-typeck.c (build_unary_op): Call
746         c_objc_common_truthvalue_conversion.
747         (build_conditional_expr): Do not call
748         lang_hooks.truthvalue_conversion.
749         (build_binary_op): Call c_common_truthvalue_conversion.
750         (c_objc_common_truthvalue_conversion): Moved from
751         c-objc-common.c.  Call default_function_array_conversion instead
752         of default_conversion.
753
754 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
755
756         * c-common.h (default_conversion): Remove.
757         (perform_integral_promotions): Add.
758         * c-tree.h (default_conversion): Add.
759         * c-typeck.c (perform_integral_promotions): New, split out from
760         default_conversion.
761         * c-common.c (check_case_value): Use perform_integral_promotions,
762         not default_conversion.
763         (c_add_case_label): Don't continue processing case label after
764         found to be pointer.
765
766 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
767
768         * gcc.c (do_spec_1): Do not add a -L path for a directory in
769         the prefix list if we have already added a multilib directory
770         based on that path.
771         (main): Do not add MD_EXEC_PREFIX to the list of directories to
772         search with -L.
773
774 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
775
776         * reload1.c (indirect_symref_ok, reload_obstack): Make them
777         static.
778         * reload.h: Remove the prototype for indirect_symref_ok.
779
780         * reload1.c (indirect_symref_ok): Make it global.
781         * reload.h: Add a prototype for indirect_symref_ok.
782
783 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
784
785         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
786         ashlhi3 expander.
787
788 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
789
790         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
791
792 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
793
794         * c-opts.c (c_common_parse_file): Only start/end main source file
795         if debug hooks says the writer wants it.
796         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
797         member.
798         (xcoff_debug_hooks): Ditto.
799         * debug.c (do_nothing_hooks): Ditto.
800         * debug.h (gcc_debug_hooks): Ditto.
801         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
802         * sdbout.c (sdb_debug_hooks): Ditto.
803         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
804
805 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
806
807         * doc/extend.texi: Deprecate C++ min/max operators.
808
809 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
810
811         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
812         artificial original candidates.
813
814 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
815             Jan Hubicka  <jh@suse.cz>
816             Steven Bosscher <stevenb@suse.de>
817
818         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
819         call cost based on argument sizes.
820         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
821         inlining.
822         * params.def: (max-inline-inssn-single): Set to 450.
823         (max-inline-insns-auto): Set to 90.
824         (max-inline-insns-recursive): Set to 450
825         (max-inline-insns-recursive-auto): Set to 450.
826         (large-function-insns): Set to 2700.
827         (inline-call-cost): New parameter.
828         * tree-inline.c (estimate_move_cost): New function.
829         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
830         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
831         based on arguments.
832         * tree-inline.h (estimate_move_cost): Declare.
833         * invoke.texi: (max-inline-inssn-single): Change default to 450.
834         (max-inline-insns-auto): Change default to 90.
835         (max-inline-insns-recursive): Change default to 450
836         (max-inline-insns-recursive-auto): Change default to 450.
837         (large-function-insns): Change default to 2700.
838         (inline-call-cost): Document new parameter.
839
840 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
841
842         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
843         (TARGET_DEFAULT): Delete.
844         * config/i860/i860.opt: New file.
845
846 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
847
848         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
849         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
850         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
851         (frv_sched_lookahead): Delete.
852         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
853         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
854         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
855         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
856         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
857         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
858         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
859         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
860         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
861         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
862         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
863         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
864         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
865         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
866         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
867         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
868         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
869         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
870         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
871         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
872         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
873         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
874         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
875         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
876         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
877         (frv_sched_lookahead): Delete.
878         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
879         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
880         (frv_handle_option): New function.  Move -mcpu= handling from...
881         (frv_override_options): ...here.  Remove handling of other
882         TARGET_OPTIONS.
883         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
884         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
885         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
886         and TARGET_NO_MULTI_CE.
887         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
888         !TARGET_VLIW_BRANCH.
889         * config/frv/frv.opt: New file.
890
891 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
892
893         * fold-const.c (fold_ternary): Take decomposed arguments of
894         CALL_EXPR.
895         (fold): Update a call to fold_ternary.
896
897         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
898         * tree.h: Add corresponding prototypes.
899
900 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
901
902         PR target/20561
903         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
904         between jump table and its label.
905         * final.c (shorten_branches): Handle notes in between ADDR_VEC
906         resp. ADDR_DIFF_VEC and the label preceeding it.
907         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
908         is emitted in the right section.
909
910 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
911
912         * fold-const.c (fold_unary, fold_binary): Update comments
913         about arguments.
914
915 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
916
917         PR rtl-optimization/20527
918         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
919         REG_INC note, test that the register also isn't mentioned in PRED
920         or SUCC.
921
922 2005-03-22  Ben Elliston  <bje@au.ibm.com>
923
924         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
925         and definition.
926
927 2005-03-21  Mike Stump  <mrs@apple.com>
928
929         * varasm.c (default_assemble_visibility): Remove extra ().
930
931 2005-03-21  Roger Sayle  <roger@eyesopen.com>
932
933         PR middle-end/20557
934         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
935         to determine whether a block can be duplicated, rather than test
936         whether the block contains noncopyable insns ourselves.
937
938 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
939
940         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
941         predicates.
942
943 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
944
945         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
946
947 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
948
949         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
950         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
951         * config/fr30/fr30.opt: New file.
952
953 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
954
955         Fix PR tree-optimization/20542
956
957         * tree-flow-inline.h (overlap_subvar): Move to here.
958         * tree-ssa-operands.c: From here.
959         * tree-flow.h (overlap_subvar): Declare.
960         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
961         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
962         for variables with subvars.
963
964 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
965
966         PR middle-end/20177
967         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
968         * modulo-sched.c (const_iteration_count): Return on NULL
969         pre-header.
970         (print_node_sched_params): Return on NULL dump_file.
971         (generate_reg_moves): Handle reg-anti dependencies and disregard
972         closing branch when generating register moves.
973         (sms_schedule): Mark the SMSed block dirty.
974         * passes.c (rest_of_handle_sms): Call update_life_info for all
975         basic-blocks.
976         * testsuite/gcc.dg/20050321-1.c: New test.
977
978 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
979
980         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
981         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
982         movqi_internal): Likewise.
983
984 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
985
986         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
987         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
988         xtensa_b4const): Delete prototypes.
989         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
990         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
991         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
992         xtensa_extra_constraint): New prototypes.
993         (add_operand, arith_operand, nonimmed_operand, mem_operand,
994         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
995         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
996         move_operand, const_float_1_operand, fpmem_offset_operand,
997         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
998         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
999         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
1000         argument type to HOST_WIDE_INT.
1001         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
1002         xtensa_mask_immediate): Likewise.
1003         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
1004         Likewise.  Also make these functions static.
1005         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
1006         (xtensa_const_ok_for_letter_p): New.
1007         (add_operand, arith_operand, nonimmed_operand, mem_operand,
1008         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
1009         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
1010         move_operand, const_float_1_operand, fpmem_offset_operand,
1011         branch_operator, ubranch_operator, boolean_operator): Move to
1012         predicates.md.
1013         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
1014         (xtensa_mem_offset): Change return type to bool.
1015         (xtensa_extra_constraint): New.
1016         (gen_int_relational): Update type of const_range_p function pointer.
1017         Use xtensa_b4const_or_zero.
1018         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
1019         xtensa_const_ok_for_letter_p.  Update comments.
1020         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
1021         (PREDICATE_CODES): Delete.
1022         * config/xtensa/xtensa.md: Include predicates.md.
1023         * config/xtensa/predicates.md: New file.
1024
1025 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1026
1027         * config/v850/v850-protos.h: Remove the prototypes for
1028         reg_or_int9_operand, reg_or_const_operand,
1029         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
1030         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
1031         movsi_source_operand, power_of_two_operand,
1032         not_power_of_two_operand, special_symbolref_operand,
1033         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
1034         register_is_ok_for_epilogue.
1035         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
1036         reg_or_int9_operand, reg_or_const_operand,
1037         call_address_operand, special_symbolref_operand,
1038         movsi_source_operand, power_of_two_operand,
1039         not_power_of_two_operand, register_is_ok_for_epilogue,
1040         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
1041         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
1042         predicates.md.
1043         * config/v850/v850.h (PREDICATE_CODES): Remove.
1044         * config/v850/v850.md: Include predicates.md.
1045         * config/v850/predicates.md: New.
1046
1047 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
1048
1049         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
1050         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1051         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
1052         (itoolsdir, itoolsdatadir): Move definition above new first use.
1053         (install-itoolsdirs): New rule.
1054         (install-mkheaders): Depend on install-itoolsdirs, not
1055         install-include-dir.
1056
1057 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1058
1059         * tree-into-ssa.c: Remove obsolete comments.
1060
1061 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
1062
1063         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
1064         unrolling if -fpeel-loops is specified, too.
1065         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1066         Remove superfluous check for flag_unroll_loops.
1067
1068 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
1069
1070         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
1071         (lrint_optab, llrint_optab): Define corresponding macros.
1072         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
1073         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
1074         pattern and llrint_optab using llrintdi2 patterns.
1075         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
1076         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
1077         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
1078         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
1079         flag_unsafe_math_optimizations is set.
1080
1081 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1082
1083         * combine.c (combine_simplify_rtx, simplify_if_then_else,
1084         simplify_logical, if_then_else_cond, known_cond,
1085         simplify_comparison): Adjust calls to reverse_comparison.
1086         Don't use combine_reversed_comparison_code).
1087         (combine_reversed_comparison_code): Remove.
1088         (reversed_comparison): Using reversed_comparison_code, move it...
1089         * jump.c (reversed_comparison): ... here.
1090         * rtl.h (reversed_comparison): Add prototype.
1091
1092 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1093
1094         * builtins.c (fold_builtin): Take decomposed arguments of
1095         CALL_EXPR.
1096         * fold-const.c (fold_ternary): Update a call to fold_builtin.
1097         * gimplify.c (gimplify_call_expr): Likewise.
1098         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
1099         * tree.h: Update the prototype of fold_builtin.
1100
1101 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1102
1103         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
1104         * rtlhooks.c (gen_lowpart_no_emit_general): New.
1105         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
1106         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
1107         * simplify-rtx.c (simplify_binary_operation_1): Use it.
1108
1109 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1110
1111         * builtins.c (fold_builtin_1): Take decomposed arguments of
1112         CALL_EXPR.
1113         (fold_builtin): Update a call to fold_builtin_1.
1114
1115 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1116
1117         PR other/20564
1118         * gcov.c (output_lines): Only output function block summary when
1119         outputting branch information.
1120         * doc/gcov.texi: Document format of preamble and additional block
1121         information lines.
1122
1123 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1124
1125         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
1126         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
1127         the defaults false if BITS_PER_UNIT != 8.
1128         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
1129         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
1130         than BITS_PER_UNIT != 8.
1131         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
1132         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
1133         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
1134         #undefs.
1135         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
1136         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
1137
1138 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1139
1140         PR middle-end/20539
1141         * fold-const.c (fold_binary): Fix type mismatch between
1142         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
1143         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
1144         for non-truth-valued expressions.
1145
1146         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
1147         and FUNCTION_DECL in the main switch.
1148         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1149         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
1150         we also need to convert their operands to match.
1151         <TRUTH_NOT_EXPR>: Likewise.
1152
1153 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
1154
1155         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
1156         diagnostic without checking whether an lvalue.
1157         * c-common.h (lvalue_p): Remove.
1158         (enum lvalue_use): Update comment.
1159         (lvalue_or_else): Replace by lvalue_error.
1160         * c-typeck.c (lvalue_p): Make static.
1161         (lvalue_or_else): New.  Call lvalue_error.
1162
1163 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
1164
1165         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
1166         (function_arg_advance): Use rs6000_parm_start.
1167         (function_arg, rs6000_arg_partial_bytes): Likewise.
1168
1169 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1170
1171         * c-common.c (check_case_value): Adjust comment about stripping
1172         NOPs.
1173         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
1174         * c-typeck.c (default_conversion, convert_arguments,
1175         build_modify_expr, convert_for_assignment, store_init_value,
1176         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
1177         manually.  Remove inaccurate comments.
1178
1179 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1180             Joseph S. Myers  <joseph@codesourcery.com>
1181
1182         * varasm.c (do_assemble_alias): Restore comment describing function.
1183         Annotate the target parameter as potentially unused.
1184
1185 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1186
1187         PR target/18551
1188         * config/avr/avr.c (avr_output_function_prologue): Do not use
1189         current_function_name() in a label, use a local label instead.
1190
1191 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
1192
1193         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1194         flag_finite_math_only, not flag_unsafe_math_optimizations.
1195
1196 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1197
1198         * builtins.c (fold_builtin_1): Update a call to
1199         targetm.fold_builtin.
1200         * hooks.c (hook_tree_tree_bool_null): Rename to
1201         hook_tree_tree_tree_bool_null.  Take one more argument of type
1202         tree.
1203         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1204         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1205         hook_tree_tree_tree_bool_null.
1206         * target.h (gcc_target): Update the prototype of fold_builtin.
1207         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1208         arguments of CALL_EXPR.
1209         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
1210         new prototype.
1211
1212 2005-03-20  Jan Hubicka  <jh@suse.cz>
1213
1214         * cgraph.h (cgraph_node): Add prev_clone pointer.
1215         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1216         (cgraph_clone_node): Produce doubly linked chain.
1217
1218 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1219
1220         * c-common.c (handle_aligned_attribute, check_function_sentinel,
1221         get_nonnull_operand, handle_sentinel_attribute,
1222         check_function_arguments_recurse): Do not strip NOPS from
1223         INTEGER_CSTs.
1224         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1225         Likewise.
1226         * c-format.c (get_constant): Likewise.
1227         * c-parser.c (c_parser_postfix_expression): Likewise.
1228         * c-typeck.c (set_init_index): Likewise.
1229         (convert_arguments): Don't check for NOP_EXPR containing integer
1230         constant.
1231
1232 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1233
1234         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1235         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1236         Take decomposed arguments of CALL_EXPR.
1237         (fold_builtin_1): Update calls to the functions mentioned
1238         above.
1239
1240 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1241
1242         * c-decl.c (check_bitfield_type_and_width): Require bit-field
1243         width to have integer type.
1244         (build_enumerator): Require enumerator value to have integer type.
1245
1246 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1247
1248         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1249         to __builtin_inff.
1250
1251 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1252
1253         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1254         std=iso9899:199x): Correct descriptions.
1255
1256 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1257
1258         * config.gcc: Consistently use solaris2.1[0-9]* instead of
1259         solaris2.1[0-9].
1260
1261 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1262
1263         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1264         of CALL_EXPR.
1265         (expand_builtin_memcpy, fold_builtin_1): Update calls to
1266         fold_builtin_memcpy.
1267
1268         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1269         arguments of CALL_EXPR.
1270         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1271         fold_builtin_found, fold_builtin_1): Update calls to
1272         fold_trunc_transparent_mathfn.
1273
1274 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1275
1276         PR middle-end/20493
1277         * fold-const.c (fold_widened_comparison): Don't optimize casts of
1278         function pointers on targets that require function pointer
1279         canonicalization.
1280         (fold_sign_changed_comparison): Likewise.
1281
1282 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
1283
1284         * combine.c (try_combine): When changing the mode of a hard reg, make
1285         sure that doing so is valid.
1286
1287 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
1288
1289         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1290         (TARGET_HANDLE_OPTION): Override default.
1291         (avr_handle_option): New function.
1292         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1293         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1294         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1295         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1296         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1297         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1298         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1299         (TARGET_OPTIONS): Delete.
1300         * config/avr/avr.opt: New file.
1301
1302 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1303
1304         * config/m32r/m32r-protos.h: Remove the prototypes for
1305         call_address_operand, symbolic_operand, seth_add3_operand,
1306         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1307         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1308         two_insn_const_operand, move_src_operand,
1309         move_double_src_operand, move_dest_operand,
1310         eqne_comparison_operator, signed_comparison_operator,
1311         large_insn_p, conditional_move_operand, carry_compare_operand,
1312         m32r_block_immediate_operand, extend_operand,
1313         reg_or_eq_int16_operand, int8_operand, and
1314         reg_or_zero_operand.
1315         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1316         seth_add3_operand, int8_operand, cmp_int16_operand,
1317         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1318         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1319         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1320         move_double_src_operand, move_dest_operand,
1321         eqne_comparison_operator, signed_comparison_operator,
1322         extend_operand, small_insn_p, large_insn_p,
1323         conditional_move_operand, carry_compare_operand,
1324         m32r_block_immediate_operand): Move to predicates.md.
1325         (MAX_MOVE_BYTES): Move to m32r.h.
1326         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1327         * config/m32r/m32r.md: Include predicates.md.
1328         * config/m32r/predicates.md: New.
1329
1330 2005-03-18  James E Wilson  <wilson@specifixinc.com>
1331
1332         PR c++/19769
1333         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1334         origin.
1335
1336 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1337
1338         * config/mn10300/mn10300-protos.h: Remove the prototypes for
1339         call_address_operand, const_8bit_operand.
1340         * config/mn10300/mn10300.c (call_address_operand,
1341         const_8bit_operand, const_1f_operand): Move to predicates.md.
1342         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1343         * config/mn10300/mn10300.md: Include predicates.md.
1344         * config/mn10300/predicates.md: New.
1345
1346 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
1347
1348         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1349         declarations in diagnostics and %E for identifiers, not %s.
1350
1351 2005-03-18  Jan Hubicka  <jh@suse.cz>
1352             Dale Johannesen  <dalej@apple.com>
1353
1354         * basic-block.h (scale_bbs_frequencies_int,
1355         scale_bbs_frequencies_gcov_type): Declare.
1356         * cfg.c (RDIV): New macro.
1357         (update_bb_frequency_for_threading): Fix.
1358         * basic-block.h (scale_bbs_frequencies_int,
1359         scale_bbs_frequencies_gcov_type): New.
1360         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1361         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1362         scale_bbs_frequencies_int.
1363         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1364
1365 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1366
1367         * config/m32r/m32r-protos.h: Remove the prototypes for
1368         call_address_operand, symbolic_operand, seth_add3_operand,
1369         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1370         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1371         two_insn_const_operand, move_src_operand,
1372         move_double_src_operand, move_dest_operand,
1373         eqne_comparison_operator, signed_comparison_operator,
1374         large_insn_p, conditional_move_operand, carry_compare_operand,
1375         m32r_block_immediate_operand, extend_operand,
1376         reg_or_eq_int16_operand, int8_operand, and
1377         reg_or_zero_operand.
1378         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1379         seth_add3_operand, int8_operand, cmp_int16_operand,
1380         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1381         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1382         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1383         move_double_src_operand, move_dest_operand,
1384         eqne_comparison_operator, signed_comparison_operator,
1385         extend_operand, small_insn_p, large_insn_p,
1386         conditional_move_operand, carry_compare_operand,
1387         m32r_block_immediate_operand): Move to predicates.md.
1388         (MAX_MOVE_BYTES): Move to m32r.h.
1389         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1390         * config/m32r/m32r.md: Include predicates.md.
1391         * config/m32r/predicates.md: New.
1392
1393         * config/pa/pa-protos.h: Add prototypes for magic_milli and
1394         shadd_constant_p.
1395         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1396         symbolic_operand, symbolic_memory_operand,
1397         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1398         indexed_memory_operand, move_dest_operand, move_src_operand,
1399         prefetch_cc_operand, prefetch_nocc_operand,
1400         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1401         arith_operand, arith11_operand, pre_cint_operand,
1402         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1403         ireg_operand, int5_operand, uint5_operand, int11_operand,
1404         uint32_operand, arith5_operand, and_operand, ior_operand,
1405         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1406         pc_or_label_operand, div_operand, plus_xor_ior_operator,
1407         shadd_operand, movb_comparison_operator,
1408         cmpib_comparison_operator): Move to predicates.md.
1409         (magic_milli, shadd_constant_p): Make it extern.
1410         * config/pa/pa.h (PREDICATE_CODES): Remove.
1411         * config/pa/pa.md: Include predicates.md.
1412         * config/pa/predicates.md: New.
1413
1414         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1415         predicate.
1416
1417 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1418
1419         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1420         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1421         config/alpha/freebsd.h, config/alpha/linux.h,
1422         config/alpha/netbsd.h, config/alpha/osf5.h,
1423         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1424         config/h8300/h8300-protos.h, config/h8300/h8300.c,
1425         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1426         doc/cppopts.texi: Update copyright.
1427
1428 2005-03-18  Jan Hubicka  <jh@suse.cz>
1429
1430         PR middle-end/20225
1431         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1432         too late.
1433         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1434         called too late.
1435
1436 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1437
1438         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1439         VEC_safe_push.
1440
1441 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
1442
1443         * combine.c (gen_binary): Remove.
1444         (known_cond, simplify_shift_const, find_split_point,
1445         combine_simplify_rtx, simplify_if_then_else, simplify_set,
1446         simplify_logical, expand_field_assignment, extract_left_shift,
1447         force_to_mode, if_then_else_cond, apply_distributive_law,
1448         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1449         simplify_comparison, reversed_comparison): Replace with
1450         simplify_gen_binary, simplify_gen_relational or
1451         distribute_and_simplify_rtx.
1452         (distribute_and_simplify_rtx): New function.
1453
1454 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
1455             Paolo Bonzini  <gcc.gnu.org>
1456
1457         * calls.c (setjmp_call_p, special_function_p): Update comments
1458         at the head of the functions.
1459
1460 2005-03-18  Jan Hubicka  <jh@suse.cz>
1461
1462         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1463
1464         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1465         function body should be released; do not proactively release function
1466         bodies in non-unit-at-a-time mode.
1467
1468 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
1469
1470         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1471         mno-fp-ret-in-387 multilib variants.
1472
1473 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
1474
1475         * common.opt (m): Remove.
1476         * opts.c (handle_option): Pass 'm' options to set_target_switch if
1477         table lookup fails.
1478         (common_handle_option): Remove OPT_m case.
1479
1480 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1481
1482         * builtins.c (fold_builtin_bitop): Take decomposed arguments
1483         of CALL_EXPR.
1484         (fold_builtin_1): Update a call to fold_builtin_bitop.
1485
1486         * builtins.c (fold_builtin_signbit): Take decomposed arguments
1487         of CALL_EXPR.
1488         (fold_builtin_1): Update a call to fold_builtin_signbit.
1489
1490 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
1491
1492         PR tree-optimization/20474
1493         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1494         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
1495
1496 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1497
1498         * config/h8300/h8300-protos.h: Remove prototypes for
1499         general_operand_src, general_operand_dst, single_one_operand,
1500         single_zero_operand, call_insn_operand,
1501         two_insn_adds_subs_operand, small_call_insn_operand,
1502         jump_address_operand, bit_operand, bit_memory_operand,
1503         stack_pointer_operand, const_int_gt_2_operand,
1504         const_int_ge_8_operand, const_int_qi_operand,
1505         const_int_hi_operand, incdec_operand, bit_operator,
1506         nshift_operator, eqne_operator, gtle_operator,
1507         gtuleu_operator, iorxor_operator.
1508         Add prototypes for h8sx_shift_type h8sx_classify_shift and
1509         h8300_ldm_stm_parallel.
1510         * config/h8300/h8300.c (h8sx_shift_type,): Move to
1511         h8300-protos.h.
1512         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
1513         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
1514         (h8300_ldm_stm_parallel): Make it extern.
1515         (h8300_ldm_parallel, h8300_stm_parallel,
1516         h8300_return_parallel, general_operand_src,
1517         general_operand_dst, h8300_dst_operand, h8300_src_operand,
1518         nibble_operand, reg_or_nibble_operand, single_one_operand,
1519         single_zero_operand, call_insn_operand,
1520         two_insn_adds_subs_operand, small_call_insn_operand,
1521         jump_address_operand, bit_operand, bit_memory_operand,
1522         stack_pointer_operand, const_int_gt_2_operand,
1523         const_int_ge_8_operand, const_int_qi_operand,
1524         const_int_hi_operand, incdec_operand, eqne_operator,
1525         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1526         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1527         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1528         nshift_operator): Move to predicates.md.
1529         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1530         * config/h8300/h8300.md: Include predicates.md.
1531         * config/h8300/predicates.md: New.
1532
1533 2005-03-17  Richard Henderson  <rth@redhat.com>
1534
1535         * config.gcc (ia64*-*-hpux*): Add extra_options.
1536         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1537         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1538         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1539         (ia64_tls_size_string, ia64_tune_string): Remove.
1540         (ia64_tune): Init to PROCESSOR_ITANIUM2.
1541         (TARGET_DEFAULT_TARGET_FLAGS): New.
1542         (TARGET_HANDLE_OPTION): New.
1543         (ia64_override_options): Move options parsing ...
1544         (ia64_handle_option): ... here.  New.
1545         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1546         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1547         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1548         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1549         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1550         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1551         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1552         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1553         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1554         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1555         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1556         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1557         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1558         TARGET_EARLY_STOP_BITS): Remove.
1559         (TARGET_ILP32): Default false.
1560         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1561         (enum ia64_inline_type): New.
1562         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1563         * config/ia64/ia64.md: Update for new definitions of
1564         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1565         * config/ia64/ia64.opt: New file.
1566         * config/ia64/ilp32.opt: New file.
1567
1568 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1569
1570         PR target/18380
1571         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1572
1573 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1574
1575         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1576         instead of MASK_H8300S.
1577         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1578         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1579         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1580         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1581         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1582         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1583         TARGET_SWITCHES): Remove.
1584         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1585         TARGET_H8300SX.
1586         * config/h8300/h8300.opt: New.
1587
1588         * config/alpha/alpha.opt, config/arc/arc.opt,
1589         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1590         notices.
1591
1592 2005-03-17  Ian Lance Taylor  <ian@airs.com>
1593
1594         * gmon.c: Remove.
1595
1596 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
1597
1598         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
1599         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1600         (TARGET_HANDLE_OPTION): Override default.
1601         (arc_handle_option): New function.
1602         (arc_init): Remove code to set arch_cpu_string.
1603         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1604         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1605         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1606         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1607         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1608         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1609         (arc_rodata_string, TARGET_OPTIONS): Delete.
1610         * config/arc/arc.opt: New file.
1611
1612 2005-03-17  Richard Henderson  <rth@redhat.com>
1613
1614         * doc/extend.texi (Weak Pragmas): New section.
1615         (attribute alias): Clarify that target must be in the same
1616         translation unit.
1617
1618 2005-03-17  Richard Henderson  <rth@redhat.com>
1619
1620         * config/alpha/alpha.opt: New file.
1621         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
1622         of alpha_cpu.
1623         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
1624         alpha_fprm_string, alpha_fptm_string): Make static.
1625         (alpha_tls_size_string): Remove.
1626         (alpha_handle_option): New.
1627         (override_options): Update for alpha_cpu/alpha_tune split.
1628         (alpha_file_start): Likewise.
1629         (TARGET_DEFAULT_TARGET_FLAGS): New.
1630         (TARGET_HANDLE_OPTION): New.
1631         * config/alpha/alpha.h (alpha_tune): Declare.
1632         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
1633         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
1634         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
1635         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
1636         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
1637         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
1638         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
1639         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
1640         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
1641         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
1642         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
1643         (TARGET_DEFAULT): Remove MASK_FP.
1644         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
1645         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
1646         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
1647         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
1648         alpha_tls_size_string): Remove.
1649         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
1650         (attribute tune): Rename from attribute cpu.
1651         * config/alpha/ev4.md: Update to match.
1652         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
1653         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
1654         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
1655         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
1656         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
1657         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
1658
1659 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
1660
1661         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
1662         and return without creating new state if before_nops_num is nonzero.
1663         * config/ia64/ia64.md (first_insn): New attribute.
1664         (alloc): Set it to yes.
1665
1666 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1667
1668         * tree-vectorizer.c (new_vec_stmt_info): Initialize
1669         STMT_VINFO_SUBVARS to NULL.
1670         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
1671
1672 2005-03-16 Dale Johannesen  <dalej@apple.com>
1673
1674         * rtlanal.c (find_first_parameter_load):  Rewrite to
1675         return actual first param load or the call if none,
1676         instead of first in block, when not all loads exist.
1677
1678 2005-03-16  Roger Sayle  <roger@eyesopen.com>
1679
1680         * optabs.c (expand_copysign_absneg): Make static.
1681         * optabs.h (expand_copysign_absneg): Delete prototype.
1682         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
1683
1684 2005-03-16  Richard Henderson  <rth@redhat.com>
1685
1686         PR middle-end/15700
1687         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
1688         (alias_pairs): Rename from output_defs.
1689         (find_decl_and_mark_needed): Split out from assemble_alias.
1690         (do_assemble_alias): New.
1691         (assemble_output_def): Remove.
1692         (finish_aliases_1, finish_aliases_2): New.
1693         (process_pending_assemble_output_defs): Remove.
1694         (assemble_alias): Defer aliases for which we don't yet have a
1695         non-external decl for the target symbol.
1696         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
1697         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
1698         * toplev.c (compile_file): Use finish_aliases_2 instead of
1699         process_pending_assemble_output_defs.
1700         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
1701         (process_pending_assemble_output_defs): Remove.
1702
1703 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1704
1705         Fix PR tree-optimization/20489
1706
1707         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
1708         for empty structures.
1709
1710 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
1711
1712         Fix PR tree-optimization/20490
1713
1714         * tree-ssa-pre.c (create_expression_by_pieces): Use
1715         force_gimple_operand on result of fold.
1716
1717 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
1718
1719         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
1720         of closing parenthesis.
1721
1722 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
1723
1724         * builtins.c (expand_movstr): Update a call to
1725         fold_builtin_strcpy.
1726         (expand_builtin_strncpy): Update a call to
1727         fold_builtin_strncpy.
1728         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
1729         arguments of CALL_EXPR.
1730         (fold_builtin_1): Update calls to fold_builtin_strcpy and
1731         fold_builtin_strncpy.
1732         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1733         * tree.h: Update the prototypes of fold_builtin_strcpy and
1734         fold_builtin_strncpy.
1735
1736 2005-03-16  Steven Bosscher  <stevenb@suse.de>
1737             Dorit Naishlos  <dorit@il.ibm.com>
1738
1739         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
1740         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
1741         error.
1742
1743 2005-03-16  Steven Bosscher  <stevenb@suse.de>
1744
1745         * tree-inline.c (walk_type_fields, walk_tree,
1746         walk_tree_without_duplicates): Move from here...
1747         * tree.c: ...to here.
1748
1749 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
1750
1751         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
1752         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
1753         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1754         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
1755         (version): Define using $(BASEVER_c).
1756         (Makefile, config.status, build/gcov-iov.o): No longer depends on
1757         version.c.
1758         (version.o): Depend on version files; add custom generation command.
1759         (prefix.o): Define BASEVER on command line.
1760         (s-iov): Depend on version files; adjust command.
1761         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
1762         Add gcc-vers.texi.
1763         (gcc-vers.texi): New rule.
1764         (doc/%.info, doc/%.dvi): Add -I . to command line.
1765         (doc/gccinstall.dvi): Likewise.
1766         (PACKAGE): Delete.  All uses replaced with "gcc".
1767         * aclocal.m4: Do not include gcc-version.m4.
1768         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
1769         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
1770         Set is_release based on contents of DEV-PHASE.
1771         Set gcc_version based on contents of BASE-VER.
1772         Define WIN32_REGISTRY_KEY only if the user overrode the default.
1773         * config.in, configure: Regenerate.
1774         * gccbug.in: Determine version of GCC in use at runtime.
1775         * gcov-iov.c: Get version number and development phase from
1776         command line, not by including version.c.
1777         * intl.c: Replace all uses of PACKAGE with "gcc".
1778         * libada-mk.in: Delete unused "gcc_version" variable.
1779         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
1780         * version.c: (VERSUFFIX): New hook for redistributors; adjust
1781         commentary to match.
1782         (version_string): Put together from pieces.
1783         * config/alpha/x-vms: Do not use $(gcc_version).
1784         * config/i386/t-nwld: Likewise.
1785         * doc/include/gcc-common.texi: Include gcc-vers.texi for
1786         version-GCC and DEVELOPMENT.
1787
1788 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1789
1790         PR tree-optimization/17454
1791         * tree.c (tree_size): Add case for TREE_BINFO.
1792         * fold-const.c (fold_checksum_tree): Only clear the overloaded
1793         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
1794
1795 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1796
1797         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
1798         op1 whilst expanding the signed widenening multiply variant.
1799
1800 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
1801
1802         * toplev.c (display_target_options): Avoid unused variable warning if
1803         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
1804         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
1805         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
1806         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
1807         (mips_isa_info): New variable.
1808         (mips_parse_cpu): Remove the first argument and leave the caller
1809         to report errors.
1810         (TARGET_HANDLE_OPTION): Override default.
1811         (mips_handle_option): New function.  Move option validation code from...
1812         (override_options): ...here.  Update calls to mips_parse_cpu.
1813         * config/mips/mips.h (mips_arch_string, mips_tune_string)
1814         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
1815         (SUBTARGET_TARGET_OPTIONS): Delete.
1816         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
1817         (mno-flush-func, mtune=): New options.
1818
1819 2005-03-15  Roger Sayle  <roger@eyesopen.com>
1820             Richard Henderson  <rth@redhat.com>
1821
1822         * real.c (c4x_single_format, c4x_extended_format): Provide values
1823         for signbit_ro for c4x's single and extended floating point formats.
1824         * optabs.c (expand_copysign): Use the floating point format's
1825         signbit_ro for expanding via expand_copysign_absneg, and it's
1826         signbit_rw field for expanding via expand_copysign_bit.
1827
1828 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
1829
1830         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
1831         known_alignment_for_access_p.
1832         (known_alignment_for_access_p): New.
1833         (do_peeling_for_alignment): Field made int instead of bool and renamed
1834         to peeling_for_alignment.
1835         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
1836         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
1837         functionality used to be in vect_analyze_operations.
1838         (vect_analyze_operations): Code to determine vectorization factor was
1839         moved to vect_determine_vectorization_factor.
1840         (vect_enhance_data_refs_alignment): Update to correct alignment when it
1841         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
1842         factor.
1843         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
1844         be part of vect_analyze_operations).
1845         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
1846         creating the guard condition, as the number of iterations may be
1847         constant.
1848         (slpeel_tree_peel_loop_to_edge): Use new name of
1849         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
1850         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
1851         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
1852         (vect_do_peeling_for_alignment): Use fold.
1853         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
1854
1855         (vect_update_inits_of_dr): Renamed to
1856         vect_update_init_of_dr.
1857         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
1858         (vectorizable_store): Fix assertion to use == instead of =.
1859
1860 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
1861
1862         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
1863         call_used_regs for wCG registers.
1864
1865 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
1866
1867         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
1868         for non-offsettable memory references to cope with outstanding reload
1869         replacements, take 2.
1870
1871 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
1872
1873         PR target/18668
1874         * config/i386/i386.h (x86_fisttp): New.
1875         (TARGET_FISTTP): New macro.
1876         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
1877         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
1878         instruction when fisttp flag is set.
1879         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
1880
1881         * config/i386/i386.md (type attribute): Add fisttp.
1882         (unit attribute): Set to i387 for fisttp type.
1883         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
1884         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
1885         TARGET_FISTTP.
1886         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
1887         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
1888         macros.
1889         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
1890         patterns for TARGET_FISTTP.  Enable patterns for
1891         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
1892         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
1893         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
1894         implement fisttp x87 insn.
1895         (fix_trunc*_i387_fisttp splitters): New patterns.
1896         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
1897         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
1898         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
1899         clobber.
1900         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
1901         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
1902         Implement using mode macros. Disable patterns for TARGET_FISTTP.
1903         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
1904         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
1905         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
1906         Disable patterns for TARGET_FISTTP.
1907         (fix_trunc*_i387 splitters): Implement usign mode macros.
1908         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
1909         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
1910         (fix_trunx*_sse peephole2s): Implement using mode macros.
1911
1912 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
1913
1914         PR rtl-optimization/20291
1915         * combine.c (try_combine): If splitting fails, re-try with
1916         original combined pattern, i.e. before clobber stripping.
1917
1918 2005-03-14  Eric Christopher  <echristo@redhat.com>
1919
1920         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
1921         STACK_GROWS_DOWNWARD.
1922
1923 2005-03-14  Roger Sayle  <roger@eyesopen.com>
1924
1925         * real.h (struct real_format): Split the signbit field into two
1926         two fields, signbit_ro and signbit_rw.
1927         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
1928         mips_double_format, ieee_extended_motorola_format,
1929         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
1930         ieee_extended_intel_128_format, ibm_extended_format,
1931         mips_extended_format, ieee_quad_format, mips_quad_format,
1932         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
1933         i370_double_format, c4x_single_format, c4x_extended_format,
1934         real_internal_format): Update initializers for new field.
1935         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
1936         real_format structure.
1937         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
1938         field of the real_format structure.
1939
1940 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
1941
1942         Fix PR tree-optimization/20458
1943
1944         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
1945         DECL_EXTERNAL on STRUCT_FIELD tags.
1946         (clear_call_clobbered): Ditto.
1947         * tree-ssa-operands.c (note_addressable): Make sure the original
1948         variable doesn't slip into the addressable list if we have
1949         subvars.
1950         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
1951         tags too.
1952
1953 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
1954
1955         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
1956         (-fwide-exec-charset): Likewise.
1957         (-finput-charset): Likewise.
1958         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
1959         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
1960         * c.opt (Wnormalized): New.
1961
1962 2005-03-14  Devang Patel  <dpatel@apple.com>
1963
1964         * doc/invoke.texi: Add reference to Visibility document.
1965
1966 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
1967
1968         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
1969         MASK_SPLIT_ADDRESSES.
1970         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
1971         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
1972         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
1973         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
1974         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
1975         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
1976         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
1977         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
1978         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
1979         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
1980         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
1981         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
1982         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
1983         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
1984         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
1985         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
1986         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
1987         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
1988         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
1989         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
1990         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
1991         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
1992         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
1993         (TARGET_EXPLICIT_RELOCS): Delete.
1994         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
1995         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
1996         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
1997         (override_options): Set MASK_LONG64 if -mint64 is given and no
1998         -mlongXX option is.  Complain about -mint64 -mlong32.
1999         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
2000         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
2001         * config/mips/mips.opt: New file.
2002
2003 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
2004
2005         * config.gcc (extra_options): New variable for listing option files.
2006         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
2007         * configure.ac (extra_opt_files): New AC_SUBST variable.
2008         (tm_file_list, tm_include_list): Include options.h first.
2009         * configure: Regenerate.
2010         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
2011         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
2012         (s-options-h): New rule.
2013         (options.h): Depend on it.
2014         (TEXI_GCCINT_FILES): Add options.texi.
2015         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
2016         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
2017         * target.h (gcc_target): Add default_target_flags and handle_option.
2018         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
2019         (TARGET_HANDLE_OPTION): New macros.
2020         (TARGET_INITIALIZER): Include them.
2021         * opt-functions.awk (opt_args, nth_arg): New functions.
2022         (switch_flags): Handle the "Target" flag.
2023         (var_args): Delete.
2024         (var_name): Use opt_args and nth_arg.
2025         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
2026         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
2027         macros for the "Mask" and "InverseMask" options.
2028         * opts.h (cl_var_cond): New enum.
2029         (cl_option): Replace the "has_set_value" and "set_value" fields with
2030         "var_cond" and "var_value".
2031         (CL_TARGET): New macro.
2032         (option_enabled, print_filtered_help): Declare.
2033         (decode_options): Move definition.
2034         * opts.c (handle_option): Search for the original option before
2035         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
2036         var_cond and var_value fields.  Use targetm.handle_option to handle
2037         target options.
2038         (decode_options): Set target_flags to targetm.default_target_flags.
2039         (print_filtered_help): Make global.  Handle CL_TARGET.
2040         (option_enabled): New function.
2041         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
2042         (display_target_options, set_target_switch, print_switch_values)
2043         (default_pch_valid_p): Guard uses of target_switches with
2044         #ifdef TARGET_SWITCHES.  Also...
2045         (display_target_options): Display the CL_TARGET entries in cl_options.
2046         (set_target_option): Don't complain about the "" option when
2047         TARGET_SWITCHES is undefined.
2048         (print_switch_values): Use option_enabled.
2049         (default_pch_valid_p): Check cl_options[] when looking for something
2050         that has changed the value of target_flags.
2051         * c.opt: Remove documentation from top of file.
2052         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
2053         * doc/sourecebuild.texi: Refer to the new options documentation
2054         instead of c.opt.  Document machine-specific .opt files.
2055         * doc/tm.texi (target_flags): Say that this variable is declared
2056         by options.h.
2057         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
2058         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
2059         an alternative.
2060         * doc/options.texi: New file.
2061
2062 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2063
2064         PR middle-end/18628
2065         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
2066         register.
2067
2068 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2069
2070         PR c++/20280
2071         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
2072         temporary variable of pointer type if an lvalues is required.
2073         (gimplify_modify_expr_rhs): Request an rvalue from it.
2074         (gimplify_expr): Pass fallback on.
2075
2076 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2077
2078         * cfgbuild.c: Update comments.
2079
2080 2005-03-14  Roger Sayle  <roger@eyesopen.com>
2081
2082         PR rtl-optimization/17236
2083         * optabs.c (expand_doubleword_mult): New helper function split out
2084         from expand_binop.  Permute the order in which instructions are
2085         emitted to minimize the number of simultaneously live registers.
2086         (expand_binop): Call expand_doubleword_mult to synthesize a double
2087         word multiplication.
2088
2089 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2090
2091         * basic-block.h: Update the prototypes of cached_make_edge and
2092         rtl_make_eh_edge.
2093         * cfg.c (cached_make_edge): Take edge_cache representing one
2094         row of the adjacency matrix of edges.
2095         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
2096         (make_edges): Initialize edge_cache to represent one row of
2097         the adjacency matrix of edges.
2098
2099 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2100
2101         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
2102         New functions.
2103         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
2104         Remove unused removed_phis variable.
2105         (conditional_replacement): Use build1/build2.
2106         (abs_replacement): Use last_and_only_stmt and build1/build2.
2107
2108 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2109
2110         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
2111         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
2112         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
2113         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
2114         * c-common.c (handle_novops_attribute): New function.
2115         (c_common_attribute_table): Add "no vops" entry.
2116         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
2117         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
2118         * tree-ssa-operands.c (get_call_expr_operands): Do not
2119         create virtual operands for calls with ECF_NOVOPS flag.
2120         * tree.h (DECL_IS_NOVOPS): New macro.
2121         (struct tree_decl): Add novops_flag.
2122         (ECF_NOVOPS): New constant.
2123
2124 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
2125
2126         PR target/17688
2127         * config/i386/i386.c (x86_use_himode_fiop): New.
2128         (x86_use_simode_fiop): Rename from x86_use_fiop.
2129         * config/i386/i386.h (x86_use_himode_fiop): Declare.
2130         (TARGET_USE_HIMODE_FIOP): New.
2131         (x86_use_simode_fiop): Rename from x86_use_fiop.
2132         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
2133
2134         * config/i386/i386.md (X87MODEI12): New mode macro define.
2135         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
2136         to implement x87 FP compare with HImode input operands.
2137         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
2138         Use X87MODEI12 mode macro to handle HImode input operands.
2139         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
2140         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
2141         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
2142         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
2143         macro to implement x87 operators with HImode input operands.
2144         (fop splitters): Use X87MODEI12 mode macro to handle HImode
2145         input operands.
2146
2147 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2148
2149         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
2150         integer_zerop.
2151         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
2152         constants invariant.
2153
2154 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2155
2156         * basic-block.h (BB_VISITED): Removed.
2157         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
2158
2159 2005-03-14  Falk Hueffner  <falk@debian.org>
2160
2161         PR bootstrap/20424
2162         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
2163
2164 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2165
2166         * ggc-zone.c: Fix comment typos.
2167
2168         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
2169         stringpool.c, config/mips/mips-protos.h: Update copyright.
2170
2171 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2172
2173         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
2174         throughout with its typedef, "rtx".
2175         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
2176         (rs6000_tls_symbol_ref_1): Remove inline keyword.
2177         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
2178         regs in comment to match code.
2179
2180 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2181
2182         * except.c (check_handled): Make it static.
2183         * except.h: Remove the corresponding prototype.
2184
2185         * function.c (get_func_frame_size): Make it static.
2186         * function.h: Remove the corresponding type.
2187
2188         * regclass.c (reg_class_superclasses, reg_class_subclasses):
2189         Make them static.
2190         * hard-reg-set.h: Remove the corresponding declarations.
2191
2192         * tree-cfg.c (verify_stmts): Check that
2193         bb_for_stmt (stmt) == bb for every PHI node and statement.
2194
2195 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2196
2197         * config.gcc: Remove excess indentation.
2198         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2199
2200 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2201
2202         PR middle-end/19331
2203         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2204         * fold-const.c (fold_sign_changed_comparison): Likewise.
2205         (fold_binary): Optimize comparisons against widened operands if
2206         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2207
2208 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2209
2210         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2211         (sparc_override_options): Initialize it.
2212         (sparc_struct_value_rtx): Set it on the MEM to be returned.
2213
2214 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
2215
2216         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2217         (reg_or_none500mem_operand): New predicate.
2218         (zero_reg_mem_operand): New predicate.
2219         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2220         to reg_or_none500mem_operand.
2221         (extendsfdf2_fpr): Add MEM alternative.
2222         (extenddftf2_internal): Change operand2 predicate to
2223         zero_reg_mem_operand.
2224
2225 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2226
2227         * ggc-zone.c: Rewritten.
2228
2229         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2230         if there are none.
2231         * configure.ac: Define GGC_ZONE for --with-gc=zone.
2232         * config.in: Regenerated.
2233         * configure: Regenerated.
2234         * gengtype.c (write_types_process_field, write_func_for_structure):
2235         Pass new argument to gt_pch_note_object.
2236         * ggc-common.c (struct ptr_data): Add TYPE.
2237         (gt_pch_note_object): Take TYPE argument and save it.
2238         (call_count): Update call to ggc_pch_count_object.
2239         (call_alloc): Update call to ggc_pch_alloc_object.
2240         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2241         file.
2242         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2243         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2244         (ggc_alloc_zone_stat): Delete.
2245         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2246         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2247         (ggc_pch_alloc_object): Update prototypes.
2248         (garbage_zone): Delete.
2249         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2250         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
2251         pointers.
2252         (tree_id_zone): New variable.
2253         (ggc_alloc_cleared_zone): Remove unused.
2254         (ggc_alloc_zone): Define.
2255         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2256         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2257         ggc_alloc_zone_stat.
2258         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2259         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2260         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2261         (make_node_stat): Likewise.  Use tree_id_zone.
2262
2263 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2264             Joseph S. Myers  <joseph@codesourcery.com>
2265
2266         * configure.ac: Check for MIPS TLS.
2267         * configure: Regenerated.
2268         * config/mips/mips-protos.h (enum mips_symbol_type): Add
2269         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2270         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2271         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2272         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2273         (mips_classify_symbol, mips_symbolic_constant_p)
2274         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2275         (mips_tls_operand_p, mips_call_tls_get_addr)
2276         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2277         (mips_tls_symbol_ref_1): New functions.
2278         (mips_legitimize_address, mips_legitimize_const_move): Call
2279         mips_legitimize_tls_address.
2280         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
2281         for MIPS16.
2282         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2283         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2284         (mips_char_to_class): Document V1_REG.
2285         (HAVE_AS_TLS): Provide default.
2286         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2287         constants.
2288         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
2289         !TARGET_ABICALLS.
2290         (tls_get_tp_<mode>): New instruction.
2291
2292 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2293
2294         * configure.ac: Update checks for target tools.
2295         * configure: Regenerated.
2296
2297 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2298
2299         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2300
2301 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2302
2303         * expmed.c (expand_mult): Use synthetic multiplication sequences for
2304         more classes of DImode multiplication by constant.  Allow both
2305         multiplication by small negative constants (by performing a
2306         multiplication by a positive constant and negating the result) and
2307         multiplications by large powers of two, by using a left shift.
2308
2309 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2310
2311         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2312         of basic blocks into work_stack.
2313
2314         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2315         config/mips/vr.h: Update copyright.
2316
2317         * c-decl.c (c_init_decl_processing): Remove useless calls to
2318         build_function_type.
2319
2320         * builtins.c (fold_trunc_transparent_mathfn,
2321         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2322         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2323         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2324         fold_builtin_strcpy, fold_builtin_strncpy,
2325         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2326         TREE_TYPE (exp).
2327
2328         * builtins.c (expand_builtin_mathfn_3): Remove local variable
2329         before_call.
2330
2331         * lambda-code.c (lambda_compute_auxillary_space): Remove local
2332         variable determinant.
2333
2334         * tree-cfg.c (group_case_labels): Remove local variable type.
2335
2336         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2337         variable ann.
2338
2339         * tree-ssa-phiopt.c (value_replacement): Remove local variable
2340         result.
2341
2342 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2343
2344         PR target/18251
2345         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2346         (*movmemqi_insn): Delete.
2347         (*movmemhi): Delete.
2348
2349 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2350
2351         * builtins.c (fold_builtin_classify): Take decomposed
2352         arguments of CALL_EXPR.
2353         (fold_builtin_1): Update a call to fold_builtin_classify.
2354
2355 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
2356
2357         PR c/20402
2358         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2359         through into call to parser_xref_tag after parse error.
2360         (c_parser_struct_declaration): Consistently return NULL_TREE on
2361         error.
2362
2363 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
2364
2365         * tree-flow-inline.h (ref_contains_array_ref): New function.
2366         (lookup_subvars_for_var): Ditto.
2367         (get_subvars_for_var): Ditto.
2368         (var_can_have_subvars): Ditto.
2369
2370         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2371         (struct subvar): New type.
2372
2373         * tree-dfa.c (okay_component_ref_for_subvars): New function.
2374
2375         * tree-optimize.c (init_tree_optimization_passes): Call
2376         pass_create_structure_vars.
2377
2378         * tree-ssa-alias.c: Include vec.h.
2379         (init_alias_info): Don't auto-clear call clobbered on struct-field
2380         tags.
2381         (compute_flow_insensitive_aliasing): Handle subvars.
2382         (group_aliases): Handle STRUCT_FIELD aliases.
2383         (setup_pointers_and_addressables): Ditto.
2384         Don't mark variables non-addressable if they still have
2385         addressable subvars.
2386         Also mark subvars addressable when the real variable is marked
2387         addressable.
2388         (add_pointed_to_var): Try to prune the pointed-to set by only
2389         pointing to subvars when possible.
2390         Otherwise, make sure we set addresses_needed and pt_vars to
2391         properly include subvars.
2392         (bitpos_of_field): New function.
2393         (push_fields_onto_fieldstack): Ditto.
2394         (get_or_create_used_part_for): Ditto.
2395         (create_overlap_variables_for): Ditto.
2396         (find_used_portions): Ditto.
2397         (create_structure_vars): Ditto.
2398         (pass_create_structure_vars): New structure.
2399
2400         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2401         (get_expr_operands): Handle subvars.  Also try to turn
2402         COMPONENT_REF accesses into must-defs now that we can accurately
2403         portray it.
2404         (note_addressable): Try to only mark as addressable those subvars
2405         we know a COMPONENT_REF touches.
2406         (overlap_subvar): New function.
2407
2408         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2409         Handle subvar storing.
2410         (vect_address_analysis): Update caller of vect_object_analysis.
2411
2412         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2413
2414         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2415         (STMT_VINFO_SUBVARS): New macro.
2416
2417         * common.opts: add flag_tree_salias.
2418
2419         * opts.c (decode_options): flag_tree_salias defaults to on.
2420
2421         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2422
2423         * doc/tree-ssa.texi: Document structural alias analysis.
2424
2425 2005-03-12  Steven Bosscher  <stevenb@suse.de>
2426
2427         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2428         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2429         * tree-ssa-operands.c (get_expr_operands): Likewise.
2430         (get_expr_operands): Likewise for ERROR_MARK.
2431
2432 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
2433
2434         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2435         var.
2436
2437         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2438         removed_phis.
2439
2440         * tree-ssa-pre.c (compute_avail): Remove local variable val.
2441         (mark_operand_necessary): Remove local variable ver.
2442
2443         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2444         variable prefix_len.
2445
2446         * value-prof.c (mod_subtract_transform): Remove local variable
2447         value.
2448
2449         * builtins.c (fold_builtin_exponent): Take decomposed
2450         arguments of CALL_EXPR.
2451         (fold_builtin_1): Update a call to fold_builtin_exponent.
2452
2453         * builtins.c (fold_builtin_logarithm): Take decomposed
2454         arguments of CALL_EXPR.
2455         (fold_builtin_1): Update a call to fold_builtin_logarithm.
2456
2457         * c-decl.c (c_init_decl_processing): Remove local variables
2458         ptr_ftype_void and ptr_ftype_ptr.
2459
2460         * gimplify.c (gimplify_expr): Remove local variables r0 and
2461         r1.
2462
2463         * reg-stack.c (move_for_stack_reg): Remove local variable
2464         push_insn.
2465         (compare_for_stack_reg): Remove local variable flags_user.
2466         (convert_regs_1): Remove local variable deleted.
2467
2468         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2469         variable new_cond.
2470         (combine_blocks): Remove local variables exits and new_e.
2471
2472         * tree-inline.c (expand_call_inline): Remove local variable
2473         decl.
2474
2475         * tree-ssa-live.c (create_ssa_var_map,
2476         calculate_live_on_entry): Remove local variable snn.
2477
2478 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
2479
2480         * c-lex.c (c_lex_with_flags): Add parameter to call to
2481         cpp_spell_token.
2482
2483 2005-03-11  Per Bothner  <per@bothner.com>
2484
2485         * c-tree.h (struct c_declarator): New id_loc field.
2486         * c-pragma.h (c_lex_with_flags): Take position reference.
2487         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2488         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2489         (c_lex): Pass dummy location to c_lex_with_flags.
2490         * c-parser.c (c_lex_one_token): Set c_token's location using
2491         c_lex_with_flags, instead of input_location, which might be "ahead".
2492         (c_parser_direct_declarator): Set declarator's id_loc from
2493         c_token's id_loc.
2494         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
2495         declarator's id_loc, rather than probably-imprecise input_location.
2496         (build_id_declarator): Initialize c_declarator's id_loc field.
2497
2498 2005-03-11  Roger Sayle  <roger@eyesopen.com>
2499
2500         PR middle-end/20419
2501         * builtins.c (expand_builtin_signbit): Force the signbit's word
2502         into an integer register to avoid SUBREGs of floating point modes.
2503
2504 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
2505
2506         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
2507         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
2508         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
2509         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2510
2511 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
2512
2513         PR rtl-optimization/20306
2514         * expr.c (emit_move_complex): Set try_int false if mode is
2515         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
2516         emit_block_move if try_int is true.
2517
2518 2005-03-11  Richard Henderson  <rth@redhat.com>
2519
2520         PR target/20415
2521         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2522         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2523         to match.
2524
2525 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
2526
2527         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2528         (TARGET_FIX_VR4130): New macro.
2529         (TARGET_OPTIONS): Add -mfix-vr4130.
2530         (ISA_HAS_MACCHI): New macro.
2531         (ASM_SPEC): Add -mfix-vr4130.
2532         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2533         (override_options): Handle mips_fix_vr4130_string.
2534         (mips_avoid_hazards): Clear all_noreorder_p
2535         if we're working around VR4130 errata and the macc alternatives
2536         are not available.
2537         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2538         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2539         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2540         (MULTILIB_DEFAULTS): Remove leading "march=".
2541         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
2542         if no architecture option is given.
2543         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2544         VR4130 multilibs.
2545         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2546         * doc/invoke.texi: Document -mfix-vr4130.
2547
2548 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
2549
2550         * config/mips/mips.c (override_options): Only warn about -mint64
2551         deprecation if TARGET_INT64.
2552
2553 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2554
2555         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2556         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2557         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2558         are non-specific regarding the nonnull parameter positions.
2559         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2560         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2561         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2562         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2563
2564         * builtins.def: Use the non-specific "nonnull" attibute lists.
2565
2566 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
2567
2568         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2569         single_pred_edge, single_succ, single_pred): Improve comments.
2570
2571 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
2572
2573         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2574         single_pred_edge, single_succ, single_pred): New inline functions.
2575         * bb-reorder.c (rotate_loop, find_traces_1_round,
2576         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2577         duplicate_computed_gotos): Use the single_succ/pred functions.
2578         * cfganal.c (forwarder_block_p): Ditto.
2579         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2580         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2581         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2582         merge_seq_blocks): Ditto.
2583         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2584         * cfglayout.c (fixup_reorder_chain): Ditto.
2585         * cfgloop.c (mark_single_exit_loops, update_latch_info,
2586         canonicalize_loop_headers, verify_loop_structure): Ditto.
2587         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2588         mfb_update_loops, create_preheader, force_single_succ_latches,
2589         create_loop_notes): Ditto.
2590         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2591         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2592         commit_one_edge_insertion, purge_dead_edges,
2593         cfg_layout_can_merge_blocks_p): Ditto.
2594         * except.c (sjlj_emit_function_enter): Ditto.
2595         * flow.c (init_propagate_block_info): Ditto.
2596         * function.c (thread_prologue_and_epilogue_insns): Ditto.
2597         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2598         insert_insn_end_bb): Ditto.
2599         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2600         find_if_case_2): Ditto.
2601         * lambda-code.c (perfect_nestify): Ditto.
2602         * lcm.c (optimize_mode_switching): Ditto.
2603         * loop-doloop.c (doloop_modify): Ditto.
2604         * loop-init.c (loop_optimizer_init): Ditto.
2605         * loop-iv.c (simplify_using_initial_values): Ditto.
2606         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2607         * loop-unswitch.c (unswitch_loop): Ditto.
2608         * modulo-sched.c (generate_prolog_epilog): Ditto.
2609         * predict.c (combine_predictions_for_insn, estimate_probability,
2610         tree_estimate_probability, last_basic_block_p,
2611         estimate_bb_frequencies): Ditto.
2612         * profile.c (branch_prob): Ditto.
2613         * regrename.c (copyprop_hardreg_forward): Ditto.
2614         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
2615         * tracer.c (layout_superblocks): Ditto.
2616         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
2617         cfg_remove_useless_stmts_bb, cleanup_control_flow,
2618         cleanup_control_expr_graph, disband_implicit_edges,
2619         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
2620         tree_verify_flow_info, tree_make_forwarder_block,
2621         tree_forwarder_block_p, remove_forwarder_block,
2622         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
2623         * tree-if-conv.c (tree_if_conversion): Ditto.
2624         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
2625         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
2626         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
2627         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
2628         copy_loop_headers): Ditto.
2629         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
2630         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
2631         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
2632         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
2633         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
2634         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
2635         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
2636         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
2637         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
2638         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
2639         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
2640         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
2641         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
2642         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
2643         slpeel_add_loop_guard): Ditto.
2644
2645 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
2646
2647         PR tree-optimization/15784
2648         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
2649         and -1 - A to ~A.
2650
2651         * stmt.c (expand_case): Don't change index_type.  Convert minval
2652         to the proper type.
2653
2654         PR tree-optimization/20130
2655         * fold-const.c (fold): Fold x * -1 into -x.
2656
2657 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2658
2659         PR rtl-optimization/20331
2660         * rtlanal.c (modified_between_p): Check its address first for MEM.
2661         (modified_in_p): Likewise.
2662
2663 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
2664
2665         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
2666
2667 2005-03-10  Steven Bosscher  <stevenb@suse.de>
2668
2669         * expr.c (expand_expr_real_1): If possible, use a conditional
2670         move for expanding MIN_EXPR and MAX_EXPR.
2671         Use temp for moving around rtx-en.
2672
2673 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
2674
2675         PR rtl-opt/20412
2676         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
2677         correct mode.
2678
2679 2005-03-10  Roger Sayle  <roger@eyesopen.com>
2680
2681         * builtins.c (expand_builtin_signbit): Extend to handle floating
2682         point modes wider than the largest integer type, using the
2683         operand_subword_force function to obtain the signbit's word.
2684
2685 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
2686
2687         PR target/20322
2688         * combine.c (try_combine): If recog_for_combine added CLOBBERs
2689         to NEWI2PAT, fail to combine if they are used by NEWPAT.
2690
2691 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
2692
2693         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
2694
2695 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
2696
2697         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
2698         type void.
2699         (perform_edge_inserts): Unconditionally call
2700         free_dominator_info.
2701
2702         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
2703
2704 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
2705
2706         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
2707
2708 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
2709
2710         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
2711
2712         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
2713         gcc_unreachable.
2714         (rtl_register_value_prof_hooks,
2715         tree_value_profile_transformations,
2716         tree_register_value_prof_hooks): Likewise.
2717         * var-tracking.c (stack_adjust_offset_pre_post,
2718         variable_htab_free, variable_union, dataflow_set_different_2,
2719         count_uses, variable_was_changed, set_frame_base_location,
2720         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
2721         vt_add_function_parameters): Likewise.
2722         * varasm.c (named_section_real, named_section, make_decl_rtl,
2723         asm_emit_uninitialised, assemble_integer, decode_addr_const,
2724         const_hash_1, compare_constant, copy_constant, force_const_mem,
2725         output_constant_pool_2, output_constant_pool_1, output_constant,
2726         output_constructor, make_decl_one_only, decl_tls_model,
2727         default_no_named_section, default_elf_select_section_1,
2728         default_unique_section_1): Likewise.
2729         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
2730         * vmsdbgout.c (addr_const_to_string): Likewise.
2731
2732         PR c++/20375
2733         * function.c (struct assign_parm_data_one): Remove last_named
2734         field.
2735         (assign_parm_find_data_types): Don't determine last_named.
2736         Reorder named_parm determination.
2737         (assign_parms): Only setup varargs on the last non-varadic
2738         parameter.
2739
2740 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
2741
2742         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
2743         sda base address on medium model.
2744
2745 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
2746
2747         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
2748         * cfgloop.c (flow_loop_nodes_find): Export.
2749         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
2750         Declare.
2751         * cfgloopmanip.c (fix_loop_structure): New function.
2752         * predict.c (predict_loops): Clean up the loops information.
2753         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
2754         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
2755         loop structure.
2756         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
2757         (rewrite_into_loop_closed_ssa): Declaration changed.
2758         * tree-loop-linear.c (linear_transform_loops): Add argument to
2759         rewrite_into_loop_closed_ssa call.
2760         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
2761         * tree-ssa-loop-im.c (move_computations): Ditto.
2762         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
2763         * tree-vectorizer.c (vectorize_loops): Ditto.
2764         * tree-optimize.c: Include cfgloop.h.
2765         (execute_todo): Choose whether to call cleanup_tree_cfg or
2766         cleanup_tree_cfg_loop.
2767         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
2768         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
2769         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
2770         cleanup_tree_cfg_loop call.
2771         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
2772         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
2773         work on part of cfg.
2774
2775 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
2776
2777         PR inline-asm/20314
2778         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
2779         with multiple alternatives.
2780
2781         * stmt.c (parse_output_constraint): Fix a typo.
2782
2783 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
2784
2785         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
2786         assembly directive instead of deprecated "no-generics".
2787
2788 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
2789
2790         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2791         for non-offsettable memory references to cope with outstanding reload
2792         replacements.
2793         * config/s390/s390.md ("reload_outti"): Call find_replacement to
2794         avoid losing outstanding address reloads.
2795         ("reload_outdi", "reload_outdf"): Likewise.
2796
2797 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2798
2799         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
2800         code.  Add more cbrt transformations.
2801
2802 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2803
2804         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
2805
2806 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2807
2808         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
2809         NULL_TREE when a given tree is not simplified.
2810         (fold): Return the original tree when any of the functions
2811         mentioned above NULL_TREE.
2812
2813         * fold-const.c (fold_unary, fold_binary): Take decomposed
2814         arguments, code, type, op0, and op1 in case of fold_binary.
2815         (fold): Update calls to fold_unary and fold_binary.
2816
2817 2005-03-09  Roger Sayle  <roger@eyesopen.com>
2818
2819         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
2820         a fndecl and an arglist instead of a CALL_EXPR, exp.
2821
2822 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2823
2824         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
2825
2826         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
2827
2828         * expr.c (expand_assignment): Remove orig_to_rtx.
2829
2830         * fold-const.c (int_const_binop): Remove no_overflow.
2831
2832         * ifcvt.c (noce_emit_move_insn): Remove inmode.
2833
2834         * loop-iv.c (get_biv_step_1): Remove lhs.
2835
2836         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
2837
2838         * real.c (real_nan): Remove neg.
2839
2840         * function.c (thread_prologue_and_epilogue_insns): Remove i
2841         and newinsn.
2842
2843         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
2844         tb.
2845
2846         * tree-eh.c (tree_could_trap_p): Remove idx.
2847
2848         * tree-into-ssa.c (ann): Remove ann.
2849
2850         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
2851
2852         * tree-sra.c (decide_block_copy): Remove inst_count.
2853
2854         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
2855
2856         * tree-ssa-loop-im.c (lhs): Remove.
2857
2858         * cfgbuild.c (state, STATE, SET_STATE,
2859         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
2860         make_edges.
2861         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
2862         (find_basic_blocks): Set the state of each basic block to
2863         BLOCK_NEW.
2864
2865 2005-03-08  Jeff Law  <law@redhat.com>
2866
2867         * tree-cfg.c (cleanup_control_flow): If removal of a computed
2868         goto results in the removal of edges in the CFG, then we need
2869         to recompute dominators.
2870
2871 2005-03-09  Ben Elliston  <bje@au.ibm.com>
2872
2873         * c-common.c (c_do_switch_warnings): Comment fix.
2874
2875 2005-03-08  Julian Brown  <julian@codesourcery.com>
2876
2877         * Patch from 2005-03-08 reverted for causing regressions and
2878         ppc-darwin bootstrap failure.
2879
2880 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
2881
2882         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
2883         Define the real function for ppc-darwin.
2884         * c-typeck.c (convert_arguments): Check for target-specific
2885         invalid argument call to unprototyped function.
2886         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
2887         New Macro.
2888         * target.h (invalid_arg_for_unprototyped_fn): New field
2889         in struct calls.
2890         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
2891         default target hook.
2892         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
2893         Declare.
2894
2895 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2896
2897         * c-typeck.c (constructor_stack, constructor_range_stack,
2898         initializer_stack): Make them static.
2899
2900         * cfg.c (rbi_pool): Make it static.
2901
2902         * gimple-low.c (lower_stmt_body): Make it static.
2903         * tree-flow.h: Remove the corresponding prototype.  Don't
2904         declare lower_data.
2905
2906         * sched-deps.c (cache_size): Make it static.
2907
2908         * stor-layout.c (lang_adjust_rli): Make it static.
2909
2910 2005-03-08  Julian Brown  <julian@codesourcery.com>
2911
2912         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
2913         from being used for symbols with vague linkage when
2914         HAVE_GAS_COMDAT_GROUP is true.
2915
2916 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
2917
2918         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
2919         nlabel == JUMP_LABEL (jump).
2920
2921 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2922
2923         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
2924         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
2925         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
2926         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
2927
2928 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
2929
2930         PR c/14411
2931         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
2932         * c-common.c (handle_returns_twice): New function.
2933         (c_common_attribute_table): Declare eturns_twice' attribute.
2934         * doc/extend.texi: Document eturns_twice' attribute.
2935         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
2936         (struct tree_decl): Add returns_twice_flag.
2937
2938 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2939
2940         * tree-ssa-phiopt.c: Fix a comment typo.
2941
2942         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
2943         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
2944         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
2945         copyright.
2946
2947 2005-03-08  Richard Henderson  <rth@redhat.com>
2948
2949         * config/alpha/alpha.c (code_for_builtin): Replace special-case
2950         builtin codes with ctzdi2, clzdi2, popcountdi2.
2951         (struct alpha_builtin_def): Add is_const.
2952         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
2953         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
2954         (alpha_init_builtins): Init them.  Set nothrow and const attributes
2955         on builtins.
2956         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
2957         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
2958         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
2959         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
2960         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
2961         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
2962         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
2963         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
2964         (TARGET_FOLD_BUILTIN): New.
2965         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
2966         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
2967         (ffsdi2): Use ctz.
2968         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
2969
2970 2005-03-08  Ira Rosen  <irar@il.ibm.com>
2971
2972         PR tree-optimization/20122
2973         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
2974         condition of access function instead of base.
2975
2976 2005-03-07  Jeff Law  <law@redhat.com>
2977             Steven Bosscher  <stevenb@suse.de>
2978
2979         * tree-cfg.c (find_taken_edge_computed_goto): New function.
2980         (find_taken_edge): Call find_taken_edge_computed_goto as
2981         appropriate.  Allow any gimple invariant rather than just
2982         INTEGER_CST for VAL.
2983         (cleanup_control_flow): Cleanup a computed goto which has turned
2984         into a simple goto.
2985         (tree_merge_blocks): If block B has any forced labels, move
2986         them to the start of block A.
2987         * tree-ssa-dom.c (thread_across_edge): Allow threading across
2988         computed gotos as well.
2989         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
2990         removal of unnecessary computed gotos too.
2991         (lookup_redirection_data): Fix type of INSERT argument.  Callers
2992         updated.
2993
2994 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2995
2996         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
2997         Remove trailing spaces.
2998
2999         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
3000         unshare_all_trees): Make them static.
3001         * tree-gimple.h: Remove the corresponding prototypes.
3002
3003         * diagnostic.h: Remove unused prototype
3004         debug_output_buffer.
3005         * modulo-sched.c: Remove unused prototype
3006         set_row_column_for_ps.
3007
3008         * tree-ssa-phiopt.c (tree_ssa_phiopt,
3009         replace_phi_edge_with_variable): Remove unused variable i.
3010
3011 2005-03-07  Per Bothner  <per@bothner.com>
3012
3013         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
3014
3015 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
3016
3017         PR tree-opt/17671
3018         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
3019         bbs on the COND_EXPR instead of the PHI_NODEs.
3020         (candidate_bb_for_phi_optimization): Remove.
3021         (replace_phi_with_stmt): Rename to ...
3022         (replace_phi_edge_with_variable): this and change so that we
3023         replace the phi argument instead of removing the PHI.
3024         (conditional_replacement): Change so we deal with PHI with more
3025         than two arguments.
3026         (value_replacement): Likewise.
3027         (abs_replacement): Likewise.
3028
3029 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
3030
3031         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
3032         output_e500_flip_gt_bit.
3033
3034         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
3035         as bit 31.
3036         (rs6000_generate_compare): Fix logic to look at the correct bits.
3037         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
3038         Look at GT bit.
3039         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
3040         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
3041         gen_move_from_CR_gt_bit.
3042
3043         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
3044         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
3045         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
3046
3047         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
3048         (E500_CR_IOR_COMPARE): New constant.
3049
3050 2005-03-08  Earl Chew <earl_chew@agilent.com>
3051             David Billinghurst <David.Billinghurst@riotinto.com>
3052
3053         * config/i386/host-cygwin.c: New file to support precompiled
3054         headers on cygwin
3055         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
3056         * config.host: Use above files for cygwin host.
3057
3058 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
3059
3060         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
3061         ordering ops from earlier change.
3062
3063 2005-03-07  Per Bothner  <per@bothner.com>
3064
3065         Various fixes to allow us to again build if --enable-mapped-location:
3066         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
3067         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
3068         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
3069         local variable loc. Change logic appropriately.
3070         * tree-vect-transform.c (vect_finish_stmt_generation): Use
3071         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
3072         * c-parser.c (c_parser_for_statement): Initialize loc variable.
3073         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
3074         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
3075
3076 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
3077
3078         PR rtl-optimization/19683
3079         * reload1.c (choose_reload_regs): Pass the number of bits, not the
3080         number of bytes, to smallest_int_for_mode.  Fix arguments to
3081         REG_CANNOT_CHANGE_MODE_P.
3082
3083 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3084
3085         * reorg.c (relax_delay_slots): Check that the jump is
3086         conditional before trying to invert it.
3087
3088 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3089
3090         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
3091         Make them static.
3092
3093         * calls (stack_arg_under_construction): Make it static.
3094
3095         * flow.c (regs_live_at_setjmp): Make it static.
3096         * flow.h: Remove the corresponding prototype.
3097
3098         * reload1.c (reload_startobj, reload_firstobj,
3099         something_needs_operands_changed, reload_inherited,
3100         reload_inheritance_insn, reload_override_in,
3101         reload_spill_index): Make them static.
3102
3103         * recog.c (verify_changes): Make it static.
3104         * recog.h: Remove the corresponding prototype.
3105
3106         * cfgbuild.c (find_sub_basic_blocks): Remove.
3107         * basic-block.h: Remove the corresponding prototype.
3108         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
3109         in comments.
3110         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
3111
3112         * tree-ssa-operands.c (check_build_stmt): Remove.
3113
3114         * stor-layout.c (set_alignment): Remove.
3115         * tree.h: Remove the corresponding prototype.
3116
3117         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
3118
3119         * tree-ssa-dce.c (control_dependence_map,
3120         visited_control_parents): Make them static.
3121
3122         * cfghooks.c (verify_flow_info): Remove local variable
3123         num_bb_notes.
3124
3125         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
3126         last_bb_seen.
3127
3128         * loop-unswitch.c (unswitch_loop): Remove local variable src.
3129
3130 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
3131
3132         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
3133
3134 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
3135
3136         * config/ia64/hpux.h (LINK_SPEC): Add -z.
3137         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
3138         PARALLEL for an empty structure.
3139
3140 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3141
3142         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
3143
3144         * fold-const.c (fold_binary): Unroll the very first "for"
3145         loop.
3146
3147 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
3148
3149         * config/rs6000/predicates.md (branch_comparison_operator): Remove
3150         redundant match_code test.
3151         (scc_comparison_operator): Swap match_operand and match_code
3152         tests.
3153         (branch_positive_comparison_operator): Same.
3154         (trap_comparison_operator): Use comparison_operator and swap with
3155         match_code test.
3156
3157 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3158
3159         PR target/20288
3160         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
3161         (out_movhi_r_mr): Read low byte of volatile MEM first.
3162         (out_movhi_mr_r): Write high byte of volatile MEM first.
3163
3164 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3165
3166         * cselib.c (reg_values, reg_values_size): Make them static.
3167
3168         * cse.c (cse_reg_info_table): Make it static.
3169
3170         * fold-const.c (fold_unary): Use build1 instead of copy_node.
3171
3172 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
3173
3174         * cse.c (find_best_addr): Use canon_for_address.
3175
3176 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3177
3178         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
3179         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
3180         SUBREG and MEM, respectively.
3181
3182         * fold-const.c (fold_binary): Use code instead of t.
3183
3184         * fold-const.c (optimize_minmax_comparison): Take decomposed
3185         arguments code, type, op0, and op1 instead of t.
3186         (fold_binary): Update a call to optimize_minmax_comparison.
3187
3188         * fold-const.c (fold_range_test): Take decomposed arguments
3189         code, type, op0, and op1 instead of t.
3190         (fold_binary): Update a call to fold_range_test.
3191
3192         * fold-const.c (fold_binary_op_with_conditional_arg): Take
3193         decomposed arguments code, type, op0, and op1 instead of t.
3194         (fold_binary): Update a call to fold_range_test.
3195
3196 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3197
3198         * fold-const.c (fold_binary): Avoid directly using the original
3199         expression t as much as possible.
3200
3201 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3202
3203         * c-semantics.c (build_stmt): Use TYPE_P instead of
3204         IS_NON_TYPE_CODE_CLASS.
3205         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3206         (NON_TYPE_CHECK): Use TYPE_P instead of
3207         IS_NON_TYPE_CODE_CLASS.
3208
3209         * fold-const.c (fold): Remove handling of binary expressions.
3210
3211 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
3212
3213         * doc/c-tree.texi: Wrap comments in @r{}.
3214         * doc/cpp.texi: Likewise.
3215         * doc/cppinternals.texi: Likewise.
3216         * doc/extend.texi: Likewise.
3217         * doc/md.texi: Likewise.
3218         * doc/objc.texi: Likewise.
3219         * doc/sourcebuild.texi: Likewise.
3220         * doc/tm.texi: Likewise.
3221         * doc/tree-ssa.texi
3222
3223 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3224
3225         * predict.c (apply_return_prediction): Standardize PHI chain
3226         walking.
3227         * tree-ssa.c (ssa_redirect_edge): Likewise.
3228
3229         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3230         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3231         Update copyright.
3232
3233         * tree-phinodes.c (remove_phi_node): Drop the last argument.
3234         * tree-flow.h: Adjust the prototype for remove_phi_node.
3235         * lambda-code.c (perfect_nestify): Adjust a call to
3236         remove_phi_node.
3237         * tree-cfg.c
3238         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3239         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3240         Likewise.
3241         * tree-ssa-dce.c (remove_dead_phis): Likewise.
3242         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3243         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3244         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3245
3246         * combine.c (simplify_and_const_int): Use gen_int_mode instead
3247         of GEN_INT (trunc_int_for_mode (...)).
3248         * loop-iv.c (iv_number_of_iterations): Likewise.
3249         * postreload.c (reload_cse_move2add): Likewise.
3250         * simplify-rtx.c (simplify_const_unary_operation,
3251         simplify_const_binary_operation): Likewise.
3252         * stor-layout.c (get_mode_bounds): Likewise.
3253
3254         * fold-const.c (fold_binary): New.
3255         (fold): Call fold_binary on binary expressions.
3256
3257 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
3258
3259         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3260         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3261         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3262         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3263         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3264
3265 2005-03-04  Devang Patel  <dpatel@apple.com>
3266
3267         PR tree-optimization/18815
3268         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3269         loops with zero exit edges.
3270
3271 2005-03-04  Devang Patel  <dpatel@apple.com>
3272
3273         * doc/invoke.texi: Remove reference to webpage that does not exist.
3274
3275 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
3276             Joseph S. Myers  <joseph@codesourcery.com>
3277
3278         PR c++/19797
3279         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3280         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3281         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3282         * pa.c (get_plabel): Change argument to symbol_ref.  Call
3283         maybe_get_identifier instead of get_identifier.
3284         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3285         (struct deferred_plabel): Replace name field with symbol field.
3286         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3287         ASM_OUTPUT_EXTERNAL_REAL is defined.
3288         (output_global_address): Use output_addr_const for output of all
3289         symbol_refs.
3290         (output_deferred_plabels): Use symbol_ref instead of name for address
3291         output.
3292         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3293         ASM_OUTPUT_SYMBOL_REF): New macros.
3294         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
3295         comment.
3296         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3297         label.
3298
3299 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
3300
3301         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3302         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3303
3304 2005-03-04  Jeff Law  <law@redhat.com>
3305
3306         * basic-block.h (rediscover_loops_after_threading): Declare.
3307         * tree-ssa-dom.c: Include cfgloop.h.
3308         (tree_ssa_dominator_optimize): Discover loops and some basic
3309         properties.  Remove forwarder blocks recreated by loop header
3310         canonicalization.  Also mark backedges in the CFG.
3311         * tree-ssa-threadupdate.c: Include cfgloop.h
3312         (rediscover_loops_after_threading): Define.
3313         (struct local_info): New field, JUMP_THREADED.
3314         (prune_undesirable_thread_requests): New function.
3315         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
3316         then record that fact for the callers of redirct_edges.
3317         (thread_block): If BB has incoming backedges, then call
3318         prune_undesirable_thraed_requests.    Note when we are
3319         going to have to rediscover loop information.  Return a
3320         boolean indicating if any jumps were threaded.
3321         (thread_through_all_blocks): Bubble up boolean indicating
3322         if any jumps were threaded.
3323         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3324         (tree-ssa-threadupdate.o): Similarly.
3325
3326 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3327
3328         * fold-const.c (fold_ternary): Unroll the "for" loop to
3329         extract operands.
3330
3331 2005-03-04  Andrew Haley  <aph@redhat.com>
3332
3333         * unwind-dw2-fde-glibc.c (struct
3334         unw_eh_callback_data.check_cache): New field.
3335         (frame_hdr_cache): New.
3336         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3337         Cache frame header info.
3338
3339 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
3340
3341         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3342         (print_c_condition): Declare.
3343         * read-rtl.c (ptr_loc): New structure.
3344         (ptr_locs, ptr_loc_obstack, joined_conditions)
3345         (joined_conditions_obstack): New variables.
3346         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3347         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3348         (join_c_conditions, print_c_condition): New functions.
3349         (apply_macro_to_string): Associate the new string with the same
3350         source location as the old one.
3351         (add_condition_to_string): Use join_c_conditions.
3352         (read_string): Use set_rtx_ptr_loc to record a filename and line
3353         number for the string.
3354         (read_rtx): Initialize the new variables above.
3355         * genattrtab.c (write_test_expr, write_attr_value): Use
3356         print_c_condition.
3357         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
3358         comment above the GCC_VERSION check.
3359         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3360         Inline the definition of MAYBE_EVAL.
3361         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3362         * genoutput.c (process_template): Likewise.
3363         * genpreds.c (write_predicate_subfunction): Likewise.
3364         (write_predicate_expr): Use print_c_condition.
3365         * genrecog.c (write_cond): Likewise.
3366         * gensupport.c (process_rtx): Use join_c_conditions to join the
3367         conditions of a define_insn_and_split.  Record a source location
3368         for the string after the "&&".
3369         (alter_test_for_insn): Use join_c_conditions.
3370
3371 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
3372
3373         Revert for now:
3374         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3375         PR tree-optimization/15784
3376         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3377         and -1 - A to ~A.
3378
3379 2005-03-04  Ben Elliston  <bje@au.ibm.com>
3380
3381         * gcc.c (option_map): Add --coverage.
3382         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3383         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3384         * config/darwin.h: Pass -lgcov for `coverage'.
3385         * doc/invoke.texi (Debugging Options): Document --coverage.
3386
3387 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3388
3389         * gcse.c (bypass_block): Use find_edge wherever possible.
3390
3391 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
3392
3393         Fix PR debug/20253
3394
3395         * c-opts.c (c_common_parse_file): Call start_source_file
3396         and end_source_file at the approriate times.
3397
3398         * dwarf2out.c (dwarf2out_finish): Don't auto-end
3399         the main file, it will be done for us now.
3400
3401 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3402
3403         * fold-const.c (fold_ternary): New.
3404         (fold): Call fold_ternary on ternary expressions.  Remove
3405         handling of ternary expressions.
3406
3407 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3408
3409         PR tree-optimization/15784
3410         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3411         and -1 - A to ~A.
3412
3413 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
3414
3415         * config/rs6000/predicates.md (branch_comparison_operator):
3416         Convert from C block to conditional format.
3417
3418 2005-03-03  Jan Hubicka  <jh@suse.cz>
3419
3420         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
3421         and non-constant public variables.
3422
3423 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3424
3425         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
3426         with LABEL_EXPR.
3427
3428         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
3429         EDGE_I.
3430
3431         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
3432         calls to release_ssa_name and release_phi_node.
3433
3434         * fold-const.c (fold): Remove handling of unary expressions.
3435
3436         * fold-const.c (fold_unary): Avoid directly using the original
3437         expression t as much as possible.
3438
3439 2005-03-03  Roger Sayle  <roger@eyesopen.com>
3440             Andrew Pinski  <pinskia@physics.uc.edu>
3441
3442         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
3443         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
3444
3445 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
3446
3447         Describe special registers SRP and MOF as allocatable registers.
3448         * config/cris/cris.c (cris_md_asm_clobbers): New function.
3449         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
3450         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
3451         TARGET_HAS_MUL_INSNS.
3452         (cris_print_operand) <case 'd'>: New case.
3453         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
3454         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
3455         define.
3456         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
3457         (REG_ALLOC_ORDER): Update for MOF.
3458         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
3459         SPECIAL_REGS.
3460         (GENERAL_REGS): No longer a define of ALL_REGS.
3461         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
3462         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
3463         Adjust accordingly.
3464         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
3465         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
3466         (SECONDARY_RELOAD_CLASS): Define.
3467         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
3468         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
3469         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
3470         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
3471         (REGISTER_MOVE_COST): Define.
3472         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
3473         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
3474         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
3475         (CRIS_MOF_REGNUM): New define_constants.
3476         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
3477         special registers.
3478         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
3479         New patterns.
3480         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
3481         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
3482         Adjust for MOF being properly described as a register.
3483         (indir_to_reg_split): Name this split.  Conditionalize on the
3484         destination register being a general register.
3485         (movei): Conditionalize on on operands 0 and 1 having the same
3486         register class.
3487
3488 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
3489
3490         PR target/20277
3491         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
3492         -mcpu to override any other explicitly given flags.
3493
3494 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
3495
3496         * recog.c (verify_changes, confirm_change_group): New functions,
3497         broken out of apply_change_group.
3498         (apply_change_group): Use them.
3499         * recog.h (verify_change, confirm_change_group): Declare.
3500         * rtl.h (redirect_jump_2): Declare.
3501         * jump.c (redirect_exp, invert_exp): Delete.
3502         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
3503         (redirect_jump_2): New function, broken out of redirect_jump.
3504         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
3505         (invert_jump): Use invert_jump_1 and redirect_jump_2.
3506         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
3507
3508 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
3509
3510         * varasm.c (named_section): Use xstrdup rather than doing it by
3511         hand.
3512
3513         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
3514
3515 2005-03-02  Devang Patel  <dpatel@apple.com>
3516
3517         Undo PR tree-optimization/18815 fix.
3518
3519 2005-03-02  Devang Patel  <dpatel@apple.com>
3520
3521         PR tree-optimization/18815
3522         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3523         loops with zero exit edges.
3524
3525 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3526
3527         * cfg.c (connect_src, connect_dest, disconnect_src,
3528         disconnct_dest): New.
3529         (unchecked_make_edge, remove_edge, redirect_edge_succ,
3530         redirect_edge_pred): Use the new functions.
3531
3532         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3533         free_dominance_info only when needed.
3534
3535 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
3536
3537         PR target/20276
3538         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
3539         (reg_or_sub_cint64_operand): Same.
3540
3541 2005-03-02  Jeff Law  <law@redhat.com>
3542
3543         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
3544         CFG_ALTERED in the main DOM iteration loop.
3545
3546 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
3547
3548         PR c++/19916
3549         * varasm.c (initializer_constant_valid_p): Allow conversions
3550         between OFFSET_TYPEs.  Tidy.
3551
3552 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
3553
3554         * config/cris/cris.md ("return"): Remove epilogue delay list
3555         sanity check.
3556
3557 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
3558
3559         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
3560         for Thumb.
3561         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
3562
3563 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3564
3565         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
3566         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
3567         config/m68k/m68k.c, config/mips/mips.h,
3568         config/rs6000/rs6000-protos.h, doc/contrib.texi,
3569         doc/include/gcc-common.texi: Update copyright.
3570
3571         PR middle-end/18029 and PR middle-end/18030
3572         * expr.c (optimize_bitfield_assignment_op): Add a special case
3573         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
3574
3575         * fold-const.c (fold_unary): New.
3576         (fold): Call fold_unary on unary expressions.
3577
3578 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
3579
3580         * cgraph.h (struct cgraph_edge): Add prev_caller and
3581         prev_callee fields.
3582         (cgraph_node_remove_callees): Export.
3583         * cgraph.c (cgraph_create_edge): Initialize prev_caller
3584         and prev_callee.
3585         (cgraph_edge_remove_callee): New function.
3586         (cgraph_edge_remove_caller): Likewise.
3587         (cgraph_remove_edge): Use.
3588         (cgraph_redirect_edge_callee): Likewise.
3589         (cgraph_node_remove_callees): New function.
3590         (cgraph_node_remove_callers): Likewise.
3591         (cgraph_remove_node): Use.
3592         * tree-optimize.c (tree_rest_of_compilation): Use
3593         cgraph_node_remove_callees instead of manual loop.
3594         * cgraphunit.c (cgraph_finalize_function): Likewise.
3595         (cgraph_expand_function): Likewise.
3596         (cgraph_remove_unreachable_nodes): Likewise.
3597
3598 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
3599
3600         PR c/8927
3601         * c-tree.h (undeclared_variable, build_external_ref): Add extra
3602         argument.
3603         * c-decl.c (undeclared_variable): Take location as argument.
3604         * c-typeck.c (build_external_ref): Likewise.
3605         * c-parser.c (c_parser_postfix_expression): Pass location of
3606         identifier to build_external_ref.
3607
3608 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
3609
3610         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
3611         CCEQ mode for branch_positive_comparison_operator test.
3612         * config/rs6000/predicates (branch_comparison_operator): Revert to
3613         define_predicate.
3614         (scc_comparison_operator): Same.
3615         (branch_positive_comparison_operator): Same.
3616
3617 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
3618
3619         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
3620         (cris_delay_slots_for_epilogue): Remove.
3621         (save_last): Move into cris_target_asm_function_epilogue.
3622         (cris_target_asm_function_epilogue): Remove tests for file being
3623         NULL.
3624         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
3625         (cris_delay_slots_for_epilogue): Remove prototypes.
3626         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
3627         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
3628
3629 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
3630
3631         * config/rs6000/predicates.md (branch_comparison_operator): Change
3632         to define_special_predicate.
3633         (scc_comparison_operator): Same.
3634         (branch_positive_comparison_operator): Same.
3635
3636 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
3637
3638         * Makefile.in (tree-ssa-sink.o): New.
3639         (OBJS-common): Add tree-ssa-sink.o.
3640         * common.opt: Add -ftree-sink
3641         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
3642         * timevar.def (TV_TREE_SINK): new timevar.
3643         * tree-flow.h (is_hidden_global_store): Prototype.
3644         * tree-optimize.c (init_tree_optimization_passes): Add
3645         pass_sink_code.
3646         * tree-pass.h (pass_sink_code): New.
3647         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
3648         for non-obvious global store store to is_hidden_global_store, and
3649         call that new function.
3650         * tree-ssa-sink.c: New file.
3651         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
3652         * doc/passes.texi: Document forward store motion.
3653         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
3654         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
3655         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
3656         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
3657
3658 2005-03-01  Per Bothner  <per@bothner.com>
3659
3660         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
3661         and we have a non-zero column-number, add it to the message.
3662         Also factor out the diagnostic_kind_text.
3663
3664 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
3665
3666         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
3667         flow_loop_pre_header_scan, flow_loop_pre_header_find,
3668         flow_loop_scan): Removed.
3669         (flow_loop_dump): Do not dump removed fields.
3670         (flow_loop_free): Do not free removed fields.
3671         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
3672         (loop_exit_edge_p): New function.
3673         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
3674         num_pre_header_edges, entry_edges, num_entries, exit_edges,
3675         num_exits, exits_doms.
3676         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
3677         LOOP_EDGES, LOOP_ALL): Removed.
3678         (flow_loop_scan): Declaration removed.
3679         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
3680         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
3681         flow_loops_find.
3682         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
3683         (if_convert): Call flow_loops_find and flow_loops_free
3684         when calling mark_loop_exit_edges.
3685         * cfgloopanal.c (mark_loop_exit_edges): Moved from
3686         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
3687         free_dominance_info calls.
3688         * loop-init.c (flow_loops_find): Ditto.
3689         * passes.c (rest_of_handle_branch_prob): Ditto.
3690         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
3691         * loop-unroll.c (analyze_insns_in_loop): Do not use
3692         EDGE_LOOP_EXIT.
3693         * predict.c (predict_loops): Do not call flow_loop_scan.
3694         Use get_loop_exit_edges.
3695         (tree_estimate_probability): Do not pass flags to flow_loops_find.
3696         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
3697         Do not use EDGE_LOOP_EXIT.
3698         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
3699         to bb_with_exit_edge_p.
3700         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
3701         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
3702         to bb_with_exit_edge_p.
3703         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
3704         EDGE_LOOP_EXIT.
3705         * tree-loop-linear.c (linear_transform_loops): Do not call
3706         flow_loop_scan.  Use loop->single_exit.
3707         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
3708         (vect_analyze_loop_form): Do not call flow_loop_scan.
3709         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
3710         loop->single_exit.
3711         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
3712         loop->single_exit.
3713         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
3714         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
3715         slpeel_tree_duplicate_loop_to_edge_cfg,
3716         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
3717         Use loop_preheader_edge and loop->single_exit.  Do not call
3718         flow_loop_scan.
3719
3720 2005-03-01  Nick Clifton  <nickc@redhat.com>
3721
3722         * config/arm/arm.c (thumb_find_work_register): Check all of the
3723         argument registers to see if they are free, and a couple of
3724         special cases where the last argument register but can be proved
3725         to be available during the function's prologue.
3726         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
3727         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
3728         thumb_unexpanded_epilogue): Use unsigned long as the type for the
3729         register bit-mask.
3730         (thumb_compute_save_reg_mask): Likewise.  Also use
3731         thumb_find_work_register() to ensure that there is agreement about
3732         which work register is going to be used in the prologue.
3733         (thumb_output_function_prologue): Use unsigned long as the type
3734         for the register bit-mask.  Also delay pushing the link register if
3735         other high registers are going to be pushed.
3736         (thumb_compute_save_reg_mask, emit_multi_reg_push,
3737         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
3738         redundant prototypes.
3739
3740 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
3741
3742         PR target/19819
3743         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
3744         and after reload in REG+REG indexed addresses without REG_POINTER
3745         set in the base and not set in the index.
3746
3747 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
3748
3749         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
3750         Don't undefine here.
3751         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
3752         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
3753         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
3754         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
3755         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
3756         Delete.
3757         * config.gcc (sh*-*-linux*): Use config/linux.h.
3758
3759 2005-02-28  Dale Johannesen  <dalej@apple.com>
3760             Stan Shebs  <shebs@apple.com>
3761
3762         Rewrite of 64-bit Darwin structure-by-value pass/return.
3763         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
3764         intoffset, use_stack, named.
3765         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
3766         (rs6000_darwin64_record_arg_advance_flush):  New.
3767         (rs6000_darwin64_record_arg_advance_recurse): New.
3768         (rs6000_darwin64_record_arg_flush):  New.
3769         (rs6000_darwin64_record_arg_recurse):  New.
3770         (rs6000_darwin64_record_arg):  New.
3771         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
3772         (function_arg_boundary):  Handle 128-bit aligned structs.
3773         (function_arg_advance):  Rewrite darwin64 struct handling.
3774         (function_arg):  Call rs6000_darwin64_record_arg.
3775         (function_arg_partial_nregs):  Handle darwin64 structs.
3776         (rs6000_darwin64_function_value):  Remove.
3777         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
3778
3779 2005-02-28  Roger Sayle  <roger@eyesopen.com>
3780
3781         PR tree-optimization/20216
3782         * tree-chrec.c (tree_fold_factorial): Delete.
3783         (tree_fold_binomial): Change argument list to take a return type
3784         and change the type of K to unsigned int.  Rewrite to avoid explicit
3785         evaluation of factorials, and (recursively) calling fold to perform
3786         compile-time arithmetic.  Return NULL on (internal) overflow.
3787         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
3788         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
3789         if any intermediate calculation overflows.
3790         (chrec_apply): Update call to chrec_evaluate.
3791
3792 2005-02-28  James E Wilson  <wilson@specifixinc.com>
3793
3794         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
3795
3796 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
3797
3798         PR c/20245
3799         * c-parser.c (c_parser_compound_statement): Return error_mark_node
3800         instead of NULL_TREE on error.
3801
3802 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
3803
3804         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
3805         (EASY_VECTOR_15_ADD_SELF): Remove.
3806         (num_insns_constant_wide): Not static.
3807         (validate_condition_mode): Not static.
3808         (toc_relative_expr_p): Not static.
3809         (legitimate_indirect_address_p): Not static.
3810         (macho_lo_sum_memory_operand): Not static.
3811         (invalid_e500_subreg): Not static.
3812         (easy_vector_same): Not static.
3813         (easy_vector_splat_const): Not static.
3814         (RS6000_SYMBOL_REF_TLS_P): Remove.
3815         (any_operand): Delete.
3816         (any_parallel_operand): Delete.
3817         (count_register_operand): Delete.
3818         (altivec_register_operand): Delete.
3819         (xer_operand): Delete.
3820         (s8bit_cint_operand): Delete.
3821         (short_cint_operand): Delete.
3822         (u_short_cint_operand): Delete.
3823         (non_short_cint_operand): Delete.
3824         (exact_log2_cint_operand): Delete.
3825         (gpc_reg_operand): Delete.
3826         (cc_reg_operand): Delete.
3827         (cc_reg_not_cr0_operand): Delete.
3828         (reg_or_short_operand): Delete.
3829         (reg_or_neg_short_operand): Delete.
3830         (reg_or_aligned_short_operand): Delete.
3831         (reg_or_u_short_operand): Delete.
3832         (reg_or_cint_operand): Delete.
3833         (reg_or_arith_cint_operand): Delete.
3834         (reg_or_add_cint64_operand): Delete.
3835         (reg_or_sub_cint64_operand): Delete.
3836         (reg_or_logical_cint_operand): Delete.
3837         (got_operand): Delete.
3838         (got_no_const_operand): Delete.
3839         (easy_fp_constant): Delete.
3840         (easy_vector_constant): Delete.
3841         (easy_vector_constant_add_self): Delete.
3842         (zero_constant): Delete.
3843         (zero_fp_constant): Delete.
3844         (volatile_mem_operand): Delete.
3845         (offsettable_mem_operand): Delete.
3846         (mem_or_easy_const_operand): Delete.
3847         (add_operand): Delete.
3848         (non_add_cint_operand): Delete.
3849         (logical_operand): Delete.
3850         (non_logical_cint_operand): Delete.
3851         (mask_operand): Delete.
3852         (mask_operand_wrap): Delete.
3853         (mask64_operand): Delete.
3854         (mask64_2_operand): Delete.
3855         (and64_operand): Delete.
3856         (and64_2_operand): Delete.
3857         (and_operand): Delete.
3858         (reg_or_mem_operand): Delete.
3859         (lwa_operand): Delete.
3860         (symbol_ref_operand): Delete.
3861         (call_operand): Delete.
3862         (current_file_function_operand): Delete.
3863         (input_operand): Delete.
3864         (rs6000_nonimmediate_operand): Delete.
3865         (rs6000_tls_symbol_ref): Delete.
3866         (save_world_operation): Delete.
3867         (restore_world_operation): Delete.
3868         (load_multiple_operation): Delete.
3869         (store_multiple_operation): Delete.
3870         (vrsave_operation): Delete.
3871         (mfcr_operation): Delete.
3872         (mtcrf_operation): Delete.
3873         (lmw_operation): Delete.
3874         (stmw_operation): Delete.
3875         (branch_comparison_operator): Delete.
3876         (branch_positive_comparison_operator): Delete.
3877         (scc_comparison_operator): Delete.
3878         (trap_comparison_operator): Delete.
3879         (boolean_operator): Delete.
3880         (boolean_or_operator): Delete.
3881         (min_max_operator): Delete.
3882         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
3883         (EASY_VECTOR_15): Moved to here.
3884         (EASY_VECTOR_15_ADD_SELF): Move to here.
3885         (PREDICATE_CODES): Delete.
3886         * config/rs6000/rs6000-protos.h: Delete predicate functions.
3887         Declare functions no longer static.
3888         * config/rs6000/predicates.md: New.
3889         * config/rs6000/rs6000.md: Include predicates.md
3890
3891 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
3892
3893         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
3894         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
3895         REG_ALWAYS_RETURN.
3896         * cfgrtl.c (need_fake_edge_p): Likewise.
3897         * combine.c (distribute_notes): Likewise.
3898         * emit-rtl.c (try_split): Likewise.
3899         * recog.c (peephole2_opimize): Likewise.
3900         * reg-notes.def (ALWAYS_RETURN): Remove.
3901         * rtl.h (LCT_ALWAYS_RETURN): Remove.
3902         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
3903         * tree.h (ECF_ALWAYS_RETURN): Remove.
3904
3905 2005-02-28  Roger Sayle  <roger@eyesopen.com>
3906
3907         PR middle-end/19874
3908         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
3909         between different machine modes is never a "useless" conversion.
3910
3911 2005-02-28  Geert Bosch  <bosch@gnat.com>
3912
3913         PR ada/15977
3914         * doc/contrib.texi: List contributors for Ada front end
3915
3916 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
3917
3918         * simplify-rtx.c (simplify_unary_operation_1,
3919         simplify_const_unary_operation): New, extracted from...
3920         (simplify_unary_operation): ... this one.
3921         (simplify_binary_operation_1,
3922         simplify_const_binary_operation): New, extracted from...
3923         (simplify_binary_operation): ... this one.
3924         * rtl.h (simplify_const_unary_operation,
3925         simplify_const_binary_operation): Add prototypes.
3926
3927 2005-02-28  Julian Brown  <julian@codesourcery.com>
3928
3929         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
3930         building libjava and caused PR regression/20228.
3931
3932 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
3933
3934         PR bootstrap/17383
3935         * Makefile.in (host_subdir): New.
3936         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
3937         * configure: Regenerate.
3938
3939 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
3940
3941         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
3942         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
3943         installation directory first.
3944
3945 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
3946
3947         PR target/19065.
3948         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
3949         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
3950         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
3951         * config/cris/cris.md: Tweak comments referring to Q.
3952         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
3953         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
3954         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
3955         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
3956         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
3957         Insert spaces in constraints to align alternatives vertically for
3958         readability.
3959         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
3960         operand 1: "M".
3961
3962 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3963
3964         PR rtl-optimization/17728
3965         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
3966         operand 0 from general_operand to move_dest_operand.
3967
3968 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3969
3970         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
3971         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
3972         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
3973         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
3974
3975 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
3976
3977         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
3978         * configure: Regenerate.
3979         * libada-mk.in: Remove CC; rename
3980         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
3981
3982 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
3983
3984         PR tree-opt/20188
3985         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
3986         for the lhs, also walk over the tree.  Likewise for rhs.
3987
3988 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
3989
3990         * tree-ssa-dom.c (simple_iv_increment_p): New function.
3991         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
3992         Do not propagate value of iv before increment over the increment.
3993
3994 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
3995
3996         * c-parser.c: New file.
3997         * c-parse.in: Remove.
3998         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
3999         Remove.
4000         (c-parser.o): Add dependencies.
4001         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
4002         maintainer-clean, TAGS): Update.
4003         * c-config-lang.in (gtfiles): Update.
4004         * gengtype-lex.l: Don't handle "@@".
4005         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
4006         objc_build_synchronized, objc_begin_try_stmt,
4007         objc_begin_catch_clause, objc_finish_catch_clause,
4008         objc_build_finally_clause, objc_finish_try_stmt): New.
4009         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
4010         type_seen_p.
4011         (c_parse_init): Update comment.
4012         * c-decl.c (c_init_decl_processing): Update comment.
4013         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
4014         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
4015         new c_declspecs members.
4016
4017 2005-02-25  Julian Brown  <julian@codesourcery.com>
4018
4019         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
4020         from being used for symbols with vague linkage when
4021         HAVE_GAS_COMDAT_GROUP is true.
4022
4023 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
4024
4025         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
4026
4027 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
4028
4029         PR target/19930
4030         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
4031         (LIBGCC2_HAS_DF_MODE): New.
4032         (LIBGCC2_HAS_XF_MODE): New.
4033         (LIBGCC2_HAS_TF_MODE): New.
4034         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
4035         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
4036         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
4037         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
4038         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
4039         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
4040         and add _fixtfdi, _fixunstfdi, _floatditf
4041         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
4042         L_fixunstfdi, L_floatditf.
4043         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
4044         (LIBGCC2_HAS_TF_MODE): Define.
4045
4046 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
4047
4048         PR tree-optimization/20204
4049         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
4050         REWRITE_THIS_STMT markers on PHI nodes.
4051         (rewrite_initialize_block): Likewise.
4052
4053 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
4054
4055         * version.c (version_string): Update to 4.1.
4056
4057 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
4058
4059         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
4060         Clarify that the alternative way doesn't work in GNU C++.
4061
4062 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
4063
4064         PR tree-optimization/19937
4065         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
4066         to the type of the induction variable.
4067
4068 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
4069
4070         PR rtl-optimization/20117
4071         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
4072         the block including noncopyable insn.
4073
4074 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4075
4076         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
4077         calls to find_reg_note.
4078
4079 2005-02-24  Richard Henderson  <rth@redhat.com>
4080
4081         PR tree-opt/20127
4082         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
4083         the type.
4084
4085 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
4086
4087         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
4088         vector types if to use base reg for misaligned non-word ld/std.
4089
4090 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
4091
4092         PR target/14619
4093         * config/cris/cris.c (cris_target_asm_function_prologue): Create
4094         dwarf2 label manually and put it after, not before the prologue.
4095
4096 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
4097
4098         PR target/19019
4099         * reload.c (operands_match_p): Only increment register number for
4100         SCALAR_INT_MODE_P modes in multiple hard registers.
4101
4102         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
4103         Fix formatting.
4104
4105 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4106
4107         * ChangeLog.5: Fix log message typo(s).
4108         * ChangeLog.7: Likewise.
4109         * ChangeLog.tree-ssa: Likewise.
4110         * cfgexpand.c: Fix comment typo(s).
4111         * conflict.c: Likewise.
4112         * defaults.h: Likewise.
4113         * dwarf2out.c: Likewise.
4114         * gcse.c: Likewise.
4115         * ggc-page.c: Likewise.
4116         * tree-eh.c: Likewise.
4117         * tree-ssa-dom.c: Likewise.
4118
4119 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
4120
4121         PR target/19019
4122         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
4123         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
4124         if SHARED is defined.
4125
4126         PR target/20196
4127         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
4128         allow splitting only if operands 0 and 3 don't overlap.
4129
4130 2005-02-24  Richard Henderson  <rth@redhat.com>
4131
4132         PR middle-end/19953
4133         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
4134         (fold_builtin_1): Call them.
4135         * fold-const.c (fold_complex_mult_parts): Split out from ...
4136         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
4137         (fold_complex_div_parts, fold_complex_div): New.
4138         (fold): Use them.
4139         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
4140
4141 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4142
4143         * tree-ssa-ccp.c (visit_assignment): Verify that result of
4144         VIEW_CONVERT_EXPR is_gimple_min_invariant.
4145
4146         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
4147         (print_node): Likewise.
4148         Print TYPE_SIZES_GIMPLIFIED.
4149
4150 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
4151
4152         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
4153         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
4154         operands as commutative in constraints.
4155
4156 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
4157
4158         * tree-into-ssa.c: Re-organize internal functions.
4159
4160 2005-02-24  Richard Henderson  <rth@redhat.com>
4161
4162         PR middle-end/18902
4163         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
4164         for c99.
4165         * common.opt (fcx-limited-range): New.
4166         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
4167         * toplev.c (flag_complex_method): Initialize to 1.
4168         (process_options): Set flag_complex_method to 0 if
4169         flag_cx_limited_range.
4170         * doc/invoke.texi (-fcx-limited-range): New.
4171
4172 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4173
4174         * cse.c (delete_trivially_dead_insns): Speed up by using
4175         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
4176         prev_real_insn.
4177
4178 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
4179
4180         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
4181         functions when -mid-shared-library is being used.
4182
4183 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
4184
4185         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
4186         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
4187         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
4188         * system.h: Poison LINK_LIBGCC_SPECIAL.
4189
4190 2005-02-23  James E Wilson  <wilson@specifixinc.com>
4191
4192         * gengtype.c (note_insn_name): Make 1 element larger.
4193
4194 2005-02-23  Roger Sayle  <roger@eyesopen.com>
4195
4196         PR target/20018
4197         PR rtl-optimization/20097
4198         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
4199         BImode SUBREGs of SImode registers which confuse the ia64 backend.
4200
4201 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
4202
4203         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
4204         * t-aix52 (SHLIB_INSTALL): Same.
4205
4206 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4207
4208         * genpreds.c: Update copyright.
4209
4210 2005-02-23  Michael Beach  <michaelb@ieee.org>
4211
4212         PR target/20159
4213         * config/sparc/t-elf (startup files): Assemble with CPP.
4214
4215 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
4216
4217         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
4218         (write_predicate_expr): Likewise.
4219
4220 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
4221
4222         PR tree-optimization/20100
4223         PR tree-optimization/20115
4224         * tree-optimize.c (init_tree_optimization_passes): Remove
4225         pass_maybe_create_global_var.
4226         * tree-pass.h (pass_maybe_create_global_var): Remove.
4227         * tree-ssa-alias.c (aliases_computed_p): Declare.
4228         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
4229         (count_calls_and_maybe_create_global_var): Remove.
4230         (pass_maybe_create_global_var): Remove.
4231         (init_alias_info): Do not declare aliases_computed_p.
4232         (maybe_create_global_var): If the function contains no
4233         call-clobbered variables and a mix of pure/const and regular
4234         function calls, create .GLOBAL_VAR.
4235         Mark all call-clobbered variables for renaming.
4236         (merge_pointed_to_info): Update comment.
4237         (add_pointed_to_var): Likewise.
4238         (is_escape_site): Likewise.
4239         Accept struct alias_info * instead of size_t *.
4240         Update all users.
4241         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
4242         as necessary.
4243         * tree-ssa-operands.c (get_call_expr_operands): If
4244         ALIASES_COMPUTED_P is false, do not add call-clobbering
4245         operands.
4246         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
4247         (delete_tree_ssa): Likewise.
4248
4249 2005-02-22  James E Wilson  <wilson@specifixinc.com>
4250
4251         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
4252         (do_compile): Do call it here.
4253
4254 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
4255
4256         PR rtl-optimization/20017.
4257         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
4258         rest_of_handle_cse2, rest_of_handle_gcse): Call
4259         delete_dead_jumptables immediately before calling cleanup_cfg.
4260
4261 2005-02-22  Devang Patel  <dpatel@apple.com>
4262
4263         PR 19952
4264         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
4265         all labels
4266
4267 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
4268
4269         * config/rs6000/aix.h (WINT_TYPE): Define.
4270
4271 2005-02-22  Stan Shebs  <shebs@apple.com>
4272
4273         * config/rs6000/rs6000.c (rs6000_override_options): Default to
4274         natural alignment for 64-bit Darwin.
4275         (rs6000_parse_alignment_option): Warn about uses of -malign-power
4276         on 64-bit Darwin.
4277         * doc/invoke.texi: Document this.
4278
4279 2005-02-22  DJ Delorie  <dj@redhat.com>
4280
4281         * c-common.c (c_common_type_for_mode): Pass the mode's precision
4282         to make_[un]signed_type, not the mode itself.
4283
4284 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
4285
4286         * cfg.c (cached_make_edge): Call make_edge if edge cache is
4287         not available.  Use tail calls wherever possible.
4288         (make_edge): Call unchecked_make_edge to create an edge.
4289
4290         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
4291         (coalesce_ssa_name): Don't check for
4292         SSANORM_USE_COALESCE_LIST.
4293         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
4294
4295 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
4296
4297         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
4298         (rewrite_into_ssa): ... here.
4299
4300 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
4301
4302         PR tree-optimization/19786
4303         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
4304         tag to another's may-alias bitmap when adding to the other's list.
4305
4306 2005-02-21  DJ Delorie  <dj@redhat.com>
4307
4308         * tree-ssa-loop-ivopts.c (computation_cost): Start register
4309         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
4310         registers in unsupported ways.
4311         * expmed.c (init_expmed): Likewise.
4312
4313 2005-02-21  Stan Cox  <scox@redhat.com>
4314
4315         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
4316
4317 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
4318
4319         * tree-cfg.c (fold_cond_expr_cond): New.
4320         (make_edges): Call fold_cond_expr_cond.
4321         (find_taken_edge): Accept nothing but INTEGER_CST.
4322         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
4323         and 1.
4324         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
4325
4326         * flow.c (delete_dead_jumptables): Speed up by scanning insns
4327         that do not belong to any basic block.
4328
4329 2005-02-21  Jeff Law  <law@redhat.com>
4330
4331         * cfganal.c (find_unreachable_blocks): Manually CSE load of
4332         e->dest.
4333
4334 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
4335
4336         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
4337         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
4338         Adjust their definitions.
4339         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
4340         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
4341
4342         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
4343         genautomata.c, langhooks.c, langhooks.h, system.h,
4344         config/arm/lib1funcs.asm: Update copyright.
4345
4346 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
4347
4348         * dbxout.c (dbxout_function_end): Emit Lscope label always.
4349
4350 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
4351
4352         PR bootstrap/13770
4353         * doc/install.texi: Document --with-gc.
4354
4355 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
4356
4357         * simplify-rtx.c (simplify_unary_operation): Add a missing
4358         "break" statement.
4359
4360 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4361
4362         PR tree-optimization/18663
4363         * tree-ssa-dom.c (extract_range_from_cond): Return 0
4364         if the type has variable bounds.
4365
4366 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
4367
4368         * gcse.c: Remove an obsolete comment.
4369
4370         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
4371
4372 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
4373
4374         * doc/extend.texi (Function Attributes) <Attribute const>: The
4375         attribute "pure" is below this text, not above.
4376
4377 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4378
4379         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
4380         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
4381         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
4382
4383 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
4384
4385         PR 18785
4386         * langhooks.h (struct lang_hooks): Add to_target_charset.
4387         * langhooks.c (lhd_to_target_charset): New function.
4388         * langhooks-def.h: Declare lhd_to_target_charset.
4389         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
4390         (LANG_HOOKS_INITIALIZER): Update.
4391         * c-common.c (c_common_to_target_charset): New function.
4392         * c-common.h: Declare it.
4393         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
4394         c_common_to_target_charset.
4395
4396         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
4397         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
4398         Delete definitions.
4399         * system.h: Poison them.
4400         * doc/tm.texi: Don't discuss them.
4401         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
4402         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
4403         (pp_c_char): Do not attempt to generate letter escapes for
4404         newline, tab, etc.
4405         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
4406         * config/mips/mips.c (mips_output_ascii): Likewise.
4407
4408 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
4409
4410         PR tree-optimization/19951
4411         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
4412         is abnormal.
4413
4414 2005-02-19  Steven Bosscher  <stevenb@suse.de>
4415
4416         PR middle-end/19698
4417         * function.h (struct function): New field `max_loop_depth'.
4418         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
4419         (flow_loops_find): Reset the max loop depth count before finding loops.
4420         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
4421         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
4422         (calculate_global_regs_live): Make sure the loop will terminate
4423         when the initial sets are not empty.
4424
4425 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
4426
4427         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
4428         object inside.
4429         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
4430
4431 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
4432
4433         PR other/19525
4434         * doc/invoke.texi: Remove documentation of %M spec.
4435         * gcc.c: Likewise.
4436         (init_spec): Remove %M suffix from -lgcc_s.
4437         (do_spec_1): Remove 'M' case.
4438         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
4439         to put shared libraries in the multilib directory.  Remove the
4440         shlib_so_soname substitution variable.  Don't add a multilib encoding
4441         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
4442         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
4443         SHLIB_INSTALL as well as SHLIB_LINK.
4444         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
4445         (SHLIB_NAME): Delete.
4446         (SHLIB_DIR): New macro.
4447         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
4448         (SHLIB_INSTALL): Adjust accordingly.
4449         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
4450         * config/t-slibgcc-sld: Likewise.
4451         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
4452         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
4453         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
4454         in $(SHLIB_DIR).
4455         (SHLIBUNWIND_INSTALL): Adjust accordingly.
4456         * config/i386/t-nwld (SHLIB_SONAME): Delete.
4457         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
4458         Use @shlib_base_name@ instead of @shlib_so_name@.
4459         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
4460         and @shlib_base_name@.so in @multilib_dir@.
4461         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
4462         to the install path.
4463         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
4464         (SHLIB_LINK): Remove previous workaround.
4465         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
4466         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
4467         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
4468         the install path.
4469         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
4470         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
4471         (SHLIB_INSTALL): Adjust accordingly.
4472         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
4473         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
4474         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
4475         config/t-slibgcc-elf-ver.
4476
4477 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
4478             Jakub Jelinek  <jakub@redhat.com>
4479
4480         PR tree-optimization/19828
4481         * tree-ssa-loop-im.c: Add a TODO comment.
4482         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
4483         without side-effects.
4484
4485 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
4486
4487         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
4488         call fold_convert.
4489
4490 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
4491
4492         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
4493         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
4494         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
4495         functions.
4496         (ia64_reorg): Delete fixup_errata call.
4497         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
4498         (TARGET_SWITCHES): Delete -mb-step entry.
4499
4500 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
4501
4502         PR c/20043
4503         * c-typeck.c (composite_type): Handle quals in transparent unions.
4504         (type_lists_compatible_p): Likewise.
4505
4506 2005-02-18  Stan Shebs  <shebs@apple.com>
4507
4508         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
4509         expressions in the .literal8 section.
4510
4511 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
4512
4513         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
4514
4515 2005-02-18  Roger Sayle  <roger@eyesopen.com>
4516
4517         * fold-const.c (constant_boolean_node): Always create values of the
4518         specified type, don't bother calling truthvalue_conversion.
4519
4520 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
4521
4522         * except.c (output_function_exception_table): Call
4523         assemble_external_libcall (eh_personality_libfunc).
4524
4525 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
4526
4527         PR target/19886
4528         * config/ia64/ia64.h (struct machine_function): Add state_num.
4529         * config/ia64/ia64.c (process_epilogue,
4530         process_for_unwind_directive): Use new unwind state numbers each
4531         time rather than state 1.
4532
4533 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
4534
4535         PR target/20054
4536         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
4537         before the "*llgt_didi" pattern.
4538
4539 2005-02-18  Jason Merrill  <jason@redhat.com>
4540
4541         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
4542
4543 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
4544
4545         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
4546         (div0): Use it in place of ARM_FUNC_ALIAS.
4547         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
4548
4549 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
4550
4551         PR middle-end/20030
4552         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
4553         access, the lower bound of the array type if it exists.
4554
4555 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
4556
4557         PR c++/20008
4558         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
4559         cases that are out-of-range for the index type.
4560
4561 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
4562
4563         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
4564         (estimate_case_costs): Don't call convert.
4565         * expmed.c (expand_shift): Likewise.
4566         (make_tree): Call fold_convert instead of convert.
4567
4568 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
4569
4570         PR c++/19813
4571         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
4572         that ref to be marked MEM_READONLY_P doesn't have base that needs
4573         constructing.
4574
4575 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
4576
4577         * genautomata.c (output_get_cpu_unit_code_func,
4578         output_cpu_unit_reservation_p): Don't generate old-style function
4579         definitions.
4580
4581 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
4582
4583         PR c++/20023
4584         PR tree-optimization/20009
4585         * convert.c (convert_to_integer): Revert 2005-02-16 change.
4586
4587         PR tree-optimization/18947
4588         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
4589         inline, remove all nodes that are inlined into the extern inline
4590         being redefined.
4591
4592 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
4593
4594         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
4595         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
4596         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
4597         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
4598         Update copyright.
4599
4600 2005-02-17  Roger Sayle  <roger@eyesopen.com>
4601
4602         PR tree-optimization/19917
4603         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
4604         to be potentially trapping.
4605
4606 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
4607
4608         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
4609
4610 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
4611
4612         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
4613         tem becomes a local variable which is set to the value of the
4614         back end defined INITIAL_FRAME_ADDRESS macro.
4615         (expand_builtin_frame_address): Omit the base parameter to
4616         expand_builtin_return_addr.
4617         (expand_builtin_profile_func): Likewise.
4618         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
4619         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
4620         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
4621
4622 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
4623
4624         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
4625         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
4626         * config/frv/frv.c (frv_function_epilogue): Likewise.
4627
4628 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
4629
4630         * lambda-code (perfect_nestify): Remove mark/unmark
4631         for rewriting hack.
4632         * tree-loop-linear.c (linear_transform_loops): Add
4633         rewrite_into_ssa call so that ssa is correct for
4634         rewriting into loop closed.
4635
4636 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
4637
4638         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
4639         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
4640         BITMAP_FREE.
4641         * bt-load.c (btr_def_live_range, combine_btr_defs,
4642         migrate_btr_def, migrate_btr_defs): Likewise.
4643         * cfgcleanup.c (thread_jump): Likewise.
4644         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
4645         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
4646         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
4647         df_rd_local_compute, df_reg_info_compute): Likewise.
4648         * dominance.c (init_dom_info, free_dom_info): Likewise.
4649         * flow.c (init_propagate_block_info,
4650         free_propagate_block_info): Likewise.
4651         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
4652         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
4653         modify_reg_pav): Likewise.
4654         * loop-invariant.c (find_defs, find_invariant_insn,
4655         find_invariants, free_inv_motion_data): Likewise.
4656         * predict.c (tree_predict_by_opcode,
4657         estimate_bb_frequencies): Likewise.
4658         * stmt.c (expand_case): Likewise.
4659         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
4660         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
4661         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
4662         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
4663         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
4664         rewrite_ssa_into_ssa): Likewise.
4665         * tree-optimize.c (tree_rest_of_compilation): Likewise.
4666         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
4667         analyze_edges_for_bb, perform_edge_inserts): Likewise.
4668         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
4669         * tree-sra.c (tree_sra): Likewise.
4670         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
4671         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
4672         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
4673         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
4674         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
4675         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
4676         Likewise.
4677         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
4678         calculate_live_on_entry, calculate_live_on_exit,
4679         build_tree_conflict_graph): Likewise.
4680         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
4681         record_important_candidates, set_use_iv_cost, find_depends,
4682         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
4683         tree_ssa_iv_optimize_finalize): Likewise.
4684         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
4685         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
4686         tree_duplicate_loop_to_header_edge): Likewise.
4687         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
4688         * tree-ssa.c (verify_flow_insensitive_alias_info,
4689         verify_name_tags, verify_ssa, init_tree_ssa,
4690         delete_tree_ssa): Likewise.
4691         * tree-ssanames.c (marked_ssa_names, init_ssanames,
4692         fini_ssanames): Likewise.
4693         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
4694
4695 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
4696
4697         * config/rs6000/t-rtems: Completely reworked.
4698
4699 2005-02-17  Ira Rosen  <irar@il.ibm.com>
4700
4701         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
4702
4703 2005-02-17  Ira Rosen  <irar@il.ibm.com>
4704
4705         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
4706         POINTER_TYPE_P when checking that type is a pointer.
4707         (vect_get_memtag): Remove.
4708         (vect_address_analysis): Use POINTER_TYPE_P. Call
4709         vect_object_analysis with dummy parameter for memtag.
4710         (vect_object_analysis): Extract memtag (functionality that
4711         used to be in vect_get_memtag and moved here). Fix printings.
4712         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
4713         with correct parameters. Remove call to vect_get_memtag.
4714
4715 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
4716
4717         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
4718         (tree-vectorizer.o): Added missing dependencies.
4719
4720         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
4721         decleration.
4722         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
4723         declaration in tree-vectorizer.c, now has an extern declaration in
4724         tree-vectorizer.h).
4725         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
4726         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
4727         get_vectype_for_scalar_type, vect_is_simple_use,
4728         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
4729         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
4730         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
4731         vectorizable_store, vectorizable_operation, vectorizable_assignment,
4732         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
4733         find_loop_location): Likewise.
4734
4735         * tree-vectorizer.c (langhooks.h): #include removed.
4736         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
4737         moved to tree-vectorized.h.
4738         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
4739         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
4740         get_vectype_for_scalar_type, vect_is_simple_use,
4741         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
4742         vect_supportable_dr_alignment, new_loop_vec_info,
4743         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
4744         vect_set_verbosity_level, find_loop_location): Likewise.
4745
4746         (vect_analyze_loop): Function externalized. Declaration moved to
4747         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
4748         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
4749         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
4750         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
4751         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
4752         vect_enhance_data_refs_alignment, vect_analyze_operations,
4753         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
4754         vect_stmt_relevant_p, vect_get_loop_niters,
4755         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
4756         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
4757         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
4758         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
4759         vect_get_memtag): Likewise.
4760
4761         (vectorizable_load): Function externalized. Declaration moved to
4762         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
4763         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
4764         vect_transform_loop): Likewise.
4765         (vect_transform_stmt): Moved to tree-vect-transform.c.
4766         (vect_align_data_ref, vect_create_destination_var,
4767         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
4768         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
4769         vect_get_vec_def_for_operand, vect_init_vector,
4770         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
4771         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
4772         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
4773         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
4774         vect_do_peeling_for_loop_bound): Likewise.
4775
4776         * tree-vect-analyze.c: New file.
4777         * tree-vect-transform.c: New file.
4778
4779 2005-02-17  Jason Merrill  <jason@redhat.com>
4780
4781         PR mudflap/19319, c++/19317
4782         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
4783         slot explicit.
4784
4785 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
4786
4787         * doc/install.texi (Specific): Update link for Darwin-specific
4788         tool binary site.
4789
4790 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
4791
4792         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
4793         constant_boolean_node.
4794
4795 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
4796
4797         PR target/19019
4798         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
4799         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
4800
4801 2005-02-16  Richard Henderson  <rth@redhat.com>
4802
4803         PR 19920
4804         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
4805         with W_TYPE_SIZE.
4806         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
4807         replace uses with Wtype_MAXp1_F.
4808         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
4809         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
4810         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
4811         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
4812         and HAVE_TFMODE as appropriate.
4813         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
4814         (__floatdisf): Likewise.
4815         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
4816         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
4817         (Wtype_MAXp1_F): New.
4818         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
4819         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
4820
4821 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
4822
4823         * PR target/19162
4824         * arm.c (arm_apply_result_size): New function.
4825         * arm.h (APPLY_RESULT_SIZE): Define.
4826         * arm-protos.h (arm_apply_result_size): Add prototype.
4827         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
4828         (movxf): New expand.
4829         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
4830         (call_value_symbol): Remove predicate for operand 0.
4831         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
4832         (untyped_call): Rework to correclty return values for any type.
4833         (untyped_return): New expand.
4834         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
4835
4836 2005-02-16  Stan Shebs  <shebs@apple.com>
4837
4838         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
4839         * config/rs6000/t-darwin8: New, for 64-bit multilib.
4840
4841 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
4842
4843         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
4844         configure settings on Solaris 7 and later.
4845
4846 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
4847
4848         PR tree-optimization/19865
4849         * tree-optimize.c (init_tree_optimization_passes): Run
4850         pass_may_alias after pass_sra.
4851
4852 2005-02-16  Richard Henderson  <rth@redhat.com>
4853             Stuart Hastings  <stuart@apple.com>
4854
4855         PR debug/19521
4856         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
4857         Do nothing if debug info suppressed for this function.
4858         (dbxout_begin_function): Early exit if debug info suppressed for
4859         this function.
4860
4861 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
4862
4863         PR target/20007
4864         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
4865         find_basic_blocks.
4866         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4867
4868         PR tree-optimization/19967
4869         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
4870         expand_builtin_strchr, expand_builtin_strrchr): Take a new
4871         argument TYPE.  Adjust calls to fold_builtin_XXX.
4872         (expand_builtin, fold_builtin_1): Adjust calls to
4873         expand_builtin_XXX.
4874         (fold_builtin_strchr, fold_builtin_strpbrk,
4875         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
4876         result to a requested type TYPE.
4877
4878 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
4879
4880         PR middle-end/19857
4881         * fold-const.c (fold): Don't optimize (T)(x & cst) to
4882         (T)x & (T)cst if (T)cst overflows.
4883         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
4884         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
4885
4886 2005-02-15  Jeff Law  <law@redhat.com>
4887
4888         * gcse.c (blocks_with_calls): New bitmap.
4889         (alloc_gcse_mem): Allocate it.
4890         (free_gcse_mem): Free it.
4891         (clear_modifY_mem_tables): Clear it.
4892         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
4893         when we encounter CALL_INSNs.
4894         (compute_transp, case MEM): Handle blocks with calls separate
4895         from blocks without calls.  Use bitmap iterators rather than
4896         FOR_EACH_BB.
4897
4898 2005-02-15  Peter O'Gorman  <peter@pogma.com>
4899
4900         PR bootstrap/18810
4901         * mklibgcc.in (vis_hide): Use a temporary object file, not
4902         -o /dev/null.
4903
4904 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
4905
4906         PR target/19924
4907         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
4908         access optimization.
4909
4910 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
4911             Alan Modra  <amodra@bigpond.net.au>
4912
4913         PR target/19019
4914         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
4915         (_xlqsub): Rename to __gcc_qsub.
4916         (_xlqmul): Rename to __gcc_qmul.
4917         (_xlqdiv): Rename to __gcc_qdiv.
4918         Provide versioned symbol aliases with old names.
4919         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
4920         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
4921         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
4922         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
4923         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
4924
4925 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
4926
4927         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
4928         Fold ~(A - 1) and ~(A + -1) to -A.
4929
4930 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
4931
4932         PR pch/14940
4933         PR target/19300
4934         * config/host-linux.c (linux_gt_pch_use_address): Copy from
4935         config/pa/pa-host.c:pa_gt_pch_use_address.
4936
4937 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
4938
4939         * tree-vn.c (get_value_handle): Make sure that given an
4940         is_gimple_min_invariant expression, we always return it.
4941
4942 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
4943
4944         * passes.c (rest_of_handle_gcse): Fix a comment.
4945
4946 2005-02-15  Jeff Law  <law@redhat.com>
4947
4948         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
4949         bitmap.
4950         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
4951         (canon_list_insert, record_last_mem_set_info): Similarly.
4952         (clear_modify_mem_tables): Similarly.
4953
4954 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
4955
4956         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
4957         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
4958         config/mips/mips.md, config/rs6000/aix.h,
4959         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
4960
4961 2005-02-15  Richard Henderson  <rth@redhat.com>
4962
4963         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
4964         call to be best_edge.
4965
4966 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
4967
4968         * basic-block.h: Adjust the prototype for find_basic_blocks.
4969         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
4970         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
4971         find_basic_blocks.
4972
4973         * flow.c (recompute_reg_usage): Remove all arguments.
4974         * passes.c (rest_of_compilation): Adjust the call to
4975         recompute_reg_usage.
4976         * rtl.h: Adjust the prototype for recompute_reg_usage.
4977
4978 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
4979
4980         * tree-dump.c (dump_files): Update to reflect new member
4981         of dump_file_info.
4982         (dump_register): Add new argument.
4983         Set glob name.
4984         (dump_switch_p_1): Check against glob name if doglob was passed.
4985         (dump_switch_p): Check against regular first, then glob if
4986         we didn't have any hits on the dump name.
4987         * tree-optimize.c (register_one_dump_file):
4988         Pass in glob name as well.
4989         * tree-pass.h (struct dump_file_info): Add glob
4990         member.
4991
4992 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
4993
4994         PR preprocessor/16323
4995         * doc/invoke.texi: Document that -Wendif-labels is on by default.
4996
4997 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
4998
4999         PR target/19019
5000         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
5001         (trunctfdf2_internal1): New.
5002         (trunctfdf2_internal2): Renamed from trunctfdf2.
5003
5004 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
5005
5006         PR tree-optimization/19853
5007         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
5008
5009 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
5010
5011         * passes.c (rest_of_handle_loop_optimize): Remove calls to
5012         delete_dead_jumptables and cleanup_cfg.
5013
5014 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
5015
5016         * reload.c (find_reloads): Swap address_reloaded flags when
5017         swapping commutative operands.
5018
5019 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
5020
5021         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
5022         Use standard_iv_increment_position for computing the bsi position
5023         for create_iv.
5024         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
5025         the bsi position.
5026
5027 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
5028
5029         PR target/17428
5030         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
5031         life range of hard registers.
5032         * value-prof.c (insn_prefetch_values_to_profile): Only
5033         scan normal insns.
5034
5035         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
5036         profile in libcalls.
5037
5038 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
5039
5040         * bitmap.h (bitmap_and_compl_into): Return bool.
5041         * bitmap.c (bitmap_and_compl_into): Return changed flag.
5042
5043 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
5044
5045         PR tree-optimization/19944
5046         * fold-const.c (fold): Re-add ABS_EXPR folding.
5047
5048 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
5049
5050         PR target/19019
5051         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
5052         {TARGET,MASK}_XL_COMPAT.
5053         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
5054         MASK_XL_COMPAT.
5055         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
5056         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
5057         TARGET_XL_COMPAT.
5058         (rs6000_arg_partial_bytes): Same.
5059         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
5060         and XL compatibility enabled.
5061         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
5062         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
5063         test to final condition.
5064         (cmptf_internal2): New.
5065         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
5066         xl-compat.  Add TFmode information to description.
5067
5068 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
5069
5070         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
5071
5072 2005-02-13  Jason Merrill  <jason@redhat.com>
5073
5074         PR c++/16405
5075         * fold-const.c (fold_indirect_ref_1): Split out from...
5076         (build_fold_indirect_ref): Here.
5077         (fold_indirect_ref): New fn.
5078         * tree.h: Declare it.
5079         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
5080         (gimplify_modify_expr_rhs): Likewise.
5081         (gimplify_expr): Likewise.
5082
5083 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
5084
5085         PR tree-optimization/14303
5086         PR tree-optimization/15784
5087         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
5088         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
5089         ABS_EXPR<x> != 0 to x != 0.
5090
5091 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
5092
5093         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
5094         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
5095         spelling conventions.
5096
5097         * passes.c (rest_of_handle_gcse): Don't run cse_main and
5098         delete_trivially_dead_insns too many times.
5099
5100         * passes.c (rest_of_handle_gcse): Remove dead assignments to
5101         tem and tem2.
5102
5103 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5104
5105         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
5106         (vect_is_simple_iv_evolution): Remove redundant parameter
5107         and step check.
5108         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
5109         without last parameter.
5110         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
5111         Return pointer step. Call vect_is_simple_iv_evolution without
5112         last parameter. Check only that the step is multiple of size
5113         type. Remove stmt_vinfo updates.
5114         (vect_get_memtag_and_dr): Remove.
5115         (vect_get_memtag): New function.
5116         (vect_address_analysis): New function.
5117         (vect_object_analysis): New function.
5118         (vect_analyze_data_refs): Call vect_object_analysis and
5119         vect_get_memtag. Update stmt_vinfo fields.
5120
5121 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5122
5123         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
5124         exist and are objects. Remove checks for pointer.
5125         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
5126         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
5127         (vect_create_data_ref_ptr): Likewise.
5128         (vect_base_addr_differ_p): New function.
5129         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
5130         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
5131         Don't set the DR_BASE_NAME field of data-ref.
5132         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
5133
5134 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
5135
5136         * optabs.h (enum optab_index): Add new OTI_ldexp.
5137         (ldexp_optab): Define corresponding macro.
5138         * optabs.c (init_optabs): Initialize ldexp_optab.
5139         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
5140         patterns.
5141         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
5142         using ldexp_optab.
5143         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
5144         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
5145
5146         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
5147         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
5148         intrinsics.
5149
5150 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5151
5152         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
5153         to base_address.
5154         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
5155         stmt_vec_info.
5156         (vect_get_base_and_offset): Always return an address.
5157         (vect_create_addr_base_for_vector_ref): Remove treatment for
5158         different data reference types.
5159         (vect_compute_data_ref_alignment): Rename base to base_address in
5160         stmt_vec_info. Get the object in order to force its alignment.
5161         (vect_get_memtag_and_dr): Rename base to base_address in
5162         stmt_vec_info. Extract the object for memtag analysis.
5163
5164 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
5165
5166         PR regression/19898.
5167         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
5168         changes cc_status, use apply modified_in_p to part of cc_status
5169         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
5170         body.
5171
5172 2005-02-11  Richard Henderson  <rth@redhat.com>
5173
5174         * tree-complex.c (expand_complex_libcall): New.
5175         (expand_complex_multiplication): Use it for c99 compliance.
5176         (expand_complex_division): Likewise.
5177         * fold-const.c (fold_complex_add, fold_complex_mult): New.
5178         (fold): Call them.
5179         * builtins.c (built_in_names): Remove const.
5180         * tree.c (build_common_builtin_nodes): Build complex arithmetic
5181         builtins.
5182         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
5183         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
5184         (built_in_names): Remove const.
5185         * c-common.c (c_common_type_for_mode): Handle complex modes.
5186         * flags.h, toplev.c (flag_complex_method): Rename from
5187         flag_complex_divide_method.
5188         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
5189         __mulsc3, __muldc3, __mulxc3, __multc3): New.
5190         * libgcc2.h: Declare them.
5191         * libgcc-std.ver: Export them.
5192         * mklibgcc.in (lib2funcs): Build them.
5193
5194 2005-02-11  Steven Bosscher  <stevenb@suse.de>
5195
5196         PR tree-optimization/19876
5197         Partially revert my change from 2005-01-14
5198         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
5199         (compute_antic): ...and remove the loop here.
5200
5201 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
5202
5203         PR middle-end/19858
5204         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
5205         is number of inner's bits, avoid creating a BIT_FIELD_REF.
5206
5207         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
5208         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
5209
5210 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
5211
5212         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
5213         offsets for the big-endian 32-bit case.
5214
5215 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
5216
5217         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
5218
5219 2005-02-11  Dale Johannesen  <dalej@apple.com>
5220
5221         * cselib.c (cselib_process_insn):  Clear out regs where
5222         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
5223         * reload.c (find_equiv_reg): Ditto.
5224
5225 2005-02-11  Ian Lance Taylor  <ian@airs.com>
5226
5227         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
5228         with no elements.
5229
5230         * tree.c (build_function_type_list): Work correctly if there are
5231         no arguments.
5232
5233 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
5234
5235         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
5236         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
5237         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
5238         TARGET_ZARCH instead of TARGET_64BIT.
5239
5240 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
5241
5242         * config/rs6000/t-rtems:
5243         (MULTILIB_OPTIONS): Remove mcpu=602.
5244         (MUTLILIB_DIRNAMES): Remove m602.
5245         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
5246         Let mcpu=602 match mcpu=603.
5247         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
5248
5249 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5250
5251         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
5252         signal trampolines.
5253
5254 2005-02-10  David Daney  <ddaney@avtrex.com>
5255
5256         * config/alpha/linux-unwind.h: Add exception clause to copyright.
5257         * config/i386/linux-unwind.h: Likewise.
5258         * config/ia64/linux-unwind.h: Likewise.
5259         * config/mips/linux-unwind.h: Likewise.
5260         * config/pa/linux-unwind.h: Likewise.
5261         * config/rs6000/linux-unwind.h: Likewise.
5262         * config/s390/linux-unwind.h: Likewise.
5263         * config/sh/linux-unwind.h: Likewise.
5264         * config/sparc/linux-unwind.h: Likewise.
5265
5266 2005-02-10  Steven Bosscher  <stevenb@suse.de>
5267
5268         PR tree-optimization/17549
5269         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
5270         TER to replace a DEF with its expression if the DEF and the
5271         rhs of the expression we replace into have the same root
5272         variable.
5273
5274 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
5275
5276         * config/mips/mips.md: Fix the placement of the match_scratch in the
5277         lea64 peephole2.
5278
5279 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
5280
5281         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
5282         Fix comment typos.
5283
5284 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
5285
5286         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
5287         (strip_offset): Handle addresses.
5288         (add_address_candidates): Use strip_offset.
5289         (difference_cost): Reflect strip_offset change.
5290         (force_var_cost, difference_cost): Strip nops.
5291
5292 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
5293
5294         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
5295
5296         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
5297         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
5298         config/cris/cris-protos.h, config/cris/cris.c: Update
5299         copyright.
5300
5301 2005-02-10  Jeff Law  <law@redhat.com>
5302
5303         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
5304         (lookup_avail_expr): Similarly.
5305
5306 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
5307
5308         * builtins.c (fold_builtin_powi): New function.
5309         (fold_builtin_1): Call it.
5310
5311 2005-02-10  Steven Bosscher  <stevenb@suse.de>
5312
5313         PR documentation/19309
5314         * doc/cpp.texi: The __GNUC__ and related predefined macros
5315         are also defined for the "standalone" cpp.
5316         Some non-GCC compilers may also define __GNUC__.
5317
5318 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
5319
5320         PR c/19342
5321         * c-typeck.c (common_type): New routine.  Old common_type renamed
5322         to...
5323         (c_common_type): ...this.
5324         (build_conditional_expr, build_binary_op): Use c_common_type instead
5325         of common_type.
5326
5327 2005-02-10  Steven Bosscher  <stevenb@suse.de>
5328
5329         * doc/md.texi: Replace @samp{length} with @code{length}.
5330
5331 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
5332
5333         PR tree-optimization/18687
5334         * tree-flow.h (find_loop_niter): Declare.
5335         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
5336         Try using scev even for loops with more than one exit.
5337         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
5338         (struct ivopts_data): Added niters field.
5339         (struct nfe_cache_elt): New.
5340         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
5341         functions.
5342         (tree_ssa_iv_optimize_init): Initialize niters cache.
5343         (determine_number_of_iterations): Removed.
5344         (find_induction_variables): Do not call determine_number_of_iterations.
5345         Access niters for single exit through niter_for_single_dom_exit.
5346         (add_iv_outer_candidates): Access niters for single exit through
5347         niter_for_single_dom_exit.
5348         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
5349         number_of_iterations_cond.
5350         (iv_period): New function.
5351         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
5352         (may_replace_final_value): Take data argument.  Use
5353         niter_for_single_dom_exit.
5354         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
5355         (rewrite_use_compare): Pass data to may_eliminate_iv.
5356         (rewrite_use_outer): Pass data to may_replace_final_value.
5357         (free_loop_data): Clean up the niters cache.
5358         (tree_ssa_iv_optimize_finalize): Free the niters cache.
5359         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
5360         * tree-ssa-loop-niter.c (find_loop_niter): New function.
5361         (find_loop_niter_by_eval): Use tree_int_cst_lt.
5362         (num_ending_zeros): Moved to tree.c.
5363         * tree.h (num_ending_zeros): Declare.
5364         * tree.c (num_ending_zeros): Moved from tree.c.
5365
5366 2005-02-09  Richard Henderson  <rth@redhat.com>
5367
5368         * builtins.c (DEF_BUILTIN): Add COND argument.
5369         * tree.h (DEF_BUILTIN): Likewise.
5370         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
5371         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
5372         match.
5373         (DEF_BUILTIN_STUB): New.
5374         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
5375         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
5376         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
5377         * c-common.c (DEF_BUILTIN): Add COND argument.
5378         * tree.c (local_define_builtin): New.
5379         (build_common_builtin_nodes): New.
5380
5381 2005-02-09  Roger Sayle  <roger@eyesopen.com>
5382
5383         * fold-const.c (fold_strip_sign_ops): New function to simplify a
5384         floating point expression ignoring the sign of the result.
5385         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
5386         (fold) <MULT_EXPR>: Use it to simplify x*x.
5387         * tree.h (fold_strip_sign_ops): Prototype here.
5388         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
5389         argument.  Use fold_strip_sign_ops to simplify the first argument.
5390         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
5391         first argument when the second argument is an even integer
5392         constant, but only with -funsafe_math_optimizations.
5393         (fold_builtin_1): Update call to fold_builtin_copysign.
5394
5395 2005-02-09  Ian Lance Taylor  <ian@airs.com>
5396
5397         PR middle-end/19583
5398         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
5399         just check whether EH_FILTER_FAILURE falls through.
5400
5401 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
5402
5403         * gcc/haifa-sched.c (schedule_block): Make queued sched group
5404         insns return to ready list in the next turn.
5405
5406 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
5407
5408         PR middle-end/19402
5409         * builtins.def: New __builtin_powi[lf].
5410         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
5411         (expand_builtin_powi): New function.
5412         (expand_builtin): Dispatch to expand_builtin_powi.
5413         * libgcc2.h: Add prototypes for __builtin_powi[lf].
5414         * libgcc2.c: Add __builtin_powi[lf] implementation.
5415         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
5416         * optabs.h: Add powi_optab.
5417         * optabs.c (init_optabs): Initialize powi_optab.
5418         * doc/extend.texi: Document __builtin_powi[lf].
5419
5420 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
5421
5422         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
5423         exists.
5424
5425 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
5426
5427         PR middle-end/19854
5428         * fold-const.c (try_move_mult_to_index): Remove redundant
5429         type argument.  Create ADDR_EXPR with correct type.
5430         (fold): Update callers of try_move_mult_to_index.  Convert
5431         result to the appropriate type.
5432
5433 2005-02-09  Roger Sayle  <roger@eyesopen.com>
5434
5435         PR target/19597
5436         * config/avr/avr.c (default_rtx_costs): Delete.
5437         (avr_operand_rtx_cost): New function.
5438         (avr_rtx_costs): Completely rewrite.
5439
5440 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
5441
5442         PR target/19806
5443         * config/cris/cris.c (in_code): New variable.
5444         (cris_output_addr_const): Now a static function, a wrapper for
5445         output_addr_const.
5446         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
5447         case from old cris_output_addr_const.
5448         (cris_asm_output_label_ref): Similar for LABEL_REF.
5449         (cris_output_addr_const_extra): Similar for UNSPEC.
5450         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
5451         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
5452         * config/cris/cris-protos.h (cris_output_addr_const): Remove
5453         declaration.
5454         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
5455         (cris_asm_output_label_ref): Declare.
5456
5457 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
5458
5459         PR preprocessor/19801
5460         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
5461         filenames that changed when libcpp was moved to the toplevel.
5462
5463 2005-02-07  Roger Sayle  <roger@eyesopen.com>
5464
5465         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
5466         zero extensions of BImode operands.  Call lowpart_subreg instead
5467         of gen_lowpart_common and gen_lowpart_SUBREG.
5468
5469 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
5470
5471         PR ada/19489
5472         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
5473         * configure.ac: Set cc_for_cross_gnattools.
5474         * configure: Regenerate.
5475
5476 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
5477
5478         PR target/19803
5479         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
5480
5481 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5482
5483         PR debug/19327
5484         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
5485         of nested functions.
5486
5487 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
5488
5489         * doc/extend.texi: Document deprecated extensions allowing
5490         static floating-point members to have initializers and allowing
5491         floating-point literals in integral constant expressions.
5492
5493 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
5494
5495         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
5496         config/darwin7.h, config/mips/mips.c,
5497         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
5498         Update copyright.
5499
5500         * cse.c: Update comments.
5501
5502 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
5503
5504         PR middle-end/19775
5505         * builtins.c (fold_builtin_sqrt): Transform
5506         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
5507         pow(x,y*0.5).
5508
5509 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
5510             Dorit Naishlos  <dorit@il.ibm.com>
5511
5512         * doc/invoke.texi (ftree-vectorizer-verbose): New.
5513         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
5514         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
5515         was added.
5516         * tree.h (vect_set_verbosity_level): New extern function declaration
5517         added.
5518         * tree-vectorizer.h (verbosity_levels): New enum type.
5519         * tree-vectorizer.c (vect_debug_stats): Function removed.
5520         (vect_debug_details): Likewise.
5521         (vect_verbosity_level): Global variable was defined and initialized.
5522         (vect_dump): Global variable definition.
5523         (vect_print_dump_info): New function.
5524         (vect_set_dump_settings): New function.
5525         (vect_set_verbosity_level): New function.
5526         (vectorize_loops): Add call to vect_set_dump_settings.
5527
5528         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
5529         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
5530         (slpeel_tree_peel_loop_to_edge): Likewise.
5531
5532         (vect_analyze_offset_expr): Call to vect_print_dump_info with
5533         appropriate verbosity level instead of call to vect_debug_details
5534         or vect_debug_stats.
5535         (vect_get_base_and_offset):
5536         (vect_create_addr_base_for_vector_ref):
5537         (get_vectype_for_scalar_type):
5538         (vect_create_data_ref_ptr):
5539         (vect_init_vector):
5540         (vect_get_vec_def_for_operand):
5541         (vect_finish_stmt_generation):
5542         (vectorizable_assignment):
5543         (vectorizable_operation):
5544         (vectorizable_store):
5545         (vectorizable_load):
5546         (vect_transform_stmt):
5547         (vect_update_ivs_after_vectorizer):
5548         (vect_do_peeling_for_loop_bound):
5549         (vect_update_inits_of_drs):
5550         (vect_do_peeling_for_alignment):
5551         (vect_transform_loop):
5552         (vect_is_simple_use):
5553         (vect_analyze_operations):
5554         (vect_is_simple_iv_evolution):
5555         (vect_analyze_scalar_cycles):
5556         (vect_analyze_data_ref_dependence):
5557         (vect_analyze_data_ref_dependences):
5558         (vect_compute_data_ref_alignment):
5559         (vect_enhance_data_refs_alignment):
5560         (vect_analyze_data_refs_alignment):
5561         (vect_analyze_data_ref_access):
5562         (vect_analyze_data_ref_accesses):
5563         (vect_analyze_pointer_ref_access):
5564         (vect_get_memtag_and_dr):
5565         (vect_analyze_data_refs):
5566         (vect_mark_relevant):
5567         (vect_stmt_relevant_p):
5568         (vect_mark_stmts_to_be_vectorized):
5569         (vect_can_advance_ivs_p):
5570         (vect_get_loop_niters):
5571         (vect_analyze_loop_form):
5572         (vect_analyze_loop):
5573         (vectorize_loops): Likewise.
5574
5575         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
5576         (vect_update_inits_of_drs):
5577         (vect_do_peeling_for_alignment):
5578         (vect_transform_loop):
5579         (vect_analyze_operations):
5580         (vect_analyze_scalar_cycles):
5581         (vect_analyze_data_ref_dependences):
5582         (vect_analyze_data_refs_alignment):
5583         (vect_analyze_data_ref_accesses):
5584         (vect_analyze_data_refs):
5585         (vect_mark_stmts_to_be_vectorized):
5586         (vect_get_loop_niters):
5587         (vect_analyze_loop_form):
5588         (vect_analyze_loop): Likewise.
5589         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
5590
5591 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
5592
5593         PR bootstrap/19796
5594         Revert:
5595         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
5596         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
5597         either -ffast-math or -funsafe-math-optimizations is in use.
5598
5599         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
5600         * config/mips/irix-csr.c: New file.
5601         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
5602         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
5603         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
5604         executables.
5605
5606 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
5607
5608         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
5609         redundant, incorrect definitions.
5610
5611         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
5612         expand.
5613         ("*tls_indirect_call"): New, reference hard regs directly.
5614         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
5615
5616 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
5617
5618         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
5619         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
5620
5621 2005-02-06  Roger Sayle  <roger@eyesopen.com>
5622
5623         PR rtl-optimization/19800
5624         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
5625         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
5626         gen_lowpart.
5627
5628 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
5629
5630         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
5631
5632 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
5633
5634         PR other/17135
5635         * doc/invoke.texi: Correct documentation of -freorder-functions.
5636
5637 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
5638
5639         PR other/14402
5640         * doc/invoke.texi: Don't mention gccbug.
5641
5642 2005-02-06  Roger Sayle  <roger@eyesopen.com>
5643             Andrew Pinski  <pinskia@physics.uc.edu>
5644             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
5645
5646         * simplify-rtx.c (simplify_relational_operation_1): Simplify
5647         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
5648         into just (zero_extract:SI FOO (const_int 1) BAR).
5649
5650 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
5651
5652         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
5653         macro locally.  Don't give last revision date.  Use GCC version
5654         number from gcc-common.texi.
5655         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
5656         revision date.  Use GCC version number from gcc-common.texi.
5657         Describe being a library as current state rather than as 3.x
5658         history.
5659         * doc/gcc.texi: Remove last update date.
5660         * doc/gccint.texi: Likewise.  Update copyright dates.
5661         * doc/install.texi: Update copyright dates.
5662
5663 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
5664
5665         PR other/7549
5666         * doc/invoke.texi: Mention for each option included in -Wall that
5667         it is included in -Wall.
5668         * doc/gcc.texi: Update copyright and last modification date.
5669
5670 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
5671
5672         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
5673         unnecessary cast to original induction variable increments.
5674
5675 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
5676
5677         PR tree-optimization/18219
5678         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
5679         in distributed form.
5680
5681 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
5682
5683         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
5684         Set bitpos and offset later in the function.  Do nothing if the
5685         target is a register and if the bitfield lies completely outside
5686         that register.
5687         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
5688         here.  Return an uninitialised register if the source value is stored
5689         in a register and the bitfield lies completely outside that register.
5690
5691 2005-02-06  Steven Bosscher  <stevenb@suse.de>
5692
5693         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
5694         not SET_DEST.
5695
5696 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
5697
5698         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
5699
5700 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
5701
5702         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
5703         * config/darwin8.h: New.
5704         * config/darwin7.h: Update comment.
5705
5706 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
5707             Dorit Naishlos  <dorit@il.ibm.com>
5708
5709         * tree-vectorizer.h (LOC): New type.
5710         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
5711         (loop_line_number): New field in struct _loop_vec_info.
5712         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
5713
5714         * tree-vectorizer.c (input.h): Included.
5715         (find_loop_location): New function.
5716         (vect_debug_stats): Argument changed from loop to LOC. Computation of
5717         loop line number removed.
5718         (vect_debug_details): Likewise.
5719         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
5720
5721         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
5722         call to vect_debug_details/stats changed from loop to loop_loc.
5723         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
5724         (slpeel_tree_peel_loop_to_edge): Likewise.
5725
5726         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
5727         changed from NULL to UNKNOWN_LOC.
5728         (vect_get_base_and_offset):
5729         (vect_create_addr_base_for_vector_ref):
5730         (get_vectype_for_scalar_type):
5731         (vect_create_data_ref_ptr):
5732         (vect_init_vector):
5733         (vect_get_vec_def_for_operand):
5734         (vect_finish_stmt_generation):
5735         (vectorizable_assignment):
5736         (vectorizable_operation):
5737         (vectorizable_store):
5738         (vectorizable_load):
5739         (vect_transform_stmt):
5740         (vect_update_ivs_after_vectorizer):
5741         (vect_do_peeling_for_loop_bound):
5742         (vect_do_peeling_for_alignment):
5743         (vect_transform_loop):
5744         (vect_is_simple_use):
5745         (vect_analyze_operations):
5746         (vect_is_simple_iv_evolution):
5747         (vect_analyze_scalar_cycles):
5748         (vect_analyze_data_ref_dependences):
5749         (vect_compute_data_ref_alignment):
5750         (vect_enhance_data_refs_alignment):
5751         (vect_analyze_data_ref_access):
5752         (vect_analyze_data_ref_accesses):
5753         (vect_analyze_pointer_ref_access):
5754         (vect_get_memtag_and_dr):
5755         (vect_analyze_data_refs):
5756         (vect_mark_relevant):
5757         (vect_stmt_relevant_p):
5758         (vect_mark_stmts_to_be_vectorized):
5759         (vect_can_advance_ivs_p):
5760         (vect_get_loop_niters):
5761         (vect_analyze_loop):
5762         (vectorize_loops): Likewise.
5763
5764         (vectorizable_load): Argument in call to vect_debug_details/stats
5765         changed from loop to LOOP_LOC (loop_vinfo).
5766         (vect_transform_loop):
5767         (vect_analyze_operations):
5768         (vect_analyze_scalar_cycles):
5769         (vect_analyze_data_ref_dependence):
5770         (vect_enhance_data_refs_alignment):
5771         (vect_analyze_data_ref_accesses):
5772         (vect_analyze_pointer_ref_access):
5773         (vect_analyze_data_refs):
5774         (vect_analyze_loop): Likewise.
5775
5776         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
5777         changed from loop to loop_loc.
5778
5779         (vect_enhance_data_refs_alignment): Removed unused variable loop.
5780
5781 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
5782             Dorit Naishlos  <dorit@il.ibm.com>
5783
5784         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
5785         declaration added.
5786         (vect_analyze_data_ref_dependences): Likewise.
5787
5788         (vect_is_simple_use): Argument changed from loop structure to
5789         loop_vect_info structure.
5790         (vect_can_advance_ivs_p): Likewise.
5791         (vect_create_index_for_vector_ref): Likewise.
5792         (vect_update_ivs_after_vectorizer): Likewise.
5793         (new_stmt_vec_info): Likewise.
5794
5795         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
5796         changed from loop to loop_vinfo.
5797         (vect_create_data_ref_ptr): First argument in call to
5798         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
5799         (vectorizable_assignment): Second argument in call to vect_is_simple_use
5800         was changed from loop to loop_vinfo.
5801         (vectorizable_operation): Likewise.
5802         (vectorizable_store): Likewise.
5803         (vect_mark_stmts_to_be_vectorized): Likewise.
5804         (vect_do_peeling_for_loop_bound): First argument in call to
5805         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
5806         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
5807         was changed from loop to loop_vinfo.
5808         (vect_analyze_data_ref_dependences): Third argument in call to
5809         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
5810
5811         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
5812         (vect_create_data_ref_ptr): Likewise.
5813         (vect_init_vector): Likewise.
5814         (vect_get_vec_def_for_operand): Likewise.
5815         (vectorizable_assignment): Likewise.
5816         (vectorizable_operation): Likewise.
5817         (vectorizable_store): Likewise.
5818         (vectorizable_load): Likewise.
5819         (vect_update_ivs_after_vectorizer): Likewise.
5820         (vect_is_simple_use): Likewise.
5821         (vect_analyze_data_ref_dependence): Likewise.
5822         (vect_analyze_pointer_ref_access): Likewise.
5823         (vect_can_advance_ivs_p): Likewise.
5824
5825         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
5826         before _stmt_vec_info.
5827         (_stmt_vec_info): Loop field replaced by loop_vec_info.
5828         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
5829         (new_stmt_vec_info): Argument changed from loop structure to
5830         loop_vect_info structure
5831
5832         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
5833         (vect_analyze_offset_expr): Avoid 80 columns overflow.
5834         (vect_create_addr_base_for_vector_ref): Likewise.
5835         (vect_analyze_pointer_ref_access): Likewise.
5836
5837 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
5838
5839         PR tree-opt/19768
5840         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
5841         phi flag if the phi is abnormal.
5842
5843 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
5844
5845         PR tree-opt/19736
5846         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
5847         information for the new statement.
5848
5849 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
5850
5851         PR driver/19117
5852         * gcc.c (main): Include the target in -v output.
5853
5854 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
5855
5856         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
5857         Do not drop the extend if we'd have to add a paradoxical subreg
5858         later.  Include optabs.h and insn-codes.h.
5859         * Makefile.in (combine.o): Depend on $(OPTABS_H).
5860
5861 2005-02-02  Roger Sayle  <roger@eyesopen.com>
5862
5863         PR middle-end/19405
5864         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
5865         * fold-const.c (const_binop): Avoid constant folding floating
5866         point operations in modes that use composite representations.
5867         * simplify-rtx.c (simplify_binary_operation): Likewise.
5868
5869 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
5870
5871         * config/rs6000/altivec.md (altivec_dst): Make the first operand
5872         a REG, not a MEM.
5873         (altivec_dstt): Likewise.
5874         (altivec_dstst): Likewise.
5875         (altivec_dststt): Likewise.
5876         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
5877         of first operand.
5878
5879 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
5880
5881         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
5882         EXPR_LOCUS from orig_cond to the new cond_stmt.
5883         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
5884         the new vec_stmt.
5885
5886 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
5887
5888         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
5889         standard_iv_increment_position. Remove call to bsi_next
5890         (no need to bump the iterator anymore).
5891         (vect_create_index_for_vector_ref): Call
5892         standard_iv_increment_position. Remove second function argument.
5893         (vect_finish_stmt_generation): Remove call to bsi_next
5894         (no need to bump the iterator anymore).
5895         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
5896         to vect_create_index_for_vector_ref.
5897
5898 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
5899
5900         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
5901         phis are used out of the loop.
5902
5903 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
5904
5905         PR c/17807
5906         * c-decl.c (undef_nested_function): New variable.
5907         (pop_scope): Diagnose undefined nested functions.
5908         (finish_function): Don't attempt cgraph processing or genericizing
5909         if current top-level function contained an undefined nested
5910         function.  Reset undef_nested_function at the end of a top-level
5911         function.
5912
5913 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
5914
5915         * tree.c (build_int_cst_type): Take sign of the value into account
5916         when deciding whether sign extend the value.
5917
5918 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
5919
5920         PR c/18502
5921         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
5922         (cpp_options, cc1_options): Change %{std*&ansi} to
5923         %{std*&ansi&trigraphs}.
5924
5925 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
5926
5927         * cse.c: Update comments.
5928
5929 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
5930
5931         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
5932         arguments go on the stack.  Do not put complex doubles in odd/even
5933         pairs.
5934
5935 2005-02-02  Steven Bosscher  <stevenb@suse.de>
5936
5937         * doc/invoke.texi: Update the options enabled at -O1, -O2,
5938         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
5939         -ftree-pre, and -fthread-jumps.
5940
5941 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
5942
5943         PR tree-optimization/19578
5944         * tree-flow.h (modified_noreturn_calls): Declare.
5945         (noreturn_call_p): Declare.
5946         * tree-flow-inline.h (noreturn_call_p): New function.
5947         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
5948         * tree-cfg.c (modified_noreturn_calls): New variable.
5949         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
5950         that contain a mid-block noreturn call.
5951         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
5952
5953 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
5954
5955         * df.c (df_def_record_1, df_uses_record): Don't use
5956         DF_FOR_REGALLOC.
5957         * df.h (DF_FOR_REGALLOC): Remove.
5958
5959 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
5960
5961         PR c/19435
5962         * c-typeck.c (really_start_incremental_init): Reset
5963         constructor_max_index for arrays of incomplete type.
5964
5965 2005-02-02  Jeff Law  <law@redhat.com>
5966
5967         * gcse.c (struct reg_set): Store the block index where the register
5968         was set rather than the setting insn.
5969         (record_one_set, compute_transp): Corresponding changes.
5970         (pre_insert_copy_insn): Do not call replace_one_set.
5971         (replace_one_set): Remove.
5972
5973 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
5974
5975         PR other/15514
5976         * doc/gcov.texi: Fix typo.
5977
5978 2005-02-01  Richard Henderson  <rth@redhat.com
5979
5980         PR target/19680
5981         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
5982         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
5983         type to bool.
5984         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
5985         * config/i386/i386-protos.h: Update.
5986
5987 2005-02-01  Steven Bosscher  <stevenb@suse.de>
5988
5989         PR tree-optimization/19217
5990         * tree-cfg.c (verify_expr): Use the data field to see if TP was
5991         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
5992         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
5993         that it is walking a PHI node.
5994
5995 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
5996
5997         * doc/extend.texi (Nested Functions): Update.
5998
5999 2005-02-01  Richard Henderson  <rth@redhat.com>
6000
6001         PR 19696
6002         * optabs.c (expand_copysign_absneg): Export.
6003         * optabs.h (expand_copysign_absneg): Declare.
6004         * config/rs6000/rs6000.md (copysigntf3): New.
6005
6006 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
6007
6008         PR tree-optimization/19633
6009         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
6010         * tree-ssa-alias.c (init_alias_info): Initialize.
6011         (merge_pointed_to_info): Set.
6012         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
6013         (dump_points_to_info_for): Show value of pt_null.
6014         (struct count_ptr_d): Declare.
6015         (find_ptr_dereference): Remove.
6016         (ptr_is_dereferenced_by): Remove.
6017         (count_ptr_derefs): New local function.
6018         (count_uses_and_derefs): New local function.
6019         (compute_points_to_and_addr_escape): Call it.  If the number
6020         of dereferences is greater than zero, mark the pointer as
6021         dereferenced.  If there are fewer dereferences than uses of
6022         the pointer, the pointer's value escapes.
6023
6024 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
6025
6026         PR tree-optimization/19670
6027         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
6028         here...
6029         (verify_use): ... set it here, instead.
6030
6031 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
6032
6033         * doc/sourcebuild.texi (Test directives): Fix formatting.
6034
6035         * doc/sourcebuild.texi (Test directives): Describe selector
6036         expressions.
6037
6038 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
6039
6040         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
6041         specific 64-bit CPUs.
6042
6043 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
6044
6045         PR target/16201
6046         * arm.c (arm_eliminable_register): New function.
6047         (adjacent_mem_locations): Don't allow eliminable registers.  Use
6048         HOST_WIDE_INT for address offsets.
6049         * arm-protos.h (arm_eliminable_register): Add prototype.
6050
6051 2005-02-01  Steven Bosscher  <stevenb@suse.de>
6052
6053         PR optimization/15242
6054         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
6055         * basic-block.h (duplicate_computed_gotos): Add prototype.
6056         * bb-reorder.c (duplicate_computed_gotos): New function to
6057         duplicate sufficiently small blocks ending in a computed jump.
6058         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
6059         if not optimizing for size.
6060         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
6061         never do tail merging for blocks ending in a computed jump.
6062         * doc/invoke.texi: Document the max-goto-duplication-insns param.
6063
6064 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
6065
6066         Patch from Richard Sandiford <rsandifo@redhat.com>
6067         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
6068         from inheriting a subreg equivalence with a non-spill register.
6069
6070         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
6071
6072 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
6073
6074         * config/frv/frv.c (movcc_fp_destination_operand): New.
6075         (gpr_or_memory_operand): Fix typo in comment.
6076         (gpr_or_memory_operand_with_scratch): New.
6077         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
6078         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
6079         movcc_fp_destination_operand.
6080         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
6081         Legitimize memory addresses using a scratch register.
6082
6083 2005-01-31  Jeff Law  <law@redhat.com>
6084
6085         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
6086         bitmap a sparse bitmap instead of a simple bitmap.
6087         (mark_def_sites_initialize_block):  Corresponding changes.
6088         (ssa_mark_def_sites_initialize_block): Likewise.
6089         (ssa_mark_phi_uses): Likewise.
6090         (mark_def_site, ssa_mark_def_sites): Likewise.
6091         (mark_def_site_blocks): Likewise.
6092         (rewrite_ssa_into_ssa): Likewise.
6093
6094         * tree-ssa-dom.c (record_cond): Pass correct variable type
6095         for last argument to htab_find_slot_with_hash.
6096
6097         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
6098         effects when optimizing 0 % X.  Do not try to optimize X % 0.
6099
6100 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
6101
6102         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
6103         1_mmalua.
6104
6105 2005-02-01  Eric Christopher  <echristo@redhat.com>
6106
6107         * config/mips/mips.c (override_options): Warn if -mint64
6108         is used.
6109         * doc/invoke.texi (MIPS Options): Document that -mint64 is
6110         deprecated.
6111
6112 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
6113
6114         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
6115         timestamp.
6116         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
6117         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
6118         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
6119         (cached_regno): Initialize to INVALID_REGNUM.
6120         (cse_reg_info_table_size,
6121         cse_reg_info_table_first_uninitialized,
6122         cse_reg_info_timestamp): New.
6123         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
6124         get_cse_reg_info.
6125         (init_cse_reg_info, get_cse_reg_info_1): New.
6126         (get_cse_reg_info): Cache the last look-up.
6127         (new_basic_block): Update the code to clear mappings from
6128         registers to cse_reg_info entries.
6129         (cse_main): Call init_cse_reg_info.
6130
6131         * cse.c (get_cse_reg_info): Update a comment.
6132
6133 2005-01-31  Steven Bosscher  <stevenb@suse.de>
6134
6135         PR c/19333
6136         * c-decl.c (start_decl): Do not warn about arrays of elements with
6137         an incomplete type here.
6138         (grokdeclarator): Do it here by making a pedwarn an error.
6139         * c-typeck.c (push_init_level): If there were previous errors with
6140         the constructor type, do not warn about braces for initializers.
6141         (process_init_element): Likewise for excess initializer elements.
6142
6143 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
6144
6145         * cse.c (delete_trivially_dead_insn): Don't iterate.
6146
6147 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
6148
6149         * config/rs6000/rs6000.md (copysignsf3): New expand.
6150         (copysigndf3): Likewise.
6151
6152 2005-01-31  Steven Bosscher  <stevenb@suse.de>
6153
6154         * recog.c (constrain_operands): Only look for earlyclobber operand
6155         conflicts if an '&' constraint was seen.
6156
6157 2005-01-31  Marc Espie <espie@openbsd.org>
6158
6159         * config.gcc: Don't include embedded systems fragment, switches default
6160         debugging format to ELF.
6161         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
6162         longer pick it up there.
6163
6164 2005-01-31  Dale Johannesen  <dalej@apple.com>
6165
6166         * doc/extend.texi (nested functions): Fix linkage description.
6167         Clarify that static is not allowed.
6168
6169 2005-01-31  Dale Johannesen  <dalej@apple.com>
6170
6171         * config/rs6000/darwin.md (movsf_low_di):  Make work.
6172         (movdf_low_di):  Make work.
6173
6174 2005-01-31  Dale Johannesen  <dalej@apple.com>
6175
6176         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
6177         Make work for 64 bit.
6178
6179 2005-01-31  Roger Sayle  <roger@eyesopen.com>
6180             Dale Johannesen  <dalej@apple.com>
6181
6182         PR middle-end/19650
6183         * fold-const.c (fold_binary_op_with_conditional_arg):
6184         Make types match original operands, before STRIP_NOPS.
6185
6186 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
6187
6188         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
6189         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
6190         (struct gcc_sigcontext): Delete.  Merge contents to..
6191         (struct gcc_ucontext): ..here.
6192         (get_sigcontext): Delete.
6193         (get_regs): New function, like get_sigcontext but return regs ptr.
6194         64-bit version finds regs from r1 to support vdso.
6195         (ppc_linux_aux_vector): New function.
6196         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
6197         and vector regs.
6198
6199 2005-01-31  Ira Rosen  <irar@il.ibm.com>
6200
6201         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
6202         sizetype.
6203         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
6204         redundant fold. Fix misalignment for MINUS_EXPR.
6205         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
6206         (vect_analyze_pointer_ref_access): Likewise.
6207         (vect_get_memtag_and_dr): Likewise.
6208
6209 2005-01-31  Richard Henderson  <rth@redhat.com>
6210
6211         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
6212         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
6213         absnegdf2_i387, absnegxf2_i387): Likewise.
6214
6215 2005-01-31  Richard Henderson  <rth@redhat.com>
6216
6217         PR 19696
6218         * optabs.c (expand_copysign_absneg): New.
6219         (expand_copysign_bit): Split out from ...
6220         (expand_copysign): ... here.  Use expand_copysign_absneg.
6221
6222 2005-01-30  Roger Sayle  <roger@eyesopen.com>
6223
6224         PR middle-end/19697
6225         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
6226         constant as the second operand and a register as the third.
6227
6228 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
6229
6230         PR target/19704
6231         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
6232         that dllimport'd functions do not use all call-clobbered registers
6233         to pass parameters.
6234
6235 2005-01-30  Richard Henderson  <rth@redhat.com>
6236
6237         PR 19696
6238         * optabs.c (expand_absneg_bit): Split out from expand_unop and
6239         expand_abs_nojump and generalize.  Use operand_subword and
6240         emit_no_conflict_block.  Support large modes.
6241         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
6242         back to maximum.
6243         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
6244         negation to subtraction.
6245         (expand_copysign): Check that the format has signed zeros.
6246         Use operand_subword and emit_no_conflict_block.  Support large modes.
6247
6248 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
6249
6250         Fix PR tree-optimization/19624
6251
6252         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
6253         * tree-ssa-pre.c: Add cfgloop.h.
6254         Update comment.
6255         (pre_stats): New member, constified.
6256         (inserted_exprs): New static variable.
6257         (NECESSARY): New macro.
6258         (create_expression_by_pieces): Fold the expression, and
6259         mark it as defaulting to not necessary. Also put in
6260         inserted_exprs.
6261         (fully_constant_expression): New function.
6262         (insert_into_preds_of_block): Modify to not insert phis when we
6263         are playing with induction variables.
6264         Push phis onto the inserted_exprs vector, and mark them as not
6265         necessary by default.
6266         (insert_aux): Call fully_constant_expression on eprime.
6267         If all edges produce the same value, mark it constant.
6268         (mark_operand_necessary): New function.
6269         (remove_dead_inserted_code): New function.
6270         (init_pre): Init loop optimizer to get loop info.
6271         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
6272         (execute_pre): Commit edge inserts, then remove dead code.
6273
6274 2005-01-30  Richard Henderson  <rth@redhat.com>
6275
6276         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
6277         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
6278
6279 2005-01-30  Richard Henderson  <rth@redhat.com>
6280
6281         PR target/19700
6282         * config/i386/i386.c (ix86_expand_copysign): New.
6283         (ix86_split_copysign_const): New.
6284         (ix86_split_copysign_var): Rename from ix86_split_copysign,
6285         rearrange op1/nmask operands.
6286         * config/i386/i386-protos.h: Update.
6287         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
6288         (copysigndf3): Likewise.
6289         (copysignsf3_const, copysigndf3_const): New.
6290         (copysignsf3_var): Rename from copysignsf3, split out splitter
6291         and fix split predicate for X constraint.
6292         (copysigndf3_var): Similarly.
6293
6294 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
6295
6296         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
6297         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
6298         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
6299
6300 2005-01-29  Richard Henderson  <rth@redhat.com>
6301
6302         PR target/19690
6303         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
6304         of # and * in constraints.
6305
6306 2005-01-29  Richard Henderson  <rth@redhat.com>
6307
6308         PR middle-end/19689
6309         * expr.c (store_field): Don't strip sub-mode cast when the input
6310         data is even smaller.
6311
6312 2005-01-29  Richard Henderson  <rth@redhat.com>
6313
6314         PR middle-end/19687
6315         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
6316         union being empty.
6317
6318 2005-01-29  Richard Henderson  <rth@redhat.com>
6319
6320         * combine.c (make_field_assignment): Fix argument order
6321         to gen_int_mode.
6322
6323 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
6324
6325         PR tree-optimization/15791
6326         * fold-const.c (extract_array_ref): New function.
6327         (fold): Fold comparisons between &a[i] and &a[j] or
6328         semantically equivalent trees.
6329
6330 2005-01-29  Jeff Law  <law@redhat.com>
6331
6332         * gcse.c (insert_expr_in_table): Revamp handling of available
6333         and anticipatable occurrence lists to avoid unnecessary list
6334         walking.
6335         (insert_set_in_table): Similarly.
6336
6337 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
6338
6339         * c-common.c (fix_string_type): Just use c_build_qualified_type to
6340         build string type.
6341         (c_build_qualified_type): Build qualified array types with
6342         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
6343         * c-decl.c (c_make_fname_decl): Build unqualified array type
6344         before qualified type.
6345         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
6346         type is qualified, not just if type itself is.  Don't apply
6347         qualifiers to array type when declarator is processed.  Apply
6348         qualifiers to field type whether or not it is an array type.
6349         Don't handle array types specially for applying qualifiers to
6350         variables.
6351         * c-typeck.c (composite_type): Build unqualified element type and
6352         array type when forming composite of array types.
6353         (common_pointer_type, comptypes, comp_target_types,
6354         type_lists_compatible_p, build_indirect_ref, build_array_ref,
6355         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
6356         types.
6357         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
6358         (args2) in variables a1 and a2.
6359
6360 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
6361
6362         * cse.c (n_elements_made, max_elements_made): Remove.
6363         (insert): Don't touch n_elements_made.
6364         (cse_main): Don't touch n_elements_made or max_elements_made.
6365
6366 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
6367
6368         PR target/15384
6369         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
6370         configuration part of dp-bit.c to be lost.
6371
6372 2005-01-28  Roger Sayle  <roger@eyesopen.com>
6373
6374         * expmed.c (expand_mult_highpart_optab): When attempting to use
6375         a non-widening multiplication in a wider mode, the operands need
6376         to be converted (zero or sign extended) to that mode.
6377
6378 2005-01-28  Ian Lance Taylor  <ian@airs.com>
6379
6380         PR middle-end/16558
6381         PR middle-end/19583
6382         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
6383         through if both operands fall through.
6384
6385 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
6386
6387         * cse.c (fold_rtx) <PC>: Don't optimize.
6388
6389 2005-01-28  Jeff Law  <law@redhat.com>
6390
6391         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
6392         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
6393
6394 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
6395
6396         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
6397         cse_reg_info_used_list_end): Remove.
6398         (cse_reg_info_list, cse_reg_info_list_free): New.
6399         (get_cse_reg_info): When allocating an instance of
6400         cse_reg_info, add it to the beginning of the cse_reg_info_list
6401         list.  Remove code to maintain cse_reg_info_used_list.
6402         (new_basic_block): Reset the free list to the beginning of
6403         cse_reg_info_list.
6404
6405 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
6406
6407         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
6408         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
6409         (frv_expand_mdpackh_builtin): New function.
6410         (frv_expand_builtin): Use it to expand __MDPACKH.
6411         * doc/extend.texi (__MDPACKH): Update documentation.
6412
6413 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
6414
6415         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
6416         SSE_FLOAT_MODE_P for use_sse computation.
6417
6418 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
6419
6420         PR target/19663
6421         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
6422
6423 2005-01-27  Richard Henderson  <rth@redhat.com>
6424
6425         * builtins.c (expand_builtin_copysign): New.
6426         (expand_builtin): Call it.
6427         * genopinit.c (optabs): Add copysign_optab.
6428         * optabs.c (init_optabs): Initialize it.
6429         (expand_copysign): New.
6430         * optabs.h (OTI_copysign, copysign_optab): New.
6431         (expand_copysign): Declare.
6432
6433         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
6434         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
6435
6436         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
6437         (ix86_expand_fp_absneg_operator): ... here.
6438         (ix86_split_copysign): New.
6439         * config/i386/i386-protos.h: Update.
6440         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
6441         (copysignsf3, copysigndf3): New.
6442
6443         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
6444         (copysignsf3, ncopysignsf3): New.
6445         (copysigndf3, ncopysigndf3): New.
6446         (copysignxf3, ncopysignxf3): New.
6447         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
6448
6449 2005-01-27  Arend Bayer  <arend.bayer@web.de>
6450             Kazu Hirata  <kazu@cs.umass.edu>
6451
6452         * cse.c: (find_best_addr): Don't call copy_rtx before calling
6453         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
6454         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
6455         NULL_RTX.
6456
6457 2005-01-27  Jeff Law  <law@redhat.com>
6458
6459         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
6460         definitions of SSA_NAMEs which are not being rewritten.
6461         (rewrite_ssa_into_ssa): Only initialize the current definition
6462         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
6463         If checking is enabled, assert that SSA_NAME_AUX is clear for all
6464         SSA_NAMEs before returning.
6465
6466 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
6467
6468         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
6469         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
6470         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
6471         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
6472         config/mips/iris6.h, config/sh/sh.c: Update copyright.
6473
6474 2005-01-27  Steven Bosscher  <stevenb@suse.de>
6475
6476         PR middle-end/17278
6477         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
6478         higher to -O2 and higher.  Likewise for tree PRE.
6479         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
6480         and better.
6481
6482 2005-01-27  Ian Lance Taylor  <ian@airs.com>
6483
6484         PR middle-end/19583
6485         * gimple-low.c (try_catch_may_fallthru): New static function.
6486         (block_may_fallthru): Handle TRY_CATCH_EXPR.
6487         * tree-inline.c (expand_call_inline): Don't warn about reaching
6488         the end of a non-void function being inlined if the function uses
6489         a return slot.
6490
6491 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
6492
6493         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
6494
6495         PR c/18946
6496         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
6497         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
6498         (implicitly_declare): Handle error_mark_node.
6499
6500 2005-01-27  Richard Henderson  <rth@redhat.com>
6501
6502         PR tree-opt/14329
6503         * tree.h (struct tree_decl): Add debug_expr_is_from.
6504         (DECL_DEBUG_EXPR_IS_FROM): New.
6505         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
6506         * dwarf2out.c (dwarf2out_var_location): Update to match.
6507         * tree-outof-ssa.c (create_temp): Likewise.
6508         * var-tracking.c (track_expr_p): Likewise.
6509         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
6510         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
6511         * toplev.c (default_tree_printer): Likewise.
6512
6513 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
6514
6515         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
6516         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
6517
6518 2005-01-27  Steven Bosscher  <stevenb@suse.de>
6519
6520         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
6521         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
6522         ASM_CLOBBERS): Add tree checks.
6523
6524         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
6525         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
6526         * c-common.def (SWITCH_STMT): Update to match.
6527         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
6528         macros instead of SWITCH_EXPR ones.
6529         * c-dump.c (c_dump_tree): Likewise.
6530         * c-gimplify.c (gimplify_switch_stmt): Likewise.
6531         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
6532
6533         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
6534
6535 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
6536
6537         * unwind-dw2.c (execute_stack_op): Add missing cases for
6538         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
6539
6540 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
6541
6542         * config.gcc (Obsolete configurations): Remove 'dummy', add
6543         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
6544         sparc-*-openbsd*.
6545
6546 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
6547
6548         PR tree-optimization/19633
6549         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
6550         CALL_EXPRs.
6551         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
6552         are no call-clobbered variables.
6553         * tree-outof-ssa.c (check_replaceable): Return false for calls
6554         with side-effects.
6555
6556 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
6557
6558         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
6559         even for variables with NULL DECL_INITIAL.
6560
6561 2005-01-26  Stuart Hastings  <stuart@apple.com>
6562
6563         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
6564
6565 2005-01-26  Richard Henderson  <rth@redhat.com>
6566
6567         PR middle-end/18008
6568         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
6569         field's type.
6570         * expr.c (store_field): Strip conversions to odd-bit-sized types
6571         if the destination field width matches.
6572
6573 2005-01-26  Richard Henderson  <rth@redhat.com>
6574
6575         * c-decl.c, expmed.c, expr.c: Revert last change.
6576
6577 2005-01-26  Richard Henderson  <rth@redhat.com>
6578
6579         PR middle-end/18008
6580         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
6581         field's type.
6582         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
6583         if we don't need the bits above those present in the current mode.
6584         * expr.c (store_field): Strip conversions to odd-bit-sized types
6585         if the destination field width matches.
6586
6587 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
6588
6589         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
6590         either -ffast-math or -funsafe-math-optimizations is in use.
6591
6592 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
6593
6594         PR target/19293
6595         PR target/19329
6596         * config/avr/avr.c (notice_update_cc): Only set condition code for
6597         ashrqi3 if shift count > 0.
6598         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
6599         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
6600         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
6601         count <= 0 as a no-op, and shift count >= width by copying zero
6602         or sign bit to all bits of the result.
6603         * config/avr/avr.md (all shifts): Add alternatives for zero shift
6604         count, with attribute "length" set to 0 and "cc" set to "none".
6605
6606 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
6607
6608         * doc/invoke.texi: Document -mTLS.
6609
6610         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
6611         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
6612         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
6613         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
6614         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
6615         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
6616         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
6617         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
6618
6619         * configure.ac: Check for a TLS capable gas.
6620
6621         * configure: Regenerate.
6622
6623 2005-01-26  Richard Henderson  <rth@redhat.com>
6624
6625         PR middle-end/18008
6626         * combine.c (make_field_assignment): Simplify store to zero_extract
6627         from a source with an overlapping mask.
6628
6629 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
6630
6631         2004-11-11  Eric Christopher  <echristo@redhat.com>
6632
6633         * config/frv/frv.md: Add fr400_integer automaton. Don't
6634         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
6635         to TYPE_MACC.
6636
6637 2005-01-26  Steven Bosscher  <stevenb@suse.de>
6638
6639         PR middle-end/16585
6640         * cfgbuild.c (make_edges): Do not clear or set
6641         current_function_has_computed_jump.
6642         * function.h (struct function): Remove the has_computed_jump field.
6643         (current_function_has_computed_jump): Do not define.
6644         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
6645         in a computed jump.  Ignore current_function_has_computed_jump.
6646
6647 2005-01-26  Richard Henderson  <rth@redhat.com>
6648
6649         PR middle-end/19515
6650         * expr.c (categorize_ctor_elements): New argument p_must_clear.
6651         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
6652         fully initialized.
6653         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
6654         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
6655         objects into static storage if they have more than one non-zero value.
6656         * tree.h (categorize_ctor_elements): Update decl.
6657
6658 2005-01-26  Steven Bosscher  <stevenb@suse.de>
6659
6660         PR middle-end/19616
6661         * tree.h (CALL_EXPR_TAILCALL): Add comment.
6662         * calls.c (check_sibcall_argument_overlap_1): Revert the change
6663         to this function from 2004-07-10.
6664         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
6665         the current function for tail call optimizations if the address
6666         of one of it its arguments is taken.
6667
6668 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
6669
6670         * cse.c (fold_rtx): Call equiv_constant only when necessary.
6671
6672 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
6673
6674         * function.c (expand_function_end): If current_function_calls_alloca,
6675         emit stack restore in a place that is reached when the function falls
6676         through at the end.
6677
6678 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
6679
6680         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
6681         rule to avoid matching inappropriate suffix rule.
6682
6683 2005-01-26  Jan Hubicka  <jh@suse.cz>
6684
6685         PR tree-optimization/19241
6686         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
6687
6688 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
6689
6690         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
6691         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
6692         of doubling.
6693         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
6694         <sim*>: Always use crt1.o, regardless of N in simN.
6695         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
6696         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
6697         (CRT_CALL_STATIC_FUNCTION): Remove.
6698         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
6699         use crt1.o, regardless of N in simN.
6700         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
6701         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
6702         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
6703         case isystem setting.
6704         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
6705
6706 2005-01-25  Ian Lance Taylor  <ian@airs.com>
6707
6708         * gimple-low.c (block_may_fallthru): Correct handling of
6709         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
6710
6711 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
6712
6713         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
6714         handlers to match indentation; nested under the mtune=* handler.
6715         Similar for mcpu= and march=.
6716
6717 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
6718
6719         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
6720         * config/mips/linux64.h (LIB_SPEC): Likewise.
6721         * config/mn10300/linux.h (LIB_SPEC): Likewise.
6722         * config/sh/linux.h (LIB_SPEC): Likewise.
6723
6724 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
6725
6726         * config/frv/frv.c (frv_legitimize_tls_address): New.
6727         (TARGET_HAVE_TLS): Define.
6728         (FRV_SYMBOL_REF_TLS_P): Define.
6729         (frv_override_options): Handle new register classes.
6730         (frv_legitimate_address_p): Reject tls addresses.
6731         (frv_legitimize_address): Handle TLS addresses.
6732         (gen_inlined_tls_plt): New.
6733         (gen_tlsmoff): New.
6734         (frv_legitimize_tls_address): New.
6735         (unspec_got_name): Add TLS entries.
6736         (got12_operand): Add R_FRV_TLSMOFF12 case.
6737         (frv_emit_move): Fixup TLS addresses.
6738         (frv_emit_movsi): Legitimize TLS addresses.
6739
6740         * config/frv/frv.h (MASK_BIG_TLS): New.
6741         (TARGET_BIG_TLS): New.
6742         (HAVE_AS_TLS): Define.
6743         (TARGET_SWITCHES): Add -mTLS and -mtls options.
6744         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
6745         (REG_CLASS_NAMES): Same.
6746         (REG_CLASS_CONTENTS): Same.
6747         (CONSTRAINT_LEN): New.
6748         (REG_CLASS_FROM_CONSTRAINT): New.
6749         (PREDICATE_CODES): Add symbolic_operand.
6750
6751         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
6752         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
6753         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
6754         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
6755         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
6756         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
6757         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
6758         GR9_REG, GR14_REG, LRREG.
6759         (type): Add load_or_call attribute.
6760         ("load_or_call"): New reservation.
6761         ("call_gettlsoff"): New.
6762         ("tls_indirect_call"): New.
6763         ("tls_load_gottlsoff12"): New.
6764         ("tlsoff_hilo"): New.
6765         ("tls_tlsdesc_ldd"): New.
6766         ("tls_tlsoff_ld"): New.
6767         ("tls_lddi"): New.
6768
6769         * config/frv/frv-protos.h (symbolic_operand): Protoize.
6770
6771         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
6772
6773         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
6774         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
6775         * config/frv/frv.c (TLS_BIAS): Define.
6776         (frv_output_dwarf_dtprel): New.
6777
6778 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
6779
6780         PR rtl-optimization/19579
6781         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
6782         both A and B, see if they don't clobber registers the other expr uses.
6783
6784 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
6785
6786         * real.c (do_add): Initialize signalling and canonical members.
6787
6788         * real.c (real_from_integer): Zero out destination.
6789
6790 2005-01-18  Jan Hubicka  <jh@suse.cz>
6791
6792         PR tree-optimize/19337
6793         * tree-inline.c (initialize_inlined_parameters): Copy
6794         saved_static_chain_decl only.
6795
6796 2005-01-25  Richard Henderson  <rth@redhat.com>
6797
6798         PR target/19556
6799         PR target/19584
6800         * config/i386/i386.c (x86_inter_unit_moves): Zero.
6801         (ix86_preferred_reload_class): Rewrite fp-constant section, with
6802         80387 enabled, to return a proper subclass.  Return the subset that
6803         overlaps with GENERAL_REGS for PLUS.
6804         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
6805
6806 2005-01-25  Richard Henderson  <rth@redhat.com>
6807
6808         PR middle-end/19609
6809         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
6810
6811 2005-01-25  Roger Sayle  <roger@eyesopen.com>
6812
6813         * expmed.c (choose_multiplier): Change interface to return the
6814         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
6815         (expand_divmod): Update calls to choose_multiplier.
6816
6817 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6818
6819         PR middle-end/19330
6820         * expmed.c (extract_bit_field): Use adjust_address instead of
6821         gen_lowpart when op0 is a MEM.
6822
6823 2005-01-24  Steven Bosscher  <stevenb@suse.de>
6824
6825         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
6826
6827 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
6828
6829         * config/mips/irix-csr.c: New file.
6830         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
6831         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
6832         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
6833         executables.
6834
6835 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
6836
6837         PR bootstrap/19364
6838         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
6839         sparc/elf.h, add sparc/sp-elf.h.
6840         (sparc-*-rtems*): Likewise.
6841         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
6842         tm-dwarf2.h, add sparc/sp-elf.h.
6843         (sparc86x-*-elf): Likewise.
6844         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
6845         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
6846         TARGET_OS_CPP_BUILTINS.
6847         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6848         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6849         Undefine it.
6850         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
6851         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
6852         (SWITCH_TAKES_ARG): Likewise.
6853         (LOCAL_LABEL_PREFIX): Likewise.
6854         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
6855         (TARGET_N_FORMAT_TYPES): Delete.
6856         (TARGET_FORMAT_TYPES): Likewise.
6857         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
6858         * config/sparc/elf.h: Delete.
6859         * config/sparc/sp-elf.h: New file.
6860
6861 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
6862
6863         * tree-flow-inline.h (phi_arg_from_edge): Remove.
6864         * tree-flow.h: Remove the corresponding prototype.
6865         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
6866         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
6867
6868 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
6869
6870         PR target/17751
6871         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
6872         for AIX ABI or ELF -fPIC.
6873         (rs6000_emit_load_toc_table): Don't create toc_section here.
6874         (rs6000_xcoff_file_start): Nor here.
6875
6876 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
6877
6878         * sh.c (ra.h): Don't #include.
6879         (hard_regs_intersect_p): New function, resurrected from ra.c.
6880
6881         * sh.c: Fix 1996 Copyright.
6882
6883 2005-01-24  Richard Henderson  <rth@redhat.com>
6884             Aldy Hernandez  <aldyh@redhat.com>
6885
6886         * regrename.c (note_sets): Handle subregs.
6887
6888 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
6889
6890         PR bootstrap/18058
6891         * genconditions.c (write_header, write_conditions): Elide file if
6892         not GCC >= 3.0.1.
6893
6894 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
6895
6896         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
6897         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
6898         Update copyright.
6899
6900 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
6901
6902         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
6903         expand_builtin_printf, expand_builtin_fprintf,
6904         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
6905         checking against POINTER_TYPE.
6906         (validate_arglist): Handle POINTER_TYPE code by checking
6907         POINTER_TYPE_P.
6908
6909 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
6910
6911         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
6912         init_rtlanal): New.
6913         (for_each_rtx): Call for_each_rtx_1.
6914         * rtl.h (init_rtlanal): Declare.
6915         * toplev.c (backend_init): Call init_rtlanal.
6916
6917 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
6918
6919         * flow.c (propagate_one_insn): Formatting.
6920
6921         PR middle-end/19551
6922         * flow.c (libcall_dead_p): Be more conservative if unsure.
6923         If there are any instructions between insn and call, see if they are
6924         all dead before saying the libcall is dead.
6925
6926 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
6927
6928         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
6929         operand constraint for operand 0.
6930
6931 2005-01-23  Richard Henderson  <rth@redhat.com>
6932
6933         PR 19486
6934         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
6935         edges leading to join block.
6936
6937 2005-01-23  Roger Sayle  <roger@eyesopen.com>
6938
6939         * expmed.c (expand_mult_highpart): Make static.  Change type of
6940         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
6941         (expand_divmod): Updates calls to expand_mult_highpart by using
6942         gen_int_mode to pass a CONST_INT rtx.
6943         * rtl.h (expand_mult_highpart): Remove prototype.
6944
6945 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
6946
6947         * flow.c (regset_bytes, regset_size): Remove.
6948
6949         * cfganal.c: Fix a reference to Harvey's paper.
6950
6951 2005-01-23  Steven Bosscher  <stevenb@suse.de>
6952
6953         PR rtl-optimization/19464
6954         * tree-optimize.c (init_tree_optimization_passes): Add one more
6955         copyrename pass just before out-of-ssa.
6956
6957 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
6958
6959         PR bootstrap/18058
6960         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
6961         * ggc-none.c (ggc_free): Define.
6962
6963 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
6964
6965         * cse.c (max_reg, max_insn_uid): Remove.
6966         (cse_main): Don't access max_reg or max_insn_uid.
6967
6968         * c-common.c (explicit_flag_signed_bitfields,
6969         lang_statement_code_p, lang_expand_function_end): Remove.
6970         * c-common.h: Remove the corresponding declarations.
6971         * c-opts.c (c_common_handle_option): Remove all write access
6972         to explicit_flag_signed_bitfields.
6973
6974         * cgraph.c (cgraph_varpool_n_nodes): Remove.
6975         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
6976         * cgraph.h: Remove the corresponding declaration.
6977
6978         * gcse.c (null_pointer_info): Remove.
6979
6980 2005-01-23  Roger Sayle  <roger@eyesopen.com>
6981             Eric Botcazou  <ebotcazou@libertysurf.fr>
6982
6983         * combine.c (simplify_logical): Only simplify logical expressions
6984         of the form ior(and(x,y),z) by the inverse distributive law if the
6985         result is cheaper than the original.
6986
6987 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
6988
6989         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
6990         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
6991         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
6992         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
6993         config/freebsd-spec.h, config/arm/arm.h,
6994         config/h8300/h8300.md, config/i386/i386.md,
6995         config/i386/predicates.md, config/i386/sse.md,
6996         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
6997         config/vax/vax.md: Fix comment typos.  Follow spelling
6998         conventions.
6999
7000 2005-01-23  Steven Bosscher  <stevenb@suse.de>
7001
7002         * gengtype.c (walk_type): Produce `not equal to' compares for loop
7003         tests, instead of `less than'.
7004
7005 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
7006
7007         * function.c (assign_parm_setup_block): When creating a new stack slot
7008         for a parameter, get its alignment from the parameter's DECL_ALIGN
7009         rather than the type's TYPE_ALIGN.  Make sure that the parameter
7010         is at least word aligned.
7011
7012 2005-01-22  Roger Sayle  <roger@eyesopen.com>
7013
7014         PR middle-end/19378
7015         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
7016
7017 2005-01-22  Richard Henderson  <rth@redhat.com>
7018
7019         PR target/19506
7020         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
7021         in both compare operands.
7022         (movdfcc_1_sse_max): Likewise.
7023         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
7024         (movdfcc_1_sse): Likewise.
7025         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
7026         scratch register as needed.
7027
7028 2005-01-22  Richard Henderson  <rth@redhat.com>
7029
7030         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
7031
7032         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
7033
7034 2005-01-22  Richard Henderson  <rth@redhat.com>
7035
7036         * genopinit.c (optabs): Use smin/smax for floating point too.
7037         * doc/md.texi: Update to match.  Clarify that floating point
7038         results are undefined for +0/-0 and NaN.
7039         * doc/rtl.texi: Likewise.
7040         * rtl.def (SMIN, SMAX): Likewise
7041         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
7042
7043         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
7044         leading 's' to the name.
7045         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
7046         smaxxf3, sminxf3): Likewise.
7047         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
7048         Likewise.
7049
7050 2005-01-22  Paul Brook  <paul@codesourcery.com>
7051
7052         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
7053
7054 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
7055
7056         * config/s390/s390.c (struct processor_costs): New fields
7057         dlgr, dlr, dr, dsgfr, dsgr.
7058         (z900_cost, z990_cost): Values for new fields.
7059         (s390_rtx_costs): New cases MEM und COMPARE in switch
7060         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
7061         DIV, MOD, UDIV, UMOD.
7062
7063 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
7064
7065         * config/s390/s390.md ("doloop_si64"): Reload input value directly
7066         into the register being decremented.
7067         ("doloop_si31", "doloop_di"): Likewise.
7068         ("*doloop_si_long"): Adapt pattern.
7069
7070 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
7071
7072         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
7073         access registers.
7074         (CLASS_MAX_NREGS): Likewise.
7075
7076 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
7077
7078         * doc/tree-ssa.texi (Statement Operands): Add example for new
7079         must-def macro. Note deprecation of old operands interface.
7080
7081 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
7082
7083         PR tree-optimization/19484
7084         * tree-cfg.c (remove_fallthru_edge): New function.
7085         (cleanup_control_flow): Remove fallthru edges from calls that are
7086         now known not to return.
7087
7088 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
7089
7090         Fix PR tree-optimization/19038
7091         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
7092         copies with loop variant ones.
7093
7094 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
7095
7096         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
7097         config/alpha/alpha-protos.h, config/alpha/alpha.h,
7098         config/alpha/alpha.md, config/alpha/predicates.md,
7099         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
7100         config/sparc/sol2.h: Update copyright.
7101
7102         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
7103         first label to see if it is a nonlocal label.
7104
7105 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
7106             Andrew Pinski  <pinskia@physics.uc.edu>
7107
7108         PR target/19491
7109         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
7110         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
7111
7112 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
7113
7114         * config/rs6000/rtems.h: Update copyright.
7115
7116 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
7117
7118         PR target/19548
7119         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
7120         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
7121         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
7122
7123 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7124
7125         PR c/18809
7126         * c-typeck.c (convert_arguments): Check for error_mark_node.
7127
7128 2005-01-21  Ian Lance Taylor  <ian@airs.com>
7129
7130         PR tree-optimization/13000
7131         * tree-inline.c: Include "tree-flow.h".
7132         (expand_call_inline): If warn_return_type, warn if non-void inline
7133         function falls through.
7134         * tree-cfg.c (execute_warn_function_return): Don't warn about
7135         control reaching end if TREE_NO_WARNING is set.  Set
7136         TREE_NO_WARNING.
7137         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
7138         has been lowered.
7139         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
7140         branch if we don't need one.
7141         * c-typeck.c: Include "tree-flow.h"
7142         (c_finish_bc_stmt): Don't add a goto if the current statement
7143         list doesn't fall through to the current point.
7144
7145 2005-01-21  Roger Sayle  <roger@eyesopen.com>
7146
7147         PR rtl-optimization/576
7148         * real.c (real_arithmetic): Change return type from void to bool
7149         to return an indication that the result may be inexact.
7150         * real.h (real_arithmeric): Update prototype.
7151         * fold-const.c (const_binop):  Don't constant fold floating
7152         point expressions when the user specifies -frounding-math and
7153         the result may depend upon the run-time rounding mode.
7154         (fold_convert_const_real_from_real): Clean-up.
7155         (fold_initializer): Ignore flag_rounding_math for initializers.
7156         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
7157         constant fold FP operations with flag_rounding_math if the
7158         result may depend upon the run-time rounding mode.
7159
7160 2005-01-21  Tom Tromey  <tromey@redhat.com>
7161
7162         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
7163
7164 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
7165
7166         * tree-cfg.c: Fix comment typos.
7167
7168 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
7169
7170         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
7171         around the call to rest_of_handle_branch_target_load_optimize.
7172
7173 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
7174
7175         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
7176         (sparc64-*-openbsd*): Likewise.
7177         (sparclite-*-elf*): Include tm-dwarf2.h.
7178         (sparc86x-*-elf*): Likewise.
7179         (sparc64-*-elf*): Likewise.
7180         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
7181         (DBX_DEBUGGING_INFO): Likewise.
7182         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
7183         (PREFERRED_DEBUGGING_TYPE): Likewise.
7184         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
7185         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
7186         (PREFERRED_DEBUGGING_TYPE): Likewise.
7187         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
7188         (PREFERRED_DEBUGGING_TYPE): Likewise.
7189         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
7190
7191 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
7192
7193         PR target/18701
7194         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
7195
7196 2005-01-20  Paul Brook  <paul@codesourcery.com>
7197
7198         * doc/rtl.texi: Document value extension requirements for CONST_INT.
7199
7200 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7201
7202         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
7203         label is first in a sequence of labels.
7204
7205         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
7206
7207 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
7208             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
7209
7210         * doc/sourcebuild.texi (Test Directives): New.
7211
7212 2005-01-20  Roger Sayle  <roger@eyesopen.com>
7213
7214         * real.c (real_floor): Don't leave the result uninitialized when
7215         mode is VOIDMode, but return the unrounded intermediate value.
7216         (real_ceil): Likewise.
7217
7218 2005-01-20  Paul Brook  <paul@codesourcery.com>
7219
7220         * config/arm/arm.md (insv): Use gen_int_mode.
7221
7222 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
7223
7224         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
7225         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7226         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7227         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7228         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7229
7230 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
7231
7232         Fix PR debug/19124
7233         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
7234         fbreg, so we have to assume we can't.
7235         (loc_descriptor_from_tree_1): Ditto.
7236         (containing_function_has_frame_base): New function.
7237         (add_location_or_const_value_attribute): Use it.
7238         Also try to generate a frame_base from a single element location
7239         list.
7240
7241 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7242
7243         PR tree-optimization/15349
7244         * timevar.def (TV_TREE_MERGE_PHI): New.
7245         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
7246         PHI_WANTED.
7247         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
7248         calls to tree_forwarder_block_p.
7249         (remove_forwarder_block_with_phi, merge_phi_nodes,
7250         gate_merge_phi, pass_merge_phi): New.
7251         * tree-optimize.c (init_tree_optimization_passes): Add
7252         pass_merge_phi.
7253         * tree-pass.h: Add an extern for pass_merge_phi;
7254
7255 2005-01-20  Richard Henderson  <rth@redhat.com>
7256
7257         PR target/19418
7258         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
7259         (_mm_castps_pd, _mm_castps_si128): New.
7260         (_mm_castsi128_ps, _mm_castsi128_pd): New.
7261
7262 2005-01-20  Richard Henderson  <rth@redhat.com>
7263
7264         PR target/19530
7265         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
7266         __builtin_ia32_vec_init_v2si.
7267         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
7268         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
7269         (ix86_init_mmx_sse_builtins): Create it.
7270         (ix86_expand_builtin): Expand it.
7271         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
7272         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
7273         (vec_extractv2si_0, vec_extractv2si_1): New.
7274
7275 2005-01-20  Richard Henderson  <rth@redhat.com>
7276
7277         PR target/16533
7278         * config/i386/i386.c (ix86_expand_push): New.
7279         * config/i386/mmx.md (push<MMXMODE>1): New.
7280         * config/i386/sse.md (push<SSEMODE>1): New.
7281         * config/i386/i386-protos.h: Update.
7282
7283 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7284
7285         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
7286         copyright.
7287
7288 2005-01-20  Richard Henderson  <rth@redhat.com>
7289
7290         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
7291         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
7292
7293 2005-01-19  Richard Henderson  <rth@redhat.com>
7294
7295         PR target/19350
7296         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
7297         to V4SFmode in SSE1 fallback load path.
7298
7299 2005-01-19  Richard Henderson  <rth@redhat.com>
7300
7301         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
7302         in QImode expansion to ix86_expand_vector_set.
7303         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
7304
7305 2005-01-19  Richard Henderson  <rth@redhat.com>
7306
7307         PR target/19511
7308         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
7309         subclass of the input class.
7310         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
7311         Always true for cross-SSE1 classes.  Rationalize conditionals.
7312         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
7313         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
7314         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
7315         (movdi_2): Add MMX/SSE zeros.
7316         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
7317         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
7318         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
7319         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
7320         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
7321         (zero_extendsidi2_rex64_1): Remove.
7322         (MOV0 peephole): Check GENERAL_REG_P.
7323
7324 2005-01-19  Richard Henderson  <rth@redhat.com>
7325
7326         PR target/19427
7327         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
7328         shufps elements.
7329         (ix86_expand_vector_extract): Likewise.
7330
7331 2005-01-19  Richard Henderson  <rth@redhat.com>
7332
7333         PR middle-end/19304
7334         * expr.c (emit_move_change_mode): New argument force; use
7335         simplify_gen_subreg if true.
7336         (emit_move_via_alt_mode): Merge into ...
7337         (emit_move_via_integer): ... here.
7338         (emit_move_ccmode): Use emit_move_change_mode directly.
7339
7340 2005-01-19  Richard Henderson  <rth@redhat.com>
7341
7342         PR target/19518
7343         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
7344         (alpha_preferred_reload_class): Handle CONST_VECTOR.
7345         (alpha_emit_set_const_1): Add no_output parameter; don't emit
7346         rtl if true.
7347         (alpha_emit_set_const): Likewise.  Make static.
7348         (alpha_emit_set_long_const): Make static.
7349         (alpha_extract_integer): Split out from alpha_expand_mov.
7350         (alpha_split_const_mov): Likewise.
7351         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
7352         (alpha_legitimate_constant_p): New.
7353         * config/alpha/alpha-protos.h: Update.
7354         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
7355         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
7356         * config/alpha/alpha.md (movsi): Add n alternative.
7357         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
7358         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
7359         (splitters for all of the above): Use alpha_split_const_mov.
7360         * config/alpha/predicates.md (non_add_const_operand): New.
7361         (non_zero_const_operand): New.
7362         (input_operand): Use alpha_legitimate_constant_p after reload.
7363
7364 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
7365
7366         PR tree-optimization/19038
7367         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
7368         (add_candidate): Add ivs with increment in latch only if
7369         allow_ip_end_pos_p is true.
7370         (determine_iv_cost): Use empty_block_p.
7371
7372 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
7373
7374         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
7375         (compute_dominance_frontiers): Ditto.
7376
7377 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
7378
7379         PR target/19529
7380         * config/sh/t-rtems: New.
7381         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
7382
7383 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
7384
7385         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
7386         the offset of the selected field.
7387
7388 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
7389
7390         * tree-cfg.c (remove_forwarder_block): Fix the check to
7391         prevent a nonlocal label from appearing in the middle of a
7392         basic block.
7393
7394 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
7395
7396         PR rtl-optimization/19462
7397         * reorg.c (find_end_label): Create return insn only if
7398         current_function_epilogue_delay_list is empty.
7399
7400 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
7401
7402         * doc/passes.texi: Remove paragraph mentioning new-ra.
7403
7404 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
7405
7406         PR rtl-optimization/15139
7407         * combine.c: Include params.h.
7408         (count_rtxs): New function.
7409         (record_value_for_reg): If replace_rtx would replace at least
7410         2 occurrences of REG in VALUE and TEM is really large, replace REG with
7411         (clobber (const_int 0)) instead of TEM.
7412         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
7413         * params.h (MAX_LAST_VALUE_RTL): New.
7414         * Makefile.in (combine.o): Depend on $(PARAMS_H).
7415         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
7416
7417         PR c/17297
7418         * c-typeck.c (digest_init): Only call build_vector if all constructor
7419         elements are *_CST nodes.
7420         * gimplify.c (gimplify_init_constructor): Likewise.
7421
7422         PR middle-end/19164
7423         * c-typeck.c (digest_init): Only call build_vector if inside_init
7424         is a CONSTRUCTOR.
7425
7426 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
7427
7428         * toplev.c (init_asm_output): Remove dead #ifdef.
7429
7430 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
7431
7432         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
7433
7434 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
7435
7436         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
7437         accessing DECL_FUNCTION_CODE.
7438         * dojump.c (do_jump): Likewise.
7439         * gimplify.c (gimplify_call_expr): Likewise.
7440         * predict.c (expr_expected_value): Likewise.
7441         (strip_builtin_expect): Likewise.
7442         * tree-inline.c (estimate_num_insns_1): Likewise.
7443         * tree-ssa-loop-im.c (stmt_cost): Likewise
7444         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
7445         (tree_expr_nonnegative_p): Likewise.
7446
7447 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
7448
7449         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
7450         variant of the load_pcrel_sym pattern.
7451         * config/sparc/sparc.md (P macro): Move to the top.
7452         (load_pcrel_sym): Macroize using P.
7453         (save_register_window): Likewise.
7454
7455 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
7456
7457         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
7458         ("sordered"): Same.
7459
7460 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
7461
7462         PR C/19472
7463         * c-typeck.c (build_asm_expr): Strip nops off
7464         input memory operands.
7465
7466 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
7467
7468         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
7469         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
7470         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
7471         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
7472
7473 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
7474
7475         PR target/19379
7476         * config/i386/i386.c (override_options): If the 80387 is disabled,
7477         then do not return FP values using FP registers.
7478
7479 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
7480
7481         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
7482         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
7483         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
7484         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
7485         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
7486         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
7487         output.h, postreload-gcse.c, postreload.c, recog.c,
7488         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
7489         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
7490         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
7491         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
7492         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
7493         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
7494         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
7495         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
7496
7497         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7498         config/alpha/alpha.c, config/arm/vfp.md,
7499         config/i386/emmintrin.h, config/i386/i386-modes.def,
7500         config/i386/i386-protos.h, config/i386/i386.h,
7501         config/i386/pmmintrin.h, config/i386/ppro.md,
7502         config/i386/predicates.md, config/i386/xmmintrin.h,
7503         config/i860/i860.c, config/ia64/ia64-modes.def,
7504         config/ia64/ia64-protos.h, config/ia64/ia64.h,
7505         config/ia64/ia64.md, config/ia64/itanium1.md,
7506         config/ia64/itanium2.md, config/ia64/predicates.md,
7507         config/iq2000/iq2000.h, config/mips/linux64.h,
7508         config/rs6000/aix41.h, config/rs6000/aix43.h,
7509         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
7510         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
7511         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
7512         config/sparc/linux64.h, config/sparc/litecoff.h,
7513         config/sparc/sp64-elf.h, config/sparc/sparc.c,
7514         config/sparc/sparc.h, config/sparc/sparc.md,
7515         config/sparc/sysv4-only.h: Update copyright.
7516
7517 2005-01-18  Richard Henderson  <rth@redhat.com>
7518
7519         PR target/19496
7520         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
7521
7522 2005-01-18  Marc Espie  <espie@openbsd.org>
7523         * config/i386/openbsdelf.h: Typo.
7524
7525 2005-01-18  Richard Henderson  <rth@redhat.com>
7526
7527         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
7528         special case for sse.
7529         * config/i386/predicates.md (sse_comparison_operator): Likewise.
7530
7531 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
7532
7533         * tree-inline.c (estimate_num_insns_1): Added cases for
7534         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
7535
7536 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
7537
7538         PR rtl-optimization/19296
7539         * combine.c (simplify_comparison): Rewrite the condition under
7540         which a non-paradoxical SUBREG of a PLUS can be lifted when
7541         compared against a constant.
7542
7543 2005-01-18  Andi Kleen <ak@muc.de>
7544
7545         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
7546         * c.opt (-Wpointer-sign): Add.
7547         * doc/invoke.texi: (-Wpointer-sign): Add.
7548
7549 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
7550
7551         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
7552         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
7553         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
7554         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
7555         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
7556         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
7557         for TARGET_MIX_SSE_I387.
7558         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
7559         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
7560         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
7561         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
7562         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
7563         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
7564         TARGET_MIX_SSE_I387.
7565         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
7566         from expander.
7567
7568 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
7569
7570         PR target/19424
7571         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
7572         Add movaps alternative for xmm reg->reg move.
7573
7574 2005-01-17  Jeff Law  <law@redhat.com>
7575
7576         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
7577         at the end of the main DOM loop rather than just before DOM exits.
7578
7579 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
7580
7581         PR tree-optimization/19121
7582         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
7583         adding aliases to a name tag, also add them to the pointer's
7584         type tag.
7585         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
7586         sensitive alias info at all.  Only check that the two pointers
7587         have compatible pointed-to sets.
7588         * tree-ssa.c (verify_name_tags): Verify that the alias set of
7589         a pointer's type tag is a superset of the alias set of the
7590         pointer's name tag.
7591
7592 2005-01-17  James E Wilson  <wilson@specifixinc.com>
7593
7594         PR target/19357
7595         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
7596         comment to document why.
7597
7598 2005-01-17  Richard Henderson  <rth@redhat.com>
7599
7600         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
7601         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
7602         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
7603         sse2_vmsminv2df3_finite): New.
7604         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
7605         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
7606         Force op1 into register.
7607
7608 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
7609
7610         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
7611         bubblestrap from always rebuilding build directory.
7612
7613 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
7614
7615         * config/s390/s390.md ("*clc"): Remove incorrect '='.
7616         ("*cmpmem_short"): Likewise.
7617
7618 2005-01-17  Steven Bosscher  <stevenb@suse.de>
7619
7620         * basic-block.h: Document BB_* flags.
7621         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
7622         use an sbitmap instead.
7623         * sched-rgn.c (compute_trg_info): Likewise.
7624
7625 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
7626
7627         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
7628         redundant target_cpu_default and extra_parts lines.  Use the default
7629         "from-abi" ISA.
7630         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
7631         (SUBTARGET_EXTRA_SPECS): Delete.
7632         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
7633         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
7634         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
7635         and "n32" for -mabi=n32.
7636
7637 2005-01-17  Ian Lance Taylor  <ian@airs.com>
7638
7639         PR c/5675
7640         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
7641         fold constant variables into initial values.
7642
7643 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
7644
7645         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
7646
7647         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
7648         through the statements backward.
7649
7650 2005-01-17  Ian Lance Taylor  <ian@airs.com>
7651
7652         PR middle-end/13127:
7653         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
7654         a variable set to the return value of the inlined function.
7655
7656 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
7657
7658         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
7659         when modes are tieable.
7660
7661 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
7662
7663         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
7664         of pthread_create to find out if threads are enabled.
7665         * gthr-posix95.h (__gthread_active_p): Likewise.
7666
7667 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
7668
7669         * common.opt (-fnew-ra): Remove.
7670         * ra*.*: Remove.
7671         * toplev.h (flag_new_regalloc): Remove.
7672         * Makefile.in (ra*.*): Don't mention.
7673         * passes.c (rest_of_handle_new_regalloc): Remove.
7674         (rest_of_handle_combine, rest_of_compilation): Always consider
7675         flag_new_regalloc as false.
7676         * doc/invoke.texi: Don't document -fnew-ra.
7677
7678 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
7679
7680         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
7681         last parameter to reg_scan.
7682         * loop.c (loop_optimize): Likewise.
7683         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
7684         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
7685         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
7686         rest_of_handle_gcse, rest_of_handle_loop_optimize,
7687         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
7688         * regclass.c (reg_scan): Likewise, for the declaration.
7689         * rtl.h (reg_scan): Likewise, for the prototype.
7690
7691 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
7692
7693         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
7694         mark_dfs_back_edges.
7695
7696 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
7697
7698         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
7699         (compute_avail): Uses don't go in tmp_gen.
7700
7701 2005-01-16  Steven Bosscher  <stevenb@suse.de>
7702
7703         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
7704         loop to look for a free slot in a page entry.
7705
7706 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7707
7708         PR target/16304
7709         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
7710         * toplev.c (compile_file): Call process_pending_assemble_output_defs
7711         just before targetm.asm_out.file_end.
7712         * tree.h (process_pending_assemble_output_defs): Declare.
7713         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
7714         New functions.
7715         (assemble_alias): Defer generation of assembly code for defines when
7716         TARGET_DEFERRED_OUTPUT_DEFS is true.
7717         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
7718         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
7719         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
7720
7721 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7722
7723         PR target/19336
7724         * pa.c (pa_scalar_mode_supported_p): New function.
7725         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
7726         * pa.h (MIN_UNITS_PER_WORD): Add comment.
7727
7728         * pa-protos.h (prefetch_operand): Delete.
7729         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
7730         * pa.c (prefetch_operand): Delete.
7731         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
7732         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
7733         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
7734         and prefetch_nocc_operand.
7735         * pa.md (prefetch): Rework to avoid reload problems handling short
7736         displacements when a cache control completer needs to be provided.
7737         (prefetch_32, prefetch_64): Delete.
7738         (prefetch_cc, prefetch_nocc): New patterns.
7739
7740 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
7741
7742         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
7743
7744 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7745
7746         PR ada/19388
7747         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
7748         exceeds maximum alignment for global common data.
7749         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
7750         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
7751
7752 2004-01-15  Roger Sayle  <roger@eyesopen.com>
7753
7754         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
7755
7756 2004-01-15  Roger Sayle  <roger@eyesopen.com>
7757
7758         * harg-reg-set.h (reg_class_names): Prototype global array.
7759         * regclass.c (reg_class_names): Declare here and initialize to
7760         REG_CLASS_NAMES.
7761         (dump_regclass): Remove local declaration of reg_class_names.
7762         (regclass): Likewise.
7763         * cfg.c (dump_flow_info): Likewise.
7764         * ra-debug.c (reg_class_names): Likewise.
7765         * regrename.c (reg_class_names): Likewise.
7766         * reload.c (reg_class_names): Likewise.
7767         * reload1.c (spill_failure): Likewise.
7768         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
7769
7770 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
7771
7772         * config/s390/s390.md ("reload_outti"): Remove predicate for
7773         output operand.  Abort if operand is not a MEM.
7774         ("reload_outdi", "reload_outdf"): Likewise.
7775
7776 2005-01-15  Marc Espie  <espie@openbsd.org>
7777
7778         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
7779         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
7780         * config/openbsd.h:  Fix C++ includes for native configurations.
7781         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
7782         Add trampoline support.
7783         * config/i386/openbsdelf.h: New.
7784
7785 2005-01-15  Marc Espie  <espie@openbsd.org>
7786
7787         * collect2.c (main): Explicitly parse -dynamic-linker option.
7788
7789 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
7790
7791         PR tree-optimization/19060
7792         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
7793         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
7794         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
7795         and handle extract_range_from_cond returning false.
7796         * fold-const.c (fold): Optimize comparisons with min/max even for
7797         width > HOST_BITS_PER_WIDE_INT.
7798
7799 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
7800
7801         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
7802         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
7803         Remove little endian multilib variants.
7804         Add mips32 multilib variant.
7805
7806 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
7807
7808         * explow.c (copy_all_reg, stabilize): Remove.
7809         * expr.h: Remove the corresponding prototypes.
7810
7811         * rtlanal.c (regs_set_between_p): Remove.
7812         * rtl.h: Remove the corresponding prototype.
7813
7814 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
7815
7816         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
7817         to rs6000_nonimmediate_operand.
7818         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
7819         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
7820         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
7821         rs6000_nonimmediate_operand.
7822         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
7823         rs6000_nonimmediate_operand.
7824
7825 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
7826
7827         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
7828
7829 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7830
7831         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
7832         on e500v2.
7833         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
7834         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
7835
7836         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
7837         (rs6k_nonimmediate_operand): New.
7838         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
7839         correctly.
7840         (legitimate_lo_sum_address_p): Same.
7841         (rs6000_legitimize_address): Same.
7842         (rs6000_legitimize_reload_address): Same.
7843         (rs6000_legitimate_address): Same.
7844         (spe_build_register_parallel): Pass DF and DC modes in a DI
7845         register.
7846
7847         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
7848         to rs6k_nonimmediate_operand.
7849
7850         * config/rs6000/spe.md ("*frob_df_di"): New.
7851         ("*frob_di_df"): New.
7852         ("*frob_di_df_2"): New.
7853         ("*mov_sidf_e500_subreg0"): New.
7854         ("*mov_sidf_e500_subreg4"): New.
7855         ("*movdf_e500_double"): Change predicate to
7856         rs6k_nonimmediate_operand.
7857
7858 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7859
7860         * postreload.c (move2add_note_store): Only call
7861         trunc_int_for_mode on scalar integers.
7862
7863 2005-01-14  Steven Bosscher  <stevenb@suse.de>
7864
7865         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
7866         replace BB_VISITED uses.
7867         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
7868         (propagate_necessity): Check the bitmap instead of BB_VISITED.
7869         (tree_dce_done): Free visited_control_parents.
7870         (perform_tree_ssa_dce): Allocate and clear it.
7871         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
7872         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
7873         instead of BB_VISITED.
7874
7875 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
7876
7877         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
7878         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
7879         Remove unused prototypes.
7880
7881 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7882
7883         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
7884         64-bit register usage.
7885         (spe_func_has_64bit_regs_p): Add FIXME note.
7886
7887 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
7888
7889         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
7890         flag_finite_math_only with flag_unsafe_math_optimizations.
7891
7892 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
7893
7894         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
7895         end-of-stack check.
7896         (__tpf_eh_return): Copy TPF private stack area from the module
7897         boundary stack frame.  Add check for when module addresses are
7898         equal, but no stub address is found.
7899
7900 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
7901
7902         PR target/7525
7903         * arm.h (struct machine_function): Add call_via field.
7904         (thumb_call_via_label): Declare.
7905         * arm.c (thumb_call_via_label): New variable.
7906         (thumb_call_reg_needed): New variable.
7907         (arm_output_function_epilogue): For Thumb code, output any per-function
7908         call-indirect trampolines.
7909         (thumb_call_via_reg): New function.
7910         (arm_file_end): New function.
7911         (TARGET_ASM_FILE_END): Call arm_file_end.
7912         (aof_file_end): Likewise.
7913         * arm-protos.h (thumb_call_via_reg): Declare.
7914         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
7915         thumb_call_via_reg in normal case.
7916
7917 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
7918
7919         PR middle-end/19084
7920         PR rtl-optimization/19348
7921         * recog.c (peephole2_optimize): Do global life update if some peephole
7922         decides it doesn't need at least one of its inputs and that change
7923         influences liveness at the start of the basic block.
7924
7925         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
7926         arguments instead of 1.
7927
7928 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
7929
7930         PR middle-end/18820
7931         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
7932         zero for nested functions needing a static chain or functions
7933         with a non-constant address.
7934
7935 2005-01-13  Roger Sayle  <roger@eyesopen.com>
7936
7937         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
7938         (and (sign_extend X) C) into (zero_extend (and X C)).
7939
7940 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
7941
7942         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
7943
7944 2005-01-13  Richard Henderson  <rth@redhat.com>
7945
7946         PR target/19009
7947         PR target/19250
7948         PR target/19252
7949         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
7950         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
7951         not just TARGET_SSE.
7952         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
7953         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
7954         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
7955         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
7956         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
7957         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
7958         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
7959         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
7960         (movdicc_c_rex64): Rename with '*'.
7961         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
7962         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
7963         (movsfcc_1_387): Rename from movsfcc_1.
7964         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
7965         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
7966         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
7967         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
7968         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
7969         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
7970         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
7971         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
7972         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
7973         sse_movdfcc_const0_4): Remove.
7974         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
7975         recognize min/max early.  Update for changed sse cmove patterns.
7976         (ix86_split_sse_movcc): New.
7977         * config/i386/i386-protos.h: Update.
7978
7979 2005-01-13  Steven Bosscher  <stevenb@suse.de>
7980
7981         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
7982         (fix_stmt_v_may_defs): Likewise.
7983
7984 2005-01-13  Richard Henderson  <rth@redhat.com>
7985
7986         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
7987         for converting the mask.
7988
7989 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
7990
7991         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
7992         definition to 600.
7993
7994 2005-01-13  Richard Henderson  <rth@redhat.com>
7995
7996         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
7997         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
7998         IX86_BUILTIN_MOVDQ2Q): Remove.
7999         (IX86_BUILTIN_VEC_EXT_V4SI): New.
8000         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
8001         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
8002         shuffling.
8003         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
8004         (sse2_pextrw): Fix immediate constraint.
8005         (sse2_loadq, sse2_loadq_rex64): Remove.
8006         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
8007         Use __builtin_ia32_vec_ext_<size>.
8008         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
8009
8010 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
8011
8012         * function.c (assign_parm_setup_block): Look inside original
8013         entry_parm when inspecting PARALLEL.
8014
8015 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
8016             Joel Sherrill  <joel@oarcorp.com>
8017
8018         PR target/19399
8019         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
8020         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
8021         rtems_gxx_recursive_mutex_init.
8022         (__gthread_recursive_mutex_lock): New function.
8023         (__gthread_recursive_mutex_trylock): Likewise.
8024         (__gthread_recursive_mutex_unlock): Likewise.
8025
8026 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
8027
8028         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
8029
8030 2005-01-13  Jan Beulich  <jbeulich@novell.com>
8031
8032         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
8033         (ashrti3_internal): Indicate output is early clobber. Generate result
8034         into output rather than first input. Use move for low word of output
8035         if shift count is exactly 64.
8036         (lshrti3_internal): Likewise.
8037
8038 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
8039
8040         PR target/18329
8041         PR target/18330
8042         * reload1.c (delete_output_reload): Don't delete an output reload
8043         if the pseudo lives longer than a single basic block.  Adjust and
8044         improve wording of comment.
8045
8046 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
8047
8048         PR target/19334
8049         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
8050         of TYPE_SIZE where we mean the number of bytes.
8051
8052 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
8053
8054         * function.c (assign_parm_setup_block): Relax condition on
8055         multi-register optimization.
8056
8057 2005-01-12  Nick Clifton  <nickc@redhat.com>
8058
8059         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
8060         an "in_delay_slot" attribute of "no" to prevent them being used in
8061         delay slots.  This is forbidden because they might generate
8062         exceptions.
8063
8064 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
8065
8066         PR target/19389
8067         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
8068         with r->Y and Y->r.
8069
8070 2005-01-12  Nick Clifton  <nickc@redhat.com>
8071
8072         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
8073         passed on to GAS) but do not define, as GAS no longer supports or
8074         needs the -m2000 option.
8075
8076 2005-01-11  Roger Sayle  <roger@eyesopen.com>
8077
8078         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
8079         type as args of unprototyped builtins aren't automatically promoted.
8080         (fold_builtin_abs): Likewise.
8081
8082 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8083
8084         * Makefile.in: Set a `build-warn' variable.
8085
8086 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
8087
8088         PR tree-optimization/17949
8089         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
8090         (find_interesting_uses_address): Use it.
8091
8092 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
8093
8094         * regrename.c (kill_value): Handle subreg's that won't simplify.
8095
8096 2005-01-11  Richard Henderson  <rth@redhat.com>
8097
8098         PR target/13366
8099         * config/i386/i386.h (enum ix86_builtins): Move ...
8100         * config/i386/i386.c: ... here.
8101         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
8102         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
8103         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
8104         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
8105         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
8106         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
8107         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
8108         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
8109         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
8110         IX86_BUILTIN_LOADDDUP): Remove.
8111         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
8112         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
8113         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
8114         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
8115         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
8116         (ix86_init_builtins): Make static.
8117         (ix86_init_mmx_sse_builtins): Update for changed builtins.
8118         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
8119         if all the modes match.  Otherwise, fake it.
8120         (get_element_number, ix86_expand_vec_init_builtin,
8121         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
8122         (ix86_expand_builtin): Make static.  Update for changed builtins.
8123         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
8124         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
8125         (ix86_expand_vector_init_duplicate): New.
8126         (ix86_expand_vector_init_low_nonzero): New.
8127         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
8128         Split out from ix86_expand_vector_init; handle integer modes.
8129         (ix86_expand_vector_init): Use them.
8130         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
8131         * config/i386/i386-protos.h: Update.
8132         * config/i386/predicates.md (reg_or_0_operand): New.
8133         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
8134         (movv2sf_internal): Likewise.  And a splitter to match them all.
8135         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
8136         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
8137         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
8138         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
8139         (mmx_pinsrw): Fix operand ordering.
8140         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
8141         rather than sse_loadss expander.
8142         (movv2df splitter): Similarly.
8143         (sse_loadss, sse_loadlss): Remove.
8144         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
8145         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
8146         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
8147         (sse3_movddup): Rename with '*'.
8148         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
8149         (sse2_loadsd): Remove.
8150         (vec_dupv2df_sse3): Rename from sse3_loadddup.
8151         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
8152         (sse2_pinsrw): Fix argument ordering.
8153         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
8154         (sse2_stored): Remove 'r' destination.
8155         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
8156         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
8157         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
8158         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
8159         vec_extractv16qi, vec_initv16qi): New.
8160
8161         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
8162         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
8163         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
8164         constructor form.
8165         (_mm_load_pd, _mm_store_pd): Use plain dereference.
8166         (_mm_load_si128, _mm_store_si128): Likewise.
8167         (_mm_load1_pd): Use _mm_set1_pd.
8168         (_mm_load_sd): Use _mm_set_sd.
8169         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
8170         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
8171         (_mm_set_epi64): Use _mm_set_epi64x.
8172         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
8173         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
8174         _mm_setr_epi8): Use _mm_set_foo form.
8175         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
8176         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
8177         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
8178         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
8179         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
8180         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
8181         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
8182         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
8183         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
8184         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
8185         (_mm_movedup_pd): Use _mm_shuffle_pd.
8186         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
8187         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
8188         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
8189         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
8190         Use _mm_setzero_ps.
8191         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
8192         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
8193         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
8194         (_mm_store_ps): Use raw dereference.
8195         (_mm_store1_ps): Use _mm_storeu_ps.
8196         (_mm_storer_ps): Use _mm_store_ps.
8197         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
8198         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
8199
8200 2005-01-11  Stan Shebs  <shebs@apple.com>
8201
8202         * config/rs6000/rs6000.c (machopic_output_stub): Issue
8203         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
8204
8205 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
8206
8207         PR target/18761
8208         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
8209         Skip all DECLs except for FIELD_DECLs.
8210
8211 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8212
8213         * config/s390/s390.c (override_options): Return error if
8214         -mbackchain, -mpacked-stack and -mhard-float are used together.
8215         (s390_va_start): Remove the backchain && packed-stack special case.
8216         (s390_gimplify_va_arg): Likewise.
8217         * doc/invoke.texi: Remove the ABI incompatibility note.
8218
8219 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8220
8221         * config/s390/s390.c (struct s390_frame_layout): Remove
8222         save_backchain_p.
8223         (s390_frame_info, s390_emit_prologue): Replace occurrences of
8224         save_backchain_p with TARGET_BACKCHAIN.
8225
8226 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
8227
8228         PR target/18916
8229         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
8230         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
8231         * function.c (locate_and_pad_parm): Set new field.
8232         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
8233         Tweak where_pad test to include "none".  Always set mem align for
8234         stack_parm.
8235         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
8236         not sufficient for type.
8237         (assign_parm_setup_block): If stack_parm is zero on entry, always
8238         make a new stack local.  Block move old stack parm if necessary
8239         to new aligned stack local.
8240         (assign_parm_setup_stack): Use a block move to handle
8241         potentially misaligned entry_parm.
8242         (assign_parms_unsplit_complex): Specify required alignment when
8243         creating stack local.
8244         * calls.c (compute_argument_addresses): Override alignment of stack
8245         arg calculated from its type with the alignment given by
8246         FUNCTION_ARG_BOUNDARY.
8247         (store_one_arg): Likewise.
8248
8249 2005-01-11  Jan Beulich  <jbeulich@novell.com>
8250
8251         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
8252         Change respective itanium_class attribute to ialu.
8253         (shladdp4_internal): New.
8254         * config/ia64/predicates.md (shladd_log2_operand): New.
8255
8256 2005-01-11  Richard Henderson  <rth@redhat.com>
8257
8258         * expr.c (store_constructor): Use rtvec_alloc instead of
8259         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
8260
8261 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
8262
8263         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
8264
8265 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
8266
8267         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
8268         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
8269         (TARGET_RWRELOC): Define.
8270         (ia64_rwreloc_section_type_flags): Delete.
8271         (ia64_section_type_flags): New function.
8272         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
8273         (TARGET_RWRELOC): Define.
8274
8275 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
8276
8277         PR target/18987
8278         * config/ia64/ia64.c (process_set): For alloc insn, only call
8279         process_epilogue is !frame_pointer_needed.
8280
8281 2005-01-10  Roger Sayle  <roger@eyesopen.com>
8282
8283         PR c++/19355
8284         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
8285         unary operator and can't be treated as a binary/comparison operator.
8286
8287 2005-01-10  Richard Henderson  <rth@redhat.com>
8288
8289         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
8290         (ix86_return_in_memory): Likewise.
8291         (function_arg_advance):  Likewise.  Mirror structure in function_arg
8292         for choosing register to advance.
8293
8294 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
8295
8296         * tree-vectorizer.c, tree.def: Fix comment typos.
8297
8298 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
8299
8300         * config/s390/s390.c (struct processor_costs): 4 new fields:
8301         ddbr, ddr, debr, der.
8302         (s390_rtx_costs): More precise handling of divide instructions.
8303
8304 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
8305
8306         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
8307
8308 2005-01-10  Jan Beulich  <jbeulich@novell.com>
8309
8310         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
8311         names resulting from -ffunction-sections/-fdata-sections and linkonce
8312         ones.
8313         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
8314         based on the section name. Rearrange the section name comparison logic
8315         slightly so that each section name is compared against at most once.
8316
8317 2005-01-10  Ben Elliston  <bje@au.ibm.com>
8318
8319         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
8320         targets for which -fPIC reduces limitations on the GOT size.
8321
8322 2005-01-09  Falk Hueffner  <falk@debian.org>
8323
8324         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
8325         X/C1 cmpop C2.
8326
8327 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
8328
8329         PR target/18720
8330         * collect2.c (main): Set aixrtl_flag for -brtl option.
8331         (resolve_lib_name): Search for .so file extension before .a
8332         if aixrtl_flag set.
8333
8334 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
8335
8336         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
8337         (vect_analyze_data_refs_alignment): Add dump prints.
8338
8339 2005-01-09  Ira Rosen  <irar@il.ibm.com>
8340
8341         * tree-vectorizer.c (vect_analyze_offset_expr): Use
8342         expr_invariant_in_loop_p.
8343         Initialize outputs first thing in the function.
8344         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
8345         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
8346         (vect_analyze_pointer_ref_access): Check that the initial condition of
8347         the access function is loop invariant.
8348
8349 2005-01-09  Richard Henderson  <rth@redhat.com>
8350
8351         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
8352         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
8353         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
8354         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
8355         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
8356         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
8357         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
8358         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
8359         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
8360         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
8361         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
8362         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
8363         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
8364         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
8365         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
8366         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
8367         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
8368         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
8369         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
8370         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
8371         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
8372         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
8373         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
8374         mmx_ prefix.
8375         (mmx_clrdi, pavgusb): Remove.
8376         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
8377         with leading sse_ prefix.
8378         * config/i386/sse.md: Receive them.
8379         * config/i386/mmx.md: New file.
8380         (MMXMODE12, MMXMODE24, mmxvecsize): New.
8381         (subrv2sf3): Turn into expander for normal subtraction.
8382         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
8383         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
8384         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
8385         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
8386         commutative; use ix86_binary_operator_ok.
8387         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
8388         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
8389         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
8390         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
8391         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
8392         Macroize from existing patterns; use ix86_binary_operator_ok.
8393         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
8394         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
8395         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
8396         with vec_select+vec_concat.
8397         (mmx_pshufw, mmx_pshufw_1): Likewise.
8398         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
8399         (mmx_uavgv4hi3): Model correctly.
8400         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
8401         _mm_xor_si64): Remove casts.
8402
8403 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
8404
8405         PR tree-optimization/19224
8406         * tree-scalar-evolution.c (get_instantiated_value,
8407         set_instantiated_value): New functions.
8408         (instantiate_parameters_1): Cache the results.
8409         (instantiate_parameters, resolve_mixers): Initialize and free
8410         the cache.
8411
8412 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
8413
8414         * config/i386/i386.md (addhi_4): Correct reference in comment.
8415         (addqi_4): Same.
8416
8417 2005-01-08  Richard Henderson  <rth@redhat.com>
8418
8419         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
8420         (_mm_cvtsi128_si64x): Likewise.
8421         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
8422         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
8423         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
8424         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
8425         * config/i386/i386-protos.h: Update.
8426         * config/i386/i386.c (print_operand): Add 'H'.
8427         (ix86_fixup_binary_operands): Split out from ...
8428         (ix86_expand_binary_operator): ... here.
8429         (ix86_fixup_binary_operands_no_copy): New.
8430         (ix86_expand_fp_absneg_operator): Handle vector mode results.
8431         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
8432         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
8433         (safe_vector_operand): Use CONST0_RTX.
8434         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
8435         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
8436         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
8437         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
8438         special cases.
8439         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
8440         (IX86_BUILTIN_CMPNGESS): New.
8441         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
8442         (attr type): Add sselog1.
8443         (attr unit, attr memory): Handle it.
8444         (movti, movti_internal, movti_rex64): Move near other integer moves.
8445         (movtf, movtf_internal): Move near other fp moves.
8446         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
8447         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
8448         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
8449         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
8450         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
8451         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
8452         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
8453         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
8454         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
8455         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
8456         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
8457         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
8458         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
8459         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
8460         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
8461         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
8462         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
8463         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
8464         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
8465         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
8466         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
8467         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
8468         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
8469         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
8470         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
8471         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
8472         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
8473         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
8474         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
8475         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
8476         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
8477         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
8478         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
8479         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
8480         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
8481         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
8482         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
8483         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
8484         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
8485         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
8486         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
8487         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
8488         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
8489         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
8490         same time.
8491         (SSEPUSH, push<SSEPUSH>): Remove.
8492         (MMXPUSH, push<MMXPUSH>): Remove.
8493         (sse_movaps, sse_movaps_1, sse_movups): Remove.
8494         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
8495         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
8496         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
8497         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
8498         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
8499         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
8500         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
8501         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
8502         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
8503         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
8504         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
8505         (ppro_sse_log_V4SF): Handle sselog1.
8506         * config/i386/predicates.md (const_0_to_1_operand): New.
8507         (const_0_to_255_mul_8_operand): New.
8508         (const_1_to_31_operand): Rename from const_int_1_31_operand.
8509         (const_2_to_3_operand, const_4_to_7_operand): New.
8510         * config/i386/sse.md: New file.
8511         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
8512         (sse_movups): Rename from sse_movups_1.
8513         (sse_loadlss): Rename from sse_loadss_1.
8514         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
8515         from the name.
8516         (negv4sf2): Use ix86_expand_fp_absneg_operator.
8517         (absv4sf2, negv2df, absv2df): New.
8518         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
8519         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
8520         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
8521         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
8522         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
8523         (sse3_addsubv4sf3): Model correctly.
8524         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
8525         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
8526         (sse_movhlps): Model with vec_select+vec_concat.
8527         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
8528         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
8529         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
8530         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
8531         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
8532         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
8533         sse2_pshufhw_1): Likewise.
8534         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
8535         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
8536         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
8537         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
8538         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
8539         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
8540         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
8541         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
8542         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
8543         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
8544         sminv8hi3): Mark commutative
8545         operands.  Use ix86_binary_operator_ok.
8546         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
8547         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
8548         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
8549         sse2_punpcklqdq): Allow operand2 in memory.
8550         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
8551         sse2_movsd): Add memory alternatives.
8552         (sse_storelps): Turn expander into an insn; split after reload.
8553         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
8554         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
8555
8556 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
8557
8558         * configure.ac (DWARF-2 debug_line): Use objdump.
8559         * configure: Regenerate.
8560
8561 2005-01-08  Jeff Law  <law@redhat.com>
8562             Diego Novillo  <dnovillo@redhat.com>
8563
8564         PR tree-optimization/18241
8565         * tree-nrv.c (tree_nrv): Ignore volatile return values.
8566         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
8567         statements with volatile operands.
8568         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
8569         operands after marking a statement with has_volatile_ops.
8570
8571 2005-01-08  Roger Sayle  <roger@eyesopen.com>
8572
8573         * tree.c (int_fits_type_p): Always honor integer constant
8574         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
8575
8576 2005-01-08  Roger Sayle  <roger@eyesopen.com>
8577
8578         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
8579         the latent bug in rtl_delete_block has been resolved.
8580
8581 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
8582
8583         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
8584         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
8585
8586 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
8587
8588         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
8589         library as @multilib_dir@/$(SHLIB_SONAME).
8590
8591 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
8592
8593         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
8594         * configure: Regenerate.
8595
8596 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
8597
8598         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
8599         TYPE_MODE.
8600
8601 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
8602
8603         PR target/13674
8604         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
8605         Convert non-word aligned offset address using ld/std into
8606         indirect address.
8607
8608 2005-01-07  Richard Henderson  <rth@redhat.com>
8609
8610         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
8611
8612 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
8613
8614         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
8615
8616 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
8617
8618         PR tree-optimization/19283
8619         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
8620         is not shorter than the original type.
8621
8622         PR rtl-optimization/19012
8623         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
8624
8625         PR rtl-optimization/18861
8626         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
8627         (FULL_STATE): Define.
8628         (mark_tablejump_edge): New function.
8629         (purge_dead_tablejump_edges): New function.
8630         (find_bb_boundaries): Use it.
8631
8632         PR tree-optimization/18828
8633         * builtins.c (expand_builtin_next_arg): Remove argument and all
8634         the argument checking.
8635         (expand_builtin): Adjust caller.
8636         (expand_builtin_va_start): Likewise.  Remove error for too many
8637         arguments.
8638         (fold_builtin_next_arg): Issue error for too many arguments.
8639         After checking arguments, replace them with magic arguments that
8640         prevent further checking of the args.
8641
8642 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8643
8644         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
8645
8646 2005-01-06  Roger Sayle  <roger@eyesopen.com>
8647
8648         PR target/6077
8649         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
8650         and %{.S:...} (and their negative variants) to test whether the
8651         input file is assembler or pre-processed-assembler independent of
8652         the actual filename extension.
8653
8654 2005-01-06  Roger Sayle  <roger@eyesopen.com>
8655
8656         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
8657         of sign or zero extended values.
8658
8659 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
8660
8661         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
8662         for IBM long double format correctly.
8663
8664 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
8665
8666         Fix PR tree-optimization/18792
8667
8668         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
8669         to first_loop_depth, and use loop depth instead of loop number.
8670         (build_classic_dir_vector): Ditto.
8671         (compute_data_dependences_for_loop): Use depth, not loop number.
8672         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
8673         number. Pass in loops, instead of loop numbers.
8674         (gather_interchange_stats): Ditto.
8675         (linear_transform_loops): Ditto.
8676
8677 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
8678
8679         PR rtl-opt/13299
8680         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
8681         biv_fits_mode_p, extension_within_bounds_p): New functions.
8682         (check_ext_dependent_givs): Use them.
8683
8684 2005-01-06  Roger Sayle  <roger@eyesopen.com>
8685
8686         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
8687         more than one barrier, in which case we should delete them all.
8688
8689 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
8690
8691         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
8692
8693 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
8694
8695         Fix PR middle-end/19286
8696         Fix PR debug/19267
8697         * dwarf2out.c (gen_subprogram_die): If we've already tried to
8698         output this subprogram, simply ignore this attempt to do it again.
8699         (add_abstract_origin_attribute): Don't abort trying to add the abstract
8700         origin attribute if it's not possible.
8701         (gen_block_die): Don't ignore subblocks of "unused" blocks.
8702         (decls_for_scope): Ditto.
8703         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
8704         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
8705
8706 2005-01-05  Richard Henderson  <rth@redhat.com>
8707
8708         PR target/11327
8709         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
8710         (bdesc_2arg): Use it.
8711         (ix86_expand_binop_builtin): Force operands into registers
8712         when optimizing.
8713         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
8714         ix86_expand_sse_compare, ix86_expand_sse_comi,
8715         ix86_expand_builtin): Likewise.
8716
8717 2005-01-05  Richard Henderson  <rth@redhat.com>
8718
8719         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
8720         and VEC_SELECT.
8721         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
8722         (mulv4hi3): Set itanium_class mmmul.
8723         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
8724         (fpack): Rename from fpack_sfsf.
8725
8726 2005-01-05  Richard Henderson  <rth@redhat.com>
8727
8728         PR rtl-opt/10692
8729         * reload1.c (do_input_reload): Restrict the optimization deleteing
8730         a previous output reload to RELOAD_FOR_INPUT.
8731
8732 2005-01-05  Steven Bosscher  <stevenb@suse.de>
8733
8734         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
8735         comment that we fall through after case.
8736         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
8737         (distribute_links): Likewise.
8738         * cse.c (cse_insn): Likewise.
8739         * cselib.c (cselib_invalidate_mem): Likewise.
8740         * df.c: Update comments at the top of the file.
8741         (read_modify_subreg_p): Update comments here too.
8742         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
8743         * flow.c (mark_set_1): Likewise.
8744         (mark_used_regs): Likewise.
8745         * gcse.c (mems_conflict_for_gcse_p): Likewise.
8746         (canon_list_insert): Likewise.
8747         (mark_set): Likewise.
8748         (try_replace_reg): Likewise.
8749         (store_killed_in_insn): Likewise.
8750         * loop.c (count_one_set): Likewise.
8751         (basic_induction_var): Likewise.
8752         * postreload-gcse.c (find_mem_conflicts): Likewise.
8753         * postreload.c (reload_combine_note_store): Likewise.
8754         (move2add_note_store): Likewise.
8755         * reload.c (find_equiv_reg): Likewise.
8756         (mark_referenced_resources): Likewise.
8757         * rtlanal.c (set_noop_p): Likewise.
8758         (note_stores): Likewise.
8759         (note_uses): Likewise.
8760         * sched-deps.c (sched_analyze_1): Likewise.
8761         * sched-rgn.c (check_live_1): Likewise.
8762         (update_live_1): Likewise.
8763         * config/i860/i860.c: Likewise.
8764
8765         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
8766         an lvalue.
8767         (ZERO_EXTRACT): Mention that this one can be an lvalue.
8768
8769         * doc/rtl.texi: Update documentation for bit-fields and SET.
8770
8771 2005-01-05  Roger Sayle  <roger@eyesopen.com>
8772
8773         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
8774
8775 2005-01-05  Jan Hubicka  <jh@suse.cz>
8776             Richard Henderson  <rth@redhat.com>
8777
8778         PR target/18910
8779         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
8780         with an offset.
8781
8782 2005-01-05  Richard Henderson  <rth@redhat.com>
8783
8784         PR target/12902
8785         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
8786         (sse_shufps): Change operand 3 to const_int_operand.
8787         (sse2_storelps): Fix typo in template.
8788         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
8789         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
8790         (ix86_expand_builtin): Likewise.
8791
8792 2005-01-05  Julian Brown  <julian@codesourcery.com>
8793
8794         * config/arm/arm.c (arm_return_in_memory): Treat complex types
8795         as aggregates for AAPCS ABIs.
8796
8797 2005-01-05  Stan Shebs  <shebs@apple.com>
8798
8799         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
8800         Mach-O getters if ppc64.
8801         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
8802         size argument.
8803         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
8804         signed four-byte field for global code case.
8805         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
8806
8807 2005-01-05  Roger Sayle  <roger@eyesopen.com>
8808
8809         PR middle-end/19100
8810         * c-common.c: Include real.h.
8811         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
8812         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
8813         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
8814         * Makefile.in (c-common.o): Update dependencies.
8815
8816 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
8817
8818         * c-parse.in (asm_string): Add trailing semicolon.
8819
8820 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
8821
8822         * c-parse.in (asm_string): New.  Don't allow wide strings in
8823         'asm'.
8824         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
8825         asm_string instead of STRING.
8826
8827 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
8828
8829         * c-typeck.c (constructor_no_implicit): Remove.
8830         (set_designator, process_init_element): Don't check
8831         constructor_no_implicit.
8832
8833 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
8834             Kaz Kojima  <kkojima@gcc.gnu.org>
8835
8836         PR target/16482
8837         * lcm.c (create_pre_exit): New.
8838         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
8839         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
8840
8841 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
8842
8843         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
8844         -msoft-float in target_float_switch.
8845         * arm.c (arm_override_options): Fix processing of target_float_switch.
8846
8847 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
8848
8849         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
8850         preferencing.
8851
8852 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
8853
8854         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
8855         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
8856
8857 2005-01-04  Roger Sayle  <roger@eyesopen.com>
8858
8859         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
8860         if deleting the then-block allows the test-block to fallthru to the
8861         else-block.
8862
8863 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
8864
8865         PR c/19152
8866         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
8867         after the full declaration if the are in two different TUs.
8868
8869 2005-01-04  Richard Henderson  <rth@redhat.com>
8870
8871         PR tree-opt/19158
8872         * tree-sra.c (generate_one_element_init): Just
8873         call gimplify_and_add.
8874         (generate_element_init): Record the
8875         new referenced variables and mark them for renaming
8876         and split out to ...
8877         (generate_element_init_1): This.
8878         (scalarize_init): Don't call push_gimplify_context/
8879         pop_gimplify_context.
8880
8881 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
8882
8883         * toplev.c (get_src_pwd): Handle failure of getpwd().
8884
8885 2005-01-04  Roger Sayle  <roger@eyesopen.com>
8886
8887         * fold-const.c (fold_single_bit_test): Delete unreachable handling
8888         of TRUTH_NOT_EXPR.
8889         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
8890         all the cases handled by it are inverted by invert_truthvalue.
8891
8892 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8893
8894         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
8895         (save_register_windowsi): Likewise.
8896
8897 2005-01-04  Richard Henderson  <rth@redhat.com>
8898
8899         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
8900
8901 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
8902
8903         PR middle-end/17767
8904         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
8905         any simplifications of vector mode comparison operators.
8906         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
8907
8908 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
8909             Devang Patel  <dpatel@apple.com>
8910
8911         PR tree-optimization/18308
8912         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
8913         the operands before creating a new expression.
8914         * dojump.c (do_jump): Make drop_through_label available
8915         for all cases.  Add expansion of COND_EXPR.
8916
8917 2005-01-04  Ira Rosen  <irar@il.ibm.com>
8918
8919         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
8920         INTEGER_CST instead of TREE_CONSTANT.
8921         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
8922         instead of TREE_CONSTANT.
8923         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
8924         instead of TREE_CONSTANT.
8925
8926 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8927
8928         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
8929
8930 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
8931
8932         PR target/19240
8933         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
8934         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
8935
8936 2005-01-03  Richard Henderson  <rth@redhat.com>
8937
8938         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
8939         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
8940         fold_convert_const_real_from_real): Split out from ...
8941         (fold_convert_const): ... here.
8942
8943 2005-01-03  Richard Henderson  <rth@redhat.com>
8944
8945         PR target/19235
8946         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
8947         (mov<MMXMODEI>_internal): Likewise.
8948         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
8949         Add V2SF case; use it for SSE1; don't use TI.
8950         (movdf_integer): Likewise.
8951         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
8952
8953 2005-01-03  Ira Rosen  <irar@il.ibm.com>
8954
8955         * tree-vectorizer.c (vect_strip_conversions): New function.
8956         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
8957         check for binary class.
8958
8959 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
8960
8961         Fix PR debug/17924
8962         Fix PR debug/19191
8963         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
8964         is a decl.
8965         * gimple-low.c (mark_blocks_with_used_vars): New function.
8966         (mark_blocks_with_used_subblocks): Ditto.
8967         (mark_used_blocks): Ditto.
8968         (pass_mark_used_blocks): New pass.
8969         * tree-inline.c: Include debug.h.
8970         (expand_call_inline): Call outlining_inline_function here.
8971         * tree-optimize.c (init_tree_optimization_passes): Add
8972         pass_mark_used_blocks.
8973         * tree-pass.h (pass_mark_used_blocks): New.
8974         * Makefile.in (tree-inline.o): Add debug.h dependency.
8975
8976 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
8977
8978         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
8979         VAR_DECLs to have weak_import attribute.
8980
8981         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
8982         'struct ucontext'.
8983
8984 2004-01-03  Steven Bosscher  <stevenb@suse.de>
8985
8986         * passes.c (rest_of_compilation): Don't run regmove if only
8987         flag_expensive_optimizations, require flag_regmove instead.
8988
8989 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8990
8991         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
8992         register "sparc".
8993         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
8994         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
8995         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
8996         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
8997
8998 2005-01-03  Richard Henderson  <rth@redhat.com>
8999
9000         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
9001         (ia64_const_ok_for_letter_p): New.
9002         (ia64_const_double_ok_for_letter_p): New.
9003         (ia64_extra_constraint): New.
9004         (ia64_expand_vecint_compare): New.
9005         (ia64_expand_vcondu_v2si): New.
9006         (ia64_expand_vecint_cmov): New.
9007         (ia64_expand_vecint_minmax): New.
9008         (ia64_print_operand): Add 'v'.
9009         (ia64_preferred_reload_class): New.
9010         (ia64_vector_mode_supported_p): New.
9011         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
9012         (PREFERRED_RELOAD_CLASS): Move to function.
9013         (CONST_OK_FOR_LETTER_P): Move to function.
9014         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
9015         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
9016         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
9017         (EXTRA_CONSTRAINT): Move to function.
9018         * config/ia64/ia64.md: Include vect.md.
9019         (itanium_class): Add mmalua.
9020         (type): Handle it.
9021         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
9022         (1b_mmalua): New.
9023         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
9024         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
9025         CONST0_RTX.
9026         (const_int_2bit_operand): New.
9027         (fr_reg_or_0_operand): New.
9028         * config/ia64/ia64-modes.def: Add vector modes.
9029         * config/ia64/ia64-protos.h: Update.
9030         * config/ia64/vect.md: New file.
9031
9032 2005-01-03  Richard Henderson  <rth@redhat.com>
9033
9034         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
9035
9036 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
9037
9038         PR target/19236
9039         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
9040         to SFmode.
9041         (log1pdf2): Change mode of operands[0,1] to DFmode.
9042
9043 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9044
9045         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
9046         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
9047         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
9048         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
9049         SPARC_RELAXED_ORDERING.
9050
9051 2005-01-03  Richard Henderson  <rth@redhat.com>
9052             Uros Bizjak  <uros@kss-loka.si>
9053
9054         PR target/14631
9055         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
9056         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
9057         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
9058         handling.
9059         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
9060         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
9061         const_pow2_1_to_128_operand): New predicates.
9062
9063 2005-01-02  Greg McGary  <greg@mcgary.org>
9064
9065         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
9066         anonymous decls.
9067         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
9068         object.  [ptr_type]: Remove unused variable.
9069         Remember nearest addressable array-element or record-component
9070         when checking bitfield components.  Tolerate empty BIND_EXPR.
9071
9072 2005-01-01  Richard Henderson  <rth@redhat.com>
9073
9074         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
9075         that don't narrow the value.  Fail for other conversions.
9076
9077 2005-01-01  Richard Henderson  <rth@redhat.com>
9078
9079         PR c/19031
9080         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
9081         * c-lang.c (finish_file): Don't do it here.
9082         * objc/objc-act.c (objc_finish_file): Likewise.
9083
9084         * cgraph.c (decl_assembler_name_equal): New.
9085         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
9086         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
9087         * cgraph.h (struct cgraph_varpool_node): Add next.
9088         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
9089         * varasm.c (assemble_alias): Mark the target as needed.
9090
9091 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
9092
9093         PR middle-end/19221
9094         * function.c (get_arg_pointer_save_area): Use entry_of_function
9095         instead of get_insns.
9096
9097 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9098             Andrew Pinski  <pinskia@physics.uc.edu>
9099             James E. Wilson  <wilson@specifixinc.com>
9100
9101         PR rtl-optimization/12092
9102         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
9103         is zero.
9104
9105 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9106             Olivier Hainque  <hainque@act-europe.fr>
9107
9108         * tree.c (int_fits_type_p): A narrower type always fits in a
9109         wider one, except for negative values into unsigned types.
9110
9111 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9112
9113         * tree.c (int_fits_type_p): Compare the result of force_fit_type
9114         with the original constant rather than require TREE_OVERFLOW.
9115
9116 2005-01-01  Steven Bosscher  <stevenb@suse.de>
9117
9118         PR middle-end/17544
9119         * c-decl.c (finish_function): If compiling C99, annotate the
9120         compiler generated return with the current file name and line 0.
9121         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
9122         the source line is greater than 0.
9123         (remove_bb): Likewise.
9124
9125 See ChangeLog.12 for earlier changes.