OSDN Git Service

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