OSDN Git Service

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