OSDN Git Service

2005-06-08 James A. Morrison <phython@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-06-08  James A. Morrison  <phython@gcc.gnu.org>
2
3         PR target/20666
4         * config/sparc/sparc.c (sparc_fold_builtin): New function
5         (sparc_vis_mul8x16): New function.
6         (sparc_handle_vis_mul8x16): New function.
7         (TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
8
9 2005-06-08  David Edelsohn  <edelsohn@gnu.org>
10
11         * config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
12         CTR to LR.
13         (call_indirect_nonlocal_aix64): Same.
14         (call_value_indirect_nonlocal_aix32): Same.
15         (call_value_indirect_nonlocal_aix64): Same.
16
17         PR target/10588
18         (eq): Use CLZ splitter for compare with zero.
19
20 2005-06-08  Bernd Schmidt  <bernd.schmidt@analog.com>
21
22         * config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
23         everything larger than 8 bytes in memory.
24
25         * config/bfin/bfin.h (enum bfin_builtins): New.
26         * config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
27         New constants.
28         (csync, ssync): New insn patterns.
29         * config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
30         New functions.
31         (def_builtin): New macro.
32         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
33
34         From Jie Zhang  <jie.zhang@analog.com>
35         * config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
36         behavior of the native assembler in VDSP. So change accordingly.
37         
38 2005-06-08  Sebastian Pop  <pop@cri.ensmp.fr>
39
40         * tree-data-ref.c (compute_estimated_nb_iterations,
41         analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
42         analyze_subscript_affine_affine, find_data_references_in_loop):
43         Fixed to use chrec_contains_undetermined to test the values of
44         loop->estimated_nb_iterations.
45         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
46         Compute the estimation only when loop->estimated_nb_iterations
47         has not yet been initialized.
48         (convert_step_widening, scev_probably_wraps_p): Add a call to
49         estimate_numbers_of_iterations_loop.
50         * tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
51
52 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
53
54         PR debug/21946
55         * dwarf2out.c (add_loc_descr_op_piece): Move to the
56         DWARF2_DEBUGGING_INFO section.
57
58 2005-06-08  Richard Henderson  <rth@redhat.com>
59
60         PR target/21721
61         * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
62
63 2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
64
65         PR target/21889
66         * target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
67         * target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
68         (TARGET_ASM_OUT): Add it.
69         * doc/tm.texi (Debugging Info): Document it.
70         * dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
71         Test it instead of ASM_OUTPUT_DWARF_DTPREL.
72         (loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
73         * system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
74         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
75         * config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
76         (gen_inlined_tls_plt): Remove unused variable MEM.
77         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
78         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
79         * config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
80         * config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
81         unused.
82         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
83         * config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
84         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
85         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
86         unused.
87         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
88         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
89         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
90         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
91         unused.
92         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
93         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
94         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
95         * config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
96         unused.
97         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
98         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
99         * config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
100         (TARGET_GNU_TLS): Define to 1.
101         * config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
102         * config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
103         unused.
104         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
105         if TARGET_GNU_TLS only.
106         * config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
107
108         * config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
109         (sparc-*-solaris2*): Likewise on Solaris 7 and up.
110
111 2005-06-07  Dale Johannesen  <dalej@apple.com>
112
113         * config/i386/i386.md (movqi_1):  Fix case where source
114         is memory and destination EDI.
115
116 2005-06-08  Kazu Hirata  <kazu@codesourcery.com>
117
118         * config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
119
120 2005-06-07  Eric Christopher  <echristo@redhat.com>
121
122         * system.h: Poison EXTRA_CC_MODES.
123         * config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
124         * config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
125         * doc/md.texi (Jump Patterns): Replace reference to
126         EXTRA_CC_MODES with machine-modes.def.
127         * doc/rtl.texi (Machine Modes): Ditto.
128
129 2005-06-07  Richard Henderson  <rth@redhat.com>
130
131         * varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
132         (assemble_start_function): Fix strcmp confusion.
133
134 2005-06-07  Uros Bizjak  <uros@kss-loka.si>
135
136         * config/i386/i386.h (enum ix86_entity): New.
137         (enum ix86_stack_slot): New.
138         (OPTIMIZE_MODE_SWITCHING): Redefine to use
139         ix86_optimize_mode_switching[] array.
140         (NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
141         (MODE_NEEDED): Use ix86_mode_needed() function.
142         (EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
143         function.
144         (struct machine_function): Use optimize_mode_switching[] array.
145
146         * config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
147         (ix86_mode_needed): New function.
148         (emit_i387_cw_initialization): Cleanup. Use mode to calculate
149         correct stack positions for stored control words.
150         (assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
151         (ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
152         SLOT_TEMP.
153         [IX86_BUILTIN_STMXCSR]: Same.
154
155         * config/i386/i386-protos.h (assign_stack_local): Change prototype.
156         (emit_i387_cw_initialization): Change prototype.
157         (ix86_mode_needed): New prototype.
158
159         * config/i386/i386.md (i387_cw attribute): Change order of elements.
160         (truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
161         (*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
162         (*fist<mode>2_ceil_1): Change constant in call to
163         assign_386_stack_local to SLOT_TEMP.
164         (*fix_trunc<mode>_i387_1): Change constant in call to
165         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
166         Use new ix86_optimize_mode_switching[] array.
167         (frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
168         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
169         Use new ix86_optimize_mode_switching[] array.
170         (frndintxf2_ceil, *fist<mode>2_ceil_1):  Change constants in call to
171         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
172         Use new ix86_optimize_mode_switching[] array.
173         (frndintxf2_trunc): Change constants in call to
174         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
175         Use new ix86_optimize_mode_switching[] array.
176         (frndintxf2_mask_pm): Change constants in call to
177         assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
178         Use new ix86_optimize_mode_switching[] array.
179
180         (define_peephole2): Change constant from 17 to FLAGS_REG;
181
182 2005-06-07  Richard Henderson  <rth@redhat.com>
183
184         PR rtl-opt/21528
185         * rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
186
187 2005-06-07  Dale Johannesen  <dalej@apple.com>
188
189         * tree-nested.c (finalize_nesting_tree_1):  Disable
190         warn_padded around layout_type call.
191
192 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
193
194         * tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
195         before emiting it.
196
197 2005-06-07  Eric Christopher  <echristo@redhat.com>
198
199         * config/mips/predicates.md: Revert previous patch.
200
201 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
202
203         PR middle-end/21850
204         * tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
205         from vector types.
206
207 2005-06-07  Diego Novillo  <dnovillo@redhat.com>
208
209         * tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
210         (thread_stats): New local variable.
211         (redirect_edges): Increment count of threaded edges.
212         (thread_through_all_blocks): Initialize thread_stats.
213         Display number of threaded jumps if TDF_STATS is enabled.
214
215 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
216
217         * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
218         the current bit index with no modulo.
219
220 2005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
221
222         PR 18403 and meta PR 21861.
223         * Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
224         * tree-chrec.c: Include cfgloop.h and tree-flow.h.
225         (evolution_function_is_invariant_rec_p,
226         evolution_function_is_invariant_p): New.
227         (chrec_convert): Use an extra parameter AT_STMT for refining the
228         information that is passed down to convert_step.  Integrate the 
229         code that was in count_ev_in_wider_type.
230         * tree-chrec.h (count_ev_in_wider_type): Removed.
231         (chrec_convert): Modify its declaration.
232         (evolution_function_is_invariant_p): Declared.
233         (evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
234         * tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
235         (scev_probably_wraps_p): Declared.
236         * tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
237         (follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
238         Use an extra parameter AT_STMT for refining the information that is
239         passed down to convert_step.
240         (follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
241         analyze_scalar_evolution_1): Initialize AT_STMT with the current
242         analyzed statement.
243         (instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
244         * tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
245         can_count_iv_in_wider_type to use convert_step.
246         * tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
247         code that is independent of the loop over the known iteration
248         bounds to convert_step_widening, the rest is moved to
249         proved_non_wrapping_p.
250         (scev_probably_wraps_p): New.
251         (can_count_iv_in_wider_type): Renamed convert_step.
252         * tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
253         Use scev_probably_wraps_p for computing init_is_max.
254         (vrp_visit_assignment): Pass the current analyzed statement to 
255         adjust_range_with_scev.
256         (execute_vrp): Call estimate_numbers_of_iterations for refining the 
257         information provided by scev analyzer.
258
259 2005-06-07  Eric Christopher  <echristo@redhat.com>
260
261         * config/mips/predicates.md (sleu_operand): Use
262         IN_RANGE to specify range of operand.
263
264 2005-06-07  Steven Bosscher  <stevenb@suse.de>
265
266         PR tree-optimization/21847
267         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
268         -fnon-call-exceptions, also mark statements inherently
269         necessary if they may throw.
270
271 2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
272
273         * config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
274         ("type"): Add "sem" to 'type' attribute.
275         ("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
276         "sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
277         "sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
278         "*sync_compare_and_swap_ccsi"): New patterns.
279         * config/s390/2064.md: ("z_sem"): New insn_reservation.
280         * config/s390/2084.md: ("x_sem"): New insn_reservation.
281         * config/s390/s390.c: (s390_compare_emitted): New global variable.
282         (s390_emit_compare): Do not emit comparison again after cas.
283         * config/s390/s390.h (s390_compare_emitted): Declare.
284
285 2005-06-07  Kazu Hirata  <kazu@codesourcery.com>
286
287         * sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
288         sbitmap_iter_cond, sbitmap_iter_next): New.
289         * bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
290         modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
291         tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
292         uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
293
294 2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
295
296         * tree-ssa-address.c: New file.
297         * Makefile.in (tree-ssa-address.o): Add.
298         * expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
299         INDIRECT_REFs.  Handle TARGET_MEM_REFs.
300         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
301         * tree-flow.h (struct mem_address): New.
302         (struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
303         (create_mem_ref, addr_for_mem_ref, get_address_description,
304         maybe_fold_tmr, multiplier_allowed_in_address_p,
305         multiply_by_cost):  Declare.
306         * tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
307         * tree-pretty-print.c (dump_generic_node): Ditto.
308         * tree-ssa-loop-im.c (for_each_index): Ditto.
309         * tree-ssa-loop-ivopts.c (may_be_unaligned_p,
310         find_interesting_uses_address): Ditto.
311         (rewrite_address_base, build_addr_strip_iref): Removed.
312         (struct affine_tree_combination): Moved to tree-flow.h.
313         (get_ref_tag, copy_ref_info): New functions.
314         (rewrite_use_address): Produce TARGET_MEM_REFs.
315         (tree_ssa_iv_optimize): Do not call update_ssa
316         and rewrite_into_loop_closed_ssa.
317         (tree_to_aff_combination): Use build_fold_addr_expr instead of
318         build_addr_strip_iref.
319         (unshare_aff_combination): New function.
320         (fold_affine_sum): Removed.
321         (get_computation_at): Use get_computation_aff.  Unshare the result.
322         (get_computation_aff, multiplier_allowed_in_address_p): New function.
323         (multiply_by_cost): Exported.
324         (get_address_cost): Use multiplier_allowed_in_address_p.
325         * tree-ssa-operands.c (get_tmr_operands): New function.
326         (get_expr_operands): Handle TARGET_MEM_REFs.
327         * tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
328         (build): Handle 7 arguments.
329         (build7_stat): New function.
330         * tree.def (TARGET_MEM_DEF): New.
331         * tree.h (REF_ORIGINAL): Removed.
332         (TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
333         TMR_TAG, build7): New macros.
334         (build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
335         * tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
336         * doc/c-tree.texi: Document TARGET_MEM_REF.
337         * doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
338
339 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
340
341         PR debug/21946
342         * dwarf2out.c (add_loc_descr_op_piece): New function.
343         (multiple_reg_loc_descriptor, concat_loc_descriptor,
344         loc_descriptor): Use it.
345         * var-tracking.c: Include regs.h and expr.h.
346         (emit_note_insn_var_location): Skip over pieces where offset
347         is smaller than previous offset plus previous piece mode size.
348         Optimize adjacent hard registers or memory locations.
349         * Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
350
351 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
352
353         * c-typeck.c (c_finish_if_stmt): Use void_type_node as type
354         for COND_EXPR.
355         * gimplify.c (gimplify_cond_expr): No need to fix up the
356         type of COND_EXPRs.
357
358 2005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
359
360         * tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
361         comments.
362
363 2005-06-07  Geoffrey Keating  <geoffk@apple.com>
364
365         * config/rs6000/host-darwin.c (segv_handler): Widen the possible
366         'stwux' instructions that are considered to be stack decrements.
367
368         * rtlanal.c (subreg_offset_representable_p): Handle objects
369         with holes.
370
371 2005-06-06  Uros Bizjak  <uros@kss-loka.si>
372
373         * mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
374         in call to pre_edge_lcm.
375
376 2005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
377
378         * config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
379         (SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
380         (SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
381         Likewise.
382         (SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
383         dwarf register number for SHmedia.
384         (shmedia_fallback_frame_state): New.
385         (MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
386
387         * config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
388
389 2005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
390
391         * c-lex.c (lex_string): Use XOBFINISH.
392         * collect2.c (extract_string, dump_file): Likewise.
393         * dbxout.c (dbxout_finish_complex_stabs): Likewise.
394         * gcc.c (init_spec, build_search_list, convert_filename, 
395         set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
396         * genpreds.c (write_predicate_subfunction): Likewise.
397         * genflags.c (main): Likewise.
398         * read-rtl.c (mode_attr_index, apply_macro_to_string, 
399         join_c_conditions, read_quoted_string, read_braced_string, 
400         read_rtx_1): Likewise.
401         * stringpool.c (ggc_alloc_string): Likewise.
402         * tlink.c (obstack_fgets, recompile_files): Likewise.
403
404 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
405
406         * intl.h (G_): New macro.
407         * rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
408         instead of msgid for argument name.
409         * tree-ssa.c (warn_uninit): Likewise.
410         * c-parser.c (c_parser_error): Likewise.
411         * config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
412         * config/darwin-c.c (BAD): Likewise.
413         * config/c4x/c4x-c.c (BAD): Likewise.
414         * c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
415         * c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
416         * c-common.c (c_parse_error): Likewise.
417         * diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
418         warning0, pedwarn, error, sorry, fatal_error, internal_error):
419         Likewise.
420         (fnotice): Use cmsgid instead of msgid for argument name.
421         * gcov.c (fnotice): Likewise.
422         * protoize.c (notice): Likewise.
423         * final.c (output_operand_lossage): Likewise.
424         * gcc.c (fatal, notice): Likewise.
425         (error): Use gmsgid instead of msgid for argument name.
426         * collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
427         of msgid for argument name.
428         (error): Use gmsgid instead of msgid for argument name.
429         * c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
430         instead of N_().
431         * c-typeck.c (readonly_error, convert_for_assignment): Likewise.
432         * tree-inline.c (inline_forbidden_p_1): Likewise.
433         * ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
434         conventions for marking translations.
435         * doc/install.texi: Mention gettext 0.14.5 or later requirement.
436
437         * tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
438         build2.
439
440         * fold-const.c (operand_equal_p): Don't return 1, if element
441         chains for 2 VECTOR_CSTs are not the same length.
442
443         PR regression/21897
444         * fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
445         not all VECTOR_CST elements are given.
446
447         * combine.c (try_combine): Use hard_regno_nregs array instead of
448         HARD_REGNO_NREGS macro.
449         * config/rs6000/rs6000.c (rs6000_split_multireg_move,
450         rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
451         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
452
453 2005-06-06  Daniel Berlin  <dberlin@dberlin.org>
454
455         * tree-ssa-reassoc.o: New.
456         (OBJS-common): Add tree-ssa-reassoc.o
457         * timevar.def: Add TV_TREE_REASSOC
458         * tree-optimize.c (pass_reassoc): Add call.
459         * tree-pass.h (pass_reassoc): Add.
460         * tree-ssa-reassoc.c: New file.
461
462 2005-06-06  Eric Christopher  <echristo@redhat.com>
463
464         target/21927
465         * expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
466
467 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
468
469         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
470         HAVE_GAS_MAX_SKIP_P2ALIGN.
471         (HAVE_AS_DWARF2_DEBUG_LINE): Remove.
472
473 2005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
474
475         * Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
476         getopt.h dependency.
477         (mips-tdump.o): Likewise.
478
479 2005-06-06  Jan Hubicka  <jh@suse.cz>
480
481         * predict.c (tree_predict_edge): Don't drop useless predictions;
482         check that it is not called too late in the game.
483         (gate_estimate_probability): New gate.
484         (pass_profile): Gate.
485         * tree-mudflap.c (mf_build_check_statement_for): Do not drop
486         predictions; update CFG instead.
487         * cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
488
489 2005-06-06  Jie Zhang  <jie.zhang@analog.com>
490
491         * config.gcc (bfin*-uclinux*): New.
492         * config/bfin/uclinux.h: New file.
493
494 2005-06-06  Ben Elliston  <bje@au.ibm.com>
495
496         * doc/md.texi (Insn Splitting): Fix some wording.
497
498 2005-06-05  David Edelsohn  <edelsohn@gnu.org>
499
500         * config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
501         (rs6000_emit_swdivdf): New function.
502         * config/rs6000/rs6000.md (fres): New pattern.
503         (divsf3): Add approximation through rs6000_emit_swdivsf.
504         (fred): New pattern.
505         (divdf3): Add approximation through rs6000_emit_swdivdf.
506         * config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
507         (rs6000_emit_swdivdf): Declare.
508         * config/rs6000/rs6000.opt (mswdiv): New option.
509         * doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
510
511 2005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
512
513         PR tree-optimization/21846
514         * tree-cfg.c (replace_uses_by): Update information stored at loops.
515         * tree-flow.h (substitute_in_loop_info): Declare.
516         * tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
517         Ensure that chrec_dont_know and chrec_known have a type.
518         * tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
519
520 2005-06-05  Steven Bosscher  <stevenb@suse.de>
521
522         * config/i386/i386.c (x86_use_loop): Remove.
523         * config/i386/i386.h (x86_use_loop): Remove extern decl.
524         (TARGET_USE_LOOP): Remove.
525         * config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
526         Also remove related define_splits.
527
528 2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
529
530         * tree-flow.h (stmt_ann_d): Move aux to ...
531         (tree_ann_common_d): ... here.
532         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
533         move_computations_stmt, schedule_sm): Update references to
534         aux.
535         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
536         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
537         call to set_stmt_info.
538         (vect_transform_loop): Likewise.
539         * tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
540         Likewise.
541
542         * tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
543         bool.
544         (vect_mark_relevant): Takes two additional arguments - live_p and
545         relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
546         (vect_stmt_relevant_p): Differentiate between a live stmt and a
547         relevant stmt. Return two values = live_p and relevant_p.
548         (vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
549         vect_stmt_relevant_p with additional arguments. Phis are no longer
550         put into the worklist (analyzed seperately in analyze_scalar_cycles).
551         (vect_determine_vectorization_factor): Also check for LIVE_P, because a
552         stmt that is marked as irrelevant and live, cause it's only used out
553         side the loop, may need to be vectorized (e.g. reduction).
554         (vect_analyze_operations): Examine phis. Call
555         vectorizable_live_operation for for LIVE_P stmts. Check if
556         need_to_vectorize.
557         (vect_analyze_scalar_cycles): Update documentation. Don't fail
558         vectorization - just classify the scalar cycles created by the loop
559         phis. Call vect_is_simple_reduction.
560         (vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
561         * tree-vect-transform.c (vect_create_index_for_vector_ref): Update
562         call to set_stmt_info.
563         (vect_get_vec_def_for_operand): Code reorganized - the code that
564         classifies the type of use was factored out to vect_is_simple_use.
565         (vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
566         additional arguments.
567         (vectorizable_assignment): Likewise. Also make sure the stmt is relevant
568         and computes a loop_vec_def.
569         (vectorizable_operation, vectorizable_load, vectorizable_condition):
570         Likewise.
571         (vectorizable_live_operation): New.
572         (vect_transform_stmt): Handle LIVE_P stmts.
573         * tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
574         STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
575         (new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
576         (vect_is_simple_use): Determine the type of the def and return it
577         in a new function argument. Consider vect_reduction_def and
578         vect_induction_def, but for now these are not supported.
579         (vect_is_simple_reduction): New. Empty for now.
580         * tree-vectorizer.h (vect_def_type): New enum type.
581         (_stmt_vec_info): Added new fields - live and _stmt_vec_info.
582         (STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
583         (vect_is_simple_use): New arguments added to function declaration.
584         (vect_is_simple_reduction): New function declaration.
585         (vectorizable_live_operation): New function declaration.
586
587         * tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
588         (vect_can_advance_ivs_p): Likewise.
589         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
590
591 2005-06-05  Eric Christopher  <echristo@redhat.com>
592
593         * config/mips/mips.c (mips_rtx_costs): Remove unused variable.
594
595 2005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>
596
597         PR target/21914
598         * config/mmix/mmix.md ("*movdicc_real_foldable")
599         ("*movdfcc_real_foldable", "*bCC_foldable")
600         ("*bCC_inverted_foldable"): Specify DImode for register being
601         compared.
602
603 2005-06-04  Roger Sayle  <roger@eyesopen.com>
604
605         * reg-stack.c (struct block_info_def): Correct grammar typo.
606         (compensate_edge): Clean-up.  Perform as little work as possible
607         when src and dest stacks match.  Avoid modifying block_info.
608         Reorder and simplify assertion checks.  Avoid unnecessary copying
609         of regstack structure.
610         (convert_regs_1): Set the done flag here...
611         (convert_regs_2): ... instead of here.
612
613 2005-06-04  Dale Johannesen  <dalej@apple.com>
614
615         * config/rs6000/rs6000.c (no_global_regs_above): New.
616         (rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
617         (rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
618         (rs6000_conditional_register_usage): Don't put Darwin PIC
619         register in global_regs.
620         (rs6000_stack_info):  Don't set lr_save_p just because Darwin 
621         PIC reg used.
622         (rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
623         if not done by lr_save_p.
624         * config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
625         Use rotate instead of ashift.
626         (call_indirect_nonlocal_sysv):  Prefer CTR to LR.
627         (call_value_indirect_nonlocal_sysv):  Ditto.
628
629 2005-06-04  Jan Hubicka  <jh@suse.cz>
630
631         * cgraphunit.c (cgraph_reset_node): Break out from ...
632         (cgraph_finalize_function): ... here.
633         (cgraph_finalize_compilation_unit): Reset nodes where backend
634         removed the body.
635
636 2005-06-04  Richard Henderson  <rth@redhat.com>
637
638         PR target/21888
639         * config/alpha/alpha.c (alpha_align_insns): Don't insert nops
640         until we've passed initial ldgp.
641
642 2005-06-04  Daniel Berlin  <dberlin@dberlin.org>
643
644         * cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
645         * dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
646         * expr.c (expand_var): Ditto.   
647         * function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
648         * gimplify.c (gimplify_decl_expr): Ditto.
649         (gimplify_expr): Ditto.
650         * tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
651         * tree.c (value_expr_for_decl): New.
652         (print_value_expr_statistics): New.
653         (init_ttree): Init value_expr_for_decl.
654         (decl_value_expr_lookup): New.
655         (decl_value_expr_insert): Ditto.
656         (copy_node_stat): Copy DECL_VALUE_EXPR status.
657         * tree.h (DECL_VALUE_EXPR): Use hashtable.
658         (SET_DECL_VALUE_EXPR): New.
659         (DECL_HAS_VALUE_EXPR_P): New.
660
661 2005-06-04  Steven Bosscher  <stevenb@suse.de>
662
663         * lcm.c: Move all mode-switching related functions from here...
664         * mode-switching.c: ...to this new file.
665         * doc/passes.texi: Update accordingly.
666
667         * basic-block.h (label_value_list): Remove extern decl.
668         * cfgrtl.c (label_value_list): Remove.
669         (can_delete_label_p): Don't look at it.
670         * cfgcleanup.c (cleanup_cfg): Don't free it.
671
672         * common.opt: Don't refer to non-existing flag_alias_check.
673
674 2005-06-04  David Edelsohn  <edelsohn@gnu.org>
675
676         * config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
677
678 2005-06-04  Kazu Hirata  <kazu@codesourcery.com>
679
680         * function.c (prologue, epilogue, sibcall_epilogue): Change
681         their types to VEC(int,heap)*.
682         (free_after_compilation): Free the three vectors above.
683         (init_function_for_compilation, record_insns, contains,
684         prologue_epilogue_contains, sibcall_epilogue_contains,
685         reposition_prologue_and_epilogue_notes): Use VEC instead of
686         VARRAY.  (init_function_once): Remove.
687         * function.h: Remove the prototype for init_function_once.
688         * toplev.c (backend_init): Don't call init_function_once.
689
690 2005-06-04  Jan Hubicka  <jh@suse.cz>
691
692         * predict.c (tree_predict_edge): Do not predict entry edge and
693         single succestor edge.
694
695 2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
696
697         PR c/21873
698         * c-typeck.c (push_init_level): Don't pop levels without braces if
699         implicit == 1.
700
701 2005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
702         
703         * tree-data-ref.c (compute_self_dependence): New function.
704         (compute_all_dependences): Use it.
705
706 2005-06-03  Geoffrey Keating  <geoffk@apple.com>
707
708         * c-parser.c (c_parser_parms_declarator): Don't use chainon().
709         (c_parser_expr_list): Don't use chainon().
710
711         * config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
712         when -isysroot passed.
713
714 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
715
716         PR c/21879
717         * c-decl.c (start_function): Restore label_context_stack_se and
718         label_context_stack_vm  if returning with an error.
719
720 2005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
721
722         * configure.ac: Check declaration for asprintf, needed by
723         libiberty.h. 
724         * configure: Regenerate.
725         * config.in: Likewise.
726
727 2005-06-03  Diego Novillo  <dnovillo@redhat.com>
728
729         * tree-ssa-dom.c (record_edge_info): Use last_basic_block to
730         allocate info array.
731         * tree-vrp.c (extract_range_from_unary_expr): Set resulting
732         range to varying in cast expressions that change
733         TYPE_PRECISION.
734
735 2005-06-03  Eric Christopher  <echristo@redhat.com>
736
737         * config/mips/mips.opt: Add RejectNegative to divide-breaks and
738         divide-traps.
739
740 2005-06-03  Jan Hubicka  <jh@suse.cz>
741
742         * basic-block.h (remove_predictions_associated_with_edge): Declare.
743         * cfg.c (remove_edge): Use it.
744         * predict.c (remove_predictions_associated_with_edge): New function.
745
746 2005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
747
748         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
749         Clear call_realy_used_regs[r2] when ABI_AIX.
750
751 2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
752
753         PR middle-end/21858
754         * fold-const.c (fold_binary): Fix type mismatches in folding
755         of comparisons.
756
757 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
758
759         * cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
760         typos.
761
762 2005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
763
764         * collect2.c (maybe_unlink): Use unlink_if_ordinary.
765
766 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
767
768         * reload1.c (reload): Revert my previous patch.
769
770 2005-06-03  Nick Clifton  <nickc@redhat.com>
771
772         * config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
773         assembler.
774
775 2005-06-03  Kazu Hirata  <kazu@codesourcery.com>
776
777         PR tree-optimization/21849
778         * tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
779
780 2005-06-02  Richard Henderson  <rth@redhat.com>
781
782         * Makefile.in (tree-vect-generic.o): New.
783         (OBJS-common, GTFILES, s-gtype): Add it.
784         * tree-complex.c (build_replicated_const, vector_inner_type,
785         vector_last_type, vector_last_nunits, build_word_mode_vector_type,
786         elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
787         do_negate, expand_vector_piecewise, expand_vector_parallel, 
788         expand_vector_addition, expand_vector_operation, 
789         type_for_widest_vector_mode, expand_vector_operations_1, 
790         gate_expand_vector_operations, expand_vector_operations, 
791         pass_lower_vector_ssa): Move to tree-vect-generic.c.
792         (tree_lower_complex): Rename from tree_lower_operations.
793         (pass_lower_complex): Rename from pass_pre_expand.
794         * tree-vect-generic.c: New file.
795         * tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
796         (pass_lower_vector): New.
797         * tree-optimize.c (init_tree_optimization_passes): Update to match.
798
799 2005-06-02  Richard Henderson  <rth@redhat.com>
800
801         * modulo-sched.c (doloop_register_get): Protect against 
802         doloop_end not defined.
803
804 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
805
806         * config/sh/sh.c (general_movsrc_operand,
807         general_movdst_operand, arith_reg_operand, arith_reg_dest,
808         logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
809         fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
810         xor_operand, cmp_operand, logical_operand, and_operand,
811         fpscr_operand, fpul_operand, symbol_ref_operand,
812         commutative_float_operator, noncommutative_float_operator,
813         unary_float_operator, binary_float_operator,
814         binary_logical_operator, equality_comparison_operator,
815         greater_comparison_operator, less_comparison_operator,
816         shift_operator, logical_operator, target_reg_operand,
817         target_operand, mextr_bit_offset, extend_reg_operand,
818         trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
819         general_extend_operand, ua_address_operand,
820         cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
821         sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
822         shift_count_reg_operand, shift_count_operand,
823         unaligned_load_operand): Move to ...
824         * config/sh/predicates.md: ... here.
825         * config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
826         Remove.
827
828 2005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
829
830         * tree.c (build_common_builtin_nodes): Fix the return type on
831         __builtin_memcmp.
832
833 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
834
835         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
836         (find_interesting_uses_address): Use build_fold_addr_expr instead.
837         (strip_offset_1): Likewise.
838         (tree_to_aff_combination): Likewise.
839
840 2005-06-02  DJ Delorie  <dj@redhat.com>
841
842         * convert.c (convert_to_pointer): Avoid recursion if no conversion
843         is needed.
844
845 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
846
847         * tree-chrec.c (chrec_fold_plus_1): Ensure we build
848         binary operations with the correct types.
849         * tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
850         for all computation.
851
852 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
853
854         * tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
855         config/rs6000/rs6000.md: Fix comment typos.  Follow splling
856         conventions.
857         * doc/install.texi: Fix a typo.
858
859 2005-06-02  Jan Hubicka  <jh@suse.cz>
860
861         * cgraphunit.c (cgraph_function_and_variable_visibility): Extern
862         inline functions are not local.
863
864 2005-06-02  Kazu Hirata  <kazu@codesourcery.com>
865
866         * gimplify.c (gimplify_ctx): Change the type of case_labels to
867         VEC from VARRAY.
868         (gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
869         of case_labels.
870
871 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
872
873         * c-typeck.c (build_indirect_ref): Build INDIRECT_REF
874         with correct type.
875
876 2005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
877
878         * config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
879         execute templates.
880         (s390_dump_pool): Likewise.
881         (s390_mainpool_start, s390_mainpool_finish): Likewise.
882         (s390_chunkify_start): Likewise.
883         (s390_dump_execute): Remove.
884         (s390_reorg): Handle out-of-pool execute templates.
885
886 2005-06-02  Adrian Straetling  <straetling@de.ibm.com>
887
888         * optabs.c: (expand_bool_compare_and_swap): Emit barrier after
889           unconditional jump.
890
891 2005-06-02  Jan Hubicka  <jh@suse.cz>
892
893         * cgraph.c (cgraph_node): Maintain master clones.
894         (cgraph_remove_node): Likewise.
895         (availability_names): New static variable.
896         (dump_cgraph_node): Dump availability.
897         (dump_cgraph_varpool_node): Likewise.
898         (cgraph_is_master_clone, cgraph_master_clone,
899         cgraph_function_body_availability,
900         cgraph_variable_initializer_availability): New functions.
901         * cgraph.h (availability): New enum.
902         (struct cgraph_node): Add master_clone.
903         (cgraph_is_master_clone, cgraph_master_clone,
904         cgraph_function_body_availability,
905         cgraph_variable_initializer_availability): Declare.
906         * cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
907         (cgraph_remove_unreachable_nodes): Remove unreachable nodes.
908         * ipa-inline.c (cgraph_decide_inlining): Do not call
909         cgraph_remove_unreachable_nodes.
910
911         * cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
912         previous patch.
913
914 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
915
916         PR 21582
917         * tree-vrp.c (nonnull_arg_p): New.
918         (get_value_range): Call it.
919
920 2005-06-02  Eric Christopher  <echristo@redhat.com>
921
922         * config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
923         add PROCESSOR_MAX.
924         (mips_rtx_cost_data): New datatype.
925         (MEMORY_MOVE_COST): Use data from structure.
926         (BRANCH_COST): Ditto.
927         (LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
928         * config/mips/mips.md (cpu): Rework for processor_type changes.
929         * config/mips/mips.c (mips_cost): New variable.
930         (DEFAULT_COSTS): Define.
931         (mips_rtx_cost_data): New.
932         (mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
933         for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
934         FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
935         (override_options): Set cost data.
936         (mips_register_move_cost): Formatting changes.
937         (bdesc_arrays): Use PROCESSOR_MAX.
938         (mips_init_builtins): Ditto.
939
940 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
941
942         PR 21765
943         * doc/invoke.texi: Document -ftree-vrp.
944
945 2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
946
947         PR tree-optimization/21734
948         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
949         phi_result when current_def is not available.
950         (slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
951         available.      
952
953 2005-06-02  David Edelsohn  <edelsohn@gnu.org>
954
955         * config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
956         (TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
957
958 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
959
960         * tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
961
962 2005-06-02  Jan Hubicka  <jh@suse.cz>
963
964         * cgraph.c (dump_cgraph_node): Print new flags.
965         (dump_cgraph_varpool_node): Likewise.
966         (decide_variable_is_needed): Initialize externally_visible flag.
967         * cgraph.h (cgraph_local_info): Add externally_visible flag.
968         (cgraph_varpool_node): Likewise.
969         (cgraph_function_flags_ready): Declare.
970         * cgraph.c (cgraph_mark_local_functions): Rename to ...
971         (cgraph_function_and_variable_visibility) ... this one; handle
972         externally_visible flags.
973         (decide_is_function_needed): Set externally_visible flag.
974         (cgraph_finalize_function): Deal properly with early cleanups.
975         (cgraph_optimize): Update call of
976         cgraph_function_and_variable_visibility.
977
978 2005-06-02 Steven Bosscher  <stevenb@suse.de>
979            Mostafa Hagog <mustafa@il.ibm.com>
980
981         * cfgloop.h (doloop_condition_get): Make external.
982         * loop-doloop.c (doloop_condition_get): Generalize to make it
983         usable in modulo-sched.c.
984         * modulo-sched.c (doloop_register_get): Use
985         doloop_condition_get instead of duplicating it.
986
987 2005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
988
989         * reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
990         the correct set of init_insns that need deletion.
991         * local-alloc.c (update_equiv_regs): When substituting sole definition
992         into sole use of a reg, delete it from liveness information.
993
994 2005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
995
996         * config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
997
998 2005-06-01  Diego Novillo  <dnovillo@redhat.com>
999
1000         PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
1001         PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
1002         * fold-const.c (invert_tree_comparison): Make extern.
1003         * tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
1004         (struct value_range_def): Limewise.
1005         (get_value_range): Remove.
1006         (dump_value_range): Remove.
1007         (dump_all_value_ranges): Remove.
1008         (debug_all_value_ranges): Remove.
1009         (vrp_evaluate_conditional): Declare.
1010         * tree-ssa-propagate.c (struct prop_stats_d): Add field
1011         num_pred_folded.
1012         (substitute_and_fold): Add argument use_ranges_p.
1013         Update all callers.
1014         If use_ranges_p is true, call fold_predicate_in to fold
1015         predicates using range information.
1016         Ignore ASSERT_EXPRs.
1017         Change debugging output to only show statements that have been
1018         folded.
1019         (replace_phi_args_in): Move debugging output code from
1020         substitute and fold.
1021         (fold_predicate_in): New local function.
1022         * tree-ssa-propagate.h (enum value_range_type): Move from
1023         tree-flow.h.
1024         (struct value_range_d): Likewise.
1025         Add field 'equiv'. 
1026         (value_range_t): Rename from value_range.
1027         * tree-vrp.c (found_in_subgraph): Rename from found.
1028         (get_opposite_operand): Remove.
1029         (struct assert_locus_d): Declare.
1030         (assert_locus_t): Declare.
1031         (need_assert_for): Declare.
1032         (asserts_for): Declare.
1033         (blocks_visited): Declare.
1034         (vr_value): Declare.
1035         (set_value_range): Add argument 'equiv'.
1036         Don't drop to VARYING ranges that cover all values in the
1037         type.
1038         Make deep copy of equivalence set 'equiv'.
1039         (copy_value_range): New local function.
1040         (set_value_range_to_undefined): New local function.
1041         (compare_values): Return -2 if either value has overflowed.
1042         (range_includes_zero_p): New local function.
1043         (extract_range_from_assert): Flip the predicate code if the
1044         name being asserted is on the RHS of the predicate.
1045         Avoid creating unnecessary symbolic ranges if the comparison
1046         includes another name with a known numeric range.
1047         Update the equivalnce set of the new range when asserting
1048         EQ_EXPR predicates.
1049         (extract_range_from_ssa_name): Update the equivalence set of
1050         the new range with VAR.
1051         (extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
1052         If -fwrapv is used, set the resulting range to VARYING if the
1053         operation overflows.  Otherwise, use TYPE_MIN_VALUE and
1054         TYPE_MAX_VALUE to represent -INF and +INF.
1055         Fix handling of *_DIV_EXPR.
1056         (extract_range_from_unary_expr): Handle MINUS_EXPR and
1057         ABS_EXPR properly by switching the range around if necessary.
1058         (extract_range_from_comparison): New local function.
1059         (extract_range_from_expr): Call it.
1060         (adjust_range_with_scev): Do not adjust the range if using
1061         wrapping arithmetic (-fwrapv).
1062         (dump_value_range): Also show equivalence set.
1063         Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
1064         (build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
1065         (infer_value_range): Change return value to bool.
1066         Add arguments 'comp_code_p' and 'val_p'.
1067         Do not attempt to infer ranges from statements that may throw.
1068         Store the comparison code in comp_code_p.
1069         Store the other operand to be used in the predicate in val_p.
1070         (dump_asserts_for): New.
1071         (debug_asserts_for): New.
1072         (dump_all_asserts): New.
1073         (debug_all_asserts): New.
1074         (register_new_assert_for): New.
1075         (register_edge_assert_for): New.
1076         (find_conditional_asserts): New.
1077         (find_assert_locations): New.
1078         (process_assert_insertions_for): New.
1079         (process_assert_insertions): New.
1080         (insert_range_assertions): Initialize found_in_subgraph,
1081         blocks_visited, need_assert_for and asserts_for.
1082         Call find_assert_locations and process_assert_insertions.
1083         (remove_range_assertions): Add more documentation.
1084         (vrp_initialize): Change return type to void.
1085         Do not try to guess if running VRP is worth it.  
1086         (compare_name_with_value): New.
1087         (compare_names): New.
1088         (vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
1089         use_equiv_p is true, call compare_names and
1090         compare_name_with_value to compare all the ranges for every
1091         name in the equivalence set of the predicate operands.
1092         Update all callers.
1093         (vrp_meet): Try harder not to derive a VARYING range.
1094         If two values meet, the resulting equivalence set is the
1095         intersection of the two equivalence sets.
1096         (vrp_visit_phi_node): Call copy_value_range to get the current
1097         range information of the LHS.
1098         (vrp_finalize): Create a value vector representing all the
1099         names that ended up with exactly one value in their range.
1100         Call substitute_and_fold.
1101         (execute_vrp): Document equivalence sets in ranges.
1102         * tree.h (SSA_NAME_VALUE_RANGE): Remove.
1103         (struct tree_ssa_name): Remove field value_range.
1104         (invert_tree_comparison): Declare.
1105
1106 2005-06-01  Daniel Berlin  <dberlin@dberlin.org>
1107
1108         Fix PR tree-optimization/21839
1109
1110         * gimplify.c (zero_sized_field_decl): New function.
1111         (gimplify_init_ctor_eval): Use it.
1112
1113 2005-06-01  Josh Conner <jconner@apple.com>
1114
1115         PR 21478
1116         * gimplify.c (gimplify_init_constructor): Don't spill initializer
1117         to read-only memory if it's sparse.
1118
1119 2005-06-01  Ramana Radhakrishnan  <ramana@codito.com>
1120
1121         * doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. 
1122         Add documentation for REG_SETJMP
1123
1124 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
1125
1126         * stmt.c (expand_case): Use build_int_cst.
1127         (node_has_low_bound): Likewise, and correct type mismatch.
1128         (node_has_high_bound): Likewise.
1129         * fold-const.c (fold_binary): Ensure we build trees
1130         with the correct types - undo what STRIP_NOPS possibly did.
1131
1132 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
1133
1134         * tree.h (fold_indirect_ref_1): Export from fold-const.c.
1135         * fold-const.c (fold_indirect_ref_1): No longer static.
1136         * tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
1137         folding, if possible.
1138
1139 2005-06-01  Joseph S. Myers  <joseph@codesourcery.com>
1140
1141         * common.opt (fjump-tables): New.
1142         * doc/invoke.texi (-fno-jump-tables): Document.
1143         * stmt.c (expand_end_case_type): Do not emit jump tables unless
1144         flag_jump_tables.
1145
1146 2005-06-01  Richard Earnshaw  <richard.earnshaw@arm.com>
1147
1148         * arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
1149         (bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
1150         (sunlt, sunle): Enable patterns on VFP.
1151
1152         * arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
1153         f_stored, f_flag, f_cvt.
1154         (generic_sched): No-longer used for the arm1020e and arm1022e cores.
1155         Include arm1020e.md.
1156         * vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
1157         the ds and fmac pipelines.  Re-work all load and store patterns and
1158         all conversion patterns to use new attributes.  Adjust reservation
1159         descriptions accordingly.
1160         * arm1020e.md: New file.
1161         * t-arm: Add dependency.
1162
1163 2005-06-01  Jan Hubicka  <jh@suse.cz>
1164
1165         * except.c (struct eh_region): Kill unused fields.
1166         * basic-block.h (struct basic_block_def): Likewise.
1167
1168 2005-06-01  J"orn Rennecke <joern.rennecke@st.com>
1169
1170         PR rtl-optimization/21767
1171         * rtl.h (function_invariant_p): Re-add declaration.
1172         * reload1.c (function_invariant_p): No longer static.
1173         * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
1174         might have become invalid.
1175
1176 2005-06-01  Jakub Jelinek  <jakub@redhat.com>
1177
1178         PR c/21536
1179         PR c/20760
1180         * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
1181         on variable sizes types if a decl is a pointer to a VLA.
1182         (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
1183         Call gimplify_type_sizes on aggregate fields.  Prevent infinite
1184         recursion.
1185
1186         * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
1187
1188         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
1189         _mm_set_ps, _mm_setr_ps): Add __extension__.
1190         * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
1191         _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
1192         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
1193         Likewise.
1194         (_mm_clflush): Don't use return in void function.
1195
1196         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
1197         _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
1198         Use __inline instead of inline.
1199
1200 2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
1201
1202         * fold-const.c (fold_binary): Fix types in strlen vs.
1203         zero comparison folding.
1204
1205 2005-06-01  Richard Henderson  <rth@redhat.com>
1206
1207         * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
1208         * config.in, configure: Rebuild.
1209         * config/alpha/alpha.c (print_operand): Add 'j'.
1210         * alpha.md (divmodsi_internal_er_1): Use it.
1211         (divmoddi_internal_er_1): Likewise.
1212
1213 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1214
1215         * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
1216         * opts.h (print_filtered_help): Delete.
1217         * opts.c (handle_option, decode_options): Remove calls to
1218         set_target_switch.
1219         (print_target_help): New function.
1220         (common_option, print_help): Call print_target_help instead of
1221         display_target_options.
1222         (print_filtered_help): Make static.
1223         * toplev.h (display_target_options, set_target_switch): Delete.
1224         * toplev.c (target_switches, target_options, display_target_options)
1225         (set_target_switch): Delete.
1226         (print_switch_values): Remove handling of TARGET_SWITCHES and
1227         TARGET_OPTIONS.
1228         (default_get_pch_validity): Likewise.  Only treat target_flags
1229         specially if targetm.check_pch_target_flags is nonnull.
1230         (pch_option_mismatch): New function.
1231         (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
1232         and TARGET_OPTIONS.  Only treat target_flags specially if
1233         targetm.check_pch_target_flags is nonnull.
1234         * config/ia64/ia64.c (ia64_override_options): Don't mention
1235         TARGET_OPTIONS in comment.
1236         * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
1237         * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
1238         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
1239         interaction with TARGET_SWITCHES.
1240         (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
1241
1242 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1243
1244         * config/sh/sh.c (multcosts): Check sh_multcost rather than
1245         sh_multcost_str.
1246         (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
1247         (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
1248         (cut2_workaround_str): Delete.
1249         * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
1250         (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
1251         (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
1252         * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
1253         (mgettrcost=, multcost=): New options.
1254
1255 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1256
1257         * opts.h (cl_option_state): New structure.
1258         (get_option_state): Declare.
1259         * opts.c (get_option_state): New function.
1260         * toplev.c (option_affects_pch_p): New function.
1261         (default_get_pch_validity): Store the state of all options for which
1262         option_affects_pch_p returns true.
1263         (default_pch_valid_p): Check the state of those options here.
1264         Only check target_flags separately if targetm.check_pch_target_Flags
1265         is nonnull or if TARGET_SWITCHES is defined.
1266
1267 2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
1268
1269         * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
1270         names.
1271
1272 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
1273
1274         * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
1275
1276 2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
1277
1278         * gcse.c (compute_transp, load_killed_in_block): Use 
1279         MEM_READONLY_P.
1280
1281 2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
1282
1283         PR target/21854
1284         * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
1285         
1286 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1287
1288         * errors.h (warning, error, fatal, internal_error): Add printf
1289         attribute.
1290         * genmodes.c (make_vector_mode): Fix format arguments.
1291
1292 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1293
1294         * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
1295         config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
1296         lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
1297         tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
1298         tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
1299         tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
1300         tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
1301         tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
1302         tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
1303         tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
1304         tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
1305         tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
1306         tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
1307         errors.h and include toplev.h if necessary.
1308         
1309         * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
1310         errors.h otherwise include toplev.h.
1311         
1312         * Makefile.in: Update dependencies.
1313         
1314 2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
1315
1316         * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
1317
1318 2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
1319
1320         * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
1321         * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
1322         be complemented for big-endian.  Mask for AND must be rotated,
1323         not shifted.  Handle short operands with NOT on the memory
1324         operation.
1325
1326 2005-05-30  Daniel Berlin  <dberlin@dberlin.org>
1327
1328         * c-objc-common.c (c_tree_printer): Check flag before hashtable.
1329         Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
1330         * dwarf2out.c (dwarf2out_var_location): Ditto.
1331         * toplev.c (default_tree_printer): Ditto.
1332         * tree-outof-ssa.c (create_temp): Ditto.
1333         * tree-sra.c (instantiate_element): Ditto.
1334         * var-tracking.c (track_expr_p): Ditto.
1335         * tree.c (struct tree_map): New structure.
1336         (debug_expr_for_decl): New.
1337         (tree_map_eq): New function.
1338         (tree_map_hash): Ditto.
1339         (tree_map_marked_p): Ditto.
1340         (print_debug_expr_statistics): Ditto.
1341         (decl_debug_expr_lookup): Ditto.
1342         (decl_debug_expr_insert): Ditto.
1343         (dump_tree_statistics): Dump debug_expr hashtable stats.
1344         * tree.h (DECL_DEBUG_EXPR): Change
1345         (SET_DECL_DEBUG_EXPR): Add.
1346         
1347 2005-06-01  Alan Modra  <amodra@bigpond.net.au>
1348
1349         * configure.ac: Add --enable-secureplt.
1350         (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
1351         * config.in: Regenerate.
1352         * configure: Regenerate.
1353         * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
1354         rs6000/secureplt.h to tm_file when enable_secureplt.
1355         * doc/invoke.texi (msecure-plt, mbss-plt): Document.
1356         * doc/install.texi: Document --enable-targets and --enable-secureplt.
1357         Correct xrefs to "Using the GNU Compiler Collection (GCC)".
1358         * config/rs6000/secureplt.h: New file.
1359         * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
1360         (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
1361         assembler support.
1362         (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
1363         (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
1364         (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
1365         * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
1366         * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
1367         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
1368         TARGET_SECURE_PLT got register load sequence.
1369         (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
1370         TARGET_SECURE_PLT.
1371         (rs6000_elf_declare_function_name): Don't emit toc address offset
1372         word when TARGET_SECURE_PLT.
1373         * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
1374         (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
1375         (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
1376         (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
1377         TARGET_SECURE_PLT.
1378         (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
1379         sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
1380         and -fPIC.
1381         * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
1382         (__trampoline_setup): Likewise.  Init r30 before plt call.
1383
1384 2005-05-31  DJ Delorie  <dj@redhat.com>
1385
1386         * expr.c (convert_move): When a partial_int requires multiple
1387         conversion steps, make sure successive steps convert the
1388         intermediate value, not the original value.
1389
1390         * expmed.c (expand_mult): Convert partial_int multiplies to
1391         shift/add combinations too.
1392
1393         * genmodes.c (mode_data): Add wider_2x.
1394         (calc_wider_mode): Calculate twice-wider mode too.
1395         (emit_mode_wider): Emit twice-wider mode too.
1396         * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
1397         * expr.c (expand_expr_real_1): Use it for expanding
1398         multiplies.
1399
1400 2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
1401
1402         PR tree-optimization/21817
1403         * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
1404
1405 2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
1406
1407         * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
1408         change.
1409
1410 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1411
1412         PR middle-end/20931
1413         PR middle-end/20946
1414         * fold-const.c (fold_checksum_tree): Copy types also if
1415         TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
1416         Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
1417         first.
1418         Tail recurse TREE_LIST's TREE_CHAIN.
1419
1420 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1421
1422         PR tree-opt/21732
1423         * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
1424         SSA_NAME twice and cause the loop to become finite.  Remove the test
1425         for val.
1426
1427 2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
1428
1429         * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
1430         expression.
1431
1432 2005-05-31  Richard Sandiford  <rsandifo@redhat.com>
1433
1434         * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
1435         the documentation to make it more future-proof.
1436         (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
1437         * target.h (gcc_target): Add check_pch_target_flags.
1438         * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
1439         (TARGET_INITIALIZER): Include it.
1440         * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
1441         * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
1442         * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
1443         (sh_check_pch_target_flags): New function.
1444         (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
1445
1446 2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
1447
1448         * fold-const.c (extract_array_ref): Handle more cases,
1449         do some useful canonicalization of the base.
1450         (fold_binary): Explicitly deal with arrays of zero-sized
1451         structures during folding of &a[i] == &a[j].
1452
1453 2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1454
1455         * doc/install.texi (sparc-sun-solaris2*): Update note
1456         about Sun bug 4910101.
1457         (sparc-sun-solaris2.7): Document bootstrap
1458         failure with Sun WorkShop 6 99/08/18 as.
1459
1460 2005-05-30  Pat Haugen  <pthaugen@us.ibm.com>
1461
1462         * loop.c (loop_invariant_p, valid_initial_value_p): Use
1463         regs_invalidated_by_call instead of call_used_regs.
1464
1465 2005-05-30  Paolo Carlini  <pcarlini@suse.de>
1466
1467         PR middle-end/21743
1468         * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
1469         Enable.
1470         * doc/extend.texi: Add clog, clogf, clogl.
1471
1472 2005-05-30  H.J. Lu  <hongjiu.lu@intel.com>
1473
1474         PR middle-end/20303
1475         * c-pragma.c: Include "vec.h".
1476         (handle_pragma_visibility): Use VEC.
1477
1478         * doc/invoke.texi: Remove the nested visibility push limit.
1479
1480 2005-05-30  Roger Sayle  <roger@eyesopen.com>
1481
1482         PR rtl-optimization/15422
1483         * reg-stack.c (starting_stack_p): New static global.
1484         (straighten_stack): Delete prototype. Change to update the stack
1485         before the current insn.
1486         (subst_stack_regs): Update call to straighten stack.
1487         (emit_swap_insn): Delete prototype.  For the first insn in a
1488         basic block, update stack_in instead of emitting a real swap.
1489         (change_stack): When changing the stack before the first insn
1490         in a basic block, update stack_in instead of emitting real code.
1491         (compensate_edges): Clear starting_stack_p during compensation.
1492         (convert_regs_1): Keep track of starting_stack_p whilst processing
1493         a basic block.
1494
1495 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1496
1497         * tree-ssa-ccp.c (const_val): Make it static.
1498
1499 2005-05-29  Geoffrey Keating  <geoffk@apple.com>
1500
1501         PR target/21761
1502         * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
1503         pattern involving `:P'.
1504
1505         * Makefile.in (install-cpp): Depend on installdirs.
1506
1507 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1508
1509         * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
1510         to VEC(int,heap)*.
1511         (new_elim_graph, clear_elim_graph, delete_elim_graph,
1512         elim_graph_add_edge, elim_graph_remove_succ_edge,
1513         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
1514         instead of VARRAY.
1515
1516 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1517
1518         * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
1519         opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
1520         tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
1521         follow spelling conventions in error/dump messages.
1522
1523 2005-05-29  Roger Sayle  <roger@eyesopen.com>
1524             Richard Henderson  <rth@redhat.com>
1525
1526         * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
1527         if the RHS isn't suitable for calling emit_move_insn.
1528
1529 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
1530
1531         * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
1532         fold_unary and fold_binary.
1533
1534 2005-05-29  Roger Sayle  <roger@eyesopen.com>
1535
1536         * reg-stack.c (propagate_stack): Always copy the source stack to
1537         the destination.  This routine is now only called when this is safe.
1538         (better_edge): New function split out from convert_regs_1 to
1539         determine which of two edges is better to propagate across.
1540         (convert_regs_1):  We need only search for a best edge if the
1541         stack layout hasn't been defined yet.  Use better_edge to help
1542         find beste.  No longer traverse unnecessary edges.
1543
1544 2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
1545
1546         * tree-ssa-alias.c (new_type_alias): New procedure to
1547         create a type memory tag for a pointer with a may-alias
1548         set determined from a variable declaration.
1549         * tree-flow.h: export declaration of new_type_alias
1550         * tree-optimize.c (init_tree_optimization_passes): document
1551         that pass_may_alias cannot be called after pass_vectorize.
1552         * tree-vect-transform (vect_create_data_ref_ptr): Call
1553         new_type_alias when an type memory tag isn't available
1554         for a reference.
1555         (vectorizable_store): Use copy_virtual_operands to update
1556         virtual defs in place (so that loop_version can be called).
1557         Call mark_for_renaming for the virtual defs in case peeling
1558         is done and virtual uses outside the loop need to be updated.
1559
1560 2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
1561
1562         PR tree-optimization/21639
1563         * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
1564
1565 2005-05-29  Jan Hubicka  <jh@suse.cz>
1566
1567         PR tree-optimization/21562
1568         * cfgexpand.c (construct_init_block): Deal properly with the case
1569         of entry edge not pointing to very first basic block.
1570
1571 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
1572
1573         * tree-ssa-ccp.c (ccp_fold): Remove code that produces
1574         non-gimple min invariant.
1575
1576         * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
1577         * tree-flow.h: Add prototypes for start_recording_case_labels
1578         and end_recording_case_labels.
1579         * tree-cfg.c (start_recording_case_labels,
1580         end_recording_case_labels): Export.
1581         (cleanup_tree_cfg_loop, modified_noreturn_calls,
1582         cleanup_control_flow, cleanup_control_expr_graph,
1583         remove_fallthru_edge, phi_alternatives_equal,
1584         tree_forwarder_block_p, has_abnormal_incoming_edge_p,
1585         remove_forwarder_block, cleanup_forwarder_blocks,
1586         remove_forwarder_block_with_phi, merge_phi_nodes,
1587         gate_merge_phi, pass_merge_phi): Move to ...
1588         * tree-cfgcleanup.c: ... here.
1589
1590         * basic-block.h: Remove forward declaration of bb_ann_d.
1591
1592 2005-05-28  Jan Hubicka  <jh@suse.cz>
1593
1594         * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
1595         Update profile.
1596         * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
1597         debug output.
1598         (tree_mod_subtract): Fix profile updating code.
1599         (tree_divmod_values_to_profile): Do not produce useless value profilers
1600         for divisions.
1601
1602 2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
1603
1604         * tree-ssa-dom.c (vrp_element_p): Define.
1605         (vrp_hash_elt): Change the type of records to
1606         VEC(vrp_element_p,heap).
1607         (vrp_free): New.
1608         (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
1609         Update uses of VRP records.
1610         (simplify_cond_and_lookup_avail_expr, record_range): Update
1611         uses of VRP records.
1612
1613         * tree-inline.c (cfun_stack): Change the type to
1614         VEC(function_p,heap).
1615         (push_cfun, pop_cfun): Use VEC instead of VARRAY.
1616
1617 2005-05-27  Ian Lance Taylor  <ian@airs.com>
1618
1619         * c-decl.c (add_stmt): Add C frontend specific version.
1620         (stmts_are_full_exprs_p): Remove.
1621         * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
1622         (stmts_are_full_exprs_p): Don't declare.
1623         * c-semantics.c (add_stmt): Remove.
1624
1625 2005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1626
1627         * config/mips/mips-protos.h (mips_declare_object): Add printf
1628         attribute.
1629         * config/mips/mips.c (mips_declare_object_name): Fix format
1630         argument.
1631
1632 2005-05-27  Roger Sayle  <roger@eyesopen.com>
1633
1634         * reg-stack.c (compensate_edge): Remove original prototype.
1635         (propagate_stack): New function to copy the stack layout
1636         at the start of a basic block from the layout at the end of
1637         one of its predecessors.
1638         (compensate_edge): Assume that both source and destination
1639         blocks have already had their stack layouts defined.
1640         (compensate_edges): Traverse all non-entry edges in the CFG
1641         and call compensate_edge on each in turn.
1642         (convert_regs_1): Change return type to void.  Call
1643         propagate_stack instead of compensate_edge.
1644         (convert_regs_2): Change return type to void.  Update call
1645         to convert_regs_1 to ignore the (now void) return value.
1646         (convert_regs): Update calls to convert_regs_2 to ignore
1647         the (now void) return value.  After all the basic blocks have
1648         been processed, call compensate_edges to actually emit new
1649         insns.
1650         (reg_to_stack): Initialize the aux info for each basic block
1651         with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
1652
1653 2005-05-28  Jan Hubicka  <jh@suse.cz>
1654
1655         * except.c (can_throw_internal_1, can_throw_external_1): Add 
1656         "is_resx" argument.
1657         (can_throw_external, can_throw_internal): Bring into sync wrt
1658         dealing resx.
1659         * except.h (can_throw_internal_1, can_throw_external_1): Update
1660         prototype.
1661         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
1662         Deal properly with resx.
1663
1664 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1665
1666         * basic-block.h (basic_block_def): Add phi_nodes and
1667         predictions.  Remove tree_annotations.
1668         * predict.c (tree_predicted_by_p, tree_predict_edge,
1669         combine_predictions_for_bb): Adjust references to predictions.
1670         * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
1671         create_block_annotation.
1672         (create_block_annotation, free_blocks_annotatios,
1673         clear_blocks_annotations): Remove.
1674         (dump_cfg_stats): Don't print out the memory spent on
1675         bb_ann_d.
1676         (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
1677         * tree-flow-inline.h (bb_ann): Remove.
1678         (phi_nodes, set_phi_nodes): Update references to phi_nodes.
1679         * tree-flow.h (bb_ann_d): Remove.
1680         * tree-if-conv.c (process_phi_nodes): Update a reference to
1681         phi_nodes.
1682         * tree-phinodes.c (reserve_phi_args_for_new_edge,
1683         create_phi_node, remove_phi_node): Likewise.
1684         * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
1685         * tree-ssa-dom.c (threaded_blocks): New.
1686         (tree_ssa_dominator_optimize): Initialize, clear, and free
1687         threaded_blocks. Update a call to thread_through_all_blocks.
1688         (thread_across_edge): Use threaded_blocks instead of setting
1689         incoming_edge_threaded.
1690         * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
1691         a bitmap of blocks that are threaded through.
1692         * tree.h: Move the prototype of threaded_through_blocks to
1693         tree-flow.h.
1694
1695         * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
1696         fini_walk_dominator_tree): Use VEC instead of VARRAY.
1697         * domwalk.h (dom_walk_data): Change the type of
1698         block_data_stack and free_block_data to VEC(void_p,heap)*.
1699         * tree-ssa-dse.c (dse_initialize_block_local_data,
1700         dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
1701         VEC instead of VARRAY.
1702
1703 2005-05-27  Jan Hubicka  <jh@suse.cz>
1704
1705         * cgraph.c: Include tree-gimple.h
1706         (cgraph_edge): Rename expr to stmt.
1707         (cgraph_create_edge): Likewise.
1708         (cgraph_clone_node): Likewise.
1709         * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
1710         * cgraphunit.c (record_call_1): Rename to ...
1711         (record_reference): ... this one; do not build edges.
1712         (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
1713         (current_basic_block): Kill.
1714         (cgraph_create_edges): Rewrite to work on gimple statements nicely.
1715         (verify_cgraph_node): Likewise.
1716         * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
1717         (copy_bb): Mess up with cgraph edges here; simplify EH handling.
1718         (copy_edges_for_bb): Simplify EH handling.
1719         (expand_call_inline): Pass statement to cgraph_edge and
1720         cgraph_create_edge.
1721
1722 2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
1723
1724         * tree-inline.c (copy_body_r): Manually fold *& to deal
1725         with ADDR_EXPRs with mismatched types for now.
1726
1727         * gimplify.c (fold_indirect_ref_rhs): New function.
1728         (gimplify_modify_expr_rhs): Use it instead of pessimistic
1729         fold_indirect_ref.
1730
1731         * fold-const.c (fold_indirect_ref_1): Add type argument;
1732         make sure the resulting expression is of this type.
1733         (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
1734
1735 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1736
1737         PR tree-optimization/21658
1738         * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
1739         fold_binary_to_constant.  Likewise, call fold_unary instead of
1740         fold_unary_to_constant.
1741
1742 2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
1743
1744         * vec.h: Implement integral type vector specialization.
1745         (VEC_T): Define a non-GTY structure.
1746         (VEC_T_GTY): Define a GTY structure.
1747         (VEC_TA): Rename to ...
1748         (VEC_TA_GTY): ... here.
1749         (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
1750         (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
1751         (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
1752         DEF_VEC_P and DEF_VEC_ALLOC_P.
1753         (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
1754         (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
1755         DEF_VEC_O and DEF_VEC_ALLOC_O.
1756         * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
1757         * lambda-code.c: Likewise.
1758         * tree-into-ssa.c: Likewise.
1759         * tree-ssa-live.c: Likewise.
1760
1761 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1762
1763         * tree-into-ssa.c (update_ssa): Ensure that the operand cache
1764         is up-to-date.
1765         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1766         update_stmt_if_modified before calling update_ssa.
1767
1768 2005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>
1769
1770         * config/rs6000/t-rtems: Remove roe multilib variant.
1771
1772 2005-05-26  Roger Sayle  <roger@eyesopen.com>
1773
1774         PR tree-optimization/9814
1775         * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
1776         instruction, add the necessary clobbers by re-expanding the RTL
1777         for arithmetic operations via optab.c's expand_unop/expand_binop.
1778         (noce_try_bitop): New function to optimize bit manipulation idioms
1779         of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
1780         (noce_process_if_block): Call noce_try_bitop.
1781
1782 2005-05-26  Roger Sayle  <roger@eyesopen.com>
1783
1784         * reg-stack.c (convert_regs_entry, convert_regs_exit,
1785         convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
1786         (reg_to_stack): Move to end of the file.  Initialize the per
1787         basic block information here, instead of...
1788         (convert_regs_entry): Here.
1789         (convert_regs): Change unused return type to void.
1790
1791 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
1792
1793         * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
1794         unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
1795         config/rs6000/eabispe.h, config/rs6000/lynx.h,
1796         config/sh/elf.h, config/sh/symbian-pre.h,
1797         config/sparc/sparc-protos.h: Update copyright.
1798
1799 2005-05-26  Mike Stump  <mrs@apple.com>
1800
1801         * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
1802         for Objective-C++.
1803         
1804 2005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>
1805
1806         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
1807         See through ADDR_EXPR in finding place to propagate into.
1808
1809 2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
1810
1811         * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
1812         cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
1813         ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
1814         tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
1815         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
1816         tree-ssa-operands.c, tree-vect-analyze.c,
1817         tree-vect-transform.c, tree-vectorizer.c, tree.c,
1818         config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
1819         config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
1820         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
1821         config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
1822         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
1823         config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
1824         config/sh/ushmedia.h, config/sparc/sparc.c,
1825         config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
1826         typos.  Follow spelling conventions.
1827         * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
1828         Follow spelling conventions.
1829
1830 2005-05-26  David Ung  <davidu@mips.com>
1831
1832         * config/mips/mips.c (mips_use_ins_ext_p): New helper function
1833         that determines whether the MIPS32/64 R2 ext/ins should be used.
1834         * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
1835         * config/mips/mips.md (extzv): Changed predicate for operand to
1836         nonimmediate_operand. Add code to generate insn patterns for
1837         extzvsi and extzvdi.
1838         (extzv<mode>): New pattern to match mips32/64 r2 ext insn.
1839         (insv): Similarly for insertion.
1840         (insv<mode>): Similarly.
1841
1842 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
1843
1844         * simplify-rtx.c (avoid_constant_pool_reference): Support
1845         offsetted addresses in the constant pool.
1846
1847 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
1848
1849         * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
1850         * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
1851
1852 2005-05-26  Jakub Jelinek  <jakub@redhat.com>
1853
1854         PR target/21716
1855         * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
1856         found in the basic block and last insn in the basic block is not
1857         INSN_P.  Remove explicit unspec numbers that are no longer valid
1858         from comments.
1859
1860 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
1861
1862         * tree-vect-transform.c (vectorizable_operation): Try word_mode
1863         vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
1864         if a vector mode is available.
1865
1866 2005-05-25  Roger Sayle  <roger@eyesopen.com>
1867
1868         PR middle-end/21709
1869         * fold-const.c (const_binop): Check for division by zero during
1870         complex division.
1871
1872 2005-05-26  Ian Lance Taylor  <ian@airs.com>
1873
1874         * reload1.c (verify_initial_elim_offsets): Add braces to avoid
1875         having a declaration after a statement.
1876
1877 2005-05-26  Richard Sandiford  <rsandifo@redhat.com>
1878
1879         * opt-functions.awk (var_type): New function.
1880         (var_set): Use CLVC_STRING if var_type returns "const char *".
1881         * opth-gen.awk: Use var_type to find out the types of variables.
1882         Don't print comments above each "extern" definition.
1883         * optc-gen.awk: Use var_type in the same way.
1884         * opts.h (cl_var_cond): Rename to...
1885         (cl_var_type): ...this.  Add CLVC_STRING.
1886         (cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
1887         with "var_type".
1888         * opts.c (handle_option, option_enabled): Update after above name
1889         change.  Cast flag_var before using it.  Handle CLVC_STRING.
1890         
1891         * config/alpha/alpha.h (alpha_tls_size): Delete.
1892         * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
1893         (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
1894         (alpha_fptm_string, alpha_mlat_string): Delete.
1895         (alpha_handle_option): Don't set the above variables here.  Use the
1896         integer argument to check the validity of -mtls-size=.
1897         * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
1898         (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
1899         (mtls-size=): Likewise.  Convert to a UInteger and initialize the
1900         variable to 32.
1901
1902         * config/arc/arc.c (arc_cpu_string, arc_text_string)
1903         (arc_data_string, arc_rodata_string): Delete.
1904         (arc_handle_option): Don't set the above variables here.
1905         * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
1906         and initialize them.
1907
1908         * config/arm/arm.c (target_fpu_name, target_fpe_name)
1909         (target_float_abi_name, target_abi_name, structure_size_string)
1910         (arm_pic_register_string): Delete.
1911         (arm_handle_option): Don't set the above variables here, except
1912         in the handling of -mhard-float and -msoft-float.
1913         * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
1914         (mpic-register=, mstructure-size-boundary=): Add Var()s.
1915
1916         * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
1917         (avr_handle_option): Delete.
1918         * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
1919         them.
1920
1921         * config/bfin/bfin.c (bfin_library_id): Delete.
1922         (bfin_handle_option): Don't set it.
1923         * config/bfin/bfin.opt (mshared-library-id=): Add Var().
1924
1925         * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
1926         * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
1927         (c4x_handle_option): Don't set c4x_rpts_cycles here.
1928         * config/c4x/c4x.opt (mrpts=): Add Var().
1929
1930         * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
1931         cris_elinux_stacksize_str here.
1932         * config/cris/aout.opt (melinux-stacksize=): Add Var().
1933         * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
1934         (cris_tune_str, cris_elinux_stacksize_str): Delete.
1935         * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
1936         (cris_tune_str, cris_elinux_stacksize_str): Delete.
1937         (cris_handle_option): Don't set the above variables here.
1938         * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
1939         (max-stackframe=): Add Var()s.
1940
1941         * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
1942         * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
1943         (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
1944         (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
1945         (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
1946         (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
1947         (ix86_handle_option): Don't set the above variables here.
1948         * config/i386/i386.opt (malign-functions=, malign-jumps=)
1949         (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
1950         (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
1951         Var()s.
1952
1953         * config/ia64/ia64.h (ia64_tls_size): Delete.
1954         * config/ia64/ia64.c (ia64_tls_size): Delete.
1955         (ia64_handle_option): Treat -mtls-size= as a UInteger option,
1956         reading the integer argument from the "value" parameter.  Don't
1957         set ia64_tls_size here.
1958         * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
1959         Add Var() and Init().
1960
1961         * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
1962         (m32r_cache_flush_trap): Delete.
1963         * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
1964         (m32r_cache_flush_trap): Delete.
1965         (m32r_handle_option): Don't set the above variables when handling
1966         -mflush-func= and -mflush-trap=.
1967         * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
1968         and Init()s.
1969
1970         * config/mips/mips.h (mips_cache_flush_func): Delete.
1971         * config/mips/mips.c (mips_arch_string, mips_tune_string)
1972         (mips_cache_flush_func): Delete.
1973         (mips_handle_option): Don't set the above variables when handling
1974         -march=, -mtune= and -mflush-func=.
1975         * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
1976
1977         * config/s390/s390.c (s390_arch_string): Delete.
1978         (s390_handle_option): Don't set it here.
1979         * config/s390/s390.opt (march=): Add Var().
1980
1981         * config/sparc/sparc.h (sparc_cmodel_string): Delete.
1982         * config/sparc/sparc.c (sparc_cmodel_string): Delete.
1983         (sparc_handle_option): Don't set it here.
1984         * config/sparc/sparc.opt (mcmodel=): Add Var().
1985
1986 2005-05-25  Roger Sayle  <roger@eyesopen.com>
1987
1988         * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
1989         call to convert_to_integer by building the NOP_EXPR directly.
1990
1991 2005-05-25  Richard Sandiford  <rsandifo@redhat.com>
1992
1993         * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
1994
1995 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
1996             Jeff Law  <law@redhat.com>
1997
1998         * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
1999         constant and side_effects of the ADDR_EXPR are consistent.
2000
2001         * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
2002         appropriately around calls to recompute_tree_invarant_for_addr_expr.
2003
2004 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
2005
2006         * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
2007         (s390_function_arg, s390_gimplify_va_arg): Use them.
2008         (s390_register_info): Save only required subset of argument
2009         registers into save area for va_list.
2010         (s390_va_start): Initialize only required elements of va_list struct.
2011         (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
2012
2013 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
2014
2015         * reload1.c (verify_initial_elim_offsets): Return boolean status
2016         instead of aborting.
2017         (reload): Adapt verify_initial_elim_offsets call site.  Restart
2018         main loop if some initial elimination offsets changed.
2019
2020 2005-05-25  Adam Nemet  <anemet@lnxw.com>
2021
2022         * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
2023         of -mno-svr4-struct-return.
2024
2025 2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
2026
2027         Fix PR tree-optimization/21705
2028         
2029         * tree-ssa-pre.c (in_fre): New static variable.
2030         (create_value_expr_from): Recursively value number reference ops
2031         in argument lists.
2032         (can_value_number_call): Temporary restrict only exists for
2033         PRE, not FRE.
2034
2035 2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
2036
2037         * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
2038         sizeof (bitmap *) with sizeof (bitmap).
2039
2040 2005-05-25  Daniel Berlin <dberlin@dberlin.org>
2041
2042         * lambda-code.c (perfect_nestify): Call update_stmt on the exit
2043         condition.
2044
2045 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
2046
2047         * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
2048         hook_bool_rtx_true.
2049
2050 2005-05-25  Jan Hubicka  <jh@suse.cz>
2051
2052         * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
2053         * cgraph.c (cgraph_create_node): Reset estimated_growth.
2054         * cgraph.h (cgraph_global_info): Add estimated_growth.
2055         * ipa-inline.c: Include coverage.h
2056         (max_insns, max_count): New static variables.
2057         (cgraph_estimate_size_after_inlining): Cache the result.
2058         (cgraph_estimate_growth):
2059         * passes.c (rest_of_clean_state): Kill coverage_end_function.
2060         * timevar.def (TV_INLINE_HEURISTICS): New timevar.
2061         * tree-optimize.c (init_tree_optimization_passes): Move profiling before
2062         inlining.
2063         (ipa_passes): Initialize bitmaps.
2064
2065 2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
2066
2067         * loop-doloop.c: Include "target.h". 
2068           (doloop_valid_p): Move tests to function in targhooks.c.
2069         * target.h (struct gcc_target): New target hook
2070           "insn_valid_within_doloop".
2071         * target-def.h: Define default value for "insn_valid_within_doloop".
2072           (TARGET_INITIALIZER): Insert new target hook into initializer.
2073         * targhooks.c (default_insn_valid_within_doloop): New function.
2074         * targhooks.h (default_insn_valid_within_doloop): Declare.
2075         * hooks.c (hook_bool_rtx_true): New function.
2076         * hooks.h (hook_bool_rtx_true): Declare.
2077         * doc/tm.texi: Add documentation for new target hook.
2078
2079 2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
2080
2081         PR target/21412
2082         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
2083         * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
2084         (sparc_tls_referenced_p): New prototype.
2085         * config/sparc/sparc.c (tls_symbolic_operand): Delete.
2086         (sparc_expand_move): Look for TLS addresses with constant offsets.
2087         (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
2088         tls_symbolic_operand.
2089         (legitimate_pic_operand_p): Likewise.
2090         (legitimate_address_p): Likewise.
2091         (legitimize_address): Likewise.
2092         (sparc_tls_symbol_ref_1): New function.
2093         (sparc_tls_referenced_p): New function.
2094         * config/sparc/predicates.md (tgd_symbolic_operand): Use
2095         SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
2096         (tld_symbolic_operand): Likewise.
2097         (tie_symbolic_operand): Likewise.
2098         (tle_symbolic_operand): Likewise.
2099
2100 2005-05-24  DJ Delorie  <dj@redhat.com>
2101         
2102         * common.opt (-Wattributes): New.  Default true.
2103         * doc/invoke.texi (-Wno-attributes): Document.
2104         
2105         * attribs.c (decl_attributes): Move warning control from if() to
2106         warning(OPT_*).
2107         * c-common.c (handle_packed_attribute): Likewise.
2108         (handle_nocommon_attribute): Likewise.
2109         (handle_common_attribute): Likewise.
2110         (handle_noreturn_attribute): Likewise.
2111         (handle_noinline_attribute): Likewise.
2112         (handle_always_inline_attribute): Likewise.
2113         (handle_used_attribute): Likewise.
2114         (handle_unused_attribute): Likewise.
2115         (handle_const_attribute): Likewise.
2116         (handle_transparent_union_attribute): Likewise.
2117         (handle_constructor_attribute): Likewise.
2118         (handle_destructor_attribute): Likewise.
2119         (handle_mode_attribute): Likewise.
2120         (handle_alias_attribute): Likewise.
2121         (handle_visibility_attribute): Likewise.
2122         (handle_tls_model_attribute): Likewise.
2123         (handle_malloc_attribute): Likewise.
2124         (handle_returns_twice_attribute): Likewise.
2125         (handle_pure_attribute): Likewise.
2126         (handle_deprecated_attribute): Likewise.
2127         (handle_vector_size_attribute): Likewise.
2128         (handle_nothrow_attribute): Likewise.
2129         (handle_cleanup_attribute): Likewise.
2130         (handle_warn_unused_result_attribute): Likewise.
2131         (handle_sentinel_attribute): Likewise.
2132         * c-decl.c (diagnose_mismatched_decls): Likewise.
2133         (start_decl): Likewise.
2134         (grokdeclarator): Likewise.
2135         (start_function): Likewise.
2136         * c-format.c (check_function_format): Likewise.
2137         * stor-layout.c (place_field): Likewise.
2138         (finalize_record_size): Likewise.
2139         * tree.c (handle_dll_attribute)): Likewise.
2140         * varasm.c (default_assemble_visibility): Likewise.
2141         * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
2142         (darwin_assemble_visibility): Likewise.
2143         * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
2144         * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
2145         (arm_handle_isr_attribute): Likewise.
2146         * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
2147         (avr_handle_fndecl_attribute): Likewise.
2148         * config/bfin/bfin.c (handle_int_attribute): Likewise.
2149         * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
2150         * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
2151         (h8300_handle_eightbit_data_attribute): Likewise.
2152         (h8300_handle_tiny_data_attribute): Likewise.
2153         * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
2154         (ix86_handle_regparm_attribute): Likewise.
2155         (ix86_handle_struct_attribute): Likewise.
2156         * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
2157         (i386_pe_encode_section_info): Likewise.
2158         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
2159         * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
2160         (ip2k_handle_fndecl_attribute): Likewise.
2161         * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
2162         * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
2163         (m68hc11_handle_fntype_attribute): Likewise.
2164         (m68hc11_encode_section_info): Likewise.
2165         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
2166         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
2167         * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
2168         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
2169         * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
2170         (sh_handle_sp_switch_attribute): Likewise.
2171         (sh_handle_trap_exit_attribute): Likewise.
2172         * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
2173         (sh_symbian_handle_dll_attribute): Likewise.
2174         * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
2175         (xstormy16_handle_below100_attribute): Likewise.
2176         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
2177
2178         * c-common.c (unsigned_conversion_warning): Move warning control
2179         from if() to warning(OPT_*).
2180         (c_common_truthvalue_conversion): Likewise.
2181         (c_do_switch_warnings): Likewise.
2182         * c-decl.c (diagnose_mismatched_decls): Likewise.
2183         (diagnose_mismatched_decls): Likewise.
2184         (define_label): Likewise.
2185         (grokdeclarator): Likewise.
2186         * c-format.c (check_format_info): Likewise.
2187         * c-lex.c (interpret_integer): Likwise.
2188         (lex_string): Likewise.
2189         * c-opts.c (c_common_post_options): Likewise.
2190         * c-parser.c (c_parser_unary_expression): Likewise.
2191         * c-pragma.c (handle_pragma_redefine_extname): Likewise.
2192         (handle_pragma_extern_prefix): Likewise.
2193         * c-typeck.c (build_binary_op): Likewise.
2194         * gcse.c (is_too_expensive): Likewise.
2195         * opts.c (decode_options): Likewise.
2196         * stor-layout.c (place_field): Likewise.
2197         * tree-cfg.c (remove_bb): Likewise.
2198
2199         * c.opt (-Wreturn-type): Add Var(warn_return_type).
2200         * flags.h (warn_return_type): Remove.
2201         * toplev.c (warn_return_type): Likewise.
2202
2203 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
2204
2205         * configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
2206         existence of long long and __int64 before determining their size.
2207         * aclocal.m4: Delete gcc_AC_C_LONG_LONG.
2208         * configure, config.h.in:  Regenerate.
2209
2210 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
2211
2212         * configure: Regenerate.
2213
2214 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
2215
2216         * c-common.h (objc_comptypes): Remove prototype.
2217         (objc_compare_types): New prototype.
2218         (objc_volatilized_decl): Likewise.
2219         (objc_type_quals_match): Likewise.
2220         * c-decl.c (objc_mark_locals_volatile): Streamline by calling
2221         objc_volatilize_decl().
2222         * c-typeck.c (comp_target_types): Remove third parameter; do
2223         not call objc_comptypes().
2224         (comptypes): Remove calls to objc_comptypes().
2225         (build_function_call): Extend compatible prototype check to ObjC.
2226         (build_conditional_expr): Adjust call to comp_target_types().
2227         (convert_for_assignment): Call objc_compare_types() instead of
2228         objc_comptypes(); adjust calls to comp_target_types(); call
2229         objc_type_quals_match() before issuing qualifier mismatch
2230         warnings.
2231         (build_binary_op): Call objc_compare_types() before issuing
2232         pointer mismatch warnings; adjust calls to
2233         comp_target_types().
2234         * stub-objc.c (objc_comptypes): Remove stub.
2235         (objc_compare_types): New stub.
2236         (objc_volatilized_decl): Likewise.
2237         (objc_type_quals_match): Likewise.
2238
2239 2005-05-24  Paolo Carlini  <pcarlini@suse.de>
2240
2241         * config/ia64/ia64intrin.h: Define nothing for C++:
2242         overloaded builtins have been ported to C++.
2243
2244 2005-05-24  Jeff Law  <law@redhat.com>
2245
2246         * tree-nested.c (build_addr): New "context" argument.  Temporarily
2247         set current_function_decl around the call to build the ADDR_EXPR.
2248         (get_static_chain): Pass proper context to build_addr.
2249         (convert_nl_goto_reference): Likewise.
2250         (convert_tramp_reference): Likewise.
2251         (final_nesting_tree_1): Likewise.
2252         * tree-profile.c (tree_gen_interval_profiler): Likewise.
2253         (tree_gen_pow2_profiler): Likewise.
2254         (tree_gen_one_value_profiler): Likewise.
2255         * tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
2256         * tree.h (build_addr): Update prototype.
2257
2258 2005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
2259
2260         * tree-flow.h (bb_ann_d): Remove has_escape_site.
2261         * tree-ssa-alias.c (compute_points_to_addr_escape): Don't
2262         write to has_escape_site.
2263
2264 2005-05-24  Jeff Law  <law@redhat.com>
2265
2266         * Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
2267         * tree-cfg.c: Include tree-ssa-propagate.h.
2268         (replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
2269         needed.
2270
2271 2005-05-24  Nick Clifton  <nickc@redhat.com>
2272
2273         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2274         __NO_FPRS__ when 'f' class registers will not be available. 
2275
2276 2005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
2277
2278         * config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
2279         nothing was done.
2280         * config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
2281         nothing then FAIL.
2282         * config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
2283         prototype.
2284
2285 2005-05-23  Jeff Law  <law@redhat.com>
2286
2287         * tree-ssa-dom.c (cprop_into_stmt): Do not call
2288         recompute_tree_invariant_for_addr_expr here.
2289         (optimize_stmt): Call it here instead and do so if anything
2290         at all has changed in the statement and the RHS is an ADDR_EXPR.
2291         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
2292         needed, call recompute_tree_invariant_for_addr_expr.
2293         * tree-ssa-propagate.c (substitute_and_fold): Call
2294         recompute_tree_invariant_for_addr_expr as needed.
2295
2296 2005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
2297
2298         * config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
2299         saving less registers than the replacement.
2300
2301 2005-05-23  Jan Hubicka  <jh@suse.cz>
2302
2303         * tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
2304
2305 2005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2306
2307         * config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
2308         * config/sparc/sparc.c (sparc_expand_move): New function.
2309         (sparc_emit_set_const64): Rewrite assert condition on entry.
2310         (legitimate_constant_p) <CONST_VECTOR>: New case.
2311         (legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
2312         * config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
2313         movV64, movtf): Use nonimmediate_operand for the first operand.
2314         Rewrite.  Only invoke sparc_expand_move.
2315         * config/sparc/predicates.md (input_operand): Reorder tests.
2316
2317 2005-05-23  Jan Beulich  <jbeulich@novell.com>
2318
2319         * gthr-posix.h (__gthread_recursive_mutex_init_function): Add
2320         missing return statement.
2321
2322 2005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2323
2324         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
2325         emit_move_insn for moves to TFmode stack slots.
2326
2327 2005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
2328
2329         * tree-stdarg.c (execute_optimize_stdarg): Handle references
2330         to va_list of the form &va[0].
2331
2332 2005-05-20  Jan Hubicka  <jh@suse.cz>
2333
2334         * Makefile.in (insn-emit.o): Add basic-block.h dependency.
2335         * genemit.c (main): Make insn-emit to include basic-block.h too.
2336
2337 2005-05-20  Jan Hubicka  <jh@suse.cz>
2338
2339         * cgraphunit.c (cgraph_expand_function): Force function being lowered.
2340
2341 2005-05-19  Richard Henderson  <rth@redhat.com>
2342
2343         * config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
2344         emit_store_conditional): Split out from ...
2345         (alpha_split_atomic_op): ... here.
2346         (alpha_split_compare_and_swap): New; extract from .md file.
2347         (alpha_split_lock_test_and_set): Likewise.
2348         * config/alpha/alpha-protos.h: Update.
2349         * config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
2350         split code into alpha.c.
2351         (sync_lock_test_and_set<I48MODE>): Likewise.
2352
2353 2005-05-19  Richard Henderson  <rth@redhat.com>
2354
2355         * unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
2356
2357 2005-05-19  Richard Henderson  <rth@redhat.com>
2358
2359         * config/i386/sse.md (mulv4si3): Use all register inputs.
2360         (mulv2di3): Likewise.
2361
2362 2005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
2363
2364         * tree-ssa-loop-ivopts.c (determine_base_object): Use
2365         build_fold_addr_expr to generate trees of correct type.
2366         Use fold_buildN if possible.
2367
2368 2005-05-19  Jan Hubicka  <jh@suse.cz>
2369
2370         * basic-block.h (REG_BR_PROB_BASE): Define.
2371         * cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
2372         (dump_cgraph_node): Dump count.
2373         (cgraph_clone_edge): Rescale counts.
2374         (cgraph_clone_node): Likewise.
2375         * cgraph.h: Include basic-block.h
2376         (cgraph_node): Add count.
2377         (cgraph_edge): Add count and loop_nest.
2378         (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
2379         Update prototypes.
2380         * cgraphunit.c: Kill now redundant inlining comment.
2381         (cgraph_create_edges): Make static, maintain current basic block;
2382         fix pasto.
2383         (record_call_1): Fill in new fields.
2384         * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
2385         cgraph_clone_node.
2386         (cgraph_decide_recursive_inlining): Likewise.
2387         * rtl.h (REG_BR_PROB_BASE): Kill.
2388         * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
2389         (expand_call_inline): Update call of cgraph_create_edge.
2390         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2391
2392 2005-05-19  Nick Clifton  <nickc@redhat.com>
2393
2394         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
2395         new rs6000_explicit_options structure.
2396
2397 2005-05-19  Richard Henderson  <rth@redhat.com>
2398
2399         PR target/21390
2400         * config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
2401         TFmode code swapping ...
2402         (alpha_emit_xfloating_compare): ... here.
2403         (alpha_emit_setcc): Update to match.
2404         (alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
2405
2406 2005-05-19  Richard Henderson  <rth@redhat.com>
2407
2408         PR target/21657
2409         * config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
2410         memory indirection in local-dynamic case.
2411
2412 2005-05-18  Jie Zhang  <jie.zhang@analog.com>
2413             Bernd Schmidt  <bernd.schmidt@analog.com>
2414
2415         * config/bfin/bfin.c (branch_dest): Add comment why it's
2416         necessary.
2417         * config/bfin/bfin.md (attr "length" default): Change the offset of
2418         forward conditional branch of length 4 from 4096 to 4092.
2419
2420 2005-05-19  Jan Beulich  <jbeulich@novell.com>
2421
2422         * unwind-compat.c: Include tconfig.h and tsystem.h.
2423         * unwind-dw2-fde-compat.c: Likewise.
2424
2425 2005-05-18  Richard Henderson  <rth@redhat.com>
2426
2427         PR 21541
2428         * ifcvt.c (noce_process_if_block): Avoid conversion when the
2429         memory destination is readonly.
2430
2431 2005-05-18  Richard Henderson  <rth@redhat.com>
2432
2433         PR 21541
2434         * tree-ssa-operands.c (opf_non_specific): New.
2435         (get_asm_expr_operands): Set it.
2436         (add_call_clobber_ops, add_call_read_ops): Likewise.
2437         (add_stmt_operand): Test it instead of opf_kill_def when
2438         considering unmodifiable variables.
2439
2440         * tree-ssa-operands.c (get_expr_operands): Fix exact test.
2441
2442 2005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
2443
2444         * cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
2445         tree-ssa-forwprop.c: Fix comment typos.
2446         * doc/invoke.texi: Fix a typo.
2447
2448 2005-05-18  Richard Henderson  <rth@redhat.com>
2449
2450         * config.gcc (powerpc-*-linux*): Include linux64.opt when
2451         including linux64.h.
2452
2453 2005-05-18  Richard Henderson  <rth@redhat.com>
2454
2455         * tree-cfg.c (pass_remove_useless): Revert last change.
2456         * tree-optimize.c (init_tree_optimization_passes): Initialize
2457         all_lowering_passes with PROP_gimple_any.
2458
2459 2005-05-18  Devang Patel  <dpatel@apple.com>
2460
2461         * config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
2462         the mask end.
2463         
2464 2005-05-18  Richard Henderson  <rth@redhat.com>
2465
2466         * tree-ssa-forwprop.c (cfg_changed): New.
2467         (tidy_after_forward_propagate_addr): New.
2468         (forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
2469         (forward_propagate_addr_into_variable_array_index): Likewise.
2470         (tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
2471         edges were removed.
2472
2473 2005-05-18  Geoffrey Keating  <geoffk@apple.com>
2474
2475         * dummy-checksum.c: New.
2476         * genchecksum.c: New.
2477         * c.opt (print_pch_checksum): New flag.
2478         * c-pch.c (struct c_pch_validity): Make much shorter.
2479         (no_checksum): New.
2480         (host_machine): Remove.
2481         (target_machine): Remove.
2482         (get_ident): Change PCH version number.
2483         (pch_init): When -fverbose-asm, print out the compiler fingerprint.
2484         Don't put triplets or version string in PCH validity data.
2485         Do put the compiler checksum in the validity data.
2486         (c_common_valid_pch): Don't check triplets or version string.  Do
2487         check checksum.
2488         (c_common_print_pch_checksum): New.
2489         * c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
2490         Print fingerprint with -v.
2491         * c-common.h (c_common_print_pch_checksum): New.
2492         (executable_checksum): New.
2493         * Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
2494         (cc1-dummy): New rule.
2495         (cc1-checksum.c): New rule.
2496         (cc1-checksum.o): New rule.
2497         (cc1): Add checksum support.
2498         (build/genchecksum): New.
2499         (build/genchecksum.o): New.
2500         (dummy-checksum.o): New.
2501         (genobjnames): Add genchecksum.o.
2502         (mostlyclean): Remove *-checksum.c.
2503         (gnucompare): Add libgcc to list of directories checked.
2504         Make comparison problems in libgcc/ and with checksum files only
2505         be warnings.
2506         * doc/invoke.texi (Precompiled Headers): Remove caution.
2507         Document that it must be the exact same binary.  Add a few
2508         known-safe flags to the list.
2509
2510         * rs6000/predicates.md (fix_trunc_dest_operand): New.
2511         * rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
2512         Check that a memory operand is valid before trying to use it.
2513         
2514         * tree-cfg.c (pass_remove_useless): This pass works on trees.
2515
2516 2005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
2517
2518         * tree.c (build1_stat): Don't try to handle two-operand
2519         tree codes.
2520
2521 2005-05-18  Richard Sandiford  <rsandifo@redhat.com>
2522
2523         * config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
2524         * config/sh/sh.h: Update mask names throughout.
2525         (target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
2526         (SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
2527         (SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
2528         (HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
2529         (LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
2530         (HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
2531         (INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
2532         (TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
2533         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
2534         (TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
2535         (TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
2536         (TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
2537         (TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
2538         (TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
2539         (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
2540         (TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
2541         (TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
2542         (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
2543         (TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
2544         (TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
2545         (TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
2546         (TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
2547         (TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
2548         (TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
2549         (TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
2550         (SUBTARGET_SWITCHES): Delete.
2551         (TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
2552         (TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
2553         (TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
2554         (TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
2555         (TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
2556         (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
2557         (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
2558         (SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
2559         (SUPPORT_SH3): Likewise SUPPORT_SH2.
2560         (SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
2561         (SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
2562         SUPPORT_SH4_NOFPU.
2563         (SUPPORT_SH3E): Likewise SUPPORT_SH2E.
2564         (SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
2565         (SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
2566         (SUPPORT_SH4A): Likewise SUPPORT_SH4.
2567         (SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
2568         (SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
2569         (SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
2570         (SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
2571         (SUPPORT_ANY_SH5): New macros.
2572         (TARGET_NONE): Replace with...
2573         (MASK_ARCH): ...this new macro.
2574         * config/sh/elf.h: Update mask names
2575         * config/sh/linux.h: Likewise.
2576         * config/sh/little.h: Likewise.
2577         * config/sh/netbsd-elf.h: Likewise.
2578         * config/sh/symbian-pre.h: Likewise.
2579         * config/sh/sh.c (sh_handle_option): New function.
2580         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2581         (calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
2582         (sh_target_switches, target_switches): Delete.
2583         (sh_pch_valid_p): Check for specific differences in the target_flags
2584         settings.
2585         (sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
2586         * config/sh/sh.opt: New file.
2587
2588 2005-05-18  Richard Henderson  <rth@redhat.com>
2589
2590         PR target/21632
2591         * config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
2592         small_addr_symbolic_operand.
2593
2594 2005-05-18  Jeff Law  <law@redhat.com>
2595
2596         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
2597         propagate an ADDR_EXPR if the definition and use sites are
2598         in different EH regions.
2599
2600 2005-05-18  Ian Lance Taylor  <ian@airs.com>
2601
2602         * read-rtl.c (mode_attr_index): Use obstack_grow0, not
2603         obstack_grow.
2604
2605 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
2606
2607         * cfgrtl.c (purge_dead_edges): Don't remove fake edges.
2608
2609 2005-05-18  Daniel Berlin  <dberlin@dberlin.org>
2610         
2611         Fix PR tree-optimization/21407
2612
2613         * tree-ssa-operands.c (note_addressable): Change
2614         COMPONENT_REF handling in response to aliasing
2615         discussion.
2616
2617 2005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2618
2619         * config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
2620         * config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
2621         * config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
2622         * doc/invoke.texi (SPARC options): Document that -mapp-regs is
2623         the default on Solaris too.
2624
2625 2005-05-17  Daniel Berlin  <dberlin@dberlin.org>
2626
2627         * tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
2628         is okay too.
2629
2630 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2631
2632         * timevar.def (TV_SCEV_CONST): New timevar.
2633         * tree-optimize.c (init_tree_optimization_passes): Add
2634         pass_scev_cprop.
2635         * tree-pass.h (pass_scev_cprop): Declare.
2636         * tree-scalar-evolution.c (scev_const_prop): New function.
2637         * tree-scalar-evolution.h (scev_const_prop): Declare.
2638         * tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
2639         New.
2640         * tree-cfg.c (replace_uses_by): Export.
2641         * tree-flow.h (replace_uses_by): Declare.
2642
2643 2005-05-17  Ziemowit Laski  <zlaski@apple.com>
2644             Mike Stump  <mrs@apple.com>
2645
2646         Yet more Objective-C++...
2647
2648         * c-common.h (objc_finish_try_stmt): Add.
2649         (objc_build_synchronized): Add.
2650         (objc_generate_write_barrier): Add.
2651         * stub-objc.c (objc_build_synchronized): Add return value.
2652         (objc_finish_try_stmt): Likewise.
2653         (objc_generate_write_barrier): Add.
2654
2655         * c-common.h (objc_rewrite_function_call): Add.
2656         * c-typeck.c (build_function_call): Allow objc to rewrite
2657         FUNCTION_DECLs.
2658         (build_modify_expr): Allow objc to generate write barriers.
2659         * c.opt (Wassign-intercept): Add.
2660         (Wstrict-selector-match): Add.
2661         (fobjc-call-cxx-cdtors): Add.
2662         (fobjc-direct-dispatch): Add.
2663         (fobjc-gc): Add.
2664         * dbxout.c (get_lang_number): Add Objective-C++ support.
2665         * doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
2666         (-Wstrict-selector-match): Likewise.
2667         (-fobjc-direct-dispatch): Likewise.
2668         (-Wassign-intercept): Likewise.
2669         (Overall Options): Likewise.
2670         * gengtype.c (get_output_file_with_visibility): Likewise.
2671         * stub-objc.c (objc_rewrite_function_call): Add.
2672         * config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
2673
2674         * c-common.c (flag_objc_exceptions): Remove.
2675         (flag_objc_sjlj_exceptions): Remove.
2676         * c-decl.c (objc_mark_locals_volatile): Don't change decls
2677         that are already ok.
2678         * c-opts.c (c_common_handle_option, case
2679         OPT_fobjc_exceptions): Remove.
2680         (case OPT_fobjc_sjlj_exceptions): Remove
2681         * c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
2682         (fobjc-exceptions): Likewise.
2683         (fobjc-sjlj-exceptions): Likewise.
2684         * config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
2685         (OFFS_ASSIGNIVAR_FAST): Add.
2686         
2687 2005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2688
2689         * config/sparc/sparc.md (movhi): Do not test constness
2690         of operand #1 twice.
2691         (movsi): Likewise.
2692         (movdi): Unconditionally accept zero as second operand
2693         when the first is memory.
2694         (movdi_insn_sp32): Handle above case.
2695         (DImode splitter): Use predicates.
2696         (DImode splitter): Use const_zero_operand predicate.
2697         (movsf_insn): Swap 2 alternatives.
2698
2699 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2700
2701         * tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
2702         expand_simple_operations to bases of the ivs.
2703         (tree_int_cst_sign_bit): Export.
2704         * tree-flow.h (expand_simple_operations): Declare.
2705         * tree-ssa-loop-niter.c (number_of_iterations_cond): Use
2706         tree_int_cst_sign_bit.
2707         (expand_simple_operations): Export.
2708         * tree.h (tree_int_cst_sign_bit): Declare.
2709
2710 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2711
2712         * tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
2713         merged block.
2714         (replace_uses_by): New function.
2715         (tree_merge_blocks): Eliminate the phi nodes in the merged block.
2716         * tree-flow.h (fold_stmt_inplace): Declare.
2717         * tree-ssa-ccp.c (fold_stmt_inplace): New function.
2718         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
2719         info after cfg cleanup.
2720
2721 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2722
2723         * cfgloop.h (just_once_each_iteration_p): Declaration changed.
2724         * cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
2725         const.
2726
2727 2005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
2728
2729         * ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
2730         * ggc-zone.c (ggc_alloc_zone_1): Ditto.
2731         * timevar.c (timevar_ggc_mem_total): New variable.
2732         (GGC_MEM_BOUND): New constant.
2733         (get_time): Record ggc memory status.
2734         (timevar_accumulate): Accumulate amount of ggc memory.
2735         (timevar_print): Print consumption of ggc memory.
2736         * timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
2737         TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
2738         TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
2739         * timevar.h (struct timevar_time_def): Add ggc_mem field.
2740         (timevar_ggc_mem_total): Declare.
2741
2742 2005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
2743
2744         * tree-into-ssa.c (update_ssa): Clean up by shortening the
2745         live range of DFS.
2746
2747 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
2748
2749         * config/cris/cris.md (ncond, ocode, rcond): Remove separate
2750         define_code_attr.
2751         ("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
2752         ("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
2753         ("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
2754         ("s<ocond:code>"): Rename from respectively "b<ncond>",
2755         "b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
2756         "*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
2757         "s<rcond>" and "s<ocond>".
2758         ("b<ocond:code>", "*b<ocond:code>_reversed")
2759         ("*b<rcond:code>_reversed"): Remove extraneous backslashes in
2760         output statement section.
2761
2762 2005-05-17  Roger Sayle  <roger@eyesopen.com>
2763
2764         * c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
2765
2766 2005-05-17  Steven Bosscher  <stevenb@suse.de>
2767             Stuart Hastings <stuart@apple.com>
2768             Jan Hubicka  <jh@suse.cz>
2769             Dale Johannesen  <dalej@apple.com>
2770
2771         * cgraph.h (cgraph_node): Add 'lowered' state.
2772         (cgraph_lower_function): Declare.
2773         * cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
2774         (cgraph_lower_function): New function.
2775         (cgraph_create_edges): Deal with lowered function bodies.
2776         (verify_cgraph_node): Likewise.
2777         (cgraph_analyze_function): Do lowering job.
2778         (cgraph_build_static_cdtor): Likewise.
2779         * function.h (struct function): Add saved_eh and saved_cfg.
2780         * integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
2781         * tree-cfg.c (fold_cond_expr_cond): Export.
2782         * tree-flow.h (fold_cond_expr_cond): Declare.
2783         * tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
2784         pointer-set.
2785         (struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
2786         in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
2787         callee_cfun, block, eh_region, eh_region_offset.
2788         (inlining_p): New predicate.
2789         (remap_decl): Update for new inline_data; declare newly created inline
2790         vars in low gimple way.
2791         (copy_body_r): Update for new datastructure, simplify some of handling
2792         when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
2793         deal with RESX_EXPRs.
2794         (copy_bb): New.
2795         (copy_edges_for_bb): Likewise.
2796         (remap_decl_1): New.
2797         (copy_cfg_body): New.
2798         (copy_generic_body): Rewrite to work on low gimple.
2799         (copy_body): Turn into simple wrapper around copy_cfg_body.
2800         (setup_one_parameter): Insert new statements into given basic block.
2801         (initialize_initialized_parameters): Likewise, reorganize way things are
2802         gimplified.
2803         (declare_return_variable): Update for new inline data datastructure.
2804         (inline_forbidden_p): Work on low gimple.
2805         (estimate_num_insns): Likewise.
2806         (expand_call_inline): Work on CFG.
2807         (push_cfun, pop_cfun): New functions.
2808         (cfun_stack): New stack.
2809         (add_lexical_block): New function.
2810         (gimple_expand_calls_inline): Work on basic block.
2811         (optimize_inline_calls): Likewise.
2812         (clone_body, save_body, unsave_ewpr_now): Update for new
2813         datastructures.
2814         (declare_inline_vars): Work on block instead of bind_expr.
2815         (inlining_p): New predicate.
2816         * tree-inline.h (push_cfun, pop_cfun): Declare.
2817         * tree-optimize.c: Include except.h
2818         (all_lowering_passes): New variable.
2819         (execute_fixup_cfg, pass_fixup_cfg): New pass.
2820         (init_tree_optimization_passes): Move some to all_lowering_passes.
2821         (tree_lowering_passes): New function.
2822         (tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
2823         * tree-pass.h (tree_lowering_passes): Declare
2824
2825 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
2826
2827         * unwind-dw2-fde-darwin.c: Include tsystem.h.
2828
2829 2005-05-17  Jeff Law  <law@redhat.com>
2830
2831         * Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
2832         * tree-ssa-forwprop.c: Include langhooks.h.
2833         (forward_propagate_addr_expr_into_variable_array_index): New.
2834         (forward_propagate_addr_expr): New.
2835         (tree_ssa_forward_propagate_single_use_vars): Loop over all
2836         the statements in the block instead of just the last statement.
2837         Call forward_propagate_addr_expr as needed.
2838         (pass_forwprop): Update the SSA graph after forward propagation is
2839         complete.
2840
2841 2005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
2842
2843         * unwind-dw2-fde-glibc.c (base_from_cb_data,
2844         _Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
2845         appropriate.
2846         * unwind-dw2-fde.c (__deregister_frame_info_bases,
2847         base_from_object, fde_split, end_fde_sort): Likewise.
2848         * unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
2849         execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
2850         uw_init_context_1): Likewise.
2851         * unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
2852         _Unwind_Resume_or_Rethrow): Likewise.
2853         * unwind-pe.h (__gxx_abort): Do not define.
2854         (size_of_encoded_value, base_of_encoded_value,
2855         read_encoded_value_with_base): Use gcc_unreachable.
2856         * unwind.h (_Unwind_GetTextRelBase): Likewise.
2857
2858 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
2859
2860         * config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
2861         (cfi_end): New macros.
2862         (RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
2863         (ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
2864         an eight byte stack frame.
2865         (__NR_tkill): Define.
2866         (__div0): Use gettid tkill on GNU/Linux.
2867         (_arm_return): Add CFI.
2868         (Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
2869
2870 2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
2871
2872         * configure.ac: Remove spaces around assignment to
2873         gcc_cv_ld_sysroot.
2874         * configure: Regenerated.
2875
2876 2005-05-17  David Edelsohn  <edelsohn@gnu.org>
2877
2878         * config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
2879         * config/rs6000/rs6000.c (rs6000_explicit_options): Add
2880         aix_struct_ret.
2881         (rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
2882         Modify aix_struct_return variable, not target_flags.
2883         (rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
2884         (rs6000_return_in_memory): Test aix_struct_return.
2885         * config/rs6000/rs6000.opt (maix-struct-return): Convert to
2886         independent variable.  Report mxl-compat.
2887
2888 2005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
2889
2890         * config/bfin/bfin.md (eh_return): Add missing DONE.
2891
2892 2005-05-17  Ian Lance Taylor  <ian@airs.com>
2893
2894         * read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
2895         field.
2896         (mode_attr_index): Remove check for defined attribute.  Remove
2897         infile parameter.  Change all callers.
2898         (apply_mode_maps): Add unknown parameter.  Change caller.  Always
2899         return after finding attribute.
2900         (apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
2901         callers.
2902         (apply_macro_traverse): Set mtd->unknown_mode_attr.
2903         (read_rtx): Use mtd.unknown_mode_attr to check for an undefined
2904         attribute used for a mode.
2905
2906 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
2907
2908         * tree-ssa-math-opts.c: New file.
2909
2910 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
2911
2912         * tree-ssa-math-opts.c: New file.
2913
2914 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
2915
2916         * Makefile.in: Add tree-ssa-math-opts.c.
2917         * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
2918         * fold-const.c (distribute_real_division): New.
2919         (fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
2920         * tree-pass.h (pass_cse_reciprocals): New.
2921         * tree-optimize.c (init_tree_optimization_passes): Run it.
2922         * doc/passes.texi: Document the new pass.
2923
2924 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
2925
2926         PR middle-end/21595
2927         * builtins.c (fold_builtin_constant_p): Handle
2928         &"string cst"[0] as constant.
2929
2930 2005-05-17  Richard Henderson  <rth@redhat.com>
2931
2932         * config/i386/sse.md (mulv16qi3, mulv2di3): New.
2933
2934 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
2935
2936         PR middle-end/21492
2937         * cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
2938         src2 if src2 has been split.
2939
2940         PR tree-optimization/21610
2941         * c-typeck.c (decl_constant_value_for_broken_optimization): If not
2942         returning DECL, call unshare_expr.
2943
2944 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
2945
2946         * config/cris/cris.md: Unquote preparation and output statements.
2947         (BWD, WD, BW): New, mode-macros.
2948         (S, s, m, mm, nbitsm1): New, mode-attrs.
2949         (szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
2950         (u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
2951         code-attrs.
2952         ("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
2953         ("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
2954         ("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
2955         "*cmp_swapexthi".
2956         ("cmp<mode>"): Replace "cmphi" and "cmpqi".
2957         ("movdi"): Move misplaced head comment regarding necessity of
2958         movdi from movsi to here.
2959         ("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
2960         "*mov_sidehi_biap".
2961         ("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
2962         ("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
2963         "*mov_sideqi_biap_mem".
2964         ("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
2965         "*mov_sidehi_mem".
2966         ("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
2967         "*clear_sidehi_biap" and "*clear_sideqi_biap".
2968         ("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
2969         and "*clear_sideqi".
2970         ("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
2971         "*ext_sidehisi_biap".
2972         ("*ext_side<mode>si"): Replace "*ext_sideqisi" and
2973         "*ext_sidehisi".
2974         ("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
2975         ("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
2976         ("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
2977         ("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
2978         ("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
2979         "zero_extendqisi2".
2980         ("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
2981         "*op_sidehi_biap" and "*op_sidesi_biap".
2982         ("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
2983         "*op_sidesi".
2984         ("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
2985         "*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
2986         ("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
2987         "*op_swap_sidehi" and "*op_swap_sidesi".
2988         ("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
2989         in the N alternative of "subqi3".
2990         ("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
2991         "*extophisi_side_biap".
2992         ("*extop<mode>si_side"): Replace "*extopqisi_side" and
2993         "*extophisi_side".
2994         ("*extop<mode>si_swap_side_biap"): Replace
2995         "*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
2996         ("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
2997         "*extophisi_swap_side".
2998         ("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
2999         ("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
3000         "*extophisi_swap".
3001         ("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
3002         "mulqihi3", "mulhisi3" and "mulhisi3".
3003         ("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
3004         ("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
3005         "umulsi3_highpart".
3006         ("xor<mode>3"): Replace "xorhi3" and "xorqi3".
3007         ("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
3008         ("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
3009         ("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
3010         ("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
3011         ("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
3012         "*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
3013         ("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
3014         "*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
3015         ("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
3016         ("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
3017         ("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
3018         "*ashlhi_lowpart".
3019         ("abs<mode>2"): Replace "abshi2" and "absqi2".
3020         ("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
3021         "bleu".
3022         ("b<ocond>"): Replace "bgt" and "ble".
3023         ("b<rcond>"): Replace "blt" and "bge".
3024         ("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
3025         "*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
3026         "*bleu_reversed".
3027         ("*b<ocond>_reversed"): Replace "*bgt_reversed" and
3028         "*ble_reversed".
3029         ("*b<rcond>_reversed"): Replace "*blt_reversed" and
3030         "*blt_reversed".
3031         ("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
3032         "sne".
3033         ("s<rcond>"): Replace "sge" and "slt".
3034         ("s<ocond>"): Replace "sgt" and "sle".
3035         ("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
3036         [rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
3037         ("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
3038         clear.w [rx=rx+i] and clear.b [rx=rx+i].
3039
3040 2005-05-17  Jakub Jelinek  <jakub@redhat.com>
3041
3042         * varasm.c (struct constant_descriptor_tree): Add hash field.
3043         (const_desc_hash): Just return hash field.
3044         (const_desc_eq): If hash values are different, return 0 immediately.
3045         (output_constant_def): Compute hash field of temporary key, use
3046         htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
3047         newly built constant descriptor.
3048         (lookup_constant_def): Compute hash field of temporary key, use
3049         htab_find_with_hash instead of htab_find.
3050
3051 2005-05-16  Richard Henderson  <rth@redhat.com>
3052
3053         * config/i386/sse.md (mulv4si3): New.
3054
3055 2005-05-17  Hans-Peter Nilsson  <hp@axis.com>
3056
3057         * config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
3058         tests for noncanonical versions of reg+constant and
3059         reg+reg*{1,2,4}.
3060
3061 2005-05-16  Richard Henderson  <rth@redhat.com>
3062             Steven Bosscher <stevenb@suse.de>
3063
3064         PR tree-opt/21399
3065         * tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
3066         maybe_clean_eh_stmt; take old stmt parameter.  Update EH
3067         region data structure to match replacement.
3068         * tree-flow.h: Update to match.
3069         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
3070         * tree-ssa-dom.c (optimize_stmt): Likewise.
3071         * tree-ssa-pre.c (eliminate): Likewise.
3072         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3073
3074 2005-05-16  Caroline Tice  <ctice@apple.com>
3075
3076         * bb-reorder.c (verify_hot_cold_block_grouping):  Replace
3077         internal_error with gcc_assert.
3078         * dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
3079         * function.h (struct function): Remove space between "*" and
3080         struct field names.
3081         * varasm.c (initialize_cold_section_name):   Add gcc_assert;
3082         modify to use alloca.
3083         (unlikely_text_section): Add check for flag_function_sections.
3084         (assemble_start_function):  Move call to resolve_section, so it
3085         comes before first call to unlikely_text_section.
3086         (assemble_end_function):  Add test and call to function_section
3087         if appropriate.
3088         
3089 2005-05-16  Roger Sayle  <roger@eyesopen.com>
3090
3091         * c-common.c (c_common_truthvalue_conversion): Use fold_build2
3092         instead of build_binary_op when performing code transformations
3093         to avoid error messages about constructs not it the user's code.
3094
3095 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
3096
3097         * tree-ssa-pre.c: Fix a comment typo.
3098
3099 2005-05-16  Richard Henderson  <rth@redhat.com>
3100
3101         PR target/21556
3102         * config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
3103         load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
3104         add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
3105         load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
3106         add_tprel22): Remove mode from symbolic operand.
3107
3108 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
3109
3110         * optc-gen.awk: Include intl.h after the externally-provided files.
3111
3112 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
3113
3114         * tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
3115         folding a COND_EXPR_COND in a nondestructive manner.
3116
3117 2005-05-16  Fariborz Jahanian <fjahanian@apple.com>
3118
3119         * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
3120         altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
3121         New values for vec_select definitions and bitmask for element
3122         selection.
3123          
3124 2005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
3125
3126         * dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
3127         Change the type to VEC(rtx,gc)*.
3128         (mem_loc_descriptor, add_const_value_attributes,
3129         dwarf2out_init): Adjust uses of used_rtx_varray.
3130
3131         * tree-data-ref.c (compute_all_dependences): Change the type
3132         of dependence_relations to VEC(ddr_p,heap)**.
3133         (compute_data_dependences_for_loop): Change the type of
3134         allrelations to VEC(ddr_p,heap)*.
3135
3136 2005-05-16  Richard Sandiford  <rsandifo@redhat.com>
3137
3138         * Makefile.in (options.c): Tell optc-gen.awk to include config.h,
3139         system.h, coretypes.h and tm.h.
3140         (options.o): Update dependencies accordingly.
3141         * optc-gen.awk: Allow header_name to be a list of filenames.
3142         Handle the "Condition" flag.
3143         * opts.h (CL_DISABLED): New flag.
3144         * opts.c (handle_option): Print an error for CL_DISABLED options.
3145         * doc/options.texi: Document the "Condition" option flag.
3146
3147 2005-05-16  Paolo Bonzini  <bonzini@gnu.org>
3148
3149         * tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
3150
3151 2005-05-15  Roger Sayle  <roger@eyesopen.com>
3152
3153         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
3154         check for TREE_OVERFLOW on INTEGER_CST trees.
3155         * tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
3156         CONSTANT_CLASS_P tree nodes.
3157
3158 2005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
3159
3160         PR target/21551
3161         * config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
3162
3163 2005-05-15  Daniel Berlin  <dberlin@dberlin.org>
3164             
3165         Fix PR tree-optimization/21576
3166         
3167         * tree-ssa-pre.c (expression_node_pool): New pool.
3168         (comparison_node_pool): Ditto.
3169         (list_node_pool): Ditto.
3170         (pool_copy_list): New function.
3171         (phi_translate): Handle CALL_EXPR.
3172         (valid_in_set): Ditto.
3173         (create_expression_by_pieces): Ditto.
3174         (insert_into_preds_of_block): Ditto.
3175         (insert_aux): Ditto.
3176         (compute_avail): Ditto.
3177         (create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
3178         (can_value_number_call): New function.
3179         (find_leader): Update comment.
3180         (init_pre): Create new pools.
3181         (fini_pre): Free new pools.
3182         (pass_pre): Add TODO_update_ssa for the future when we are going
3183         to need vops.
3184         * tree-vn.c (expressions_equal_p): Handle TREE_LIST.
3185         (set_value_handle): Ditto.
3186         (get_value_handle): Ditto.
3187
3188 2005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
3189
3190         * arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
3191
3192 2005-05-15  Andreas Jaeger  <aj@suse.de>
3193
3194         * gcc.c (pfatal_pexecute): Remove unused local function.
3195
3196 2005-05-15  Richard Sandiford  <rsandifo@redhat.com>
3197
3198         * optc-gen.awk: Remove excess indentation.
3199         * opth-gen.awk: Likewise.
3200
3201 2005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
3202
3203         * config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
3204         of basic_block_info.  Call init_flow and find_basic_blocks
3205         before dbr_schedule if needed.
3206
3207 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3208
3209         * tree-optimize.c (init_tree_optimization_passes): Move
3210         pass_cd_dce in place of the last pass_dce.
3211
3212         PR tree-optimization/21563
3213         * tree-vrp.c (compare_value): Return boolean_false_node when
3214         SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
3215         strictly larger than CST.
3216
3217 2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
3218             Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3219
3220         * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
3221         gcc_assert().
3222         (rev_cond_name) Likewise.
3223         (vax_float_literal) Likewise.
3224         * config/vax/vax.md: Likewise.
3225
3226 2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3227
3228         * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
3229         registers and use them (specifically the stack pointer).
3230         * config/vax/vax.h: Use above defines right here.
3231
3232         * config/vax/vax.c: (override_options) Remove 'register' keyword.
3233         (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
3234         (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
3235         whitespace.
3236         * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
3237         mostly removal of trailing spaces...
3238         * config/vax/vax-modes.def: Remove trailing whitespace.
3239
3240         * config/vax/elf.h: Update whitespace.
3241
3242 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
3243
3244         Revert
3245         2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
3246         * fold-const.c (fold_indirect_ref_1): Avoid removing
3247         NOP_EXPRs with type qualifiers like const.
3248
3249 2005-05-14  Jan Hubicka  <jh@suse.cz>
3250
3251         Patch by Richard Henderson:
3252         * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
3253         Handle RESX expressions properly.
3254
3255         * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
3256         (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
3257         (remove_stmt_from_eh_region_fn): Likewise.
3258
3259         * tree-cfg.c (execute_warn_function_return): Break out noreturn
3260         warning too..
3261         (execute_warn_function_noreturn): ... here.
3262         (pass_warn_function_noreturn): New pass.
3263         * tree-pass.h (pass_warn_function_noreturn): Declare
3264         * tree-optimize.c (init_tree_optimization_passes): Move return
3265         warnings early and add noreturn warnings at place of previous
3266         return warnings.
3267
3268 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3269
3270         * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
3271         root_var_init, type_var_init): Use VEC instead of VARRAY.
3272         * tree-ssa-live.h (tree_partition_associator_d): Change the
3273         type of trees to VEC(tree,heap)*.
3274         (tpa_tree): Use VEC instead of VARRAY.
3275
3276 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
3277
3278         * fold-const.c (div_if_zero_remainder): New function.
3279         (try_move_mult_to_index): Use it.
3280
3281 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3282
3283         * tree-eh.c (leh_tf_state): Change the type of dest_array to
3284         VEC(tree,heap)*.
3285         (maybe_record_in_goto_queue, lower_try_finally_onedest,
3286         lower_try_finally_copy, lower_try_finally_switch,
3287         lower_try_finally): Use VEC instead of VARRAY.
3288
3289 2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
3290
3291         * config/cris/cris.h (Node: Register Classes): Remove obsoleted
3292         comment regarding defined register classes.
3293         (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
3294
3295 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
3296
3297         * tree-optimize.c (init_tree_optimization_passes): Move
3298         pass_merge_phi before the first pass_dominator.
3299
3300 2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
3301
3302         * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
3303         unconditional.
3304
3305 2005-05-13  Josh Conner  <jconner@apple.com>
3306
3307         * config/arm/arm.c (arm_size_return_regs): New.
3308         (thumb_unexpanded_epilogue): replace in-line calculation
3309         of return registers with call to arm_size_return_regs.
3310         (use_return_insn): Include test of which registers are
3311         being used to hold return values, to accommodate
3312         vector return values.
3313
3314 2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
3315
3316         * config/rs6000/sysv4.opt (mlittle): Handle.
3317
3318         * config/rs6000/rs6000.c (rs6000_handle_option): Set
3319         target_flags_explicit when appropriate.
3320
3321 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
3322
3323         PR middle-end/20714:
3324         * optabs.c (no_conflict_data): New struct.
3325         (no_conflict_move_test): New function.
3326         (emit_no_conflict_block): Use it.
3327
3328 2005-05-13  Adam Nemet  <anemet@lnxw.com>
3329
3330         * doc/invoke.texi (Debugging Options): Option
3331         -fdump-translation-unit only works with C++ now.
3332
3333 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
3334
3335         Replace calls to abort in CRIS port.
3336         * config/cris/cris.h (CRIS_ASSERT): New macro.
3337         * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
3338         internal_error instead of abort.
3339         ("movsi"): Ditto.  Unquote preparation statement section.
3340         ("call", "call_value"): Ditto, but use gcc_assert where
3341         appropriate.  Tweak comments.
3342         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
3343         CRIS_ASSERT.
3344         (cris_op_str): Call internal_error, not abort.
3345         (cris_print_operand): Tweak "abort" reference to "die" in comment.
3346         (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
3347         (cris_notice_update_cc): Call internal_error, not abort.
3348         (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
3349         (cris_emit_movem_store, cris_asm_output_symbol_ref)
3350         (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
3351         (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
3352         ENABLE_CHECKING-guarded abort call.
3353         (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
3354         Use internal_error at end of test-chain.
3355
3356 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
3357
3358         PR rtl-optimization/20769:
3359         * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
3360         pattern emitted by expand_nl_goto_receiver.
3361
3362         PR middle-end/20793:
3363         * integrate.c (allocate_initial_values): Update register liveness
3364         information.
3365
3366 2005-05-13  Josh Conner  <jconner@apple.com>
3367
3368         * arm.c (arm_return_in_memory): Add handling for vector return types.
3369
3370 2005-05-13  David Ung  <davidu@mips.com>
3371
3372         * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
3373         name.
3374         * config/mips/mips.c: Add 4km alias.
3375         * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
3376         * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
3377         description.
3378
3379 2005-05-13  Jan Hubicka  <jh@suse.cz>
3380
3381         * c-decl.c (finish_function): Suppress "control reaches end of
3382         non-void function" when "no return statement in function
3383         returning non-void" is issued.
3384
3385         * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
3386         * tree-optimize.c (pass_gimple): Kill.
3387         (init_tree_optimization_passes): Kill pass_gimple.
3388         * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
3389         * tree-dump.c (dump_files): Rename .generic to .gimple.*
3390
3391 2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
3392
3393         PR rtl-optimization/20756:
3394         * basic-block.h (PROP_DEAD_INSN): Define.
3395         * flow.c (propagate_one_insn): Set during mark_set_regs call
3396         for a dead insn.
3397         (mark_set_1): Emit a clobber when we are about to delete a dead insn
3398         that kills a live register.
3399
3400 2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
3401
3402         * config/s390/s390.md: ("DBL"): New mode attribute.
3403         ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
3404         ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
3405         ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
3406
3407 2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
3408
3409         * c-format.c (check_format_arg): Handle string literals of
3410         the form &"string"[offset].
3411
3412         * g++.dg/warn/format4.C: New testcase.
3413
3414 2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
3415
3416         * config/mips/3000.md, config/mips/4000.md,
3417         config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
3418         config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
3419         config/mips/generic.md, config/pdp11/pdp11.md,
3420         config/sh/crt1.asm, config/sh/lib1funcs.asm,
3421         config/sh/sh-modes.def, config/sh/sh-protos.h,
3422         config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
3423
3424 2005-05-13  Richard Henderson  <rth@redhat.com>
3425
3426         * function.c (instantiate_virtual_regs_in_insn): Do not simplify
3427         addition to move unless dest is a register.  Do not skip
3428         instantiation in dest on addition simplification.
3429
3430 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
3431
3432         * config/cris/cris.c (cris_print_operand) <case 'H'; case
3433         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
3434         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
3435
3436 2005-05-13  Jan Hubicka  <jh@suse.cz>
3437
3438         * basic-block.h (FOR_ALL_BB_FN): New macro.
3439         (init_flow): Initialize cfg structure.
3440         * function.c (allocate_struct_function): Do not initialize cfg structure.
3441         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
3442         (build_tree_cfg): ... here.
3443         * tree-flow.h (init_empty_tree_cfg): Declare.
3444
3445 2005-05-12  Steven Bosscher <stevenb@suse.de>
3446
3447         Fix PR tree-optimization/21520
3448         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
3449         to attempt to fold constants.
3450
3451 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
3452
3453         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
3454         only when TARGET_ADJUST_UNROLL_MAX is defined.
3455         (general_movsrc_operand): Use the C style comment.
3456         (ua_offset): Use prototype.
3457
3458 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
3459
3460         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
3461         (struct hmr_data, hoist_memory_reference, memref_del,
3462         struct fmrv_data): Removed.
3463         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
3464         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
3465         list.
3466         (find_more_ref_vops): Traverse the list of memory references.
3467         (determine_lsm_loop): Work with the list of memory references instead
3468         of traversing the hashtable.
3469
3470 2005-05-12  Steven Bosscher  <stevenb@suse.de>
3471             Stuart Hastings <stuart@apple.com>
3472             Jan Hubicka  <jh@suse.cz>
3473
3474         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
3475         duplicate_eh_regions): New functions, based on old
3476         implementation removed with RTL inliner.
3477         (reachable_next_level): Modify behaviour pre-inline.
3478         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
3479         Declare.
3480         * function.h (struct function): Add after_inlining flag.
3481         * tree-optimize.c (tree_rest_of_compilation): Set it.
3482         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
3483         when needed.
3484         * tree-cfg.c (label_to_block_fn): Deal with cases where
3485         label was never insterted into code.
3486
3487 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
3488
3489         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
3490
3491 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
3492
3493         Fix PR tree-optimization/21532
3494         * tree-ssa-pre.c (create_expression_by_pieces): stmt
3495         needs to go onto the inserted_exprs list.
3496
3497 2005-05-12  Ian Lance Taylor  <ian@airs.com>
3498
3499         * c-common.h (statement_code_p): Don't declare.
3500         (STATEMENT_CODE_P): Don't define.
3501         (INIT_STATEMENT_CODES): Don't define.
3502         * c-common.c (statement_code_p): Don't define.
3503
3504 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3505
3506         * config/sparc/sparc.h: Remove dead code.
3507         * config/sparc/sparc.c (sparc_compute_frame_size): Use
3508         FIRST_PARM_OFFSET for the size of the register window area.
3509         (emit_save_regs): Rename into emit_save_or_restore_regs.
3510         Add 'action' parameter.  Use 4095 as upper bound for the offset.
3511         Pass 'action' to save_or_restore_regs.
3512         (emit_restore_regs): Delete.
3513         (sparc_expand_prologue): Call emit_save_or_restore_regs.
3514         (sparc_expand_epilogue): Likewise.
3515         * config/sparc/sparc.md (mode macro P): Move.
3516         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
3517         (mov<V32:mode> expander): Move to the top of the V32 section.
3518         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
3519         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
3520         (sibcall_epilogue): Move.
3521
3522 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
3523
3524         PR target/21501
3525         * arm.c (arm_gen_constant): Sign-extend intermediate values when
3526         synthesizing a constant of the difference of two immediates.
3527
3528 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
3529
3530         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
3531         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
3532         the alternatives using integer registers into the appropriate
3533         primitives.
3534
3535 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
3536
3537         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
3538         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
3539         * bitmap.h: Fixed comments.
3540
3541 2005-05-11  Richard Henderson  <rth@redhat.com>
3542
3543         PR target/21412
3544         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
3545         (ia64_cannot_force_const_mem): New.
3546         (tls_symbolic_operand_type): New.
3547         (ia64_legitimate_constant_p): New.
3548         (ia64_expand_load_address): Return true on success.  Improve
3549         checks for when we should not split.
3550         (ia64_expand_tls_address): New addend operand.  Distribute it
3551         as appropriate to the tls_kind.  Delay referencing gp.
3552         (ia64_expand_move): Split symbolic addend as necessary.  Handle
3553         tls symbols with addends.
3554         * config/ia64/ia64-protos.h: Update.
3555         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
3556         p0, f0, f1, and r13.
3557         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
3558         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
3559         (symbolic_operand splitter): Pass everything through
3560         ia64_expand_load_address and FAIL or DONE as appropriate.
3561         (load_fptr): Only accept after reload.
3562         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
3563         load_symptr_low, load_ltoff_dtpmod,
3564         (load_dtpmod): New.
3565         (load_dtprel): Only accept tls symbols.
3566         (load_dtprel64, load_dtprel22): Likewise.
3567         (load_tprel, load_tprel64, load_tprel22): Likewise.
3568         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
3569         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
3570         (add_dtprel14, add_dtprel22): Likewise.
3571         (add_tprel, add_tprel14, add_tprel22): Likewise.
3572         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
3573         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
3574         (got_symbolic_operand): Check CONST offsets.
3575         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
3576         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
3577         (move_operand): Don't handle tls here.  Check CONST offsets.
3578
3579 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
3580
3581         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
3582         Remove hilo_operand check.
3583         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
3584         * config/mips/predicates.md (hilo_operand): Delete.
3585
3586 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
3587
3588         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
3589
3590 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
3591
3592         PR tree-optimizer/18472
3593         * tree-if-conv.c (tree_if_convert_stmt,
3594         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
3595
3596 2005-05-11  Jan Hubicka  <jh@suse.cz>
3597
3598         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
3599         (GTFILES): add except.h.
3600         * except.c (eh_status): Add throw_stmt_table.
3601         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
3602         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
3603         lookup_stmt_eh_region_fn): Declare.
3604         (throw_stmt_node): New structure.
3605         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
3606         * gengtype.c (open_base_files): Add except.h to inlines.
3607         * tree-eh.c (throw_stmt_node): Kill.
3608         (record_stmt_eh_region): Update.
3609         (add_stmt_to_eh_region_fn): Break out from ...
3610         (add_stmt_to_eh_region): ... here.
3611         (remove_stmt_from_eh_region_fn): Break out from ...
3612         (remove_stmt_from_eh_region): ... here.
3613         (lookup_stmt_eh_region_fn): Break out from ...
3614         (lookup_stmt_eh_region): ... here.
3615         (honor_protect_cleanup_actions): Use build_resx.
3616         (lower_try_finally_onedest): Likewise.
3617         (lower_try_finally_copy): Likewise.
3618         (lower_try_finally_switch): Likewise.
3619         (lower_eh_constructs): Update eh table construction.
3620         * tree.c (build_resx): New.
3621         * tree.h (build_resx): Declare.
3622
3623 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
3624
3625         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
3626         is needed.
3627
3628 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
3629
3630         * fold-const.c, libgcov.c: Fix comment typos.
3631
3632         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
3633         redundant code.
3634
3635 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
3636
3637         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
3638         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
3639         default definition.
3640         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
3641
3642 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
3643
3644         PR bootstrap/21481
3645         * crtstuff.c: Include auto-host.h again, for now.
3646
3647 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
3648
3649         * config/mips/24k.md: Remove trailing whitespace.
3650
3651 2005-05-11  David Ung  <davidu@mips.com>
3652
3653         * config/mips/mips.md (type): Add imul3.
3654         (length, hazard, may_clobber_hilo): Check for imul3.
3655         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
3656         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
3657         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
3658         for a 3 operand mul and its bypasses.
3659         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
3660         * config/mips/4000.md (r4k_imul): Likewise.
3661         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
3662         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
3663         (vr4130_muldi): Likewise.
3664         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
3665         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
3666         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
3667         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
3668         (ir_vr54_imadd_si): Likewise.
3669         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
3670         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
3671         (rm7_impy_di): Likewise.
3672         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
3673         * config/mips/generic.md (generic_imul): Likewise.
3674         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
3675         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
3676
3677 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
3678
3679         PR middle-end/20371:
3680         * tree.h (record_layout_info_s): New member prev_packed.
3681         * stor-layout.c (update_alignment_for_field): Fix comment about
3682         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
3683         we start it properly aligned.
3684         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
3685         to update_alignment_for_field, and recompute it afterwards using
3686         the alignment of the record.
3687         When a packed bitfield precedes an MS bitfield, don't add padding
3688         at the end of the packed bitfield on behalf of the base type of
3689         the packed bit field.
3690         Don't adjust rli->bitpos at the end
3691         of an MS bitfield run if we already adjusted bitpos/offset for an
3692         alignment as large or larger than the bitfield type size.
3693         Take possible record alignment > BIGGEST_ALIGNMENT into account
3694         when calculating actual_align.
3695         Only put packed buit fields into rli->prev_field if they end up
3696         suitably aligned.
3697         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
3698         Update rli->remaining_in_alignment when we have already started a
3699         run of bit fields and we process a packed bit field.
3700
3701 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
3702
3703         * tree-data-ref.c (find_data_references_in_loop): Give up when
3704         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
3705         may embed arbitrary side effects.
3706         Remove the assumption that GIMPLE form contains a single array
3707         access per statement.
3708         When the statement contains virtual operands, fail if it is not
3709         a MODIFY_EXPR or a CALL_EXPR.
3710         Return after the dont know node is inserted.
3711
3712 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
3713
3714         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
3715
3716 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
3717
3718         PR middle-end/19807
3719         PR tree-optimization/19639
3720         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
3721         and generic summands for char* as s * delta, too, folding &a[i]
3722         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
3723         for comparison of steps.  Convert types for index addition.
3724         (fold_binary): Adjust the callers to always dispatch to
3725         try_move_mult_to_index.
3726         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
3727         expr with non-gimple ARRAY_REF offset.
3728
3729 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
3730
3731         * fold-const.c (fold_indirect_ref_1): Avoid removing
3732         NOP_EXPRs with type qualifiers like const.
3733
3734 2005-05-11  Richard Henderson  <rth@redhat.com>
3735
3736         PR c/21502
3737         * c-decl.c (finish_decl): Propagate the completed array type of
3738         a global variable into the binding.
3739
3740 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
3741
3742         * Makefile.in (gtype-desc.o, build/genautomata.o)
3743         (build/varray.o): Depend on $(VARRAY_H).
3744
3745 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
3746
3747         * tree-optimize.c (init_tree_optimization_passes): Re-organize
3748         optimization passes to do an initial batch of scalar cleanups.
3749
3750 2005-05-10  Ian Lance Taylor  <ian@airs.com>
3751
3752         * read-rtl.c (struct macro_traverse_data): Define.
3753         (map_attr_string): New static function, broken out of
3754         apply_macro_to_string.
3755         (mode_attr_index, apply_mode_maps): New static functions.
3756         (apply_macro_to_string): Call map_attr_string.
3757         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
3758         all callers.
3759         (apply_macro_traverse): Expect data to point to a struct
3760         macro_traverse_data.
3761         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
3762         to pass data through htab_traverse.
3763         (read_rtx_1): Add mode_maps parameter.  Change all callers.
3764         Handle mode names which are attribute strings.
3765         * doc/md.texi (Substitutions): Rename from String Substitutions.
3766         Change references.  Document using attributes as modes.
3767
3768 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
3769
3770         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
3771         * tree-optimize.c (init_tree_optimization_passes) Swap
3772         pass_ch and pass_profile.
3773         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
3774         here.  Remove rewrite_into_loop_closed_ssa call.
3775
3776 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
3777
3778         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
3779         function.
3780         (legitimate_reload_constant_p): Add check for const double zero.
3781         * config/s390/s390.md: Add comment for constraint letter 'G'.
3782         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
3783         attributes for new case.
3784         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
3785         s390_const_double_ok_for_constraint_p.
3786         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
3787         Add prototype.
3788
3789 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
3790
3791         PR tree-optimization/21170
3792         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
3793         rewrite_ssa_into_ssa in comments with update_ssa.
3794
3795 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
3796
3797         * tree-ssa-loop-im.c: Include hashtab.h.
3798         (struct mem_ref_loc): New.
3799         (struct mem_ref): Describe the set of references with the same
3800         shape.
3801         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
3802         maybe_queue_var, fem_single_reachable_address,
3803         for_each_memref, single_reachable_address,
3804         is_call_clobbered_ref, determine_lsm_reg): Removed.
3805         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
3806         hoist_memory_reference, memref_hash, memref_eq, memref_del,
3807         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
3808         New functions.
3809         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
3810         (determine_lsm_loop): Rewritten.
3811         (determine_lsm): Do not set stmt uids.
3812
3813 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
3814
3815         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
3816         letters.
3817
3818 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
3819
3820         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
3821         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
3822         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
3823
3824 2005-05-10  Jeff Law  <law@redhat.com>
3825
3826         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
3827         thread_across_edge for any abnormal edges.
3828
3829 2005-05-10  Richard Henderson  <rth@redhat.com>
3830
3831         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
3832         * config/ia64/ia64-protos.h: Declare it.
3833         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
3834         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
3835         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
3836         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
3837         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
3838         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
3839         extend result; use release semantics.
3840         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
3841         (sync_val_compare_and_swap_<IMODE>): Update to match.
3842
3843 2005-05-10  Richard Henderson  <rth@redhat.com>
3844
3845         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
3846         before comparing it for success.
3847
3848 2005-05-10  Richard Henderson  <rth@redhat.com>
3849
3850         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
3851         no return value pattern.
3852
3853 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
3854             H.J. Lu  <hongjiu.lu@intel.com>
3855
3856         * libgcov.c (create_file_directory): New function. Create
3857         directory for the given file name.
3858         (gcov_max_filename): New static var. Keeps size of the longest
3859         file name.
3860         (gcov_exit): Always try to create directory for output
3861         file. Relocate each filename basing on environment vars.
3862         (__gcov_init): Remember the longest file name.
3863         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
3864         * doc/gcov.texi (Cross-profiling): New node documenting
3865         cross-profiling management.
3866         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
3867
3868 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3869
3870         * config/sparc/sparc.c (mem_min_alignment): Do not rely
3871         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
3872
3873 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
3874
3875         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
3876         case code to avoid one move instruction.
3877         (__umodsi3, __modsi3): Merge duplicated code sequences.
3878
3879 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
3880
3881         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
3882         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
3883         * doc/invoke.texi: Fix typos.
3884
3885         * tree-data-ref.c (analyze_array_indexes, analyze_array,
3886         init_data_ref, access_functions_are_affine_or_constant_p,
3887         free_data_refs): Use VEC instead of VARRAY.
3888         * tree-data-ref.h (data_reference): Change the type of
3889         access_fns to VEC(tree,gc)*.
3890         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
3891
3892 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
3893
3894         PR c/17913
3895         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
3896         * fold-const.c (fold): Expand the condition of reducing cond_expr.
3897         (contains_label_1, contains_label_p): New functions for checking
3898         labels in a sub-tree.
3899
3900 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
3901
3902         PR c/21342
3903         * c-decl.c (pushdecl): When there is a declaration in the current
3904         scope and the declarations are external linkage, check for
3905         compatibility with the type in the external scope and update the
3906         type in the external scope with the composite type information.
3907         Do not form a composite type of the new type and the visible type
3908         if they are incompatible.
3909
3910 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
3911
3912         * crtstuff.c: Revert part of 2005-05-08 Change.
3913         (IN_LIBGCC2): Define.
3914
3915 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
3916
3917         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
3918         remove redundant test.
3919         (fp_mov_p): Accept 0.
3920         (fp_high_losum_p): Remove redundant test.
3921         * config/sparc/predicates.md (const_high_operand): Explicitly test
3922         (not small_int_operand).
3923         (fp_const_high_losum_operand): New.
3924         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
3925         (movdi_insn_sp32_v9): Use canonical predicates.
3926         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
3927         (movdi_insn_sp64_novis): Delete.
3928         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
3929         (movsf_insn_novis): Delete.
3930         (movsf_insn_vis): Rename into movsf_insn.
3931         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
3932         (movsf_lo_sum): Use fp_const_high_losum_operand.
3933         (movsf_high): Likewise.
3934         (movsf_high_losum splitter): Likewise.
3935         (mov<V32:mode> expander): Use register_or_zero_operand.
3936         (mov<V64:mode> expander): Likewise.
3937         (movdf_insn_sp32): Use register_or_zero_operand.
3938         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
3939         Rename into movdf_insn_sp32_no_fpu.
3940         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
3941         Rename into movdf_insn_sp32_v9_no_fpu.
3942         (movdf_insn_v9only_novis): Delete.
3943         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
3944         (movdf_insn_sp64_novis): Delete.
3945         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
3946         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
3947         Rename into movdf_insn_sp64_no_fpu.
3948         (movtf expander): Use register_or_zero_operand.
3949         (movtf_insn_sp32): Delete.
3950         (movtf_insn_vis_sp32): Use register_or_zero_operand.
3951         Rename into movtf_insn_sp32.
3952         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
3953         Rename into movtf_insn_sp32_no_fpu.
3954         (movtf_insn_hq_sp64): Delete.
3955         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
3956         Rename into movtf_insn_sp64_hq.
3957         (movtf_insn_sp64): Delete.
3958         (movtf_insn_vis_sp64): Use register_or_zero_operand.
3959         Rename into movtf_insn_sp64.
3960         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
3961         Rename into movtf_insn_sp64_no_fpu.
3962
3963 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
3964
3965         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
3966         gcc_assert and gcc_unreachable as appropriate.
3967         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
3968         xstormy16_output_cbranch_si, xstormy16_split_move,
3969         xstormy16_initial_elimination_offset,
3970         xstormy16_encode_section_info, xstormy16_print_operand_address,
3971         xstormy16_expand_call, xstormy16_expand_arith,
3972         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
3973
3974 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
3975
3976         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
3977         const_copies to VEC(tree,heap)*.
3978         (new_elim_graph, delete_elim_graph, elim_graph_size,
3979         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
3980         instead of VARRAY.
3981
3982 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
3983
3984         PR other/21052
3985         * doc/extend.texi (Type Attributes): Correct example syntax.
3986
3987 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
3988
3989         PR c/21160
3990         * doc/invoke.texi (-Wuninitialized): Update documentation.
3991
3992 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
3993
3994         * arm.c (const_ok_for_arm): Use a faster algorithm.
3995
3996 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
3997
3998         PR target/21477
3999         * config/rs6000/rs6000.md (add_op2): New.
4000         (add<mode>3): Use it.
4001
4002 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
4003
4004         * arm.c (arm_gen_constant): Add new heuristic for generating
4005         constant integers that can be expressed as the difference of two
4006         valid immediates.
4007
4008 2005-05-09  Roger Sayle  <roger@eyesopen.com>
4009
4010         * c-tree.h (parser_build_unary_op): New prototype.
4011         * c-typeck.c (parser_build_unary_op): New function to construct
4012         a unary operation in the C parser.
4013         * c-parser.c (c_parser_unary_expression):  Use the new function
4014         parser_build_unary_op when appropriate.
4015
4016 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
4017
4018         PR 18655
4019         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
4020         before outputting DWARF_FRAME_RETURN_COLUMN.
4021
4022 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4023
4024         * config/s390/s390.c: (s390_branch_condition_mask,
4025         s390_branch_condition_mnemonic, s390_extra_constraint_str,
4026         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
4027         legitimize_pic_address, s390_emit_tls_call_insn,
4028         legitimize_tls_address, legitimize_tls_address,
4029         s390_expand_addcc, print_shift_count_operand, print_operand,
4030         addr_generation_dependency_p, annotate_constant_pool_refs,
4031         s390_split_branches, find_constant_pool_ref,
4032         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
4033         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
4034         s390_output_pool_entry, s390_function_value,
4035         s390_call_saved_register_used, s390_emit_call): Replace
4036         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
4037         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
4038         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
4039         get_some_local_dynamic_name, s390_function_arg_size,
4040         s390_function_arg_advance, s390_function_arg,
4041         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
4042         default case by gcc_unreachable.
4043         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
4044         conditional abort by gcc_assert.
4045         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
4046         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
4047
4048 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4049
4050         * config/s390/s390.c: (s390_decompose_address,
4051         tls_symbolic_operand, legitimate_pic_operand_p,
4052         legitimate_constant_p, legitimate_reload_constant_p,
4053         s390_expand_plus_operand, legitimate_address_p,
4054         legitimate_la_operand_p, ): Remove 'register' from signature.
4055         (symbolic_reference_mentioned_p,
4056         tls_symbolic_reference_mentioned_p): Remove 'register' from local
4057         variable declarations.
4058         (legitimize_address): Remove 'register' from
4059         signature and local variable declarations.
4060
4061 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4062
4063         * config/s390/s390-protos.h: (s390_match_ccmode,
4064         s390_match_ccmode_set, reg_used_in_mem_p,
4065         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
4066         legitimate_la_operand_p, preferred_la_operand_p,
4067         s390_short_displacement, addr_generation_dependency_p,
4068         legitimate_reload_constant_p, legitimate_address_p): Change return type
4069         into 'bool'.
4070         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
4071         * config/s390/s390.c: (s390_match_ccmode,
4072         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
4073         legitimate_reload_constant_p): Change return type into 'bool'.
4074         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
4075         Likewise.  Additionally adapted comment.
4076         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
4077         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
4078         (s390_decompose_address): Change the type of the internal flags
4079         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
4080         (struct s390_address): Change type of "pointer" into bool.
4081         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
4082         Adapt calls for 's390_tm_ccmode' to the new signature.
4083
4084 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4085
4086         * config/s390/s390.c: (s390_match_ccmode_set,
4087         s390_branch_condition_mnemonic, s390_short_displacement,
4088         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
4089         print_shift_count_operand, get_some_local_dynamic_name,
4090         get_some_local_dynamic_name_1, reg_used_in_mem_p,
4091         addr_generation_dependency_p, s390_split_branches,
4092         annotate_constant_pool_refs, find_constant_pool_ref,
4093         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
4094         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
4095         s390_register_info, s390_frame_info, s390_init_frame_layout,
4096         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
4097         restore_gprs, s390_function_arg_size, s390_function_arg_float,
4098         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
4099         s390_encode_section_info, s390_cannot_force_const_mem,
4100         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
4101         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
4102         s390_adjust_priority, s390_issue_rate,
4103         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
4104         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
4105         s390_build_builtin_va_list, s390_gimplify_va_arg,
4106         s390_function_ok_for_sibcall, s390_call_saved_register_used,
4107         s390_pass_by_reference, s390_fixed_condition_code_regs,
4108         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
4109         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
4110         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
4111         s390_add_pool_insn, s390_find_pool, s390_add_constant,
4112         s390_find_constant, s390_add_execute, s390_find_execute,
4113         s390_execute_label, s390_execute_target, s390_dump_pool,
4114         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
4115         Move target macro definitions to the end of the file.  Move several
4116         functions within the file to assure correct compiling.
4117
4118 2005-05-09  Steven Bosscher  <stevenb@suse.de>
4119
4120         * calls.c (purge_reg_equiv_notes): Remove, fold into...
4121         (fixup_tail_calls): ...here.  Only look at insns between the
4122         start of the function and the FUNCTION_BEG insn note.
4123
4124         * gcse.c (one_cprop_pass): Fix typos in dumps.
4125
4126         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
4127
4128 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4129
4130         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
4131         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
4132         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
4133         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
4134         CC_REGNUM)'.
4135         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
4136         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
4137         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
4138         REG_SC)'.
4139
4140 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4141
4142         * config/s390/s390.md: ("gf") New mode attribute.
4143         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
4144         "fixuns_truncsfsi2"): Merge.
4145         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
4146         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
4147         "fix_truncsfsi2_ieee"): Merge.
4148
4149 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4150
4151         * config/s390/s390.md: ("FPR") New mode macro.
4152         ("de", "dee"): New mode attributes.
4153         ("cmpdf", "cmpsf"): Merge.
4154         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
4155         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
4156         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
4157         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
4158         ("floatdidf2", "floatdisf2"): Merge.
4159         ("adddf3", "addsf3"): Merge.
4160         ("*adddf3", "*addsf3"): Merge.
4161         ("*adddf3_cc", "*addsf3_cc"): Merge.
4162         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
4163         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
4164         ("subdf3", "subsf3"): Merge.
4165         ("*subdf3", "*subsf3"): Merge.
4166         ("*subdf3_cc", "*subsf3_cc"): Merge.
4167         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
4168         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
4169         ("muldf3", "mulsf3"): Merge.
4170         ("*muldf3", "*mulsf3" "): Merge.
4171         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
4172         ("*fmadddf", "*fmaddsf"): Merge.
4173         ("*fmsubdf", "*fmsubsf"): Merge.
4174         ("divdf3", "divsf3"): Merge.
4175         ("*divdf3", "*divsf3"): Merge.
4176         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
4177         ("negdf2", "negsf2"): Merge.
4178         ("*negdf2_cc", "*negsf2_cc"): Merge.
4179         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
4180         ("*negdf2", "*negsf2"): Merge.
4181         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
4182         ("absdf2", "abssf2"): Merge.
4183         ("*absdf2_cc", "*abssf2_cc"): Merge.
4184         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
4185         ("*absdf2", "*abssf2"): Merge.
4186         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
4187         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
4188         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
4189         ("*negabsdf2", "*negabssf2"): Merge.
4190         ("sqrtdf2", "sqrtsf2"): Merge.
4191
4192 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4193
4194         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
4195         attribute names.
4196         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
4197         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
4198         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
4199         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
4200         attribute names.
4201         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
4202         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
4203         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
4204         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
4205         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
4206         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
4207         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
4208         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
4209         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
4210         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
4211         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
4212         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
4213         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
4214         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
4215         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
4216         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
4217         'type' value.
4218         ("*divsf3"): Additionally rename second pattern to
4219         "*divsf3_ibm".
4220         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
4221         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
4222         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
4223         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
4224         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
4225         'type values' and rename 'type' value.
4226         ("*addsf3"): Additionally rename second pattern to
4227         "*addsf3_ibm".
4228
4229 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4230
4231         * config/s390/s390.md: ("SHIFT"): New mode macro.
4232         ("lr", "shift"): New mode attributes.
4233         ("ashldi3", "lshrdi3"): Merge.
4234         ("*ashldi3_31", "*lshrdi3"_31): Merge.
4235         ("*ashldi3_64", "*lshrdi3"_64): Merge.
4236         ("ashlsi3", "lshrsi3"): Merge.
4237
4238 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4239
4240         * config/s390/s390.md: ("DSI", "SCOND"): New mode
4241         macros.
4242         ("E", "g"): New mode attributes.
4243         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
4244         ("*adddi3_alc", "*addsi3_alc"): Merge.
4245         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
4246         ("*subdi3_slb", "*subsi3_slb"): Merge.
4247         ("adddicc", "addsicc"): Merge.
4248         ("*sconddi", "*scondsi"): Merge.
4249         ("*sconddi_neg", "*scondsi_neg"): Merge.
4250         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
4251         ("negdi2", "negsi2"): Extract expander pattern from
4252         "negsi2" and merge with "negdi2".
4253         ("*negdi2"): Merge with instruction pattern of "negsi2".
4254         ("*negdi2_cc", "*negsi2_cc"): Merge.
4255         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
4256         ("rotldi3", "rotlsi3"): Merge.
4257
4258 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4259
4260         * config/s390/s390.md: ("hc"): New mode attribute.
4261         ("extendhidi2", "extendqidi2"): Merge.
4262         ("*extendhidi2", "*extendqidi2"): Merge.
4263         ("extendhisi2", "extendqisi2"): Merge.
4264         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
4265         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
4266         Merged 2 define_split.
4267         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
4268         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
4269
4270 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4271
4272         * config/s390/s390.md: ("COMPARE"): New mode macro.
4273         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
4274         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
4275         "bungt", "bunle", "bunge", "bltgt"): Merge.
4276
4277 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4278
4279         * config/s390/s390.md: ("INT"): New mode macro.
4280         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
4281         Merge.
4282
4283 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4284
4285         * config/s390/s390.md: ("GPR", "P"): New mode macros.
4286         ("cmpdi", "cmpsi"): Merge.
4287         ("strlendi", "strlensi"): Merge.
4288         ("*strlendi", "*strlensi"): Merge.
4289         ("movmemdi", "movmemsi"): Merge.
4290         ("clrmemdi", "clrmemsi"): Merge.
4291
4292 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
4293
4294         * config/s390/s390.md: ("HQI"): New mode macro.
4295         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
4296         ("*tmhi_full", "*tmqi_full"): Merge.
4297         ("*tsthiCCT", "*tstqiCCT"): Merge.
4298         ("*tsthi", "*tstqi"): Merge.
4299         ("*tsthi_cconly", "tstqi_cconly"): Merge.
4300         ("*sethighhisi", "*sethighqisi"): Merge.
4301
4302 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
4303
4304         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
4305         config/alpha/unicosmk.h, config/arc/arc.md,
4306         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
4307         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
4308         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
4309         config/arm/semi.h, config/arm/uclinux-elf.h,
4310         config/arm/wince-pe.h, config/fr30/fr30.c,
4311         config/rs6000/altivec.h: Update copyright.
4312
4313 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
4314
4315         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
4316         gcc_assert and gcc_unreachable as appropriate.
4317         (pdp11_output_function_epilogue, output_move_double,
4318         output_move_quad, print_operand_address, output_jump,
4319         output_addr_const_pdp11): Likewise.
4320         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
4321         ASM_OUTPUT_ALIGN): Likewise.
4322         * config/pdp11/pdp11.md: Likewise.
4323         (extendhisi2, subhi3, subqi3): Likewise.
4324
4325 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
4326
4327         PR middle-end/21237
4328         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
4329         to NE_EXPR case.
4330
4331 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
4332
4333         * config/ia64/ia64.c: Fix a comment typo.
4334
4335 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
4336
4337         PR target/21397
4338         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
4339         (arm_override_options): Use them instead of manifest constants.  Don't
4340         allow -march to override the -mtune setting.
4341
4342 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
4343
4344         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
4345         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
4346         (function_arg_advance, function_arg, save_restore_insns,
4347         iq2000_expand_prologue, iq2000_output_conditional_branch,
4348         expand_one_builtin, print_operand):
4349         * config/iq2000/iq2000.md (tablejump): Likewise.
4350
4351 2005-05-09  David Ung  <davidu@mips.com>
4352
4353         * config/mips/mips.h (processor_type): Add names for the 24K.
4354         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
4355         processor family.
4356         * config/mips/mips.md (cnv_mode): New attribute for recording the
4357         conversion types of float convert insns.
4358         (cpu): Add 24k and 24kx.
4359         (include): Include 24k.md file.
4360         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
4361         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
4362         (floatdisf2): Setup cnv_mode.
4363         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
4364         setup cnv_mode.
4365         * config/mips/24k.md: New file, contains 24k DFA pipeline
4366         description.
4367
4368 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
4369
4370         * config/sh/sh.c (print_operand_address): Use gcc_assert and
4371         gcc_unreachable as appropriate.
4372         (print_operand, prepare_move_operands, prepare_scc_operands,
4373         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
4374         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
4375         fixup_mova, gen_far_branch, sh_reorg, split_branches,
4376         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
4377         sh_set_return_address, sh_setup_incoming_varargs,
4378         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
4379         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
4380         check_use_sfunc_addr): Likewise.
4381         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
4382         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
4383         * config/sh/symbian.c (sh_symbian_mark_dllexport,
4384         sh_symbian_mark_dllimport): Likewise.
4385         * config/sh/sh.md: Likewise.
4386         (movdicc, call_pop, call_value_pop, casesi_worker_1,
4387         casesi_worker_2, casesi_shift_media, casesi_load_media,
4388         return_media): Likewise.
4389
4390 2005-05-08  Roger Sayle  <roger@eyesopen.com>
4391
4392         PR inline-asm/8788
4393         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
4394         operands.
4395
4396 2005-05-08  Richard Henderson  <rth@redhat.com>
4397
4398         * config/alpha/alpha.c (adjust_address): Fix typo last change.
4399
4400 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
4401
4402         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
4403         and -1 can happen in reg_renumber when no hard register is assigned.
4404
4405 2005-05-08  Steven Bosscher  <stevenb@suse.de>
4406             Kazu Hirata  <kazu@cs.umass.edu>
4407
4408         PR tree-optimization/14841, tree-optimization/15838
4409         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
4410         (evaluate_stmt): Call it.
4411
4412 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
4413
4414         * config/ia64/ia64.c (ia64_override_options): Don't set
4415         ia64_flag_var_tracking and clear flag_var_tracking here...
4416         (ia64_file_start): ... but here.
4417
4418 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
4419
4420         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
4421         and gcc_unreachable as appropriate.
4422         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
4423         m68hc11_gen_highpart, print_operand, print_operand_address,
4424         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
4425         m68hc11_gen_movhi): Likewise.
4426         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
4427         * config/m68hc11/m68hc11.md: Reword comment.
4428
4429 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
4430
4431         PR target/21281
4432         * config/m68hc11/predicates.md (splitable_operand): An immediate is
4433         allowed.
4434
4435 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
4436
4437         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
4438         the 68HC12 address indirect addressing mode as it is not supported by
4439         bset and bclr.
4440         * config/m68hc11/m68hc11-protos.h
4441         (m68hc11_valid_addressing_p): Declare.
4442         (m68hc11_add_mode): Declare.
4443         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
4444         register_indirect_p and export it.
4445         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
4446         instruction so that it is part of the good BB.
4447         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
4448         addressing with movw.
4449         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
4450         68HC12.
4451         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
4452         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
4453         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
4454         for 68HC11.
4455         ("*movhi_68hc12"): Handle movhi_const0.
4456         ("*subhi3", "subqi3"): Use general_operand for operand 1.
4457         ("*subhi3_zext"): Likewise.
4458
4459 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
4460
4461         PR target/19051
4462         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
4463         operand 1 and fix constraints.
4464         ("mulqihi3"): Use general_operand for operand 2.
4465
4466 2005-05-08  Julian Brown  <julian@codesourcery.com>
4467             H.J. Lu  <hongjiu.lu@intel.com>
4468             Paul Brook  <paul@codesourcery.com>
4469
4470         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
4471         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
4472         20050308/2.16.0 or newer for comdat group.
4473         * configure: Regenerated.
4474         * config.in: Regenerated.
4475         * varasm.c (default_function_rodata_section): Put .rodata section in
4476         COMDAT group when necessary.
4477         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
4478         HAVE_COMDAT_GROUP.
4479         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
4480         available.
4481
4482 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
4483
4484         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
4485         instead of VARRAY.
4486         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
4487         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
4488         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
4489         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
4490
4491 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
4492
4493         PR target/16925
4494         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
4495         64-bit constants on 64-bit hosts.
4496         (m68hc11_split_logical): Simplify.
4497         (m68hc11_split_move): Likewise.
4498
4499 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
4500             Paolo Bonzini  <bonzini@gnu.org>
4501
4502         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
4503         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
4504         * configure.ac (enable_checking): Fix typos in runtime_checking.
4505         (ENABLE_RUNTIME_CHECKING): Mark as target template.
4506         (xm_file): Prepend auto-host.h
4507         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
4508         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
4509         tconfig.h.
4510         * crtstuff.c: Do not include auto-host.h.
4511         (IN_LIBGCC2): Do not define.
4512         * gcov-io.h: Include tconfig.h, not auto-host.h.
4513         * libgcc2.c: Do not include auto-host.h.
4514         (abort): Do not undefine.
4515         * libgcov.c: Remove unneeded comment about config.h.
4516         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
4517         * config.in, configure: Regenerated.
4518
4519 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
4520             Falk Hueffner  <falk@debian.org>
4521
4522         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
4523         and gcc_unreachable as appropriate.
4524         (get_aligned_mem, get_unaligned_address,
4525         alpha_emit_set_long_const, alpha_emit_conditional_branch,
4526         alpha_emit_setcc, alpha_emit_conditional_move,
4527         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
4528         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
4529         alpha_expand_unaligned_load, alpha_expand_block_move,
4530         alpha_expand_zap_mask, get_trap_mode_suffix,
4531         get_round_mode_suffix, get_some_local_dynamic_name,
4532         print_operand_address, function_arg, alpha_return_in_memory,
4533         function_value, alpha_expand_builtin,
4534         alpha_initial_elimination_offset, alpha_expand_epilogue,
4535         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
4536         alphaev5_next_group, alpha_align_insns,
4537         unicosmk_initial_elimination_offset, unicosmk_unique_section,
4538         unicosmk_ssib_name): Likewise.
4539         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
4540         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
4541         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
4542         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
4543         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
4544         * config/alpha/alpha.md (*divmodsi_internal_er,
4545         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
4546         call_nt, call_umk, call_vms, call_value, sibcall_value,
4547         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
4548         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
4549         * config/alpha/predicates.md (input_operand): Likewise.
4550
4551 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
4552
4553         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
4554         gcc_unreachable, as appropriate.
4555         (frv_function_prologue, frv_alloc_temp_reg,
4556         frv_initial_elimination_offset, frv_expand_block_move,
4557         frv_expand_block_clear, frv_print_operand_jump_hint,
4558         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
4559         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
4560         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
4561         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
4562         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
4563         frv_in_small_data_p, frv_asm_out_constructor,
4564         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
4565         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
4566         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
4567         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
4568         sibcall_value, casesi): Likewise.
4569
4570         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
4571         gcc_unreachable as appropriate.
4572         (print_operand_address, mn10300_print_reg_list, expand_prologue,
4573         expand_epilogue, notice_update_cc, initial_offset,
4574         mn10300_address_cost_1): Likewise.
4575         * config/mn10300/mn10300.md: Likewise.
4576         (absdf2, abssf2, negdf2, negsf2): Likewise.
4577
4578 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
4579
4580         PR target/21416
4581         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
4582         comparisons.
4583         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
4584         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
4585         including sunge_<mode> and sungt_<mode>.
4586
4587 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
4588
4589         * integrate.h (get_hard_reg_initial_val): Change type of register
4590         parameter from int to unsigned int.
4591         (has_hard_reg_initial_val): Likewise.
4592         * integrate.c (get_hard_reg_initial_val): Likewise.
4593         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
4594
4595 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
4596
4597         * except.c (eh_status): Change the type of ttype_data to
4598         VEC(tree,gc)*.
4599         (add_ttypes_entry, assign_filter_values,
4600         output_function_exception_table): Use VEC instead of VARRAY.
4601
4602 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
4603
4604         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
4605
4606 2005-05-07  Paul Brook  <paul@codesourcery.com>
4607
4608         * Makefile.in: Fix dependencies.
4609         (GCOV_IO_H, VARRAY_H): Set.
4610
4611 2005-05-07  Anthony Green  <green@redhat.com>
4612
4613         PR bootstrap/21403
4614         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
4615         x$STMP_FIXPROTO test.
4616         * configure: Rebuilt.
4617
4618 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
4619
4620         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
4621         inappropriate feature test macros if flag_iso.
4622
4623 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
4624
4625         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
4626
4627 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
4628
4629         PR target/21441
4630         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
4631         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
4632         Handle moved operand being in special register.
4633         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
4634         presumed working insn.
4635         (mover2side): Add FIXME.
4636
4637 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
4638
4639         * integrate.c (get_func_hard_reg_initial_val): Delete.
4640         (has_func_hard_reg_initial_val): Delete.
4641         (get_hard_reg_initial_val): Inline the old implementation of
4642         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
4643         instead of has_func_hard_reg_initial_val to test for an existing
4644         pseudo.  Only create an rtx if a new initial value entry is needed.
4645         (has_hard_reg_initial_val): Scan the initial value list directly.
4646         Don't create an rtx.
4647
4648 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
4649
4650         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
4651         from extra_options.
4652         * config.in (HAVE_AS_POPCNTB): New.
4653         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
4654         (HAVE_AS_POPCNTB): New.
4655         * configure: Regenerated.
4656         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
4657         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
4658         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
4659         and rs6000_sched_costly_dep.
4660         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
4661         (TARGET_XL_COMPAT): Delete.
4662         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
4663         (popcount<mode>2): New.
4664         (popcntb<mode>2): New.
4665         * config/rs6000/rs6000.opt (mpopcntb): New.
4666
4667         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
4668         if variable name exists.
4669
4670 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
4671
4672         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
4673
4674 2005-05-07  Richard Henderson  <rth@redhat.com>
4675
4676         PR target/21412
4677         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
4678         with constant offsets.
4679
4680 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
4681
4682         * config/v850/v850.c (print_operand): Use gcc_assert and
4683         gcc_unreachable, as appropriate.
4684         (print_operand_address, v850_handle_data_area_attribute,
4685         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
4686         v850_insert_attributes, construct_prepare_instruction): Likewise.
4687         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
4688         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
4689
4690 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
4691
4692         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
4693         config/rs6000/rs6000.h: Fix comment typos.
4694
4695 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
4696
4697         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
4698         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
4699         (mips_scalar_mode_supported_p): Delete.
4700
4701 2005-05-06  Eric Christopher  <echristo@redhat.com>
4702
4703         * config/mips/mips.opt: Remove -mint64 option.
4704         * config/mips/mips.c (override_options): Remove -mint64
4705         handling.
4706         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
4707         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
4708         64-bit integer handling.
4709         * doc/invoke.texi (Option Summary): Remove -mint64 for
4710         mips.
4711
4712 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
4713
4714         PR tree-optimization/19401
4715         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
4716         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
4717         (estimated_unrolled_size): New function.
4718         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
4719         tree_unroll_loops_completely): Always unroll loops if the code size
4720         does not increase.
4721         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
4722         loops should be unrolled completely.
4723         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
4724
4725 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
4726
4727         PR rtl-optimization/21254
4728         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
4729         assumptions for loops that otherwise do not roll.
4730         (find_simple_exit): Prefer # of iterations that is guaranteed
4731         not to be infinite.
4732         * loop-unroll.c (decide_peel_once_rolling,
4733         decide_peel_completely): Check whether the loop is infinite.
4734
4735 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
4736
4737         * config/rs6000/sysv4.opt: Fix typo.
4738
4739 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
4740             Jakub Jelinek  <jakub@redhat.com>
4741
4742         PR target/21329
4743         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
4744         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
4745         Don't use rep; movs{l,q} if the repetition count is really small,
4746         instead use a sequence of movs{l,q} instructions.
4747
4748 2005-05-06  Jeff Law  <law@redhat.com>
4749
4750         PR tree-optimization/21380
4751         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
4752         thread through a block with no preds.
4753
4754 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
4755
4756         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
4757         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
4758         add_call_read_ops): Use VEC instead of VARRAY.
4759
4760 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
4761
4762         * config/mcore/mcore.c (mcore_print_operand_address): Use
4763         gcc_assert and gcc_unreachable as appropriate.
4764         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
4765         mcore_output_andn, output_inline_const, mcore_output_move,
4766         mcore_output_movedouble, mcore_expand_block_move,
4767         layout_mcore_frame, mcore_initial_elimination_offset,
4768         mcore_expand_prolog, mcore_mark_dllexport,
4769         mcore_mark_dllimport): Likewise.
4770         * config/mcore/mcore.h (switch_to_section): Likewise.
4771         * config/mcore/mcore.md: Likewise.
4772
4773 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
4774
4775         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
4776         TARGET_PROFILE_KERNEL.
4777
4778         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
4779         TARGET_PROFILE_KERNEL use.
4780
4781 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
4782
4783         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
4784         and gcc_unreachable, as appropriate.
4785         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
4786         m32r_expand_prologue, m32r_output_function_epilogue,
4787         m32r_legitimize_pic_address, m32r_print_operand_address,
4788         emit_cond_move, m32r_function_symbol,
4789         m32r_output_block_move): Likewise.
4790         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
4791         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
4792         *rev_zero_branch_insn): Likewise.
4793
4794 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
4795
4796         PR c++/20961
4797         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
4798         if both NEWDECL and OLDDECL are already weak.
4799
4800 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
4801
4802         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
4803
4804 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
4805             Kaz Kojima  <kkojima@gcc.gnu.org>
4806
4807         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
4808         and plus_constant.
4809
4810 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
4811             David Edelsohn  <edelsohn@gnu.org>
4812
4813         * config.gcc: Add .opt magic for the rs6000 ports.
4814
4815         * doc/invoke.texi: Document -mabi= option properly.  Document
4816         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
4817         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
4818         -misel=.
4819
4820         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
4821         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
4822         TARGET_XL_COMPAT.
4823
4824         * config/rs6000/aix.opt: New.
4825         * config/rs6000/aix41.opt: New.
4826         * config/rs6000/aix64.opt: New.
4827         * config/rs6000/darwin.opt: New.
4828         * config/rs6000/linux64.opt: New.
4829         * config/rs6000/rs6000.opt: New.
4830         * config/rs6000/sysv4.opt: New.
4831
4832         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
4833         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
4834         SUBTARGET_SWITCHES.
4835         Define TARGET_USES_SYSV4_OPT.
4836         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
4837         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
4838         TARGET_USES_AIX64_OPT.
4839         * config/rs6000/aix51.h: Same.
4840         * config/rs6000/aix52.h: Same.
4841         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
4842         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
4843         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
4844         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
4845         * config/rs6000/linux64.h: Use
4846         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
4847
4848         * config/rs6000/rs6000.c: Remove definitions of
4849         rs6000_sched_restricted_insns_priority,
4850         rs6000_long_double_size_string, rs6000_altivec_vrsave,
4851         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
4852         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
4853         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
4854         rs6000_alignment_string.  Define rs6000_explicit_options.
4855         (rs6000_parse_abi_options): Remove.
4856         (rs6000_parse_alignment_option): Remove.
4857         (rs6000_parse_float_gprs_option): Remove.
4858         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
4859         TARGET_DEFAULT_TARGET_FLAGS.
4860         (rs6000_override_options): Revamp to use new .opt machinery.
4861
4862         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
4863         of new .opt machinery.  Remove target_flags.  Redefine
4864         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
4865         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
4866         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
4867         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
4868         rs6000_longcall_switch, rs6000_default_long_calls,
4869         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
4870         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
4871         TARGET_ALTIVEC_VRSAVE.
4872
4873 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
4874
4875         * config.gcc (hppa1.1-*-rtems*): Remove.
4876         * config/pa/rtems.h: Remove.
4877
4878 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
4879
4880         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
4881         Exclude roe/603e multilib variants.
4882
4883 2005-05-04  Denis Chertykov  <denisc@overta.ru>
4884
4885         PR target/21284
4886         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
4887         for output.
4888
4889 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
4890
4891         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
4892         arm/pe.opt to $extra_options.
4893         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
4894         (target_float_abi_name, target_float_switch, target_abi_name)
4895         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
4896         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
4897         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
4898         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
4899         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
4900         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
4901         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
4902         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
4903         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
4904         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
4905         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
4906         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
4907         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
4908         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
4909         (arm_pic_register_string): Delete.
4910         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
4911         TARGET_TPCS_FRAME.
4912         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
4913         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
4914         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
4915         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
4916         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
4917         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
4918         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
4919         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
4920         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
4921         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
4922         (SUBTARGET_SWITCHES): Delete.
4923         * config/arm/arm.c (target_float_switch): Delete.
4924         (arm_cpu_select): Moved from config/arm/arm.h.
4925         (target_fpu_name, target_fpe_name, target_float_abi_name)
4926         (target_abi_name, structure_size_string, arm_pic_register_string)
4927         (arm_select): Make static.
4928         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4929         (arm_handle_option): New function.
4930         (arm_override_options): Update target_flags checks for new mask names.
4931         Remove target_float_switch code.
4932         (arm_expand_prologue, thumb_expand_prologue): Check
4933         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
4934         * config/arm/arm.opt, config/arm/pe.opt: New files.
4935
4936 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
4937
4938         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
4939         gcc_unreachable as appropriate.
4940         (arc_double_limm_p, arc_setup_incoming_varargs,
4941         arc_compute_function_type, arc_output_function_prologue,
4942         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
4943         output_shift, arc_print_operand, arc_print_operand_address,
4944         arc_final_prescan_insn): Likewise.
4945         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
4946
4947 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
4948
4949         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
4950         comparing Pmode.
4951         (SDI): New.
4952         (cmp): Delete.
4953         (wd): New.
4954         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
4955         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
4956         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
4957         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
4958         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
4959         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
4960         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
4961         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
4962
4963 2005-05-05  Paul Brook  <paul@codesourcery.com>
4964
4965         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
4966         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
4967         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
4968         and tree-data-ref.h with *_H variables.
4969
4970 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
4971
4972         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
4973
4974 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
4975
4976         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
4977
4978 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
4979
4980         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
4981
4982 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
4983
4984         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
4985         setting of vrsave register for current function after
4986         call to save_world is emitted.
4987
4988 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
4989
4990         * config/mmix/predicates.md: New file.
4991         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
4992         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
4993         (mmix_foldable_comparison_operator, mmix_comparison_operator)
4994         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
4995         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
4996         Don't define.
4997         * config/mmix/mmix.md: Include predicates.md.
4998         ("call", "call_value"): Force address to register if it isn't a
4999         mmix_symbolic_or_address_operand.
5000
5001 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
5002
5003         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
5004         the flags are of appropriate types.
5005         (num_ssa_operands): Generalize using the generic interface.
5006         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
5007         iterator.
5008
5009 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
5010
5011         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
5012         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
5013
5014 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
5015
5016         * tree-outof-ssa.c (edge_leader, stmt_list,
5017         analyze_edges_for_bb): Use VEC instead of VARRAY.
5018         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
5019         (perform_edge_inserts): Call init_analayze_edges_for_bb and
5020         fini_analayze_edges_for_bb.
5021
5022 2005-05-04  James E Wilson  <wilson@specifixinc.com>
5023
5024         PR driver/21112
5025         * gcc.c (process_command): In the second argv scan loop, ignore
5026         Xassembler and Xpreprocessor, along with their argument.
5027
5028 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
5029
5030         * tree-flow-inline.h, tree-ssa-operands.c,
5031         tree-ssa-operands.h, tree-ssa-opfinalize.h:
5032         Likewise. tree-vn.c: Fix comment typos.
5033         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
5034
5035 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
5036
5037         * doc/tm.texi (Target Hooks): Document
5038         TARGET_RESOLVE_OVERLOADED_BUILTIN.
5039
5040 2005-05-04  Paul Brook  <paul@codesourcery.com>
5041
5042         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
5043
5044 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
5045
5046         * dwarf2out.c (incomplete_types, retry_incomplete_types,
5047         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
5048         of VARRAY.
5049
5050         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
5051         get_expansion, expand_var_during_unrolling,
5052         insert_var_expansion_initialization,
5053         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
5054         instead of VARRAY.
5055
5056         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
5057         update_stmt.
5058
5059 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
5060
5061         PR middle-end/15618
5062         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
5063         the same as INTEGER_TYPE.
5064         (fold_binary): Fold "bool_var != 0" to bool_var.
5065         Fold "bool_var == 1" to bool_var.
5066
5067 2004-05-03  Richard Henderson  <rth@redhat.com>
5068
5069         PR middle-end/21318
5070         * function.c (instantiate_virtual_regs_in_insn): Use the mode
5071         from recog_data instead of insn_data.
5072
5073 2005-05-03  DJ Delorie  <dj@redhat.com>
5074
5075         * common.opt (fdiagnostics-show-option): No variable is needed.
5076         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
5077         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
5078         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
5079         Save and restore original message format.  Use flag in context
5080         instead of global.
5081         (warning): Don't test for enabled warnings here.
5082         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
5083         here.
5084
5085 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
5086
5087         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
5088         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
5089         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
5090         * aclocal.m4: Don't include accross.m4.
5091         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
5092         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
5093         * configure, config.in: Regenerate.
5094
5095 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
5096
5097         PR middle-end/21265
5098         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
5099         (clear_storage): Add argument.
5100         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
5101         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
5102         tailcall.
5103         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
5104         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
5105         (store_expr, store_constructor): Adjust callers.
5106         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
5107         to emit_block_move if CALL_EXPR_TAILCALL (exp).
5108         (expand_builtin_memmove): Add ORIG_EXP argument, copy
5109         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
5110         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
5111         with EXP.  Pass EXP to expand_builtin_memmove.
5112         (expand_builtin_memset): Add ORIG_EXP argument, pass
5113         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
5114         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
5115         Pass EXP to expand_builtin_memset.
5116         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
5117         the new CALL_EXPR.
5118         (expand_builtin_strncmp): Likewise.
5119         (expand_builtin_printf): Replace ARGLIST argument with EXP.
5120         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
5121         (expand_builtin_fprintf): Likewise.
5122         (expand_builtin): Adjust calls to
5123         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
5124
5125         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
5126         item in V4SF mode.
5127
5128         PR rtl-optimization/21239
5129         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
5130
5131 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
5132
5133         * tree-flow.h (tree_ann_common_d): Move aux to ...
5134         (stmt_ann_d): ... here.
5135         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
5136         move_computations_stmt, schedule_sm): Update references to
5137         aux.
5138         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
5139
5140         * tree-cfg.c (remove_bb): Remove a redundant call to
5141         set_bb_for_stmt.
5142         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
5143         Likewise.
5144
5145 2005-05-03  Richard Henderson  <rth@redhat.com>
5146
5147         * config/rs6000/rs6000.c: Remove conflict markers.
5148
5149         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
5150
5151 2005-05-03  James E Wilson  <wilson@specifixinc.com>
5152
5153         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
5154
5155 2005-05-03  DJ Delorie  <dj@redhat.com>
5156
5157         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
5158         decide if the warning will be printed.
5159         * calls.c (expand_call): Likewise.
5160         * function.c (init-function_start): Likewise.
5161
5162         * common.opt (-fdiagnostics-show-option): New.
5163         * opts.c (option_enabled): Accept the option index instead of a
5164         pointer to the option descriptor.
5165         * opts.h (option_enabled): Likewise.
5166         * toplev.c (print_switch_values): Pass option index, not option
5167         descriptor.
5168         * diagnostic.h (diagnostic_info): Add option_index.
5169         * diagnostic.c: Include opts.h.
5170         (diagnostic_set_info): Initialize option_index.
5171         (diagnostic_report_diagnostic): Amend option name if appropriate.
5172         (warning): Check to see if the specified warning is enabled.
5173         Store option index.
5174         * doc/invoke.texi (-fdiagnostics-show-options): Document.
5175
5176 2005-05-03  Richard Henderson  <rth@redhat.com>
5177
5178         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
5179         SPEC_OR_GEN_REGS definitions.
5180
5181 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
5182
5183         PR target/16888
5184         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
5185         for unavailable registers.
5186
5187 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
5188
5189         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
5190
5191         * cfglayout.c (block_locators_blocks,
5192         insn_locators_initialize, insn_scope): Use VEC instead of
5193         VARRAY.
5194
5195         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
5196         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
5197         VARRAY.
5198
5199 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
5200
5201         * config/sparc/predicates.md (const_compl_high_operand): New.
5202         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
5203         gen_safe_HIGH64.
5204         (sparc_emit_set_const64_quick1): Adjust for above change.
5205         (sparc_emit_set_const64_quick2): Likewise.
5206         (sparc_emit_set_const64_longway): Likewise.
5207         (sparc_emit_set_const64): Likewise.
5208         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
5209         movdi_const64_special): Delete.
5210         (logical constant splitters): Use const_compl_high_operand.
5211
5212 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
5213
5214         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
5215         rather than STRIP_NOPS.
5216
5217 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
5218
5219         PR rtl-optimization/21330
5220         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
5221         returning non-NULL.
5222         (unswitch_single_loop): Clear cinsn when retrying.
5223
5224         PR target/21297
5225         * config/i386/i386.c (legitimize_address): When canonicalizing
5226         ASHIFT into MULT, multiply by 1 << shift_count instead of
5227         1 << log2 (shift_count).
5228
5229 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
5230
5231         * lambda-code.c (gcc_loop_to_lambda_loop,
5232         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
5233         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
5234         generic operand interface.
5235         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
5236         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
5237         generic operand interface.
5238         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
5239         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
5240         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
5241         num_imm_uses): Use ssa_use_operand_t.
5242         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
5243         get_v_must_def_ops): Delete.
5244         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
5245         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
5246         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
5247         get_v_must_def_kill_ptr): Delete.
5248         (delink_stmt_imm_use): Move and use new operand interface.
5249         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
5250         op_iter_next_tree): Use new operand implementation.
5251         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
5252         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
5253         type check.
5254         (op_iter_next_mustdef, op_iter_next_maydef,
5255         op_iter_next_must_and_may_def): Delete. Replace with...
5256         (op_iter_next_maymustdef): New.  Combine must and may next operations.
5257         (op_iter_init_maydef, op_iter_init_mustdef,
5258         op_iter_init_must_and_may_def): Use new interface.
5259         (single_ssa_tree_operand ): New.  Process single operands only as trees.
5260         (single_ssa_use_operand): New.  Process single operands only as uses.
5261         (single_ssa_def_operand): New.  Process single operands only as defs.
5262         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
5263         specified types.
5264         (num_ssa_operands): New.  Count the number of specified operands.
5265         (compare_ssa_operands_equal): New.  Compare two statements' operands.
5266         (single_phi_def): New.  Return true if PHI has one def of the specified
5267         operand type.
5268         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
5269         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
5270         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
5271         (struct stmt_ann_d): Operands field no longer require GTY().
5272         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
5273         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
5274         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
5275         dump_replaceable_exprs, rewrite_trees): Use generic interface.
5276         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
5277         Use use_operand_p instead of ssa_imm_use_t *.
5278         * tree-pretty-print.c (dump_vops): check if operands are active before
5279         dumping virtual operands.
5280         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
5281         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
5282         (ccp_fold): Use new interface.
5283         (ccp_visit_stmt): Remove unused variables and code.
5284         (convert_to_gimple_builtin): Insert statements before calling
5285         mark_new_vars_to_rename.
5286         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
5287         (copy_prop_visit_cond_stmt): Use generic interface.
5288         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
5289         annotation in table.
5290         (thread_across_edge): Use generic interface.
5291         (initialize_hash_element): Initialzie with stmt, not annotation.
5292         (eliminate_redundant_computations): Use generic interface.
5293         (record_equivalences_from_stmt): Pass stmt, not annotation.
5294         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
5295         interface.
5296         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
5297         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
5298         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
5299         generic operand interface.
5300         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
5301         interface.
5302         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
5303         Interface.
5304         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
5305         (build_defs, build_uses, build_v_may_defs, build_vuses,
5306         build_v_must_defs): Change type to struct opbuild_list_d.
5307         (ops_active): New.  Operands active boolean.
5308         (operand_memory, operand_memory_index): New.  Operand memory managers.
5309         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
5310         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
5311         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
5312         Change from functions to static variable list heads.
5313         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
5314         (opbuild_initialize_real): New.  Initialize a virtual build list.
5315         (opbuild_free): New.  Free a build list.
5316         (opbuild_num_elems): New.  Number of items in a list.
5317         (opbuild_append_real): New.  Add a real (tree *) operand.
5318         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
5319         (opbuild_first): New.  Return first element index in a list.
5320         (opbuild_next): New.  Return next element in a list.
5321         (opbuild_elem_real): New.  Return real element.
5322         (opbuild_elem_virtual): New.  Return virtual element.
5323         (opbuild_elem_uid): New.  Return UID of virtual element.
5324         (opbuild_clear): New.  Reset an operand list.
5325         (opbuild_remove_elem): New.  Remove an element form a list.
5326         (ssa_operands_active): New.  Return true if operand cache is active.
5327         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
5328         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
5329         (correct_use_link): Use use_operand_p.
5330         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
5331         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
5332         (cleanup_v_may_defs): Use new implmentation.
5333         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
5334         implementation.
5335         (append_def, append_use, append_v_may_def, append_vuse,
5336         append_v_must_def): Call opbuild_append routine instead of using varray.
5337         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
5338         global parse_old_ops variable.
5339         (free_ssa_operands): New implementation.
5340         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
5341         (copy_virtual_operands): Move. New generic implementation.
5342         (create_ssa_artficial_load_stmt): Move. New implementation.
5343         (swap_tree_operands): Update for new implementation.
5344         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
5345         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
5346         rather than a varray.
5347         (verify_imm_links): Use use_operand_p.
5348         (dump_immediate_uses_for): If the immediate use variable is a virtual
5349         variable, show the virtual ops in the stmt.
5350         * tree-ssa-operands.h (def_operand_p): No longer a structure.
5351         (NULL_DEF_OPERAND_P): Now a #define.
5352         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
5353         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
5354         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
5355         mustdef_optype_d): New.  Use Linked list representation.
5356         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
5357         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
5358         (struct stmt_operands_d): Change to new pointers that are not GTY.
5359         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
5360         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
5361         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
5362         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
5363         SET_V_MUST_DEF_KILL): Delete.
5364         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
5365         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
5366         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
5367         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
5368         (enum ssa_op_iter_type): Operand iterator typechecking values.
5369         (struct ssa_operand_iterator_d): Use linked lists of operands.
5370         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
5371         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
5372         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
5373         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
5374         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
5375         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
5376         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
5377         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
5378         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
5379         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
5380         alloc_vuse, and alloc_mustdef.
5381         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
5382         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
5383         and finalize_ssa_v_must_def_ops.
5384         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
5385         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
5386         stmt around.
5387         (compute_avail): Use generic iterator interface.
5388         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
5389         (stmt_makes_single_load, stmt_makes_single_store): Use
5390         ZERO_SSA_OPERANDS.
5391         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
5392         (statement_sink_location): Use generic interface.
5393         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
5394         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
5395         reset the immediate use link nodes.
5396         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
5397         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
5398         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
5399         (eliminate_tail_call): Use generic operand interface.
5400         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
5401         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
5402         interface.
5403         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
5404         interface.
5405         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
5406         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
5407         vuse_optype.
5408         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
5409         Use statement pointer instead of vuse_optype.  Use generic interface.
5410         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
5411         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
5412         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
5413         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
5414         * doc/tree-ssa.texi: Update documentation for operand interface.
5415
5416 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
5417
5418         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
5419         gcc_unreachable as appropriate.
5420         (machopic_function_base_name, machopic_indirect_data_reference,
5421         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
5422         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
5423         * config/rs6000/altivec.md (*mov<mode>_internal,
5424         build_vector_mask_for_load): Likewise.
5425         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
5426         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
5427         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
5428         * config/rs6000/predicates.md (easy_fp_constant,
5429         logical_operand): Likewise.
5430         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
5431         compute_save_world_info, rs6000_emit_prologue,
5432         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
5433         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
5434         directly.
5435
5436 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
5437
5438         PR middle-end/21282
5439         * convert.c (convert_to_integer): Convert ceil and floor in
5440         c99 mode only.
5441
5442 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
5443
5444         PR target/20813
5445         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
5446         define_insn_and_split.  Split only when memory operand is
5447         offsettable.  Use adjust_address rather than plus_constant.
5448         (floatunssidf2_internal): Likewise.
5449         (fix_truncdfsi2_internal): Split only when memory operand is
5450         offsettable.  Use adjust_address rather than plus_constant.
5451         (fix_trunctfsi2_internal): Likewise.
5452         (floatsidf2_internal): Likewise.
5453
5454 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
5455
5456         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
5457         (set_value_range_to_null): Likewise.
5458         (set_value_range_to_varying): New function.  Use it in all
5459         call sites that used to call set_value_range (vr, VR_VARYING, ...).
5460         (extract_range_from_assert): If the integral type has a
5461         super-type, and LIMIT is not within MIN and MAX values of that
5462         type, set the resulting range to VR_VARYING.
5463
5464 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
5465
5466         * config/mmix/mmix.opt: New file.
5467         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
5468         (mmix_cc1_ignored_option): Don't declare.
5469         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
5470         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
5471         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
5472         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
5473         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
5474         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
5475         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
5476         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
5477         Don't define.
5478         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
5479         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
5480         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
5481
5482 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
5483
5484         PR c/15698
5485         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
5486         * c-decl.c (current_function_prototype_built_in,
5487         current_function_prototype_arg_types): New.
5488         (merge_decls): Keep source location of prototype followed by
5489         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
5490         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
5491         (start_function): Always set current_function_prototype_locus,
5492         current_function_prototype_built_in and
5493         current_function_prototype_arg_types.  Check for external
5494         prototype whether or not visible for external function and set
5495         current_function_prototype_arg_types accordingly.
5496         (store_parm_decls_oldstyle): Use
5497         current_function_prototype_arg_types for checking old-style
5498         definition against prototype.  Give warnings only if
5499         current_function_prototype_built_in).
5500
5501 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
5502
5503         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
5504         (ggc_alloc_zone_stat): Don't define.
5505         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
5506         ggc_alloc_zone_pass_stat.
5507         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
5508         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
5509         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
5510
5511 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
5512
5513         * calls.c (expand_call): Handle current_function_pretend_args_size
5514         when checking for sibcalls.
5515
5516 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5517
5518         PR tree-optimization/21294
5519         * tree-vrp.c (vrp_expr_computes_nonzero): New.
5520         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
5521
5522 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
5523
5524         PR 19985
5525         * gcov-io.h: Declare gcov external functions hidden.
5526
5527 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5528
5529         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
5530         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
5531         Use VEC instead of VARRAY.
5532         (equiv_free): New.
5533
5534         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
5535         out common code.
5536
5537 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
5538
5539         * c-common.c (resolve_overloaded_builtin): Forward to target
5540         hook for BUILT_IN_MD built-ins.
5541         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
5542         for all types of built-in.
5543         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
5544         in the definition of the target hooks struct.
5545         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
5546         * config/rs6000/altivec.h: Rewritten.
5547         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
5548         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
5549         rs6000_builtin_type, rs6000_builtin_type_compatible,
5550         altivec_overloaded_builtins, rs6000_builtin_type,
5551         rs6000_builtin_type_compatible): New.
5552         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
5553         New.
5554         (def_builtin): Turn into a function.  Check for duplicates and store
5555         the builtin into rs6000_builtin_decls.
5556         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
5557         bdesc_1arg): Add overloaded builtins.
5558         (altivec_expand_builtin): Check for unresolved overloaded builtins,
5559         do not support ALTIVEC_COMPILETIME_ERROR.
5560         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
5561         nodes to represent front-end types.
5562         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
5563         with opaque arguments and/or return values.
5564         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
5565         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
5566         (rs6000_builtin_type_index): New.
5567         (is_ev64_opaque_type): Rename to...
5568         (rs6000_is_opaque_type): ... this.
5569         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
5570         target hook.
5571
5572 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5573
5574         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
5575         instead of VARRAY.
5576
5577 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
5578             Bernd Schmidt  <bernd.schmidt@analog.com>
5579
5580         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
5581         print_address_operand, print_operand, legitimize_pic_address,
5582         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
5583         output_pop_multiple): Use gcc_assert or gcc_unreachable as
5584         appropriate.
5585         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
5586
5587 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
5588
5589         * doc/passes.texi: Document vectorization pass.
5590
5591 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
5592
5593         * tree-scalar-evolution.c (get_exit_conditions_rec,
5594         select_loops_exit_conditions,
5595         number_of_iterations_for_all_loops,
5596         analyze_scalar_evolution_for_all_loop_phi_nodes,
5597         scev_analysis): Use VEC instead of VARRAY.
5598
5599 2005-05-02  Michael Matz  <matz@suse.de>
5600
5601         PR c++/19542
5602         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
5603         (warn_strict_null_sentinel): Define.
5604         (check_function_sentinel): Check for null_node as valid sentinel too.
5605         * c-common.h (c_tree_index): Added CTI_NULL.
5606         (null_node) Define global_tree[CTI_NULL].
5607         (warn_strict_null_sentinel): Declare.
5608         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
5609         * c.opt: (Wstrict-null-sentinel): New C++ option.
5610         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
5611
5612 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5613
5614         * gimplify.c (gimplify_compound_lval): Use VEC instead of
5615         VARRAY.
5616
5617         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
5618
5619         * dwarf2out.c (decl_scope_table, push_decl_scope,
5620         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
5621         instead of VARRAY.
5622
5623 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
5624
5625         PR C++/14391
5626         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
5627         if !flag_weak.
5628         * doc/cpp.texi (__DEPRECATED): Document.
5629         (__EXCEPTIONS): Likewise.
5630         (__GXX_WEAK__): Likewise.
5631
5632         * function.c (INVOKE__main): Do not define.
5633         (expand_main_function): Check HAS_INIT_SECTION when determining
5634         whether or not to call __main.
5635
5636 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
5637
5638         * tree-ssa-loop-ivopts.c: Fix a comment typo.
5639
5640 2005-01-05  Paul Brook  <paul@codesourcery.com>
5641
5642         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
5643         (INITIALIZE_TRAMPOLINE): Use it.
5644         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
5645         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
5646         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
5647
5648 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
5649
5650         * doc/install.texi (Specific): Omit dots in the @anchors names
5651         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
5652         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
5653
5654 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
5655
5656         PR tree-optimization/18316
5657         PR tree-optimization/19126
5658         * tree.c (build_int_cst_type): Avoid shift by size of type.
5659         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
5660         argument.
5661         * tree-scalar-evolution.h (simple_iv): Declaration changed.
5662         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
5663         field.
5664         (dump_cand): Dump depends_on information.
5665         (determine_biv_step): Add argument to simple_iv call.
5666         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
5667         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
5668         constant.
5669         (add_candidate_1): Record depends_on for candidates.
5670         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
5671         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
5672         Handle ivs with nonconstant step.
5673         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
5674         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
5675         (create_new_iv): Unshare the step before passing it to create_iv.
5676         (free_loop_data): Free cand->depends_on.
5677         (build_addr_strip_iref): New function.
5678         (find_interesting_uses_address): Use build_addr_strip_iref.
5679         (strip_offset_1): Split the recursive part from strip_offset.
5680         Strip constant offset component_refs and array_refs.
5681         (strip_offset): Split the recursive part to strip_offset_1.
5682         (add_address_candidates): Removed.
5683         (add_derived_ivs_candidates): Do not use add_address_candidates.
5684         (add_iv_value_candidates): Add candidates with stripped constant
5685         offset.  Consider all candidates with initial value 0 important.
5686         (struct affine_tree_combination): New.
5687         (aff_combination_const, aff_combination_elt, aff_combination_scale,
5688         aff_combination_add_elt, aff_combination_add,
5689         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
5690         fold_affine_sum): New functions.
5691         (get_computation_at): Use fold_affine_sum.
5692         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
5693         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
5694         to simple_iv call.
5695
5696 2005-04-30  Michael Matz  <matz@suse.de>
5697
5698         * config/i386/i386.md (movmemsi): Also active when
5699         TARGET_INLINE_ALL_STRINGOPS.
5700
5701 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
5702
5703         PR bootstrap/20633
5704         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
5705
5706 2005-04-30  Paul Brook  <paul@codesourcery.com>
5707
5708         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
5709         thumb mode.
5710         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
5711         * config/arm/ieee754-sf.S: Ditto.
5712         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
5713         (FUNC_ALIAS): Use .thumb_set for thumb routines.
5714
5715 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5716
5717         * tree-ssanames.c: Fix a comment typo.
5718         * doc/options.texi: Fix a typo.
5719
5720 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
5721
5722         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
5723         gcc_unreachable as appropriate.
5724         (split_adds_subs, cond_string, print_operand,
5725         h8300_initial_elimination_offset, h8300_classify_operand,
5726         h8300_unary_length, h8300_short_immediate_length,
5727         h8300_bitfield_length, h8300_binary_length,
5728         h8300_insn_length_from_table, compute_mov_length, output_plussi,
5729         compute_plussi_length, compute_plussi_cc, output_logical_op,
5730         compute_logical_op_length, compute_logical_op_cc,
5731         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
5732         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
5733         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
5734         h8300_regs_ok_for_stm): Likewise.
5735         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
5736         monitor_prologue): Likewise.
5737
5738 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
5739
5740         * loop-invariant.c (invariants, create_new_invariant,
5741         get_inv_cost, best_gain_for_invariant,
5742         find_invariants_to_move, move_invariants,
5743         init_inv_motion_data, free_inv_motion_data): Use VEC instead
5744         of VARRAY.
5745
5746 2005-04-29  Richard Henderson  <rth@redhat.com>
5747
5748         * function.c (instantiate_decls): Remove valid_only argument.
5749         (instantiate_decls_1, instantiate_decl): Likewise.
5750         (instantiate_virtual_regs_1): Delete.
5751         (instantiate_virtual_regs_lossage): Delete.
5752         (instantiate_virtual_regs_in_rtx): New.
5753         (safe_insn_predicate): New.
5754         (instantiate_virtual_regs_in_insn): New.
5755         (instantiate_virtual_regs): Update to match all that.  Only run
5756         instantiate_decls once.
5757
5758 2005-04-29  Richard Henderson  <rth@redhat.com>
5759             Daniel Jacobowitz  <dan@codesourcery.com>
5760
5761         * gengtype.c (write_func_for_structure): Split out ...
5762         (output_type_enum): ... new function.  Fix thinko accessing
5763         TYPE_PARAM_STRUCT data.
5764
5765 2005-04-29  Tom Tromey  <tromey@redhat.com>
5766
5767         * tree.c (build_block): Removed unused 'tags' argument.
5768         * tree.h (build_block): Removed argument.
5769
5770 2005-04-29  Michael Matz  <matz@suse.de>
5771
5772         PR rtl-optimization/21144
5773         * postreload.c (reload_cse_move2add): Check for VOIDmode.
5774
5775 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
5776
5777         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
5778         flag_reorder_blocks.
5779
5780 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
5781
5782         PR tree-optimization/21030
5783         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
5784         ranges where VR->MAX is smaller than VR->MIN.
5785
5786 2005-04-29  Devang Patel  <dpatel@apple.com>
5787
5788         PR tree-optimization/21272
5789         PR tree-optimization/21266
5790         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
5791
5792 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5793
5794         * tree-flow-inline.h: Fix a comment typo.
5795         * doc/tree-ssa.texi: Fix a typo.
5796
5797         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
5798
5799 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
5800
5801         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
5802         gcc_unreachable as appropriate.
5803         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
5804         fr30_print_operand, fr30_move_double): Likewise.
5805         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
5806
5807 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
5808
5809         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
5810         definition has already been provided.
5811         (ARM_EABI_DTORS_SECTION_OP): Likewise.
5812         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
5813         (ARM_EABI_DTORS_SECTION_OP): Likewise.
5814
5815 2005-04-29  Jim Tison  <jtison@us.ibm.com>
5816
5817         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
5818         trace hooks calls to improve performance.
5819
5820 2005-04-29  Julian Brown  <julian@codesourcery.com>
5821             Mark Mitchell  <mark@codesourcery.com>
5822             Paul Brook  <paul@codesourcery.com>
5823
5824         * crtstuff.c: Handle targets that use .init_array.
5825         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
5826         that INVOKE__main is set correctly.
5827         (expand_main_function): Test INVOKE__main.
5828         * libgcc2.c: Do not define __main when using .init_array.
5829         * config/arm/arm.c (arm_elf_asm_constructor): New function.
5830         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
5831         libgcc version.
5832         (DTORS_SECTION_ASM_OP): Likewise.
5833         (CTOR_LIST_BEGIN): Define specially when in libgcc.
5834         (CTOR_LIST_END): Likewise.
5835         (DTOR_LIST_BEGIN): Likewise.
5836         (DTOR_LIST_END): Likewise.
5837         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
5838         (FINI_SECTION_ASM_OP): Likewise.
5839         (INIT_ARRAY_SECTION_ASM_OP): Define.
5840         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
5841         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
5842         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
5843         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
5844         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
5845
5846 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
5847
5848         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
5849         gcc_assert and gcc_unreachable as appropriate.
5850         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
5851         const_int_cost, output_move_const_into_data_reg,
5852         output_move_qimode, output_move_double, find_addr_reg,
5853         print_operand, print_operand_address): Likewise.
5854         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
5855         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
5856         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
5857         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
5858         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
5859         conditional_trap): Likewise.
5860         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
5861
5862 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
5863
5864         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
5865         gcc_unreachable as appropriate.
5866         (gen_conditional_move, xtensa_split_operand_pair,
5867         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
5868         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
5869         xtensa_copy_incoming_a7, xtensa_output_literal,
5870         xtensa_output_literal, xtensa_output_literal): Likewise.
5871         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
5872         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
5873         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
5874         movsicc_internal1, movsfcc_internal0,
5875         movsfcc_internal1): Likewise.
5876
5877 2005-04-28  James E Wilson  <wilson@specifixinc.com>
5878
5879         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
5880         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
5881
5882 2005-04-28  DJ Delorie  <dj@redhat.com>
5883
5884         * opt-functions.awk (var_set): Emit proper initializer for
5885         non-target bitfields.
5886
5887 2005-04-28  Devang Patel  <dpatel@apple.com>
5888
5889         * dbxout.c (have_used_extensions): Remove.
5890         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
5891         have_used_extensions.
5892
5893 2005-04-28  James E Wilson  <wilson@specifixinc.com>
5894
5895         * doc/install.texi: Update -enable-languages info.  Correct path to
5896         html docs.
5897
5898 2005-04-28  DJ Delorie  <dj@redhat.com>
5899
5900         * optc-gen.awk (END): Make sure no variable is defined more
5901         than once.
5902         * opth-gen.awk (END): Allocate bits on a per-variable basis.
5903         Allow for bitfield variables other than target_flags.
5904         * doc/options.text (Mask): Document that you may specify a
5905         variable other than target_flags.
5906
5907 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
5908
5909         PR rtl-optimization/18877
5910         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
5911         number in val.start.
5912
5913 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
5914
5915         PR target/20813
5916         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
5917         MASK_PPC_GFXOPT.
5918         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
5919         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
5920         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
5921
5922 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
5923
5924         * arm.c (legitimize_pic_address): Fix sense of assertion test for
5925         creating pseudos when the base offset is too large.
5926
5927 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
5928
5929         * global.c (earlyclobber_regclass): Change the type to
5930         VEC(int,heap).
5931         (check_earlyclobber): Update uses of earlyclobber_regclass.
5932         (mark_reg_use_for_earlyclobber): Likewise.
5933         (calculate_local_reg_bb_info): Allocate and free
5934         earlyclobber_regclass using the VEC API.
5935
5936 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
5937
5938         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
5939         assert.
5940
5941 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
5942
5943         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
5944         (*targetm.foo).
5945
5946         * config.gcc: Obsolete c4x-* and tic4x-*.
5947
5948         * tree.h (edge_def): Remove.
5949
5950         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
5951         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
5952         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
5953         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
5954         where appropriate.
5955
5956         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
5957         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
5958         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
5959         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
5960         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
5961         machmode.def, mips-tfile.c, params.c, pretty-print.c,
5962         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
5963         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
5964         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
5965         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
5966         config/i386/cygming.h, config/i386/djgpp.h,
5967         config/i386/lynx.h, config/i386/netware.c,
5968         config/i386/winnt.c, config/ia64/ia64-c.c,
5969         config/iq2000/iq2000.c, config/m32r/little.h,
5970         config/m68k/m68k-protos.h, config/m68k/m68k.h,
5971         config/m68k/m68k.md, config/mcore/mcore.c,
5972         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
5973         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
5974         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
5975         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
5976         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
5977         config/pdp11/pdp11.h, config/rs6000/darwin.h,
5978         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
5979         config/s390/2064.md, config/s390/2084.md,
5980         config/s390/s390-modes.def, config/s390/s390-protos.h,
5981         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
5982         config/stormy16/stormy16.c, config/vax/vax-protos.h,
5983         config/vax/vax.c, config/vax/vax.h,
5984         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
5985         copyright.
5986
5987 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
5988
5989         * c-typeck.c (build_compound_expr): Correct logic in last change.
5990
5991 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
5992
5993         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
5994         parameters.  Replace conditional move code with assert checking for
5995         ar.lc.  Delete obsolete comments.
5996         (set_src_needs_barrier): Delete cond parameter, and code using it.
5997         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
5998         assert checking for PR_REGS.  Fix calls to update_set_flags and
5999         set_src_needs_barrier.
6000         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
6001         callers.  Rewrite explanatory comment before the function.
6002         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
6003         Fix all callers.
6004
6005 2005-04-27  Mike Stump  <mrs@apple.com>
6006
6007         * doc/cpp.texi: gcc now implements universal character names.
6008
6009 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
6010
6011         PR c/21159
6012         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
6013         being a compound expression whose right-hand side is cast to void.
6014
6015 2005-04-27  Caroline Tice  <ctice@apple.com>
6016
6017         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6018         Remove targetm.have_named_sections test.
6019         (fix_edges_for_rarely_executed_code): Likewise.
6020         (insert_section_boundary_note): Likewise.
6021         (reorder_basic_blocks): Check partitioning flag before calling
6022         verify_hot_cold_block_grouping.
6023         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
6024         the function struct rather than global variables.
6025         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
6026         (COLD_END_LABEL): Likewise
6027         (cold_text_section_label): New static global variable.
6028         (cold_end_label): Likewise.
6029         (dwarf2out_switch_text_section): Get hot/cold section labels from
6030         the function struct rather than global variables; test to make sure
6031         cfun is defined.
6032         (output_aranges): Use cold_text_section_label and cold_end_label;
6033         check partitioning flag before putting out delta.
6034         (output_ranges): Remove incorrect code attempting to use
6035         hot/cold labels.
6036         (output_line_info): Get cold section label from function struct; test
6037         to make sure cfun is defined.
6038         (add_location_or_const_value_attribute): Likewise.
6039         (dwarf2out_var_location): Likewise.
6040         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
6041         write out cold_text_section_label if partition flag is set.
6042         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
6043         * function.h (struct function): Add new fields to point to hot/cold
6044         section labels: hot_section_label, cold_section_label,
6045         hot_section_end_label and cold_section_end_label; also add new field
6046         for cold text section name, unlikely_text_section_name.
6047         * opts.c (decode_options): Turn off partitioning flag if
6048         !targetm.have_named_sections.
6049         * output.h (hot_section_label): Remove.
6050         (hot_section_end_label): Remove.
6051         (cold_section_end_label): Remove.
6052         (unlikely_section_label): Remove.
6053         (unlikely_text_section_name): Remove.
6054         * passes.c (rest_of_handle_final):  Remove extra blank line.
6055         * varasm.c (unlikely_section_label): Remove.
6056         (hot_section_label): Remove.
6057         (hot_section_end_label): Remove.
6058         (cold_section_end_label): Remove.
6059         (unlikely_text_section_name):  Remove.
6060         (initialize_cold_section_name): Modify to call
6061         targetm.strip_name_encoding; to store cold section name in current
6062         function struct, if it exists; and to only use the decl_section_name
6063         if flag_named_sections is true.
6064         (unlikely_text_section): Modify to get section name out of current
6065         function struct, if there is one; otherwise build it from
6066         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
6067         (in_unlikely_text_section): Likewise.
6068         (named_section): Modify to get/put cold section name in current function
6069         struct, if there is one.
6070         (function_section):  Change 'bool unlikely' to 'int reloc'; check
6071         targetm.have_named_sections before calling named_section.
6072         (current_function_section): Likewise.
6073         (assemble_start_function): Modify to get/put unlikely_text_section_name
6074         in current function struct; modify to get hot/cold section labels
6075         from function struct; initialize labels using
6076         ASM_GENERATE_INTERNAL_LABEL;
6077         test partitioning flag before writing out hot section label.
6078         (assemble_end_function): Test partitioning flag before writing out
6079         hot/cold section labels.
6080         (default_section_type_flags_1):  Get cold text section name from
6081         function struct if there is one; Set flags correctly for
6082         cold text section if there is not a current function struct.
6083
6084 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
6085
6086         * tree-ssa-propagate.c (set_rhs): Revert last change.
6087
6088 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
6089
6090         * explow.c (convert_memory_address): Add gcc_assert.
6091
6092 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
6093
6094         * configure.ac: Check for ld --sysroot support.
6095         * gcc.c: Document %R specifier for specs.
6096         (SYSROOT_SPEC): New macro.
6097         (sysroot_spec): New variable.
6098         (static_specs): Add sysroot_spec.
6099         (main): Pass the sysroot spec to the linker if appropriate.
6100         * configure: Regenerated.
6101         * config.in: Likewise.
6102
6103 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
6104
6105         * fold-const.c (fold_binary): Use build_fold_addr_expr
6106         for address calculation and INDIRECT_REF handling.
6107
6108 2005-04-27  Andrew Haley  <aph@redhat.com>
6109
6110         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
6111
6112 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6113
6114         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
6115         pointer when thumb backtracing is on.
6116
6117         * config/fp-bit.c (abort): Revert change.
6118
6119 2005-04-27  Ian Lance Taylor  <ian@airs.com>
6120
6121         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
6122
6123 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
6124
6125         * tree-ssa-dce.c: Fix a comment typo.
6126
6127 2005-04-27  David S. Miller  <davem@davemloft.net>
6128
6129         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
6130         Kill setjmpless_size.  current_function_calls_setjmp is completely
6131         computed when we are called, so just use the optimized size value
6132         instead of using REG_SAVE_AREA notes.
6133         (optimize_save_area_alloca): Delete....
6134         * rtl.h (optimize_save_area_alloca): Likewise...
6135         * passes.c (rest_of_compilation): and don't call it any more.
6136         * reg-notes.def (SAVE_AREA): Delete.
6137
6138 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6139
6140         * config/fp-bit.c (abort): Add noreturn attribute.
6141
6142         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
6143         gcc_unreachable as appropriate.
6144         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
6145         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
6146         ASM_OUTPUT_REG_POP): Likewise.
6147
6148 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
6149
6150         * tree-complex.c (expand_vector_operations_1): Do not build
6151         VIEW_CONVERT_EXPR's for the lhs.
6152
6153 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6154
6155         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
6156         unnecessary noncanonical RTL handling.
6157         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
6158         gcc_assert and gcc_unreachable.
6159
6160         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
6161         gcc_unreachable as appropriate.
6162         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
6163         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
6164         use_return_insn, const_ok_for_op, arm_gen_constant,
6165         arm_canonicalize_comparison, legitimize_pic_address,
6166         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
6167         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
6168         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
6169         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
6170         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
6171         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
6172         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
6173         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
6174         output_call, output_mov_long_double_fpa_from_arm,
6175         output_mov_long_double_arm_from_fpa,
6176         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
6177         output_move_double, arithmetic_instr, shift_op, int_log2,
6178         output_return_instruction, arm_output_function_prologue,
6179         arm_output_epilogue, arm_output_function_epilogue,
6180         emit_multi_reg_push, arm_get_frame_offsets,
6181         arm_compute_initial_elimination_offset, arm_expand_prologue,
6182         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
6183         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
6184         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
6185         thumb_compute_initial_elimination_offset,
6186         thumb_output_function_prologue, thumb_load_double_from_address,
6187         thumb_output_move_mem_multiple, thumb_reload_out_hi,
6188         arm_emit_vector_const, arm_dbx_register_number): Likewise.
6189         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
6190         * config/arm/arm.md (thumb_extendhisi2,
6191         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
6192         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
6193         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
6194         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
6195         * config/arm/cirrus.md (*cirrus_arm_movdi,
6196         *cirrus_movdf_hard_insn): Likewise.
6197         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
6198
6199 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
6200
6201         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
6202         (num_ssa_names): Use VEC_length.
6203         (ssa_names): Use VEC_index.
6204         * tree-ssanames.c (ssa_names): Change the type to
6205         VEC(tree,gc).
6206         (init_ssanames, fini_ssa_names, make_ssanames,
6207         release_ssa_name): Update uses of ssa_names.
6208
6209         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
6210         Use fold_buildN instead of fold (buildN (...)).
6211
6212 2005-04-27  Devang Patel <dpatel@apple.com>
6213
6214         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
6215
6216 2005-04-27  Matt Thomas <matt@3am-software.com>
6217             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
6218
6219         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
6220         (vax_output_mi_thunk): Ditto.
6221         (vax_notice_cc_update): Ditto.
6222         (INDEX_REGISTER_P): Add trailing \.
6223         (BASE_REGISTER_P): Add trailing \.
6224         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
6225
6226 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
6227
6228         * tree-ssa-propagate.c (set_rhs): Check operand of
6229         ADDR_EXPR for gimpliness, too.
6230
6231 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
6232
6233         * tree-ssa-pre.c: Fix a comment typo.
6234
6235 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
6236
6237         PR tree-optimization/21171
6238         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
6239         record address uses if the reference is volatile.
6240
6241 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
6242
6243         * tree-complex.c (expand_vector_operation): New, extracted from
6244         expand_vector_operations_1.
6245         (tree_vec_extract): Build a NOP_EXPR.
6246         (expand_vec_parallel): Do not care about returning the correct type.
6247         (expand_vector_operations_1): Call expand_vector_operation.
6248         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
6249
6250         * tree-complex.c (gate_expand_vector_operations): New.
6251         (pass_lower_vector_ssa): Use it.
6252         * tree-optimize.c (init_tree_optimization_passes): Include
6253         pass_lower_vector_ssa.
6254         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
6255         (vectorizable_operation): Use it.
6256         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
6257         integer modes for the vector type.
6258
6259         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
6260         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
6261         Do not cope with UNITS_PER_SIMD_WORD == 0.
6262         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
6263         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
6264         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
6265         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
6266         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
6267         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
6268         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
6269
6270         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
6271         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
6272         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
6273
6274         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
6275         (UNITS_PER_SIMD_WORD): New.
6276
6277 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
6278
6279         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
6280         gcc_unreachable as appropriate.
6281         (ia64_expand_load_address, ia64_expand_tls_address,
6282         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
6283         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
6284         next_scratch_gr_reg, ia64_initial_elimination_offset,
6285         ia64_expand_prologue, ia64_expand_epilogue,
6286         ia64_output_dwarf_dtprel, ia64_print_operand,
6287         ia64_register_move_cost, first_instruction, rws_access_regno,
6288         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
6289         ia64_sched_init, ia64_variable_issue,
6290         ia64_first_cycle_multipass_dfs_lookahead_guard,
6291         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
6292         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
6293         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
6294         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
6295         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
6296         * config/ia64/predicates.md (got_symbolic_operand,
6297         sdata_symbolic_operand): Likewise.
6298         * config/ia64/vect.md (vcondv2sf): Likewise.
6299
6300 2005-04-27  Matt Thomas <matt@3am-software.com>
6301
6302         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
6303         CONSTANT_ADDRESS_P in config/vax/vax.h
6304         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
6305         (INDEX_REGISTER_P): New.
6306         (BASE_REGISTER_P): New.
6307         (indirectable_constant_address_p): New.  Adapted from
6308         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
6309         (indirectable_address_p): New.  Adapted from
6310         INDIRECTABLE_ADDRESS_P in vax.h.
6311         (nonindexed_address_p): New.  Adapted from
6312         GO_IF_NONINDEXED_ADDRESS in vax.h.
6313         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
6314         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
6315         (legitimate_address_p): New.  Adapted from
6316         GO_IF_LEGITIMATE_ADDRESS in vax.h.
6317         (vax_mode_dependent_address_p): New.  Adapted from
6318         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
6319         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
6320         legitimate_constant_address_p.
6321         (CONSTANT_P): Use legitimate_constant_p.
6322         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
6323         (INDIRECTABLE_ADDRESS_P): Removed.
6324         (GO_IF_NONINDEXED_ADDRESS): Removed.
6325         (INDEX_TEMP_P): Removed.
6326         (GO_IF_REG_PLUS_INDEX): Removed.
6327         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
6328         definitions, depending on whether REG_OK_STRICT is defined.
6329         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
6330         Two definitions, depending on whether REG_OK_STRICT is defined.
6331         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
6332         added.
6333         (legitimate_constant_p): Prototype added.
6334         (legitimate_address_p): Prototype added.
6335         (vax_mode_dependent_address_p): Prototype added.
6336
6337 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
6338
6339         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
6340
6341 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
6342
6343         PR c/21213
6344         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
6345         transparent union.
6346
6347 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
6348
6349         PR c/20740
6350         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
6351         assertion failures, if __gcc_host_wide_int__ is not properly
6352         defined.
6353         (init_dynamic_diag_info): Give errors, not assertion failures, if
6354         location_t, tree or __gcc_host_wide_int__ are not properly
6355         defined.
6356
6357 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
6358
6359         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
6360         n_iv_uses, iv_use, n_iv_cands, iv_cand,
6361         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
6362         prepare_decl_rtl, free_loop_data,
6363         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
6364         VARRAY.
6365
6366         * tree.h (tree_phi_node): Add a comment about the order of PHI
6367         arguments.
6368
6369 2005-04-26  Paul Brook  <paul@codesourcery.com>
6370
6371         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
6372
6373 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
6374
6375         * config/mips.mips.c (mips_legitimize_tls_address): Use
6376         gcc_unreachable.
6377
6378         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
6379         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
6380         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
6381
6382         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
6383         'abort'.
6384
6385 2005-04-26  Jeff Law  <law@redhat.com>
6386
6387         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
6388         (op_iter_init_must_and_may_def): Likewise.
6389         (unmodifiable_var_p): Move to a later point in the file.
6390         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
6391         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
6392         (dse_record_phis): Directly check for virtual operands rather than
6393         using need_imm_uses_for.
6394         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
6395         store has multiple V_{MAY,MUST}_DEF operands.
6396
6397 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
6398
6399         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
6400         stmt.
6401
6402 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
6403
6404         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
6405         call to find_edge outside a loop to go through a PHI chain.
6406
6407 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
6408
6409         PR tree-optimization/17598
6410         * fold-const.c (fold_binary): Fold comparisons of addresses
6411         of COMPONENT_REFs which reference the same field to
6412         comparisons of the addresses of the base objects.
6413
6414 2005-04-26  Julian Brown  <julian@codesourcery.com>
6415
6416         * config/arm/arm.c (arm_return_in_msb): New function.
6417         (arm_must_pass_in_stack): New function.
6418         (TARGET_RETURN_IN_MSB): Define target hook.
6419         (TARGET_MUST_PASS_IN_STACK): Define target hook.
6420         (arm_function_value): Pad small aggregate return.
6421         (arm_pad_arg_upward): New function.
6422         (arm_pad_reg_upward): New function.
6423         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
6424         (FUNCTION_ARG_PADDING): Define macro.
6425         (BLOCK_REG_PADDING): Define macro.
6426         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
6427         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
6428         (arm_pad_reg_upward): Declare function.
6429
6430 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
6431
6432         * basic-block.h (ei_cond): New.
6433         (FOR_EACH_EDGE): Call ei_cond.
6434
6435         PR tree-optimization/21047
6436         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
6437         (fold): Don't handle ASSERT_EXPR.
6438
6439 2005-04-25  Roger Sayle  <roger@eyesopen.com>
6440
6441         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
6442         all writes to any stack register as a read/write dependency on
6443         FIRST_STACK_REG.
6444         (sched_analyze_2): Likewise, for reads from any stack register.
6445
6446 2005-04-25  Richard Henderson  <rth@redhat.com>
6447
6448         * final.c (output_addr_const): Revert 2005-04-09 change.
6449
6450 2005-04-25  Mike Stump  <mrs@apple.com>
6451
6452         * config/darwin.c (darwin_encode_section_info): Always set
6453         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
6454
6455 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6456
6457         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
6458         gensupport.c, protoize.c, toplev.c: Replace calls to
6459         `unlock_stream' with `unlock_std_streams'.
6460
6461 2005-04-25  Devang Patel <dpatel@apple.com>
6462
6463         * dbxout.c (dbxout_type): Emit attribute vector.
6464
6465 2005-04-05  Paul Brook  <paul@codesourcery.com>
6466
6467         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
6468         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
6469         * config/arm/arm.c (arm_cxx_atexit_name): New function.
6470         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
6471         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
6472         (register_dtor_fn): Likewise.
6473         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
6474
6475 2005-04-25  Ian Lance Taylor  <ian@airs.com>
6476
6477         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
6478         * c-common.h (EXPR_STMT_EXPR): Don't define.
6479         (c_common_stmt_codes): Don't define.
6480         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
6481         * c-gimplify.c (gimplify_expr_stmt): Remove.
6482         (c_gimplify_expr): Remove EXPR_STMT case.
6483         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
6484         to INIT_STATEMENT_CODES.
6485         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
6486
6487 2005-04-25  Jan Hubicka  <jh@suse.cz>
6488
6489         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
6490
6491         * except.c: Include diagnostic.h
6492         (dump_eh_tree, verify_eh_tree): New functions.
6493         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
6494         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
6495         (dump_function_to_file): dump eh tree.
6496         * tree-eh.c (mark_eh_edge): New function.
6497         (mark_eh_edge_found_error): New static variable.
6498         (verify_eh_edges): New function.
6499
6500 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
6501
6502         * tree-ssa-alias.c (fieldoff_t): Remove.
6503         (fieldoff_s): typedef the structure itself.  Create a vector of
6504         objects.
6505         (push_fields_onto_fieldstack): Return count of fields pushed.
6506         Remove peeling of first field.  Adjust.
6507         (fieldoff_compare): Adjust.
6508         (create_overlap_variables_for): Adjust.
6509
6510 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
6511
6512         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
6513
6514 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
6515
6516         PR bootstrap/21215
6517         * doc/install.texi: Document correct assembler and linker to use
6518         on i?86-*-solaris2.10.
6519
6520 2005-04-25  Steven Bosscher  <stevenb@suse.de>
6521
6522         Fix PR tree-optimization/21173
6523
6524         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
6525         Unshare expression we pass to force_gimple_operand.
6526
6527 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
6528             Stephen Clarke <stevec@superh.com>
6529             Roger Sayle <roger@eyesopen.com>
6530
6531         PR rtl-optimization/20413
6532         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
6533         VOIDmode for LABEL_REF.
6534         * final.c (shorten_branches): Likewise.
6535         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
6536         * loop.c (reg_dead_after_loop): Likewise.
6537         * varasm.c (decode_addr_const): Likewise.
6538         * doc/rtl.texi: Document mode requirement for LABEL_REF.
6539
6540 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
6541
6542         * config.gcc (avr-*-*): Remove redundant "case".
6543
6544 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
6545
6546         * tree-vect-analyze.c (vect_mark_relevant): Take
6547         VEC(tree,heap) instead of varray_type as an argument.
6548         (vect_mark_stmts_to_be_vectorized): Change the type of
6549         worklist to VEC(tree,heap).  Adjust uses of worklist.
6550
6551 2005-04-24  Devang Patel  <dpatel@apple.com>
6552
6553         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
6554
6555 2005-04-24  Ian Lance Taylor  <ian@airs.com>
6556
6557         * c-semantics.c (build_stmt): Remove test of specific tree codes
6558         for TREE_SIDE_EFFECTS handling.
6559
6560 2005-04-24  Per Bothner  <per@bothner.com>
6561
6562         * c-opts.c (finish_options):  Make the line-number of the <built-in>
6563         location 0, as assumed elsewhere, rather than 1.
6564
6565 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
6566
6567         * tree-ssa-uncprop.c (equiv_stack): Change the type o
6568         VEC(tree,heap).
6569         (tree_ssa_uncprop, uncprop_finalize_block,
6570         uncprop_initialize_block): Update uses of equiv_stack.
6571
6572 2005-04-24  Richard Henderson  <rth@redhat.com>
6573
6574         PR rtl-opt/21163
6575         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
6576         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
6577         constm1_rtx.
6578         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
6579         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
6580         <DIV, MOD>: Likewise.
6581
6582 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6583
6584         * collect2.c (main): Unlock the stdio streams.
6585         * gcc.c (main): Likewise.
6586         * gcov-dump.c (main): Likewise.
6587         * gcov.c (main): Likewise.
6588         * gen-protos.c (main): Likewise.
6589         * gensupport.c (init_md_reader_args_cb): Likewise.
6590         * protoize.c (main): Likewise.
6591         * toplev.c (general_init): Likewise.
6592
6593 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
6594
6595         PR middle-end/20991
6596         * cgraph.h (cgraph_local_info): Add vtable_method field.
6597         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
6598         and node is vtable_method, finalized and not reachable, don't do
6599         anything.
6600
6601 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
6602
6603         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
6604         COMPARISON_CLASS_P.
6605         * tree-ssa-pre.c (create_value_expr_from): Use
6606         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
6607         * tree-ssa-propagate.c (stmt_makes_single_load,
6608         stmt_makes_single_store): Use REFERENCE_CLASS_P.
6609         * tree-vect-transform.c (vect_is_simple_cond): Use
6610         COMPARISON_CLASS_P.
6611         * tree-vrp.c (extract_range_from_assert,
6612         build_assert_expr_for, fp_predicate, has_assert_expr): Use
6613         COMPARISON_CLASS_P.
6614
6615         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
6616         of tpa_to_clear to VEC(int,heap).  Update uses of
6617         tpa_to_clear.  Free tpa_to_clear at the end.
6618
6619 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
6620
6621         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
6622         function decl.
6623
6624 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
6625
6626         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
6627         and gcc_unreachable as appropriate.
6628         (num_insns_constant, output_vec_const_move,
6629         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
6630         rs6000_emit_set_const, rs6000_emit_move,
6631         spe_build_register_parallel, function_arg,
6632         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
6633         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
6634         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
6635         rs6000_common_init_builtins, expand_block_clear,
6636         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
6637         extract_ME, rs6000_get_some_local_dynamic_name,
6638         rs6000_output_function_entry, print_operand,
6639         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
6640         output_cbranch, output_e500_flip_gt_bit,
6641         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
6642         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
6643         compute_save_world_info, rs6000_stack_info,
6644         rs6000_emit_load_toc_table, rs6000_frame_related,
6645         spe_synthesize_frame_save, rs6000_emit_epilogue,
6646         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
6647         output_function_profiler, rs6000_trampoline_size,
6648         rs6000_initialize_trampoline, find_addr_reg,
6649         rs6000_machopic_legitimize_pic_address,
6650         rs6000_initial_elimination_offset,
6651         rs6000_dbx_register_number): Likewise.
6652         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
6653         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
6654         *movti_power, *movti_string, call, call_value, sibcall,
6655         sibcall_value): Likewise.
6656         * config/rs6000/spe.md (*movdf_e500_double,
6657         *movv2si_internal): Likewise.
6658         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
6659         from comment.
6660
6661 2005-04-24  Richard Henderson  <rth@redhat.com>
6662
6663         PR target/21101
6664         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
6665         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
6666         Deny modes smaller than 4 bytes.
6667         * config/i386/i386-protos.h: Update.
6668
6669 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
6670
6671         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
6672         Switch h8300-*-rtems* to ELF.
6673
6674 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
6675
6676         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
6677
6678 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
6679
6680         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
6681
6682 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
6683
6684         PR middle-end/21082
6685         * fold-const.c: Fold &a[i]-&a[j] to i-j.
6686
6687 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
6688
6689         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
6690         definitions of ssa names in condition.  Split recusive part to ...
6691         (tree_simplify_using_condition_1): New function.
6692         (expand_simple_operations): New function.
6693
6694 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
6695
6696         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
6697         (find_interesting_uses_cond): Do not use integer_zerop and
6698         integer_nonzerop to check for integer constants.
6699         (set_use_iv_cost): Record the value field.
6700         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
6701         determine_use_iv_cost_outer): Set the value field of the cost pair.
6702         (may_eliminate_iv): Do not return the comparison code.
6703         (iv_elimination_compare): New function.
6704         (determine_use_iv_cost_condition): Set the value field.  Record
6705         noneliminable invariants correctly.
6706         (rewrite_use_compare, rewrite_use_outer): Use the value field.
6707
6708 2005-04-23  DJ Delorie  <dj@redhat.com>
6709
6710         * diagnostic.c (warning): Accept parameter to classify warning option.
6711         (warning0): New, for when a pointer to an error() like function is needed.
6712         * errors.c (warning): Likewise.
6713         * errors.h (warning, warning0): Adjust prototypes.
6714         * toplev.h (warning, warning0): Likewise.
6715
6716         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
6717         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
6718         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
6719         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
6720         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
6721         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
6722         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
6723         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
6724
6725         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
6726         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
6727         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
6728         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
6729         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
6730         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
6731         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
6732         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
6733         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
6734         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
6735         config/rs6000/aix52.h, config/rs6000/darwin.h,
6736         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
6737         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
6738         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
6739         config/stormy16/stormy16.c, config/v850/v850-c.c,
6740         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
6741         callers.
6742
6743 2005-04-23  Richard Henderson  <rth@redhat.com>
6744
6745         PR rtl-opt/21102
6746         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
6747         performing some integral scalar simplifications.
6748
6749 2005-04-23  Richard Henderson  <rth@redhat.com>
6750
6751         PR target/21099
6752         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
6753         simplifying CONST_VECTOR.
6754
6755 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
6756
6757         * tree-ssa-live.c (live_worklist): Take a stack allocated on
6758         heap as an argument.  Update uses of stack.
6759         (calculate_live_on_entry): Allocate stack on heap.
6760
6761         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
6762         partition_link and tpa_nodes on heap.
6763
6764         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
6765         (mark_stmt_necessary, propagate_necessity,
6766         mark_really_necessary_kill_operand_phis): Update uses of
6767         worklist.
6768         (tree_dce_init): Allocate worklist using VEC_alloc.
6769         (tree_dce_done): Free worklist using VEC_free.
6770
6771 2005-04-23  Mike Stump  <mrs@apple.com>
6772
6773         * config/darwin.c (machopic_indirection_name): Don't use
6774         quotes needlessly.
6775         (darwin_emit_unwind_label): Use user_label_prefix instead of
6776         "_".
6777
6778 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
6779
6780         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
6781
6782 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
6783
6784         * config.gcc <cris-*>: Specify .opt files.
6785         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
6786         config/cris/linux.opt: New files.
6787         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
6788         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
6789         (TARGET_ELF): Override to 0.
6790         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
6791         -melinux-stacksize=N.
6792         * config/cris/cris.c: (cris_handle_option): New function.
6793         (TARGET_DEFAULT_TARGET_FLAGS): Override.
6794         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
6795         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
6796         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
6797         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
6798         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
6799         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
6800         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
6801         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
6802         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
6803         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
6804         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
6805         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
6806         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
6807         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
6808         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
6809         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
6810         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
6811         (TARGET_LINUX): Define 0.
6812         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
6813         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
6814         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
6815         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
6816         (TARGET_LINUX): Override to 1.
6817         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
6818
6819 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
6820
6821         * haifa-sched.c (schedule_block): Fix thinko in previous
6822         assertification patch.
6823
6824 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
6825
6826         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
6827         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
6828         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
6829         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
6830         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
6831         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
6832         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
6833         for hpux11.[1-9]*.
6834         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
6835         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
6836         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
6837         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
6838         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
6839         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
6840         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
6841         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
6842         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
6843         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
6844         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
6845         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
6846         (SUBTARGET_OPTIONS): Delete.
6847         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
6848         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
6849         instead of a string.
6850         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
6851         (pa_cpu_string, pa_unix_string): Delete.
6852         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
6853         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
6854         TARGET_HPUX_10_10.
6855         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
6856         (pa_handle_option): New function.
6857         (override_options): Remove handling of -march=, -mfixed-range=,
6858         -mschedule= and -munix=.
6859         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
6860         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
6861         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
6862         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
6863         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
6864         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
6865         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
6866         redefining.
6867         * config/pa/pa.opt: New file.
6868         * config/pa/pa-hpux.opt: New file.
6869         * config/pa/pa-hpux1010.opt: New file.
6870         * config/pa/pa-hpux1111.opt: New file.
6871         * config/pa/pa64-hpux.opt: New file.
6872
6873 2005-04-22  David S. Miller  <davem@davemloft.net>
6874
6875         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
6876         integer when it's mode is VOIDmode not DImode.
6877
6878 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
6879
6880         * config/rs6000/rs6000.md (sync_add<mode>_internal,
6881         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
6882         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
6883         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
6884         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
6885         "bne- $-xxx" rather than local labels.
6886         (sync_lock_release<mode>): Add second operand.
6887         (lwsync): Use .long rather than a more meaningful opcode.
6888         * doc/md.texi (Standard Names): Add description of second
6889         parameter to sync_lock_test_and_set.
6890
6891 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
6892
6893         PR tree-optimization/21088
6894         * fold-const.c (fold_unary, fold_binary, fold_ternary):
6895         Export.
6896         * tree-vrp.c (compare_values): Use fold_binary to compare
6897         pointers.  Use boolean_type_node as the type of a comparison
6898         expression being folded.
6899         * tree.h: Add prototypes for fold_unary, fold_binary,
6900         fold_ternary.
6901
6902         * tree-ssa-dom.c: Fix formatting.
6903
6904 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
6905
6906         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
6907         * lambda-code.c (perfect_nestify): Mark virtual operands in
6908         the moved statement for renaming.
6909         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
6910         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
6911         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
6912         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
6913         * tree-flow.h (struct var_ann_d): Update comments.
6914         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
6915         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
6916         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
6917         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
6918         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
6919         debug_names_replaced_by): Remove declarations.
6920         (delete_update_ssa, get_current_def, set_current_def): Declare.
6921         (rewrite_into_loop_closed_ssa): Add new argument.  Update
6922         all callers.
6923         * tree-into-ssa.c: Include params.h.
6924         (old_virtual_ssa_names): Remove.  Update all users.
6925         (need_to_replace_names_p): Remove.  Update all users.
6926         (struct update_ssa_stats_d): Declare.
6927         (update_ssa_stats): New local.
6928         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
6929         dump_tree_ssa_stats, debug_tree_ssa_stats,
6930         dump_update_ssa, debug_update_ssa,
6931         dump_names_replaced_by, debug_names_replaced_by): Declare.
6932         (get_current_def, set current_def): Make extern.
6933         (is_old_name, is_new_name): Protect against references
6934         past the end of the sets.
6935         (add_new_name_mapping): Assert that OLD and NEW are
6936         different SSA names for the same symbol.
6937         When adding a virtual mapping, update stats for virtual
6938         mapping heuristic.
6939         (insert_phi_nodes_for): If UPDATE_P is true, create the
6940         LHS of the new PHI by duplicating SSA name VAR.
6941         (insert_phi_nodes_1): Remove.  Update all users.
6942         (insert_phi_nodes): Remove second argument.  Update all
6943         users.
6944         (maybe_replace_use, maybe_replace_def): New.
6945         (rewrite_update_stmt): Call them.
6946         (mark_def_interesting): Remove calls to is_gimple_reg.
6947         (prepare_phi_args_for_update): Remove.  Update all users.
6948         (prepare_block_for_update): Only process virtual operands
6949         and GIMPLE registers in normal form.
6950         (prepare_use_sites_for): New.
6951         (prepare_names_to_update): Rename from prepare_def_sites.
6952         Call prepare_use_sites_for.
6953         (dump_update_ssa): Rename from dump_repl_tbl.
6954         Update all users.
6955         Show statistics for virtual mapping heuristic.
6956         (debug_update_ssa): Rename from debug_debug_repl_tbl.
6957         (init_update_ssa): Initialize UPDATE_SSA_STATS.
6958         (delete_update_ssa): Make extern.
6959         (mark_set_for_renaming): If the set is empty, do nothing.
6960         (release_ssa_name_after_update_ssa): Update comment.
6961         (insert_updated_phi_nodes_for): Do not remove existing
6962         PHI nodes for symbols.
6963         (switch_virtuals_to_full_rewrite_p): New.
6964         (switch_virtuals_to_full_rewrite): New.
6965         (update_ssa): Call them.
6966         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
6967         for every statement before updating.
6968         If all the names in NEW_SSA_NAMES have been marked for
6969         removal, do nothing.
6970         Only start at the top of the CFG if there are symbols in
6971         SYMS_TO_RENAME.
6972         (ssa_rewrite_finalize_block): Remove.
6973         (ssa_register_new_def): Remove.
6974         (ssa_rewrite_stmt): Remove.
6975         (ssa_rewrite_phi_arguments): Remove.
6976         (ssa_rewrite_initialize_block): Remove.
6977         (ssa_mark_def_sites): Remove.
6978         (ssa_mark_def_sites_initialize_block): Remove.
6979         (ssa_mark_phi_uses): Remove.
6980         (rewrite_ssa_into_ssa): Remove.
6981         * tree-phinodes.c (find_phi_node_for): Remove.
6982         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6983         Call update_ssa.
6984         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
6985         Remove calls to verify_dominators and
6986         verify_loop_structure.
6987         (tree_unswitch_single_loop): Call update_ssa.
6988         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
6989         returns false.
6990         Call verify_stmts.
6991         (delete_tree_ssa): Assert that need_ssa_update_p returns
6992         false.
6993         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
6994         * tree-vectorizer.c (allocate_new_names, rename_def_op,
6995         free_new_names): Remove.  Update all users.
6996         (rename_use_op): Call get_current_def.
6997         (rename_variables_in_bb): Do not handle any real or
6998         virtual definition.
6999         (slpeel_update_phis_for_duplicate_loop): Call
7000         get_current_def and set_current_def instead of using
7001         SSA_NAME_AUX.
7002         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
7003         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
7004         ssa_names_to_replace and delete_update_ssa.
7005         * doc/invoke.texi: Document --param min-virtual-mappings
7006         and --param virtual-mappings-ratio.
7007
7008 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
7009
7010         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
7011         for newly created PHI nodes.
7012         Call create_new_def_for for every new V_MAY_DEF and
7013         V_MUST_DEF on the copied statement.
7014         (struct ssa_name_map_entry): Remove.
7015         (ssa_name_map_entry_hash): Remove.
7016         (ssa_name_map_entry_eq): Remove.
7017         (allocate_ssa_names): Remove.
7018         (rewrite_to_new_ssa_names_def): Remove.
7019         (rewrite_to_new_ssa_names_use): Remove.
7020         (rewrite_to_new_ssa_names_bb): Remove.
7021         (rewrite_to_new_ssa_names): Remove.
7022         (tree_duplicate_sese_region): Remove variables ver,
7023         definitions, phi, ssa_name_map and bi.
7024         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
7025         Call update_ssa.
7026         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
7027         update_ssa instead of rewrite_ssa_into_ssa.
7028         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
7029         create_new_def_for.
7030         (find_uses_to_rename_use): Add argument 'need_phis'.
7031         (find_uses_to_rename_stmt): Do not scan virtual operands.
7032         (find_uses_to_rename): Only scan PHI nodes for
7033         non-virtual names.
7034         (rewrite_into_loop_closed_ssa): Call update_ssa.
7035         (check_loop_closed_ssa_use): Ignore virtual operands.
7036         (check_loop_closed_ssa_stmt): Likewise.
7037         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
7038         NULL.
7039         (rename_variables, set_phi_def_stmts): Remove.
7040         (tree_duplicate_loop_to_header_edge): Reformat comment.
7041         Remove variables BB, I and DEFINITIONS.
7042         Call need_ssa_update_p.
7043         Call update_ssa.
7044         (lv_adjust_loop_header_phi): Reformat comment.
7045         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
7046         (marked_for_rewrite_p, any_marked_for_rewrite_p,
7047         mark_for_rewrite, unmark_all_for_rewrite,
7048         marked_ssa_names): Remove.  Update all users.
7049         (release_ssa_name): If VAR has been registered for SSA
7050         updating, do nothing.
7051         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
7052         (build_assert_expr_for): Call register_new_name_mapping.
7053         (insert_range_assertions): Update call to update_ssa.
7054         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
7055         marked_for_rewrite_p, any_marked_for_rewrite_p,
7056         marked_ssa_names): Remove.
7057
7058 2005-04-22  Jeff Law  <law@redhat.com>
7059
7060         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
7061         (restore_currdefs_to_original_value): Likewise.
7062         (register_definitions_for_stmt): Likewise.
7063         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
7064         for each variable.  Do not allocate/free block_defs_stack either.
7065         Do not iterate if we just thread jumps.  Only iterate if the
7066         tree_cleanup_cfg does useful work (temporary).
7067         (dom_opt_initialize_block): No longer push a marker on
7068         BLOCK_DEFS_STACK.
7069         (dom_opt_finalize_block): Removal call to restore currdefs.
7070         Relax restrictions for recording edge equivalences.
7071         (record_equivalences_from_phis): No longer need to track
7072         CURRENT_DEF.
7073         (optimize_stmt): Similarly.
7074         (thread_across_edge): Simplify by removing the requirement that
7075         statements in the block we are threading through must be nops.
7076         (initialize_hash_element): Handle GOTO_EXPR.
7077
7078 2005-04-22  David S. Miller  <davem@davemloft.net>
7079
7080         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
7081         CONST_DOUBLE_HIGH.
7082         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
7083         fix check on CONST_DOUBLE mode.  It should be VOIDmode
7084         when it is representing an integer.
7085
7086 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
7087
7088         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
7089         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
7090         * c-format.c (get_constant, decode_format_attr, get_flag_spec,
7091         find_char_info_specifier_index,
7092         find_length_info_modifier_index): Likewise.
7093         * c-typeck.c (composite_type, pop_init_level): Likewise.
7094         * combine.c (cant_combine_insn_p, try_combine): Likewise.
7095         * cse.c (cse_insn): Likewise
7096         * dominance.c (calc_dfs_tree): Likewise
7097         dwarf2out.c (loc_descriptor_from_tree_1,
7098         add_abstract_origin_attribute, force_decl_die,
7099         force_type_die): Likewise
7100         emit-rtl.c (operand_subword_force): Likewise
7101         explow.c (hard_function_value): Likewise
7102         expmed.c (store_bit_field, expand_divmod,
7103         emit_store_flag_force): Likewise
7104         expr.c (emit_move_multi_word, store_expr,
7105         expand_expr_real_1): Likewise
7106         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
7107         output_operand): Likewise
7108         flow.c (recompute_reg_usage): Likewise
7109         * function.c (assign_stack_temp_for_type, assign_temp,
7110         handle_epilogue_set): Likewise
7111         * genextract.c (main): Likewise
7112         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
7113         gimplify_modify_expr_rhs, gimplify_expr): Likewise
7114         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
7115         ready_remove, rm_line_notes, rm_other_notes,
7116         schedule_block): Likewise
7117         mips-tfile.c (copy_object, out_of_bounds): Likewise
7118
7119 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
7120
7121         PR target/20813
7122         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
7123         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
7124         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
7125         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
7126         TARGET_XL_COMPAT.
7127         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
7128
7129 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
7130
7131         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
7132         (gcc_tree_to_linear_expression): Convert to heap allocated
7133         vectors.
7134         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
7135         lbv_to_gcc_expression, lle_to_gcc_expression,
7136         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
7137         perfect_nestify): Likewise.
7138         lambda.h (gcc_loopnest_to_lambda_loopnest,
7139         lambda_loopnest_to_gcc_loopnest): Likewise.
7140         tree-loop-linear.c (linear_transform_loops): Likewise.
7141
7142 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7143
7144         * config/sparc/predicates.md (arith_double_operand): Use
7145         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
7146         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
7147         (DImode, DFmode constant splitters): Likewise.  Remove code for
7148         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
7149         (logical constant splitters): Use const_int_operand predicate.
7150         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
7151         HOST_BITS_PER_WIDE_INT < 64.
7152
7153 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
7154
7155         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
7156         gcc_unreachable as appropriate.
7157         (force_mode, emit_move_sequence, singlemove_string,
7158         output_move_double, output_fp_move_double, find_addr_reg,
7159         output_block_move, output_block_clear, output_and,
7160         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
7161         pa_adjust_cost, pa_issue_rate, print_operand,
7162         output_global_address, output_arg_descriptor, output_cbranch,
7163         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
7164         output_call): Likewise.
7165         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
7166         prefetch, prefetch_cc, prefetch_nocc): Likewise.
7167
7168 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
7169
7170         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
7171         _gcov_pow2_profiler and _gcov_one_value_profiler.
7172         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
7173         (GTFILES): Add $(srcdir)/tree-profile.c.
7174         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
7175         __gcov_one_value_profiler): Declare.
7176         * gimplify.c (force_gimple_operand): Check whether the statements
7177         should be produced in ssa form.
7178         (force_gimple_operand_bsi): New function.
7179         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
7180         __gcov_one_value_profiler): New functions.
7181         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
7182         the profiled value is a power of two or not.
7183         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
7184         * tree-flow.h (in_ssa_p): Declare.
7185         (force_gimple_operand_bsi): Declare.
7186         * tree-into-ssa.c (in_ssa_p): New variable.
7187         (rewrite_into_ssa): Set in_ssa_p.
7188         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
7189         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
7190         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
7191         tree_one_value_profiler_fn): New variables.
7192         (tree_init_edge_profiler): Initialize the profiler function decls.
7193         (tree_gen_edge_profiler): Use global gcov_type_node.
7194         (prepare_instrumented_value): New function.
7195         (tree_gen_interval_profiler, tree_gen_interval_profiler,
7196         tree_gen_one_value_profiler): Call the library functions instead of
7197         creating instrumentation code.
7198         * tree.c (build_fn_decl): New function.
7199         * tree.h (build_fn_decl): Declare.
7200         * value-prof.c (rtl_divmod_values_to_profile,
7201         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
7202         tree_mod_pow2_value_transform, tree_find_values_to_profile):
7203         Do not handle may_be_other and precise values of exponents at pow2
7204         profiler.
7205         (tree_mod_subtract_transform): Reflect that value field of
7206         histogram has changed meaning.
7207         (tree_divmod_values_to_profile): Record the values correctly.
7208         (tree_values_to_profile): Update comment.
7209         * value-prof.h (struct histogram_value_t): Remove pow2 data.
7210
7211 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
7212
7213         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
7214         (decl).
7215
7216 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
7217
7218         * config/i386/i386.md (length_immediate): Use gcc_assert or
7219         gcc_unreachable, as appropriate.
7220         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
7221         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
7222         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
7223         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
7224         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
7225         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
7226         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
7227         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
7228         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
7229         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
7230         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
7231         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
7232         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
7233         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
7234         *prefetch_sse_rex): Likewise.
7235         * config/i386/predicates.md (x86_64_immediate_operand,
7236         x86_64_zext_immediate_operand, symbolic_operand,
7237         no_seg_address_operand, aligned_operand,
7238         memory_displacement_operand): Likewise.
7239         * config/i386/sse.md (*mov<mode>_internal,
7240         *movv2df_internal): Likewise.
7241
7242 2005-04-22  Jan Hubicka  <jh@suse.cz>
7243
7244         * Makefile.in (ipa.o, ipa-inline.o): New files.
7245         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
7246         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
7247         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
7248         * cgraphunit.c (cgraph_default_inline_p,
7249         cgraph_decide_inlining_incrementally,  ncalls_inlined,
7250         nfunctions_inlined, initial_insns, overall_insns,
7251         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
7252         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
7253         cgraph_mark_inline, cgraph_check_inline_limits,
7254         cgraph_default_inline_p, cgraph_recursive_inlining_p,
7255         update_callee_keys, lookup_recursive_calls,
7256         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
7257         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
7258         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
7259         pass_ipa_inline): Move to ipa-inline.c
7260         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
7261         * ipa.c: New file.
7262         * ipa-inline.c: New file.
7263
7264 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7265
7266         * doc/invoke.texi (SPARC options): Document that -mapp-regs
7267         is turned off by default on Solaris.
7268
7269 2005-04-21  Roger Sayle  <roger@eyesopen.com>
7270
7271         * c-common.h (objc_build_method_signature): Update prototype.
7272         * stub-objc.c (objc_build_method_signature): Update the stub
7273         implementation to accept and ignore additional parameter.
7274         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
7275         the value of ellipsis to objc_build_method_signature instead
7276         of setting TREE_OVERFLOW on the parms TREE_LIST node.
7277
7278 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
7279
7280         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
7281         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
7282         gen_rtx_* not gen_rtx_fmt_*.
7283         (rs6000_emit_vector_select): Likewise.
7284         (rs6000_emit_sync): New.
7285         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
7286         (larx, stcx, cmp): New mode substitutions.
7287         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
7288         UNSPEC_ISYNC): New constants.
7289         (rlwinm): Give name.
7290         (memory_barrier, isync, lwsync): New insns.
7291         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
7292         (sync_lock_release<mode>): New expander.
7293         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
7294         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
7295         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
7296         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
7297         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
7298         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
7299         (sync_add<mode>_internal, sync_addshort_internal,
7300         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
7301         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
7302         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
7303
7304         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
7305         is the memory before, not after, the operation.  Clarify
7306         barrier requirements.
7307
7308 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
7309
7310         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
7311         * lambda.h (lambda_vector_min_nz): Likewise.
7312         * langhooks.h (struct lang_hooks_for_types,
7313         struct lang_hooks): Likewise.
7314         * output.h (assemble_integer, this_is_asm_operands): Likewise.
7315         * tree.h: Likewise.
7316         * vec.h: Likewise.
7317         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
7318
7319         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
7320         comments to avoid 'abort'.  Use gcc_assert as necessary.
7321         * opts.c (common_handle_option): Likewise.
7322         * pretty-print.c (pp_base_format_text): Likewise.
7323         * print-rtl.c (print_rtx): Likewise.
7324         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
7325         * regmove.c (try_auto_increment): Likewise.
7326         * reload.c (find_valid_class, find_reloads_toplev,
7327         find_equiv_reg): Likewise.
7328         * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
7329         merge_assigned_reloads): Likewise.
7330         * tree-inline.c (inline_forbidden_p_1,
7331         estimate_num_insns_1): Likewise.
7332         * tree-optimize.c (execute_todo): Likewise.
7333         * tree-outof-ssa.c (eliminate_phi): Likewise.
7334         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
7335         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
7336         * tree-ssa-operands.c (parse_ssa_operands,
7337         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
7338         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
7339         * tree-ssanames.c (release_ssa_name): Likewise.
7340         * tree.c (int_bit_position, int_byte_position, tree_low_cst,
7341         walk_tree): Likewise.
7342
7343         * tree-ssa-operands.c (verify_abort): Fold into ..
7344         (verify_imm_links): ... here.
7345
7346 2005-04-21  Richard Henderson  <rth@redhat.com>
7347
7348         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
7349         on non-memory operand for previous inversion.
7350
7351 2005-04-21  Devang Patel  <dpatel@apple.com>
7352
7353         PR optimization/20994
7354         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
7355         x = !(a == b) : p , q;.
7356         (pass_if_conversion): Verify stmts and flow.
7357
7358 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
7359
7360         * optabs.c (gen_conditional_trap): Restore #define.
7361
7362         * alias.c (true_dependence): Remove 'abort' from comments. Use
7363         gcc_assert and gcc_unreachable as appropriate.
7364         (canon_true_dependence): Likewise.
7365         * bb-reorder.c (connect_traces): Likewise.
7366         * c-common.c (c_add_case_label): Likewise.
7367         * c-decl.c (finish_function): Likewise.
7368         * caller-save.c (insert_restore, insert_save): Likewise.
7369         * cfg.c (update_bb_profile_for_threading): Likewise.
7370         * cfganal.c (flow_active_insn_p): Likewise.
7371         * cfgexpand.c (add_reg_br_prob_note): Likewise.
7372         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
7373         cfg_layout_merge_blocks): Likewise.
7374         * ifcvt.c (cond_exec_process_insns, merge_if_block,
7375         find_if_block): Likewise.
7376         * integrate.c (allocate_initial_values): Likewise.
7377         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
7378         swap_condition, unsigned_condition, signed_condition,
7379         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
7380         reg_or_subregno): Likewise.
7381         * lambda-code.c (lambda_compute_auxillary_space,
7382         lambda_transform_legal_p): Likewise.
7383         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
7384         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
7385         lhd_incomplete_type_error, lhd_expand_expr,
7386         lhd_types_compatible_p, lhd_tree_size): Likewise.
7387         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
7388         * local-alloc.c (update_equiv_regs): Likewise.
7389         * loop-unroll.c (peel_loop_completely
7390         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
7391         peel_loop_simple, unroll_loop_stupid,
7392         analyze_iv_to_split_insn): Likewise.
7393         * loop.c (gen_prefetch, find_and_verify_loops,
7394         basic_induction_var): Likewise.
7395         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
7396         * value-prof.c (tree_find_values_to_profile): Likewise.
7397         * varasm.c (named_section, default_assemble_integer,
7398         decode_addr_const): Likewise.
7399
7400 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
7401            Fariborz Jahanian <fjahanian@apple.com>
7402
7403         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
7404         portion of argument passed in fpr.
7405         * expr.c (emit_push_insn): Fix computation of 'offset' used to
7406         decide on partial argument save on stack.
7407
7408 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
7409
7410         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
7411         comment typos.
7412
7413 2005-04-21  Jan Hubicka  <jh@suse.cz>
7414
7415         * cgraphunit.c: Include tree-pass.h
7416         (cgraph_decide_recursive_inlining,
7417         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
7418         cgraph_decide_inlining): Dump goes to dump_file.
7419         (cgraph_optimize): Call ipa passes instead of inliner.
7420         (cgraph_gate_inlining, pass_ipa_inline): New.
7421         * tree-optimize.c (all_ipa_passes): New static variable.
7422         (register_one_dump_file): Dead with IPA passes.
7423         (register_dump_files): Likewise.
7424         (init_tree_optimization_passes): Initialize IPA passes.
7425         (execute_todo): Do cgraph dump when asked to, do not dump function body
7426         for IPA pass.
7427         * tree-pass.h (TODO_dump_cgraph): New macro.
7428         (ipa_passes): Declare.
7429         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
7430
7431 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
7432
7433         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
7434         gcc_assert instead of abort.
7435         (classify_argument, examine_argument, construct_container,
7436         contains_128bit_aligned_vector_p, ix86_check_movabs,
7437         standard_80387_constant_opcode, standard_80387_constant_rtx,
7438         ix86_initial_elimination_offset, ix86_compute_frame_layout,
7439         pro_epilogue_adjust_stack, ix86_expand_epilogue,
7440         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
7441         legitimize_tls_address, output_pic_addr_const,
7442         i386_output_dwarf_dtprel, put_condition_code, print_reg,
7443         get_some_local_dynamic_name, print_operand, print_operand_address,
7444         output_387_binary_op, emit_i387_cw_initialization,
7445         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
7446         ix86_expand_clear, ix86_expand_binary_operator,
7447         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
7448         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
7449         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
7450         ix86_expand_branch, ix86_expand_setcc,
7451         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
7452         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
7453         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
7454         memory_address_length, ix86_attr_length_immediate_default,
7455         ix86_attr_length_address_default, ix86_agi_dependant,
7456         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
7457         ix86_expand_binop_builtin, ix86_force_to_memory,
7458         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
7459         x86_emit_floatuns): Likewise.
7460         * config/i386/netware.c (gen_regparm_prefix,
7461         i386_nlm_strip_name_encoding): Likewise.
7462         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
7463
7464 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
7465
7466         * optabs.c (gen_condiational_trap): Remove #define.
7467         (add_equal_note): Assertify. Remove explicit indirection from
7468         call via function pointer.
7469         (expand_ternary_op, expand_simple_binop, expand_binop,
7470         expand_twoval_unop, expand_twoval_binop,
7471         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
7472         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
7473         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
7474         prepare_float_lib_cmp, emit_conditional_move,
7475         emit_conditional_add, gen_add2_insn, gen_add3_insn,
7476         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
7477         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
7478         vector_compare_rtx, expand_vec_cond_expr): Likewise.
7479
7480 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
7481
7482         * vec.h: Update API to separate allocation mechanism from type.
7483         (VEC_safe_grow): New.
7484         * vec.c (calculate_allocation): New.
7485         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
7486         (vec_gc_free, vec_heap_free): Remove.
7487         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
7488         (VEC): Likewise.
7489         (mangle_macro_name): New.
7490         (struct macro_def): New.
7491         (struct macro): Add multiple argument values.
7492         (macro_expans_end): New.
7493         (push_macro_expansion):  Chain on new macro. Process multiple
7494         args, create follow on expansion. Return follow on argument.
7495         (macro_input): Deal with multiple arguments.
7496
7497         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
7498         (struct tree_binfo): Adjust.
7499         * basic-block.h: Define VEC(edge,gc).
7500         (struct edge_def): Adjust.
7501         (struct basic_block_def, struct edge_iterator): Likewise.
7502         (ei_container, ei_start_1, ei_last_1): Likewise.
7503         * cfg.c (connect_src, connect_dest): Likewise.
7504         * cfgrtl.c (force_nonfallthru_and_redirect)
7505         * dbxout.c (dbxout_type)
7506         * dwarf2out.c (gen_member_die)
7507         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
7508         (gcc_tree_to_linear_expression): Adjust.
7509         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
7510         lbv_to_gcc_expression, lle_to_gcc_expression,
7511         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
7512         perfect_nestify): Likewise.
7513         * lambda.h (gcc_loopnest_to_lambda_loopnest,
7514         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
7515         * profile.c (instrument_values): Adjust.
7516         * tree-cfg.c (modified_noreturn_calls): Adjust.
7517         (remove_fallthru_edge): Likewise.
7518         * tree-dump.c (dequeue_and_dump): Adjust.
7519         * tree-flow-inline.h (mark_stmt_modified): Adjust.
7520         * tree-flow.h (modified_noreturn_calls): Adjust.
7521         (tree_on_heap): Remove. (yay!)
7522         (register_new_def): Adjust.
7523         * tree-into-ssa.c: Define VEC(int,heap).
7524         (block_defs_stack): Adjust.
7525         (find_idf, insert_phi_nodes, register_new_def,
7526         rewrite_initialize_block, rewrite_finalize_block,
7527         register_new_update_single, rewrite_update_init_block,
7528         rewrite_update_fini_block, rewrite_blocks,
7529         ssa_rewrite_finalize_block, ssa_register_new_def,
7530         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
7531         * tree-loop-linear.c (linear_transform_loops): Adjust.
7532         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
7533         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
7534         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
7535         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
7536         vrp_variables_stack): Adjust declarations.
7537         (tree_ssa_dominator_optimize): Adjust.
7538         (dom_opt_initialize_block, remove_local_expressions_from_table,
7539         restore_nonzero_vars_to_original_value,
7540         restore_vars_to_original_value,
7541         restore_currdefs_to_original_value, dom_opt_finalize_block,
7542         record_var_is_nonzero, record_cond, record_const_or_copy_1,
7543         optimize_stmt, update_rhs_and_lookup_avail_expr,
7544         lookup_avail_expr, record_range): Likewise.
7545         * tree-ssa-pre.c: Define VEC(basic_block,heap).
7546         (compute_antic_aux): Adjust.
7547         (inserted_exprs, create_expression_by_pieces,
7548         insert_into_preds_of_block, eliminate, mark_operand_necessary,
7549         remove_dead_inserted_code, fini_pre): Likewise.
7550         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
7551         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
7552         ssa_prop_init): Likewise.
7553         * tree-ssa.c: Define VEC(bitmap,heap).
7554         (verify_name_tags): Adjust.
7555         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
7556         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
7557         tree_divmod_values_to_profile, tree_find_values_to_profile,
7558         value_profile_transformations): Likewise.
7559         * value-prof.h: Define VEC(histogram_value,heap).
7560         * varasm.c: Remove alias_pair pointer typedef, define
7561         VEC(alias_pair,gc).
7562         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
7563
7564         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
7565         not a pointer to it.  Create an object vector.
7566         (extern_symbols): Turn into an object vector.
7567         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
7568
7569 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
7570
7571         PR/20742
7572         * Makefile.in (tree-chrec.o): Depend on params.h.
7573         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
7574         default value 20.
7575         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
7576         and fold build with fold_buildN.
7577         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
7578         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
7579         (tree_contains_chrecs): Compute an estimation of the size of the
7580         given expression.
7581         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
7582         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
7583         * tree-scalar-evolution.c (simple_iv): Ditto.
7584         * doc/invoke.texi (scev-max-expr-size): Documented.
7585
7586 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
7587
7588         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
7589         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
7590         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
7591         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
7592         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
7593         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
7594         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
7595         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
7596         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
7597         (darwin_fix_and_continue_switch): Delete.
7598         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
7599         (SUBTARGET_SWITCHES): Delete.
7600         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
7601         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
7602         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
7603         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
7604         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
7605         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
7606         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
7607         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
7608         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
7609         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
7610         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
7611         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
7612         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
7613         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
7614         (TARGET_64BIT): Undef before redefining.
7615         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
7616         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
7617         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
7618         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
7619         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
7620         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
7621         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
7622         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
7623         (ix86_debug_arg_string, ix86_debug_addr_string)
7624         (ix86_align_loops_string, ix86_align_jumps_string)
7625         (ix86_align_funcs_string): Delete.
7626         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
7627         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
7628         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
7629         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
7630         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
7631         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
7632         (SUBTARGET_SWITCHES): Delete.
7633         * config/i386/i386.c (ix86_debug_arg_string): Delete.
7634         (ix86_debug_addr_string): Delete.
7635         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
7636         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
7637         (ix86_align_loops_string, ix86_align_jumps_string)
7638         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
7639         (ix86_align_funcs_string): Make static.
7640         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7641         (ix86_handle_option): New function.
7642         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
7643         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
7644         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
7645         of darwin_fix_and_continue_switch.
7646         (darwin_one_byte_bool): Delete.
7647         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
7648         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
7649         to darwin_one_byte_bool.
7650         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
7651         * config/i386/djgpp.opt, config/i386/i386.opt,
7652         * config/i386/sco5.opt: New files.
7653
7654 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
7655
7656         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
7657         fp_zero_operand, fp_register_operand, intreg_operand,
7658         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
7659         call_operand, call_operand_address, tgd_symbolic_operand,
7660         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
7661         symbolic_operand, symbolic_memory_operand, label_ref_operand,
7662         sp64_medium_pic_operand, data_segment_operand,
7663         text_segment_operand, splittable_symbolic_memory_operand,
7664         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
7665         eq_or_neq, normal_comp_operator, noov_compare_op,
7666         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
7667         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
7668         const64_operand, const64_high_operand, arith11_operand,
7669         arith10_operand, arith_double_operand, arith_double_4096_operand,
7670         arith_double_add_operand, arith11_double_operand,
7671         arith10_double_operand, small_int, small_int_or_double,
7672         uns_small_int, uns_arith_operand, clobbered_register,
7673         input_operand, compare_operand): Delete.
7674         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
7675         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
7676         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
7677         (GEN_HIGHINT64, GEN_INT64): Delete.
7678         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
7679         gen_safe_XOR64): Adjust for above deletion.
7680         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
7681         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
7682         (legitimate_constant_p): Use const_zero_operand instead.
7683         (sparc_extra_constraint_check): Likewise.
7684         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
7685         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
7686         (PREDICATE_CODES): Delete.
7687         * config/sparc/sparc.md: Include predicates.md.
7688         (All patterns): Adjust for new predicate names.
7689         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
7690         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
7691         (movdi): Use general_operand predicate.
7692         (movdi_sp64_dbl): Delete.
7693         (movdi_const64_special): Add 'N' constraint.
7694         (movdicc): Use arith10_operand predicate.
7695         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
7696         (movdi_cc_reg_sp64): Use arith10_operand predicate.
7697         (movdi_cc_reg_sp64_trunc): Delete.
7698         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
7699         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
7700         (subdi3_sp32): Delete.
7701         (subdi3_insn_sp32): Change to define_insn_and_split.
7702         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
7703         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
7704         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
7705         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
7706         small_int_operand predicate.
7707         (divdi3, udivdi3): Use arith_operand predicate.
7708         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
7709         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
7710         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
7711         (xordi3_sp64_dbl): Delete.
7712         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
7713         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
7714         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
7715         cmp_ccx_set_not): Use arith_operand predicate.
7716         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
7717         * config/sparc/predicates.md: New file.
7718
7719 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
7720
7721         PR tree-optimization/14846
7722         * fold-const.c (fold_single_bit_test_into_sign_test): New,
7723         split out from ...
7724         (fold_single_bit_test): ... here.
7725         (fold_binary): Call fold_single_bit_test_into_sign_test
7726         instead of fold_single_bit_test.
7727
7728 2005-04-20  James E Wilson  <wilson@specifixinc.com>
7729
7730         PR c++/20805
7731         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
7732         is another declaration.
7733
7734 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
7735
7736         * config/cris/predicates.md: New file.
7737         * config/cris/cris-protos.h (cris_store_multiple_op_p)
7738         (cris_movem_load_rest_p): Declare.
7739         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
7740         (cris_movem_load_rest_p): Ditto.  Globalize.
7741         (cris_bdap_operand, cris_bdap_biap_operand,
7742         cris_orthogonal_operator, cris_commutative_orth_op,
7743         cris_operand_extend_operator,
7744         cris_additive_operand_extend_operator, cris_extend_operator,
7745         cris_plus_or_bound_operator, cris_mem_op,
7746         cris_general_operand_or_symbol,
7747         cris_general_operand_or_gotless_symbol,
7748         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
7749         cris_load_multiple_op): Remove predicate functions.
7750         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
7751         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
7752         * config/cris/cris.h (PREDICATE_CODES): Don't define.
7753         * config/cris/cris.md: Include predicates.md.
7754         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
7755
7756 2005-04-20  Ian Lance Taylor  <ian@airs.com>
7757
7758         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
7759         * c-common.h (STMT_EXPR_STMT): Don't define.
7760         (STMT_EXPR_NO_SCOPE): Don't define.
7761         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
7762         * c-pretty-print.c (pp_c_primary_expression): Likewise.
7763         (pp_c_expression): Likewise.
7764
7765 2005-04-20  Richard Henderson  <rth@redhat.com>
7766
7767         PR target/21100
7768         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
7769
7770 2005-04-20  Jeff Law  <law@redhat.com>
7771
7772         * reload1.c (reload): Ignore equivalences between pseudos and
7773         read only memory.
7774
7775 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
7776
7777         PR c/12913
7778         * c-tree.h (struct c_label_list): Update comment.
7779         (struct c_label_context): Rename to struct c_label_context_se.
7780         (label_context_stack): Rename to label_context_stack_se.
7781         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
7782         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
7783         c_end_vm_scope): New.
7784         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
7785         * c-decl.c (pop_scope): Call c_end_vm_scope.
7786         (pushdecl): Call c_begin_vm_scope for variably modified
7787         declarations.
7788         (define_label): Check for jumping into scope of identifier with
7789         variably modified type.  Push label on stack for those defined at
7790         current context of identifiers with variably modified type.
7791         (start_function): Create stack level for context of identifiers
7792         with variably modified type.
7793         (finish_function): Pop stack level for context of identifiers with
7794         variably modified type.
7795         * c-typeck.c (label_context_stack): Rename to
7796         label_context_stack_se.
7797         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
7798         (c_finish_goto_label): Check for jumping into scope of identifier
7799         with variably modified type.  Push label on stack for those jumped
7800         to from current context of identifiers with variably modified
7801         type.
7802         (struct c_switch): Add blocked_vm.
7803         (c_start_case): Initialize blocked_vm.
7804         (do_case): Check blocked_vm.
7805         (c_finish_case): Add comment.
7806         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
7807         variable label_context_stack.
7808
7809 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
7810
7811         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
7812         conditional_replacement, value_replacement, abs_replacement,
7813         minmax_replacement.
7814         (replace_phi_edge_with_variable): Remove argument BB.
7815         (conditional_replacement, value_replacement,
7816         minmax_replacement, abs_replacement): Remove argument PHI_BB.
7817         Update a call to replace_phi_edge_with_variable.
7818
7819         * tree-ssa-phiopt.c: Fix comments.
7820
7821 2005-04-20  Michael Matz  <matz@suse.de>
7822
7823         PR20973
7824         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
7825         pseudos.
7826
7827 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
7828
7829         * tree-ssa-phiopt.c: Fix comment typos.
7830
7831         PR tree-optimization/21116
7832         * tree-ssa-phiopt.c: Fix a typo.
7833
7834 2005-04-19  Richard Henderson  <rth@redhat.com>
7835
7836         * builtins.c (expand_builtin_sync_operation): Revert last change.
7837         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
7838         not vs new value.
7839         (expand_compare_and_swap_loop): Likewise.
7840         (expand_sync_operation): Remove fallback from NAND to AND; invert
7841         memory operand when expanding from cmpxchg.
7842         (expand_sync_fetch_operation): Likewise.
7843         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
7844         compare-and-swap.
7845
7846         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
7847         when implementing NAND.  Fix double-add for AFTER.
7848         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
7849         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
7850         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
7851         memory value.
7852         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
7853         memory barrier.
7854
7855         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
7856         to return old memory value.
7857         (sync_compare_and_swap_cc<IMODE>): Likewise.
7858
7859         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
7860         return pre-reload.  Don't consider output or anti dependencies.
7861         * config/ia64/sync.md (IMODE): New.
7862         (modesuffix): Add QI and HI.
7863         (memory_barrier): Simplify expansion.
7864         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
7865         (cmpxchg_acq_<IMODE>): Likewise.
7866         (sync_lock_test_and_set<IMODE>): Likewise.
7867         (sync_lock_release<IMODE>): Likewise.
7868
7869 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
7870
7871         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
7872         ~X or ~Y simplify.
7873
7874 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
7875
7876         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
7877
7878 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
7879             Joseph S. Myers  <joseph@codesourcery.com>
7880
7881         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
7882         * c-typeck.c (build_c_cast): Check these options.
7883         * doc/invoke.texi: Document these options.
7884
7885 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
7886
7887         * tree-ssa-phiopt.c: Update a comment about the pass.
7888
7889 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
7890
7891         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
7892         config/mcore/mcore.c: Fix comment typos.
7893
7894 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
7895
7896         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
7897         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
7898
7899 2005-04-19  Paul Brook  <paul@codesourcery.com>
7900
7901         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
7902
7903 2005-04-19  Andrew Haley  <aph@redhat.com>
7904
7905         PR java/21022
7906         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
7907         looking at a field's bitpos.
7908
7909 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7910
7911         * system.h (fopen, fdopen, freopen): Define these to the unlocked
7912         libiberty functions.
7913
7914 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
7915
7916         PR tree-optimization/21096
7917         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
7918
7919 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
7920
7921         PR target/21098
7922         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
7923         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
7924
7925 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
7926
7927         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
7928         refers to the function being dumped.
7929
7930 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
7931
7932         * varasm.c (assemble_start_function): Remove reset of in_section.
7933
7934 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
7935
7936         PR tree-optimization/21085
7937         * fold-const (fold_binary): Don't change X % -C to X % C if C has
7938         overflowed.
7939
7940 2005-04-19  Ben Elliston  <bje@au.ibm.com>
7941
7942         * doc/invoke.texi (Optimize Options): Refer to the correct
7943         optimisation flag -ftree-dominator-opts, not -ftree-dom.
7944
7945 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
7946
7947         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
7948         alloca argument to be big enough.
7949
7950 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
7951
7952         PR middle-end/21049
7953         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
7954         cfun->cfg are NULL.
7955
7956 2005-04-18  Tom Tromey  <tromey@redhat.com>
7957
7958         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
7959         typo.
7960
7961 2005-04-18  Richard Henderson  <rth@redhat.com>
7962
7963         * config/alpha/alpha.c (alpha_split_atomic_op): New.
7964         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
7965         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
7966         * config/alpha/alpha-protos.h: Update.
7967         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
7968         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
7969         (attr type): Add ld_l, st_c, mb.
7970         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
7971         iornotsi3, xorsi_internal, xornotsi3): New.
7972         * config/alpha/ev4.md (ev4_ld): Add ld_l.
7973         (ev4_ist_c, ev4_mb): New.
7974         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
7975         (ev5_ld_l): New.
7976         * config/alpha/ev6.md (ev6_ild): Add ld_l.
7977         (ev6_ist): Add st_c.
7978         (ev6_mb): New.
7979         * config/alpha/sync.md: New file.
7980
7981 2005-04-18  Richard Henderson  <rth@redhat.com>
7982
7983         * builtins.c (expand_builtin_sync_operation): Fold nand to and
7984         for constants.
7985
7986         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
7987
7988 2005-04-18  Devang Patel  <dpatel@apple.com>
7989
7990         * config/rs6000/atlivec.md (mulv4si3): New pattern.
7991
7992 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
7993
7994         PR tree-optimization/20922
7995         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
7996         Fold X + c >= X and fold X - c <= X to true.
7997
7998 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
7999
8000         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
8001         unsigned int.
8002         (emergency_labeled_state_free): Likewise.
8003
8004 2005-04-18  Nick Clifton  <nickc@redhat.com>
8005
8006         * config/h8300/h8300.md (jump): Remove prescan parameter from
8007         calls to final_scan_insn.
8008
8009         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
8010         parameter from calls to final_scan_insn.
8011
8012         * config.gcc (m68hc12): Use the m68hc11.opt file for target
8013         specific options.
8014         (v850e, v850e1): Use the v850.opt file for target specific
8015         options.
8016
8017 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
8018
8019         PR tree-optimization/21001
8020         * tree-optimize.c (init_tree_optimization_passes): Move the
8021         first pass_forwprop immediately before pass_vrp.
8022
8023 2005-04-17  Ian Lance Taylor  <ian@airs.com>
8024
8025         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
8026         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
8027         from enum tree_code op to bool is_sizeof.
8028         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
8029         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
8030         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
8031         case.
8032         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
8033         cases.
8034         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
8035         ALIGNOF_EXPR cases.
8036
8037 2005-04-17  Ian Lance Taylor  <ian@airs.com>
8038
8039         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
8040
8041 2005-04-17  Richard Henderson  <rth@redhat.com>
8042
8043         * config/alpha/alpha.c (va_list_skip_additions): Only define if
8044         TARGET_ABI_OSF.
8045         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
8046         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
8047         of indirection through ssa names while looking for the gpr counter
8048         field.
8049         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
8050         saved va_list_gpr_size and va_list_fpr_size.
8051
8052 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
8053
8054         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
8055         both pointers or both integers.
8056
8057         * tree-vrp.c (maybe_add_assert_expr): Don't assert
8058         ASSERT_EXPRs for single-use variable.
8059
8060         * tree-into-ssa.c: Fix a comment typo.
8061
8062 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
8063
8064         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
8065         -mipsN before forcing a default of -mips2.
8066
8067 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
8068
8069         * predict.h (IS_TAKEN): Remove.
8070         * rtl.h (NOTE_PREDICTION): Likewise.
8071
8072         * modulo-sched.c (CFG_HOOKS): Remove.
8073
8074         * c-parser.c (N_C_TTYPES): Remove.
8075
8076         * tree-flow-inline.h (get_stmt_operands): Remove.
8077         * lambda-code.c, tree-ssa-loop-unswitch.c,
8078         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
8079         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
8080         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
8081         calls to get_stmt_operands.
8082         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
8083
8084 2005-04-17  Richard Henderson  <rth@redhat.com>
8085
8086         PR target/20375
8087         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
8088         of CUMULATIVE_ARGS past the last named argument.
8089         (alpha_va_start): Expect pretend_args_size only if strictly less than
8090         6 named arguments.
8091
8092 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
8093
8094         PR middle-end/21024
8095         * builtins.c (expand_builtin_strcat): Convert the result of
8096         strlen to the right type.
8097         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
8098         avoid creating type mismatches.
8099         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
8100         type mismatches.
8101
8102         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
8103
8104 2005-04-16  Richard Henderson  <rth@redhat.com>
8105
8106         PR target/21051
8107         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
8108         Use the mode of boolean_type_node when the user doesn't provide one.
8109         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
8110
8111 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
8112
8113         PR target/20126
8114         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
8115         (const)).
8116
8117         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
8118         comment.
8119
8120 2005-04-16  Roger Sayle  <roger@eyesopen.com>
8121             Steven Bosscher  <stevenb@suse.de>
8122
8123         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
8124         (fold_unary_to_constant): Likewise.
8125
8126 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
8127
8128         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
8129         PROP_ASM_SCAN.
8130
8131 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
8132
8133         * doc/install.texi (Specific): Avoid using asterisks in @anchor
8134         names related to target triplets.
8135         Remove i?86-*-esix from platform directory.
8136         Remove powerpc-*-eabiaix from platform directory.
8137
8138 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
8139
8140         PR middle-end/20491
8141         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
8142         falling through from SUBREG case to REG.
8143
8144 2005-04-15  Roger Sayle  <roger@eyesopen.com>
8145
8146         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
8147         (fold_binary): Update comment mentioning fold_relational_hi_lo.
8148         (fold_binary_to_constant): Simplify using fold_binary.
8149         (fold_unary_to_constant): Likewise, simplify using fold_unary.
8150
8151 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8152
8153         * gthr-posix.c (pthread_cancel): Define.
8154         (pthread_mutexattr_init): Likewise.
8155         (pthread_mutexattr_settype): Likewise.
8156         (pthread_mutexattr_destroy): Likewise.
8157
8158 2005-04-15  David S. Miller  <davem@davemloft.net>
8159
8160         PR target/20673
8161         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
8162
8163 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
8164
8165         PR tree-optimization/21031
8166         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
8167         (forward_propagate_into_cond_1): Call it.  Forward propagate
8168         integer-integer casts into COND_EXPRs.
8169
8170 2005-04-15  Dave Korn  <dave.korn@artimi.com>
8171
8172         * gcc.c (default_compilers): Clarify obscure error message when
8173         reading from standard input.
8174
8175 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
8176
8177         * basic-block.h (PROP_EQUAL_NOTES): Remove.
8178         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
8179
8180         * tree-ssa-alias.c (init_alias_info): Remove a call to
8181         get_stmt_operands.
8182
8183 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
8184
8185         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
8186         of non-virtual PHI nodes like we use to.
8187
8188 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
8189
8190         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
8191         (attr_copy_rtx): Do not use it.
8192
8193 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
8194
8195         * doc/tree-ssa.texi: Grammer/abbreviation updates.
8196
8197 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
8198
8199         * tree-vect-transform.c (vectorizable_store): Mark necessary
8200         objects in the vectorized store needing renaming.  Update the
8201         SSA graph for V_MAY_DEF operands in the original store.
8202
8203 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
8204
8205         * tree-ssa-pre.c (compute_avail): It's okay to have
8206         TREE_INVARIANT's here, and value number the resulting expressions.
8207         (create_expression_by_pieces): Make sure operands that were
8208         min_invariant when we started, stay that way.
8209
8210 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
8211
8212         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
8213
8214 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
8215
8216         PR tree-optimization/20936.
8217         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
8218
8219 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8220
8221         * doc/invoke.texi: Fix typos.
8222         * doc/md.texi: Likewise.
8223         * doc/rtl.texi: Likewise.
8224         * doc/sourcebuild.texi: Likewise.
8225         * doc/tm.texi: Likewise.
8226
8227 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
8228
8229         PR tree-optimization/21004
8230         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
8231         and floorl in c99 mode only.
8232         * builtins.c (expand_builtin_int_roundingfn): Assert that
8233         fallback_fndecl is not NULL_TREE.
8234
8235 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
8236
8237         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
8238         * basic-block.h: Update the prototype for
8239         purge_all_dead_edges.
8240         * cfgexpand.c (tree_expand_cfg): Update a call to
8241         purge_all_dead_edges.
8242         * combine.c (combine_instructions): Likewise.
8243         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
8244         rest_of_handle_cse2, rest_of_handle_gcse,
8245         rest_of_handle_postreload): likewise.
8246
8247 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
8248
8249         PR middle-end/20739
8250         * gimplify.c (gimplify_addr_expr): Compensate for removal of
8251         e.g. cv-qualification conversions.
8252
8253 2005-04-14  Mike Stump  <mrs@apple.com>
8254
8255         * config/darwin-c.c (framework_construct_pathname): We must
8256         find all headers of a framework in the first instance of it
8257         found in the seach path.
8258
8259 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
8260
8261         PR tree-optimization/21021
8262         * tree-vrp.c (compare_values): Work around a bug in the front
8263         end that produces a comparison of mismatched types.
8264
8265 2004-04-14  Richard Henderson  <rth@redhat.com>
8266
8267         * config/ia64/ia64.h (enum fetchop_code): Remove.
8268         (enum ia64_builtins): Move ...
8269         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
8270         members except BSP and FLUSHRS.
8271         (ia64_init_builtins): Remove __sync builtins.
8272         (ia64_expand_builtin): Likewise.
8273         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
8274         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
8275         (ia64_expand_lock_release): Remove.
8276         * config/ia64/ia64.md (mf): Move to sync.md.
8277         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
8278         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
8279         * config/ia64/sync.md: New file.
8280         (memory_barrier): Rename from mf.
8281         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
8282         (cmpxchg_acq_<I48MODE>): Likewise.
8283         (sync_lock_test_and_set<I48MODE>): Likewise.
8284
8285         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
8286         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
8287
8288 2004-04-14  Richard Henderson  <rth@redhat.com>
8289
8290         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
8291         (ix86_compare_emitted): New.
8292         (ix86_expand_compare): Use ix86_compare_emitted if set.
8293         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
8294         and ix86_compare_op0 are set.
8295         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
8296         (TARGET_CMPXCHG, TARGET_XADD): New.
8297         (ix86_compare_emitted): Declare.
8298         * config/i386/i386.md: Include sync.md
8299         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
8300         (UNSPECV_XCHG, UNSPECV_LOCK): New.
8301         * config/i386/sync.md: New file.
8302
8303 2004-04-14  Richard Henderson  <rth@redhat.com>
8304
8305         PR middle-end/14311
8306         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
8307         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
8308         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
8309         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
8310         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
8311         BT_FN_I8_VPTR_I8_I8): New.
8312         * builtins.def (DEF_SYNC_BUILTIN): New.
8313         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
8314         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
8315         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
8316         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
8317         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
8318         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
8319         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
8320         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
8321         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
8322         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
8323         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
8324         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
8325         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
8326         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
8327         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
8328         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
8329         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
8330         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
8331         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
8332         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
8333         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
8334         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
8335         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
8336         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
8337         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
8338         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
8339         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
8340         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
8341         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
8342         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
8343         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
8344         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
8345         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
8346         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
8347         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
8348         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
8349         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
8350         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
8351         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
8352         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
8353         BUILT_IN_SYNCHRONIZE: New.
8354         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
8355         as a function.  Accept __sync_ as a prefix as well.
8356         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
8357         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
8358         expand_builtin_lock_release): New.
8359         (expand_builtin): Call them.
8360         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
8361         neither BOTH_P nor FALLBACK_P are defined.
8362         (builtin_type_for_size): New.
8363         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
8364         (resolve_overloaded_builtin): New.
8365         * c-common.h (resolve_overloaded_builtin): Declare.
8366         (builtin_type_for_size): Declare.
8367         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
8368         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
8369         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
8370         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
8371         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
8372         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
8373         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
8374         sync_compare_and_swap_cc, sync_lock_test_and_set,
8375         sync_lock_release): New.
8376         * optabs.h: Declare them.
8377         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
8378         expand_sync_operation, expand_sync_fetch_operation,
8379         expand_sync_lock_test_and_set): Declare.
8380         * genopinit.c (optabs): Add sync optabs.
8381         * optabs.c (init_optabs): Initialize sync optabs.
8382         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
8383         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
8384         expand_sync_operation, expand_sync_fetch_operation,
8385         expand_sync_lock_test_and_set): New.
8386         * doc/extend.texi (Atomic Builtins): New section
8387         * doc/md.texi (Standard Names): Add sync patterns.
8388
8389 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
8390
8391         * tree-eh.c (lower_try_finally_copy): Generate new code in
8392         response to goto_queue entries as if the queue was sorted by
8393         index, not pointers.
8394         (lower_try_finally_switch): Likewise.
8395
8396 2005-04-14  Richard Henderson  <rth@redhat.com>
8397
8398         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
8399         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
8400         register.
8401         (ix86_expand_fp_movcc): Update to match.
8402         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
8403         * config/i386/i386-protos.h: Update.
8404         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
8405         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
8406
8407 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
8408
8409         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
8410         refer to 4.0.
8411
8412 2005-04-14  Julian Brown  <julian@codesourcery.com>
8413
8414         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
8415         link failures on ppc64 Linux.
8416
8417 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
8418
8419         * config.gcc: Set cpu_type for s390.
8420
8421 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
8422
8423         Fix PR tree-optimization/20963
8424         * tree-ssa-pre.c (compute_avail): Remove special case for
8425         TREE_INVARIANT.
8426         (create_expression_by_pieces): Add value numbers for forced out
8427         statements.
8428
8429 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
8430
8431         * config/cris/cris.md: Replace references to (reg:SI 16) with
8432         (reg:SI CRIS_SRP_REGNUM).
8433
8434 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
8435
8436         PR tree-optimization/20657
8437         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
8438         create an appropriate range from it.
8439
8440 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
8441
8442         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
8443         <UNSPEC_FIST_CEIL> case.
8444
8445         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
8446         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
8447         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
8448         to implement lfloor and llfloor built-ins as x87 intrinsic function.
8449         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
8450         (lfloor<mode>2): New expanders.
8451         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
8452         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
8453         to implement lceil and llceil built-ins as x87 intrinsic function.
8454         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
8455         (lceil<mode>2): New expanders.
8456
8457 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
8458
8459         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
8460         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
8461
8462 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
8463
8464         PR target/20927
8465         * config/s390/s390-modes.def: Define TFmode.
8466
8467 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
8468
8469         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
8470         (JUMP_TABLES_IN_TEXT_SECTION): Define.
8471         * config/mips/mips.c (mips16_insn_length): Remove reference to
8472         JUMP_TABLES_IN_TEXT_SECTION.
8473
8474 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
8475
8476         * simplify-rtx.c (simplify_binary_operation_1): Return
8477         scalar or vector of constant 0, depending on the xor's
8478         mode.
8479
8480 2005-04-13  Dale Johannesen  <dalej@apple.com>
8481
8482         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
8483         (objc-act.o):  Ditto.
8484         * objc/objc-act.c (objc_gimplify_expr):  New.
8485         (objc_get_callee_fndecl):  New.
8486         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
8487         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
8488         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
8489
8490 2005-04-13  Devang Patel  <dpatel@apple.com>
8491
8492         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
8493         temp variables.
8494
8495 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
8496
8497         CRIS prologue as RTL.
8498         * config/cris/cris-protos.h (cris_emit_movem_store)
8499         (cris_expand_prologue): Prototype.
8500         * config/cris/cris.c (struct machine_function): New member
8501         stdarg_regs.
8502         (cfa_label_num, cris_target_asm_function_prologue): Remove.
8503         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
8504         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
8505         (cris_load_multiple_op, cris_return_address_on_stack)
8506         (cris_return_address_on_stack_for_return): ISO-Cify.
8507         (cris_store_multiple_op): New predicate function.
8508         (cris_expand_prologue, cris_emit_movem_store): New functions.
8509         (cris_print_operand) <case 'O'>: Handle modifications other than
8510         post-increment.
8511         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
8512         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
8513         (cris_gen_movem_load): Rearrange slightly to make local variable
8514         src a parameter, removing osrc.
8515         (cris_setup_incoming_varargs): Set machine_function member
8516         stdarg_regs to correspond to the number of registers that need to
8517         be saved.
8518         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
8519         CRIS_UNSPEC_GOT.
8520         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
8521         cris_general_operand_or_gotless_symbol accept UNSPEC.
8522         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
8523         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
8524         ("*cris_store_multiple"): New pattern.  Tweak common comment above
8525         this and "*cris_load_multiple".
8526         ("prologue"): New define_expand.
8527
8528         * config/cris/cris.md ("epilogue"): Conditionalize on
8529         TARGET_PROLOGUE_EPILOGUE.
8530
8531 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
8532
8533         PR target/20924
8534         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
8535         fpsr 0 instead of fpsr 1.
8536         (divsf3_internal_thr): Ditto.
8537         (divdf3_internal_lat): Ditto.
8538         (divdf3_internal_thr): Ditto.
8539         (divxf3_internal_lat): Ditto.
8540         (divxf3_internal_thr): Ditto.
8541
8542 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
8543
8544         PR tree-optimization/20913
8545         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
8546
8547         PR tree-optimization/20702
8548         * tree-vrp.c (maybe_add_assert_expr): Recurse into
8549         dominator children that haven't been walked into.
8550
8551 2005-04-13  Julian Brown  <julian@codesourcery.com>
8552
8553         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
8554         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
8555         is true.
8556
8557 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
8558
8559         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
8560         config/i386/sse.md: Fix comment typos.
8561
8562         * genattrtab.c (NULL_ATTR): Remove.
8563         * ifcvt.c (NULL_EDGE): Likewise.
8564
8565         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
8566
8567         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
8568         NOTE_PREDICT): Remove.
8569
8570 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8571
8572         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
8573         * configure: Regenerate.
8574         * config.in: Likewise.
8575         * system.h: Declare vsnprintf if not already declared.
8576
8577 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8578
8579         * optc-gen.awk: Handle stand-alone Mask records.
8580         * opth-gen.awk: Likewise.
8581         * doc/options.texi (Option file format): Document them.
8582         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
8583         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
8584         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
8585         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
8586         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
8587         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
8588         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
8589         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
8590         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
8591         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
8592         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
8593         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
8594         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
8595         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
8596         TARGET_LONG_DOUBLE_128): Likewise.
8597         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
8598         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
8599         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
8600         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
8601         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
8602         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
8603         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
8604         * config/sparc/sparc.c (fpu_option_set): New global.
8605         (sparc_handle_option): New function.
8606         (sparc_override_options): Test fpu_option_set.
8607         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
8608         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
8609         * config/sparc/sparc.opt: New file.
8610         * config/sparc/little-endian.opt: Likewise.
8611         * config/sparc/long-double-switch.opt: Likewise.
8612
8613 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
8614
8615         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
8616         (bfin_handle_options): Set it if -mshared-library-id= is seen.
8617         * config/bfin/bfin.opt (mshared-library-id=): Lose
8618         Var(bfin_lib_id_given).
8619
8620 2005-04-13  Matt Thomas  <matt@3am-software.com>
8621
8622         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
8623         defining.
8624
8625 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
8626
8627         * rtl.h (CLEAR_RTX_FLAGS): Remove.
8628
8629         * cgraphunit.c (INSNS_PER_CALL): Remove.
8630
8631         * tree-ssa-forwprop.c (vars,
8632         record_single_argument_cond_exprs,
8633         substitute_single_use_vars): Remove.
8634         (forward_propagate_into_cond_1, forward_propagate_into_cond):
8635         New.
8636         (tree_ssa_forward_propagate_single_use_vars): Call
8637         forward_propagate_into_cond for each COND_EXPR.
8638
8639         * tree-inline.c (INSNS_PER_STMT): Remove.
8640
8641 2005-04-12  Richard Henderson  <rth@redhat.com>
8642
8643         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
8644         (ix86_expand_sse_fp_minmax): ... from ...
8645         (ix86_expand_fp_movcc): ... here.
8646         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
8647         * config/i386/i386-protos.h: Update.
8648         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
8649         (sse_setccsf, sse_setccdf): Allow before reload.
8650         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
8651         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
8652         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
8653         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
8654         (anddf3, nanddf3, iordf3, xordf3): New.
8655
8656 2005-04-12  Jeff Law  <law@redhat.com>
8657
8658         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
8659         (tree-ssa-uncprop.o): Add dependencies.
8660         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
8661         * tree-flow.h (remove_useless_stmts): Remove prototype.
8662         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
8663         remove_useless_stmts.
8664         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
8665         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
8666         * tree-pass.h (pass_uncprop): Declare.
8667         * tree-ssa-uncprop.c: New file.
8668
8669 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
8670
8671         PR target/20670
8672         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
8673
8674 2005-04-12  Caroline Tice  <ctice@apple.com>
8675
8676         Temporary fix for partitioning problems.
8677         * passes.c (rest_of_handle_final): Remove code that
8678         frees unlikely_text_section_name,
8679         * varasm.c (assemble_start_function): Test for partitioning
8680         flag before writing out section labels.
8681         (assemble_end_function): Test for partitioning flag before
8682         writing out section labels.
8683
8684 2005-04-12  Steven Bosscher  <stevenb@suse.de>
8685             Stuart Hastings <stuart@apple.com>
8686             Jan Hubicka  <jh@suse.cz>
8687
8688         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
8689         references to gt-tree-cfg.h.
8690         * basic-block.h (struct basic_block_def): Don't skip rbi
8691         for garbage collection.
8692         (struct reorder_block_def): Make GTY-able.
8693         (struct control_flow_graph): New structure.
8694         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
8695         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
8696         but instead defines to the control_flow_graph for cfun.
8697         (label_to_block_map): New define, points to the label map of
8698         the control_flow_graph for cfun.
8699         (n_edges_for_function, n_basic_blocks_for_function,
8700         last_basic_block_for_function, basic_block_info_for_function,
8701         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
8702         basic_block_info_for_function, label_to_block_map_for_function):
8703         Counterparts for the above, taking a struct function as an extra
8704         argument.
8705         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
8706         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
8707         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
8708         (alloc_rbi_pool, free_rbi_pool): Remove.
8709         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
8710         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
8711         here...
8712         (cfg_layout_finalize) ... and don't free it here.
8713         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
8714         garbage collected.
8715         * flow.c (free_basic_block_vars): Set label_to_block_map and
8716         n_edges to zero too.
8717         * function.h (struct function): Add cfg field.
8718         * function.c (allocate_struct_function): Allocate the cfg.
8719         * tree-cfg.c (label_to_block_map): Remove.
8720         (build_tree_cfg): Don't allocate the rbi pool here...
8721         (delete_tree_cfg_annotations): ...and don't free it here.
8722         Also don't nullify label_to_block_map for cfun.
8723
8724 2005-04-12  Caroline Tice  <ctice@apple.com>
8725
8726         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
8727         Revert my patch from April 9.
8728         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
8729         (reorder_basic_blocks): Revert my patch from April 9.
8730         (insert_section_boundary_note): Revert my patch from April 9.
8731         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
8732         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
8733         (COLD_END_LABEL):  Revert my patch from April 9.
8734         (cold_text_section_label):  Revert my patch from April 9.
8735         (cold_end_label): Revert my patch from April 9.
8736         (dwarf2out_switch_text_section): Revert my patch from April 9.
8737         (output_aranges): Revert my patch from April 9.
8738         (output_ranges):  Revert my patch from April 9.
8739         (output_line_info): Revert my patch from April 9.
8740         (add_location_or_const_value_attribute):  Revert my patch from April 9.
8741         (dwarf2out_var_location): Revert my patch from April 9.
8742         (dwarf2out_init):  Revert my patch from April 9.
8743         (dwarf2out_finish): Revert my patch from April 9.
8744         * function.h (struct function): Revert my patch from April 9.
8745         * opts.c (decode_options): Revert my patch from April 9.
8746         * output.h (unlikely_section_label, hot_section_label,
8747         hot_section_end_label, cold_section_end_label,
8748         unlikely_text_section_name): Revert my patch from April 9.
8749         * passes.c (rest_of_handle_final): Revert my patch from April 9.
8750         * varasm.c (unlikely_section_label, hot_section_label,
8751         hot_section_end_label, cold_section_end_label,
8752         unlikely_text_section_name): Revert my patch from April 9.
8753         (initialize_cold_section_name): Revert my patch from April 9.
8754         (unlikely_text_section): Revert my patch from April 9.
8755         (in_unlikely_text_section): Revert my patch from April 9.
8756         (named_section): Revert my patch from April 9.
8757         (function_section): Revert my patch from April 9.
8758         (current_function_section): Revert my patch from April 9.
8759         (assemble_start_function): Revert my patch from April 9.
8760         (assemble_end_function): Revert my patch from April 9.
8761         (default_section_type_flags_1): Revert my patch from April 9.
8762
8763 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8764
8765         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
8766         * config/sparc/sparc.md (untyped_call): Save the registers manually.
8767
8768         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
8769
8770 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
8771
8772         PR middle-end/20917
8773         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
8774         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
8775
8776 2004-04-12  Richard Henderson  <rth@redhat.com>
8777
8778         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
8779         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
8780         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
8781         (UNSPEC_*, UNSPECV_*): Renumber.
8782
8783 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
8784
8785         PR mudflap/19266
8786         From Richard Henderson <rth@redhat.com>:
8787         * tree-mudflap.c (mf_build_check_statement_for): Correct block
8788         splitting logic.
8789
8790 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
8791
8792         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
8793
8794 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
8795
8796         * config/bfin/bfin.c (bfin_library_id_string): Remove.
8797         (bfin_library_id): New variable.
8798         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
8799         instead of bfin_library_id_string.
8800         (bfin_handle_option): New function.
8801         (override_options): Remove most code to deal with shared library IDs,
8802         just check they aren't used without -mid-shared-library.
8803         (TARGET_HANDLE_OPTION): Define.
8804         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
8805         * config/bfin/bfin.opt (mshared-library-id=): New.
8806
8807 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
8808
8809         * tree-vect-transform.c: Fix comment typos.
8810
8811 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
8812
8813         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
8814         split critical edges when not possible/profitable.
8815
8816 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
8817
8818         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
8819         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
8820         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
8821         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
8822         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
8823         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
8824         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
8825         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
8826         MASK_NO_BITFIELD.
8827         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
8828         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8829         * config/ns32k/ns32k.opt: New file.
8830
8831 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
8832
8833         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
8834         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
8835         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
8836         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
8837         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
8838         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
8839         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
8840         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
8841         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
8842         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
8843         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
8844         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
8845         (MASK_COLDFIRE): Formatting fixes.
8846         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
8847         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
8848         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
8849         "_current_shared_library_a5_offset_".
8850         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
8851         (MASK_ALL_CPU_BITS): New macro.
8852         (m68k_handle_option): New function.
8853         (override_options): Remove handling of m68k_library_id_string.
8854         * config/m68k/m68k.opt: New file.
8855         * config/m68k/ieee.opt: New file.
8856
8857 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
8858
8859         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
8860         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
8861         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
8862         (TARGET_CXX): Adjust accordingly.
8863         * target.h (struct gcc_target): Remove epxort_class_data.  Add
8864         determine_class_data_visibility and class_data_always_comdat.
8865         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
8866         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
8867         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
8868         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
8869         (arm_cxx_determine_class_data_visibility): New.
8870         (arm_cxx_class_data_always_comdat): Likewise.
8871         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
8872         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
8873         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
8874         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
8875         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
8876         Define.
8877
8878 2005-04-11  Devang Patel  <dpatel@apple.com>
8879
8880         * tree-data-ref.c (build_classic_dist_vector,
8881         compute_subscript_distance): Make externally visible.
8882         * tree-data-ref.h (build_classic_dist_vector,
8883         compute_subscript_distance): Same.
8884         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
8885         Check distance vector against vectorization factor.
8886         (vect_analyze_loop): Determine vectorizaion factor before
8887         analyzing data dependences.
8888         * tree-vectorizer.c (loops_num): Make it externally visible and
8889         rename ...
8890         * tree-vectorizer.c (vect_loops_num): ... new name.
8891         * tree-vectorizer.h  (vect_loops_num): New.
8892
8893 2005-04-11  Devang Patel  <dpatel@apple.com>
8894
8895         * tree-vect-analyze.c (vect_analyze_operations): Check
8896         vectorizable codition.
8897         * tree-vect-transform.c (vect_is_simple_cond): New function.
8898         (vectorizable_condition): New function.
8899         (vect_transform_stmt): Handle condition_vec_info_type.
8900         * tree-vectorizer.h (enum stmt_vec_info_type): Add
8901         condition_vec_info_type.
8902         (vectorizable_condition): New.
8903
8904 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
8905
8906         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
8907         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
8908         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
8909
8910         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
8911         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
8912
8913         * dwarf2out.c (output_line_info): Don't try to dereference
8914         a NULL current_function_decl.
8915
8916         * config/t-slibgcc-darwin: Don't put shared libraries in
8917         directories other than $(slibdir).
8918         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
8919         OS uses for it.
8920
8921 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
8922
8923         PR tree-optimization/20933
8924         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
8925         logic to reject aliases between read-only and writable
8926         variables ...
8927         (may_alias_p): ... here.
8928         (get_tmt_for): Do not associate read-only tags to pointers
8929         whose pointed-to type is not read-only.
8930         * tree-ssa.c (verify_ssa): Check that memory stores have at
8931         least one V_MAY_DEF or V_MUST_DEF.
8932
8933 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8934
8935         PR/17092
8936         * configure.ac (gcc_UNLOCKED_FUNCS): New.
8937         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
8938         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
8939         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
8940         _unlocked function.
8941         (fwrite_unlocked): Fix prototype.
8942
8943         * configure, config.in: Regenerate.
8944
8945 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
8946
8947         * tree-ssa-loop-im.c: Include real.h.
8948         (determine_invariantness_stmt): If real division divisor is
8949         invariant and flag_unsafe_math_optimizations enabled, generate
8950         invariant reciprocal for hoisting.
8951         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
8952
8953 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
8954
8955         Fix PR tree-optimization/20926
8956
8957         * tree-ssa-alias.c (add_type_alias): Handle subvars.
8958
8959 2005-04-11  Devang Patel  <dpatel@apple.com>
8960
8961         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
8962         operand ordering.
8963
8964 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
8965
8966         * fold-const.c (fold_binary_op_with_conditional_arg):
8967         use fold_buildN instead of "fold (buildN" in some
8968         non obvious places.
8969         (fold_unary): Likewise.
8970         (fold_binary): Likewise.
8971
8972 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
8973
8974         Fix PR tree-optimization/20612
8975         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
8976         handling
8977         (perfect_nestify): preheaderbb is *not* part of loop of the
8978         old destination.
8979
8980 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
8981
8982         * tree-ssa-alias.c (may_alias_p): If the variable
8983         is a global variable and the pointer is parameter
8984         and -fargument-noalias-global is used, then
8985         the pointer cannot alias the variable.
8986
8987 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
8988
8989         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
8990         * config/sparc/sparc.h: Likewise.
8991         * config/sparc/sparc.md: Likewise.
8992
8993 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
8994
8995         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
8996
8997         * tree-vrp.c: Fix a comment typo.
8998
8999 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
9000
9001         PR tree-optimization/20920
9002         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
9003         SSA_NAME flows through an abnormal edge.
9004         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
9005         through abnormal edges.
9006         (maybe_add_assert_expr): Likewise.
9007
9008 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
9009
9010         * config/s390/s390.h (s390_tune_string, s390_arch_string)
9011         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
9012         (s390_stack_size_string, s390_stack_guard_string, target_flags)
9013         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
9014         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
9015         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
9016         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
9017         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
9018         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
9019         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
9020         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
9021         (TARGET_HANDLE_OPTION): Likewise.
9022         (s390_tune): Initialize to PROCESSOR_max.
9023         (s390_arch_string): Make static.
9024         (s390_tune_string, s390_warn_framesize_string): Delete.
9025         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
9026         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
9027         (s390_handle_arch_option, s390_handle_option): New functions.
9028         (override_options): Remove parsing of option strings.
9029         * config/s390/s390.opt: New file.
9030
9031 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
9032
9033         * tree-complex.c (expand_vector_operations): Call
9034         update_stmt_if_modified.
9035
9036 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
9037
9038         * tree-vect-analyze (vect_determine_vectorization_factor):
9039         Do not use GET_MODE_NUNITS.
9040         * tree-vect-transform.c (vect_get_vec_def_for_operand,
9041         (vectorizable_load, vect_transform_loop): Likewise.
9042
9043 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
9044
9045         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
9046         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
9047         * optabs.h (enum optab_index): Add new OTI_lceil.
9048         (lceil_optab): Define corresponding macro.
9049         * optabs.c (init_optabs): Initialize lceil_optab.
9050         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
9051         and lceildi2 patterns.
9052         * builtins.c (expand_builtin_int_roundingfn): Handle
9053         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
9054         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
9055         BUILT_IN_LLCEIL{,F,L}.
9056         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
9057         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
9058         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
9059         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
9060         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
9061         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
9062         into lceil built-in function and (long long int)ceil{,f,l} into
9063         llceil built-in function.
9064         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
9065         BUILT_IN_LLCEIL.
9066
9067 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9068
9069         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
9070         zero.
9071
9072 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
9073
9074         * config/arm/arm.c: Fix a comment typo.
9075         * doc/tree-ssa.texi: Fix a typo.
9076
9077 2005-04-10  Steven Bosscher  <stevenb@suse.de>
9078
9079         * cselib.c (clear_table): Rename to cselib_clear_table.
9080         * cselib.h (cselib_clear_table): Add prototype.
9081         * gcse.c (gcse_main): Make 'f' argument unused.
9082         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
9083         of each basic block instead.
9084         (compute_sets, compute_hash_table_work): Likewise.
9085         (constprop_register): Change int 'alter_jumps' argument to bool.
9086         (do_local_cprop): Likewise.
9087         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
9088         the insn chain.  Explicitly clear the cselib tables after finishing
9089         one basic block.  Make sure there are no unterminated libcall blocks.
9090         Update compute_sets call.
9091         (cprop): Walk basic blocks instead of the insn chain.
9092         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
9093         Likewise.
9094         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
9095         one_cprop_pass calls.
9096
9097 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
9098
9099         * combine.c (combine_simplify_rtx): Remove a transformation that
9100         relies on an invalid assumption about rtl sign-extension semantics.
9101
9102 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
9103
9104         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
9105         to build_int_cst_wide.
9106
9107 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
9108
9109         PR target/20126
9110         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
9111         set the original address pseudo to the correct value before the
9112         original insn, if possible, and leave the insn alone, otherwise
9113         create a new pseudo, set it and replace it in the insn.
9114         * recog.c (validate_change_maybe_volatile): New.
9115         * recog.h (validate_change_maybe_volatile): Declare.
9116
9117 2005-04-09  Caroline Tice  <ctice@apple.com>
9118
9119         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
9120         Remove targetm.have_named_sections test.
9121         (fix_edges_for_rarely_executed_code): Likewise.
9122         (insert_section_boundary_note): Likewise.
9123         (reorder_basic_blocks): Check partitioning flag before calling
9124         verify_hot_cold_block_grouping.
9125         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
9126         the function struct rather than global variables.
9127         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
9128         (COLD_END_LABEL): Likewise
9129         (cold_text_section_label): New static global variable.
9130         (cold_end_label): Likewise.
9131         (dwarf2out_switch_text_section): Get hot/cold section labels from
9132         the function struct rather than global variables.
9133         (output_aranges): Use cold_text_section_label and cold_end_label;
9134         check partitioning flag before putting out delta.
9135         (output_ranges): Remove incorrect code attempting to use
9136         hot/cold labels.
9137         (output_line_info): Get cold section label from function struct.
9138         (add_location_or_const_value_attribute): Likewise.
9139         (get_subprogram_die): Get hot/cold section labels from function struct.
9140         (dwarf2out_var_location): Likewise.
9141         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
9142         write out cold_text_section_label if partition flag is set.
9143         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
9144         * function.h (struct function): Add new fields to point to hot/cold
9145         section labels: hot_section_label, cold_section_label,
9146         hot_section_end_label and cold_section_end_label; also add new field
9147         for cold text section name, unlikely_text_section_name.
9148         * opts.c (decode_options): Turn off partitioning flag if
9149         !targetm.have_named_sections.
9150         * output.h (hot_section_label): Remove.
9151         (hot_section_end_label): Remove.
9152         (cold_section_end_label): Remove.
9153         (unlikely_section_label): Remove.
9154         (unlikely_text_section_name): Remove.
9155         * passes.c (rest_of_handle_final):  Remove code that frees
9156         unlikely_text_section_name.
9157         * varasm.c (unlikely_section_label): Remove.
9158         (hot_section_label): Remove.
9159         (hot_section_end_label): Remove.
9160         (cold_section_end_label): Remove.
9161         (unlikely_text_section_name):  Remove.
9162         (initialize_cold_section_name): Modify to call
9163         targetm.strip_name_encoding; to store cold section name in current
9164         function struct, if it exists; and to only use the decl_section_name
9165         if flag_named_sections is true.
9166         (unlikely_text_section): Modify to get section name out of current
9167         function struct, if there is one; otherwise build it from
9168         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
9169         (in_unlikely_text_section): Likewise.
9170         (named_section): Modify to get/put cold section name in current function
9171         struct, if there is one.
9172         (function_section):  Change 'bool unlikely' to 'int reloc'; check
9173         targetm.have_named_sections before calling named_section.
9174         (current_function_section): Likewise.
9175         (assemble_start_function): Modify to get/put unlikely_text_section_name
9176         in current function struct; modify to get hot/cold section labels
9177         from function struct; initialize labels using
9178         ASM_GENERATE_INTERNAL_LABEL;
9179         test partitioning flag before writing out hot section label.
9180         (assemble_end_function): Test partitioning flag before writing out
9181         hot/cold section labels.
9182         (default_section_type_flags_1):  Modify to use array instead of
9183          char* for unlikely_text_section_name; set flags correctly for
9184          cold text section if there is not a current function decl.
9185
9186 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
9187
9188         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
9189         and TI_VA_LIST_FPR_COUNTER_FIELD.
9190         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
9191         * tree-pass.h (pass_stdarg): Add.
9192         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
9193         * tree-stdarg.c: New file.
9194         * tree-stdarg.h: New file.
9195         * Makefile.in (OBJS-common): Add tree-stdarg.o.
9196         (tree-stdarg.o): Add dependencies.
9197         * function.h (struct function): Add va_list_gpr_size and
9198         va_list_fpr_size fields.
9199         * function.c (allocate_struct_function): Initialize them.
9200         * target.h (struct gcc_target): Add stdarg_optimize_hook.
9201         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
9202         (TARGET_INITIALIZER): Add it.
9203
9204         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
9205         va_list_{g,f}pr_counter_field.
9206         (ix86_setup_incoming_varargs): Don't do anything if reg_save
9207         area will not be used.  Only save registers that tree-stdarg.c
9208         detected they need saving.
9209         (ix86_va_start): Don't set up fields that won't be used.
9210
9211         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
9212         va_list_{g,f}pr_counter_field.
9213         (setup_incoming_varargs): Don't do anything if reg_save
9214         area will not be used.  Only save registers that tree-stdarg.c
9215         detected they need saving.
9216         (rs6000_va_start): Don't set up fields that won't be used.
9217
9218         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
9219         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
9220         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
9221         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
9222
9223 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
9224
9225         PR target/20795
9226         * config/i386/i386.c (construct_container): Pass empty aligned
9227         struct, union or class in memory.
9228
9229 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
9230
9231         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
9232         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
9233         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
9234         config/rs6000/predicates.md: Fix comment typos.
9235
9236         * sched-int.h (haifa_insn_data): Remove blockage and units.
9237         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
9238         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
9239         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
9240
9241 2005-04-09  Jan Hubicka  <jh@suse.cz>
9242             Steven Bosscher  <stevenb@suse.de>
9243
9244         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
9245         * cfgloop.c (get_loop_exit_edges): Likewise.
9246         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
9247         (unloop): Likewise.
9248         * loop-unroll.c (analyze_insns_in_loop): Likewise.
9249         * tree-cfg.c (dump_cfg_status): Likewise.
9250
9251 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
9252
9253         * config/rs6000/predicates.md (altivec_register_operand): Remove
9254         redundant match_code test.
9255         (gpc_reg_operand): Same.
9256         (cc_reg_operand): Same.
9257         (cc_reg_not_cr0_operand): Same.
9258
9259 2005-04-09  Jan Hubicka  <jh@suse.cz>
9260
9261         Forgotten hunk from my last merge patch:
9262         * final.c (output_addr_const): Do not call mark_referenced.
9263
9264 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
9265
9266         * doc/tree-ssa.texi: Add immediate use documentation.
9267
9268 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
9269
9270         * arm.c (FL_WBUF): Define.
9271         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
9272         (arm_is_6_or_7): Delete.
9273         (arm_tune_wbuf): New.
9274         (arm_override_options): Set arm_tune_wbuf.
9275         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
9276         (arm_is_6_or_7): Delete declaration.
9277         (arm_tune_wbuf): New declartion.
9278         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
9279         (model_wbuf): Derive from arm_tune_wbuf.
9280         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
9281         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
9282         (arm740t): Mark CPUs as having a write buffer.
9283
9284 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
9285
9286         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
9287         of 'const_double_operand' in operand 2 constraints.  Update enable
9288         condition.
9289
9290 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
9291
9292         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
9293         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
9294         * optabs.h (enum optab_index): Add new OTI_lfloor.
9295         (lfloor_optab): Define corresponding macro.
9296         * optabs.c (init_optabs): Initialize lfloor_optab.
9297         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
9298         and lfloordi2 patterns.
9299         * builtins.c (expand_builtin_int_roundingfn): New prototype.
9300         (expand_builtin_int_roundingfn): New function.
9301         (fold_builtin_int_roundingfn): New prototype.
9302         (fold_builtin_int_roundingfn): New function, renamed from
9303         fold_builtin_lround.
9304         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
9305         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
9306         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
9307         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
9308         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
9309         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
9310         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
9311         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
9312         into lfloor built-in function and (long long int)floor{,f,l} into
9313         llfloor built-in function.
9314         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
9315         BUILT_IN_LLFLOOR.
9316
9317 2005-04-08  Ian Lance Taylor  <ian@airs.com>
9318
9319         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
9320         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
9321         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
9322         (DO_COND, DO_BODY): Likewise.
9323         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
9324         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
9325         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
9326         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
9327         (build_continue_stmt, build_break_stmt): Don't declare.
9328         (c_do_switch_warnings): Update declaration.
9329         * c-gimplify.c (enum bc_t): Remove.
9330         (struct c_gimplify_ctx, ctxp): Remove.
9331         (push_context, pop_context): Remove static functions.
9332         (c_genericize): Don't call push_context or pop_context.
9333         (begin_bc_block, finish_bc_block): Remove static functions.
9334         (build_bc_goto): Likewise.
9335         (gimplify_c_loop): Likewise.
9336         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
9337         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
9338         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
9339         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
9340         * c-common.c (c_do_switch_warnings): Rename from
9341         c_do_switch_warnings_1.
9342         (c_do_switch_warnings) [old version]: Remove.
9343         (c_do_switch_expr_warnings): Remove.
9344         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
9345         function instead of c_do_switch_expr_warnings.
9346         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
9347         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
9348         * c-pretty-print.c (pp_c_statement): Likewise.
9349         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
9350
9351 2005-04-08  Devang Patel  <dpatel@apple.com>
9352
9353         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
9354         While selecting replacement condition pay attention to loop header.
9355
9356 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
9357
9358         Merge from tree-cleanup-branch: VRP, store CCP, store
9359             copy-prop, incremental SSA updating of FUD chains and
9360             newly exposed symbols.
9361
9362         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
9363         (OBJS-common): Add tree-vrp.o.
9364         (tree-vrp.o): New rule.
9365         * basic-block.h (nearest_common_dominator_for_set): Declare.
9366         * common.opt (ftree-store-ccp): New flag.
9367         (ftree-copy-prop): New flag.
9368         (ftree-vrp): New flag.
9369         (ftree-store-copy-prop): New flag.
9370         * dominance.c (nearest_common_dominator_for_set): New.
9371         * domwalk.c (walk_dominator_tree): Only traverse
9372         statements in blocks marked in walk_data->interesting_blocks.
9373         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
9374         * fold-const.c (fold): Handle ASSERT_EXPR.
9375         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
9376         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
9377         flag_tree_vrp at -O2.
9378         * timevar.def (TV_TREE_VRP): Define.
9379         (TV_TREE_COPY_PROP): Define.
9380         (TV_TREE_STORE_COPY_PROP): Define.
9381         (TV_TREE_SSA_INCREMENTAL): Define.
9382         (TV_TREE_STORE_CCP): Define.
9383         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
9384         to kill_redundant_phi_nodes from comment.
9385         (verify_expr): Handle ASSERT_EXPR.
9386         * tree-dfa.c (mark_new_vars_to_rename): Remove second
9387         argument.  Update all users.
9388         (mark_call_clobbered_vars_to_rename): Remove.  Update all
9389         users.
9390         * tree-flow-inline.h (unmodifiable_var_p): New.
9391         * tree-flow.h (enum value_range_type): Declare.
9392         (struct value_range_def): Declare.
9393         (value_range): Declare.
9394         (remove_all_phi_nodes_for): Remove.  Update all users.
9395         (find_phi_node_for): Declare.
9396         (add_type_alias): Declare.
9397         (count_uses_and_derefs): Declare.
9398         (kill_redundant_phi_nodes): Remove.
9399         (rewrite_into_ssa): Remove.
9400         (rewrite_def_def_chains): Remove.
9401         (update_ssa, register_new_name_mapping, create_new_def_for,
9402         need_ssa_update_p, name_registered_for_update_p,
9403         release_ssa_name_after_update_ssa, dump_repl_tbl,
9404         debug_repl_tbl, dump_names_replaced_by,
9405         debug_names_replaced_by, mark_sym_for_renaming,
9406         mark_set_for_renaming, get_current_def, set_current_def,
9407         get_value_range, dump_value_range, debug_value_range,
9408         dump_all_value_ranges, debug_all_value_ranges,
9409         expr_computes_nonzero, loop_depth_of_name,
9410         unmodifiable_var_p): Declare.
9411         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
9412         ASSERT_EXPR.
9413         * tree-into-ssa.c (block_defs_stack): Update comment.
9414         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
9415         syms_to_rename, names_to_release, repl_tbl,
9416         need_to_initialize_update_ssa_p, need_to_update_vops_p,
9417         need_to_replace_names_p): New locals.
9418         (NAME_SETS_GROWTH_FACTOR): Define.
9419         (struct repl_map_d): Declare.
9420         (struct mark_def_sites_global_data): Add field
9421         interesting_blocks.
9422         (enum rewrite_mode): Declare.
9423         (REGISTER_DEFS_IN_THIS_STMT): Define.
9424         (compute_global_livein): Use last_basic_block instead of
9425         n_basic_blocks.
9426         (set_def_block): Remove last argument.  Update all callers.
9427         (prepare_use_operand_for_rename): Remove.  Update all callers.
9428         (prepare_def_operand_for_rename): Remove.  Update all callers.
9429         (symbol_marked_for_renaming): New.
9430         (is_old_name): New.
9431         (is_new_name): New.
9432         (repl_map_hash): New.
9433         (repl_map_eq): New.
9434         (repl_map_free): New.
9435         (names_replaced_by): New.
9436         (add_to_repl_tbl): New.
9437         (add_new_name_mapping): New.
9438         (mark_def_sites): Assume that all the operands in the
9439         statement are in normal form.
9440         (find_idf): Assert that the block in the stack is valid.
9441         (get_default_def_for): New.
9442         (insert_phi_nodes_for): Add new argument 'update_p'.
9443         Add documentation.
9444         If update_p is true, add a new mapping between the LHS of
9445         each new PHI and the name that it replaces.
9446         (insert_phi_nodes_1): Only call find_idf if needed.
9447         (get_reaching_def): Call get_default_def_for.
9448         (rewrite_operand): Remove.
9449         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
9450         and REWRITE_THIS_STMT are false.
9451         Assume that all the operands in the statement are in
9452         normal form.
9453         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
9454         (rewrite_virtual_phi_arguments): Remove.
9455         (invalidate_name_tags): Remove.
9456         (register_new_update_single, register_new_update_set,
9457         rewrite_update_init_block, replace_use,
9458         rewrite_update_fini_block, rewrite_update_stmt,
9459         rewrite_update_phi_arguments): New.
9460         rewrite_blocks): Remove argument 'fix_virtual_phis'.
9461         Add arguments 'entry', 'what' and 'blocks'.
9462         Initialize the dominator walker according to 'what' and
9463         'blocks'.
9464         Start the dominator walk at 'entry'.
9465         (mark_def_site_blocks): Add argument 'interesting_blocks'.
9466         Use it to configure the dominator walker.
9467         (rewrite_into_ssa): Remove argument 'all'.
9468         Make internal.
9469         (rewrite_all_into_ssa): Remove.
9470         (rewrite_def_def_chains): Remove.
9471         (mark_def_interesting, mark_use_interesting,
9472         prepare_phi_args_for_update, prepare_block_for_update,
9473         prepare_def_site_for, prepare_def_sites,
9474         dump_names_replaced_by, debug_names_replaced_by,
9475         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
9476         delete_update_ssa, create_new_def_for,
9477         register_new_name_mapping, mark_sym_for_renaming,
9478         mark_set_for_renaming, need_ssa_update_p,
9479         name_registered_for_update_p, ssa_names_to_replace,
9480         release_ssa_name_after_update_ssa,
9481         insert_updated_phi_nodes_for, update_ssa): New.
9482         * tree-loop-linear.c (linear_transform_loops): Call
9483         update_ssa instead of rewrite_into_ssa.
9484         * tree-optimize.c (vars_to_rename): Remove.
9485         Update all users.
9486         (init_tree_optimization_passes): Replace
9487         pass_redundant_phi with pass_copy_prop.
9488         Add pass_vrp.
9489         Replace pass_ccp with pass_store_ccp.
9490         Add pass_store_copy_prop after pass_store_ccp.
9491         (execute_todo): If the TODO_ flags don't include updating
9492         the SSA form, assert that it does not need to be updated.
9493         Call update_ssa instead of rewrite_into_ssa and
9494         rewrite_def_def_chains.
9495         If TODO_verify_loops is set, call verify_loop_closed_ssa.
9496         (tree_rest_of_compilation):
9497         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
9498         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
9499         TODO_cleanup_cfg): Renumber.
9500         (TODO_verify_loops, TODO_update_ssa,
9501         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
9502         TODO_update_ssa_only_virtuals): Define.
9503         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
9504         Declare.
9505         * tree-phinodes.c (make_phi_node): Update documentation.
9506         (remove_all_phi_nodes_for): Remove.
9507         (find_phi_node_for): New.
9508         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
9509         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
9510         (interpret_rhs_modify_expr): Likewise.
9511         * tree-sra.c (decide_instantiations): Mark all symbols in
9512         SRA_CANDIDATES for renaming.
9513         (mark_all_v_defs_1): Rename from mark_all_v_defs.
9514         (mark_all_v_defs): New function.  Update all users to call it
9515         with the whole list of scalarized statements, not just the
9516         first one.
9517         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
9518         (compute_flow_insensitive_aliasing): If the tag is
9519         unmodifiable and the variable isn't or vice-versa, don't
9520         make them alias of each other.
9521         (setup_pointers_and_addressables): If the type tag for
9522         VAR is about to change, mark the old one for renaming.
9523         (add_type_alias): New.
9524         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
9525         (ccp_lattice_t): Rename from latticevalue.
9526         (value): Remove.  Update all users.
9527         (const_val): New local variable.
9528         (do_store_ccp): New local variable.
9529         (dump_lattice_value): Handle UNINITIALIZED.
9530         (debug_lattice_value): New.
9531         (get_default_value): Re-write.
9532         (set_lattice_value): Re-write.
9533         (def_to_varying): Remove.  Update all users.
9534         (likely_value): Return VARYING for statements that make
9535         stores when STORE_CCP is false.
9536         Return VARYING for any statement other than MODIFY_EXPR,
9537         COND_EXPR and SWITCH_EXPR.
9538         (ccp_initialize): Re-write.
9539         (replace_uses_in, replace_vuse_in, substitute_and_fold):
9540         Move to tree-ssa-propagate.c.
9541         (ccp_lattice_meet): Handle memory stores when
9542         DO_STORE_CCP is true.
9543         (ccp_visit_phi_node): Likewise.
9544         (ccp_fold): Likewise.
9545         (evaluate_stmt): Likewise.
9546         (visit_assignment): Likewise.
9547         (ccp_visit_stmt): Likewise.
9548         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
9549         into DO_STORE_CCP.
9550         (do_ssa_ccp): New.
9551         (pass_ccp): Use it.
9552         (do_ssa_store_ccp): New.
9553         (gate_store_ccp): New.
9554         (pass_store_ccp): Declare.
9555         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
9556         (may_propagate_copy): Reformat.
9557         Don't abort if ORIG is a virtual and DEST isn't.
9558         If NEW does not have alias information but DEST does,
9559         copy it.
9560         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
9561         copy_prop_kind, which_copy_prop): Declare.
9562         (stmt_may_generate_copy, get_copy_of_val,
9563         get_last_copy_of, set_copy_of_val, dump_copy_of,
9564         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
9565         copy_prop_visit_stmt, copy_prop_visit_phi_node,
9566         init_copy_prop, fini_copy_prop, execute_copy_prop,
9567         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
9568         store_copy_prop): New.
9569         (pass_copy_prop, pass_store_copy_prop): Declare.
9570         * tree-ssa-dom.c (struct opt_stats_d): Add fields
9571         'num_const_prop' and 'num_copy_prop'.
9572         (cprop_operand): Update them.
9573         (dump_dominator_optimization_stats): Dump them.
9574         (tree_ssa_dominator_optimize): Call update_ssa instead of
9575         rewrite_into_ssa.
9576         (loop_depth_of_name): Declare extern.
9577         (simplify_cond_and_lookup_avail_expr): Guard against NULL
9578         values for LOW or HIGH.
9579         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
9580         (record_equivalences_from_stmt): Call expr_computes_nonzero.
9581         (cprop_operand): Only propagate if VAL != OP.
9582         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
9583         statement for renaming.
9584         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
9585         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
9586         add_type_alias if necessary.
9587         Call mark_new_vars_to_rename.
9588         (tree_ssa_iv_optimize): If new symbols need to be renamed,
9589         mark every statement updated, call update_ssa and
9590         rewrite_into_loop_closed_ssa.
9591         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
9592         from LIVEIN if VAR is a virtual.
9593         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
9594         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
9595         (get_call_expr_operands): Reformat statement.
9596         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
9597         symbols.
9598         * tree-ssa-propagate.c (ssa_prop_init): Initialize
9599         SSA_NAME_VALUE for every name.
9600         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
9601         get_value_loaded_by): New.
9602         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
9603         substitute_and_fold): Move from tree-ssa-ccp.c.
9604         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
9605         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
9606         get_value_loaded_by, replace_uses_in, substitute_and_fold):
9607         Declare.
9608         * tree-ssa.c (verify_use): Fix error message.
9609         (propagate_into_addr, replace_immediate_uses, get_eq_name,
9610         check_phi_redundancy, kill_redundant_phi_nodes,
9611         pass_redundant_phi): Remove.  Update all users.
9612         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
9613         add_type_alias, if necessary.
9614         * tree-vectorizer.h (struct _stmt_vect_info): Update
9615         documentation for field 'memtag'.
9616         * tree-vrp.c: New file.
9617         * tree.def (ASSERT_EXPR): Define.
9618         * tree.h (ASSERT_EXPR_VAR): Define.
9619         (ASSERT_EXPR_COND): Define.
9620         (SSA_NAME_VALUE_RANGE): Define.
9621         (struct tree_ssa_name): Add field 'value_range'.
9622         (PHI_REWRITTEN): Remove.
9623         (struct tree_phi_node): Remove field 'rewritten'.
9624         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
9625         -ftree-store-copy-prop): Document.
9626         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
9627         Document usage of update_ssa.
9628
9629 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
9630
9631         PR target/20814
9632         * config/rs6000/predicates.md (altivec_register_operand): Accept
9633         SUBREG.
9634         (and64_operand): Do not limit CONST_INT to mask64_operand.
9635         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
9636         (and_operand): Do not limit CONST_INT to mask_operand.
9637
9638 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
9639
9640         PR rtl-optimization/20466
9641         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
9642         for overlap of the address of each list member.
9643         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
9644
9645 2005-04-08  Mike Stump  <mrs@apple.com>
9646
9647         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
9648
9649         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
9650         instead of 4.
9651
9652 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
9653
9654         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
9655
9656         * function.c (push_function_context_to): Don't set
9657         contains_functions.
9658         * function.h (function): Remove contains_functions.
9659         (current_function_contains_functions): Remove.
9660
9661         * function.h (function): Remove instrument_entry_exit.
9662         (current_function_instrument_entry_exit): Remove.
9663
9664         * function.h (nonlocal_labels): Remove.
9665
9666         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
9667
9668         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
9669         (check_attr_value, write_attr_get, write_expr_attr_cache,
9670         find_attr, make_internal_attr): Don't reference negative_ok or
9671         unsigned_p.
9672         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
9673         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
9674         (ATTR_STATIC): Adjust the value.
9675
9676         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
9677
9678 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
9679
9680         * config/s390/tpf.h (ASM_SPEC): Define.
9681
9682 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
9683
9684         * tree-flow.h: Remove the prototype for
9685         redirect_immediate_uses.
9686         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
9687
9688 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
9689
9690         * arm.c (arm_const_double_by_parts): New function.
9691         * arm-protos.h (arm_const_double_by_parts): Add prototype.
9692         * arm.md (define_split for 64-bit constants): Add another one.
9693
9694 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
9695
9696         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
9697
9698 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9699
9700         * system.h: Revert last change.
9701
9702 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
9703
9704         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
9705         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
9706         (TARGET_SWITCHES): Delete.
9707         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
9708         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
9709         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
9710         * config/xtensa/xtensa.opt: New file.
9711
9712 2005-04-08  Ben Elliston  <bje@au.ibm.com>
9713
9714         * config/fp-bit.c: Include L_mul_tf in #endif comment.
9715         * config/fp-bit.h: Tidy comments.
9716
9717 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9718
9719         * system.h: Poison PARAMS.
9720
9721 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
9722
9723         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
9724         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
9725         (TARGET_SWITCHES): Delete.
9726         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
9727         * config/vax/vax.opt: New file.
9728
9729 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
9730
9731         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
9732
9733 2005-04-07  Ian Lance Taylor  <ian@airs.com>
9734
9735         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
9736         define.
9737         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
9738         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
9739         Likewise.
9740
9741 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
9742
9743         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
9744         all immediate uses in PHI nodes.
9745
9746 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
9747
9748         * arm.c (arm_const_double_inline_cost): Handle any constant by
9749         using gen_lowpart and gen_highpart_mode.
9750         (note_invalid_constants): All constants in an RTX with a constraint
9751         that permits memory are now pushed to the constant pool.
9752         (output_move_double): Delete code to handle reg to reg and
9753         constant to reg moves.
9754         (const_double_needs_minipool, output_mov_immediate): Delete.
9755         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
9756         CONST_INT and CONST_VECTOR.
9757         * arm.md (ANY64): New mode macro.
9758         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
9759         (movdf_soft_insn): Split reg-reg and const-reg moves.
9760         (split patterns for 64-bit constant and register moves): New.
9761         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
9762         (cirrus_movdf_hard_insn): Likewise.
9763         * fpa.md (movdf_fpa): Likewise.
9764         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
9765         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
9766         constraints.
9767         (movv2si_internal_2): Likewise.
9768         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
9769         (movdf_vfp): Likewise.
9770         * arm-protos.h (output_mov_immediate): Delete prototype.
9771
9772 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
9773
9774         PR target/20093
9775         * simplify-rtx.c (simplify_unary_operation_1): Check
9776         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
9777
9778 2005-04-06  James E Wilson  <wilson@specifixinc.com>
9779
9780         PR target/20717
9781         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
9782         ADDR_EXPR.
9783
9784 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
9785
9786         * coverage.h (GCOV_TYPE_NODE): Delete.
9787         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
9788         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
9789         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
9790         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
9791         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
9792
9793 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
9794
9795         PR other/20792
9796         * Makefile.in (gcc.pot): Remove options.c dependency.
9797         * optc-gen.awk: Don't quote help strings with N_().
9798
9799 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
9800
9801         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
9802         the function returns a pointer type.
9803
9804 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
9805
9806         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
9807         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
9808         * doc/invoke.texi: Documnet salias-max-implicit-fields.
9809         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
9810         explicit_uses members.
9811         (get_or_create_used_part_for): Initialize new fields.
9812         (fieldoff_compare): New function.
9813         (create_overlap_variables_for): Count number of fields, use
9814         heuristic to determine whether to create subvars for vars with
9815         only implicit uses.
9816         Sort the field list by offset and avoid creating duplicate SFT's.
9817
9818 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
9819
9820         * c.opt (-F): Remove trailing whitespace from help string.
9821         (-finput-charset): Use a tab to separate the switch name and help
9822         string.
9823         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
9824         (-ftree-vectorizer-verbose): Likewise.
9825
9826 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
9827
9828         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
9829         a PHI argument where a use occurs instead of all PHI arguments.
9830
9831 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
9832
9833         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
9834         scope.
9835
9836 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
9837
9838         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
9839         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
9840         config/bfin/bfin.h: Fix comment typos.
9841
9842 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
9843
9844         * doc/install.texi: Update the URL for Jacks.
9845         * doc/sourcebuild.texi: Likewise.
9846
9847 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9848
9849         PR target/17245
9850         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
9851         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
9852
9853 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
9854
9855         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
9856
9857 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
9858
9859         * config/v850/v850-protos.h (override_options): Delete.
9860         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
9861         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
9862         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
9863         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
9864         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
9865         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
9866         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
9867         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
9868         (OVERRIDE_OPTIONS): Delete.
9869         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
9870         (small_memory_info): Remove the value field.
9871         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
9872         TARGET_NO_APP_REGS.
9873         * config/v850/v850.c (small_memory): Remove the value field.
9874         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9875         (override_options): Delete.
9876         (v850_handle_memory_option, v850_handle_option): New functions.
9877         * config/v850/v850.opt: New file.
9878
9879 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
9880
9881         * config.host: Add a section for generic hosts, and a subsection
9882         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
9883         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
9884         * config/host-darwin.h: New.
9885         * config/x-darwin: New.
9886         * config/i386/host-i386-darwin.c: New.
9887         * config/i386/x-darwin: New.
9888         * config/rs6000/host-darwin.c: Include host-darwin.h.
9889         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
9890         (darwin_rs6000_gt_pch_use_address): Likewise.
9891         * config/rs6000/x-darwin: Change name of .o built, update
9892         dependencies for changes to rs6000/host-darwin.c.
9893
9894 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9895
9896         PR target/17824
9897         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
9898
9899 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
9900
9901         * tree-vect-analyze.c (vect_analyze_loop_form): Call
9902         split_loop_exit_edge instead of loop_split_edge_with.
9903
9904 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
9905
9906         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
9907         UNSPEC_SET_VSCR): New constants, used throughout.
9908         (*andc3_v4sf): New.
9909         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
9910         Replace with...
9911         (altivec_vspltis<VI_char>): ... this pattern, using
9912         a QImode const_int_operand for the immediate.
9913         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
9914         define_expands.
9915
9916 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
9917
9918         PR target/17822
9919         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
9920
9921 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
9922
9923         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
9924
9925 2005-04-06  Ben Elliston  <bje@au.ibm.com>
9926
9927         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
9928         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
9929         macros as living in "this file" and not gcc.h.
9930
9931 2005-04-06  Ben Elliston  <bje@au.ibm.com>
9932
9933         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
9934         -ftree-live_range_split.  Perhaps renamed at some point?
9935
9936 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
9937
9938         PR target/20625
9939         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
9940         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
9941
9942 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
9943
9944         * tree-flow.h (number_of_iterations_cond): Declaration removed.
9945         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
9946         (number_of_iterations_special): New function.
9947         (number_of_iterations_exit): Use number_of_iterations_special.
9948         Use simplify_using_outer_evolutions only at -O3.
9949         (number_of_iterations_cond, tree_simplify_using_condition,
9950         simplify_using_initial_conditions, loop_niter_by_eval,
9951         compare_trees, can_count_iv_in_wider_type_bound,
9952         simplify_using_outer_evolutions): Use fold_build.
9953
9954 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
9955
9956         * doc/install.texi (Configuration): Document --with-java-home.
9957
9958 2005-04-05  Richard Henderson  <rth@redhat.com>
9959
9960         PR target/20342
9961         PR target/20447
9962         * config/i386/i386.c (print_operand): Handle vector zeros.
9963         (ix86_split_to_parts): Handle CONST_VECTOR.
9964         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
9965         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
9966         what modes to tie for MMX and SSE registers.
9967         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
9968         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
9969         to vector modes as well.
9970         * config/i386/predicates.md (const0_operand): Handle VOIDmode
9971         properly as an input mode.
9972
9973 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
9974
9975         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
9976
9977 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
9978
9979         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
9980
9981 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
9982
9983         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
9984         and local functions, set sse_nregs to 8 and float_in_sse.
9985         (function_arg_advance, function_arg): If float_in_sse, pass
9986         SFmode and DFmode arguments in SSE registers.
9987         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
9988
9989         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
9990         of -funit-at-a-time.
9991
9992 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
9993
9994         * config/i386/i386-protos.h (ix86_function_value): Accept two
9995         arguments, like the target macro.
9996         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
9997         * config/i386/i386.c (ix86_function_value): Accept the second
9998         argument of the target macro.
9999         (ix86_function_ok_for_sibcall): Pass a function pointer to
10000         ix86_function_value.
10001         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
10002         call to ix86_value_regno).
10003         (ix86_value_regno): Add support for returning floating point values
10004         in SSE registers.
10005
10006 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
10007
10008         PR tree-optimization/20076
10009         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
10010         that call __builtin_return or __builtin_apply_args.
10011
10012 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
10013
10014         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
10015         Use immediate use iterator.
10016         (stmt_is_bumper_for_loop): Use immediate use iterator.
10017         * predict.c (strip_builtin_expect): Use update_stmt.
10018         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
10019         on all elements of a STATEMENT_LIST.
10020         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
10021         (bsi_remove): Remove imm_use links and mark the stmt as modified.
10022         (bsi_replace): Mark stmt as modified and the update it.
10023         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
10024         (expand_complex_libcal): Call update_stmt.
10025         (expand_complex_comparison): Call mark_stmt_modified.
10026         (expand_complex_operations_1): Call update_stmt_if_modified.
10027         (expand_vector_operations_1): Call mark_stmt_modified.
10028         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
10029         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
10030         add_immediate_use, redirect_immediate_use,
10031         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
10032         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
10033         (mark_new_vars_to_rename): Call update_stmt.
10034         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
10035         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
10036         Ignore PHI nodes.
10037         (unmodify_stmt): Delete.
10038         (update_stmt): New.  Force an update of a stmt.
10039         (update_stmt_if_modified): update a stmt if it is out of date.
10040         (get_stmt_operands): Verify stmt is NOT modified.
10041         (stmt_modified_p): Update comment.
10042         (delink_imm_use): Remove a use node from its immuse list.
10043         (link_imm_use_to_list): Link a use node to a specific list.
10044         (link_imm_use): Link a node to the correct list.
10045         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
10046         it in the correct list, if appropriate.
10047         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
10048         (relink_imm_use): Link a use node in place of another node in a list.
10049         (relink_imm_use_stmt): LInk a node in place of another node, and set
10050         the stmt pointer.
10051         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
10052         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
10053         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
10054         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
10055         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
10056         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
10057         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
10058         (has_zero_uses): New.  Return true if there are no uses of a var.
10059         (has_single_use): New.  Return true if there is only a single use of a
10060         variable.
10061         (single_imm_use): New.  Return the simgle immediate use.
10062         (num_imm_uses): New.  Return the number of immediate uses.
10063         (get_v_must_def_ops): Use is now a pointer.
10064         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
10065         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
10066         the use node.
10067         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
10068         (delink_stmt_imm_use): Delink all immuses from a stmt.
10069         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
10070         * tree-flow.h (struct dataflow_d): Delete.
10071         (immediate_use_iterator_d): New.  Immediate use iterator struct.
10072         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
10073         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
10074         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
10075         iteration.
10076         (struct stmt_ann_d): Remove dataflow_t from struct.
10077         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
10078         (if_convertible_phi_p): Use FAST immuse iterator.
10079         (if_convertible_loop_p): Don't call compute_immediate_uses.
10080         (replace_phi_with_cond_modify_expr): Call update_stmt.
10081         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
10082         update_stmt_if_modified.
10083         (rewrite_all_into_ssa): Initialize ssa operands.
10084         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
10085         compute_immediate_uses.
10086         * tree-optimize.c (execute_todo): Call verify_ssa whenever the
10087         ssa_property is available.
10088         (execute_one_pass):  Change parameters passed to execute_todo.
10089         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
10090         (remove_ssa_form): Call fini_ssa_operands.
10091         (insert_backedge_copies): Delete call to modify_stmt.
10092         * tree-phinodes.c (make_phi_node): Initialize use nodes.
10093         (release_phi_node): Delink any use nodes before releasing.
10094         (resize_phi_node): Relink any use nodes.
10095         (remove_phi_arg_num): Delink the use node.
10096         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
10097         (remove_all_phi_nodes_for): Release phi node first.
10098         * tree-pretty-print.c (dump_generic_node): Print stmt address.
10099         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
10100         (scalarize_use, scalarize_copy): Call update_stmt.
10101         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
10102         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
10103         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
10104         (ccp_initialize): Remove call to compute_immediate_uses.
10105         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
10106         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
10107         stmts.
10108         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
10109         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
10110         (eliminate_redundant_computations): Call mark_stmt_modified.
10111         (cprop_operand): Call mark_stmt_modified.
10112         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
10113         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
10114         (dse_optimize_stmt): Use new immuse interface.
10115         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
10116         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
10117         (substitute_single_use_vars): Use new immuse interface.
10118         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
10119         and compute_immediate_uses.
10120         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
10121         interface.
10122         (rewrite_mem_refs): Call update_stmt.
10123         (determine_lsm): Remove call to compute_imm_uses and free_df.
10124         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
10125         (try_unroll_loop_completely): Call update_stmt.
10126         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
10127         (rewrite_use_compare): Call update_stmt.
10128         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
10129         (rewrite_use) : Call update_stmt.
10130         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
10131         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
10132         update_stmt.
10133         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
10134         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
10135         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
10136         use nodes.
10137         (initialize_vuse_operand): New.  Initialize a vuse operand.
10138         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
10139         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
10140         (finalize_ssa_defs): Use stmt parameter.
10141         (correct_use_link): Ensure a use node is in the correct list, and has
10142         the correct stmt pointer.
10143         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
10144         finalize_ssa_v_must_defs): Also initialize use nodes.
10145         (finalize_ssa_stmt_operands): Pass extra stmt operands.
10146         (build_ssa_operands): Seperate parsing from final operand construction.
10147         (parse_ssa_operands): New.  Parse entry point for operand building.
10148         (swap_tree_operands): New.  Swap 2 tree operands.
10149         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
10150         operands.
10151         (get_expr_operands): Call swap_tree_operands when needed.
10152         (copy_virtual_operands): Use initialize routines for virtual use ops.
10153         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
10154         (verify_abort): New.  Issue imm_use error.
10155         (verify_imm_links): New Verify imm_use links for a var.
10156         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
10157         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
10158         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
10159         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
10160         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
10161         (NULL_USE_OPERAND_P) Define.
10162         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
10163         use node.
10164         (struct vuse_operand_type): New struct.
10165         (SET_USE): Call set_ssa_use_from_ptr.
10166         (USE_STMT): Define.
10167         (PHI_ARG_INDEX_FROM_USE): Define.
10168         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
10169         argument via SET_USE, not PHI_ARG_DEF_TREE.
10170         * tree-ssa-pre.c (eliminate): Call update_stmt.
10171         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
10172         call free_df.
10173         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
10174         (nearest_common_dominator_of_uses): Use imm_use iterator.
10175         (statement_sink_location): Use imm_use iterator and interface.
10176         (execute_sink_code): Don't call compute_immediate_uses or free-df.
10177         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
10178         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
10179         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
10180         (verify_ssa): Ensure no stmt is marked modify after optimization pass
10181         if new parameter is true.
10182         (init_tree_ssa): Don't initialize operand cache here.
10183         (delete_tree_ssa): Don't destroy operand cache here.
10184         (propagate_into_addr): Pass in a use pointer, return true if anything
10185         was changed.
10186         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
10187         (check_phi_redundancy): Use imm_use iterator.
10188         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
10189         free_df.
10190         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
10191         (release_ssa_name): Delink node and all elements in its imm_use list.
10192         * tree-tailcall.c (adjust_return_value): Call update_stmt.
10193         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
10194         * tree-vectorizer.c (need_imm_uses_for): Delete.
10195         (vectorize_loops): Dont call compute_immediate_uses or free_df.
10196         * tree.h (struct ssa_imm_use_d): Define.
10197         (SSA_NAME_IMM_USE_NODE): Define.
10198         (struct tree_ssa_name): Add imm_use node.
10199         (PHI_DF): Delete.
10200         (PHI_ARG_IMM_USE_NODE): Define.
10201         (struct phi_arg_d): Add imm_use node.
10202         (struct tree_phi_node): Remove struct dataflow_d element.
10203         (TDF_STMTADDR): Define.
10204
10205 2005-04-05  Dale Johannesen  <dalej@apple.com>
10206
10207         * doc/invoke.texi (Optimization Options):  Remove
10208         duplicate -fcse-follow-jumps.  Add -fweb.
10209         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
10210         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
10211
10212 2005-04-05  Per Bothner  <per@bothner.com>
10213
10214         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
10215         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
10216         (warn_uninit): Get EXPR_LOCUS from context now instead.
10217         This fixes a USE_MAPPED_LOCATION testsuite failure.
10218
10219         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
10220
10221 2005-04-05  Per Bothner  <per@bothner.com>
10222
10223         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
10224         of the artification 'return 0' in main() to BUILTINS_LOCATION.
10225         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
10226         before warning.
10227
10228 2004-04-05  Devang Patel  <dpatel@apple.com>
10229
10230         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
10231         (lhsr<mode>3): ... new name.
10232         (altivec_vsra<VI_char>): Rename to ..
10233         (ashr<mode>3): ... new name.
10234         * config/rs6000/rs6000.c (builtin_description): Rename shift
10235         operations.
10236
10237 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
10238
10239         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
10240         gen_lowpart_for_combine.
10241         * cse.c (gen_lowpart_if_possible): Move...
10242         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
10243         gen_lowpart_SUBREG.
10244         (gen_lowpart_no_emit_general): Use it.
10245
10246 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
10247
10248         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
10249         overriding.
10250
10251 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
10252
10253         * system.h: Fix typo.
10254
10255 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
10256
10257         * config/bfin/bfin-modes.def: New file.
10258         * config/bfin/bfin-protos.h: New file.
10259         * config/bfin/bfin.c: New file.
10260         * config/bfin/bfin.h: New file.
10261         * config/bfin/bfin.md: New file.
10262         * config/bfin/bfin.opt: New file.
10263         * config/bfin/crti.s: New file.
10264         * config/bfin/crtn.s: New file.
10265         * config/bfin/elf.h: New file.
10266         * config/bfin/lib1funcs.asm: New file.
10267         * config/bfin/predicates.md: New file.
10268         * config/bfin/t-bfin: New file.
10269         * config/bfin/t-bfin-elf: New file.
10270         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
10271         Document new attributes.
10272         (interrupt, interrupt_handler, saveall): Update documentation for
10273         these attributes.
10274         * doc/install.texi (Specific): Add entry for the Blackfin.
10275         * doc/invoke.texi (Blackfin Options): New section.
10276         * doc/md.texi (Blackfin family): New section to document constraints.
10277         * config.gcc: Add bfin*-* and bfin*-elf configurations.
10278
10279 2005-04-05  Olivier Hainque  <hainque@adacore.com>
10280
10281         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
10282         match what the system unwinder expects.
10283         * config/mips/mips.c (mips_frame_set): If we're saving the return
10284         address register and the dwarf return address column number differs
10285         from the hard register number, adjust the note reg to refer to the
10286         former.
10287
10288 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>
10289
10290         * config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
10291         * config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
10292         (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
10293         (processor_type): New enum.
10294         (mn10300_processor): New variable.
10295         (TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
10296         (PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
10297         * config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
10298         (PROCESSOR_DEFAULT): New macro.
10299         * config/mn10300/mn10300.c (mn10300_processor): New variable.
10300         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
10301         (mn10300_handle_option, mn10300_override_options): New functions.
10302         * config/mn10300/mn10300.opt: New file.
10303
10304 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
10305             Sebastian Pop <sebastian.pop@cri.ensmp.fr>
10306
10307         PR tree-optimization/19903
10308         * tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
10309         that don't fit in their type after conversion.
10310
10311 2005-04-05  Uros Bizjak <uros@kss-loka.si>
10312
10313         PR target/20421
10314         * config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
10315         (frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
10316         Allocate local stack slots here.  Set ix86_optimize_mode_switching.
10317         flag here. Implement using define_insn_and_split.
10318         (frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
10319         (frndintxf2_mask_pm_i387): New insn patterns.
10320         (floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
10321         Do not set ix86_optimize_mode_switching flag.
10322         (ceilsf2, ceildf2, ceilxf2): Same.
10323         (btruncsf2, btruncdf2, btruncxf2): Same.
10324         (nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
10325
10326 2005-04-05  Ian Lance Taylor  <ian@airs.com>
10327
10328         PR debug/9963
10329         * config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
10330         i386_pe_record_external_function.
10331         (i386_pe_record_external_function): Update declaration.
10332         * config/i386/winnt.c (struct extern_list): Add decl field.
10333         (i386_pe_record_external_function): Add decl parameter.
10334         (i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
10335         identifier.
10336         * config/i386/i386-protos.h (i386_pe_record_external_function):
10337         Update declaration.
10338
10339 2005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
10340
10341         * config/m68k/m68k-protos.h: Add a prototype for
10342         valid_dbcc_comparison_p_2.
10343         * config/m68k/m68k.c (not_sp_operand, symbolic_operand,
10344         extend_operator, const_uint32_operand, const_sint32_operand,
10345         general_src_operand, nonimmediate_src_operand,
10346         memory_src_operand, post_inc_operand, pre_dec_operand,
10347         pcrel_address): Move to predicates to predicates.md.
10348         * config/m68k/m68k.h (PREDICATE_CODES): Remove.
10349         * config/m68k/m68k.md: Include predicates.md.
10350         * config/m68k/predicates.md: New.
10351
10352 2005-04-04  Roger Sayle  <roger@eyesopen.com>
10353
10354         * config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
10355
10356         * fold-const.c (maybe_lvalue_p): Delete orphaned comment.
10357
10358 2005-04-04  Ian Lance Taylor  <ian@airs.com>
10359
10360         * c-typeck.c (struct c_switch): Rename switch_stmt field to
10361         switch_expr.
10362         (c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
10363         (do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
10364         (c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
10365         Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
10366         * c-common.c (c_do_switch_warnings_1): New static function broken
10367         out of c_do_switch_warnings.
10368         (c_do_switch_warnings): Call c_do_switch_warnings_1.
10369         (c_do_switch_expr_warnings): New function.
10370         * c-common.h (c_do_switch_expr_warnings): Declare.
10371
10372 2005-04-04  David Edelsohn  <edelsohn@gnu.org>
10373             Daniel Jacobowitz  <dan@codesourcery.com>
10374
10375         * tree-eh.c (tree_could_trap_p): Allow non-constant floating point
10376         trapping divide.
10377         * rtlanal.c (may_trap_p): Same.
10378
10379 2005-04-04  Dale Johannesen  <dalej@apple.com>
10380
10381         * ChangeLog:  remove reference to ChangeLog.12.
10382
10383 2005-04-05  Hans-Peter Nilsson  <hp@axis.com>
10384
10385         CRIS epilogue as RTL.
10386         * config/cris/cris.md: Change all 0 in unspec 0 to
10387         CRIS_UNSPEC_PLT.
10388         (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
10389         ("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
10390         patterns.
10391         ("return"): Change to define_expand.  Call cris_expand_return for
10392         actual expansion.
10393         ("*return_expanded"): New pattern.
10394         ("epilogue"): New define_expand.
10395         * config/cris/cris.h (PREDICATE_CODES): Add
10396         cris_load_multiple_op.
10397         * config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
10398         type.
10399         (enum cris_retinsn_type): New.
10400         (struct machine_function): New member return_type.
10401         (TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
10402         (cris_target_asm_function_epilogue): Remove, moving RTLified
10403         contents to...
10404         (cris_expand_epilogue): New function.
10405         (cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
10406         (cris_gen_movem_load, cris_load_multiple_op)
10407         (cris_return_address_on_stack_for_return, cris_expand_return): New
10408         functions.
10409         (cris_target_asm_function_prologue)
10410         (cris_initial_frame_pointer_offset): Call
10411         cris_reg_saved_in_regsave_area instead of complicated expression.
10412         Call cris_return_address_on_stack instead of an expression.
10413         (cris_print_operand) <case 'o', case 'O'>: New cases.
10414         (cris_return_address_on_stack): Change return-type to bool.
10415         (cris_simple_epilogue): Ditto.  Return false if registers are
10416         saved.
10417         * config/cris/cris-protos.h (cris_simple_epilogue)
10418         (cris_return_address_on_stack): Adjust prototype return type.
10419         (cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
10420         (cris_return_address_on_stack_for_return): New prototypes.
10421
10422 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
10423
10424         * config/frv/frv.h (PREDICATE_CODES): Add CONST to
10425         gpr_or_int12_operand.
10426
10427         * config/frv/frv-protos.h: Add a prototype to
10428         frv_legitimate_memory_operand and frv_const_unspec_p.
10429         (frv_unspec): Move from frv.c.
10430         * config/frv/frv.c (frv_unspec): Move to frv-protos.h.
10431         (frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
10432         (ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
10433         gpr_or_fpr_operand, gpr_or_int12_operand,
10434         gpr_fpr_or_int12_operand, fpr_or_int6_operand,
10435         gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
10436         int6_operand, int5_operand, uint5_operand, uint4_operand,
10437         uint1_operand, int_2word_operand, uint16_operand,
10438         upper_int16_operand, integer_register_operand,
10439         gpr_no_subreg_operand, fpr_operand, even_reg_operand,
10440         odd_reg_operand, even_gpr_operand, odd_gpr_operand,
10441         quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
10442         dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
10443         move_destination_operand, movcc_fp_destination_operand,
10444         frv_function_symbol_referenced_p, move_source_operand,
10445         condexec_dest_operand, condexec_source_operand,
10446         reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
10447         const_unspec_operand, gpr_or_memory_operand,
10448         gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
10449         icc_operand, fcc_operand, cc_operand, icr_operand,
10450         fcr_operand, cr_operand, call_operand, sibcall_operand,
10451         symbolic_operand, relational_operator,
10452         integer_relational_operator, float_relational_operator,
10453         ccr_eqne_operator, minmax_operator,
10454         condexec_si_binary_operator, condexec_si_media_operator,
10455         condexec_si_divide_operator, condexec_si_unary_operator,
10456         condexec_sf_conv_operator, condexec_sf_add_operator,
10457         condexec_memory_operand, intop_compare_operator, acc_operand,
10458         even_acc_operand, quad_acc_operand, accg_operand: Move to
10459         predicates.md.
10460         * config/frv/frv.h (PREDICATE_CODES): Remove.
10461         * config/frv/frv.md: Include predicates.md.
10462         * config/frv/predicates.md: New.
10463
10464 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
10465
10466         PR target/19537
10467         * Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
10468         * tree-ssa-loop-ivopts.c: Include langhooks.h.
10469         (add_standard_iv_candidates_for_size): New function, extracting code
10470         from add_standard_iv_candidates and parameterizing it by type size.
10471         (add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
10472
10473 2004-04-04  Richard Sandiford  <rsandifo@redhat.com>
10474
10475         * system.h (GCOV_SIZE_TYPE): Unposion.
10476         * gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
10477         (GCOV_TYPE_SIZE): ...this new macro.
10478         * coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
10479         * coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
10480         (rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
10481         (build_fn_info_type, build_fn_info_value, build_ctr_info_type)
10482         (build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
10483         instead of unsigned_intSI_type_node.
10484         * rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
10485         (rtl_gen_one_value_profiler_no_edge_manipulation)
10486         (rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
10487         * value-prof.c: Include coverage.h.
10488
10489 2005-04-02  Daniel Berlin  <dberlin@dberlin.org>
10490             Diego Novillo <dnovillo@redhat.com>
10491
10492         Fix PR tree-optimization/20703
10493         Fix PR tree-optimization/20725
10494
10495         * tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
10496         (create_expression_by_pieces): Ditto.
10497         (valid_in_set): Ditto. Also handle tcc_declaration.
10498         (find_or_generate_expression): Handle comparison class.
10499         (insert_into_preds_of_block): Ditto.
10500         (insert_aux): Ditto.
10501         (create_value_expr_from): Handle comparison class, recursively
10502         handle reference nodes.
10503         (compute_avail): Handle comparison classes, rewrite a little cleaner.
10504         (execute_pre): Fix spacing.
10505         (do_fre): Renamed to execute_fre.
10506
10507 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10508
10509         * doc/invoke.texi (SPARC options): Document that
10510         -mlittle-endian is not supported on Linux either.
10511
10512 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10513
10514         PR target/4198
10515         PR target/12027
10516         * config.gcc (Obsolete configurations): Remove
10517         sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
10518         (sparclite-*-coff*): Delete.
10519         (sparclite-*-elf*): Likewise.
10520         (sparc86x-*-elf*): Likewise.
10521         (target_cpu_default) <sparc*-*-*>: Remove sparc86x.
10522         * config/sparc/lite.h: Delete.
10523         * config/sparc/litecoff.h: Likewise.
10524         * config/sparc/liteelf.h: Likewise.
10525         * config/sparc/sp86x-elf.h: Likewise.
10526         * config/sparc/t-sparclite: Likewise.
10527         * config/sparc/t-sp86x: Likewise.
10528
10529 2005-04-04  Adrian Straetling  <straetling@de.ibm.com>
10530
10531         * config/s390/s390-protos.h: (s390_comparison,
10532         s390_alc_comparison, s390_slb_comparison, const0_operand,
10533         consttable_operand, larl_operand, s_operand,
10534         shift_count_operand, bras_sym_operand, load_multiple_operation,
10535         store_multiple_operation, s390_plus_operand): Remove prototypes.
10536         (s390_legitimate_address_without_index_p): New prototype.
10537         * config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
10538         to s390.h.
10539         (s390_comparison, s390_alc_comparison, s390_slb_comparison,
10540         const0_operand, consttable_operand, larl_operand, s_operand,
10541         shift_count_operand, bras_sym_operand, load_multiple_operation,
10542         store_multiple_operation, s390_plus_operand): Move to
10543         predicates.md.
10544         (check_mode): Remove.
10545         (s390_branch_condition_mask): Remove 'static'. Move prototype to
10546         s390-protos.h.
10547         (s390_legitimate_address_without_index_p): New.
10548         * config/s390/s390.h (PREDICATE_CODES): Remove.
10549         * config/s390/s390.md: Include predicates.md.
10550         * config/s390/predicates.md: New.
10551
10552 2005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
10553
10554         PR target/20446
10555         * config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
10556         * config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
10557         (NEED_INDICATE_EXEC_STACK): Define to 1.
10558         * config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
10559         (NEED_INDICATE_EXEC_STACK): Define to 1.
10560         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
10561         (add_pc_to_pic_symbol): Rename into pic_helper_symbol.
10562         (add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
10563         (pic_helper_emitted_p): New global.
10564         (emit_pic_helper): New function extracted from...
10565         (load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
10566         Do not call emit_pic_helper if delay_pic_helper is true.
10567         (sparc_expand_prologue): Pass 'false' to load_pic_register.
10568         (sparc_output_mi_thunk): Pass 'true' to load_pic_register.
10569         (sparc_file_end): New function.
10570
10571 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
10572
10573         * config/mcore/mcore-protos.h: Remove the prototypes for
10574         mcore_arith_reg_operand, mcore_general_movsrc_operand,
10575         mcore_general_movdst_operand, mcore_reload_operand,
10576         mcore_arith_J_operand, mcore_arith_K_operand,
10577         mcore_arith_K_operand_not_0, mcore_arith_M_operand,
10578         mcore_arith_K_S_operand, mcore_arith_imm_operand,
10579         mcore_arith_any_imm_operand, mcore_arith_O_operand,
10580         mcore_literal_K_operand, mcore_addsub_operand,
10581         mcore_compare_operand, mcore_load_multiple_operation,
10582         mcore_store_multiple_operation, mcore_call_address_operand.
10583         Add a prototype for const_ok_for_mcore.
10584         * config/mcore/mcore.c (mcore_call_address_operand,
10585         mcore_general_movsrc_operand, mcore_general_movdst_operand,
10586         mcore_arith_reg_operand, mcore_reload_operand,
10587         mcore_arith_J_operand, mcore_arith_K_operand,
10588         mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
10589         mcore_arith_M_operand, mcore_arith_imm_operand,
10590         mcore_arith_any_imm_operand, mcore_arith_O_operand,
10591         mcore_literal_K_operand, mcore_addsub_operand,
10592         mcore_compare_operand, mcore_load_multiple_operation,
10593         mcore_store_multiple_operation): Move to predicates.md.
10594         (const_ok_for_mcore): Export.
10595         * config/mcore/mcore.h (PREDICATE_CODES): Remove.
10596         * config/mcore/mcore.md: Include predicates.md.
10597         * config/mcore/predicates.md: New.
10598
10599         * config/mcore/predicates.md: Fix a comment typo.
10600
10601 2005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
10602             Adrian Straetling  <straetling@de.ibm.com>
10603
10604         * config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
10605         * config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
10606         * config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
10607         attribute.
10608         ("imul"): Removed from "type" attribute.
10609         ("*muldi3_sign", "muldi3"): Changed type to imuldi.
10610         ("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
10611         Changed type to imulsi.
10612         ("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
10613
10614 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
10615
10616         * config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
10617         (RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
10618         (SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
10619         (TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
10620         (TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
10621         (TARGET_SWITCHES, mcore_stack_increment_string)
10622         (TARGET_OPTIONS): Delete.
10623         (TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
10624         than *_BIT constants.
10625         (TARGET_8ALIGN): #undef old definition before redefining to 1.
10626         * config/mcore/mcore.c (mcore_stack_increment_string): Delete.
10627         (TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
10628         (mcore_override_options): Delete mcore_stack_increment code.
10629         Change use of M340_BIT to MASK_M340.
10630         * config/mcore/mcore.opt: New file.
10631
10632 2005-04-04  Ian Lance Taylor  <ian@airs.com>
10633
10634         * config/arm/arm.c (replace_symbols_in_block): Remove static
10635         function.
10636
10637 2005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
10638
10639         * config/fr30/fr30-protos.h: Remove the prototypes for
10640         stack_add_operand, add_immediate_operand,
10641         high_register_operand, low_register_operand, call_operand,
10642         di_operand, and nonimmediate_di_operand.
10643         * config/fr30/fr30.c (stack_add_operand,
10644         add_immediate_operand, high_register_operand,
10645         low_register_operand, call_operand, di_operand,
10646         nonimmediate_di_operand): Move to predicates.md.
10647         * config/fr30/fr30.h (PREDICATE_CODES): Remove.
10648         * config/fr30/fr30.md: Include predicates.md.
10649         * config/fr30/predicates.md: New.
10650
10651         * config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
10652         LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
10653         mcore_call_address_operand.
10654
10655         * config/sh/sh.h (PREDICATE_CODES): Add CONST to
10656         general_movsrc_operand.
10657
10658 2005-04-04  Alan Modra  <amodra@bigpond.net.au>
10659
10660         * passes.c (rest_of_handle_final): NULL unlikely_text_section_name
10661         after freeing.
10662
10663 2005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
10664
10665         PR target/14812
10666         * arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
10667         a negated value.
10668
10669 2005-04-04  Richard Henderson  <rth@redhat.com>
10670             Jakub Jelinek  <jakub@redhat.com>
10671
10672         PR rtl-optimization/16104
10673         * fold-const.c (fold_unary): Fix folding of vector conversions.
10674
10675 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
10676
10677         * config.gcc (xstormy16-*-elf): Set extra_options.
10678         * config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
10679         * config/stormy16/stormy16.opt: New file.
10680
10681 2005-04-04  Richard Sandiford  <rsandifo@redhat.com>
10682
10683         * config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
10684         (TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
10685         (TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
10686         (TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
10687         (TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
10688         (TARGET_UNIX_ASM): Delete.
10689         (TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
10690         * config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
10691         * config/pdp11/pdp11.c (pdp11_handle_option): New function.
10692         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
10693         * config/pdp11/pdp11.opt: New file.
10694
10695 2005-04-03  Roger Sayle  <roger@eyesopen.com>
10696             Alexandre Oliva  <aoliva@redhat.com>
10697
10698         PR c++/19199
10699         * fold-const.c (non_lvalue): Split tests into...
10700         (maybe_lvalue_p): New function.
10701         (fold_cond_expr_with_comparison): Preserve lvalue-ness for the
10702         C++ front-end prior to lowering into gimple form.
10703
10704 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10705
10706         * builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
10707         BUILT_IN_STRNCASECMP): New.
10708         * doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
10709         and strndup.
10710
10711 2005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
10712
10713         PR target/14812
10714         * arm.md (addsi3_compare0_for_combiner): Delete.
10715         (addsi3_compare0_scratch_for_combiner): Delete.
10716         (cmpsi_neg_shiftsi): Delete.
10717         (compare_negsi_si): New pattern.
10718         (cmpsi_negshiftsi_si): New pattern.
10719         (negated_cbranchsi4): Restrict to equality_operator.
10720
10721         * arm.md (movhi_insn_arch4): delete trailing white space from assembler
10722         template.
10723
10724 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
10725
10726         * cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
10727         Fix comment typos.
10728
10729         * doc/install.texi: Fix a typo.
10730
10731 2005-04-03  Steven Bosscher  <stevenb@suse.de>
10732
10733         PR middle-end/20648
10734         * bb-reorder.c (duplicate_computed_gotos): Do not unfactor
10735         a computed goto if the edge to the computed goto block has
10736         incoming abnormal edges.  Clarify how the function works.
10737
10738 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
10739
10740         * params.c (set_param_value): Use gcc_assert & gcc_unreachable.
10741         * passes.c (open_dump_file, rest_of_handle_final): Likewise.
10742         * postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
10743         hash_scan_set, reg_set_between_after_reload_p,
10744         reg_used_between_after_reload_p, get_avail_load_store_reg,
10745         eliminate_partially_redundant_load): Likewise.
10746         * postreload.c (reload_cse_simplify_set,
10747         reload_combine_note_use): Likewise.
10748         * predict.c (predict_insn, expected_value_to_br_prob,
10749         propagate_freq, expensive_function_p): Likewise.
10750         * print-rtl.c (print_rtx): Likewise.
10751         * profile.c (instrument_edges, instrument_values,
10752         compute_branch_probabilities, branch_prob, union_groups,
10753         tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
10754         * protoize.c (in_system_include_dir, file_could_be_converted,
10755         file_normally_convertible, gen_aux_info_file, seek_to_line,
10756         do_cleaning): Likewise.
10757         * tree-ssa-alias.c (collect_points_to_info_r): Likewise.
10758         * tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
10759         * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
10760
10761 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
10762
10763         * cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
10764         * modulo-sched.c (undo_replace_buff_elem): New structure.
10765         (kernel_number_of_cycles, ps_unschedule_node,
10766         undo_generate_reg_moves,free_undo_replace_buff,
10767         undo_permute_partial_schedule,  loop_single_full_bb_p,
10768         SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
10769         build_loops_structure, get_sched_window): New.
10770         (generate_reg_moves): Return undo_replace_buff_elem and other
10771         fixes.
10772         (generate_prolog_epilog): Remove old loop versioning.
10773         (sms_schedule): Use loop information and loop_version.
10774         (sms_schedule_by_order): Split part of it to get_sched_window.
10775         * passes.c (rest_of_handle_sms): call cfg_layout_initialize
10776         cfg_layout_finalize and free_dominance_info before/after SMS.
10777
10778 2005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
10779
10780         * cfghooks.c (lv_flush_pending_stmts,
10781         cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
10782         lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
10783         * cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
10784         lv_add_condition_to_bb,
10785         lv_adjust_loop_header_phi, extract_cond_bb_edges,
10786         flush_pending_stmts): New in cfg_hooks structure.
10787         (cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
10788         extract_cond_bb_edges, lv_adjust_loop_header_phi,
10789         lv_add_condition_to_bb): New declarations.
10790         * cfgloop.h (duplicate_loop_to_header_edge): Change return type to
10791         bool.
10792         (loop_version): Declare.
10793         * cfgloopmanip.c (cfghooks.h): Include.
10794         (duplicate_loop_to_header_edge): Change return type to bool.
10795         (loop_version, lv_adjust_loop_entry_edge): Move here.
10796         * cfgrtl.c (cfgloop.h): Include.
10797         (rtl_verify_flow_info_1): Fix.
10798         (rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
10799         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
10800         initialization.
10801         * tree-cfg.c (tree_lv_adjust_loop_header_phi,
10802         tree_lv_add_condition_to_bb): New.
10803         (tree_cfg_hooks): Add new hooks to initialization.
10804         * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
10805         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
10806
10807 2005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
10808
10809         * config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
10810         xstormy16_below100_or_register,
10811         xstormy16_splittable_below100_or_register, and
10812         nonimmediate_nonstack_operand.
10813
10814         * config/stormy16/stormy16-protos.h: Remove the prototypes for
10815         xstormy16_ineqsi_operator, equality_operator,
10816         inequality_operator, shift_operator,
10817         xstormy16_below100_operand, xstormy16_below100_or_register,
10818         xstormy16_splittable_below100_or_register,
10819         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
10820         * config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
10821         equality_operator, inequality_operator,
10822         xstormy16_below100_operand, xstormy16_below100_or_register,
10823         xstormy16_splittable_below100_or_register,
10824         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
10825         nonimmediate_nonstack_operand, shift_operator): Move to
10826         predicates.md.
10827         * config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
10828         * config/stormy16/stormy16.md: Include predicates.md.
10829         * config/stormy16/predicates.md: New.
10830
10831 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
10832
10833         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
10834         small_int, large_int, reg_or_0_operand, simple_memory_operand,
10835         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
10836         move_operand, power_of_2_operand): Move to predicates.md.
10837         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
10838         PREDICATE_CODE): Remove.
10839         * config/iq2000/iq2000.md: Include predicates.md.
10840         * config/iq2000/predicates.md: New.
10841
10842 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
10843
10844         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
10845         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
10846         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
10847         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
10848         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
10849         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
10850         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
10851         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
10852         (TARGET_M68HC11): Delete.
10853         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
10854         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
10855         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
10856         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
10857         (nb_soft_regs): Delete.
10858         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
10859         (m68hc11_override_options): Remove the code that caters for MASK_M6811
10860         and MASK_M6812 being set simultaneously.  Change the code that sets
10861         the default m68hc11_soft_reg_count to use integers instead of strings.
10862         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
10863         m68hc11_soft_reg_count (which now has an int type) as the number
10864         of soft registers.
10865         * config/m68hc11/m68hc11.opt: New file.
10866
10867 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
10868
10869         * config/fr30/fr30.h (PREDICATE_CODES): Remove
10870         fp_displacement_operand, sp_displacement_operand.
10871
10872         * config/m68hc11/m68hc11-protos.h: Add a prototype for
10873         m68hcc_auto_inc_p.
10874         Remove the prototypes for tst_operand, cmp_operand,
10875         stack_register_operand, d_register_operand,
10876         hard_addr_reg_operand, splitable_operand,
10877         m68hc11_logical_operator, m68hc11_arith_operator,
10878         m68hc11_non_shift_operator, m68hc11_shift_operator,
10879         m68hc11_unary_operator, m68hc11_eq_compare_operator,
10880         non_push_operand, hard_reg_operand, and
10881         reg_or_some_mem_operand.
10882         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
10883         extern.
10884         (tst_operand, cmp_operand, non_push_operand,
10885         splitable_operand, reg_or_some_mem_operand,
10886         stack_register_operand, d_register_operand,
10887         hard_addr_reg_operand, hard_reg_operand,
10888         m68hc11_eq_compare_operator, m68hc11_logical_operator,
10889         m68hc11_arith_operator, m68hc11_non_shift_operator,
10890         m68hc11_shift_operator, m68hc11_unary_operator): Move to
10891         predicates.md.
10892         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
10893         * config/m68hc11/m68hc11.md: Include predicates.md.
10894         * config/m68hc11/predicates.md: New.
10895
10896 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
10897
10898         PR debug/19345
10899         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
10900         change checked in along with 2005-03-03's patch for debug/20253.
10901         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
10902         (remap_decl): Insert type decl in map earlier.
10903
10904 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
10905
10906         PR tree-optimization/20640
10907         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
10908         post-dominator if it has phi nodes.
10909         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
10910         before dead statements.
10911
10912 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
10913
10914         PR middle-end/20491
10915         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
10916
10917 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
10918
10919         PR rtl-optimization/20290
10920         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
10921         in every iteration if the entry point is the exit test.
10922
10923 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
10924
10925         * config/cris/cris.md (attribute "length"): Define.
10926
10927 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
10928
10929         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
10930         (word_offset_memref_operand): New.
10931         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
10932         (indexed_or_indirect_operand): Delete.
10933         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
10934         (indexed_or_indirect_operand): Delete.
10935
10936         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
10937
10938         PR 20650
10939         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
10940         a register.
10941
10942         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
10943         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
10944
10945 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
10946
10947         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
10948
10949 2005-04-01  Ian Lance Taylor  <ian@airs.com>
10950
10951         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
10952         (rus, prus): Remove static variables.
10953         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
10954         (process_command): Permit report_times and use_pipes together.
10955
10956 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
10957
10958         * c-decl.c (validate_proto_after_old_defn): Look at
10959         TYPE_MAIN_VARIANT of argument types.
10960
10961 2005-04-01  Paul Brook  <paul@codesourcery.com>
10962
10963         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
10964         (arm_output_function_epilogue): Allow call_via_SP.
10965         (thumb_call_via_reg, arm_file_end): Ditto.
10966         * config/arm/arm.h (struct machine_function): Include space for SP.
10967         (thumb_call_via_label): Update declaration.
10968
10969 2005-04-01  Ian Lance Taylor  <ian@airs.com>
10970
10971         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
10972         doing a peephole optimization, once again put any notes in the
10973         proper position.
10974
10975 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
10976
10977         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
10978
10979 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
10980
10981         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
10982         (block_alloc, find_free_reg): Likewise.
10983         * loop-doloop.c (doloop_modify): Likewise.
10984         * loop-invariant.c (record_use): Likewise.
10985         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
10986         get_iv_value, canon_condition, eliminate_implied_condition,
10987         eliminate_implied_condition, simplify_using_initial_values,
10988         shorten_into_mode, canonicalize_iv_subregs,
10989         iv_number_of_iterations): Likewise.
10990         * loop-unroll.c (expand_var_during_unrolling): Likewise.
10991         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
10992         unswitch_loop): Likewise.
10993         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
10994         move_movables, replace_call_address, find_and_verify_loops,
10995         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
10996         record_giv, final_giv_value, general_induction_var,
10997         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
10998         loop_giv_dump): Likewise.
10999
11000         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
11001         GCOV_CHECK_WRITING): Remove.
11002         (gcov_position, gcov_rewrite): Use gcc_assert.
11003         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
11004         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
11005         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
11006         gcc_assert.
11007
11008 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
11009
11010         * tree-inline.c: Fix a typo.
11011
11012 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
11013
11014         * configure.ac (enable-checking): Explicitly set all variables for
11015         collective switch values.  Alphabetize variables. Rename
11016         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
11017         synonym for 'no'.
11018         * doc/install.texi (enable-checking): Update documentation.
11019         * configure: Rebuilt.
11020
11021 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
11022
11023         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
11024         possible.
11025
11026 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
11027
11028         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
11029         Also reject cases where this pattern will cause load delay stalls
11030         unless optimizing for size and it will produce a shorter sequence.
11031         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
11032         variants to avoid pre-adjusting the base when possible.
11033
11034 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
11035
11036         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
11037         the frame and argument pointers.
11038         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
11039         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
11040         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
11041         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
11042         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
11043         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
11044
11045 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
11046
11047         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
11048         with entry for selectany attribute.
11049         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
11050         Declare.
11051         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
11052         (i386_pe_asm_named_section): Handle sections generated by
11053         selectany attribute.
11054         * doc/extend.texi (selectany): Document attribute.
11055
11056 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
11057             Jan Hubicka  <jh@suse.cz>
11058
11059         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
11060         to fix addresses involving EBP and ESP.
11061         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
11062         for SUBREGed registers.
11063         (legitimate_address_p): Accept SUBREGed registers.
11064
11065 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
11066
11067         PR c++/19406
11068         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
11069         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
11070         for FIELD_DECLs.
11071
11072 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
11073
11074         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
11075
11076 2005-04-01  James E Wilson  <wilson@specifixinc.com>
11077
11078         PR c++/20505
11079         * dwarf2out.c (rtl_for_decl_init): New function.
11080         (rtl_for_decl_location): Extracted from here.
11081         (tree_add_const_value_attribute): Call rtl_for_decl_init and
11082         add_const_value_attribute.  Delete initializer_constant_valid_p call.
11083
11084 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
11085
11086         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
11087         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
11088         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
11089         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
11090         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
11091         config/i386/i386.md, config/rs6000/predicates.md,
11092         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
11093         config/s390/s390.c, config/stormy16/stormy16.c,
11094         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
11095         typos.
11096
11097 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
11098
11099         PR c/17855
11100         * gimplify.c (gimplify_expr): Create a temporary for lvalue
11101         COND_EXPR and CALL_EXPR.
11102
11103 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
11104
11105         PR target/20632
11106         * genautomata.c (first_cycle_unit_presence): Check all alternative
11107         states for unit presence.
11108
11109         * doc/md.texi: Remove remark about impossibility to query unit
11110         presence in non nondeterministic automaton state.
11111
11112         * config/ia64/ia64.c (get_template): Change order of unit querying.
11113
11114 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
11115
11116         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
11117         obsolete comment.
11118
11119 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
11120
11121         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
11122         flag for edges outside any loops.
11123
11124 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
11125
11126         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
11127
11128 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
11129
11130         * tree-ssa-alias.c: Follow spelling conventions.
11131         * doc/tree-ssa.texi: Fix a typo.
11132
11133 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
11134
11135         * postreload-gcse.c: Include target.h.
11136         (gcse_after_reload_main): Return early if we cannot modify jumps.
11137         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
11138
11139 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
11140
11141         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
11142         expensive operations.
11143
11144 2005-03-31  Ian Lance Taylor  <ian@airs.com>
11145
11146         * collect2.c (lderrout): New variable.
11147         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
11148         if it is set, to stderr.
11149         (handler): Unlink lderrout if it is set.
11150         (dump_file): Add "to" parameter.  Change all callers.
11151         (main): Initialize lderrout.
11152         (collect_execute): Add errname parameter.  Change all callers.
11153         Rename redir parameter to outname.  Never pass
11154         PEX_STDERR_TO_STDOUT to pex_run.
11155         * collect2.h (collect_execute, dump_file): Update declarations.
11156         * tlink.c (tlink_execute): Add errname parameter.  Change all
11157         callers.
11158         (do_tlink): Check lderrout as well as ldout.
11159
11160 2005-03-31  Caroline Tice  <ctice@apple.com>
11161
11162         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
11163         (bb-reorder.o): Add errors.h to list of requirements.
11164         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
11165         profiledbootstrap flags.
11166         * bb-reorder.c (errors.h): Add new include.
11167         (struct bbro_basic_block_data_def): Add new field, in_trace.
11168         (add_unlikely_executed_notes):  Remove function.
11169         (mark_bb_for_unlikely_executed_section): Remove function.
11170         (insert_section_boundary_note): New function.
11171         (verify_hot_cold_block_grouping): New function.
11172         (push_to_next_round_p): Remove variables and tests that push all
11173         cold blocks to last round.
11174         (find_traces): Remove code that added extra round of trace finding
11175         when doing partitioning.
11176         (find_traces_1_round) :  Remove variable last_round;  add code to
11177         update new struct field, in_trace; correct trace_length where it was
11178         incorrect before (after call to copy_bb); change code that pushed all
11179         cold blocks to last round. Instead verify that all blocks going into
11180         a trace belong in the same partition.
11181         (connect_traces): Modify to connect the traces in two passes, if the
11182         function contains both hot and cold blocks.  The first pass connects
11183         all the traces for blocks in the partition that the first block in
11184         the function belongs to; the second pass connnects all the traces
11185         containing blocks that belong in the other partition.
11186         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
11187         code that automatically put the first block in a function into the
11188         hot partition if the function had any hot blocks.
11189         (fix_crossing_unconditional_branches): Check number of succ edges
11190         before attempting to get one.
11191         (fix_edges_for_rarely_executed_code):  Update comment describing
11192         function.
11193         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
11194         remove call to add_unlikely_executed_notes; add call to
11195         verify_hot_cold_block_grouping.
11196         (duplicate_computed_gotos): Don't change computed goto if it's a
11197         crossing edge.
11198         (partition_hot_cold_basic_blocks):  Update function comment.
11199         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from
11200         condition.
11201         (try_forward_edges): Likewise.
11202         (merge_blocks_move_predecessor_nojumps): Likewise.
11203         (merge_blocks_move_successor_nojumps): Likewise.
11204         (merge_blocks_move): Likewise.
11205         (try_crossjump_bb): Likewise.
11206         * cfglayout.c (update_unlikely_executed_notes): Remove function.
11207         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
11208         notes to cold bb's; remove call to update_unlikely_executed_notes.
11209         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
11210         NOTE_INSN_SWITCH_TEXT_SECTIONS.
11211         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
11212         function declaration.
11213         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
11214         from consideration.
11215         (rtl_can_merge_blocks): Remove redundancy from condition.
11216         (try_redirect_by_replacing_jump): Likewise.
11217         (force_nonfallthru_and_redirect): Remove code for adding
11218         UNLIKELY_EXECUTED_CODE notes to cold bb's.
11219         (commit_one_edge_insertion): Likewise.
11220         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
11221         * dbxout.c (FORCE_TEXT): Replace function_section with
11222         current_function_section.
11223         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
11224         function, switch_text_section.
11225         (struct xcoff_debug): Likewise.
11226         (dbxout_function_end): Add code to put out label diffs for both
11227         hot and cold sections.
11228         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
11229         for new debug_hooks funciton, switch_text_section..
11230         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
11231         switch_text_section.
11232         * dwarf2out.c (struct dw_fde_struct):  Add five new fields:
11233         dw_fde_hot_section_label, dw_fde_hot_section_end_label,
11234         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
11235         dw_fde_switched_sections.
11236         (output_call_frame_info):  Add test to see if function switches text
11237         sections in the middle; if so, use appropriate extra hot and cold
11238         section labels to compute size deltas for the hot and cold sections.
11239         (dwarf2out_begin_prologue): Add code to initialize new fields in
11240         dw_fde_struct.
11241         (dwarf2out_switch_text_section): New function (invoked through
11242         debug_hook); updates new fields in dw_fde_struct appropriately and
11243         increments separate_line_info_table_in_use.
11244         (dwarf2_debug_hooks): Initialize switch_text_section function to be
11245         dwarf2out_switch_text_section.
11246         (struct var_loc_node): Add new field, section_label.
11247         (output_aranges): Add code to check whether in hot or cold section and
11248         use the appropriate label in calculating deltas.
11249         (output_ranges): Likewise.
11250         (output_line_info): Add code to check which section we're in and
11251         use appropriate hot/cold label.
11252         (add_location_or_constant_value_attribute): Likewise.
11253         (gen_subprogam_die): Modify arange attributes to use correct labels.
11254         (dwarf2out_begin_block): Change call to function_section into call to
11255         current_function_section.
11256         (dwarf2out_end_block): Likewise.
11257         (dwarf2out_source_line): Likewise.
11258         (dwarf2out_var_location): Add code to check whether in hot or cold
11259         section and use the appropriate label.
11260         * except.c (output_function_exception_table): Change call to
11261         function_section into call to current_function_section.
11262         * final.c (profile_function): Likewise.
11263         (scan_ahead_for_unlikely_executed_note): Remove function.
11264         (final_scan_insn):  Remove calls to
11265         scan_ahead_for_unlikely_executed_note, and related code for switching
11266         to cold section, except for the single time
11267         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
11268         debug_hooks->switch_text_sections; replace appropriate calls to
11269         function_section with calls to current_function_section.
11270         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add
11271         test_bb to condition.
11272         (find_if_case_2): Likewise.
11273         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
11274         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
11275         * opts.c (decode_options): Change warning about hot/cold partitioning
11276         with exceptionss to inform (so as not to cause bootstrap failures);
11277         remove warning about partitioning with DWARF debug info.
11278         * output.h (current_function_section): Add new function decl.
11279         (insert_section_boundary_note): Likewise.
11280         (enum in_section): Move this declaration here from varasm.c.
11281         (unlikely_section_label): Likewise.
11282         (unlikely_text_section_name): Likewise.
11283         (last_text_section_name): New global variable.
11284         (last_text_section): Likewise.
11285         (hot_section_label): Likewise.
11286         (hot_section_end_label): Likewise.
11287         (cold_section_end_label): Likewise.
11288         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
11289         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
11290         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
11291         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
11292         insn from consideration.
11293         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
11294         switch_text_section.
11295         * varasm.c (basic-block.h): Add new include.
11296         (unlikely_section_label_printed): Remove global variable.
11297         (unlikely_section_label): Make global variable not be static any more.
11298         (unlikely_text_section_name): Likewise.
11299         (hot_section_end_label): New global variable (not static)
11300         (first_function_block_is_cold): Likewise.
11301         (hot_section_label): Likewise.
11302         (cold_section_end_label): Likewise..
11303         (last_text_section): New global variable, not static.
11304         (last_text_section_name): New global variable, not static.
11305         (initialize_cold_section_name): New function.
11306         (enum in_section): Move declaration to output.h.
11307         (text_section): Update last_text_section.
11308         (unlikely_text_section): Replace code to determine cold section name
11309         with call to initialize_cold_section_name; Add code to update
11310         last_text_section; remove code for printing out label.
11311         (named_section_real): Add code to update last_text_section and
11312         last_text_section_name as appropriate.
11313         (function_section): Change test for 'unlikely' to depend on
11314         first_function_block_is_cold (moved old test to
11315         current_function_section).
11316         (current_function_section): New function.
11317         (assemble_start_function): Move code that frees
11318         unlikely_text_section_name; initialize hot_section_end_label;
11319         print hot and cold section labels at the start of the function;
11320         set first_function_block_is_cold, if appropriate; initialize l
11321         ast_text_section; add call to insert_section_boundary_note.
11322         (assemble_end_function):  Add code to write out hot and cold section
11323         end labels.
11324         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
11325         switch_text_section.
11326         * config/darwin.c (machopic_select_section): Replace incorrect
11327         function in base_funs; update reloc for cold sections if necessary.
11328         * config/darwin.h (SECTION_FUNCTION):  Add code to update
11329         last_text_section if appropriate.
11330         (text_unlikely_section): Remove.
11331         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
11332         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
11333         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
11334         partitioning for this architecture.
11335
11336 2005-03-31  Olivier Hainque  <hainque@adacore.com>
11337
11338         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
11339         defined and non-zero.
11340
11341 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
11342
11343         PR c++/18644
11344         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
11345         semantics.
11346
11347 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
11348
11349         PR target/20611
11350         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
11351         label operand.  Remove (use (unspec..)).  Don't emit a label on
11352         the offset word.
11353         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
11354         generate inline label for load_toc_v4_PIC_1b.
11355         (rs6000_emit_load_toc_table): Likewise.
11356
11357 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
11358
11359         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
11360         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
11361
11362 2005-03-29  Devang Patel  <dpatel@apple.com>
11363
11364         * tree-sra.c (decide_block_copy): Disable scalarization of
11365         sub-elements.
11366
11367 2005-03-30  Stuart Hastings  <stuart@apple.com>
11368             Dale Johannesen  <dalej@apple.com>
11369
11370         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
11371         * print-tree.c (print_node):  Add case STATEMENT_LIST.
11372
11373 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
11374
11375         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
11376         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
11377         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
11378         is given with "powerpc64*" or "all", or when --with-cpu chooses
11379         a 64-bit cpu.
11380
11381 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
11382
11383         PR debug/20268
11384         * dwarf2out.c (add_high_low_attributes): New function, extracted from
11385         gen_lexical_block_die.
11386         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
11387
11388 2005-03-31  Jan Hubicka  <jh@suse.cz>
11389
11390         2004-11-02  Jan Hubicka  <jh@suse.cz>
11391
11392         * cgraph.c (cgraph_varpool_node_name): New function.
11393         (dump_cgraph_varpool_node): New function.
11394         (dump_varpool): New function.
11395         * cgraphunit.c (cgraph_optimize): Dump varpool.
11396
11397         2004-10-16  Jan Hubicka  <jh@suse.cz>
11398
11399         * cgraph.c (decide_is_variable_needed): New function.
11400         (cgraph_varpool_finalize_decl): Use it.
11401         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
11402         unit-at-a-time.
11403         * final.c (output_addr_const): Do not call mark_referenced.
11404         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
11405         always go via cgraph.
11406         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
11407         (check_global_declarations): Ifdef out code clearing DECL_RTL.
11408         * tree-optimize.c (execute_inline): Mark functions called.
11409         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
11410
11411         2004-10-11  Jan Hubicka  <jh@suse.cz>
11412
11413         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
11414         (cgraph_varpool_last_needed_node): New static variable.
11415         (enqueue_needed_varpool_node): Break out from ...; add items to the
11416         end of queue; update first pointers.
11417         (cgraph_varpool_mark_needed_node): ... here.
11418         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
11419         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
11420         * cgraph.h (cgraph_varpool_node): Add analyzed field.
11421         (cgraph_varpool_first_unanalyzed_node): Declare.
11422         * cgraphunit.c: Include output.h.
11423         (cgraph_varpool_analyze_pending_decls): New function.
11424         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
11425         for errors, analyze pending decls.
11426         (cgraph_finalize_compilation_unit): Only analyze decls.
11427         (cgraph_optimize): Assemble the decls after expanding.
11428
11429 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
11430
11431         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
11432         subvars get marked properly in tags for grouping.
11433         (add_pointed_to_var): Mark only actual pointed to
11434         variables/subvars in addresses needed.
11435         (create_overlap_variables_for): Clear call clobbered on original
11436         variable.
11437         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
11438         addresable vars with subvars into list.
11439         * tree-ssa.c (verify_ssa_name): Verify original is not used where
11440         subvar should be.
11441
11442 2005-03-30  Richard Henderson  <rth@redhat.com>
11443
11444         * cgraph.h (struct cgraph_node): Add alias.
11445         * varasm.c (assemble_alias): Set it.
11446         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
11447         avoid calling cgraph_expand_function.
11448
11449 2005-03-30  Tom Tromey  <tromey@redhat.com>
11450
11451         * tree.def (FILE_TYPE): Removed.
11452         * typeclass.h (enum type_class): Removed file_type_class.
11453         * dwarf2out.c (is_base_type): Updated.
11454         (gen_type_die): Likewise.
11455         * dbxout.c (dbxout_type): Updated.
11456         * builtins.c (type_to_class): Updated.
11457         * tree.c (type_contains_placeholder_1): Updated.
11458         * config/sparc/sparc.c (sparc_type_code): Updated.
11459         * config/ia64/ia64.c (hfa_element_mode): Updated.
11460         * expr.c (count_type_elements): Updated.
11461         * stor-layout.c (layout_type): Updated.
11462         * tree-inline.c (remap_type): Updated.
11463         * tree-pretty-print.c (dump_generic_node): Updated.
11464
11465 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
11466
11467         * builtins.c (expand_builtin_powi): Fix mode of
11468         2nd argument to match int.
11469         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
11470         2nd argument type to int.
11471         * libgcc2.c: Change prototype of __powi* functions to use
11472         int.
11473
11474 2005-03-30  Dale Johannesen  <dalej@apple.com>
11475
11476         PR middle-end/19225
11477         * calls.c (expand_call):  Flush pending deferrals before
11478         throwing call.
11479
11480 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
11481
11482         PR c/772
11483         PR c/17913
11484         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
11485         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
11486         c_label_context, label_context_stack): New.
11487         * c-decl.c (define_label): Check for jumps into statement
11488         expressions.  Add label to list of defined labels.
11489         (start_function): Push context on label_context_stack.
11490         (finish_function): Pop context from label_context_stack.
11491         * c-typeck.c (label_context_stack): New.
11492         (c_finish_goto_label): Check for jumps into statement
11493         expressions.  Add label to list of jumped to labels.
11494         (struct c_switch): Add blocked_stmt_expr.
11495         (c_start_case): Initialize it.
11496         (do_case): Check it.
11497         (c_finish_case): Verify !blocked_stmt_expr.
11498         (c_begin_stmt_expr):  Push context on label_context_stack.
11499         Increment blocked_stmt_expr.  Mark labels jumped to from outside
11500         as undefinable.
11501         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
11502         defined in the statement expression and no longer jumpable to.
11503         Mark labels jumped to from just outside the statement expression
11504         as again definable.  Pop context from label_context_stack.
11505         * doc/extend.texi (Statement Exprs): Update.
11506
11507 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
11508
11509         PR c/20368
11510         * c-decl.c (start_function): Check for old_decl being
11511         error_mark_node.
11512
11513 2005-03-30  Ian Lance Taylor  <ian@airs.com>
11514
11515         * final.c (final): Remove prescan parameter.  Change all callers.
11516         (final_scan_insn): Remove prescan parameter.  Change all callers.
11517
11518 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
11519
11520         * tree-vectorizer.c: Fix comment typos.
11521
11522 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
11523
11524         * tree-scalar-evolution.c (instantiate_parameters_1): Return
11525         as soon as a chrec_dont_know is detected.
11526
11527 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
11528
11529         Merge from csl-arm-branch.
11530         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
11531
11532         * tlink.c (recompile_files): Do not assume that "rename" can
11533         overwrite an existing file.
11534
11535 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
11536
11537         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
11538         * gcc/configure: Regenerate.
11539
11540 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
11541
11542         * doc/install.texi: Update binutils requirement for powerpc*-linux.
11543
11544         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
11545
11546         * calls.c (struct arg_data): Update "partial" comment.
11547         (load_register_parameters): Update "nregs" comment.
11548
11549 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
11550
11551         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
11552         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
11553         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
11554         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
11555         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
11556         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
11557         than target_flags & 0.
11558         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
11559         (iq2000_arch, iq2000_parse_cpu): Delete.
11560         (TARGET_HANDLE_OPTION): Override default.
11561         (iq2000_handle_option): New function.
11562         (override_options): Remove -march= and -mcpu= handling.
11563         * config/iq2000/iq2000.opt: New file.
11564
11565 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
11566
11567         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
11568         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
11569         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
11570         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
11571         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
11572         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
11573         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
11574         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
11575         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
11576         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
11577         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
11578         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
11579         (c4x_rpts_cycles_string, c4x_cpu_version_string)
11580         (TARGET_OPTIONS): Delete.
11581         (c4x_rpts_cycles, c4x_cpu_version): Declare.
11582         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
11583         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
11584         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
11585         (c4x_cpu_version_string): Delete.
11586         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
11587         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
11588         equivalent -mcpu= option.
11589         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
11590         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
11591         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
11592         or clearing the appropriate MASK_* bit.
11593         (c4x_file_start): Use c4x_cpu_version.
11594         * config/c4x/c4x.opt: New file.
11595
11596 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
11597
11598         * doc/options.texi: Document the new MaskExists flag.
11599         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
11600         if the option has the MaskExists flag.
11601
11602 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
11603
11604         * opt-functions.awk (flag_set_p, test_flag): New functions.
11605         (switch_flags): Use them.
11606         * opth-gen.awk: Use flag_set_p to check for flags.
11607         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
11608
11609 2005-03-30  Ian Lance Taylor  <ian@airs.com>
11610
11611         * config.host (i[34567]86-*-mingw32*): Don't set
11612         host_can_use_collect2 to no.
11613
11614 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
11615
11616         PR target/20203
11617         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
11618         Remove convert_memory_address call duplicating that in memory_address.
11619
11620 2005-03-29  Richard Henderson  <rth@redhat.com>
11621
11622         PR c/20519
11623         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
11624         (build_compound_literal): Likewise.  Propagate decl type into the
11625         initializer.
11626         (finish_decl): Likewise.  Use new return value from complete_array_type
11627         for zero sized arrays.
11628         (complete_array_type): Move ...
11629         * c-common.c (complete_array_type): ... here.  Change first argument
11630         to pointer-to-type-node.  Consistently use sizetype for the index
11631         except for zero sized arrays.  Detect zero sized arrays for pedantic
11632         mode diagnostics.  Create a new type node instead of modifying the
11633         old node in place.
11634         * c-tree.h (complete_array_type): Move decl ...
11635         * c-common.h (complete_array_type): ... here.
11636
11637 2005-03-29  Richard Henderson  <rth@redhat.com>
11638
11639         PR tree-opt/19108
11640         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
11641
11642 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
11643
11644         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
11645         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
11646         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
11647         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
11648
11649 2005-03-29  Eric Christopher  <echristo@redhat.com>
11650
11651         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
11652         truthvalue conversion removal.
11653
11654 2005-03-29  Ian Lance Taylor  <ian@airs.com>
11655
11656         PR bootstrap/14316
11657         * collect2.c: Never include <vfork.h>.
11658         (VFORK_STRING, vfork): Don't define.
11659         (pid): Remove global variable.
11660         (handler): Call raise instead of kill (getpid(), ...).
11661         (collect_wait): Add pex parameter.  Change all callers.  Use
11662         pex_get_status rather than pwait.
11663         (do_wait): Add pex parameter.  Change all callers.
11664         (collect_execute): Return struct pex_obj * rather than void.  Use
11665         pex routines rather than pexecute.
11666         (fork_execute): Get pex_obj from collect_execute, and pass it to
11667         do_wait.
11668         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
11669         Only declare quit_handler if SIGQUIT is defined.
11670         (scan_libraries): Likewise.
11671         * collect2.h (collect_execute): Update declaration.
11672         (collect_wait): Update declaration.
11673         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
11674         pass it to collect_wait.
11675
11676 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
11677
11678         PR c/20672
11679         * c-parser.c (c_parser_compound_statement_nostart): Give error
11680         message for EOF instead of just setting parser->error.
11681
11682 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
11683
11684         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
11685         (slpeel_update_phi_nodes_for_guard1): New function.
11686         (slpeel_update_phi_nodes_for_guard2): New function.
11687         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
11688         of slpeel_update_phi_nodes_for_guard.
11689         (vectorize_loops): Remove call to loop_closed_rewrite.
11690         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
11691         assertion.
11692
11693 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
11694
11695         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
11696         (TARGET_LITTLE_ENDIAN): New macro.
11697         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
11698         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
11699         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
11700         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
11701         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
11702         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
11703         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
11704         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
11705         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
11706         (TARGET_OPTIONS): Delete.
11707         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
11708         (CACHE_FLUSH_TRAP): Turn into an integer.
11709         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
11710         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
11711         -mflush-trap is in use.
11712         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
11713         (m32r_cache_flush_trap_string): Delete.
11714         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
11715         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
11716         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
11717         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
11718         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
11719         -mmodel= and -msdata= handling from...
11720         (m32r_init): ...here.
11721         * config/m32r/m32r.opt: New file.
11722
11723 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
11724
11725         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
11726         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
11727         * tree-vect-analyze.c (vect_object_analysis): additional parm
11728         pass back a "struct ptr_info_def *" with the points-to info.
11729         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
11730         statement using info returned from vect_object_analysis.
11731         * tree-vect-transform.c (update_vuses_to_preheader): New function.
11732         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
11733         for virtual uses and defs when creating a replacement vector
11734         reference.  Call duplicate_ssa_name_ptr_info to define points-to
11735         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
11736         (vectorizable_store): copy_virtual_operands and update
11737         definition statements.
11738         (vectorizable_load): copy_virtual_operands.  Remove call to
11739         mark_call_clobbered_vars_to_rename for call to "const" builtin.
11740         * tree-vectorizer.c (vectorize_loops): Remove calls to
11741         rewrite_into_ssa and bitmap_clear (vars_to_rename).
11742         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
11743         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
11744         define macro STMT_VINFO_PTR_INFO for use in accessing.
11745         * tree.h add export of duplicate_ssa_name_ptr_info.
11746         * rs6000.c (altivec_init_builtins): Declare builtin function
11747         __builtin_altivec_mask_for_load to be "const".
11748
11749 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
11750
11751         PR middle-end/20622
11752         * cgraph.h (struct cgraph_varpool_node): Add alias field.
11753         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
11754         assemble_variable on aliases.
11755         * varasm.c (assemble_alias): Set node->alias.
11756         * toplev.c (wrapup_global_declarations): Don't call
11757         rest_of_decl_compilation on aliases again.
11758
11759 2005-03-29  Paul Brook  <paul@codesourcery.com>
11760
11761         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
11762         * config/arm/arm.c (arm_dbx_register_number): New function.
11763         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
11764
11765 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
11766
11767         PR middle-end/20263
11768         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
11769         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
11770
11771 2005-03-29  Dale Johannesen <dalej@apple.com>
11772
11773         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
11774         $(TREE_H) and $(COVERAGE_H).
11775         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
11776         * opts.c (common_handle_option): Enable tree-based value transforms.
11777         * toplev.c (process_options): Ditto.
11778         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
11779         refers to references to this type.
11780         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
11781         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
11782         for may_be_more, may_be_less.
11783         (rtl_gen_pow2_profiler): Adjust.
11784         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
11785         (rtl_gen_one_value_profiler): Adjust.
11786         (rtl_gen_const_delta_profiler): Adjust.
11787         * tree-profile.c (tree_gen_interval_profiler): Implement.
11788         (tree_gen_pow2_profiler): Ditto.
11789         (tree_gen_one_value_profiler): Ditto.
11790         (tree_profiling): New.
11791         (pass_tree_profile): Reference it.
11792         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
11793         tree.h, gcov-io.h.
11794         (insn_divmod_values_to_profile): Rename to
11795         rtl_divmod_values_to_profile. Adjust.
11796         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
11797         (insn_prefetch_values_to_profile): Adjust.
11798         (rtl_value_profile_transformations): Adjust.
11799         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
11800         (gen_mod_pow2): Rename to rtl_mod_pow2.
11801         (gen_mod_subtract): Rename to rtl_mod_subtract.
11802         (divmod_fixed_value_transform): Rename to
11803         rtl_divmod_fixed_value_transform.
11804         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
11805         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
11806         (rtl_find_values_to_profile): Adjust.
11807         (tree_value_profile_transformations): Implement.
11808         (tree_divmod_values_to_profile): New.
11809         (tree_values_to_profile): New.
11810         (tree_divmod_fixed_value): New.
11811         (tree_mod_pow2): New.
11812         (tree_mod_subtract): New.
11813         (tree_divmod_fixed_value_transform): New.
11814         (tree_mod_pow2_value_transform): New.
11815         (tree_mod_subtract_transform): New.
11816         (tree_find_values_to_profile): Implement.
11817         * profile.c (instrument_values):  Free histograms.
11818         (compute_value_histograms): Adjust. Implement tree version.
11819
11820 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
11821
11822         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
11823         * config/i386/i386.c (output_fix_trunc): Add new round_mode
11824         variable.  Output "fldcw" depending on round_mode.
11825         * config/i386/i386.md (UNSPEC_FIST): New.
11826         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
11827         New isns patterns to implement lrint and llrint built-ins as x87
11828         intrinsic function.
11829         (fistdi2, fist<mode>2 splitters): New splitters.
11830         (lrint<mode>2): New expanders.
11831
11832 2005-03-28  Ian Lance Taylor  <ian@airs.com>
11833
11834         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
11835         0 when calling final_scan_insn.
11836
11837 2005-03-28  Jan Hubicka  <jh@suse.cz>
11838
11839         PR middle-end/20635
11840         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
11841         as needed.
11842
11843         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
11844         types where possible.
11845
11846 2005-03-26  Per Bothner  <per@bothner.com>
11847
11848         Make -f[no-]show-column also control non-cpp diagnostics.
11849         * c.opt (fshow-column): Move option from here ...
11850         * common.opt (fshow-column): ... to here.
11851         * diagnostic.c (diagnostic_build_prefix): Only print column number
11852         if flag_show_column.
11853
11854 2005-03-27  Steven Bosscher  <stevenb@suse.de>
11855
11856         * vax-protos.h (vax_output_int_move, vax_output_int_add,
11857         vax_output_conditional_branch): New prototypes.
11858         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
11859         extracted from vax.md mov and add patterns.
11860         (vax_output_conditional_branch): New function to output conditional
11861         branch instructions.
11862         * vax.md: Use mode macros for arithmetic and mov patterns.
11863         Use code macros for the jump patterns.
11864
11865 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
11866
11867         * Makefile.in (libbackend.o): Depend on version files;
11868         add custom generation command.
11869
11870 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
11871
11872         PR target/20636
11873         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
11874         sure that we have a REG before getting its REGNO.
11875
11876 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11877
11878         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
11879         * builtins.def (BUILT_IN_STRNDUP): New.
11880
11881 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
11882
11883         PR tree-optimization/20470
11884         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
11885         ABS(x-y).
11886
11887 2005-03-25  Mike Stump  <mrs@apple.com>
11888
11889         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
11890         sized objects.
11891
11892 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
11893
11894         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
11895         Use our own structure definitions.
11896
11897         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
11898         (fix_truncdfsi2): Allow registers or memory as destination.
11899         When TARGET_PPC_GFXOPT, generate simplified pattern.
11900         (fix_truncdfsi2_internal): Use define_insn_and_split.
11901         (fix_truncdfsi2_internal_gfxopt): New.
11902         (fctiwz): Don't confuse register allocation by giving it no choices.
11903         (stfiwx): New.
11904         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
11905         (EXTRA_MEMORY_CONSTRAINT): Likewise.
11906         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
11907         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
11908
11909 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
11910
11911         * dominance.c (free_dominance_info): Speed up by freeing et
11912         data structures without maintaining other nodes.
11913         * et-forest.c (et_free_tree_force): New.
11914         * et-forest.h: Add a prototype for et_free_tree_force.
11915
11916         * tree.c (get_set_constructor_bits,
11917         get_set_constructor_bytes): Remove.
11918         * tree.h: Remove the corresponding prototypes.
11919
11920 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
11921
11922         PR target/15491
11923         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
11924         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
11925         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
11926         PRE_DEC, NEG and NOT.
11927
11928 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
11929
11930         * fold-const.c: Convert uses of fold (build (...)) to
11931         fold_buildN.
11932
11933 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
11934
11935         PR rtl-optimization/20249
11936         * cse.c (insert_regs): Do not record equivalence of registers in
11937         different modes.
11938
11939 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
11940
11941         * emit-rtl.c (reverse_comparison): Remove.
11942         * rtl.h: Remove the corresponding prototype.
11943
11944 2005-03-24  James E Wilson  <wilson@specifixinc.com>
11945
11946         * doc/install.texi (--enable-altivec): Delete docs.
11947
11948 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
11949
11950         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
11951         SFmode and DFmode before reload when
11952         flag_unsafe_math_optimizations not enabled.
11953
11954 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
11955
11956         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
11957
11958         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
11959         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
11960
11961 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
11962
11963         * configure.ac (enable-checking): Add 'runtime' option.
11964         * doc/install.texi (enable-checking): Document 'runtime' checking.
11965         * tsystem.h (gcc_assert, gcc_unreachable): Define.
11966         * config.in: Regenerated.
11967         * configure: Regenerated.
11968
11969 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
11970
11971         * optabs.h (enum optab_index): Remove OTI_llrint.
11972         (llrint_optab): Remove macro.
11973         * optabs.c (init_optabs): Remove llrint_optab initialization.
11974         * genopinit.c (optabs): Remove llrint_optab implementation.
11975         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
11976         using lrint_optab.
11977
11978 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
11979
11980         PR rtl-optimization/20532
11981         * simplify-rtx.c (simplify_binary_operation_1): Protect from
11982         overflow when adding coefficients for PLUS or MINUS.
11983         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
11984         two as multiplier.
11985
11986 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
11987
11988         * langhooks.h (truthvalue_conversion): Remove.
11989         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
11990         LANG_HOOKS_TRUTHVALUE_CONVERSION.
11991         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
11992         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
11993         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
11994
11995 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
11996
11997         * params.def: Fix a typo.
11998         * config/mips/mips.c: Follow the spelling convensions.
11999         * doc/invoke.texi: Fix typos.
12000
12001 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
12002
12003         Fix PR tree-optimization/20601
12004
12005         * tree-ssa-pre.c (insert_aux): Add missing condition to
12006         constification.
12007
12008 2005-03-23  Ian Lance Taylor  <ian@airs.com>
12009
12010         * final.c (final_scan_insn): Don't remove no-op instructions.
12011         * reload1.c (reload): Remove simple no-op instructions even when
12012         not optimizing.
12013
12014 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
12015
12016         PR tree-optimization/20501
12017         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
12018         reporting that peeling for alignment is applied moved to...
12019         * (vect_analyze_data_refs_alignment): Here.
12020
12021 2005-03-23  Ian Lance Taylor  <ian@airs.com>
12022
12023         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
12024
12025 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12026
12027         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
12028         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
12029
12030 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
12031
12032         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
12033         imply that this is called once, independent of asms in code.
12034         Adjust to now being pased output and input lists.  Mention helper
12035         function decl_overlaps_hard_reg_set_p.
12036         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
12037         hook_tree_tree_identity and to take three trees, returning third.
12038         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
12039         prototype.
12040         * stmt.c: include hard-reg-set.h before tree.h.
12041         (decl_overlaps_hard_reg_set_p): New function, broken out from...
12042         (decl_conflicts_with_clobbers_p): Call
12043         decl_overlaps_hard_reg_set_p.
12044         (expand_asm_operands): Pass output and input lists in call to
12045         targetm.md_asm_clobbers.
12046         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
12047         hook_tree_tree_tree_tree_3rd_identity.
12048         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
12049         parameters.
12050         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
12051         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
12052         parameters, first two unused.
12053         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
12054         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
12055         in constraint letters and MOF is not mentioned as a asm-declared
12056         register in neither of the input and output lists.
12057
12058 2005-03-23  DJ Delorie  <dj@redhat.com>
12059
12060         * optabs.c (expand_binop): Make sure the first subword's result
12061         gets stored.
12062
12063 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
12064
12065         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
12066         Call c_common_truthvalue_conversion rather than
12067         lang_hooks.truthvalue_conversion.
12068         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
12069         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
12070         c-typeck.c.
12071         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
12072         c_common_truthvalue_conversion.
12073         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
12074         c_parser_conditional_expression, c_parser_binary_expression): Call
12075         c_objc_common_truthvalue_conversion.
12076         * c-typeck.c (build_unary_op): Call
12077         c_objc_common_truthvalue_conversion.
12078         (build_conditional_expr): Do not call
12079         lang_hooks.truthvalue_conversion.
12080         (build_binary_op): Call c_common_truthvalue_conversion.
12081         (c_objc_common_truthvalue_conversion): Moved from
12082         c-objc-common.c.  Call default_function_array_conversion instead
12083         of default_conversion.
12084
12085 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
12086
12087         * c-common.h (default_conversion): Remove.
12088         (perform_integral_promotions): Add.
12089         * c-tree.h (default_conversion): Add.
12090         * c-typeck.c (perform_integral_promotions): New, split out from
12091         default_conversion.
12092         * c-common.c (check_case_value): Use perform_integral_promotions,
12093         not default_conversion.
12094         (c_add_case_label): Don't continue processing case label after
12095         found to be pointer.
12096
12097 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
12098
12099         * gcc.c (do_spec_1): Do not add a -L path for a directory in
12100         the prefix list if we have already added a multilib directory
12101         based on that path.
12102         (main): Do not add MD_EXEC_PREFIX to the list of directories to
12103         search with -L.
12104
12105 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
12106
12107         * reload1.c (indirect_symref_ok, reload_obstack): Make them
12108         static.
12109         * reload.h: Remove the prototype for indirect_symref_ok.
12110
12111         * reload1.c (indirect_symref_ok): Make it global.
12112         * reload.h: Add a prototype for indirect_symref_ok.
12113
12114 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
12115
12116         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
12117         ashlhi3 expander.
12118
12119 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
12120
12121         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
12122
12123 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
12124
12125         * c-opts.c (c_common_parse_file): Only start/end main source file
12126         if debug hooks says the writer wants it.
12127         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
12128         member.
12129         (xcoff_debug_hooks): Ditto.
12130         * debug.c (do_nothing_hooks): Ditto.
12131         * debug.h (gcc_debug_hooks): Ditto.
12132         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
12133         * sdbout.c (sdb_debug_hooks): Ditto.
12134         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
12135
12136 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
12137
12138         * doc/extend.texi: Deprecate C++ min/max operators.
12139
12140 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
12141
12142         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
12143         artificial original candidates.
12144
12145 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
12146             Jan Hubicka  <jh@suse.cz>
12147             Steven Bosscher <stevenb@suse.de>
12148
12149         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
12150         call cost based on argument sizes.
12151         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
12152         inlining.
12153         * params.def: (max-inline-inssn-single): Set to 450.
12154         (max-inline-insns-auto): Set to 90.
12155         (max-inline-insns-recursive): Set to 450
12156         (max-inline-insns-recursive-auto): Set to 450.
12157         (large-function-insns): Set to 2700.
12158         (inline-call-cost): New parameter.
12159         * tree-inline.c (estimate_move_cost): New function.
12160         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
12161         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
12162         based on arguments.
12163         * tree-inline.h (estimate_move_cost): Declare.
12164         * invoke.texi: (max-inline-inssn-single): Change default to 450.
12165         (max-inline-insns-auto): Change default to 90.
12166         (max-inline-insns-recursive): Change default to 450
12167         (max-inline-insns-recursive-auto): Change default to 450.
12168         (large-function-insns): Change default to 2700.
12169         (inline-call-cost): Document new parameter.
12170
12171 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
12172
12173         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
12174         (TARGET_DEFAULT): Delete.
12175         * config/i860/i860.opt: New file.
12176
12177 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
12178
12179         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
12180         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
12181         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
12182         (frv_sched_lookahead): Delete.
12183         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
12184         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
12185         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
12186         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
12187         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
12188         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
12189         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
12190         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
12191         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
12192         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
12193         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
12194         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
12195         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
12196         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
12197         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
12198         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
12199         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
12200         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
12201         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
12202         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
12203         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
12204         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
12205         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
12206         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
12207         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
12208         (frv_sched_lookahead): Delete.
12209         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
12210         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12211         (frv_handle_option): New function.  Move -mcpu= handling from...
12212         (frv_override_options): ...here.  Remove handling of other
12213         TARGET_OPTIONS.
12214         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
12215         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
12216         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
12217         and TARGET_NO_MULTI_CE.
12218         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
12219         !TARGET_VLIW_BRANCH.
12220         * config/frv/frv.opt: New file.
12221
12222 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
12223
12224         * fold-const.c (fold_ternary): Take decomposed arguments of
12225         CALL_EXPR.
12226         (fold): Update a call to fold_ternary.
12227
12228         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
12229         * tree.h: Add corresponding prototypes.
12230
12231 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
12232
12233         PR target/20561
12234         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
12235         between jump table and its label.
12236         * final.c (shorten_branches): Handle notes in between ADDR_VEC
12237         resp. ADDR_DIFF_VEC and the label preceeding it.
12238         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
12239         is emitted in the right section.
12240
12241 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
12242
12243         * fold-const.c (fold_unary, fold_binary): Update comments
12244         about arguments.
12245
12246 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
12247
12248         PR rtl-optimization/20527
12249         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
12250         REG_INC note, test that the register also isn't mentioned in PRED
12251         or SUCC.
12252
12253 2005-03-22  Ben Elliston  <bje@au.ibm.com>
12254
12255         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
12256         and definition.
12257
12258 2005-03-21  Mike Stump  <mrs@apple.com>
12259
12260         * varasm.c (default_assemble_visibility): Remove extra ().
12261
12262 2005-03-21  Roger Sayle  <roger@eyesopen.com>
12263
12264         PR middle-end/20557
12265         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
12266         to determine whether a block can be duplicated, rather than test
12267         whether the block contains noncopyable insns ourselves.
12268
12269 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
12270
12271         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
12272         predicates.
12273
12274 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
12275
12276         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
12277
12278 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
12279
12280         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
12281         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
12282         * config/fr30/fr30.opt: New file.
12283
12284 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
12285
12286         Fix PR tree-optimization/20542
12287
12288         * tree-flow-inline.h (overlap_subvar): Move to here.
12289         * tree-ssa-operands.c: From here.
12290         * tree-flow.h (overlap_subvar): Declare.
12291         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
12292         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
12293         for variables with subvars.
12294
12295 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
12296
12297         PR middle-end/20177
12298         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
12299         * modulo-sched.c (const_iteration_count): Return on NULL
12300         pre-header.
12301         (print_node_sched_params): Return on NULL dump_file.
12302         (generate_reg_moves): Handle reg-anti dependencies and disregard
12303         closing branch when generating register moves.
12304         (sms_schedule): Mark the SMSed block dirty.
12305         * passes.c (rest_of_handle_sms): Call update_life_info for all
12306         basic-blocks.
12307         * testsuite/gcc.dg/20050321-1.c: New test.
12308
12309 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
12310
12311         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
12312         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
12313         movqi_internal): Likewise.
12314
12315 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
12316
12317         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
12318         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
12319         xtensa_b4const): Delete prototypes.
12320         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
12321         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
12322         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
12323         xtensa_extra_constraint): New prototypes.
12324         (add_operand, arith_operand, nonimmed_operand, mem_operand,
12325         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
12326         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
12327         move_operand, const_float_1_operand, fpmem_offset_operand,
12328         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
12329         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
12330         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
12331         argument type to HOST_WIDE_INT.
12332         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
12333         xtensa_mask_immediate): Likewise.
12334         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
12335         Likewise.  Also make these functions static.
12336         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
12337         (xtensa_const_ok_for_letter_p): New.
12338         (add_operand, arith_operand, nonimmed_operand, mem_operand,
12339         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
12340         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
12341         move_operand, const_float_1_operand, fpmem_offset_operand,
12342         branch_operator, ubranch_operator, boolean_operator): Move to
12343         predicates.md.
12344         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
12345         (xtensa_mem_offset): Change return type to bool.
12346         (xtensa_extra_constraint): New.
12347         (gen_int_relational): Update type of const_range_p function pointer.
12348         Use xtensa_b4const_or_zero.
12349         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
12350         xtensa_const_ok_for_letter_p.  Update comments.
12351         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
12352         (PREDICATE_CODES): Delete.
12353         * config/xtensa/xtensa.md: Include predicates.md.
12354         * config/xtensa/predicates.md: New file.
12355
12356 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
12357
12358         * config/v850/v850-protos.h: Remove the prototypes for
12359         reg_or_int9_operand, reg_or_const_operand,
12360         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
12361         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
12362         movsi_source_operand, power_of_two_operand,
12363         not_power_of_two_operand, special_symbolref_operand,
12364         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
12365         register_is_ok_for_epilogue.
12366         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
12367         reg_or_int9_operand, reg_or_const_operand,
12368         call_address_operand, special_symbolref_operand,
12369         movsi_source_operand, power_of_two_operand,
12370         not_power_of_two_operand, register_is_ok_for_epilogue,
12371         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
12372         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
12373         predicates.md.
12374         * config/v850/v850.h (PREDICATE_CODES): Remove.
12375         * config/v850/v850.md: Include predicates.md.
12376         * config/v850/predicates.md: New.
12377
12378 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
12379
12380         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
12381         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
12382         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
12383         (itoolsdir, itoolsdatadir): Move definition above new first use.
12384         (install-itoolsdirs): New rule.
12385         (install-mkheaders): Depend on install-itoolsdirs, not
12386         install-include-dir.
12387
12388 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
12389
12390         * tree-into-ssa.c: Remove obsolete comments.
12391
12392 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
12393
12394         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
12395         unrolling if -fpeel-loops is specified, too.
12396         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
12397         Remove superfluous check for flag_unroll_loops.
12398
12399 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
12400
12401         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
12402         (lrint_optab, llrint_optab): Define corresponding macros.
12403         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
12404         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
12405         pattern and llrint_optab using llrintdi2 patterns.
12406         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
12407         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
12408         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
12409         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
12410         flag_unsafe_math_optimizations is set.
12411
12412 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
12413
12414         * combine.c (combine_simplify_rtx, simplify_if_then_else,
12415         simplify_logical, if_then_else_cond, known_cond,
12416         simplify_comparison): Adjust calls to reverse_comparison.
12417         Don't use combine_reversed_comparison_code).
12418         (combine_reversed_comparison_code): Remove.
12419         (reversed_comparison): Using reversed_comparison_code, move it...
12420         * jump.c (reversed_comparison): ... here.
12421         * rtl.h (reversed_comparison): Add prototype.
12422
12423 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
12424
12425         * builtins.c (fold_builtin): Take decomposed arguments of
12426         CALL_EXPR.
12427         * fold-const.c (fold_ternary): Update a call to fold_builtin.
12428         * gimplify.c (gimplify_call_expr): Likewise.
12429         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
12430         * tree.h: Update the prototype of fold_builtin.
12431
12432 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
12433
12434         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
12435         * rtlhooks.c (gen_lowpart_no_emit_general): New.
12436         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
12437         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
12438         * simplify-rtx.c (simplify_binary_operation_1): Use it.
12439
12440 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
12441
12442         * builtins.c (fold_builtin_1): Take decomposed arguments of
12443         CALL_EXPR.
12444         (fold_builtin): Update a call to fold_builtin_1.
12445
12446 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
12447
12448         PR other/20564
12449         * gcov.c (output_lines): Only output function block summary when
12450         outputting branch information.
12451         * doc/gcov.texi: Document format of preamble and additional block
12452         information lines.
12453
12454 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
12455
12456         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
12457         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
12458         the defaults false if BITS_PER_UNIT != 8.
12459         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
12460         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
12461         than BITS_PER_UNIT != 8.
12462         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
12463         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
12464         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
12465         #undefs.
12466         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
12467         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
12468
12469 2005-03-20  Roger Sayle  <roger@eyesopen.com>
12470
12471         PR middle-end/20539
12472         * fold-const.c (fold_binary): Fix type mismatch between
12473         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
12474         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
12475         for non-truth-valued expressions.
12476
12477         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
12478         and FUNCTION_DECL in the main switch.
12479         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
12480         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
12481         we also need to convert their operands to match.
12482         <TRUTH_NOT_EXPR>: Likewise.
12483
12484 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
12485
12486         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
12487         diagnostic without checking whether an lvalue.
12488         * c-common.h (lvalue_p): Remove.
12489         (enum lvalue_use): Update comment.
12490         (lvalue_or_else): Replace by lvalue_error.
12491         * c-typeck.c (lvalue_p): Make static.
12492         (lvalue_or_else): New.  Call lvalue_error.
12493
12494 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
12495
12496         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
12497         (function_arg_advance): Use rs6000_parm_start.
12498         (function_arg, rs6000_arg_partial_bytes): Likewise.
12499
12500 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
12501
12502         * c-common.c (check_case_value): Adjust comment about stripping
12503         NOPs.
12504         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
12505         * c-typeck.c (default_conversion, convert_arguments,
12506         build_modify_expr, convert_for_assignment, store_init_value,
12507         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
12508         manually.  Remove inaccurate comments.
12509
12510 2005-03-20  Roger Sayle  <roger@eyesopen.com>
12511             Joseph S. Myers  <joseph@codesourcery.com>
12512
12513         * varasm.c (do_assemble_alias): Restore comment describing function.
12514         Annotate the target parameter as potentially unused.
12515
12516 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
12517
12518         PR target/18551
12519         * config/avr/avr.c (avr_output_function_prologue): Do not use
12520         current_function_name() in a label, use a local label instead.
12521
12522 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
12523
12524         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
12525         flag_finite_math_only, not flag_unsafe_math_optimizations.
12526
12527 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
12528
12529         * builtins.c (fold_builtin_1): Update a call to
12530         targetm.fold_builtin.
12531         * hooks.c (hook_tree_tree_bool_null): Rename to
12532         hook_tree_tree_tree_bool_null.  Take one more argument of type
12533         tree.
12534         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
12535         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
12536         hook_tree_tree_tree_bool_null.
12537         * target.h (gcc_target): Update the prototype of fold_builtin.
12538         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
12539         arguments of CALL_EXPR.
12540         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
12541         new prototype.
12542
12543 2005-03-20  Jan Hubicka  <jh@suse.cz>
12544
12545         * cgraph.h (cgraph_node): Add prev_clone pointer.
12546         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
12547         (cgraph_clone_node): Produce doubly linked chain.
12548
12549 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
12550
12551         * c-common.c (handle_aligned_attribute, check_function_sentinel,
12552         get_nonnull_operand, handle_sentinel_attribute,
12553         check_function_arguments_recurse): Do not strip NOPS from
12554         INTEGER_CSTs.
12555         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
12556         Likewise.
12557         * c-format.c (get_constant): Likewise.
12558         * c-parser.c (c_parser_postfix_expression): Likewise.
12559         * c-typeck.c (set_init_index): Likewise.
12560         (convert_arguments): Don't check for NOP_EXPR containing integer
12561         constant.
12562
12563 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
12564
12565         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
12566         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
12567         Take decomposed arguments of CALL_EXPR.
12568         (fold_builtin_1): Update calls to the functions mentioned
12569         above.
12570
12571 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
12572
12573         * c-decl.c (check_bitfield_type_and_width): Require bit-field
12574         width to have integer type.
12575         (build_enumerator): Require enumerator value to have integer type.
12576
12577 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
12578
12579         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
12580         to __builtin_inff.
12581
12582 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
12583
12584         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
12585         std=iso9899:199x): Correct descriptions.
12586
12587 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
12588
12589         * config.gcc: Consistently use solaris2.1[0-9]* instead of
12590         solaris2.1[0-9].
12591
12592 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
12593
12594         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
12595         of CALL_EXPR.
12596         (expand_builtin_memcpy, fold_builtin_1): Update calls to
12597         fold_builtin_memcpy.
12598
12599         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
12600         arguments of CALL_EXPR.
12601         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
12602         fold_builtin_found, fold_builtin_1): Update calls to
12603         fold_trunc_transparent_mathfn.
12604
12605 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12606
12607         PR middle-end/20493
12608         * fold-const.c (fold_widened_comparison): Don't optimize casts of
12609         function pointers on targets that require function pointer
12610         canonicalization.
12611         (fold_sign_changed_comparison): Likewise.
12612
12613 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
12614
12615         * combine.c (try_combine): When changing the mode of a hard reg, make
12616         sure that doing so is valid.
12617
12618 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
12619
12620         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
12621         (TARGET_HANDLE_OPTION): Override default.
12622         (avr_handle_option): New function.
12623         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
12624         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
12625         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
12626         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
12627         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
12628         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
12629         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
12630         (TARGET_OPTIONS): Delete.
12631         * config/avr/avr.opt: New file.
12632
12633 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
12634
12635         * config/m32r/m32r-protos.h: Remove the prototypes for
12636         call_address_operand, symbolic_operand, seth_add3_operand,
12637         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
12638         reg_or_uint16_operand, reg_or_cmp_int16_operand,
12639         two_insn_const_operand, move_src_operand,
12640         move_double_src_operand, move_dest_operand,
12641         eqne_comparison_operator, signed_comparison_operator,
12642         large_insn_p, conditional_move_operand, carry_compare_operand,
12643         m32r_block_immediate_operand, extend_operand,
12644         reg_or_eq_int16_operand, int8_operand, and
12645         reg_or_zero_operand.
12646         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
12647         seth_add3_operand, int8_operand, cmp_int16_operand,
12648         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
12649         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
12650         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
12651         move_double_src_operand, move_dest_operand,
12652         eqne_comparison_operator, signed_comparison_operator,
12653         extend_operand, small_insn_p, large_insn_p,
12654         conditional_move_operand, carry_compare_operand,
12655         m32r_block_immediate_operand): Move to predicates.md.
12656         (MAX_MOVE_BYTES): Move to m32r.h.
12657         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
12658         * config/m32r/m32r.md: Include predicates.md.
12659         * config/m32r/predicates.md: New.
12660
12661 2005-03-18  James E Wilson  <wilson@specifixinc.com>
12662
12663         PR c++/19769
12664         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
12665         origin.
12666
12667 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
12668
12669         * config/mn10300/mn10300-protos.h: Remove the prototypes for
12670         call_address_operand, const_8bit_operand.
12671         * config/mn10300/mn10300.c (call_address_operand,
12672         const_8bit_operand, const_1f_operand): Move to predicates.md.
12673         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
12674         * config/mn10300/mn10300.md: Include predicates.md.
12675         * config/mn10300/predicates.md: New.
12676
12677 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
12678
12679         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
12680         declarations in diagnostics and %E for identifiers, not %s.
12681
12682 2005-03-18  Jan Hubicka  <jh@suse.cz>
12683             Dale Johannesen  <dalej@apple.com>
12684
12685         * basic-block.h (scale_bbs_frequencies_int,
12686         scale_bbs_frequencies_gcov_type): Declare.
12687         * cfg.c (RDIV): New macro.
12688         (update_bb_frequency_for_threading): Fix.
12689         * basic-block.h (scale_bbs_frequencies_int,
12690         scale_bbs_frequencies_gcov_type): New.
12691         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
12692         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
12693         scale_bbs_frequencies_int.
12694         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
12695
12696 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
12697
12698         * config/m32r/m32r-protos.h: Remove the prototypes for
12699         call_address_operand, symbolic_operand, seth_add3_operand,
12700         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
12701         reg_or_uint16_operand, reg_or_cmp_int16_operand,
12702         two_insn_const_operand, move_src_operand,
12703         move_double_src_operand, move_dest_operand,
12704         eqne_comparison_operator, signed_comparison_operator,
12705         large_insn_p, conditional_move_operand, carry_compare_operand,
12706         m32r_block_immediate_operand, extend_operand,
12707         reg_or_eq_int16_operand, int8_operand, and
12708         reg_or_zero_operand.
12709         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
12710         seth_add3_operand, int8_operand, cmp_int16_operand,
12711         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
12712         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
12713         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
12714         move_double_src_operand, move_dest_operand,
12715         eqne_comparison_operator, signed_comparison_operator,
12716         extend_operand, small_insn_p, large_insn_p,
12717         conditional_move_operand, carry_compare_operand,
12718         m32r_block_immediate_operand): Move to predicates.md.
12719         (MAX_MOVE_BYTES): Move to m32r.h.
12720         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
12721         * config/m32r/m32r.md: Include predicates.md.
12722         * config/m32r/predicates.md: New.
12723
12724         * config/pa/pa-protos.h: Add prototypes for magic_milli and
12725         shadd_constant_p.
12726         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
12727         symbolic_operand, symbolic_memory_operand,
12728         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
12729         indexed_memory_operand, move_dest_operand, move_src_operand,
12730         prefetch_cc_operand, prefetch_nocc_operand,
12731         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
12732         arith_operand, arith11_operand, pre_cint_operand,
12733         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
12734         ireg_operand, int5_operand, uint5_operand, int11_operand,
12735         uint32_operand, arith5_operand, and_operand, ior_operand,
12736         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
12737         pc_or_label_operand, div_operand, plus_xor_ior_operator,
12738         shadd_operand, movb_comparison_operator,
12739         cmpib_comparison_operator): Move to predicates.md.
12740         (magic_milli, shadd_constant_p): Make it extern.
12741         * config/pa/pa.h (PREDICATE_CODES): Remove.
12742         * config/pa/pa.md: Include predicates.md.
12743         * config/pa/predicates.md: New.
12744
12745         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
12746         predicate.
12747
12748 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
12749
12750         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
12751         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
12752         config/alpha/freebsd.h, config/alpha/linux.h,
12753         config/alpha/netbsd.h, config/alpha/osf5.h,
12754         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
12755         config/h8300/h8300-protos.h, config/h8300/h8300.c,
12756         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
12757         doc/cppopts.texi: Update copyright.
12758
12759 2005-03-18  Jan Hubicka  <jh@suse.cz>
12760
12761         PR middle-end/20225
12762         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
12763         too late.
12764         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
12765         called too late.
12766
12767 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
12768
12769         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
12770         VEC_safe_push.
12771
12772 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
12773
12774         * combine.c (gen_binary): Remove.
12775         (known_cond, simplify_shift_const, find_split_point,
12776         combine_simplify_rtx, simplify_if_then_else, simplify_set,
12777         simplify_logical, expand_field_assignment, extract_left_shift,
12778         force_to_mode, if_then_else_cond, apply_distributive_law,
12779         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
12780         simplify_comparison, reversed_comparison): Replace with
12781         simplify_gen_binary, simplify_gen_relational or
12782         distribute_and_simplify_rtx.
12783         (distribute_and_simplify_rtx): New function.
12784
12785 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
12786             Paolo Bonzini  <gcc.gnu.org>
12787
12788         * calls.c (setjmp_call_p, special_function_p): Update comments
12789         at the head of the functions.
12790
12791 2005-03-18  Jan Hubicka  <jh@suse.cz>
12792
12793         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
12794
12795         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
12796         function body should be released; do not proactively release function
12797         bodies in non-unit-at-a-time mode.
12798
12799 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
12800
12801         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
12802         mno-fp-ret-in-387 multilib variants.
12803
12804 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
12805
12806         * common.opt (m): Remove.
12807         * opts.c (handle_option): Pass 'm' options to set_target_switch if
12808         table lookup fails.
12809         (common_handle_option): Remove OPT_m case.
12810
12811 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
12812
12813         * builtins.c (fold_builtin_bitop): Take decomposed arguments
12814         of CALL_EXPR.
12815         (fold_builtin_1): Update a call to fold_builtin_bitop.
12816
12817         * builtins.c (fold_builtin_signbit): Take decomposed arguments
12818         of CALL_EXPR.
12819         (fold_builtin_1): Update a call to fold_builtin_signbit.
12820
12821 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
12822
12823         PR tree-optimization/20474
12824         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
12825         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
12826
12827 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
12828
12829         * config/h8300/h8300-protos.h: Remove prototypes for
12830         general_operand_src, general_operand_dst, single_one_operand,
12831         single_zero_operand, call_insn_operand,
12832         two_insn_adds_subs_operand, small_call_insn_operand,
12833         jump_address_operand, bit_operand, bit_memory_operand,
12834         stack_pointer_operand, const_int_gt_2_operand,
12835         const_int_ge_8_operand, const_int_qi_operand,
12836         const_int_hi_operand, incdec_operand, bit_operator,
12837         nshift_operator, eqne_operator, gtle_operator,
12838         gtuleu_operator, iorxor_operator.
12839         Add prototypes for h8sx_shift_type h8sx_classify_shift and
12840         h8300_ldm_stm_parallel.
12841         * config/h8300/h8300.c (h8sx_shift_type,): Move to
12842         h8300-protos.h.
12843         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
12844         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
12845         (h8300_ldm_stm_parallel): Make it extern.
12846         (h8300_ldm_parallel, h8300_stm_parallel,
12847         h8300_return_parallel, general_operand_src,
12848         general_operand_dst, h8300_dst_operand, h8300_src_operand,
12849         nibble_operand, reg_or_nibble_operand, single_one_operand,
12850         single_zero_operand, call_insn_operand,
12851         two_insn_adds_subs_operand, small_call_insn_operand,
12852         jump_address_operand, bit_operand, bit_memory_operand,
12853         stack_pointer_operand, const_int_gt_2_operand,
12854         const_int_ge_8_operand, const_int_qi_operand,
12855         const_int_hi_operand, incdec_operand, eqne_operator,
12856         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
12857         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
12858         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
12859         nshift_operator): Move to predicates.md.
12860         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
12861         * config/h8300/h8300.md: Include predicates.md.
12862         * config/h8300/predicates.md: New.
12863
12864 2005-03-17  Richard Henderson  <rth@redhat.com>
12865
12866         * config.gcc (ia64*-*-hpux*): Add extra_options.
12867         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
12868         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
12869         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
12870         (ia64_tls_size_string, ia64_tune_string): Remove.
12871         (ia64_tune): Init to PROCESSOR_ITANIUM2.
12872         (TARGET_DEFAULT_TARGET_FLAGS): New.
12873         (TARGET_HANDLE_OPTION): New.
12874         (ia64_override_options): Move options parsing ...
12875         (ia64_handle_option): ... here.  New.
12876         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
12877         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
12878         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
12879         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
12880         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
12881         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
12882         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
12883         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
12884         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
12885         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
12886         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
12887         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
12888         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
12889         TARGET_EARLY_STOP_BITS): Remove.
12890         (TARGET_ILP32): Default false.
12891         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
12892         (enum ia64_inline_type): New.
12893         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
12894         * config/ia64/ia64.md: Update for new definitions of
12895         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
12896         * config/ia64/ia64.opt: New file.
12897         * config/ia64/ilp32.opt: New file.
12898
12899 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
12900
12901         PR target/18380
12902         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
12903
12904 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
12905
12906         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
12907         instead of MASK_H8300S.
12908         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
12909         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
12910         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
12911         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
12912         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
12913         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
12914         TARGET_SWITCHES): Remove.
12915         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
12916         TARGET_H8300SX.
12917         * config/h8300/h8300.opt: New.
12918
12919         * config/alpha/alpha.opt, config/arc/arc.opt,
12920         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
12921         notices.
12922
12923 2005-03-17  Ian Lance Taylor  <ian@airs.com>
12924
12925         * gmon.c: Remove.
12926
12927 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
12928
12929         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
12930         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
12931         (TARGET_HANDLE_OPTION): Override default.
12932         (arc_handle_option): New function.
12933         (arc_init): Remove code to set arch_cpu_string.
12934         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
12935         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
12936         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
12937         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
12938         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
12939         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
12940         (arc_rodata_string, TARGET_OPTIONS): Delete.
12941         * config/arc/arc.opt: New file.
12942
12943 2005-03-17  Richard Henderson  <rth@redhat.com>
12944
12945         * doc/extend.texi (Weak Pragmas): New section.
12946         (attribute alias): Clarify that target must be in the same
12947         translation unit.
12948
12949 2005-03-17  Richard Henderson  <rth@redhat.com>
12950
12951         * config/alpha/alpha.opt: New file.
12952         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
12953         of alpha_cpu.
12954         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
12955         alpha_fprm_string, alpha_fptm_string): Make static.
12956         (alpha_tls_size_string): Remove.
12957         (alpha_handle_option): New.
12958         (override_options): Update for alpha_cpu/alpha_tune split.
12959         (alpha_file_start): Likewise.
12960         (TARGET_DEFAULT_TARGET_FLAGS): New.
12961         (TARGET_HANDLE_OPTION): New.
12962         * config/alpha/alpha.h (alpha_tune): Declare.
12963         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
12964         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
12965         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
12966         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
12967         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
12968         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
12969         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
12970         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
12971         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
12972         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
12973         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
12974         (TARGET_DEFAULT): Remove MASK_FP.
12975         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
12976         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
12977         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
12978         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
12979         alpha_tls_size_string): Remove.
12980         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
12981         (attribute tune): Rename from attribute cpu.
12982         * config/alpha/ev4.md: Update to match.
12983         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
12984         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
12985         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
12986         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
12987         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
12988         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
12989
12990 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
12991
12992         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
12993         and return without creating new state if before_nops_num is nonzero.
12994         * config/ia64/ia64.md (first_insn): New attribute.
12995         (alloc): Set it to yes.
12996
12997 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
12998
12999         * tree-vectorizer.c (new_vec_stmt_info): Initialize
13000         STMT_VINFO_SUBVARS to NULL.
13001         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
13002
13003 2005-03-16 Dale Johannesen  <dalej@apple.com>
13004
13005         * rtlanal.c (find_first_parameter_load):  Rewrite to
13006         return actual first param load or the call if none,
13007         instead of first in block, when not all loads exist.
13008
13009 2005-03-16  Roger Sayle  <roger@eyesopen.com>
13010
13011         * optabs.c (expand_copysign_absneg): Make static.
13012         * optabs.h (expand_copysign_absneg): Delete prototype.
13013         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
13014
13015 2005-03-16  Richard Henderson  <rth@redhat.com>
13016
13017         PR middle-end/15700
13018         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
13019         (alias_pairs): Rename from output_defs.
13020         (find_decl_and_mark_needed): Split out from assemble_alias.
13021         (do_assemble_alias): New.
13022         (assemble_output_def): Remove.
13023         (finish_aliases_1, finish_aliases_2): New.
13024         (process_pending_assemble_output_defs): Remove.
13025         (assemble_alias): Defer aliases for which we don't yet have a
13026         non-external decl for the target symbol.
13027         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
13028         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
13029         * toplev.c (compile_file): Use finish_aliases_2 instead of
13030         process_pending_assemble_output_defs.
13031         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
13032         (process_pending_assemble_output_defs): Remove.
13033
13034 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
13035
13036         Fix PR tree-optimization/20489
13037
13038         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
13039         for empty structures.
13040
13041 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
13042
13043         Fix PR tree-optimization/20490
13044
13045         * tree-ssa-pre.c (create_expression_by_pieces): Use
13046         force_gimple_operand on result of fold.
13047
13048 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
13049
13050         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
13051         of closing parenthesis.
13052
13053 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
13054
13055         * builtins.c (expand_movstr): Update a call to
13056         fold_builtin_strcpy.
13057         (expand_builtin_strncpy): Update a call to
13058         fold_builtin_strncpy.
13059         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
13060         arguments of CALL_EXPR.
13061         (fold_builtin_1): Update calls to fold_builtin_strcpy and
13062         fold_builtin_strncpy.
13063         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
13064         * tree.h: Update the prototypes of fold_builtin_strcpy and
13065         fold_builtin_strncpy.
13066
13067 2005-03-16  Steven Bosscher  <stevenb@suse.de>
13068             Dorit Naishlos  <dorit@il.ibm.com>
13069
13070         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
13071         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
13072         error.
13073
13074 2005-03-16  Steven Bosscher  <stevenb@suse.de>
13075
13076         * tree-inline.c (walk_type_fields, walk_tree,
13077         walk_tree_without_duplicates): Move from here...
13078         * tree.c: ...to here.
13079
13080 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
13081
13082         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
13083         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
13084         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
13085         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
13086         (version): Define using $(BASEVER_c).
13087         (Makefile, config.status, build/gcov-iov.o): No longer depends on
13088         version.c.
13089         (version.o): Depend on version files; add custom generation command.
13090         (prefix.o): Define BASEVER on command line.
13091         (s-iov): Depend on version files; adjust command.
13092         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
13093         Add gcc-vers.texi.
13094         (gcc-vers.texi): New rule.
13095         (doc/%.info, doc/%.dvi): Add -I . to command line.
13096         (doc/gccinstall.dvi): Likewise.
13097         (PACKAGE): Delete.  All uses replaced with "gcc".
13098         * aclocal.m4: Do not include gcc-version.m4.
13099         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
13100         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
13101         Set is_release based on contents of DEV-PHASE.
13102         Set gcc_version based on contents of BASE-VER.
13103         Define WIN32_REGISTRY_KEY only if the user overrode the default.
13104         * config.in, configure: Regenerate.
13105         * gccbug.in: Determine version of GCC in use at runtime.
13106         * gcov-iov.c: Get version number and development phase from
13107         command line, not by including version.c.
13108         * intl.c: Replace all uses of PACKAGE with "gcc".
13109         * libada-mk.in: Delete unused "gcc_version" variable.
13110         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
13111         * version.c: (VERSUFFIX): New hook for redistributors; adjust
13112         commentary to match.
13113         (version_string): Put together from pieces.
13114         * config/alpha/x-vms: Do not use $(gcc_version).
13115         * config/i386/t-nwld: Likewise.
13116         * doc/include/gcc-common.texi: Include gcc-vers.texi for
13117         version-GCC and DEVELOPMENT.
13118
13119 2005-03-15  Roger Sayle  <roger@eyesopen.com>
13120
13121         PR tree-optimization/17454
13122         * tree.c (tree_size): Add case for TREE_BINFO.
13123         * fold-const.c (fold_checksum_tree): Only clear the overloaded
13124         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
13125
13126 2005-03-15  Roger Sayle  <roger@eyesopen.com>
13127
13128         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
13129         op1 whilst expanding the signed widenening multiply variant.
13130
13131 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
13132
13133         * toplev.c (display_target_options): Avoid unused variable warning if
13134         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
13135         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
13136         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
13137         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
13138         (mips_isa_info): New variable.
13139         (mips_parse_cpu): Remove the first argument and leave the caller
13140         to report errors.
13141         (TARGET_HANDLE_OPTION): Override default.
13142         (mips_handle_option): New function.  Move option validation code from...
13143         (override_options): ...here.  Update calls to mips_parse_cpu.
13144         * config/mips/mips.h (mips_arch_string, mips_tune_string)
13145         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
13146         (SUBTARGET_TARGET_OPTIONS): Delete.
13147         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
13148         (mno-flush-func, mtune=): New options.
13149
13150 2005-03-15  Roger Sayle  <roger@eyesopen.com>
13151             Richard Henderson  <rth@redhat.com>
13152
13153         * real.c (c4x_single_format, c4x_extended_format): Provide values
13154         for signbit_ro for c4x's single and extended floating point formats.
13155         * optabs.c (expand_copysign): Use the floating point format's
13156         signbit_ro for expanding via expand_copysign_absneg, and it's
13157         signbit_rw field for expanding via expand_copysign_bit.
13158
13159 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
13160
13161         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
13162         known_alignment_for_access_p.
13163         (known_alignment_for_access_p): New.
13164         (do_peeling_for_alignment): Field made int instead of bool and renamed
13165         to peeling_for_alignment.
13166         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
13167         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
13168         functionality used to be in vect_analyze_operations.
13169         (vect_analyze_operations): Code to determine vectorization factor was
13170         moved to vect_determine_vectorization_factor.
13171         (vect_enhance_data_refs_alignment): Update to correct alignment when it
13172         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
13173         factor.
13174         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
13175         be part of vect_analyze_operations).
13176         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
13177         creating the guard condition, as the number of iterations may be
13178         constant.
13179         (slpeel_tree_peel_loop_to_edge): Use new name of
13180         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
13181         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
13182         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
13183         (vect_do_peeling_for_alignment): Use fold.
13184         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
13185
13186         (vect_update_inits_of_dr): Renamed to
13187         vect_update_init_of_dr.
13188         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
13189         (vectorizable_store): Fix assertion to use == instead of =.
13190
13191 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
13192
13193         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
13194         call_used_regs for wCG registers.
13195
13196 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
13197
13198         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
13199         for non-offsettable memory references to cope with outstanding reload
13200         replacements, take 2.
13201
13202 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
13203
13204         PR target/18668
13205         * config/i386/i386.h (x86_fisttp): New.
13206         (TARGET_FISTTP): New macro.
13207         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
13208         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
13209         instruction when fisttp flag is set.
13210         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
13211
13212         * config/i386/i386.md (type attribute): Add fisttp.
13213         (unit attribute): Set to i387 for fisttp type.
13214         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
13215         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
13216         TARGET_FISTTP.
13217         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
13218         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
13219         macros.
13220         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
13221         patterns for TARGET_FISTTP.  Enable patterns for
13222         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
13223         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
13224         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
13225         implement fisttp x87 insn.
13226         (fix_trunc*_i387_fisttp splitters): New patterns.
13227         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
13228         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
13229         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
13230         clobber.
13231         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
13232         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
13233         Implement using mode macros. Disable patterns for TARGET_FISTTP.
13234         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
13235         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
13236         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
13237         Disable patterns for TARGET_FISTTP.
13238         (fix_trunc*_i387 splitters): Implement usign mode macros.
13239         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
13240         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
13241         (fix_trunx*_sse peephole2s): Implement using mode macros.
13242
13243 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
13244
13245         PR rtl-optimization/20291
13246         * combine.c (try_combine): If splitting fails, re-try with
13247         original combined pattern, i.e. before clobber stripping.
13248
13249 2005-03-14  Eric Christopher  <echristo@redhat.com>
13250
13251         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
13252         STACK_GROWS_DOWNWARD.
13253
13254 2005-03-14  Roger Sayle  <roger@eyesopen.com>
13255
13256         * real.h (struct real_format): Split the signbit field into two
13257         two fields, signbit_ro and signbit_rw.
13258         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
13259         mips_double_format, ieee_extended_motorola_format,
13260         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
13261         ieee_extended_intel_128_format, ibm_extended_format,
13262         mips_extended_format, ieee_quad_format, mips_quad_format,
13263         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
13264         i370_double_format, c4x_single_format, c4x_extended_format,
13265         real_internal_format): Update initializers for new field.
13266         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
13267         real_format structure.
13268         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
13269         field of the real_format structure.
13270
13271 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
13272
13273         Fix PR tree-optimization/20458
13274
13275         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
13276         DECL_EXTERNAL on STRUCT_FIELD tags.
13277         (clear_call_clobbered): Ditto.
13278         * tree-ssa-operands.c (note_addressable): Make sure the original
13279         variable doesn't slip into the addressable list if we have
13280         subvars.
13281         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
13282         tags too.
13283
13284 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
13285
13286         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
13287         (-fwide-exec-charset): Likewise.
13288         (-finput-charset): Likewise.
13289         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
13290         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
13291         * c.opt (Wnormalized): New.
13292
13293 2005-03-14  Devang Patel  <dpatel@apple.com>
13294
13295         * doc/invoke.texi: Add reference to Visibility document.
13296
13297 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
13298
13299         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
13300         MASK_SPLIT_ADDRESSES.
13301         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
13302         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
13303         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
13304         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
13305         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
13306         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
13307         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
13308         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
13309         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
13310         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
13311         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
13312         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
13313         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
13314         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
13315         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
13316         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
13317         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
13318         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
13319         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
13320         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
13321         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
13322         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
13323         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
13324         (TARGET_EXPLICIT_RELOCS): Delete.
13325         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
13326         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
13327         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
13328         (override_options): Set MASK_LONG64 if -mint64 is given and no
13329         -mlongXX option is.  Complain about -mint64 -mlong32.
13330         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
13331         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
13332         * config/mips/mips.opt: New file.
13333
13334 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
13335
13336         * config.gcc (extra_options): New variable for listing option files.
13337         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
13338         * configure.ac (extra_opt_files): New AC_SUBST variable.
13339         (tm_file_list, tm_include_list): Include options.h first.
13340         * configure: Regenerate.
13341         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
13342         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
13343         (s-options-h): New rule.
13344         (options.h): Depend on it.
13345         (TEXI_GCCINT_FILES): Add options.texi.
13346         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
13347         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
13348         * target.h (gcc_target): Add default_target_flags and handle_option.
13349         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
13350         (TARGET_HANDLE_OPTION): New macros.
13351         (TARGET_INITIALIZER): Include them.
13352         * opt-functions.awk (opt_args, nth_arg): New functions.
13353         (switch_flags): Handle the "Target" flag.
13354         (var_args): Delete.
13355         (var_name): Use opt_args and nth_arg.
13356         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
13357         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
13358         macros for the "Mask" and "InverseMask" options.
13359         * opts.h (cl_var_cond): New enum.
13360         (cl_option): Replace the "has_set_value" and "set_value" fields with
13361         "var_cond" and "var_value".
13362         (CL_TARGET): New macro.
13363         (option_enabled, print_filtered_help): Declare.
13364         (decode_options): Move definition.
13365         * opts.c (handle_option): Search for the original option before
13366         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
13367         var_cond and var_value fields.  Use targetm.handle_option to handle
13368         target options.
13369         (decode_options): Set target_flags to targetm.default_target_flags.
13370         (print_filtered_help): Make global.  Handle CL_TARGET.
13371         (option_enabled): New function.
13372         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
13373         (display_target_options, set_target_switch, print_switch_values)
13374         (default_pch_valid_p): Guard uses of target_switches with
13375         #ifdef TARGET_SWITCHES.  Also...
13376         (display_target_options): Display the CL_TARGET entries in cl_options.
13377         (set_target_option): Don't complain about the "" option when
13378         TARGET_SWITCHES is undefined.
13379         (print_switch_values): Use option_enabled.
13380         (default_pch_valid_p): Check cl_options[] when looking for something
13381         that has changed the value of target_flags.
13382         * c.opt: Remove documentation from top of file.
13383         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
13384         * doc/sourecebuild.texi: Refer to the new options documentation
13385         instead of c.opt.  Document machine-specific .opt files.
13386         * doc/tm.texi (target_flags): Say that this variable is declared
13387         by options.h.
13388         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
13389         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
13390         an alternative.
13391         * doc/options.texi: New file.
13392
13393 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
13394
13395         PR middle-end/18628
13396         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
13397         register.
13398
13399 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
13400
13401         PR c++/20280
13402         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
13403         temporary variable of pointer type if an lvalues is required.
13404         (gimplify_modify_expr_rhs): Request an rvalue from it.
13405         (gimplify_expr): Pass fallback on.
13406
13407 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
13408
13409         * cfgbuild.c: Update comments.
13410
13411 2005-03-14  Roger Sayle  <roger@eyesopen.com>
13412
13413         PR rtl-optimization/17236
13414         * optabs.c (expand_doubleword_mult): New helper function split out
13415         from expand_binop.  Permute the order in which instructions are
13416         emitted to minimize the number of simultaneously live registers.
13417         (expand_binop): Call expand_doubleword_mult to synthesize a double
13418         word multiplication.
13419
13420 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
13421
13422         * basic-block.h: Update the prototypes of cached_make_edge and
13423         rtl_make_eh_edge.
13424         * cfg.c (cached_make_edge): Take edge_cache representing one
13425         row of the adjacency matrix of edges.
13426         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
13427         (make_edges): Initialize edge_cache to represent one row of
13428         the adjacency matrix of edges.
13429
13430 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
13431
13432         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
13433         New functions.
13434         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
13435         Remove unused removed_phis variable.
13436         (conditional_replacement): Use build1/build2.
13437         (abs_replacement): Use last_and_only_stmt and build1/build2.
13438
13439 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
13440
13441         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
13442         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
13443         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
13444         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
13445         * c-common.c (handle_novops_attribute): New function.
13446         (c_common_attribute_table): Add "no vops" entry.
13447         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
13448         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
13449         * tree-ssa-operands.c (get_call_expr_operands): Do not
13450         create virtual operands for calls with ECF_NOVOPS flag.
13451         * tree.h (DECL_IS_NOVOPS): New macro.
13452         (struct tree_decl): Add novops_flag.
13453         (ECF_NOVOPS): New constant.
13454
13455 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
13456
13457         PR target/17688
13458         * config/i386/i386.c (x86_use_himode_fiop): New.
13459         (x86_use_simode_fiop): Rename from x86_use_fiop.
13460         * config/i386/i386.h (x86_use_himode_fiop): Declare.
13461         (TARGET_USE_HIMODE_FIOP): New.
13462         (x86_use_simode_fiop): Rename from x86_use_fiop.
13463         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
13464
13465         * config/i386/i386.md (X87MODEI12): New mode macro define.
13466         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
13467         to implement x87 FP compare with HImode input operands.
13468         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
13469         Use X87MODEI12 mode macro to handle HImode input operands.
13470         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
13471         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
13472         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
13473         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
13474         macro to implement x87 operators with HImode input operands.
13475         (fop splitters): Use X87MODEI12 mode macro to handle HImode
13476         input operands.
13477
13478 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
13479
13480         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
13481         integer_zerop.
13482         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
13483         constants invariant.
13484
13485 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
13486
13487         * basic-block.h (BB_VISITED): Removed.
13488         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
13489
13490 2005-03-14  Falk Hueffner  <falk@debian.org>
13491
13492         PR bootstrap/20424
13493         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
13494
13495 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
13496
13497         * ggc-zone.c: Fix comment typos.
13498
13499         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
13500         stringpool.c, config/mips/mips-protos.h: Update copyright.
13501
13502 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
13503
13504         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
13505         throughout with its typedef, "rtx".
13506         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
13507         (rs6000_tls_symbol_ref_1): Remove inline keyword.
13508         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
13509         regs in comment to match code.
13510
13511 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
13512
13513         * except.c (check_handled): Make it static.
13514         * except.h: Remove the corresponding prototype.
13515
13516         * function.c (get_func_frame_size): Make it static.
13517         * function.h: Remove the corresponding type.
13518
13519         * regclass.c (reg_class_superclasses, reg_class_subclasses):
13520         Make them static.
13521         * hard-reg-set.h: Remove the corresponding declarations.
13522
13523         * tree-cfg.c (verify_stmts): Check that
13524         bb_for_stmt (stmt) == bb for every PHI node and statement.
13525
13526 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
13527
13528         * config.gcc: Remove excess indentation.
13529         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
13530
13531 2005-03-13  Roger Sayle  <roger@eyesopen.com>
13532
13533         PR middle-end/19331
13534         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
13535         * fold-const.c (fold_sign_changed_comparison): Likewise.
13536         (fold_binary): Optimize comparisons against widened operands if
13537         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
13538
13539 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
13540
13541         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
13542         (sparc_override_options): Initialize it.
13543         (sparc_struct_value_rtx): Set it on the MEM to be returned.
13544
13545 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
13546
13547         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
13548         (reg_or_none500mem_operand): New predicate.
13549         (zero_reg_mem_operand): New predicate.
13550         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
13551         to reg_or_none500mem_operand.
13552         (extendsfdf2_fpr): Add MEM alternative.
13553         (extenddftf2_internal): Change operand2 predicate to
13554         zero_reg_mem_operand.
13555
13556 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
13557
13558         * ggc-zone.c: Rewritten.
13559
13560         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
13561         if there are none.
13562         * configure.ac: Define GGC_ZONE for --with-gc=zone.
13563         * config.in: Regenerated.
13564         * configure: Regenerated.
13565         * gengtype.c (write_types_process_field, write_func_for_structure):
13566         Pass new argument to gt_pch_note_object.
13567         * ggc-common.c (struct ptr_data): Add TYPE.
13568         (gt_pch_note_object): Take TYPE argument and save it.
13569         (call_count): Update call to ggc_pch_count_object.
13570         (call_alloc): Update call to ggc_pch_alloc_object.
13571         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
13572         file.
13573         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
13574         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
13575         (ggc_alloc_zone_stat): Delete.
13576         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
13577         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
13578         (ggc_pch_alloc_object): Update prototypes.
13579         (garbage_zone): Delete.
13580         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
13581         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
13582         pointers.
13583         (tree_id_zone): New variable.
13584         (ggc_alloc_cleared_zone): Remove unused.
13585         (ggc_alloc_zone): Define.
13586         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
13587         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
13588         ggc_alloc_zone_stat.
13589         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
13590         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
13591         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
13592         (make_node_stat): Likewise.  Use tree_id_zone.
13593
13594 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
13595             Joseph S. Myers  <joseph@codesourcery.com>
13596
13597         * configure.ac: Check for MIPS TLS.
13598         * configure: Regenerated.
13599         * config/mips/mips-protos.h (enum mips_symbol_type): Add
13600         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
13601         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
13602         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
13603         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
13604         (mips_classify_symbol, mips_symbolic_constant_p)
13605         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
13606         (mips_tls_operand_p, mips_call_tls_get_addr)
13607         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
13608         (mips_tls_symbol_ref_1): New functions.
13609         (mips_legitimize_address, mips_legitimize_const_move): Call
13610         mips_legitimize_tls_address.
13611         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
13612         for MIPS16.
13613         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
13614         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
13615         (mips_char_to_class): Document V1_REG.
13616         (HAVE_AS_TLS): Provide default.
13617         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
13618         constants.
13619         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
13620         !TARGET_ABICALLS.
13621         (tls_get_tp_<mode>): New instruction.
13622
13623 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
13624
13625         * configure.ac: Update checks for target tools.
13626         * configure: Regenerated.
13627
13628 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
13629
13630         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
13631
13632 2005-03-13  Roger Sayle  <roger@eyesopen.com>
13633
13634         * expmed.c (expand_mult): Use synthetic multiplication sequences for
13635         more classes of DImode multiplication by constant.  Allow both
13636         multiplication by small negative constants (by performing a
13637         multiplication by a positive constant and negating the result) and
13638         multiplications by large powers of two, by using a left shift.
13639
13640 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
13641
13642         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
13643         of basic blocks into work_stack.
13644
13645         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
13646         config/mips/vr.h: Update copyright.
13647
13648         * c-decl.c (c_init_decl_processing): Remove useless calls to
13649         build_function_type.
13650
13651         * builtins.c (fold_trunc_transparent_mathfn,
13652         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
13653         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
13654         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
13655         fold_builtin_strcpy, fold_builtin_strncpy,
13656         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
13657         TREE_TYPE (exp).
13658
13659         * builtins.c (expand_builtin_mathfn_3): Remove local variable
13660         before_call.
13661
13662         * lambda-code.c (lambda_compute_auxillary_space): Remove local
13663         variable determinant.
13664
13665         * tree-cfg.c (group_case_labels): Remove local variable type.
13666
13667         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
13668         variable ann.
13669
13670         * tree-ssa-phiopt.c (value_replacement): Remove local variable
13671         result.
13672
13673 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
13674
13675         PR target/18251
13676         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
13677         (*movmemqi_insn): Delete.
13678         (*movmemhi): Delete.
13679
13680 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
13681
13682         * builtins.c (fold_builtin_classify): Take decomposed
13683         arguments of CALL_EXPR.
13684         (fold_builtin_1): Update a call to fold_builtin_classify.
13685
13686 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
13687
13688         PR c/20402
13689         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
13690         through into call to parser_xref_tag after parse error.
13691         (c_parser_struct_declaration): Consistently return NULL_TREE on
13692         error.
13693
13694 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
13695
13696         * tree-flow-inline.h (ref_contains_array_ref): New function.
13697         (lookup_subvars_for_var): Ditto.
13698         (get_subvars_for_var): Ditto.
13699         (var_can_have_subvars): Ditto.
13700
13701         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
13702         (struct subvar): New type.
13703
13704         * tree-dfa.c (okay_component_ref_for_subvars): New function.
13705
13706         * tree-optimize.c (init_tree_optimization_passes): Call
13707         pass_create_structure_vars.
13708
13709         * tree-ssa-alias.c: Include vec.h.
13710         (init_alias_info): Don't auto-clear call clobbered on struct-field
13711         tags.
13712         (compute_flow_insensitive_aliasing): Handle subvars.
13713         (group_aliases): Handle STRUCT_FIELD aliases.
13714         (setup_pointers_and_addressables): Ditto.
13715         Don't mark variables non-addressable if they still have
13716         addressable subvars.
13717         Also mark subvars addressable when the real variable is marked
13718         addressable.
13719         (add_pointed_to_var): Try to prune the pointed-to set by only
13720         pointing to subvars when possible.
13721         Otherwise, make sure we set addresses_needed and pt_vars to
13722         properly include subvars.
13723         (bitpos_of_field): New function.
13724         (push_fields_onto_fieldstack): Ditto.
13725         (get_or_create_used_part_for): Ditto.
13726         (create_overlap_variables_for): Ditto.
13727         (find_used_portions): Ditto.
13728         (create_structure_vars): Ditto.
13729         (pass_create_structure_vars): New structure.
13730
13731         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
13732         (get_expr_operands): Handle subvars.  Also try to turn
13733         COMPONENT_REF accesses into must-defs now that we can accurately
13734         portray it.
13735         (note_addressable): Try to only mark as addressable those subvars
13736         we know a COMPONENT_REF touches.
13737         (overlap_subvar): New function.
13738
13739         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
13740         Handle subvar storing.
13741         (vect_address_analysis): Update caller of vect_object_analysis.
13742
13743         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
13744
13745         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
13746         (STMT_VINFO_SUBVARS): New macro.
13747
13748         * common.opts: add flag_tree_salias.
13749
13750         * opts.c (decode_options): flag_tree_salias defaults to on.
13751
13752         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
13753
13754         * doc/tree-ssa.texi: Document structural alias analysis.
13755
13756 2005-03-12  Steven Bosscher  <stevenb@suse.de>
13757
13758         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
13759         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
13760         * tree-ssa-operands.c (get_expr_operands): Likewise.
13761         (get_expr_operands): Likewise for ERROR_MARK.
13762
13763 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
13764
13765         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
13766         var.
13767
13768         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
13769         removed_phis.
13770
13771         * tree-ssa-pre.c (compute_avail): Remove local variable val.
13772         (mark_operand_necessary): Remove local variable ver.
13773
13774         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
13775         variable prefix_len.
13776
13777         * value-prof.c (mod_subtract_transform): Remove local variable
13778         value.
13779
13780         * builtins.c (fold_builtin_exponent): Take decomposed
13781         arguments of CALL_EXPR.
13782         (fold_builtin_1): Update a call to fold_builtin_exponent.
13783
13784         * builtins.c (fold_builtin_logarithm): Take decomposed
13785         arguments of CALL_EXPR.
13786         (fold_builtin_1): Update a call to fold_builtin_logarithm.
13787
13788         * c-decl.c (c_init_decl_processing): Remove local variables
13789         ptr_ftype_void and ptr_ftype_ptr.
13790
13791         * gimplify.c (gimplify_expr): Remove local variables r0 and
13792         r1.
13793
13794         * reg-stack.c (move_for_stack_reg): Remove local variable
13795         push_insn.
13796         (compare_for_stack_reg): Remove local variable flags_user.
13797         (convert_regs_1): Remove local variable deleted.
13798
13799         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
13800         variable new_cond.
13801         (combine_blocks): Remove local variables exits and new_e.
13802
13803         * tree-inline.c (expand_call_inline): Remove local variable
13804         decl.
13805
13806         * tree-ssa-live.c (create_ssa_var_map,
13807         calculate_live_on_entry): Remove local variable snn.
13808
13809 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
13810
13811         * c-lex.c (c_lex_with_flags): Add parameter to call to
13812         cpp_spell_token.
13813
13814 2005-03-11  Per Bothner  <per@bothner.com>
13815
13816         * c-tree.h (struct c_declarator): New id_loc field.
13817         * c-pragma.h (c_lex_with_flags): Take position reference.
13818         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
13819         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
13820         (c_lex): Pass dummy location to c_lex_with_flags.
13821         * c-parser.c (c_lex_one_token): Set c_token's location using
13822         c_lex_with_flags, instead of input_location, which might be "ahead".
13823         (c_parser_direct_declarator): Set declarator's id_loc from
13824         c_token's id_loc.
13825         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
13826         declarator's id_loc, rather than probably-imprecise input_location.
13827         (build_id_declarator): Initialize c_declarator's id_loc field.
13828
13829 2005-03-11  Roger Sayle  <roger@eyesopen.com>
13830
13831         PR middle-end/20419
13832         * builtins.c (expand_builtin_signbit): Force the signbit's word
13833         into an integer register to avoid SUBREGs of floating point modes.
13834
13835 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
13836
13837         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
13838         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
13839         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
13840         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
13841
13842 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
13843
13844         PR rtl-optimization/20306
13845         * expr.c (emit_move_complex): Set try_int false if mode is
13846         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
13847         emit_block_move if try_int is true.
13848
13849 2005-03-11  Richard Henderson  <rth@redhat.com>
13850
13851         PR target/20415
13852         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
13853         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
13854         to match.
13855
13856 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
13857
13858         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
13859         (TARGET_FIX_VR4130): New macro.
13860         (TARGET_OPTIONS): Add -mfix-vr4130.
13861         (ISA_HAS_MACCHI): New macro.
13862         (ASM_SPEC): Add -mfix-vr4130.
13863         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
13864         (override_options): Handle mips_fix_vr4130_string.
13865         (mips_avoid_hazards): Clear all_noreorder_p
13866         if we're working around VR4130 errata and the macc alternatives
13867         are not available.
13868         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
13869         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
13870         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
13871         (MULTILIB_DEFAULTS): Remove leading "march=".
13872         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
13873         if no architecture option is given.
13874         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
13875         VR4130 multilibs.
13876         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
13877         * doc/invoke.texi: Document -mfix-vr4130.
13878
13879 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
13880
13881         * config/mips/mips.c (override_options): Only warn about -mint64
13882         deprecation if TARGET_INT64.
13883
13884 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13885
13886         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
13887         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
13888         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
13889         are non-specific regarding the nonnull parameter positions.
13890         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
13891         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
13892         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
13893         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
13894
13895         * builtins.def: Use the non-specific "nonnull" attibute lists.
13896
13897 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
13898
13899         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
13900         single_pred_edge, single_succ, single_pred): Improve comments.
13901
13902 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
13903
13904         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
13905         single_pred_edge, single_succ, single_pred): New inline functions.
13906         * bb-reorder.c (rotate_loop, find_traces_1_round,
13907         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
13908         duplicate_computed_gotos): Use the single_succ/pred functions.
13909         * cfganal.c (forwarder_block_p): Ditto.
13910         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
13911         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
13912         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
13913         merge_seq_blocks): Ditto.
13914         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
13915         * cfglayout.c (fixup_reorder_chain): Ditto.
13916         * cfgloop.c (mark_single_exit_loops, update_latch_info,
13917         canonicalize_loop_headers, verify_loop_structure): Ditto.
13918         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
13919         mfb_update_loops, create_preheader, force_single_succ_latches,
13920         create_loop_notes): Ditto.
13921         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
13922         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
13923         commit_one_edge_insertion, purge_dead_edges,
13924         cfg_layout_can_merge_blocks_p): Ditto.
13925         * except.c (sjlj_emit_function_enter): Ditto.
13926         * flow.c (init_propagate_block_info): Ditto.
13927         * function.c (thread_prologue_and_epilogue_insns): Ditto.
13928         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
13929         insert_insn_end_bb): Ditto.
13930         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
13931         find_if_case_2): Ditto.
13932         * lambda-code.c (perfect_nestify): Ditto.
13933         * lcm.c (optimize_mode_switching): Ditto.
13934         * loop-doloop.c (doloop_modify): Ditto.
13935         * loop-init.c (loop_optimizer_init): Ditto.
13936         * loop-iv.c (simplify_using_initial_values): Ditto.
13937         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
13938         * loop-unswitch.c (unswitch_loop): Ditto.
13939         * modulo-sched.c (generate_prolog_epilog): Ditto.
13940         * predict.c (combine_predictions_for_insn, estimate_probability,
13941         tree_estimate_probability, last_basic_block_p,
13942         estimate_bb_frequencies): Ditto.
13943         * profile.c (branch_prob): Ditto.
13944         * regrename.c (copyprop_hardreg_forward): Ditto.
13945         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
13946         * tracer.c (layout_superblocks): Ditto.
13947         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
13948         cfg_remove_useless_stmts_bb, cleanup_control_flow,
13949         cleanup_control_expr_graph, disband_implicit_edges,
13950         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
13951         tree_verify_flow_info, tree_make_forwarder_block,
13952         tree_forwarder_block_p, remove_forwarder_block,
13953         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
13954         * tree-if-conv.c (tree_if_conversion): Ditto.
13955         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
13956         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
13957         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
13958         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
13959         copy_loop_headers): Ditto.
13960         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
13961         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
13962         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
13963         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
13964         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
13965         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
13966         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
13967         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
13968         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
13969         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
13970         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
13971         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
13972         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
13973         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
13974         slpeel_add_loop_guard): Ditto.
13975
13976 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
13977
13978         PR tree-optimization/15784
13979         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
13980         and -1 - A to ~A.
13981
13982         * stmt.c (expand_case): Don't change index_type.  Convert minval
13983         to the proper type.
13984
13985         PR tree-optimization/20130
13986         * fold-const.c (fold): Fold x * -1 into -x.
13987
13988 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
13989
13990         PR rtl-optimization/20331
13991         * rtlanal.c (modified_between_p): Check its address first for MEM.
13992         (modified_in_p): Likewise.
13993
13994 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
13995
13996         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
13997
13998 2005-03-10  Steven Bosscher  <stevenb@suse.de>
13999
14000         * expr.c (expand_expr_real_1): If possible, use a conditional
14001         move for expanding MIN_EXPR and MAX_EXPR.
14002         Use temp for moving around rtx-en.
14003
14004 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
14005
14006         PR rtl-opt/20412
14007         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
14008         correct mode.
14009
14010 2005-03-10  Roger Sayle  <roger@eyesopen.com>
14011
14012         * builtins.c (expand_builtin_signbit): Extend to handle floating
14013         point modes wider than the largest integer type, using the
14014         operand_subword_force function to obtain the signbit's word.
14015
14016 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
14017
14018         PR target/20322
14019         * combine.c (try_combine): If recog_for_combine added CLOBBERs
14020         to NEWI2PAT, fail to combine if they are used by NEWPAT.
14021
14022 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
14023
14024         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
14025
14026 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
14027
14028         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
14029         type void.
14030         (perform_edge_inserts): Unconditionally call
14031         free_dominator_info.
14032
14033         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
14034
14035 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
14036
14037         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
14038
14039 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
14040
14041         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
14042
14043         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
14044         gcc_unreachable.
14045         (rtl_register_value_prof_hooks,
14046         tree_value_profile_transformations,
14047         tree_register_value_prof_hooks): Likewise.
14048         * var-tracking.c (stack_adjust_offset_pre_post,
14049         variable_htab_free, variable_union, dataflow_set_different_2,
14050         count_uses, variable_was_changed, set_frame_base_location,
14051         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
14052         vt_add_function_parameters): Likewise.
14053         * varasm.c (named_section_real, named_section, make_decl_rtl,
14054         asm_emit_uninitialised, assemble_integer, decode_addr_const,
14055         const_hash_1, compare_constant, copy_constant, force_const_mem,
14056         output_constant_pool_2, output_constant_pool_1, output_constant,
14057         output_constructor, make_decl_one_only, decl_tls_model,
14058         default_no_named_section, default_elf_select_section_1,
14059         default_unique_section_1): Likewise.
14060         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
14061         * vmsdbgout.c (addr_const_to_string): Likewise.
14062
14063         PR c++/20375
14064         * function.c (struct assign_parm_data_one): Remove last_named
14065         field.
14066         (assign_parm_find_data_types): Don't determine last_named.
14067         Reorder named_parm determination.
14068         (assign_parms): Only setup varargs on the last non-varadic
14069         parameter.
14070
14071 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
14072
14073         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
14074         sda base address on medium model.
14075
14076 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
14077
14078         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
14079         * cfgloop.c (flow_loop_nodes_find): Export.
14080         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
14081         Declare.
14082         * cfgloopmanip.c (fix_loop_structure): New function.
14083         * predict.c (predict_loops): Clean up the loops information.
14084         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
14085         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
14086         loop structure.
14087         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
14088         (rewrite_into_loop_closed_ssa): Declaration changed.
14089         * tree-loop-linear.c (linear_transform_loops): Add argument to
14090         rewrite_into_loop_closed_ssa call.
14091         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
14092         * tree-ssa-loop-im.c (move_computations): Ditto.
14093         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
14094         * tree-vectorizer.c (vectorize_loops): Ditto.
14095         * tree-optimize.c: Include cfgloop.h.
14096         (execute_todo): Choose whether to call cleanup_tree_cfg or
14097         cleanup_tree_cfg_loop.
14098         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
14099         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
14100         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
14101         cleanup_tree_cfg_loop call.
14102         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
14103         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
14104         work on part of cfg.
14105
14106 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
14107
14108         PR inline-asm/20314
14109         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
14110         with multiple alternatives.
14111
14112         * stmt.c (parse_output_constraint): Fix a typo.
14113
14114 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
14115
14116         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
14117         assembly directive instead of deprecated "no-generics".
14118
14119 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
14120
14121         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
14122         for non-offsettable memory references to cope with outstanding reload
14123         replacements.
14124         * config/s390/s390.md ("reload_outti"): Call find_replacement to
14125         avoid losing outstanding address reloads.
14126         ("reload_outdi", "reload_outdf"): Likewise.
14127
14128 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14129
14130         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
14131         code.  Add more cbrt transformations.
14132
14133 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14134
14135         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
14136
14137 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
14138
14139         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
14140         NULL_TREE when a given tree is not simplified.
14141         (fold): Return the original tree when any of the functions
14142         mentioned above NULL_TREE.
14143
14144         * fold-const.c (fold_unary, fold_binary): Take decomposed
14145         arguments, code, type, op0, and op1 in case of fold_binary.
14146         (fold): Update calls to fold_unary and fold_binary.
14147
14148 2005-03-09  Roger Sayle  <roger@eyesopen.com>
14149
14150         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
14151         a fndecl and an arglist instead of a CALL_EXPR, exp.
14152
14153 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
14154
14155         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
14156
14157         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
14158
14159         * expr.c (expand_assignment): Remove orig_to_rtx.
14160
14161         * fold-const.c (int_const_binop): Remove no_overflow.
14162
14163         * ifcvt.c (noce_emit_move_insn): Remove inmode.
14164
14165         * loop-iv.c (get_biv_step_1): Remove lhs.
14166
14167         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
14168
14169         * real.c (real_nan): Remove neg.
14170
14171         * function.c (thread_prologue_and_epilogue_insns): Remove i
14172         and newinsn.
14173
14174         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
14175         tb.
14176
14177         * tree-eh.c (tree_could_trap_p): Remove idx.
14178
14179         * tree-into-ssa.c (ann): Remove ann.
14180
14181         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
14182
14183         * tree-sra.c (decide_block_copy): Remove inst_count.
14184
14185         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
14186
14187         * tree-ssa-loop-im.c (lhs): Remove.
14188
14189         * cfgbuild.c (state, STATE, SET_STATE,
14190         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
14191         make_edges.
14192         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
14193         (find_basic_blocks): Set the state of each basic block to
14194         BLOCK_NEW.
14195
14196 2005-03-08  Jeff Law  <law@redhat.com>
14197
14198         * tree-cfg.c (cleanup_control_flow): If removal of a computed
14199         goto results in the removal of edges in the CFG, then we need
14200         to recompute dominators.
14201
14202 2005-03-09  Ben Elliston  <bje@au.ibm.com>
14203
14204         * c-common.c (c_do_switch_warnings): Comment fix.
14205
14206 2005-03-08  Julian Brown  <julian@codesourcery.com>
14207
14208         * Patch from 2005-03-08 reverted for causing regressions and
14209         ppc-darwin bootstrap failure.
14210
14211 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
14212
14213         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
14214         Define the real function for ppc-darwin.
14215         * c-typeck.c (convert_arguments): Check for target-specific
14216         invalid argument call to unprototyped function.
14217         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
14218         New Macro.
14219         * target.h (invalid_arg_for_unprototyped_fn): New field
14220         in struct calls.
14221         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
14222         default target hook.
14223         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
14224         Declare.
14225
14226 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
14227
14228         * c-typeck.c (constructor_stack, constructor_range_stack,
14229         initializer_stack): Make them static.
14230
14231         * cfg.c (rbi_pool): Make it static.
14232
14233         * gimple-low.c (lower_stmt_body): Make it static.
14234         * tree-flow.h: Remove the corresponding prototype.  Don't
14235         declare lower_data.
14236
14237         * sched-deps.c (cache_size): Make it static.
14238
14239         * stor-layout.c (lang_adjust_rli): Make it static.
14240
14241 2005-03-08  Julian Brown  <julian@codesourcery.com>
14242
14243         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
14244         from being used for symbols with vague linkage when
14245         HAVE_GAS_COMDAT_GROUP is true.
14246
14247 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
14248
14249         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
14250         nlabel == JUMP_LABEL (jump).
14251
14252 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
14253
14254         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
14255         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
14256         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
14257         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
14258
14259 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
14260
14261         PR c/14411
14262         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
14263         * c-common.c (handle_returns_twice): New function.
14264         (c_common_attribute_table): Declare eturns_twice' attribute.
14265         * doc/extend.texi: Document eturns_twice' attribute.
14266         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
14267         (struct tree_decl): Add returns_twice_flag.
14268
14269 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
14270
14271         * tree-ssa-phiopt.c: Fix a comment typo.
14272
14273         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
14274         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
14275         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
14276         copyright.
14277
14278 2005-03-08  Richard Henderson  <rth@redhat.com>
14279
14280         * config/alpha/alpha.c (code_for_builtin): Replace special-case
14281         builtin codes with ctzdi2, clzdi2, popcountdi2.
14282         (struct alpha_builtin_def): Add is_const.
14283         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
14284         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
14285         (alpha_init_builtins): Init them.  Set nothrow and const attributes
14286         on builtins.
14287         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
14288         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
14289         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
14290         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
14291         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
14292         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
14293         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
14294         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
14295         (TARGET_FOLD_BUILTIN): New.
14296         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
14297         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
14298         (ffsdi2): Use ctz.
14299         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
14300
14301 2005-03-08  Ira Rosen  <irar@il.ibm.com>
14302
14303         PR tree-optimization/20122
14304         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
14305         condition of access function instead of base.
14306
14307 2005-03-07  Jeff Law  <law@redhat.com>
14308             Steven Bosscher  <stevenb@suse.de>
14309
14310         * tree-cfg.c (find_taken_edge_computed_goto): New function.
14311         (find_taken_edge): Call find_taken_edge_computed_goto as
14312         appropriate.  Allow any gimple invariant rather than just
14313         INTEGER_CST for VAL.
14314         (cleanup_control_flow): Cleanup a computed goto which has turned
14315         into a simple goto.
14316         (tree_merge_blocks): If block B has any forced labels, move
14317         them to the start of block A.
14318         * tree-ssa-dom.c (thread_across_edge): Allow threading across
14319         computed gotos as well.
14320         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
14321         removal of unnecessary computed gotos too.
14322         (lookup_redirection_data): Fix type of INSERT argument.  Callers
14323         updated.
14324
14325 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
14326
14327         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
14328         Remove trailing spaces.
14329
14330         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
14331         unshare_all_trees): Make them static.
14332         * tree-gimple.h: Remove the corresponding prototypes.
14333
14334         * diagnostic.h: Remove unused prototype
14335         debug_output_buffer.
14336         * modulo-sched.c: Remove unused prototype
14337         set_row_column_for_ps.
14338
14339         * tree-ssa-phiopt.c (tree_ssa_phiopt,
14340         replace_phi_edge_with_variable): Remove unused variable i.
14341
14342 2005-03-07  Per Bothner  <per@bothner.com>
14343
14344         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
14345
14346 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
14347
14348         PR tree-opt/17671
14349         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
14350         bbs on the COND_EXPR instead of the PHI_NODEs.
14351         (candidate_bb_for_phi_optimization): Remove.
14352         (replace_phi_with_stmt): Rename to ...
14353         (replace_phi_edge_with_variable): this and change so that we
14354         replace the phi argument instead of removing the PHI.
14355         (conditional_replacement): Change so we deal with PHI with more
14356         than two arguments.
14357         (value_replacement): Likewise.
14358         (abs_replacement): Likewise.
14359
14360 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
14361
14362         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
14363         output_e500_flip_gt_bit.
14364
14365         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
14366         as bit 31.
14367         (rs6000_generate_compare): Fix logic to look at the correct bits.
14368         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
14369         Look at GT bit.
14370         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
14371         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
14372         gen_move_from_CR_gt_bit.
14373
14374         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
14375         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
14376         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
14377
14378         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
14379         (E500_CR_IOR_COMPARE): New constant.
14380
14381 2005-03-08  Earl Chew <earl_chew@agilent.com>
14382             David Billinghurst <David.Billinghurst@riotinto.com>
14383
14384         * config/i386/host-cygwin.c: New file to support precompiled
14385         headers on cygwin
14386         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
14387         * config.host: Use above files for cygwin host.
14388
14389 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
14390
14391         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
14392         ordering ops from earlier change.
14393
14394 2005-03-07  Per Bothner  <per@bothner.com>
14395
14396         Various fixes to allow us to again build if --enable-mapped-location:
14397         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
14398         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
14399         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
14400         local variable loc. Change logic appropriately.
14401         * tree-vect-transform.c (vect_finish_stmt_generation): Use
14402         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
14403         * c-parser.c (c_parser_for_statement): Initialize loc variable.
14404         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
14405         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
14406
14407 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
14408
14409         PR rtl-optimization/19683
14410         * reload1.c (choose_reload_regs): Pass the number of bits, not the
14411         number of bytes, to smallest_int_for_mode.  Fix arguments to
14412         REG_CANNOT_CHANGE_MODE_P.
14413
14414 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
14415
14416         * reorg.c (relax_delay_slots): Check that the jump is
14417         conditional before trying to invert it.
14418
14419 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
14420
14421         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
14422         Make them static.
14423
14424         * calls (stack_arg_under_construction): Make it static.
14425
14426         * flow.c (regs_live_at_setjmp): Make it static.
14427         * flow.h: Remove the corresponding prototype.
14428
14429         * reload1.c (reload_startobj, reload_firstobj,
14430         something_needs_operands_changed, reload_inherited,
14431         reload_inheritance_insn, reload_override_in,
14432         reload_spill_index): Make them static.
14433
14434         * recog.c (verify_changes): Make it static.
14435         * recog.h: Remove the corresponding prototype.
14436
14437         * cfgbuild.c (find_sub_basic_blocks): Remove.
14438         * basic-block.h: Remove the corresponding prototype.
14439         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
14440         in comments.
14441         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
14442
14443         * tree-ssa-operands.c (check_build_stmt): Remove.
14444
14445         * stor-layout.c (set_alignment): Remove.
14446         * tree.h: Remove the corresponding prototype.
14447
14448         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
14449
14450         * tree-ssa-dce.c (control_dependence_map,
14451         visited_control_parents): Make them static.
14452
14453         * cfghooks.c (verify_flow_info): Remove local variable
14454         num_bb_notes.
14455
14456         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
14457         last_bb_seen.
14458
14459         * loop-unswitch.c (unswitch_loop): Remove local variable src.
14460
14461 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
14462
14463         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
14464
14465 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
14466
14467         * config/ia64/hpux.h (LINK_SPEC): Add -z.
14468         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
14469         PARALLEL for an empty structure.
14470
14471 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
14472
14473         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
14474
14475         * fold-const.c (fold_binary): Unroll the very first "for"
14476         loop.
14477
14478 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
14479
14480         * config/rs6000/predicates.md (branch_comparison_operator): Remove
14481         redundant match_code test.
14482         (scc_comparison_operator): Swap match_operand and match_code
14483         tests.
14484         (branch_positive_comparison_operator): Same.
14485         (trap_comparison_operator): Use comparison_operator and swap with
14486         match_code test.
14487
14488 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14489
14490         PR target/20288
14491         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
14492         (out_movhi_r_mr): Read low byte of volatile MEM first.
14493         (out_movhi_mr_r): Write high byte of volatile MEM first.
14494
14495 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
14496
14497         * cselib.c (reg_values, reg_values_size): Make them static.
14498
14499         * cse.c (cse_reg_info_table): Make it static.
14500
14501         * fold-const.c (fold_unary): Use build1 instead of copy_node.
14502
14503 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
14504
14505         * cse.c (find_best_addr): Use canon_for_address.
14506
14507 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
14508
14509         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
14510         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
14511         SUBREG and MEM, respectively.
14512
14513         * fold-const.c (fold_binary): Use code instead of t.
14514
14515         * fold-const.c (optimize_minmax_comparison): Take decomposed
14516         arguments code, type, op0, and op1 instead of t.
14517         (fold_binary): Update a call to optimize_minmax_comparison.
14518
14519         * fold-const.c (fold_range_test): Take decomposed arguments
14520         code, type, op0, and op1 instead of t.
14521         (fold_binary): Update a call to fold_range_test.
14522
14523         * fold-const.c (fold_binary_op_with_conditional_arg): Take
14524         decomposed arguments code, type, op0, and op1 instead of t.
14525         (fold_binary): Update a call to fold_range_test.
14526
14527 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
14528
14529         * fold-const.c (fold_binary): Avoid directly using the original
14530         expression t as much as possible.
14531
14532 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
14533
14534         * c-semantics.c (build_stmt): Use TYPE_P instead of
14535         IS_NON_TYPE_CODE_CLASS.
14536         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
14537         (NON_TYPE_CHECK): Use TYPE_P instead of
14538         IS_NON_TYPE_CODE_CLASS.
14539
14540         * fold-const.c (fold): Remove handling of binary expressions.
14541
14542 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
14543
14544         * doc/c-tree.texi: Wrap comments in @r{}.
14545         * doc/cpp.texi: Likewise.
14546         * doc/cppinternals.texi: Likewise.
14547         * doc/extend.texi: Likewise.
14548         * doc/md.texi: Likewise.
14549         * doc/objc.texi: Likewise.
14550         * doc/sourcebuild.texi: Likewise.
14551         * doc/tm.texi: Likewise.
14552         * doc/tree-ssa.texi
14553
14554 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
14555
14556         * predict.c (apply_return_prediction): Standardize PHI chain
14557         walking.
14558         * tree-ssa.c (ssa_redirect_edge): Likewise.
14559
14560         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
14561         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
14562         Update copyright.
14563
14564         * tree-phinodes.c (remove_phi_node): Drop the last argument.
14565         * tree-flow.h: Adjust the prototype for remove_phi_node.
14566         * lambda-code.c (perfect_nestify): Adjust a call to
14567         remove_phi_node.
14568         * tree-cfg.c
14569         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
14570         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
14571         Likewise.
14572         * tree-ssa-dce.c (remove_dead_phis): Likewise.
14573         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
14574         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
14575         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
14576
14577         * combine.c (simplify_and_const_int): Use gen_int_mode instead
14578         of GEN_INT (trunc_int_for_mode (...)).
14579         * loop-iv.c (iv_number_of_iterations): Likewise.
14580         * postreload.c (reload_cse_move2add): Likewise.
14581         * simplify-rtx.c (simplify_const_unary_operation,
14582         simplify_const_binary_operation): Likewise.
14583         * stor-layout.c (get_mode_bounds): Likewise.
14584
14585         * fold-const.c (fold_binary): New.
14586         (fold): Call fold_binary on binary expressions.
14587
14588 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
14589
14590         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
14591         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
14592         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
14593         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
14594         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
14595
14596 2005-03-04  Devang Patel  <dpatel@apple.com>
14597
14598         PR tree-optimization/18815
14599         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
14600         loops with zero exit edges.
14601
14602 2005-03-04  Devang Patel  <dpatel@apple.com>
14603
14604         * doc/invoke.texi: Remove reference to webpage that does not exist.
14605
14606 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
14607             Joseph S. Myers  <joseph@codesourcery.com>
14608
14609         PR c++/19797
14610         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
14611         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
14612         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
14613         * pa.c (get_plabel): Change argument to symbol_ref.  Call
14614         maybe_get_identifier instead of get_identifier.
14615         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
14616         (struct deferred_plabel): Replace name field with symbol field.
14617         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
14618         ASM_OUTPUT_EXTERNAL_REAL is defined.
14619         (output_global_address): Use output_addr_const for output of all
14620         symbol_refs.
14621         (output_deferred_plabels): Use symbol_ref instead of name for address
14622         output.
14623         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
14624         ASM_OUTPUT_SYMBOL_REF): New macros.
14625         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
14626         comment.
14627         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
14628         label.
14629
14630 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
14631
14632         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
14633         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
14634
14635 2005-03-04  Jeff Law  <law@redhat.com>
14636
14637         * basic-block.h (rediscover_loops_after_threading): Declare.
14638         * tree-ssa-dom.c: Include cfgloop.h.
14639         (tree_ssa_dominator_optimize): Discover loops and some basic
14640         properties.  Remove forwarder blocks recreated by loop header
14641         canonicalization.  Also mark backedges in the CFG.
14642         * tree-ssa-threadupdate.c: Include cfgloop.h
14643         (rediscover_loops_after_threading): Define.
14644         (struct local_info): New field, JUMP_THREADED.
14645         (prune_undesirable_thread_requests): New function.
14646         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
14647         then record that fact for the callers of redirct_edges.
14648         (thread_block): If BB has incoming backedges, then call
14649         prune_undesirable_thraed_requests.    Note when we are
14650         going to have to rediscover loop information.  Return a
14651         boolean indicating if any jumps were threaded.
14652         (thread_through_all_blocks): Bubble up boolean indicating
14653         if any jumps were threaded.
14654         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
14655         (tree-ssa-threadupdate.o): Similarly.
14656
14657 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
14658
14659         * fold-const.c (fold_ternary): Unroll the "for" loop to
14660         extract operands.
14661
14662 2005-03-04  Andrew Haley  <aph@redhat.com>
14663
14664         * unwind-dw2-fde-glibc.c (struct
14665         unw_eh_callback_data.check_cache): New field.
14666         (frame_hdr_cache): New.
14667         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
14668         Cache frame header info.
14669
14670 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
14671
14672         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
14673         (print_c_condition): Declare.
14674         * read-rtl.c (ptr_loc): New structure.
14675         (ptr_locs, ptr_loc_obstack, joined_conditions)
14676         (joined_conditions_obstack): New variables.
14677         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
14678         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
14679         (join_c_conditions, print_c_condition): New functions.
14680         (apply_macro_to_string): Associate the new string with the same
14681         source location as the old one.
14682         (add_condition_to_string): Use join_c_conditions.
14683         (read_string): Use set_rtx_ptr_loc to record a filename and line
14684         number for the string.
14685         (read_rtx): Initialize the new variables above.
14686         * genattrtab.c (write_test_expr, write_attr_value): Use
14687         print_c_condition.
14688         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
14689         comment above the GCC_VERSION check.
14690         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
14691         Inline the definition of MAYBE_EVAL.
14692         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
14693         * genoutput.c (process_template): Likewise.
14694         * genpreds.c (write_predicate_subfunction): Likewise.
14695         (write_predicate_expr): Use print_c_condition.
14696         * genrecog.c (write_cond): Likewise.
14697         * gensupport.c (process_rtx): Use join_c_conditions to join the
14698         conditions of a define_insn_and_split.  Record a source location
14699         for the string after the "&&".
14700         (alter_test_for_insn): Use join_c_conditions.
14701
14702 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
14703
14704         Revert for now:
14705         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
14706         PR tree-optimization/15784
14707         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
14708         and -1 - A to ~A.
14709
14710 2005-03-04  Ben Elliston  <bje@au.ibm.com>
14711
14712         * gcc.c (option_map): Add --coverage.
14713         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
14714         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
14715         * config/darwin.h: Pass -lgcov for `coverage'.
14716         * doc/invoke.texi (Debugging Options): Document --coverage.
14717
14718 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
14719
14720         * gcse.c (bypass_block): Use find_edge wherever possible.
14721
14722 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
14723
14724         Fix PR debug/20253
14725
14726         * c-opts.c (c_common_parse_file): Call start_source_file
14727         and end_source_file at the approriate times.
14728
14729         * dwarf2out.c (dwarf2out_finish): Don't auto-end
14730         the main file, it will be done for us now.
14731
14732 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
14733
14734         * fold-const.c (fold_ternary): New.
14735         (fold): Call fold_ternary on ternary expressions.  Remove
14736         handling of ternary expressions.
14737
14738 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
14739
14740         PR tree-optimization/15784
14741         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
14742         and -1 - A to ~A.
14743
14744 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
14745
14746         * config/rs6000/predicates.md (branch_comparison_operator):
14747         Convert from C block to conditional format.
14748
14749 2005-03-03  Jan Hubicka  <jh@suse.cz>
14750
14751         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
14752         and non-constant public variables.
14753
14754 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
14755
14756         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
14757         with LABEL_EXPR.
14758
14759         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
14760         EDGE_I.
14761
14762         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
14763         calls to release_ssa_name and release_phi_node.
14764
14765         * fold-const.c (fold): Remove handling of unary expressions.
14766
14767         * fold-const.c (fold_unary): Avoid directly using the original
14768         expression t as much as possible.
14769
14770 2005-03-03  Roger Sayle  <roger@eyesopen.com>
14771             Andrew Pinski  <pinskia@physics.uc.edu>
14772
14773         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
14774         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
14775
14776 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
14777
14778         Describe special registers SRP and MOF as allocatable registers.
14779         * config/cris/cris.c (cris_md_asm_clobbers): New function.
14780         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
14781         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
14782         TARGET_HAS_MUL_INSNS.
14783         (cris_print_operand) <case 'd'>: New case.
14784         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
14785         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
14786         define.
14787         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
14788         (REG_ALLOC_ORDER): Update for MOF.
14789         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
14790         SPECIAL_REGS.
14791         (GENERAL_REGS): No longer a define of ALL_REGS.
14792         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
14793         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
14794         Adjust accordingly.
14795         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
14796         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
14797         (SECONDARY_RELOAD_CLASS): Define.
14798         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
14799         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
14800         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
14801         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
14802         (REGISTER_MOVE_COST): Define.
14803         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
14804         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
14805         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
14806         (CRIS_MOF_REGNUM): New define_constants.
14807         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
14808         special registers.
14809         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
14810         New patterns.
14811         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
14812         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
14813         Adjust for MOF being properly described as a register.
14814         (indir_to_reg_split): Name this split.  Conditionalize on the
14815         destination register being a general register.
14816         (movei): Conditionalize on on operands 0 and 1 having the same
14817         register class.
14818
14819 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
14820
14821         PR target/20277
14822         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
14823         -mcpu to override any other explicitly given flags.
14824
14825 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
14826
14827         * recog.c (verify_changes, confirm_change_group): New functions,
14828         broken out of apply_change_group.
14829         (apply_change_group): Use them.
14830         * recog.h (verify_change, confirm_change_group): Declare.
14831         * rtl.h (redirect_jump_2): Declare.
14832         * jump.c (redirect_exp, invert_exp): Delete.
14833         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
14834         (redirect_jump_2): New function, broken out of redirect_jump.
14835         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
14836         (invert_jump): Use invert_jump_1 and redirect_jump_2.
14837         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
14838
14839 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
14840
14841         * varasm.c (named_section): Use xstrdup rather than doing it by
14842         hand.
14843
14844         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
14845
14846 2005-03-02  Devang Patel  <dpatel@apple.com>
14847
14848         Undo PR tree-optimization/18815 fix.
14849
14850 2005-03-02  Devang Patel  <dpatel@apple.com>
14851
14852         PR tree-optimization/18815
14853         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
14854         loops with zero exit edges.
14855
14856 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
14857
14858         * cfg.c (connect_src, connect_dest, disconnect_src,
14859         disconnct_dest): New.
14860         (unchecked_make_edge, remove_edge, redirect_edge_succ,
14861         redirect_edge_pred): Use the new functions.
14862
14863         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
14864         free_dominance_info only when needed.
14865
14866 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
14867
14868         PR target/20276
14869         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
14870         (reg_or_sub_cint64_operand): Same.
14871
14872 2005-03-02  Jeff Law  <law@redhat.com>
14873
14874         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
14875         CFG_ALTERED in the main DOM iteration loop.
14876
14877 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
14878
14879         PR c++/19916
14880         * varasm.c (initializer_constant_valid_p): Allow conversions
14881         between OFFSET_TYPEs.  Tidy.
14882
14883 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
14884
14885         * config/cris/cris.md ("return"): Remove epilogue delay list
14886         sanity check.
14887
14888 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
14889
14890         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
14891         for Thumb.
14892         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
14893
14894 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
14895
14896         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
14897         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
14898         config/m68k/m68k.c, config/mips/mips.h,
14899         config/rs6000/rs6000-protos.h, doc/contrib.texi,
14900         doc/include/gcc-common.texi: Update copyright.
14901
14902         PR middle-end/18029 and PR middle-end/18030
14903         * expr.c (optimize_bitfield_assignment_op): Add a special case
14904         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
14905
14906         * fold-const.c (fold_unary): New.
14907         (fold): Call fold_unary on unary expressions.
14908
14909 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
14910
14911         * cgraph.h (struct cgraph_edge): Add prev_caller and
14912         prev_callee fields.
14913         (cgraph_node_remove_callees): Export.
14914         * cgraph.c (cgraph_create_edge): Initialize prev_caller
14915         and prev_callee.
14916         (cgraph_edge_remove_callee): New function.
14917         (cgraph_edge_remove_caller): Likewise.
14918         (cgraph_remove_edge): Use.
14919         (cgraph_redirect_edge_callee): Likewise.
14920         (cgraph_node_remove_callees): New function.
14921         (cgraph_node_remove_callers): Likewise.
14922         (cgraph_remove_node): Use.
14923         * tree-optimize.c (tree_rest_of_compilation): Use
14924         cgraph_node_remove_callees instead of manual loop.
14925         * cgraphunit.c (cgraph_finalize_function): Likewise.
14926         (cgraph_expand_function): Likewise.
14927         (cgraph_remove_unreachable_nodes): Likewise.
14928
14929 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
14930
14931         PR c/8927
14932         * c-tree.h (undeclared_variable, build_external_ref): Add extra
14933         argument.
14934         * c-decl.c (undeclared_variable): Take location as argument.
14935         * c-typeck.c (build_external_ref): Likewise.
14936         * c-parser.c (c_parser_postfix_expression): Pass location of
14937         identifier to build_external_ref.
14938
14939 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
14940
14941         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
14942         CCEQ mode for branch_positive_comparison_operator test.
14943         * config/rs6000/predicates (branch_comparison_operator): Revert to
14944         define_predicate.
14945         (scc_comparison_operator): Same.
14946         (branch_positive_comparison_operator): Same.
14947
14948 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
14949
14950         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
14951         (cris_delay_slots_for_epilogue): Remove.
14952         (save_last): Move into cris_target_asm_function_epilogue.
14953         (cris_target_asm_function_epilogue): Remove tests for file being
14954         NULL.
14955         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
14956         (cris_delay_slots_for_epilogue): Remove prototypes.
14957         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
14958         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
14959
14960 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
14961
14962         * config/rs6000/predicates.md (branch_comparison_operator): Change
14963         to define_special_predicate.
14964         (scc_comparison_operator): Same.
14965         (branch_positive_comparison_operator): Same.
14966
14967 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
14968
14969         * Makefile.in (tree-ssa-sink.o): New.
14970         (OBJS-common): Add tree-ssa-sink.o.
14971         * common.opt: Add -ftree-sink
14972         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
14973         * timevar.def (TV_TREE_SINK): new timevar.
14974         * tree-flow.h (is_hidden_global_store): Prototype.
14975         * tree-optimize.c (init_tree_optimization_passes): Add
14976         pass_sink_code.
14977         * tree-pass.h (pass_sink_code): New.
14978         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
14979         for non-obvious global store store to is_hidden_global_store, and
14980         call that new function.
14981         * tree-ssa-sink.c: New file.
14982         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
14983         * doc/passes.texi: Document forward store motion.
14984         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
14985         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
14986         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
14987         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
14988
14989 2005-03-01  Per Bothner  <per@bothner.com>
14990
14991         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
14992         and we have a non-zero column-number, add it to the message.
14993         Also factor out the diagnostic_kind_text.
14994
14995 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
14996
14997         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
14998         flow_loop_pre_header_scan, flow_loop_pre_header_find,
14999         flow_loop_scan): Removed.
15000         (flow_loop_dump): Do not dump removed fields.
15001         (flow_loop_free): Do not free removed fields.
15002         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
15003         (loop_exit_edge_p): New function.
15004         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
15005         num_pre_header_edges, entry_edges, num_entries, exit_edges,
15006         num_exits, exits_doms.
15007         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
15008         LOOP_EDGES, LOOP_ALL): Removed.
15009         (flow_loop_scan): Declaration removed.
15010         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
15011         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
15012         flow_loops_find.
15013         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
15014         (if_convert): Call flow_loops_find and flow_loops_free
15015         when calling mark_loop_exit_edges.
15016         * cfgloopanal.c (mark_loop_exit_edges): Moved from
15017         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
15018         free_dominance_info calls.
15019         * loop-init.c (flow_loops_find): Ditto.
15020         * passes.c (rest_of_handle_branch_prob): Ditto.
15021         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
15022         * loop-unroll.c (analyze_insns_in_loop): Do not use
15023         EDGE_LOOP_EXIT.
15024         * predict.c (predict_loops): Do not call flow_loop_scan.
15025         Use get_loop_exit_edges.
15026         (tree_estimate_probability): Do not pass flags to flow_loops_find.
15027         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
15028         Do not use EDGE_LOOP_EXIT.
15029         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
15030         to bb_with_exit_edge_p.
15031         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
15032         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
15033         to bb_with_exit_edge_p.
15034         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
15035         EDGE_LOOP_EXIT.
15036         * tree-loop-linear.c (linear_transform_loops): Do not call
15037         flow_loop_scan.  Use loop->single_exit.
15038         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
15039         (vect_analyze_loop_form): Do not call flow_loop_scan.
15040         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
15041         loop->single_exit.
15042         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
15043         loop->single_exit.
15044         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
15045         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
15046         slpeel_tree_duplicate_loop_to_edge_cfg,
15047         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
15048         Use loop_preheader_edge and loop->single_exit.  Do not call
15049         flow_loop_scan.
15050
15051 2005-03-01  Nick Clifton  <nickc@redhat.com>
15052
15053         * config/arm/arm.c (thumb_find_work_register): Check all of the
15054         argument registers to see if they are free, and a couple of
15055         special cases where the last argument register but can be proved
15056         to be available during the function's prologue.
15057         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
15058         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
15059         thumb_unexpanded_epilogue): Use unsigned long as the type for the
15060         register bit-mask.
15061         (thumb_compute_save_reg_mask): Likewise.  Also use
15062         thumb_find_work_register() to ensure that there is agreement about
15063         which work register is going to be used in the prologue.
15064         (thumb_output_function_prologue): Use unsigned long as the type
15065         for the register bit-mask.  Also delay pushing the link register if
15066         other high registers are going to be pushed.
15067         (thumb_compute_save_reg_mask, emit_multi_reg_push,
15068         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
15069         redundant prototypes.
15070
15071 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
15072
15073         PR target/19819
15074         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
15075         and after reload in REG+REG indexed addresses without REG_POINTER
15076         set in the base and not set in the index.
15077
15078 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
15079
15080         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
15081         Don't undefine here.
15082         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
15083         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
15084         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
15085         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
15086         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
15087         Delete.
15088         * config.gcc (sh*-*-linux*): Use config/linux.h.
15089
15090 2005-02-28  Dale Johannesen  <dalej@apple.com>
15091             Stan Shebs  <shebs@apple.com>
15092
15093         Rewrite of 64-bit Darwin structure-by-value pass/return.
15094         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
15095         intoffset, use_stack, named.
15096         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
15097         (rs6000_darwin64_record_arg_advance_flush):  New.
15098         (rs6000_darwin64_record_arg_advance_recurse): New.
15099         (rs6000_darwin64_record_arg_flush):  New.
15100         (rs6000_darwin64_record_arg_recurse):  New.
15101         (rs6000_darwin64_record_arg):  New.
15102         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
15103         (function_arg_boundary):  Handle 128-bit aligned structs.
15104         (function_arg_advance):  Rewrite darwin64 struct handling.
15105         (function_arg):  Call rs6000_darwin64_record_arg.
15106         (function_arg_partial_nregs):  Handle darwin64 structs.
15107         (rs6000_darwin64_function_value):  Remove.
15108         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
15109
15110 2005-02-28  Roger Sayle  <roger@eyesopen.com>
15111
15112         PR tree-optimization/20216
15113         * tree-chrec.c (tree_fold_factorial): Delete.
15114         (tree_fold_binomial): Change argument list to take a return type
15115         and change the type of K to unsigned int.  Rewrite to avoid explicit
15116         evaluation of factorials, and (recursively) calling fold to perform
15117         compile-time arithmetic.  Return NULL on (internal) overflow.
15118         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
15119         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
15120         if any intermediate calculation overflows.
15121         (chrec_apply): Update call to chrec_evaluate.
15122
15123 2005-02-28  James E Wilson  <wilson@specifixinc.com>
15124
15125         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
15126
15127 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
15128
15129         PR c/20245
15130         * c-parser.c (c_parser_compound_statement): Return error_mark_node
15131         instead of NULL_TREE on error.
15132
15133 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
15134
15135         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
15136         (EASY_VECTOR_15_ADD_SELF): Remove.
15137         (num_insns_constant_wide): Not static.
15138         (validate_condition_mode): Not static.
15139         (toc_relative_expr_p): Not static.
15140         (legitimate_indirect_address_p): Not static.
15141         (macho_lo_sum_memory_operand): Not static.
15142         (invalid_e500_subreg): Not static.
15143         (easy_vector_same): Not static.
15144         (easy_vector_splat_const): Not static.
15145         (RS6000_SYMBOL_REF_TLS_P): Remove.
15146         (any_operand): Delete.
15147         (any_parallel_operand): Delete.
15148         (count_register_operand): Delete.
15149         (altivec_register_operand): Delete.
15150         (xer_operand): Delete.
15151         (s8bit_cint_operand): Delete.
15152         (short_cint_operand): Delete.
15153         (u_short_cint_operand): Delete.
15154         (non_short_cint_operand): Delete.
15155         (exact_log2_cint_operand): Delete.
15156         (gpc_reg_operand): Delete.
15157         (cc_reg_operand): Delete.
15158         (cc_reg_not_cr0_operand): Delete.
15159         (reg_or_short_operand): Delete.
15160         (reg_or_neg_short_operand): Delete.
15161         (reg_or_aligned_short_operand): Delete.
15162         (reg_or_u_short_operand): Delete.
15163         (reg_or_cint_operand): Delete.
15164         (reg_or_arith_cint_operand): Delete.
15165         (reg_or_add_cint64_operand): Delete.
15166         (reg_or_sub_cint64_operand): Delete.
15167         (reg_or_logical_cint_operand): Delete.
15168         (got_operand): Delete.
15169         (got_no_const_operand): Delete.
15170         (easy_fp_constant): Delete.
15171         (easy_vector_constant): Delete.
15172         (easy_vector_constant_add_self): Delete.
15173         (zero_constant): Delete.
15174         (zero_fp_constant): Delete.
15175         (volatile_mem_operand): Delete.
15176         (offsettable_mem_operand): Delete.
15177         (mem_or_easy_const_operand): Delete.
15178         (add_operand): Delete.
15179         (non_add_cint_operand): Delete.
15180         (logical_operand): Delete.
15181         (non_logical_cint_operand): Delete.
15182         (mask_operand): Delete.
15183         (mask_operand_wrap): Delete.
15184         (mask64_operand): Delete.
15185         (mask64_2_operand): Delete.
15186         (and64_operand): Delete.
15187         (and64_2_operand): Delete.
15188         (and_operand): Delete.
15189         (reg_or_mem_operand): Delete.
15190         (lwa_operand): Delete.
15191         (symbol_ref_operand): Delete.
15192         (call_operand): Delete.
15193         (current_file_function_operand): Delete.
15194         (input_operand): Delete.
15195         (rs6000_nonimmediate_operand): Delete.
15196         (rs6000_tls_symbol_ref): Delete.
15197         (save_world_operation): Delete.
15198         (restore_world_operation): Delete.
15199         (load_multiple_operation): Delete.
15200         (store_multiple_operation): Delete.
15201         (vrsave_operation): Delete.
15202         (mfcr_operation): Delete.
15203         (mtcrf_operation): Delete.
15204         (lmw_operation): Delete.
15205         (stmw_operation): Delete.
15206         (branch_comparison_operator): Delete.
15207         (branch_positive_comparison_operator): Delete.
15208         (scc_comparison_operator): Delete.
15209         (trap_comparison_operator): Delete.
15210         (boolean_operator): Delete.
15211         (boolean_or_operator): Delete.
15212         (min_max_operator): Delete.
15213         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
15214         (EASY_VECTOR_15): Moved to here.
15215         (EASY_VECTOR_15_ADD_SELF): Move to here.
15216         (PREDICATE_CODES): Delete.
15217         * config/rs6000/rs6000-protos.h: Delete predicate functions.
15218         Declare functions no longer static.
15219         * config/rs6000/predicates.md: New.
15220         * config/rs6000/rs6000.md: Include predicates.md
15221
15222 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
15223
15224         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
15225         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
15226         REG_ALWAYS_RETURN.
15227         * cfgrtl.c (need_fake_edge_p): Likewise.
15228         * combine.c (distribute_notes): Likewise.
15229         * emit-rtl.c (try_split): Likewise.
15230         * recog.c (peephole2_opimize): Likewise.
15231         * reg-notes.def (ALWAYS_RETURN): Remove.
15232         * rtl.h (LCT_ALWAYS_RETURN): Remove.
15233         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
15234         * tree.h (ECF_ALWAYS_RETURN): Remove.
15235
15236 2005-02-28  Roger Sayle  <roger@eyesopen.com>
15237
15238         PR middle-end/19874
15239         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
15240         between different machine modes is never a "useless" conversion.
15241
15242 2005-02-28  Geert Bosch  <bosch@gnat.com>
15243
15244         PR ada/15977
15245         * doc/contrib.texi: List contributors for Ada front end
15246
15247 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
15248
15249         * simplify-rtx.c (simplify_unary_operation_1,
15250         simplify_const_unary_operation): New, extracted from...
15251         (simplify_unary_operation): ... this one.
15252         (simplify_binary_operation_1,
15253         simplify_const_binary_operation): New, extracted from...
15254         (simplify_binary_operation): ... this one.
15255         * rtl.h (simplify_const_unary_operation,
15256         simplify_const_binary_operation): Add prototypes.
15257
15258 2005-02-28  Julian Brown  <julian@codesourcery.com>
15259
15260         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
15261         building libjava and caused PR regression/20228.
15262
15263 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
15264
15265         PR bootstrap/17383
15266         * Makefile.in (host_subdir): New.
15267         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
15268         * configure: Regenerate.
15269
15270 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
15271
15272         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
15273         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
15274         installation directory first.
15275
15276 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
15277
15278         PR target/19065.
15279         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
15280         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
15281         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
15282         * config/cris/cris.md: Tweak comments referring to Q.
15283         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
15284         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
15285         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
15286         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
15287         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
15288         Insert spaces in constraints to align alternatives vertically for
15289         readability.
15290         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
15291         operand 1: "M".
15292
15293 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15294
15295         PR rtl-optimization/17728
15296         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
15297         operand 0 from general_operand to move_dest_operand.
15298
15299 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15300
15301         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
15302         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
15303         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
15304         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
15305
15306 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
15307
15308         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
15309         * configure: Regenerate.
15310         * libada-mk.in: Remove CC; rename
15311         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
15312
15313 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
15314
15315         PR tree-opt/20188
15316         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
15317         for the lhs, also walk over the tree.  Likewise for rhs.
15318
15319 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
15320
15321         * tree-ssa-dom.c (simple_iv_increment_p): New function.
15322         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
15323         Do not propagate value of iv before increment over the increment.
15324
15325 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
15326
15327         * c-parser.c: New file.
15328         * c-parse.in: Remove.
15329         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
15330         Remove.
15331         (c-parser.o): Add dependencies.
15332         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
15333         maintainer-clean, TAGS): Update.
15334         * c-config-lang.in (gtfiles): Update.
15335         * gengtype-lex.l: Don't handle "@@".
15336         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
15337         objc_build_synchronized, objc_begin_try_stmt,
15338         objc_begin_catch_clause, objc_finish_catch_clause,
15339         objc_build_finally_clause, objc_finish_try_stmt): New.
15340         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
15341         type_seen_p.
15342         (c_parse_init): Update comment.
15343         * c-decl.c (c_init_decl_processing): Update comment.
15344         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
15345         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
15346         new c_declspecs members.
15347
15348 2005-02-25  Julian Brown  <julian@codesourcery.com>
15349
15350         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
15351         from being used for symbols with vague linkage when
15352         HAVE_GAS_COMDAT_GROUP is true.
15353
15354 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
15355
15356         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
15357
15358 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
15359
15360         PR target/19930
15361         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
15362         (LIBGCC2_HAS_DF_MODE): New.
15363         (LIBGCC2_HAS_XF_MODE): New.
15364         (LIBGCC2_HAS_TF_MODE): New.
15365         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
15366         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
15367         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
15368         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
15369         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
15370         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
15371         and add _fixtfdi, _fixunstfdi, _floatditf
15372         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
15373         L_fixunstfdi, L_floatditf.
15374         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
15375         (LIBGCC2_HAS_TF_MODE): Define.
15376
15377 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
15378
15379         PR tree-optimization/20204
15380         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
15381         REWRITE_THIS_STMT markers on PHI nodes.
15382         (rewrite_initialize_block): Likewise.
15383
15384 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
15385
15386         * version.c (version_string): Update to 4.1.
15387
15388 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
15389
15390         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
15391         Clarify that the alternative way doesn't work in GNU C++.
15392
15393 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
15394
15395         PR tree-optimization/19937
15396         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
15397         to the type of the induction variable.
15398
15399 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
15400
15401         PR rtl-optimization/20117
15402         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
15403         the block including noncopyable insn.
15404
15405 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
15406
15407         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
15408         calls to find_reg_note.
15409
15410 2005-02-24  Richard Henderson  <rth@redhat.com>
15411
15412         PR tree-opt/20127
15413         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
15414         the type.
15415
15416 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
15417
15418         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
15419         vector types if to use base reg for misaligned non-word ld/std.
15420
15421 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
15422
15423         PR target/14619
15424         * config/cris/cris.c (cris_target_asm_function_prologue): Create
15425         dwarf2 label manually and put it after, not before the prologue.
15426
15427 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
15428
15429         PR target/19019
15430         * reload.c (operands_match_p): Only increment register number for
15431         SCALAR_INT_MODE_P modes in multiple hard registers.
15432
15433         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
15434         Fix formatting.
15435
15436 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
15437
15438         * ChangeLog.5: Fix log message typo(s).
15439         * ChangeLog.7: Likewise.
15440         * ChangeLog.tree-ssa: Likewise.
15441         * cfgexpand.c: Fix comment typo(s).
15442         * conflict.c: Likewise.
15443         * defaults.h: Likewise.
15444         * dwarf2out.c: Likewise.
15445         * gcse.c: Likewise.
15446         * ggc-page.c: Likewise.
15447         * tree-eh.c: Likewise.
15448         * tree-ssa-dom.c: Likewise.
15449
15450 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
15451
15452         PR target/19019
15453         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
15454         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
15455         if SHARED is defined.
15456
15457         PR target/20196
15458         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
15459         allow splitting only if operands 0 and 3 don't overlap.
15460
15461 2005-02-24  Richard Henderson  <rth@redhat.com>
15462
15463         PR middle-end/19953
15464         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
15465         (fold_builtin_1): Call them.
15466         * fold-const.c (fold_complex_mult_parts): Split out from ...
15467         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
15468         (fold_complex_div_parts, fold_complex_div): New.
15469         (fold): Use them.
15470         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
15471
15472 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15473
15474         * tree-ssa-ccp.c (visit_assignment): Verify that result of
15475         VIEW_CONVERT_EXPR is_gimple_min_invariant.
15476
15477         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
15478         (print_node): Likewise.
15479         Print TYPE_SIZES_GIMPLIFIED.
15480
15481 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
15482
15483         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
15484         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
15485         operands as commutative in constraints.
15486
15487 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
15488
15489         * tree-into-ssa.c: Re-organize internal functions.
15490
15491 2005-02-24  Richard Henderson  <rth@redhat.com>
15492
15493         PR middle-end/18902
15494         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
15495         for c99.
15496         * common.opt (fcx-limited-range): New.
15497         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
15498         * toplev.c (flag_complex_method): Initialize to 1.
15499         (process_options): Set flag_complex_method to 0 if
15500         flag_cx_limited_range.
15501         * doc/invoke.texi (-fcx-limited-range): New.
15502
15503 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
15504
15505         * cse.c (delete_trivially_dead_insns): Speed up by using
15506         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
15507         prev_real_insn.
15508
15509 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
15510
15511         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
15512         functions when -mid-shared-library is being used.
15513
15514 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
15515
15516         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
15517         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
15518         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
15519         * system.h: Poison LINK_LIBGCC_SPECIAL.
15520
15521 2005-02-23  James E Wilson  <wilson@specifixinc.com>
15522
15523         * gengtype.c (note_insn_name): Make 1 element larger.
15524
15525 2005-02-23  Roger Sayle  <roger@eyesopen.com>
15526
15527         PR target/20018
15528         PR rtl-optimization/20097
15529         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
15530         BImode SUBREGs of SImode registers which confuse the ia64 backend.
15531
15532 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
15533
15534         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
15535         * t-aix52 (SHLIB_INSTALL): Same.
15536
15537 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
15538
15539         * genpreds.c: Update copyright.
15540
15541 2005-02-23  Michael Beach  <michaelb@ieee.org>
15542
15543         PR target/20159
15544         * config/sparc/t-elf (startup files): Assemble with CPP.
15545
15546 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
15547
15548         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
15549         (write_predicate_expr): Likewise.
15550
15551 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
15552
15553         PR tree-optimization/20100
15554         PR tree-optimization/20115
15555         * tree-optimize.c (init_tree_optimization_passes): Remove
15556         pass_maybe_create_global_var.
15557         * tree-pass.h (pass_maybe_create_global_var): Remove.
15558         * tree-ssa-alias.c (aliases_computed_p): Declare.
15559         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
15560         (count_calls_and_maybe_create_global_var): Remove.
15561         (pass_maybe_create_global_var): Remove.
15562         (init_alias_info): Do not declare aliases_computed_p.
15563         (maybe_create_global_var): If the function contains no
15564         call-clobbered variables and a mix of pure/const and regular
15565         function calls, create .GLOBAL_VAR.
15566         Mark all call-clobbered variables for renaming.
15567         (merge_pointed_to_info): Update comment.
15568         (add_pointed_to_var): Likewise.
15569         (is_escape_site): Likewise.
15570         Accept struct alias_info * instead of size_t *.
15571         Update all users.
15572         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
15573         as necessary.
15574         * tree-ssa-operands.c (get_call_expr_operands): If
15575         ALIASES_COMPUTED_P is false, do not add call-clobbering
15576         operands.
15577         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
15578         (delete_tree_ssa): Likewise.
15579
15580 2005-02-22  James E Wilson  <wilson@specifixinc.com>
15581
15582         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
15583         (do_compile): Do call it here.
15584
15585 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
15586
15587         PR rtl-optimization/20017.
15588         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
15589         rest_of_handle_cse2, rest_of_handle_gcse): Call
15590         delete_dead_jumptables immediately before calling cleanup_cfg.
15591
15592 2005-02-22  Devang Patel  <dpatel@apple.com>
15593
15594         PR 19952
15595         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
15596         all labels
15597
15598 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
15599
15600         * config/rs6000/aix.h (WINT_TYPE): Define.
15601
15602 2005-02-22  Stan Shebs  <shebs@apple.com>
15603
15604         * config/rs6000/rs6000.c (rs6000_override_options): Default to
15605         natural alignment for 64-bit Darwin.
15606         (rs6000_parse_alignment_option): Warn about uses of -malign-power
15607         on 64-bit Darwin.
15608         * doc/invoke.texi: Document this.
15609
15610 2005-02-22  DJ Delorie  <dj@redhat.com>
15611
15612         * c-common.c (c_common_type_for_mode): Pass the mode's precision
15613         to make_[un]signed_type, not the mode itself.
15614
15615 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
15616
15617         * cfg.c (cached_make_edge): Call make_edge if edge cache is
15618         not available.  Use tail calls wherever possible.
15619         (make_edge): Call unchecked_make_edge to create an edge.
15620
15621         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
15622         (coalesce_ssa_name): Don't check for
15623         SSANORM_USE_COALESCE_LIST.
15624         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
15625
15626 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
15627
15628         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
15629         (rewrite_into_ssa): ... here.
15630
15631 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
15632
15633         PR tree-optimization/19786
15634         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
15635         tag to another's may-alias bitmap when adding to the other's list.
15636
15637 2005-02-21  DJ Delorie  <dj@redhat.com>
15638
15639         * tree-ssa-loop-ivopts.c (computation_cost): Start register
15640         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
15641         registers in unsupported ways.
15642         * expmed.c (init_expmed): Likewise.
15643
15644 2005-02-21  Stan Cox  <scox@redhat.com>
15645
15646         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
15647
15648 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
15649
15650         * tree-cfg.c (fold_cond_expr_cond): New.
15651         (make_edges): Call fold_cond_expr_cond.
15652         (find_taken_edge): Accept nothing but INTEGER_CST.
15653         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
15654         and 1.
15655         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
15656
15657         * flow.c (delete_dead_jumptables): Speed up by scanning insns
15658         that do not belong to any basic block.
15659
15660 2005-02-21  Jeff Law  <law@redhat.com>
15661
15662         * cfganal.c (find_unreachable_blocks): Manually CSE load of
15663         e->dest.
15664
15665 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
15666
15667         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
15668         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
15669         Adjust their definitions.
15670         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
15671         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
15672
15673         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
15674         genautomata.c, langhooks.c, langhooks.h, system.h,
15675         config/arm/lib1funcs.asm: Update copyright.
15676
15677 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
15678
15679         * dbxout.c (dbxout_function_end): Emit Lscope label always.
15680
15681 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
15682
15683         PR bootstrap/13770
15684         * doc/install.texi: Document --with-gc.
15685
15686 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
15687
15688         * simplify-rtx.c (simplify_unary_operation): Add a missing
15689         "break" statement.
15690
15691 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
15692
15693         PR tree-optimization/18663
15694         * tree-ssa-dom.c (extract_range_from_cond): Return 0
15695         if the type has variable bounds.
15696
15697 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
15698
15699         * gcse.c: Remove an obsolete comment.
15700
15701         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
15702
15703 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
15704
15705         * doc/extend.texi (Function Attributes) <Attribute const>: The
15706         attribute "pure" is below this text, not above.
15707
15708 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15709
15710         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
15711         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
15712         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
15713
15714 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
15715
15716         PR 18785
15717         * langhooks.h (struct lang_hooks): Add to_target_charset.
15718         * langhooks.c (lhd_to_target_charset): New function.
15719         * langhooks-def.h: Declare lhd_to_target_charset.
15720         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
15721         (LANG_HOOKS_INITIALIZER): Update.
15722         * c-common.c (c_common_to_target_charset): New function.
15723         * c-common.h: Declare it.
15724         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
15725         c_common_to_target_charset.
15726
15727         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
15728         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
15729         Delete definitions.
15730         * system.h: Poison them.
15731         * doc/tm.texi: Don't discuss them.
15732         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
15733         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
15734         (pp_c_char): Do not attempt to generate letter escapes for
15735         newline, tab, etc.
15736         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
15737         * config/mips/mips.c (mips_output_ascii): Likewise.
15738
15739 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
15740
15741         PR tree-optimization/19951
15742         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
15743         is abnormal.
15744
15745 2005-02-19  Steven Bosscher  <stevenb@suse.de>
15746
15747         PR middle-end/19698
15748         * function.h (struct function): New field `max_loop_depth'.
15749         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
15750         (flow_loops_find): Reset the max loop depth count before finding loops.
15751         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
15752         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
15753         (calculate_global_regs_live): Make sure the loop will terminate
15754         when the initial sets are not empty.
15755
15756 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
15757
15758         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
15759         object inside.
15760         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
15761
15762 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
15763
15764         PR other/19525
15765         * doc/invoke.texi: Remove documentation of %M spec.
15766         * gcc.c: Likewise.
15767         (init_spec): Remove %M suffix from -lgcc_s.
15768         (do_spec_1): Remove 'M' case.
15769         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
15770         to put shared libraries in the multilib directory.  Remove the
15771         shlib_so_soname substitution variable.  Don't add a multilib encoding
15772         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
15773         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
15774         SHLIB_INSTALL as well as SHLIB_LINK.
15775         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
15776         (SHLIB_NAME): Delete.
15777         (SHLIB_DIR): New macro.
15778         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
15779         (SHLIB_INSTALL): Adjust accordingly.
15780         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
15781         * config/t-slibgcc-sld: Likewise.
15782         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
15783         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
15784         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
15785         in $(SHLIB_DIR).
15786         (SHLIBUNWIND_INSTALL): Adjust accordingly.
15787         * config/i386/t-nwld (SHLIB_SONAME): Delete.
15788         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
15789         Use @shlib_base_name@ instead of @shlib_so_name@.
15790         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
15791         and @shlib_base_name@.so in @multilib_dir@.
15792         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
15793         to the install path.
15794         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
15795         (SHLIB_LINK): Remove previous workaround.
15796         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
15797         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
15798         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
15799         the install path.
15800         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
15801         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
15802         (SHLIB_INSTALL): Adjust accordingly.
15803         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
15804         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
15805         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
15806         config/t-slibgcc-elf-ver.
15807
15808 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
15809             Jakub Jelinek  <jakub@redhat.com>
15810
15811         PR tree-optimization/19828
15812         * tree-ssa-loop-im.c: Add a TODO comment.
15813         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
15814         without side-effects.
15815
15816 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
15817
15818         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
15819         call fold_convert.
15820
15821 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
15822
15823         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
15824         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
15825         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
15826         functions.
15827         (ia64_reorg): Delete fixup_errata call.
15828         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
15829         (TARGET_SWITCHES): Delete -mb-step entry.
15830
15831 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
15832
15833         PR c/20043
15834         * c-typeck.c (composite_type): Handle quals in transparent unions.
15835         (type_lists_compatible_p): Likewise.
15836
15837 2005-02-18  Stan Shebs  <shebs@apple.com>
15838
15839         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
15840         expressions in the .literal8 section.
15841
15842 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
15843
15844         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
15845
15846 2005-02-18  Roger Sayle  <roger@eyesopen.com>
15847
15848         * fold-const.c (constant_boolean_node): Always create values of the
15849         specified type, don't bother calling truthvalue_conversion.
15850
15851 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
15852
15853         * except.c (output_function_exception_table): Call
15854         assemble_external_libcall (eh_personality_libfunc).
15855
15856 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
15857
15858         PR target/19886
15859         * config/ia64/ia64.h (struct machine_function): Add state_num.
15860         * config/ia64/ia64.c (process_epilogue,
15861         process_for_unwind_directive): Use new unwind state numbers each
15862         time rather than state 1.
15863
15864 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
15865
15866         PR target/20054
15867         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
15868         before the "*llgt_didi" pattern.
15869
15870 2005-02-18  Jason Merrill  <jason@redhat.com>
15871
15872         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
15873
15874 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
15875
15876         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
15877         (div0): Use it in place of ARM_FUNC_ALIAS.
15878         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
15879
15880 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
15881
15882         PR middle-end/20030
15883         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
15884         access, the lower bound of the array type if it exists.
15885
15886 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
15887
15888         PR c++/20008
15889         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
15890         cases that are out-of-range for the index type.
15891
15892 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
15893
15894         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
15895         (estimate_case_costs): Don't call convert.
15896         * expmed.c (expand_shift): Likewise.
15897         (make_tree): Call fold_convert instead of convert.
15898
15899 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
15900
15901         PR c++/19813
15902         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
15903         that ref to be marked MEM_READONLY_P doesn't have base that needs
15904         constructing.
15905
15906 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
15907
15908         * genautomata.c (output_get_cpu_unit_code_func,
15909         output_cpu_unit_reservation_p): Don't generate old-style function
15910         definitions.
15911
15912 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
15913
15914         PR c++/20023
15915         PR tree-optimization/20009
15916         * convert.c (convert_to_integer): Revert 2005-02-16 change.
15917
15918         PR tree-optimization/18947
15919         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
15920         inline, remove all nodes that are inlined into the extern inline
15921         being redefined.
15922
15923 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
15924
15925         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
15926         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
15927         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
15928         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
15929         Update copyright.
15930
15931 2005-02-17  Roger Sayle  <roger@eyesopen.com>
15932
15933         PR tree-optimization/19917
15934         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
15935         to be potentially trapping.
15936
15937 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
15938
15939         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
15940
15941 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15942
15943         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
15944         tem becomes a local variable which is set to the value of the
15945         back end defined INITIAL_FRAME_ADDRESS macro.
15946         (expand_builtin_frame_address): Omit the base parameter to
15947         expand_builtin_return_addr.
15948         (expand_builtin_profile_func): Likewise.
15949         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
15950         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
15951         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
15952
15953 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
15954
15955         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
15956         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
15957         * config/frv/frv.c (frv_function_epilogue): Likewise.
15958
15959 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
15960
15961         * lambda-code (perfect_nestify): Remove mark/unmark
15962         for rewriting hack.
15963         * tree-loop-linear.c (linear_transform_loops): Add
15964         rewrite_into_ssa call so that ssa is correct for
15965         rewriting into loop closed.
15966
15967 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
15968
15969         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
15970         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
15971         BITMAP_FREE.
15972         * bt-load.c (btr_def_live_range, combine_btr_defs,
15973         migrate_btr_def, migrate_btr_defs): Likewise.
15974         * cfgcleanup.c (thread_jump): Likewise.
15975         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
15976         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
15977         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
15978         df_rd_local_compute, df_reg_info_compute): Likewise.
15979         * dominance.c (init_dom_info, free_dom_info): Likewise.
15980         * flow.c (init_propagate_block_info,
15981         free_propagate_block_info): Likewise.
15982         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
15983         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
15984         modify_reg_pav): Likewise.
15985         * loop-invariant.c (find_defs, find_invariant_insn,
15986         find_invariants, free_inv_motion_data): Likewise.
15987         * predict.c (tree_predict_by_opcode,
15988         estimate_bb_frequencies): Likewise.
15989         * stmt.c (expand_case): Likewise.
15990         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
15991         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
15992         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
15993         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
15994         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
15995         rewrite_ssa_into_ssa): Likewise.
15996         * tree-optimize.c (tree_rest_of_compilation): Likewise.
15997         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
15998         analyze_edges_for_bb, perform_edge_inserts): Likewise.
15999         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
16000         * tree-sra.c (tree_sra): Likewise.
16001         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
16002         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
16003         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
16004         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
16005         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
16006         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
16007         Likewise.
16008         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
16009         calculate_live_on_entry, calculate_live_on_exit,
16010         build_tree_conflict_graph): Likewise.
16011         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
16012         record_important_candidates, set_use_iv_cost, find_depends,
16013         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
16014         tree_ssa_iv_optimize_finalize): Likewise.
16015         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
16016         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
16017         tree_duplicate_loop_to_header_edge): Likewise.
16018         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
16019         * tree-ssa.c (verify_flow_insensitive_alias_info,
16020         verify_name_tags, verify_ssa, init_tree_ssa,
16021         delete_tree_ssa): Likewise.
16022         * tree-ssanames.c (marked_ssa_names, init_ssanames,
16023         fini_ssanames): Likewise.
16024         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
16025
16026 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
16027
16028         * config/rs6000/t-rtems: Completely reworked.
16029
16030 2005-02-17  Ira Rosen  <irar@il.ibm.com>
16031
16032         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
16033
16034 2005-02-17  Ira Rosen  <irar@il.ibm.com>
16035
16036         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
16037         POINTER_TYPE_P when checking that type is a pointer.
16038         (vect_get_memtag): Remove.
16039         (vect_address_analysis): Use POINTER_TYPE_P. Call
16040         vect_object_analysis with dummy parameter for memtag.
16041         (vect_object_analysis): Extract memtag (functionality that
16042         used to be in vect_get_memtag and moved here). Fix printings.
16043         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
16044         with correct parameters. Remove call to vect_get_memtag.
16045
16046 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
16047
16048         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
16049         (tree-vectorizer.o): Added missing dependencies.
16050
16051         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
16052         decleration.
16053         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
16054         declaration in tree-vectorizer.c, now has an extern declaration in
16055         tree-vectorizer.h).
16056         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
16057         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
16058         get_vectype_for_scalar_type, vect_is_simple_use,
16059         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
16060         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
16061         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
16062         vectorizable_store, vectorizable_operation, vectorizable_assignment,
16063         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
16064         find_loop_location): Likewise.
16065
16066         * tree-vectorizer.c (langhooks.h): #include removed.
16067         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
16068         moved to tree-vectorized.h.
16069         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
16070         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
16071         get_vectype_for_scalar_type, vect_is_simple_use,
16072         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
16073         vect_supportable_dr_alignment, new_loop_vec_info,
16074         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
16075         vect_set_verbosity_level, find_loop_location): Likewise.
16076
16077         (vect_analyze_loop): Function externalized. Declaration moved to
16078         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
16079         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
16080         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
16081         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
16082         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
16083         vect_enhance_data_refs_alignment, vect_analyze_operations,
16084         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
16085         vect_stmt_relevant_p, vect_get_loop_niters,
16086         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
16087         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
16088         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
16089         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
16090         vect_get_memtag): Likewise.
16091
16092         (vectorizable_load): Function externalized. Declaration moved to
16093         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
16094         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
16095         vect_transform_loop): Likewise.
16096         (vect_transform_stmt): Moved to tree-vect-transform.c.
16097         (vect_align_data_ref, vect_create_destination_var,
16098         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
16099         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
16100         vect_get_vec_def_for_operand, vect_init_vector,
16101         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
16102         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
16103         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
16104         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
16105         vect_do_peeling_for_loop_bound): Likewise.
16106
16107         * tree-vect-analyze.c: New file.
16108         * tree-vect-transform.c: New file.
16109
16110 2005-02-17  Jason Merrill  <jason@redhat.com>
16111
16112         PR mudflap/19319, c++/19317
16113         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
16114         slot explicit.
16115
16116 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
16117
16118         * doc/install.texi (Specific): Update link for Darwin-specific
16119         tool binary site.
16120
16121 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
16122
16123         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
16124         constant_boolean_node.
16125
16126 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
16127
16128         PR target/19019
16129         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
16130         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
16131
16132 2005-02-16  Richard Henderson  <rth@redhat.com>
16133
16134         PR 19920
16135         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
16136         with W_TYPE_SIZE.
16137         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
16138         replace uses with Wtype_MAXp1_F.
16139         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
16140         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
16141         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
16142         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
16143         and HAVE_TFMODE as appropriate.
16144         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
16145         (__floatdisf): Likewise.
16146         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
16147         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
16148         (Wtype_MAXp1_F): New.
16149         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
16150         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
16151
16152 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
16153
16154         * PR target/19162
16155         * arm.c (arm_apply_result_size): New function.
16156         * arm.h (APPLY_RESULT_SIZE): Define.
16157         * arm-protos.h (arm_apply_result_size): Add prototype.
16158         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
16159         (movxf): New expand.
16160         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
16161         (call_value_symbol): Remove predicate for operand 0.
16162         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
16163         (untyped_call): Rework to correclty return values for any type.
16164         (untyped_return): New expand.
16165         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
16166
16167 2005-02-16  Stan Shebs  <shebs@apple.com>
16168
16169         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
16170         * config/rs6000/t-darwin8: New, for 64-bit multilib.
16171
16172 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
16173
16174         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
16175         configure settings on Solaris 7 and later.
16176
16177 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
16178
16179         PR tree-optimization/19865
16180         * tree-optimize.c (init_tree_optimization_passes): Run
16181         pass_may_alias after pass_sra.
16182
16183 2005-02-16  Richard Henderson  <rth@redhat.com>
16184             Stuart Hastings  <stuart@apple.com>
16185
16186         PR debug/19521
16187         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
16188         Do nothing if debug info suppressed for this function.
16189         (dbxout_begin_function): Early exit if debug info suppressed for
16190         this function.
16191
16192 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
16193
16194         PR target/20007
16195         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
16196         find_basic_blocks.
16197         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
16198
16199         PR tree-optimization/19967
16200         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
16201         expand_builtin_strchr, expand_builtin_strrchr): Take a new
16202         argument TYPE.  Adjust calls to fold_builtin_XXX.
16203         (expand_builtin, fold_builtin_1): Adjust calls to
16204         expand_builtin_XXX.
16205         (fold_builtin_strchr, fold_builtin_strpbrk,
16206         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
16207         result to a requested type TYPE.
16208
16209 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
16210
16211         PR middle-end/19857
16212         * fold-const.c (fold): Don't optimize (T)(x & cst) to
16213         (T)x & (T)cst if (T)cst overflows.
16214         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
16215         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
16216
16217 2005-02-15  Jeff Law  <law@redhat.com>
16218
16219         * gcse.c (blocks_with_calls): New bitmap.
16220         (alloc_gcse_mem): Allocate it.
16221         (free_gcse_mem): Free it.
16222         (clear_modifY_mem_tables): Clear it.
16223         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
16224         when we encounter CALL_INSNs.
16225         (compute_transp, case MEM): Handle blocks with calls separate
16226         from blocks without calls.  Use bitmap iterators rather than
16227         FOR_EACH_BB.
16228
16229 2005-02-15  Peter O'Gorman  <peter@pogma.com>
16230
16231         PR bootstrap/18810
16232         * mklibgcc.in (vis_hide): Use a temporary object file, not
16233         -o /dev/null.
16234
16235 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
16236
16237         PR target/19924
16238         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
16239         access optimization.
16240
16241 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
16242             Alan Modra  <amodra@bigpond.net.au>
16243
16244         PR target/19019
16245         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
16246         (_xlqsub): Rename to __gcc_qsub.
16247         (_xlqmul): Rename to __gcc_qmul.
16248         (_xlqdiv): Rename to __gcc_qdiv.
16249         Provide versioned symbol aliases with old names.
16250         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
16251         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
16252         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
16253         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
16254         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
16255
16256 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
16257
16258         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
16259         Fold ~(A - 1) and ~(A + -1) to -A.
16260
16261 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
16262
16263         PR pch/14940
16264         PR target/19300
16265         * config/host-linux.c (linux_gt_pch_use_address): Copy from
16266         config/pa/pa-host.c:pa_gt_pch_use_address.
16267
16268 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
16269
16270         * tree-vn.c (get_value_handle): Make sure that given an
16271         is_gimple_min_invariant expression, we always return it.
16272
16273 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
16274
16275         * passes.c (rest_of_handle_gcse): Fix a comment.
16276
16277 2005-02-15  Jeff Law  <law@redhat.com>
16278
16279         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
16280         bitmap.
16281         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
16282         (canon_list_insert, record_last_mem_set_info): Similarly.
16283         (clear_modify_mem_tables): Similarly.
16284
16285 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
16286
16287         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
16288         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
16289         config/mips/mips.md, config/rs6000/aix.h,
16290         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
16291
16292 2005-02-15  Richard Henderson  <rth@redhat.com>
16293
16294         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
16295         call to be best_edge.
16296
16297 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
16298
16299         * basic-block.h: Adjust the prototype for find_basic_blocks.
16300         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
16301         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
16302         find_basic_blocks.
16303
16304         * flow.c (recompute_reg_usage): Remove all arguments.
16305         * passes.c (rest_of_compilation): Adjust the call to
16306         recompute_reg_usage.
16307         * rtl.h: Adjust the prototype for recompute_reg_usage.
16308
16309 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
16310
16311         * tree-dump.c (dump_files): Update to reflect new member
16312         of dump_file_info.
16313         (dump_register): Add new argument.
16314         Set glob name.
16315         (dump_switch_p_1): Check against glob name if doglob was passed.
16316         (dump_switch_p): Check against regular first, then glob if
16317         we didn't have any hits on the dump name.
16318         * tree-optimize.c (register_one_dump_file):
16319         Pass in glob name as well.
16320         * tree-pass.h (struct dump_file_info): Add glob
16321         member.
16322
16323 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
16324
16325         PR preprocessor/16323
16326         * doc/invoke.texi: Document that -Wendif-labels is on by default.
16327
16328 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
16329
16330         PR target/19019
16331         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
16332         (trunctfdf2_internal1): New.
16333         (trunctfdf2_internal2): Renamed from trunctfdf2.
16334
16335 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
16336
16337         PR tree-optimization/19853
16338         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
16339
16340 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
16341
16342         * passes.c (rest_of_handle_loop_optimize): Remove calls to
16343         delete_dead_jumptables and cleanup_cfg.
16344
16345 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
16346
16347         * reload.c (find_reloads): Swap address_reloaded flags when
16348         swapping commutative operands.
16349
16350 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
16351
16352         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
16353         Use standard_iv_increment_position for computing the bsi position
16354         for create_iv.
16355         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
16356         the bsi position.
16357
16358 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
16359
16360         PR target/17428
16361         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
16362         life range of hard registers.
16363         * value-prof.c (insn_prefetch_values_to_profile): Only
16364         scan normal insns.
16365
16366         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
16367         profile in libcalls.
16368
16369 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
16370
16371         * bitmap.h (bitmap_and_compl_into): Return bool.
16372         * bitmap.c (bitmap_and_compl_into): Return changed flag.
16373
16374 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
16375
16376         PR tree-optimization/19944
16377         * fold-const.c (fold): Re-add ABS_EXPR folding.
16378
16379 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
16380
16381         PR target/19019
16382         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
16383         {TARGET,MASK}_XL_COMPAT.
16384         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
16385         MASK_XL_COMPAT.
16386         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
16387         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
16388         TARGET_XL_COMPAT.
16389         (rs6000_arg_partial_bytes): Same.
16390         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
16391         and XL compatibility enabled.
16392         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
16393         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
16394         test to final condition.
16395         (cmptf_internal2): New.
16396         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
16397         xl-compat.  Add TFmode information to description.
16398
16399 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
16400
16401         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
16402
16403 2005-02-13  Jason Merrill  <jason@redhat.com>
16404
16405         PR c++/16405
16406         * fold-const.c (fold_indirect_ref_1): Split out from...
16407         (build_fold_indirect_ref): Here.
16408         (fold_indirect_ref): New fn.
16409         * tree.h: Declare it.
16410         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
16411         (gimplify_modify_expr_rhs): Likewise.
16412         (gimplify_expr): Likewise.
16413
16414 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
16415
16416         PR tree-optimization/14303
16417         PR tree-optimization/15784
16418         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
16419         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
16420         ABS_EXPR<x> != 0 to x != 0.
16421
16422 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
16423
16424         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
16425         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
16426         spelling conventions.
16427
16428         * passes.c (rest_of_handle_gcse): Don't run cse_main and
16429         delete_trivially_dead_insns too many times.
16430
16431         * passes.c (rest_of_handle_gcse): Remove dead assignments to
16432         tem and tem2.
16433
16434 2005-02-12  Ira Rosen  <irar@il.ibm.com>
16435
16436         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
16437         (vect_is_simple_iv_evolution): Remove redundant parameter
16438         and step check.
16439         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
16440         without last parameter.
16441         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
16442         Return pointer step. Call vect_is_simple_iv_evolution without
16443         last parameter. Check only that the step is multiple of size
16444         type. Remove stmt_vinfo updates.
16445         (vect_get_memtag_and_dr): Remove.
16446         (vect_get_memtag): New function.
16447         (vect_address_analysis): New function.
16448         (vect_object_analysis): New function.
16449         (vect_analyze_data_refs): Call vect_object_analysis and
16450         vect_get_memtag. Update stmt_vinfo fields.
16451
16452 2005-02-12  Ira Rosen  <irar@il.ibm.com>
16453
16454         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
16455         exist and are objects. Remove checks for pointer.
16456         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
16457         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
16458         (vect_create_data_ref_ptr): Likewise.
16459         (vect_base_addr_differ_p): New function.
16460         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
16461         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
16462         Don't set the DR_BASE_NAME field of data-ref.
16463         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
16464
16465 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
16466
16467         * optabs.h (enum optab_index): Add new OTI_ldexp.
16468         (ldexp_optab): Define corresponding macro.
16469         * optabs.c (init_optabs): Initialize ldexp_optab.
16470         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
16471         patterns.
16472         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
16473         using ldexp_optab.
16474         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
16475         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
16476
16477         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
16478         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
16479         intrinsics.
16480
16481 2005-02-12  Ira Rosen  <irar@il.ibm.com>
16482
16483         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
16484         to base_address.
16485         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
16486         stmt_vec_info.
16487         (vect_get_base_and_offset): Always return an address.
16488         (vect_create_addr_base_for_vector_ref): Remove treatment for
16489         different data reference types.
16490         (vect_compute_data_ref_alignment): Rename base to base_address in
16491         stmt_vec_info. Get the object in order to force its alignment.
16492         (vect_get_memtag_and_dr): Rename base to base_address in
16493         stmt_vec_info. Extract the object for memtag analysis.
16494
16495 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
16496
16497         PR regression/19898.
16498         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
16499         changes cc_status, use apply modified_in_p to part of cc_status
16500         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
16501         body.
16502
16503 2005-02-11  Richard Henderson  <rth@redhat.com>
16504
16505         * tree-complex.c (expand_complex_libcall): New.
16506         (expand_complex_multiplication): Use it for c99 compliance.
16507         (expand_complex_division): Likewise.
16508         * fold-const.c (fold_complex_add, fold_complex_mult): New.
16509         (fold): Call them.
16510         * builtins.c (built_in_names): Remove const.
16511         * tree.c (build_common_builtin_nodes): Build complex arithmetic
16512         builtins.
16513         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
16514         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
16515         (built_in_names): Remove const.
16516         * c-common.c (c_common_type_for_mode): Handle complex modes.
16517         * flags.h, toplev.c (flag_complex_method): Rename from
16518         flag_complex_divide_method.
16519         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
16520         __mulsc3, __muldc3, __mulxc3, __multc3): New.
16521         * libgcc2.h: Declare them.
16522         * libgcc-std.ver: Export them.
16523         * mklibgcc.in (lib2funcs): Build them.
16524
16525 2005-02-11  Steven Bosscher  <stevenb@suse.de>
16526
16527         PR tree-optimization/19876
16528         Partially revert my change from 2005-01-14
16529         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
16530         (compute_antic): ...and remove the loop here.
16531
16532 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
16533
16534         PR middle-end/19858
16535         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
16536         is number of inner's bits, avoid creating a BIT_FIELD_REF.
16537
16538         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
16539         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
16540
16541 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
16542
16543         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
16544         offsets for the big-endian 32-bit case.
16545
16546 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
16547
16548         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
16549
16550 2005-02-11  Dale Johannesen  <dalej@apple.com>
16551
16552         * cselib.c (cselib_process_insn):  Clear out regs where
16553         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
16554         * reload.c (find_equiv_reg): Ditto.
16555
16556 2005-02-11  Ian Lance Taylor  <ian@airs.com>
16557
16558         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
16559         with no elements.
16560
16561         * tree.c (build_function_type_list): Work correctly if there are
16562         no arguments.
16563
16564 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
16565
16566         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
16567         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
16568         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
16569         TARGET_ZARCH instead of TARGET_64BIT.
16570
16571 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
16572
16573         * config/rs6000/t-rtems:
16574         (MULTILIB_OPTIONS): Remove mcpu=602.
16575         (MUTLILIB_DIRNAMES): Remove m602.
16576         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
16577         Let mcpu=602 match mcpu=603.
16578         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
16579
16580 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16581
16582         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
16583         signal trampolines.
16584
16585 2005-02-10  David Daney  <ddaney@avtrex.com>
16586
16587         * config/alpha/linux-unwind.h: Add exception clause to copyright.
16588         * config/i386/linux-unwind.h: Likewise.
16589         * config/ia64/linux-unwind.h: Likewise.
16590         * config/mips/linux-unwind.h: Likewise.
16591         * config/pa/linux-unwind.h: Likewise.
16592         * config/rs6000/linux-unwind.h: Likewise.
16593         * config/s390/linux-unwind.h: Likewise.
16594         * config/sh/linux-unwind.h: Likewise.
16595         * config/sparc/linux-unwind.h: Likewise.
16596
16597 2005-02-10  Steven Bosscher  <stevenb@suse.de>
16598
16599         PR tree-optimization/17549
16600         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
16601         TER to replace a DEF with its expression if the DEF and the
16602         rhs of the expression we replace into have the same root
16603         variable.
16604
16605 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
16606
16607         * config/mips/mips.md: Fix the placement of the match_scratch in the
16608         lea64 peephole2.
16609
16610 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
16611
16612         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
16613         Fix comment typos.
16614
16615 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
16616
16617         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
16618         (strip_offset): Handle addresses.
16619         (add_address_candidates): Use strip_offset.
16620         (difference_cost): Reflect strip_offset change.
16621         (force_var_cost, difference_cost): Strip nops.
16622
16623 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
16624
16625         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
16626
16627         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
16628         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
16629         config/cris/cris-protos.h, config/cris/cris.c: Update
16630         copyright.
16631
16632 2005-02-10  Jeff Law  <law@redhat.com>
16633
16634         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
16635         (lookup_avail_expr): Similarly.
16636
16637 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
16638
16639         * builtins.c (fold_builtin_powi): New function.
16640         (fold_builtin_1): Call it.
16641
16642 2005-02-10  Steven Bosscher  <stevenb@suse.de>
16643
16644         PR documentation/19309
16645         * doc/cpp.texi: The __GNUC__ and related predefined macros
16646         are also defined for the "standalone" cpp.
16647         Some non-GCC compilers may also define __GNUC__.
16648
16649 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
16650
16651         PR c/19342
16652         * c-typeck.c (common_type): New routine.  Old common_type renamed
16653         to...
16654         (c_common_type): ...this.
16655         (build_conditional_expr, build_binary_op): Use c_common_type instead
16656         of common_type.
16657
16658 2005-02-10  Steven Bosscher  <stevenb@suse.de>
16659
16660         * doc/md.texi: Replace @samp{length} with @code{length}.
16661
16662 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
16663
16664         PR tree-optimization/18687
16665         * tree-flow.h (find_loop_niter): Declare.
16666         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
16667         Try using scev even for loops with more than one exit.
16668         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
16669         (struct ivopts_data): Added niters field.
16670         (struct nfe_cache_elt): New.
16671         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
16672         functions.
16673         (tree_ssa_iv_optimize_init): Initialize niters cache.
16674         (determine_number_of_iterations): Removed.
16675         (find_induction_variables): Do not call determine_number_of_iterations.
16676         Access niters for single exit through niter_for_single_dom_exit.
16677         (add_iv_outer_candidates): Access niters for single exit through
16678         niter_for_single_dom_exit.
16679         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
16680         number_of_iterations_cond.
16681         (iv_period): New function.
16682         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
16683         (may_replace_final_value): Take data argument.  Use
16684         niter_for_single_dom_exit.
16685         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
16686         (rewrite_use_compare): Pass data to may_eliminate_iv.
16687         (rewrite_use_outer): Pass data to may_replace_final_value.
16688         (free_loop_data): Clean up the niters cache.
16689         (tree_ssa_iv_optimize_finalize): Free the niters cache.
16690         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
16691         * tree-ssa-loop-niter.c (find_loop_niter): New function.
16692         (find_loop_niter_by_eval): Use tree_int_cst_lt.
16693         (num_ending_zeros): Moved to tree.c.
16694         * tree.h (num_ending_zeros): Declare.
16695         * tree.c (num_ending_zeros): Moved from tree.c.
16696
16697 2005-02-09  Richard Henderson  <rth@redhat.com>
16698
16699         * builtins.c (DEF_BUILTIN): Add COND argument.
16700         * tree.h (DEF_BUILTIN): Likewise.
16701         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
16702         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
16703         match.
16704         (DEF_BUILTIN_STUB): New.
16705         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
16706         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
16707         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
16708         * c-common.c (DEF_BUILTIN): Add COND argument.
16709         * tree.c (local_define_builtin): New.
16710         (build_common_builtin_nodes): New.
16711
16712 2005-02-09  Roger Sayle  <roger@eyesopen.com>
16713
16714         * fold-const.c (fold_strip_sign_ops): New function to simplify a
16715         floating point expression ignoring the sign of the result.
16716         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
16717         (fold) <MULT_EXPR>: Use it to simplify x*x.
16718         * tree.h (fold_strip_sign_ops): Prototype here.
16719         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
16720         argument.  Use fold_strip_sign_ops to simplify the first argument.
16721         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
16722         first argument when the second argument is an even integer
16723         constant, but only with -funsafe_math_optimizations.
16724         (fold_builtin_1): Update call to fold_builtin_copysign.
16725
16726 2005-02-09  Ian Lance Taylor  <ian@airs.com>
16727
16728         PR middle-end/19583
16729         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
16730         just check whether EH_FILTER_FAILURE falls through.
16731
16732 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
16733
16734         * gcc/haifa-sched.c (schedule_block): Make queued sched group
16735         insns return to ready list in the next turn.
16736
16737 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
16738
16739         PR middle-end/19402
16740         * builtins.def: New __builtin_powi[lf].
16741         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
16742         (expand_builtin_powi): New function.
16743         (expand_builtin): Dispatch to expand_builtin_powi.
16744         * libgcc2.h: Add prototypes for __builtin_powi[lf].
16745         * libgcc2.c: Add __builtin_powi[lf] implementation.
16746         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
16747         * optabs.h: Add powi_optab.
16748         * optabs.c (init_optabs): Initialize powi_optab.
16749         * doc/extend.texi: Document __builtin_powi[lf].
16750
16751 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
16752
16753         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
16754         exists.
16755
16756 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
16757
16758         PR middle-end/19854
16759         * fold-const.c (try_move_mult_to_index): Remove redundant
16760         type argument.  Create ADDR_EXPR with correct type.
16761         (fold): Update callers of try_move_mult_to_index.  Convert
16762         result to the appropriate type.
16763
16764 2005-02-09  Roger Sayle  <roger@eyesopen.com>
16765
16766         PR target/19597
16767         * config/avr/avr.c (default_rtx_costs): Delete.
16768         (avr_operand_rtx_cost): New function.
16769         (avr_rtx_costs): Completely rewrite.
16770
16771 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
16772
16773         PR target/19806
16774         * config/cris/cris.c (in_code): New variable.
16775         (cris_output_addr_const): Now a static function, a wrapper for
16776         output_addr_const.
16777         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
16778         case from old cris_output_addr_const.
16779         (cris_asm_output_label_ref): Similar for LABEL_REF.
16780         (cris_output_addr_const_extra): Similar for UNSPEC.
16781         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
16782         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
16783         * config/cris/cris-protos.h (cris_output_addr_const): Remove
16784         declaration.
16785         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
16786         (cris_asm_output_label_ref): Declare.
16787
16788 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
16789
16790         PR preprocessor/19801
16791         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
16792         filenames that changed when libcpp was moved to the toplevel.
16793
16794 2005-02-07  Roger Sayle  <roger@eyesopen.com>
16795
16796         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
16797         zero extensions of BImode operands.  Call lowpart_subreg instead
16798         of gen_lowpart_common and gen_lowpart_SUBREG.
16799
16800 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
16801
16802         PR ada/19489
16803         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
16804         * configure.ac: Set cc_for_cross_gnattools.
16805         * configure: Regenerate.
16806
16807 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
16808
16809         PR target/19803
16810         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
16811
16812 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16813
16814         PR debug/19327
16815         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
16816         of nested functions.
16817
16818 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
16819
16820         * doc/extend.texi: Document deprecated extensions allowing
16821         static floating-point members to have initializers and allowing
16822         floating-point literals in integral constant expressions.
16823
16824 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
16825
16826         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
16827         config/darwin7.h, config/mips/mips.c,
16828         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
16829         Update copyright.
16830
16831         * cse.c: Update comments.
16832
16833 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
16834
16835         PR middle-end/19775
16836         * builtins.c (fold_builtin_sqrt): Transform
16837         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
16838         pow(x,y*0.5).
16839
16840 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
16841             Dorit Naishlos  <dorit@il.ibm.com>
16842
16843         * doc/invoke.texi (ftree-vectorizer-verbose): New.
16844         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
16845         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
16846         was added.
16847         * tree.h (vect_set_verbosity_level): New extern function declaration
16848         added.
16849         * tree-vectorizer.h (verbosity_levels): New enum type.
16850         * tree-vectorizer.c (vect_debug_stats): Function removed.
16851         (vect_debug_details): Likewise.
16852         (vect_verbosity_level): Global variable was defined and initialized.
16853         (vect_dump): Global variable definition.
16854         (vect_print_dump_info): New function.
16855         (vect_set_dump_settings): New function.
16856         (vect_set_verbosity_level): New function.
16857         (vectorize_loops): Add call to vect_set_dump_settings.
16858
16859         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
16860         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
16861         (slpeel_tree_peel_loop_to_edge): Likewise.
16862
16863         (vect_analyze_offset_expr): Call to vect_print_dump_info with
16864         appropriate verbosity level instead of call to vect_debug_details
16865         or vect_debug_stats.
16866         (vect_get_base_and_offset):
16867         (vect_create_addr_base_for_vector_ref):
16868         (get_vectype_for_scalar_type):
16869         (vect_create_data_ref_ptr):
16870         (vect_init_vector):
16871         (vect_get_vec_def_for_operand):
16872         (vect_finish_stmt_generation):
16873         (vectorizable_assignment):
16874         (vectorizable_operation):
16875         (vectorizable_store):
16876         (vectorizable_load):
16877         (vect_transform_stmt):
16878         (vect_update_ivs_after_vectorizer):
16879         (vect_do_peeling_for_loop_bound):
16880         (vect_update_inits_of_drs):
16881         (vect_do_peeling_for_alignment):
16882         (vect_transform_loop):
16883         (vect_is_simple_use):
16884         (vect_analyze_operations):
16885         (vect_is_simple_iv_evolution):
16886         (vect_analyze_scalar_cycles):
16887         (vect_analyze_data_ref_dependence):
16888         (vect_analyze_data_ref_dependences):
16889         (vect_compute_data_ref_alignment):
16890         (vect_enhance_data_refs_alignment):
16891         (vect_analyze_data_refs_alignment):
16892         (vect_analyze_data_ref_access):
16893         (vect_analyze_data_ref_accesses):
16894         (vect_analyze_pointer_ref_access):
16895         (vect_get_memtag_and_dr):
16896         (vect_analyze_data_refs):
16897         (vect_mark_relevant):
16898         (vect_stmt_relevant_p):
16899         (vect_mark_stmts_to_be_vectorized):
16900         (vect_can_advance_ivs_p):
16901         (vect_get_loop_niters):
16902         (vect_analyze_loop_form):
16903         (vect_analyze_loop):
16904         (vectorize_loops): Likewise.
16905
16906         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
16907         (vect_update_inits_of_drs):
16908         (vect_do_peeling_for_alignment):
16909         (vect_transform_loop):
16910         (vect_analyze_operations):
16911         (vect_analyze_scalar_cycles):
16912         (vect_analyze_data_ref_dependences):
16913         (vect_analyze_data_refs_alignment):
16914         (vect_analyze_data_ref_accesses):
16915         (vect_analyze_data_refs):
16916         (vect_mark_stmts_to_be_vectorized):
16917         (vect_get_loop_niters):
16918         (vect_analyze_loop_form):
16919         (vect_analyze_loop): Likewise.
16920         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
16921
16922 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
16923
16924         PR bootstrap/19796
16925         Revert:
16926         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
16927         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
16928         either -ffast-math or -funsafe-math-optimizations is in use.
16929
16930         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
16931         * config/mips/irix-csr.c: New file.
16932         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
16933         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
16934         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
16935         executables.
16936
16937 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
16938
16939         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
16940         redundant, incorrect definitions.
16941
16942         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
16943         expand.
16944         ("*tls_indirect_call"): New, reference hard regs directly.
16945         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
16946
16947 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
16948
16949         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
16950         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
16951
16952 2005-02-06  Roger Sayle  <roger@eyesopen.com>
16953
16954         PR rtl-optimization/19800
16955         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
16956         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
16957         gen_lowpart.
16958
16959 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
16960
16961         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
16962
16963 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
16964
16965         PR other/17135
16966         * doc/invoke.texi: Correct documentation of -freorder-functions.
16967
16968 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
16969
16970         PR other/14402
16971         * doc/invoke.texi: Don't mention gccbug.
16972
16973 2005-02-06  Roger Sayle  <roger@eyesopen.com>
16974             Andrew Pinski  <pinskia@physics.uc.edu>
16975             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
16976
16977         * simplify-rtx.c (simplify_relational_operation_1): Simplify
16978         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
16979         into just (zero_extract:SI FOO (const_int 1) BAR).
16980
16981 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
16982
16983         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
16984         macro locally.  Don't give last revision date.  Use GCC version
16985         number from gcc-common.texi.
16986         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
16987         revision date.  Use GCC version number from gcc-common.texi.
16988         Describe being a library as current state rather than as 3.x
16989         history.
16990         * doc/gcc.texi: Remove last update date.
16991         * doc/gccint.texi: Likewise.  Update copyright dates.
16992         * doc/install.texi: Update copyright dates.
16993
16994 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
16995
16996         PR other/7549
16997         * doc/invoke.texi: Mention for each option included in -Wall that
16998         it is included in -Wall.
16999         * doc/gcc.texi: Update copyright and last modification date.
17000
17001 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
17002
17003         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
17004         unnecessary cast to original induction variable increments.
17005
17006 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
17007
17008         PR tree-optimization/18219
17009         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
17010         in distributed form.
17011
17012 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
17013
17014         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
17015         Set bitpos and offset later in the function.  Do nothing if the
17016         target is a register and if the bitfield lies completely outside
17017         that register.
17018         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
17019         here.  Return an uninitialised register if the source value is stored
17020         in a register and the bitfield lies completely outside that register.
17021
17022 2005-02-06  Steven Bosscher  <stevenb@suse.de>
17023
17024         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
17025         not SET_DEST.
17026
17027 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
17028
17029         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
17030
17031 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
17032
17033         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
17034         * config/darwin8.h: New.
17035         * config/darwin7.h: Update comment.
17036
17037 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
17038             Dorit Naishlos  <dorit@il.ibm.com>
17039
17040         * tree-vectorizer.h (LOC): New type.
17041         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
17042         (loop_line_number): New field in struct _loop_vec_info.
17043         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
17044
17045         * tree-vectorizer.c (input.h): Included.
17046         (find_loop_location): New function.
17047         (vect_debug_stats): Argument changed from loop to LOC. Computation of
17048         loop line number removed.
17049         (vect_debug_details): Likewise.
17050         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
17051
17052         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
17053         call to vect_debug_details/stats changed from loop to loop_loc.
17054         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
17055         (slpeel_tree_peel_loop_to_edge): Likewise.
17056
17057         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
17058         changed from NULL to UNKNOWN_LOC.
17059         (vect_get_base_and_offset):
17060         (vect_create_addr_base_for_vector_ref):
17061         (get_vectype_for_scalar_type):
17062         (vect_create_data_ref_ptr):
17063         (vect_init_vector):
17064         (vect_get_vec_def_for_operand):
17065         (vect_finish_stmt_generation):
17066         (vectorizable_assignment):
17067         (vectorizable_operation):
17068         (vectorizable_store):
17069         (vectorizable_load):
17070         (vect_transform_stmt):
17071         (vect_update_ivs_after_vectorizer):
17072         (vect_do_peeling_for_loop_bound):
17073         (vect_do_peeling_for_alignment):
17074         (vect_transform_loop):
17075         (vect_is_simple_use):
17076         (vect_analyze_operations):
17077         (vect_is_simple_iv_evolution):
17078         (vect_analyze_scalar_cycles):
17079         (vect_analyze_data_ref_dependences):
17080         (vect_compute_data_ref_alignment):
17081         (vect_enhance_data_refs_alignment):
17082         (vect_analyze_data_ref_access):
17083         (vect_analyze_data_ref_accesses):
17084         (vect_analyze_pointer_ref_access):
17085         (vect_get_memtag_and_dr):
17086         (vect_analyze_data_refs):
17087         (vect_mark_relevant):
17088         (vect_stmt_relevant_p):
17089         (vect_mark_stmts_to_be_vectorized):
17090         (vect_can_advance_ivs_p):
17091         (vect_get_loop_niters):
17092         (vect_analyze_loop):
17093         (vectorize_loops): Likewise.
17094
17095         (vectorizable_load): Argument in call to vect_debug_details/stats
17096         changed from loop to LOOP_LOC (loop_vinfo).
17097         (vect_transform_loop):
17098         (vect_analyze_operations):
17099         (vect_analyze_scalar_cycles):
17100         (vect_analyze_data_ref_dependence):
17101         (vect_enhance_data_refs_alignment):
17102         (vect_analyze_data_ref_accesses):
17103         (vect_analyze_pointer_ref_access):
17104         (vect_analyze_data_refs):
17105         (vect_analyze_loop): Likewise.
17106
17107         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
17108         changed from loop to loop_loc.
17109
17110         (vect_enhance_data_refs_alignment): Removed unused variable loop.
17111
17112 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
17113             Dorit Naishlos  <dorit@il.ibm.com>
17114
17115         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
17116         declaration added.
17117         (vect_analyze_data_ref_dependences): Likewise.
17118
17119         (vect_is_simple_use): Argument changed from loop structure to
17120         loop_vect_info structure.
17121         (vect_can_advance_ivs_p): Likewise.
17122         (vect_create_index_for_vector_ref): Likewise.
17123         (vect_update_ivs_after_vectorizer): Likewise.
17124         (new_stmt_vec_info): Likewise.
17125
17126         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
17127         changed from loop to loop_vinfo.
17128         (vect_create_data_ref_ptr): First argument in call to
17129         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
17130         (vectorizable_assignment): Second argument in call to vect_is_simple_use
17131         was changed from loop to loop_vinfo.
17132         (vectorizable_operation): Likewise.
17133         (vectorizable_store): Likewise.
17134         (vect_mark_stmts_to_be_vectorized): Likewise.
17135         (vect_do_peeling_for_loop_bound): First argument in call to
17136         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
17137         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
17138         was changed from loop to loop_vinfo.
17139         (vect_analyze_data_ref_dependences): Third argument in call to
17140         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
17141
17142         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
17143         (vect_create_data_ref_ptr): Likewise.
17144         (vect_init_vector): Likewise.
17145         (vect_get_vec_def_for_operand): Likewise.
17146         (vectorizable_assignment): Likewise.
17147         (vectorizable_operation): Likewise.
17148         (vectorizable_store): Likewise.
17149         (vectorizable_load): Likewise.
17150         (vect_update_ivs_after_vectorizer): Likewise.
17151         (vect_is_simple_use): Likewise.
17152         (vect_analyze_data_ref_dependence): Likewise.
17153         (vect_analyze_pointer_ref_access): Likewise.
17154         (vect_can_advance_ivs_p): Likewise.
17155
17156         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
17157         before _stmt_vec_info.
17158         (_stmt_vec_info): Loop field replaced by loop_vec_info.
17159         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
17160         (new_stmt_vec_info): Argument changed from loop structure to
17161         loop_vect_info structure
17162
17163         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
17164         (vect_analyze_offset_expr): Avoid 80 columns overflow.
17165         (vect_create_addr_base_for_vector_ref): Likewise.
17166         (vect_analyze_pointer_ref_access): Likewise.
17167
17168 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
17169
17170         PR tree-opt/19768
17171         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
17172         phi flag if the phi is abnormal.
17173
17174 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
17175
17176         PR tree-opt/19736
17177         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
17178         information for the new statement.
17179
17180 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
17181
17182         PR driver/19117
17183         * gcc.c (main): Include the target in -v output.
17184
17185 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
17186
17187         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
17188         Do not drop the extend if we'd have to add a paradoxical subreg
17189         later.  Include optabs.h and insn-codes.h.
17190         * Makefile.in (combine.o): Depend on $(OPTABS_H).
17191
17192 2005-02-02  Roger Sayle  <roger@eyesopen.com>
17193
17194         PR middle-end/19405
17195         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
17196         * fold-const.c (const_binop): Avoid constant folding floating
17197         point operations in modes that use composite representations.
17198         * simplify-rtx.c (simplify_binary_operation): Likewise.
17199
17200 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
17201
17202         * config/rs6000/altivec.md (altivec_dst): Make the first operand
17203         a REG, not a MEM.
17204         (altivec_dstt): Likewise.
17205         (altivec_dstst): Likewise.
17206         (altivec_dststt): Likewise.
17207         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
17208         of first operand.
17209
17210 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
17211
17212         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
17213         EXPR_LOCUS from orig_cond to the new cond_stmt.
17214         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
17215         the new vec_stmt.
17216
17217 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
17218
17219         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
17220         standard_iv_increment_position. Remove call to bsi_next
17221         (no need to bump the iterator anymore).
17222         (vect_create_index_for_vector_ref): Call
17223         standard_iv_increment_position. Remove second function argument.
17224         (vect_finish_stmt_generation): Remove call to bsi_next
17225         (no need to bump the iterator anymore).
17226         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
17227         to vect_create_index_for_vector_ref.
17228
17229 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
17230
17231         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
17232         phis are used out of the loop.
17233
17234 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
17235
17236         PR c/17807
17237         * c-decl.c (undef_nested_function): New variable.
17238         (pop_scope): Diagnose undefined nested functions.
17239         (finish_function): Don't attempt cgraph processing or genericizing
17240         if current top-level function contained an undefined nested
17241         function.  Reset undef_nested_function at the end of a top-level
17242         function.
17243
17244 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
17245
17246         * tree.c (build_int_cst_type): Take sign of the value into account
17247         when deciding whether sign extend the value.
17248
17249 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
17250
17251         PR c/18502
17252         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
17253         (cpp_options, cc1_options): Change %{std*&ansi} to
17254         %{std*&ansi&trigraphs}.
17255
17256 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
17257
17258         * cse.c: Update comments.
17259
17260 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
17261
17262         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
17263         arguments go on the stack.  Do not put complex doubles in odd/even
17264         pairs.
17265
17266 2005-02-02  Steven Bosscher  <stevenb@suse.de>
17267
17268         * doc/invoke.texi: Update the options enabled at -O1, -O2,
17269         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
17270         -ftree-pre, and -fthread-jumps.
17271
17272 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
17273
17274         PR tree-optimization/19578
17275         * tree-flow.h (modified_noreturn_calls): Declare.
17276         (noreturn_call_p): Declare.
17277         * tree-flow-inline.h (noreturn_call_p): New function.
17278         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
17279         * tree-cfg.c (modified_noreturn_calls): New variable.
17280         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
17281         that contain a mid-block noreturn call.
17282         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
17283
17284 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
17285
17286         * df.c (df_def_record_1, df_uses_record): Don't use
17287         DF_FOR_REGALLOC.
17288         * df.h (DF_FOR_REGALLOC): Remove.
17289
17290 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
17291
17292         PR c/19435
17293         * c-typeck.c (really_start_incremental_init): Reset
17294         constructor_max_index for arrays of incomplete type.
17295
17296 2005-02-02  Jeff Law  <law@redhat.com>
17297
17298         * gcse.c (struct reg_set): Store the block index where the register
17299         was set rather than the setting insn.
17300         (record_one_set, compute_transp): Corresponding changes.
17301         (pre_insert_copy_insn): Do not call replace_one_set.
17302         (replace_one_set): Remove.
17303
17304 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
17305
17306         PR other/15514
17307         * doc/gcov.texi: Fix typo.
17308
17309 2005-02-01  Richard Henderson  <rth@redhat.com
17310
17311         PR target/19680
17312         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
17313         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
17314         type to bool.
17315         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
17316         * config/i386/i386-protos.h: Update.
17317
17318 2005-02-01  Steven Bosscher  <stevenb@suse.de>
17319
17320         PR tree-optimization/19217
17321         * tree-cfg.c (verify_expr): Use the data field to see if TP was
17322         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
17323         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
17324         that it is walking a PHI node.
17325
17326 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
17327
17328         * doc/extend.texi (Nested Functions): Update.
17329
17330 2005-02-01  Richard Henderson  <rth@redhat.com>
17331
17332         PR 19696
17333         * optabs.c (expand_copysign_absneg): Export.
17334         * optabs.h (expand_copysign_absneg): Declare.
17335         * config/rs6000/rs6000.md (copysigntf3): New.
17336
17337 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
17338
17339         PR tree-optimization/19633
17340         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
17341         * tree-ssa-alias.c (init_alias_info): Initialize.
17342         (merge_pointed_to_info): Set.
17343         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
17344         (dump_points_to_info_for): Show value of pt_null.
17345         (struct count_ptr_d): Declare.
17346         (find_ptr_dereference): Remove.
17347         (ptr_is_dereferenced_by): Remove.
17348         (count_ptr_derefs): New local function.
17349         (count_uses_and_derefs): New local function.
17350         (compute_points_to_and_addr_escape): Call it.  If the number
17351         of dereferences is greater than zero, mark the pointer as
17352         dereferenced.  If there are fewer dereferences than uses of
17353         the pointer, the pointer's value escapes.
17354
17355 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
17356
17357         PR tree-optimization/19670
17358         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
17359         here...
17360         (verify_use): ... set it here, instead.
17361
17362 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
17363
17364         * doc/sourcebuild.texi (Test directives): Fix formatting.
17365
17366         * doc/sourcebuild.texi (Test directives): Describe selector
17367         expressions.
17368
17369 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
17370
17371         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
17372         specific 64-bit CPUs.
17373
17374 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
17375
17376         PR target/16201
17377         * arm.c (arm_eliminable_register): New function.
17378         (adjacent_mem_locations): Don't allow eliminable registers.  Use
17379         HOST_WIDE_INT for address offsets.
17380         * arm-protos.h (arm_eliminable_register): Add prototype.
17381
17382 2005-02-01  Steven Bosscher  <stevenb@suse.de>
17383
17384         PR optimization/15242
17385         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
17386         * basic-block.h (duplicate_computed_gotos): Add prototype.
17387         * bb-reorder.c (duplicate_computed_gotos): New function to
17388         duplicate sufficiently small blocks ending in a computed jump.
17389         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
17390         if not optimizing for size.
17391         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
17392         never do tail merging for blocks ending in a computed jump.
17393         * doc/invoke.texi: Document the max-goto-duplication-insns param.
17394
17395 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
17396
17397         Patch from Richard Sandiford <rsandifo@redhat.com>
17398         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
17399         from inheriting a subreg equivalence with a non-spill register.
17400
17401         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
17402
17403 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
17404
17405         * config/frv/frv.c (movcc_fp_destination_operand): New.
17406         (gpr_or_memory_operand): Fix typo in comment.
17407         (gpr_or_memory_operand_with_scratch): New.
17408         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
17409         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
17410         movcc_fp_destination_operand.
17411         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
17412         Legitimize memory addresses using a scratch register.
17413
17414 2005-01-31  Jeff Law  <law@redhat.com>
17415
17416         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
17417         bitmap a sparse bitmap instead of a simple bitmap.
17418         (mark_def_sites_initialize_block):  Corresponding changes.
17419         (ssa_mark_def_sites_initialize_block): Likewise.
17420         (ssa_mark_phi_uses): Likewise.
17421         (mark_def_site, ssa_mark_def_sites): Likewise.
17422         (mark_def_site_blocks): Likewise.
17423         (rewrite_ssa_into_ssa): Likewise.
17424
17425         * tree-ssa-dom.c (record_cond): Pass correct variable type
17426         for last argument to htab_find_slot_with_hash.
17427
17428         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
17429         effects when optimizing 0 % X.  Do not try to optimize X % 0.
17430
17431 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
17432
17433         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
17434         1_mmalua.
17435
17436 2005-02-01  Eric Christopher  <echristo@redhat.com>
17437
17438         * config/mips/mips.c (override_options): Warn if -mint64
17439         is used.
17440         * doc/invoke.texi (MIPS Options): Document that -mint64 is
17441         deprecated.
17442
17443 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
17444
17445         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
17446         timestamp.
17447         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
17448         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
17449         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
17450         (cached_regno): Initialize to INVALID_REGNUM.
17451         (cse_reg_info_table_size,
17452         cse_reg_info_table_first_uninitialized,
17453         cse_reg_info_timestamp): New.
17454         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
17455         get_cse_reg_info.
17456         (init_cse_reg_info, get_cse_reg_info_1): New.
17457         (get_cse_reg_info): Cache the last look-up.
17458         (new_basic_block): Update the code to clear mappings from
17459         registers to cse_reg_info entries.
17460         (cse_main): Call init_cse_reg_info.
17461
17462         * cse.c (get_cse_reg_info): Update a comment.
17463
17464 2005-01-31  Steven Bosscher  <stevenb@suse.de>
17465
17466         PR c/19333
17467         * c-decl.c (start_decl): Do not warn about arrays of elements with
17468         an incomplete type here.
17469         (grokdeclarator): Do it here by making a pedwarn an error.
17470         * c-typeck.c (push_init_level): If there were previous errors with
17471         the constructor type, do not warn about braces for initializers.
17472         (process_init_element): Likewise for excess initializer elements.
17473
17474 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
17475
17476         * cse.c (delete_trivially_dead_insn): Don't iterate.
17477
17478 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
17479
17480         * config/rs6000/rs6000.md (copysignsf3): New expand.
17481         (copysigndf3): Likewise.
17482
17483 2005-01-31  Steven Bosscher  <stevenb@suse.de>
17484
17485         * recog.c (constrain_operands): Only look for earlyclobber operand
17486         conflicts if an '&' constraint was seen.
17487
17488 2005-01-31  Marc Espie <espie@openbsd.org>
17489
17490         * config.gcc: Don't include embedded systems fragment, switches default
17491         debugging format to ELF.
17492         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
17493         longer pick it up there.
17494
17495 2005-01-31  Dale Johannesen  <dalej@apple.com>
17496
17497         * doc/extend.texi (nested functions): Fix linkage description.
17498         Clarify that static is not allowed.
17499
17500 2005-01-31  Dale Johannesen  <dalej@apple.com>
17501
17502         * config/rs6000/darwin.md (movsf_low_di):  Make work.
17503         (movdf_low_di):  Make work.
17504
17505 2005-01-31  Dale Johannesen  <dalej@apple.com>
17506
17507         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
17508         Make work for 64 bit.
17509
17510 2005-01-31  Roger Sayle  <roger@eyesopen.com>
17511             Dale Johannesen  <dalej@apple.com>
17512
17513         PR middle-end/19650
17514         * fold-const.c (fold_binary_op_with_conditional_arg):
17515         Make types match original operands, before STRIP_NOPS.
17516
17517 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
17518
17519         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
17520         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
17521         (struct gcc_sigcontext): Delete.  Merge contents to..
17522         (struct gcc_ucontext): ..here.
17523         (get_sigcontext): Delete.
17524         (get_regs): New function, like get_sigcontext but return regs ptr.
17525         64-bit version finds regs from r1 to support vdso.
17526         (ppc_linux_aux_vector): New function.
17527         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
17528         and vector regs.
17529
17530 2005-01-31  Ira Rosen  <irar@il.ibm.com>
17531
17532         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
17533         sizetype.
17534         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
17535         redundant fold. Fix misalignment for MINUS_EXPR.
17536         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
17537         (vect_analyze_pointer_ref_access): Likewise.
17538         (vect_get_memtag_and_dr): Likewise.
17539
17540 2005-01-31  Richard Henderson  <rth@redhat.com>
17541
17542         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
17543         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
17544         absnegdf2_i387, absnegxf2_i387): Likewise.
17545
17546 2005-01-31  Richard Henderson  <rth@redhat.com>
17547
17548         PR 19696
17549         * optabs.c (expand_copysign_absneg): New.
17550         (expand_copysign_bit): Split out from ...
17551         (expand_copysign): ... here.  Use expand_copysign_absneg.
17552
17553 2005-01-30  Roger Sayle  <roger@eyesopen.com>
17554
17555         PR middle-end/19697
17556         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
17557         constant as the second operand and a register as the third.
17558
17559 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
17560
17561         PR target/19704
17562         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
17563         that dllimport'd functions do not use all call-clobbered registers
17564         to pass parameters.
17565
17566 2005-01-30  Richard Henderson  <rth@redhat.com>
17567
17568         PR 19696
17569         * optabs.c (expand_absneg_bit): Split out from expand_unop and
17570         expand_abs_nojump and generalize.  Use operand_subword and
17571         emit_no_conflict_block.  Support large modes.
17572         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
17573         back to maximum.
17574         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
17575         negation to subtraction.
17576         (expand_copysign): Check that the format has signed zeros.
17577         Use operand_subword and emit_no_conflict_block.  Support large modes.
17578
17579 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
17580
17581         Fix PR tree-optimization/19624
17582
17583         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
17584         * tree-ssa-pre.c: Add cfgloop.h.
17585         Update comment.
17586         (pre_stats): New member, constified.
17587         (inserted_exprs): New static variable.
17588         (NECESSARY): New macro.
17589         (create_expression_by_pieces): Fold the expression, and
17590         mark it as defaulting to not necessary. Also put in
17591         inserted_exprs.
17592         (fully_constant_expression): New function.
17593         (insert_into_preds_of_block): Modify to not insert phis when we
17594         are playing with induction variables.
17595         Push phis onto the inserted_exprs vector, and mark them as not
17596         necessary by default.
17597         (insert_aux): Call fully_constant_expression on eprime.
17598         If all edges produce the same value, mark it constant.
17599         (mark_operand_necessary): New function.
17600         (remove_dead_inserted_code): New function.
17601         (init_pre): Init loop optimizer to get loop info.
17602         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
17603         (execute_pre): Commit edge inserts, then remove dead code.
17604
17605 2005-01-30  Richard Henderson  <rth@redhat.com>
17606
17607         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
17608         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
17609
17610 2005-01-30  Richard Henderson  <rth@redhat.com>
17611
17612         PR target/19700
17613         * config/i386/i386.c (ix86_expand_copysign): New.
17614         (ix86_split_copysign_const): New.
17615         (ix86_split_copysign_var): Rename from ix86_split_copysign,
17616         rearrange op1/nmask operands.
17617         * config/i386/i386-protos.h: Update.
17618         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
17619         (copysigndf3): Likewise.
17620         (copysignsf3_const, copysigndf3_const): New.
17621         (copysignsf3_var): Rename from copysignsf3, split out splitter
17622         and fix split predicate for X constraint.
17623         (copysigndf3_var): Similarly.
17624
17625 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
17626
17627         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
17628         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
17629         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
17630
17631 2005-01-29  Richard Henderson  <rth@redhat.com>
17632
17633         PR target/19690
17634         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
17635         of # and * in constraints.
17636
17637 2005-01-29  Richard Henderson  <rth@redhat.com>
17638
17639         PR middle-end/19689
17640         * expr.c (store_field): Don't strip sub-mode cast when the input
17641         data is even smaller.
17642
17643 2005-01-29  Richard Henderson  <rth@redhat.com>
17644
17645         PR middle-end/19687
17646         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
17647         union being empty.
17648
17649 2005-01-29  Richard Henderson  <rth@redhat.com>
17650
17651         * combine.c (make_field_assignment): Fix argument order
17652         to gen_int_mode.
17653
17654 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
17655
17656         PR tree-optimization/15791
17657         * fold-const.c (extract_array_ref): New function.
17658         (fold): Fold comparisons between &a[i] and &a[j] or
17659         semantically equivalent trees.
17660
17661 2005-01-29  Jeff Law  <law@redhat.com>
17662
17663         * gcse.c (insert_expr_in_table): Revamp handling of available
17664         and anticipatable occurrence lists to avoid unnecessary list
17665         walking.
17666         (insert_set_in_table): Similarly.
17667
17668 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
17669
17670         * c-common.c (fix_string_type): Just use c_build_qualified_type to
17671         build string type.
17672         (c_build_qualified_type): Build qualified array types with
17673         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
17674         * c-decl.c (c_make_fname_decl): Build unqualified array type
17675         before qualified type.
17676         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
17677         type is qualified, not just if type itself is.  Don't apply
17678         qualifiers to array type when declarator is processed.  Apply
17679         qualifiers to field type whether or not it is an array type.
17680         Don't handle array types specially for applying qualifiers to
17681         variables.
17682         * c-typeck.c (composite_type): Build unqualified element type and
17683         array type when forming composite of array types.
17684         (common_pointer_type, comptypes, comp_target_types,
17685         type_lists_compatible_p, build_indirect_ref, build_array_ref,
17686         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
17687         types.
17688         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
17689         (args2) in variables a1 and a2.
17690
17691 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
17692
17693         * cse.c (n_elements_made, max_elements_made): Remove.
17694         (insert): Don't touch n_elements_made.
17695         (cse_main): Don't touch n_elements_made or max_elements_made.
17696
17697 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
17698
17699         PR target/15384
17700         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
17701         configuration part of dp-bit.c to be lost.
17702
17703 2005-01-28  Roger Sayle  <roger@eyesopen.com>
17704
17705         * expmed.c (expand_mult_highpart_optab): When attempting to use
17706         a non-widening multiplication in a wider mode, the operands need
17707         to be converted (zero or sign extended) to that mode.
17708
17709 2005-01-28  Ian Lance Taylor  <ian@airs.com>
17710
17711         PR middle-end/16558
17712         PR middle-end/19583
17713         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
17714         through if both operands fall through.
17715
17716 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17717
17718         * cse.c (fold_rtx) <PC>: Don't optimize.
17719
17720 2005-01-28  Jeff Law  <law@redhat.com>
17721
17722         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
17723         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
17724
17725 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
17726
17727         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
17728         cse_reg_info_used_list_end): Remove.
17729         (cse_reg_info_list, cse_reg_info_list_free): New.
17730         (get_cse_reg_info): When allocating an instance of
17731         cse_reg_info, add it to the beginning of the cse_reg_info_list
17732         list.  Remove code to maintain cse_reg_info_used_list.
17733         (new_basic_block): Reset the free list to the beginning of
17734         cse_reg_info_list.
17735
17736 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
17737
17738         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
17739         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
17740         (frv_expand_mdpackh_builtin): New function.
17741         (frv_expand_builtin): Use it to expand __MDPACKH.
17742         * doc/extend.texi (__MDPACKH): Update documentation.
17743
17744 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
17745
17746         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
17747         SSE_FLOAT_MODE_P for use_sse computation.
17748
17749 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
17750
17751         PR target/19663
17752         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
17753
17754 2005-01-27  Richard Henderson  <rth@redhat.com>
17755
17756         * builtins.c (expand_builtin_copysign): New.
17757         (expand_builtin): Call it.
17758         * genopinit.c (optabs): Add copysign_optab.
17759         * optabs.c (init_optabs): Initialize it.
17760         (expand_copysign): New.
17761         * optabs.h (OTI_copysign, copysign_optab): New.
17762         (expand_copysign): Declare.
17763
17764         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
17765         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
17766
17767         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
17768         (ix86_expand_fp_absneg_operator): ... here.
17769         (ix86_split_copysign): New.
17770         * config/i386/i386-protos.h: Update.
17771         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
17772         (copysignsf3, copysigndf3): New.
17773
17774         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
17775         (copysignsf3, ncopysignsf3): New.
17776         (copysigndf3, ncopysigndf3): New.
17777         (copysignxf3, ncopysignxf3): New.
17778         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
17779
17780 2005-01-27  Arend Bayer  <arend.bayer@web.de>
17781             Kazu Hirata  <kazu@cs.umass.edu>
17782
17783         * cse.c: (find_best_addr): Don't call copy_rtx before calling
17784         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
17785         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
17786         NULL_RTX.
17787
17788 2005-01-27  Jeff Law  <law@redhat.com>
17789
17790         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
17791         definitions of SSA_NAMEs which are not being rewritten.
17792         (rewrite_ssa_into_ssa): Only initialize the current definition
17793         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
17794         If checking is enabled, assert that SSA_NAME_AUX is clear for all
17795         SSA_NAMEs before returning.
17796
17797 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
17798
17799         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
17800         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
17801         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
17802         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
17803         config/mips/iris6.h, config/sh/sh.c: Update copyright.
17804
17805 2005-01-27  Steven Bosscher  <stevenb@suse.de>
17806
17807         PR middle-end/17278
17808         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
17809         higher to -O2 and higher.  Likewise for tree PRE.
17810         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
17811         and better.
17812
17813 2005-01-27  Ian Lance Taylor  <ian@airs.com>
17814
17815         PR middle-end/19583
17816         * gimple-low.c (try_catch_may_fallthru): New static function.
17817         (block_may_fallthru): Handle TRY_CATCH_EXPR.
17818         * tree-inline.c (expand_call_inline): Don't warn about reaching
17819         the end of a non-void function being inlined if the function uses
17820         a return slot.
17821
17822 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
17823
17824         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
17825
17826         PR c/18946
17827         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
17828         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
17829         (implicitly_declare): Handle error_mark_node.
17830
17831 2005-01-27  Richard Henderson  <rth@redhat.com>
17832
17833         PR tree-opt/14329
17834         * tree.h (struct tree_decl): Add debug_expr_is_from.
17835         (DECL_DEBUG_EXPR_IS_FROM): New.
17836         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
17837         * dwarf2out.c (dwarf2out_var_location): Update to match.
17838         * tree-outof-ssa.c (create_temp): Likewise.
17839         * var-tracking.c (track_expr_p): Likewise.
17840         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
17841         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
17842         * toplev.c (default_tree_printer): Likewise.
17843
17844 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
17845
17846         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
17847         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
17848
17849 2005-01-27  Steven Bosscher  <stevenb@suse.de>
17850
17851         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
17852         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
17853         ASM_CLOBBERS): Add tree checks.
17854
17855         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
17856         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
17857         * c-common.def (SWITCH_STMT): Update to match.
17858         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
17859         macros instead of SWITCH_EXPR ones.
17860         * c-dump.c (c_dump_tree): Likewise.
17861         * c-gimplify.c (gimplify_switch_stmt): Likewise.
17862         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
17863
17864         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
17865
17866 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
17867
17868         * unwind-dw2.c (execute_stack_op): Add missing cases for
17869         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
17870
17871 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
17872
17873         * config.gcc (Obsolete configurations): Remove 'dummy', add
17874         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
17875         sparc-*-openbsd*.
17876
17877 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
17878
17879         PR tree-optimization/19633
17880         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
17881         CALL_EXPRs.
17882         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
17883         are no call-clobbered variables.
17884         * tree-outof-ssa.c (check_replaceable): Return false for calls
17885         with side-effects.
17886
17887 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
17888
17889         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
17890         even for variables with NULL DECL_INITIAL.
17891
17892 2005-01-26  Stuart Hastings  <stuart@apple.com>
17893
17894         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
17895
17896 2005-01-26  Richard Henderson  <rth@redhat.com>
17897
17898         PR middle-end/18008
17899         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
17900         field's type.
17901         * expr.c (store_field): Strip conversions to odd-bit-sized types
17902         if the destination field width matches.
17903
17904 2005-01-26  Richard Henderson  <rth@redhat.com>
17905
17906         * c-decl.c, expmed.c, expr.c: Revert last change.
17907
17908 2005-01-26  Richard Henderson  <rth@redhat.com>
17909
17910         PR middle-end/18008
17911         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
17912         field's type.
17913         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
17914         if we don't need the bits above those present in the current mode.
17915         * expr.c (store_field): Strip conversions to odd-bit-sized types
17916         if the destination field width matches.
17917
17918 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
17919
17920         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
17921         either -ffast-math or -funsafe-math-optimizations is in use.
17922
17923 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
17924
17925         PR target/19293
17926         PR target/19329
17927         * config/avr/avr.c (notice_update_cc): Only set condition code for
17928         ashrqi3 if shift count > 0.
17929         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
17930         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
17931         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
17932         count <= 0 as a no-op, and shift count >= width by copying zero
17933         or sign bit to all bits of the result.
17934         * config/avr/avr.md (all shifts): Add alternatives for zero shift
17935         count, with attribute "length" set to 0 and "cc" set to "none".
17936
17937 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
17938
17939         * doc/invoke.texi: Document -mTLS.
17940
17941         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
17942         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
17943         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
17944         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
17945         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
17946         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
17947         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
17948         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
17949
17950         * configure.ac: Check for a TLS capable gas.
17951
17952         * configure: Regenerate.
17953
17954 2005-01-26  Richard Henderson  <rth@redhat.com>
17955
17956         PR middle-end/18008
17957         * combine.c (make_field_assignment): Simplify store to zero_extract
17958         from a source with an overlapping mask.
17959
17960 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
17961
17962         2004-11-11  Eric Christopher  <echristo@redhat.com>
17963
17964         * config/frv/frv.md: Add fr400_integer automaton. Don't
17965         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
17966         to TYPE_MACC.
17967
17968 2005-01-26  Steven Bosscher  <stevenb@suse.de>
17969
17970         PR middle-end/16585
17971         * cfgbuild.c (make_edges): Do not clear or set
17972         current_function_has_computed_jump.
17973         * function.h (struct function): Remove the has_computed_jump field.
17974         (current_function_has_computed_jump): Do not define.
17975         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
17976         in a computed jump.  Ignore current_function_has_computed_jump.
17977
17978 2005-01-26  Richard Henderson  <rth@redhat.com>
17979
17980         PR middle-end/19515
17981         * expr.c (categorize_ctor_elements): New argument p_must_clear.
17982         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
17983         fully initialized.
17984         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
17985         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
17986         objects into static storage if they have more than one non-zero value.
17987         * tree.h (categorize_ctor_elements): Update decl.
17988
17989 2005-01-26  Steven Bosscher  <stevenb@suse.de>
17990
17991         PR middle-end/19616
17992         * tree.h (CALL_EXPR_TAILCALL): Add comment.
17993         * calls.c (check_sibcall_argument_overlap_1): Revert the change
17994         to this function from 2004-07-10.
17995         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
17996         the current function for tail call optimizations if the address
17997         of one of it its arguments is taken.
17998
17999 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
18000
18001         * cse.c (fold_rtx): Call equiv_constant only when necessary.
18002
18003 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
18004
18005         * function.c (expand_function_end): If current_function_calls_alloca,
18006         emit stack restore in a place that is reached when the function falls
18007         through at the end.
18008
18009 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
18010
18011         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
18012         rule to avoid matching inappropriate suffix rule.
18013
18014 2005-01-26  Jan Hubicka  <jh@suse.cz>
18015
18016         PR tree-optimization/19241
18017         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
18018
18019 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
18020
18021         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
18022         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
18023         of doubling.
18024         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
18025         <sim*>: Always use crt1.o, regardless of N in simN.
18026         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
18027         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
18028         (CRT_CALL_STATIC_FUNCTION): Remove.
18029         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
18030         use crt1.o, regardless of N in simN.
18031         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
18032         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
18033         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
18034         case isystem setting.
18035         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
18036
18037 2005-01-25  Ian Lance Taylor  <ian@airs.com>
18038
18039         * gimple-low.c (block_may_fallthru): Correct handling of
18040         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
18041
18042 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
18043
18044         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
18045         handlers to match indentation; nested under the mtune=* handler.
18046         Similar for mcpu= and march=.
18047
18048 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
18049
18050         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
18051         * config/mips/linux64.h (LIB_SPEC): Likewise.
18052         * config/mn10300/linux.h (LIB_SPEC): Likewise.
18053         * config/sh/linux.h (LIB_SPEC): Likewise.
18054
18055 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
18056
18057         * config/frv/frv.c (frv_legitimize_tls_address): New.
18058         (TARGET_HAVE_TLS): Define.
18059         (FRV_SYMBOL_REF_TLS_P): Define.
18060         (frv_override_options): Handle new register classes.
18061         (frv_legitimate_address_p): Reject tls addresses.
18062         (frv_legitimize_address): Handle TLS addresses.
18063         (gen_inlined_tls_plt): New.
18064         (gen_tlsmoff): New.
18065         (frv_legitimize_tls_address): New.
18066         (unspec_got_name): Add TLS entries.
18067         (got12_operand): Add R_FRV_TLSMOFF12 case.
18068         (frv_emit_move): Fixup TLS addresses.
18069         (frv_emit_movsi): Legitimize TLS addresses.
18070
18071         * config/frv/frv.h (MASK_BIG_TLS): New.
18072         (TARGET_BIG_TLS): New.
18073         (HAVE_AS_TLS): Define.
18074         (TARGET_SWITCHES): Add -mTLS and -mtls options.
18075         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
18076         (REG_CLASS_NAMES): Same.
18077         (REG_CLASS_CONTENTS): Same.
18078         (CONSTRAINT_LEN): New.
18079         (REG_CLASS_FROM_CONSTRAINT): New.
18080         (PREDICATE_CODES): Add symbolic_operand.
18081
18082         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
18083         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
18084         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
18085         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
18086         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
18087         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
18088         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
18089         GR9_REG, GR14_REG, LRREG.
18090         (type): Add load_or_call attribute.
18091         ("load_or_call"): New reservation.
18092         ("call_gettlsoff"): New.
18093         ("tls_indirect_call"): New.
18094         ("tls_load_gottlsoff12"): New.
18095         ("tlsoff_hilo"): New.
18096         ("tls_tlsdesc_ldd"): New.
18097         ("tls_tlsoff_ld"): New.
18098         ("tls_lddi"): New.
18099
18100         * config/frv/frv-protos.h (symbolic_operand): Protoize.
18101
18102         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
18103
18104         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
18105         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
18106         * config/frv/frv.c (TLS_BIAS): Define.
18107         (frv_output_dwarf_dtprel): New.
18108
18109 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
18110
18111         PR rtl-optimization/19579
18112         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
18113         both A and B, see if they don't clobber registers the other expr uses.
18114
18115 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
18116
18117         * real.c (do_add): Initialize signalling and canonical members.
18118
18119         * real.c (real_from_integer): Zero out destination.
18120
18121 2005-01-18  Jan Hubicka  <jh@suse.cz>
18122
18123         PR tree-optimize/19337
18124         * tree-inline.c (initialize_inlined_parameters): Copy
18125         saved_static_chain_decl only.
18126
18127 2005-01-25  Richard Henderson  <rth@redhat.com>
18128
18129         PR target/19556
18130         PR target/19584
18131         * config/i386/i386.c (x86_inter_unit_moves): Zero.
18132         (ix86_preferred_reload_class): Rewrite fp-constant section, with
18133         80387 enabled, to return a proper subclass.  Return the subset that
18134         overlaps with GENERAL_REGS for PLUS.
18135         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
18136
18137 2005-01-25  Richard Henderson  <rth@redhat.com>
18138
18139         PR middle-end/19609
18140         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
18141
18142 2005-01-25  Roger Sayle  <roger@eyesopen.com>
18143
18144         * expmed.c (choose_multiplier): Change interface to return the
18145         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
18146         (expand_divmod): Update calls to choose_multiplier.
18147
18148 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18149
18150         PR middle-end/19330
18151         * expmed.c (extract_bit_field): Use adjust_address instead of
18152         gen_lowpart when op0 is a MEM.
18153
18154 2005-01-24  Steven Bosscher  <stevenb@suse.de>
18155
18156         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
18157
18158 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
18159
18160         * config/mips/irix-csr.c: New file.
18161         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
18162         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
18163         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
18164         executables.
18165
18166 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
18167
18168         PR bootstrap/19364
18169         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
18170         sparc/elf.h, add sparc/sp-elf.h.
18171         (sparc-*-rtems*): Likewise.
18172         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
18173         tm-dwarf2.h, add sparc/sp-elf.h.
18174         (sparc86x-*-elf): Likewise.
18175         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
18176         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
18177         TARGET_OS_CPP_BUILTINS.
18178         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
18179         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
18180         Undefine it.
18181         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
18182         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
18183         (SWITCH_TAKES_ARG): Likewise.
18184         (LOCAL_LABEL_PREFIX): Likewise.
18185         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
18186         (TARGET_N_FORMAT_TYPES): Delete.
18187         (TARGET_FORMAT_TYPES): Likewise.
18188         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
18189         * config/sparc/elf.h: Delete.
18190         * config/sparc/sp-elf.h: New file.
18191
18192 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18193
18194         * tree-flow-inline.h (phi_arg_from_edge): Remove.
18195         * tree-flow.h: Remove the corresponding prototype.
18196         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
18197         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
18198
18199 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
18200
18201         PR target/17751
18202         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
18203         for AIX ABI or ELF -fPIC.
18204         (rs6000_emit_load_toc_table): Don't create toc_section here.
18205         (rs6000_xcoff_file_start): Nor here.
18206
18207 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
18208
18209         * sh.c (ra.h): Don't #include.
18210         (hard_regs_intersect_p): New function, resurrected from ra.c.
18211
18212         * sh.c: Fix 1996 Copyright.
18213
18214 2005-01-24  Richard Henderson  <rth@redhat.com>
18215             Aldy Hernandez  <aldyh@redhat.com>
18216
18217         * regrename.c (note_sets): Handle subregs.
18218
18219 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
18220
18221         PR bootstrap/18058
18222         * genconditions.c (write_header, write_conditions): Elide file if
18223         not GCC >= 3.0.1.
18224
18225 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
18226
18227         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
18228         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
18229         Update copyright.
18230
18231 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
18232
18233         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
18234         expand_builtin_printf, expand_builtin_fprintf,
18235         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
18236         checking against POINTER_TYPE.
18237         (validate_arglist): Handle POINTER_TYPE code by checking
18238         POINTER_TYPE_P.
18239
18240 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
18241
18242         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
18243         init_rtlanal): New.
18244         (for_each_rtx): Call for_each_rtx_1.
18245         * rtl.h (init_rtlanal): Declare.
18246         * toplev.c (backend_init): Call init_rtlanal.
18247
18248 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
18249
18250         * flow.c (propagate_one_insn): Formatting.
18251
18252         PR middle-end/19551
18253         * flow.c (libcall_dead_p): Be more conservative if unsure.
18254         If there are any instructions between insn and call, see if they are
18255         all dead before saying the libcall is dead.
18256
18257 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
18258
18259         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
18260         operand constraint for operand 0.
18261
18262 2005-01-23  Richard Henderson  <rth@redhat.com>
18263
18264         PR 19486
18265         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
18266         edges leading to join block.
18267
18268 2005-01-23  Roger Sayle  <roger@eyesopen.com>
18269
18270         * expmed.c (expand_mult_highpart): Make static.  Change type of
18271         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
18272         (expand_divmod): Updates calls to expand_mult_highpart by using
18273         gen_int_mode to pass a CONST_INT rtx.
18274         * rtl.h (expand_mult_highpart): Remove prototype.
18275
18276 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18277
18278         * flow.c (regset_bytes, regset_size): Remove.
18279
18280         * cfganal.c: Fix a reference to Harvey's paper.
18281
18282 2005-01-23  Steven Bosscher  <stevenb@suse.de>
18283
18284         PR rtl-optimization/19464
18285         * tree-optimize.c (init_tree_optimization_passes): Add one more
18286         copyrename pass just before out-of-ssa.
18287
18288 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
18289
18290         PR bootstrap/18058
18291         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
18292         * ggc-none.c (ggc_free): Define.
18293
18294 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18295
18296         * cse.c (max_reg, max_insn_uid): Remove.
18297         (cse_main): Don't access max_reg or max_insn_uid.
18298
18299         * c-common.c (explicit_flag_signed_bitfields,
18300         lang_statement_code_p, lang_expand_function_end): Remove.
18301         * c-common.h: Remove the corresponding declarations.
18302         * c-opts.c (c_common_handle_option): Remove all write access
18303         to explicit_flag_signed_bitfields.
18304
18305         * cgraph.c (cgraph_varpool_n_nodes): Remove.
18306         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
18307         * cgraph.h: Remove the corresponding declaration.
18308
18309         * gcse.c (null_pointer_info): Remove.
18310
18311 2005-01-23  Roger Sayle  <roger@eyesopen.com>
18312             Eric Botcazou  <ebotcazou@libertysurf.fr>
18313
18314         * combine.c (simplify_logical): Only simplify logical expressions
18315         of the form ior(and(x,y),z) by the inverse distributive law if the
18316         result is cheaper than the original.
18317
18318 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
18319
18320         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
18321         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
18322         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
18323         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
18324         config/freebsd-spec.h, config/arm/arm.h,
18325         config/h8300/h8300.md, config/i386/i386.md,
18326         config/i386/predicates.md, config/i386/sse.md,
18327         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
18328         config/vax/vax.md: Fix comment typos.  Follow spelling
18329         conventions.
18330
18331 2005-01-23  Steven Bosscher  <stevenb@suse.de>
18332
18333         * gengtype.c (walk_type): Produce `not equal to' compares for loop
18334         tests, instead of `less than'.
18335
18336 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
18337
18338         * function.c (assign_parm_setup_block): When creating a new stack slot
18339         for a parameter, get its alignment from the parameter's DECL_ALIGN
18340         rather than the type's TYPE_ALIGN.  Make sure that the parameter
18341         is at least word aligned.
18342
18343 2005-01-22  Roger Sayle  <roger@eyesopen.com>
18344
18345         PR middle-end/19378
18346         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
18347
18348 2005-01-22  Richard Henderson  <rth@redhat.com>
18349
18350         PR target/19506
18351         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
18352         in both compare operands.
18353         (movdfcc_1_sse_max): Likewise.
18354         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
18355         (movdfcc_1_sse): Likewise.
18356         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
18357         scratch register as needed.
18358
18359 2005-01-22  Richard Henderson  <rth@redhat.com>
18360
18361         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
18362
18363         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
18364
18365 2005-01-22  Richard Henderson  <rth@redhat.com>
18366
18367         * genopinit.c (optabs): Use smin/smax for floating point too.
18368         * doc/md.texi: Update to match.  Clarify that floating point
18369         results are undefined for +0/-0 and NaN.
18370         * doc/rtl.texi: Likewise.
18371         * rtl.def (SMIN, SMAX): Likewise
18372         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
18373
18374         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
18375         leading 's' to the name.
18376         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
18377         smaxxf3, sminxf3): Likewise.
18378         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
18379         Likewise.
18380
18381 2005-01-22  Paul Brook  <paul@codesourcery.com>
18382
18383         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
18384
18385 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
18386
18387         * config/s390/s390.c (struct processor_costs): New fields
18388         dlgr, dlr, dr, dsgfr, dsgr.
18389         (z900_cost, z990_cost): Values for new fields.
18390         (s390_rtx_costs): New cases MEM und COMPARE in switch
18391         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
18392         DIV, MOD, UDIV, UMOD.
18393
18394 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
18395
18396         * config/s390/s390.md ("doloop_si64"): Reload input value directly
18397         into the register being decremented.
18398         ("doloop_si31", "doloop_di"): Likewise.
18399         ("*doloop_si_long"): Adapt pattern.
18400
18401 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
18402
18403         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
18404         access registers.
18405         (CLASS_MAX_NREGS): Likewise.
18406
18407 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
18408
18409         * doc/tree-ssa.texi (Statement Operands): Add example for new
18410         must-def macro. Note deprecation of old operands interface.
18411
18412 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
18413
18414         PR tree-optimization/19484
18415         * tree-cfg.c (remove_fallthru_edge): New function.
18416         (cleanup_control_flow): Remove fallthru edges from calls that are
18417         now known not to return.
18418
18419 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
18420
18421         Fix PR tree-optimization/19038
18422         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
18423         copies with loop variant ones.
18424
18425 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
18426
18427         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
18428         config/alpha/alpha-protos.h, config/alpha/alpha.h,
18429         config/alpha/alpha.md, config/alpha/predicates.md,
18430         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
18431         config/sparc/sol2.h: Update copyright.
18432
18433         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
18434         first label to see if it is a nonlocal label.
18435
18436 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
18437             Andrew Pinski  <pinskia@physics.uc.edu>
18438
18439         PR target/19491
18440         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
18441         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
18442
18443 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
18444
18445         * config/rs6000/rtems.h: Update copyright.
18446
18447 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
18448
18449         PR target/19548
18450         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
18451         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
18452         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
18453
18454 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
18455
18456         PR c/18809
18457         * c-typeck.c (convert_arguments): Check for error_mark_node.
18458
18459 2005-01-21  Ian Lance Taylor  <ian@airs.com>
18460
18461         PR tree-optimization/13000
18462         * tree-inline.c: Include "tree-flow.h".
18463         (expand_call_inline): If warn_return_type, warn if non-void inline
18464         function falls through.
18465         * tree-cfg.c (execute_warn_function_return): Don't warn about
18466         control reaching end if TREE_NO_WARNING is set.  Set
18467         TREE_NO_WARNING.
18468         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
18469         has been lowered.
18470         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
18471         branch if we don't need one.
18472         * c-typeck.c: Include "tree-flow.h"
18473         (c_finish_bc_stmt): Don't add a goto if the current statement
18474         list doesn't fall through to the current point.
18475
18476 2005-01-21  Roger Sayle  <roger@eyesopen.com>
18477
18478         PR rtl-optimization/576
18479         * real.c (real_arithmetic): Change return type from void to bool
18480         to return an indication that the result may be inexact.
18481         * real.h (real_arithmeric): Update prototype.
18482         * fold-const.c (const_binop):  Don't constant fold floating
18483         point expressions when the user specifies -frounding-math and
18484         the result may depend upon the run-time rounding mode.
18485         (fold_convert_const_real_from_real): Clean-up.
18486         (fold_initializer): Ignore flag_rounding_math for initializers.
18487         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
18488         constant fold FP operations with flag_rounding_math if the
18489         result may depend upon the run-time rounding mode.
18490
18491 2005-01-21  Tom Tromey  <tromey@redhat.com>
18492
18493         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
18494
18495 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
18496
18497         * tree-cfg.c: Fix comment typos.
18498
18499 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
18500
18501         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
18502         around the call to rest_of_handle_branch_target_load_optimize.
18503
18504 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
18505
18506         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
18507         (sparc64-*-openbsd*): Likewise.
18508         (sparclite-*-elf*): Include tm-dwarf2.h.
18509         (sparc86x-*-elf*): Likewise.
18510         (sparc64-*-elf*): Likewise.
18511         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
18512         (DBX_DEBUGGING_INFO): Likewise.
18513         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
18514         (PREFERRED_DEBUGGING_TYPE): Likewise.
18515         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
18516         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
18517         (PREFERRED_DEBUGGING_TYPE): Likewise.
18518         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
18519         (PREFERRED_DEBUGGING_TYPE): Likewise.
18520         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
18521
18522 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
18523
18524         PR target/18701
18525         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
18526
18527 2005-01-20  Paul Brook  <paul@codesourcery.com>
18528
18529         * doc/rtl.texi: Document value extension requirements for CONST_INT.
18530
18531 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18532
18533         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
18534         label is first in a sequence of labels.
18535
18536         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
18537
18538 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
18539             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
18540
18541         * doc/sourcebuild.texi (Test Directives): New.
18542
18543 2005-01-20  Roger Sayle  <roger@eyesopen.com>
18544
18545         * real.c (real_floor): Don't leave the result uninitialized when
18546         mode is VOIDMode, but return the unrounded intermediate value.
18547         (real_ceil): Likewise.
18548
18549 2005-01-20  Paul Brook  <paul@codesourcery.com>
18550
18551         * config/arm/arm.md (insv): Use gen_int_mode.
18552
18553 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
18554
18555         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
18556         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
18557         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
18558         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
18559         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
18560
18561 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
18562
18563         Fix PR debug/19124
18564         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
18565         fbreg, so we have to assume we can't.
18566         (loc_descriptor_from_tree_1): Ditto.
18567         (containing_function_has_frame_base): New function.
18568         (add_location_or_const_value_attribute): Use it.
18569         Also try to generate a frame_base from a single element location
18570         list.
18571
18572 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18573
18574         PR tree-optimization/15349
18575         * timevar.def (TV_TREE_MERGE_PHI): New.
18576         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
18577         PHI_WANTED.
18578         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
18579         calls to tree_forwarder_block_p.
18580         (remove_forwarder_block_with_phi, merge_phi_nodes,
18581         gate_merge_phi, pass_merge_phi): New.
18582         * tree-optimize.c (init_tree_optimization_passes): Add
18583         pass_merge_phi.
18584         * tree-pass.h: Add an extern for pass_merge_phi;
18585
18586 2005-01-20  Richard Henderson  <rth@redhat.com>
18587
18588         PR target/19418
18589         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
18590         (_mm_castps_pd, _mm_castps_si128): New.
18591         (_mm_castsi128_ps, _mm_castsi128_pd): New.
18592
18593 2005-01-20  Richard Henderson  <rth@redhat.com>
18594
18595         PR target/19530
18596         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
18597         __builtin_ia32_vec_init_v2si.
18598         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
18599         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
18600         (ix86_init_mmx_sse_builtins): Create it.
18601         (ix86_expand_builtin): Expand it.
18602         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
18603         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
18604         (vec_extractv2si_0, vec_extractv2si_1): New.
18605
18606 2005-01-20  Richard Henderson  <rth@redhat.com>
18607
18608         PR target/16533
18609         * config/i386/i386.c (ix86_expand_push): New.
18610         * config/i386/mmx.md (push<MMXMODE>1): New.
18611         * config/i386/sse.md (push<SSEMODE>1): New.
18612         * config/i386/i386-protos.h: Update.
18613
18614 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
18615
18616         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
18617         copyright.
18618
18619 2005-01-20  Richard Henderson  <rth@redhat.com>
18620
18621         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
18622         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
18623
18624 2005-01-19  Richard Henderson  <rth@redhat.com>
18625
18626         PR target/19350
18627         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
18628         to V4SFmode in SSE1 fallback load path.
18629
18630 2005-01-19  Richard Henderson  <rth@redhat.com>
18631
18632         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
18633         in QImode expansion to ix86_expand_vector_set.
18634         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
18635
18636 2005-01-19  Richard Henderson  <rth@redhat.com>
18637
18638         PR target/19511
18639         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
18640         subclass of the input class.
18641         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
18642         Always true for cross-SSE1 classes.  Rationalize conditionals.
18643         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
18644         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
18645         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
18646         (movdi_2): Add MMX/SSE zeros.
18647         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
18648         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
18649         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
18650         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
18651         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
18652         (zero_extendsidi2_rex64_1): Remove.
18653         (MOV0 peephole): Check GENERAL_REG_P.
18654
18655 2005-01-19  Richard Henderson  <rth@redhat.com>
18656
18657         PR target/19427
18658         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
18659         shufps elements.
18660         (ix86_expand_vector_extract): Likewise.
18661
18662 2005-01-19  Richard Henderson  <rth@redhat.com>
18663
18664         PR middle-end/19304
18665         * expr.c (emit_move_change_mode): New argument force; use
18666         simplify_gen_subreg if true.
18667         (emit_move_via_alt_mode): Merge into ...
18668         (emit_move_via_integer): ... here.
18669         (emit_move_ccmode): Use emit_move_change_mode directly.
18670
18671 2005-01-19  Richard Henderson  <rth@redhat.com>
18672
18673         PR target/19518
18674         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
18675         (alpha_preferred_reload_class): Handle CONST_VECTOR.
18676         (alpha_emit_set_const_1): Add no_output parameter; don't emit
18677         rtl if true.
18678         (alpha_emit_set_const): Likewise.  Make static.
18679         (alpha_emit_set_long_const): Make static.
18680         (alpha_extract_integer): Split out from alpha_expand_mov.
18681         (alpha_split_const_mov): Likewise.
18682         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
18683         (alpha_legitimate_constant_p): New.
18684         * config/alpha/alpha-protos.h: Update.
18685         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
18686         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
18687         * config/alpha/alpha.md (movsi): Add n alternative.
18688         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
18689         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
18690         (splitters for all of the above): Use alpha_split_const_mov.
18691         * config/alpha/predicates.md (non_add_const_operand): New.
18692         (non_zero_const_operand): New.
18693         (input_operand): Use alpha_legitimate_constant_p after reload.
18694
18695 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
18696
18697         PR tree-optimization/19038
18698         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
18699         (add_candidate): Add ivs with increment in latch only if
18700         allow_ip_end_pos_p is true.
18701         (determine_iv_cost): Use empty_block_p.
18702
18703 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
18704
18705         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
18706         (compute_dominance_frontiers): Ditto.
18707
18708 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
18709
18710         PR target/19529
18711         * config/sh/t-rtems: New.
18712         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
18713
18714 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
18715
18716         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
18717         the offset of the selected field.
18718
18719 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
18720
18721         * tree-cfg.c (remove_forwarder_block): Fix the check to
18722         prevent a nonlocal label from appearing in the middle of a
18723         basic block.
18724
18725 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
18726
18727         PR rtl-optimization/19462
18728         * reorg.c (find_end_label): Create return insn only if
18729         current_function_epilogue_delay_list is empty.
18730
18731 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
18732
18733         * doc/passes.texi: Remove paragraph mentioning new-ra.
18734
18735 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
18736
18737         PR rtl-optimization/15139
18738         * combine.c: Include params.h.
18739         (count_rtxs): New function.
18740         (record_value_for_reg): If replace_rtx would replace at least
18741         2 occurrences of REG in VALUE and TEM is really large, replace REG with
18742         (clobber (const_int 0)) instead of TEM.
18743         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
18744         * params.h (MAX_LAST_VALUE_RTL): New.
18745         * Makefile.in (combine.o): Depend on $(PARAMS_H).
18746         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
18747
18748         PR c/17297
18749         * c-typeck.c (digest_init): Only call build_vector if all constructor
18750         elements are *_CST nodes.
18751         * gimplify.c (gimplify_init_constructor): Likewise.
18752
18753         PR middle-end/19164
18754         * c-typeck.c (digest_init): Only call build_vector if inside_init
18755         is a CONSTRUCTOR.
18756
18757 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
18758
18759         * toplev.c (init_asm_output): Remove dead #ifdef.
18760
18761 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
18762
18763         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
18764
18765 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
18766
18767         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
18768         accessing DECL_FUNCTION_CODE.
18769         * dojump.c (do_jump): Likewise.
18770         * gimplify.c (gimplify_call_expr): Likewise.
18771         * predict.c (expr_expected_value): Likewise.
18772         (strip_builtin_expect): Likewise.
18773         * tree-inline.c (estimate_num_insns_1): Likewise.
18774         * tree-ssa-loop-im.c (stmt_cost): Likewise
18775         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
18776         (tree_expr_nonnegative_p): Likewise.
18777
18778 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
18779
18780         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
18781         variant of the load_pcrel_sym pattern.
18782         * config/sparc/sparc.md (P macro): Move to the top.
18783         (load_pcrel_sym): Macroize using P.
18784         (save_register_window): Likewise.
18785
18786 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
18787
18788         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
18789         ("sordered"): Same.
18790
18791 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
18792
18793         PR C/19472
18794         * c-typeck.c (build_asm_expr): Strip nops off
18795         input memory operands.
18796
18797 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
18798
18799         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
18800         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
18801         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
18802         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
18803
18804 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
18805
18806         PR target/19379
18807         * config/i386/i386.c (override_options): If the 80387 is disabled,
18808         then do not return FP values using FP registers.
18809
18810 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
18811
18812         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
18813         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
18814         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
18815         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
18816         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
18817         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
18818         output.h, postreload-gcse.c, postreload.c, recog.c,
18819         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
18820         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
18821         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
18822         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
18823         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
18824         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
18825         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
18826         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
18827
18828         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
18829         config/alpha/alpha.c, config/arm/vfp.md,
18830         config/i386/emmintrin.h, config/i386/i386-modes.def,
18831         config/i386/i386-protos.h, config/i386/i386.h,
18832         config/i386/pmmintrin.h, config/i386/ppro.md,
18833         config/i386/predicates.md, config/i386/xmmintrin.h,
18834         config/i860/i860.c, config/ia64/ia64-modes.def,
18835         config/ia64/ia64-protos.h, config/ia64/ia64.h,
18836         config/ia64/ia64.md, config/ia64/itanium1.md,
18837         config/ia64/itanium2.md, config/ia64/predicates.md,
18838         config/iq2000/iq2000.h, config/mips/linux64.h,
18839         config/rs6000/aix41.h, config/rs6000/aix43.h,
18840         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
18841         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
18842         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
18843         config/sparc/linux64.h, config/sparc/litecoff.h,
18844         config/sparc/sp64-elf.h, config/sparc/sparc.c,
18845         config/sparc/sparc.h, config/sparc/sparc.md,
18846         config/sparc/sysv4-only.h: Update copyright.
18847
18848 2005-01-18  Richard Henderson  <rth@redhat.com>
18849
18850         PR target/19496
18851         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
18852
18853 2005-01-18  Marc Espie  <espie@openbsd.org>
18854         * config/i386/openbsdelf.h: Typo.
18855
18856 2005-01-18  Richard Henderson  <rth@redhat.com>
18857
18858         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
18859         special case for sse.
18860         * config/i386/predicates.md (sse_comparison_operator): Likewise.
18861
18862 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
18863
18864         * tree-inline.c (estimate_num_insns_1): Added cases for
18865         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
18866
18867 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
18868
18869         PR rtl-optimization/19296
18870         * combine.c (simplify_comparison): Rewrite the condition under
18871         which a non-paradoxical SUBREG of a PLUS can be lifted when
18872         compared against a constant.
18873
18874 2005-01-18  Andi Kleen <ak@muc.de>
18875
18876         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
18877         * c.opt (-Wpointer-sign): Add.
18878         * doc/invoke.texi: (-Wpointer-sign): Add.
18879
18880 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
18881
18882         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
18883         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
18884         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
18885         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
18886         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
18887         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
18888         for TARGET_MIX_SSE_I387.
18889         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
18890         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
18891         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
18892         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
18893         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
18894         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
18895         TARGET_MIX_SSE_I387.
18896         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
18897         from expander.
18898
18899 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
18900
18901         PR target/19424
18902         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
18903         Add movaps alternative for xmm reg->reg move.
18904
18905 2005-01-17  Jeff Law  <law@redhat.com>
18906
18907         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
18908         at the end of the main DOM loop rather than just before DOM exits.
18909
18910 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
18911
18912         PR tree-optimization/19121
18913         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
18914         adding aliases to a name tag, also add them to the pointer's
18915         type tag.
18916         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
18917         sensitive alias info at all.  Only check that the two pointers
18918         have compatible pointed-to sets.
18919         * tree-ssa.c (verify_name_tags): Verify that the alias set of
18920         a pointer's type tag is a superset of the alias set of the
18921         pointer's name tag.
18922
18923 2005-01-17  James E Wilson  <wilson@specifixinc.com>
18924
18925         PR target/19357
18926         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
18927         comment to document why.
18928
18929 2005-01-17  Richard Henderson  <rth@redhat.com>
18930
18931         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
18932         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
18933         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
18934         sse2_vmsminv2df3_finite): New.
18935         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
18936         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
18937         Force op1 into register.
18938
18939 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
18940
18941         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
18942         bubblestrap from always rebuilding build directory.
18943
18944 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
18945
18946         * config/s390/s390.md ("*clc"): Remove incorrect '='.
18947         ("*cmpmem_short"): Likewise.
18948
18949 2005-01-17  Steven Bosscher  <stevenb@suse.de>
18950
18951         * basic-block.h: Document BB_* flags.
18952         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
18953         use an sbitmap instead.
18954         * sched-rgn.c (compute_trg_info): Likewise.
18955
18956 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
18957
18958         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
18959         redundant target_cpu_default and extra_parts lines.  Use the default
18960         "from-abi" ISA.
18961         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
18962         (SUBTARGET_EXTRA_SPECS): Delete.
18963         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
18964         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
18965         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
18966         and "n32" for -mabi=n32.
18967
18968 2005-01-17  Ian Lance Taylor  <ian@airs.com>
18969
18970         PR c/5675
18971         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
18972         fold constant variables into initial values.
18973
18974 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
18975
18976         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
18977
18978         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
18979         through the statements backward.
18980
18981 2005-01-17  Ian Lance Taylor  <ian@airs.com>
18982
18983         PR middle-end/13127:
18984         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
18985         a variable set to the return value of the inlined function.
18986
18987 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
18988
18989         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
18990         when modes are tieable.
18991
18992 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
18993
18994         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
18995         of pthread_create to find out if threads are enabled.
18996         * gthr-posix95.h (__gthread_active_p): Likewise.
18997
18998 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
18999
19000         * common.opt (-fnew-ra): Remove.
19001         * ra*.*: Remove.
19002         * toplev.h (flag_new_regalloc): Remove.
19003         * Makefile.in (ra*.*): Don't mention.
19004         * passes.c (rest_of_handle_new_regalloc): Remove.
19005         (rest_of_handle_combine, rest_of_compilation): Always consider
19006         flag_new_regalloc as false.
19007         * doc/invoke.texi: Don't document -fnew-ra.
19008
19009 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
19010
19011         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
19012         last parameter to reg_scan.
19013         * loop.c (loop_optimize): Likewise.
19014         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
19015         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
19016         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
19017         rest_of_handle_gcse, rest_of_handle_loop_optimize,
19018         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
19019         * regclass.c (reg_scan): Likewise, for the declaration.
19020         * rtl.h (reg_scan): Likewise, for the prototype.
19021
19022 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
19023
19024         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
19025         mark_dfs_back_edges.
19026
19027 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
19028
19029         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
19030         (compute_avail): Uses don't go in tmp_gen.
19031
19032 2005-01-16  Steven Bosscher  <stevenb@suse.de>
19033
19034         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
19035         loop to look for a free slot in a page entry.
19036
19037 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19038
19039         PR target/16304
19040         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
19041         * toplev.c (compile_file): Call process_pending_assemble_output_defs
19042         just before targetm.asm_out.file_end.
19043         * tree.h (process_pending_assemble_output_defs): Declare.
19044         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
19045         New functions.
19046         (assemble_alias): Defer generation of assembly code for defines when
19047         TARGET_DEFERRED_OUTPUT_DEFS is true.
19048         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
19049         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
19050         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
19051
19052 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19053
19054         PR target/19336
19055         * pa.c (pa_scalar_mode_supported_p): New function.
19056         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
19057         * pa.h (MIN_UNITS_PER_WORD): Add comment.
19058
19059         * pa-protos.h (prefetch_operand): Delete.
19060         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
19061         * pa.c (prefetch_operand): Delete.
19062         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
19063         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
19064         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
19065         and prefetch_nocc_operand.
19066         * pa.md (prefetch): Rework to avoid reload problems handling short
19067         displacements when a cache control completer needs to be provided.
19068         (prefetch_32, prefetch_64): Delete.
19069         (prefetch_cc, prefetch_nocc): New patterns.
19070
19071 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
19072
19073         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
19074
19075 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19076
19077         PR ada/19388
19078         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
19079         exceeds maximum alignment for global common data.
19080         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
19081         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
19082
19083 2004-01-15  Roger Sayle  <roger@eyesopen.com>
19084
19085         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
19086
19087 2004-01-15  Roger Sayle  <roger@eyesopen.com>
19088
19089         * harg-reg-set.h (reg_class_names): Prototype global array.
19090         * regclass.c (reg_class_names): Declare here and initialize to
19091         REG_CLASS_NAMES.
19092         (dump_regclass): Remove local declaration of reg_class_names.
19093         (regclass): Likewise.
19094         * cfg.c (dump_flow_info): Likewise.
19095         * ra-debug.c (reg_class_names): Likewise.
19096         * regrename.c (reg_class_names): Likewise.
19097         * reload.c (reg_class_names): Likewise.
19098         * reload1.c (spill_failure): Likewise.
19099         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
19100
19101 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
19102
19103         * config/s390/s390.md ("reload_outti"): Remove predicate for
19104         output operand.  Abort if operand is not a MEM.
19105         ("reload_outdi", "reload_outdf"): Likewise.
19106
19107 2005-01-15  Marc Espie  <espie@openbsd.org>
19108
19109         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
19110         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
19111         * config/openbsd.h:  Fix C++ includes for native configurations.
19112         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
19113         Add trampoline support.
19114         * config/i386/openbsdelf.h: New.
19115
19116 2005-01-15  Marc Espie  <espie@openbsd.org>
19117
19118         * collect2.c (main): Explicitly parse -dynamic-linker option.
19119
19120 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
19121
19122         PR tree-optimization/19060
19123         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
19124         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
19125         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
19126         and handle extract_range_from_cond returning false.
19127         * fold-const.c (fold): Optimize comparisons with min/max even for
19128         width > HOST_BITS_PER_WIDE_INT.
19129
19130 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
19131
19132         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
19133         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
19134         Remove little endian multilib variants.
19135         Add mips32 multilib variant.
19136
19137 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
19138
19139         * explow.c (copy_all_reg, stabilize): Remove.
19140         * expr.h: Remove the corresponding prototypes.
19141
19142         * rtlanal.c (regs_set_between_p): Remove.
19143         * rtl.h: Remove the corresponding prototype.
19144
19145 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
19146
19147         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
19148         to rs6000_nonimmediate_operand.
19149         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
19150         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
19151         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
19152         rs6000_nonimmediate_operand.
19153         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
19154         rs6000_nonimmediate_operand.
19155
19156 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
19157
19158         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
19159
19160 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
19161
19162         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
19163         on e500v2.
19164         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
19165         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
19166
19167         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
19168         (rs6k_nonimmediate_operand): New.
19169         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
19170         correctly.
19171         (legitimate_lo_sum_address_p): Same.
19172         (rs6000_legitimize_address): Same.
19173         (rs6000_legitimize_reload_address): Same.
19174         (rs6000_legitimate_address): Same.
19175         (spe_build_register_parallel): Pass DF and DC modes in a DI
19176         register.
19177
19178         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
19179         to rs6k_nonimmediate_operand.
19180
19181         * config/rs6000/spe.md ("*frob_df_di"): New.
19182         ("*frob_di_df"): New.
19183         ("*frob_di_df_2"): New.
19184         ("*mov_sidf_e500_subreg0"): New.
19185         ("*mov_sidf_e500_subreg4"): New.
19186         ("*movdf_e500_double"): Change predicate to
19187         rs6k_nonimmediate_operand.
19188
19189 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
19190
19191         * postreload.c (move2add_note_store): Only call
19192         trunc_int_for_mode on scalar integers.
19193
19194 2005-01-14  Steven Bosscher  <stevenb@suse.de>
19195
19196         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
19197         replace BB_VISITED uses.
19198         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
19199         (propagate_necessity): Check the bitmap instead of BB_VISITED.
19200         (tree_dce_done): Free visited_control_parents.
19201         (perform_tree_ssa_dce): Allocate and clear it.
19202         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
19203         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
19204         instead of BB_VISITED.
19205
19206 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
19207
19208         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
19209         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
19210         Remove unused prototypes.
19211
19212 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
19213
19214         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
19215         64-bit register usage.
19216         (spe_func_has_64bit_regs_p): Add FIXME note.
19217
19218 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
19219
19220         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
19221         flag_finite_math_only with flag_unsafe_math_optimizations.
19222
19223 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
19224
19225         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
19226         end-of-stack check.
19227         (__tpf_eh_return): Copy TPF private stack area from the module
19228         boundary stack frame.  Add check for when module addresses are
19229         equal, but no stub address is found.
19230
19231 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
19232
19233         PR target/7525
19234         * arm.h (struct machine_function): Add call_via field.
19235         (thumb_call_via_label): Declare.
19236         * arm.c (thumb_call_via_label): New variable.
19237         (thumb_call_reg_needed): New variable.
19238         (arm_output_function_epilogue): For Thumb code, output any per-function
19239         call-indirect trampolines.
19240         (thumb_call_via_reg): New function.
19241         (arm_file_end): New function.
19242         (TARGET_ASM_FILE_END): Call arm_file_end.
19243         (aof_file_end): Likewise.
19244         * arm-protos.h (thumb_call_via_reg): Declare.
19245         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
19246         thumb_call_via_reg in normal case.
19247
19248 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
19249
19250         PR middle-end/19084
19251         PR rtl-optimization/19348
19252         * recog.c (peephole2_optimize): Do global life update if some peephole
19253         decides it doesn't need at least one of its inputs and that change
19254         influences liveness at the start of the basic block.
19255
19256         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
19257         arguments instead of 1.
19258
19259 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
19260
19261         PR middle-end/18820
19262         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
19263         zero for nested functions needing a static chain or functions
19264         with a non-constant address.
19265
19266 2005-01-13  Roger Sayle  <roger@eyesopen.com>
19267
19268         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
19269         (and (sign_extend X) C) into (zero_extend (and X C)).
19270
19271 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
19272
19273         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
19274
19275 2005-01-13  Richard Henderson  <rth@redhat.com>
19276
19277         PR target/19009
19278         PR target/19250
19279         PR target/19252
19280         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
19281         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
19282         not just TARGET_SSE.
19283         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
19284         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
19285         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
19286         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
19287         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
19288         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
19289         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
19290         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
19291         (movdicc_c_rex64): Rename with '*'.
19292         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
19293         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
19294         (movsfcc_1_387): Rename from movsfcc_1.
19295         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
19296         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
19297         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
19298         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
19299         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
19300         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
19301         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
19302         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
19303         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
19304         sse_movdfcc_const0_4): Remove.
19305         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
19306         recognize min/max early.  Update for changed sse cmove patterns.
19307         (ix86_split_sse_movcc): New.
19308         * config/i386/i386-protos.h: Update.
19309
19310 2005-01-13  Steven Bosscher  <stevenb@suse.de>
19311
19312         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
19313         (fix_stmt_v_may_defs): Likewise.
19314
19315 2005-01-13  Richard Henderson  <rth@redhat.com>
19316
19317         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
19318         for converting the mask.
19319
19320 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
19321
19322         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
19323         definition to 600.
19324
19325 2005-01-13  Richard Henderson  <rth@redhat.com>
19326
19327         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
19328         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
19329         IX86_BUILTIN_MOVDQ2Q): Remove.
19330         (IX86_BUILTIN_VEC_EXT_V4SI): New.
19331         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
19332         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
19333         shuffling.
19334         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
19335         (sse2_pextrw): Fix immediate constraint.
19336         (sse2_loadq, sse2_loadq_rex64): Remove.
19337         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
19338         Use __builtin_ia32_vec_ext_<size>.
19339         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
19340
19341 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
19342
19343         * function.c (assign_parm_setup_block): Look inside original
19344         entry_parm when inspecting PARALLEL.
19345
19346 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
19347             Joel Sherrill  <joel@oarcorp.com>
19348
19349         PR target/19399
19350         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
19351         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
19352         rtems_gxx_recursive_mutex_init.
19353         (__gthread_recursive_mutex_lock): New function.
19354         (__gthread_recursive_mutex_trylock): Likewise.
19355         (__gthread_recursive_mutex_unlock): Likewise.
19356
19357 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
19358
19359         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
19360
19361 2005-01-13  Jan Beulich  <jbeulich@novell.com>
19362
19363         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
19364         (ashrti3_internal): Indicate output is early clobber. Generate result
19365         into output rather than first input. Use move for low word of output
19366         if shift count is exactly 64.
19367         (lshrti3_internal): Likewise.
19368
19369 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
19370
19371         PR target/18329
19372         PR target/18330
19373         * reload1.c (delete_output_reload): Don't delete an output reload
19374         if the pseudo lives longer than a single basic block.  Adjust and
19375         improve wording of comment.
19376
19377 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
19378
19379         PR target/19334
19380         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
19381         of TYPE_SIZE where we mean the number of bytes.
19382
19383 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
19384
19385         * function.c (assign_parm_setup_block): Relax condition on
19386         multi-register optimization.
19387
19388 2005-01-12  Nick Clifton  <nickc@redhat.com>
19389
19390         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
19391         an "in_delay_slot" attribute of "no" to prevent them being used in
19392         delay slots.  This is forbidden because they might generate
19393         exceptions.
19394
19395 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
19396
19397         PR target/19389
19398         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
19399         with r->Y and Y->r.
19400
19401 2005-01-12  Nick Clifton  <nickc@redhat.com>
19402
19403         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
19404         passed on to GAS) but do not define, as GAS no longer supports or
19405         needs the -m2000 option.
19406
19407 2005-01-11  Roger Sayle  <roger@eyesopen.com>
19408
19409         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
19410         type as args of unprototyped builtins aren't automatically promoted.
19411         (fold_builtin_abs): Likewise.
19412
19413 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19414
19415         * Makefile.in: Set a `build-warn' variable.
19416
19417 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
19418
19419         PR tree-optimization/17949
19420         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
19421         (find_interesting_uses_address): Use it.
19422
19423 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
19424
19425         * regrename.c (kill_value): Handle subreg's that won't simplify.
19426
19427 2005-01-11  Richard Henderson  <rth@redhat.com>
19428
19429         PR target/13366
19430         * config/i386/i386.h (enum ix86_builtins): Move ...
19431         * config/i386/i386.c: ... here.
19432         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
19433         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
19434         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
19435         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
19436         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
19437         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
19438         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
19439         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
19440         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
19441         IX86_BUILTIN_LOADDDUP): Remove.
19442         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
19443         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
19444         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
19445         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
19446         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
19447         (ix86_init_builtins): Make static.
19448         (ix86_init_mmx_sse_builtins): Update for changed builtins.
19449         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
19450         if all the modes match.  Otherwise, fake it.
19451         (get_element_number, ix86_expand_vec_init_builtin,
19452         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
19453         (ix86_expand_builtin): Make static.  Update for changed builtins.
19454         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
19455         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
19456         (ix86_expand_vector_init_duplicate): New.
19457         (ix86_expand_vector_init_low_nonzero): New.
19458         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
19459         Split out from ix86_expand_vector_init; handle integer modes.
19460         (ix86_expand_vector_init): Use them.
19461         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
19462         * config/i386/i386-protos.h: Update.
19463         * config/i386/predicates.md (reg_or_0_operand): New.
19464         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
19465         (movv2sf_internal): Likewise.  And a splitter to match them all.
19466         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
19467         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
19468         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
19469         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
19470         (mmx_pinsrw): Fix operand ordering.
19471         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
19472         rather than sse_loadss expander.
19473         (movv2df splitter): Similarly.
19474         (sse_loadss, sse_loadlss): Remove.
19475         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
19476         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
19477         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
19478         (sse3_movddup): Rename with '*'.
19479         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
19480         (sse2_loadsd): Remove.
19481         (vec_dupv2df_sse3): Rename from sse3_loadddup.
19482         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
19483         (sse2_pinsrw): Fix argument ordering.
19484         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
19485         (sse2_stored): Remove 'r' destination.
19486         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
19487         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
19488         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
19489         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
19490         vec_extractv16qi, vec_initv16qi): New.
19491
19492         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
19493         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
19494         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
19495         constructor form.
19496         (_mm_load_pd, _mm_store_pd): Use plain dereference.
19497         (_mm_load_si128, _mm_store_si128): Likewise.
19498         (_mm_load1_pd): Use _mm_set1_pd.
19499         (_mm_load_sd): Use _mm_set_sd.
19500         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
19501         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
19502         (_mm_set_epi64): Use _mm_set_epi64x.
19503         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
19504         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
19505         _mm_setr_epi8): Use _mm_set_foo form.
19506         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
19507         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
19508         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
19509         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
19510         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
19511         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
19512         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
19513         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
19514         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
19515         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
19516         (_mm_movedup_pd): Use _mm_shuffle_pd.
19517         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
19518         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
19519         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
19520         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
19521         Use _mm_setzero_ps.
19522         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
19523         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
19524         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
19525         (_mm_store_ps): Use raw dereference.
19526         (_mm_store1_ps): Use _mm_storeu_ps.
19527         (_mm_storer_ps): Use _mm_store_ps.
19528         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
19529         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
19530
19531 2005-01-11  Stan Shebs  <shebs@apple.com>
19532
19533         * config/rs6000/rs6000.c (machopic_output_stub): Issue
19534         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
19535
19536 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
19537
19538         PR target/18761
19539         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
19540         Skip all DECLs except for FIELD_DECLs.
19541
19542 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
19543
19544         * config/s390/s390.c (override_options): Return error if
19545         -mbackchain, -mpacked-stack and -mhard-float are used together.
19546         (s390_va_start): Remove the backchain && packed-stack special case.
19547         (s390_gimplify_va_arg): Likewise.
19548         * doc/invoke.texi: Remove the ABI incompatibility note.
19549
19550 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
19551
19552         * config/s390/s390.c (struct s390_frame_layout): Remove
19553         save_backchain_p.
19554         (s390_frame_info, s390_emit_prologue): Replace occurrences of
19555         save_backchain_p with TARGET_BACKCHAIN.
19556
19557 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
19558
19559         PR target/18916
19560         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
19561         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
19562         * function.c (locate_and_pad_parm): Set new field.
19563         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
19564         Tweak where_pad test to include "none".  Always set mem align for
19565         stack_parm.
19566         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
19567         not sufficient for type.
19568         (assign_parm_setup_block): If stack_parm is zero on entry, always
19569         make a new stack local.  Block move old stack parm if necessary
19570         to new aligned stack local.
19571         (assign_parm_setup_stack): Use a block move to handle
19572         potentially misaligned entry_parm.
19573         (assign_parms_unsplit_complex): Specify required alignment when
19574         creating stack local.
19575         * calls.c (compute_argument_addresses): Override alignment of stack
19576         arg calculated from its type with the alignment given by
19577         FUNCTION_ARG_BOUNDARY.
19578         (store_one_arg): Likewise.
19579
19580 2005-01-11  Jan Beulich  <jbeulich@novell.com>
19581
19582         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
19583         Change respective itanium_class attribute to ialu.
19584         (shladdp4_internal): New.
19585         * config/ia64/predicates.md (shladd_log2_operand): New.
19586
19587 2005-01-11  Richard Henderson  <rth@redhat.com>
19588
19589         * expr.c (store_constructor): Use rtvec_alloc instead of
19590         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
19591
19592 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
19593
19594         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
19595
19596 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
19597
19598         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
19599         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
19600         (TARGET_RWRELOC): Define.
19601         (ia64_rwreloc_section_type_flags): Delete.
19602         (ia64_section_type_flags): New function.
19603         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
19604         (TARGET_RWRELOC): Define.
19605
19606 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
19607
19608         PR target/18987
19609         * config/ia64/ia64.c (process_set): For alloc insn, only call
19610         process_epilogue is !frame_pointer_needed.
19611
19612 2005-01-10  Roger Sayle  <roger@eyesopen.com>
19613
19614         PR c++/19355
19615         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
19616         unary operator and can't be treated as a binary/comparison operator.
19617
19618 2005-01-10  Richard Henderson  <rth@redhat.com>
19619
19620         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
19621         (ix86_return_in_memory): Likewise.
19622         (function_arg_advance):  Likewise.  Mirror structure in function_arg
19623         for choosing register to advance.
19624
19625 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
19626
19627         * tree-vectorizer.c, tree.def: Fix comment typos.
19628
19629 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
19630
19631         * config/s390/s390.c (struct processor_costs): 4 new fields:
19632         ddbr, ddr, debr, der.
19633         (s390_rtx_costs): More precise handling of divide instructions.
19634
19635 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
19636
19637         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
19638
19639 2005-01-10  Jan Beulich  <jbeulich@novell.com>
19640
19641         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
19642         names resulting from -ffunction-sections/-fdata-sections and linkonce
19643         ones.
19644         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
19645         based on the section name. Rearrange the section name comparison logic
19646         slightly so that each section name is compared against at most once.
19647
19648 2005-01-10  Ben Elliston  <bje@au.ibm.com>
19649
19650         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
19651         targets for which -fPIC reduces limitations on the GOT size.
19652
19653 2005-01-09  Falk Hueffner  <falk@debian.org>
19654
19655         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
19656         X/C1 cmpop C2.
19657
19658 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
19659
19660         PR target/18720
19661         * collect2.c (main): Set aixrtl_flag for -brtl option.
19662         (resolve_lib_name): Search for .so file extension before .a
19663         if aixrtl_flag set.
19664
19665 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
19666
19667         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
19668         (vect_analyze_data_refs_alignment): Add dump prints.
19669
19670 2005-01-09  Ira Rosen  <irar@il.ibm.com>
19671
19672         * tree-vectorizer.c (vect_analyze_offset_expr): Use
19673         expr_invariant_in_loop_p.
19674         Initialize outputs first thing in the function.
19675         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
19676         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
19677         (vect_analyze_pointer_ref_access): Check that the initial condition of
19678         the access function is loop invariant.
19679
19680 2005-01-09  Richard Henderson  <rth@redhat.com>
19681
19682         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
19683         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
19684         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
19685         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
19686         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
19687         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
19688         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
19689         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
19690         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
19691         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
19692         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
19693         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
19694         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
19695         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
19696         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
19697         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
19698         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
19699         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
19700         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
19701         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
19702         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
19703         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
19704         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
19705         mmx_ prefix.
19706         (mmx_clrdi, pavgusb): Remove.
19707         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
19708         with leading sse_ prefix.
19709         * config/i386/sse.md: Receive them.
19710         * config/i386/mmx.md: New file.
19711         (MMXMODE12, MMXMODE24, mmxvecsize): New.
19712         (subrv2sf3): Turn into expander for normal subtraction.
19713         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
19714         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
19715         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
19716         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
19717         commutative; use ix86_binary_operator_ok.
19718         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
19719         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
19720         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
19721         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
19722         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
19723         Macroize from existing patterns; use ix86_binary_operator_ok.
19724         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
19725         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
19726         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
19727         with vec_select+vec_concat.
19728         (mmx_pshufw, mmx_pshufw_1): Likewise.
19729         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
19730         (mmx_uavgv4hi3): Model correctly.
19731         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
19732         _mm_xor_si64): Remove casts.
19733
19734 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
19735
19736         PR tree-optimization/19224
19737         * tree-scalar-evolution.c (get_instantiated_value,
19738         set_instantiated_value): New functions.
19739         (instantiate_parameters_1): Cache the results.
19740         (instantiate_parameters, resolve_mixers): Initialize and free
19741         the cache.
19742
19743 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
19744
19745         * config/i386/i386.md (addhi_4): Correct reference in comment.
19746         (addqi_4): Same.
19747
19748 2005-01-08  Richard Henderson  <rth@redhat.com>
19749
19750         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
19751         (_mm_cvtsi128_si64x): Likewise.
19752         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
19753         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
19754         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
19755         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
19756         * config/i386/i386-protos.h: Update.
19757         * config/i386/i386.c (print_operand): Add 'H'.
19758         (ix86_fixup_binary_operands): Split out from ...
19759         (ix86_expand_binary_operator): ... here.
19760         (ix86_fixup_binary_operands_no_copy): New.
19761         (ix86_expand_fp_absneg_operator): Handle vector mode results.
19762         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
19763         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
19764         (safe_vector_operand): Use CONST0_RTX.
19765         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
19766         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
19767         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
19768         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
19769         special cases.
19770         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
19771         (IX86_BUILTIN_CMPNGESS): New.
19772         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
19773         (attr type): Add sselog1.
19774         (attr unit, attr memory): Handle it.
19775         (movti, movti_internal, movti_rex64): Move near other integer moves.
19776         (movtf, movtf_internal): Move near other fp moves.
19777         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
19778         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
19779         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
19780         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
19781         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
19782         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
19783         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
19784         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
19785         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
19786         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
19787         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
19788         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
19789         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
19790         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
19791         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
19792         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
19793         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
19794         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
19795         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
19796         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
19797         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
19798         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
19799         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
19800         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
19801         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
19802         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
19803         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
19804         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
19805         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
19806         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
19807         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
19808         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
19809         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
19810         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
19811         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
19812         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
19813         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
19814         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
19815         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
19816         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
19817         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
19818         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
19819         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
19820         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
19821         same time.
19822         (SSEPUSH, push<SSEPUSH>): Remove.
19823         (MMXPUSH, push<MMXPUSH>): Remove.
19824         (sse_movaps, sse_movaps_1, sse_movups): Remove.
19825         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
19826         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
19827         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
19828         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
19829         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
19830         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
19831         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
19832         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
19833         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
19834         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
19835         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
19836         (ppro_sse_log_V4SF): Handle sselog1.
19837         * config/i386/predicates.md (const_0_to_1_operand): New.
19838         (const_0_to_255_mul_8_operand): New.
19839         (const_1_to_31_operand): Rename from const_int_1_31_operand.
19840         (const_2_to_3_operand, const_4_to_7_operand): New.
19841         * config/i386/sse.md: New file.
19842         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
19843         (sse_movups): Rename from sse_movups_1.
19844         (sse_loadlss): Rename from sse_loadss_1.
19845         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
19846         from the name.
19847         (negv4sf2): Use ix86_expand_fp_absneg_operator.
19848         (absv4sf2, negv2df, absv2df): New.
19849         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
19850         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
19851         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
19852         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
19853         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
19854         (sse3_addsubv4sf3): Model correctly.
19855         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
19856         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
19857         (sse_movhlps): Model with vec_select+vec_concat.
19858         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
19859         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
19860         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
19861         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
19862         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
19863         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
19864         sse2_pshufhw_1): Likewise.
19865         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
19866         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
19867         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
19868         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
19869         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
19870         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
19871         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
19872         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
19873         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
19874         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
19875         sminv8hi3): Mark commutative
19876         operands.  Use ix86_binary_operator_ok.
19877         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
19878         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
19879         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
19880         sse2_punpcklqdq): Allow operand2 in memory.
19881         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
19882         sse2_movsd): Add memory alternatives.
19883         (sse_storelps): Turn expander into an insn; split after reload.
19884         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
19885         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
19886
19887 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
19888
19889         * configure.ac (DWARF-2 debug_line): Use objdump.
19890         * configure: Regenerate.
19891
19892 2005-01-08  Jeff Law  <law@redhat.com>
19893             Diego Novillo  <dnovillo@redhat.com>
19894
19895         PR tree-optimization/18241
19896         * tree-nrv.c (tree_nrv): Ignore volatile return values.
19897         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
19898         statements with volatile operands.
19899         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
19900         operands after marking a statement with has_volatile_ops.
19901
19902 2005-01-08  Roger Sayle  <roger@eyesopen.com>
19903
19904         * tree.c (int_fits_type_p): Always honor integer constant
19905         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
19906
19907 2005-01-08  Roger Sayle  <roger@eyesopen.com>
19908
19909         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
19910         the latent bug in rtl_delete_block has been resolved.
19911
19912 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
19913
19914         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
19915         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
19916
19917 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
19918
19919         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
19920         library as @multilib_dir@/$(SHLIB_SONAME).
19921
19922 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
19923
19924         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
19925         * configure: Regenerate.
19926
19927 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
19928
19929         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
19930         TYPE_MODE.
19931
19932 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
19933
19934         PR target/13674
19935         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
19936         Convert non-word aligned offset address using ld/std into
19937         indirect address.
19938
19939 2005-01-07  Richard Henderson  <rth@redhat.com>
19940
19941         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
19942
19943 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
19944
19945         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
19946
19947 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
19948
19949         PR tree-optimization/19283
19950         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
19951         is not shorter than the original type.
19952
19953         PR rtl-optimization/19012
19954         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
19955
19956         PR rtl-optimization/18861
19957         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
19958         (FULL_STATE): Define.
19959         (mark_tablejump_edge): New function.
19960         (purge_dead_tablejump_edges): New function.
19961         (find_bb_boundaries): Use it.
19962
19963         PR tree-optimization/18828
19964         * builtins.c (expand_builtin_next_arg): Remove argument and all
19965         the argument checking.
19966         (expand_builtin): Adjust caller.
19967         (expand_builtin_va_start): Likewise.  Remove error for too many
19968         arguments.
19969         (fold_builtin_next_arg): Issue error for too many arguments.
19970         After checking arguments, replace them with magic arguments that
19971         prevent further checking of the args.
19972
19973 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19974
19975         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
19976
19977 2005-01-06  Roger Sayle  <roger@eyesopen.com>
19978
19979         PR target/6077
19980         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
19981         and %{.S:...} (and their negative variants) to test whether the
19982         input file is assembler or pre-processed-assembler independent of
19983         the actual filename extension.
19984
19985 2005-01-06  Roger Sayle  <roger@eyesopen.com>
19986
19987         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
19988         of sign or zero extended values.
19989
19990 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
19991
19992         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
19993         for IBM long double format correctly.
19994
19995 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
19996
19997         Fix PR tree-optimization/18792
19998
19999         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
20000         to first_loop_depth, and use loop depth instead of loop number.
20001         (build_classic_dir_vector): Ditto.
20002         (compute_data_dependences_for_loop): Use depth, not loop number.
20003         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
20004         number. Pass in loops, instead of loop numbers.
20005         (gather_interchange_stats): Ditto.
20006         (linear_transform_loops): Ditto.
20007
20008 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
20009
20010         PR rtl-opt/13299
20011         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
20012         biv_fits_mode_p, extension_within_bounds_p): New functions.
20013         (check_ext_dependent_givs): Use them.
20014
20015 2005-01-06  Roger Sayle  <roger@eyesopen.com>
20016
20017         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
20018         more than one barrier, in which case we should delete them all.
20019
20020 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
20021
20022         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
20023
20024 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
20025
20026         Fix PR middle-end/19286
20027         Fix PR debug/19267
20028         * dwarf2out.c (gen_subprogram_die): If we've already tried to
20029         output this subprogram, simply ignore this attempt to do it again.
20030         (add_abstract_origin_attribute): Don't abort trying to add the abstract
20031         origin attribute if it's not possible.
20032         (gen_block_die): Don't ignore subblocks of "unused" blocks.
20033         (decls_for_scope): Ditto.
20034         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
20035         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
20036
20037 2005-01-05  Richard Henderson  <rth@redhat.com>
20038
20039         PR target/11327
20040         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
20041         (bdesc_2arg): Use it.
20042         (ix86_expand_binop_builtin): Force operands into registers
20043         when optimizing.
20044         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
20045         ix86_expand_sse_compare, ix86_expand_sse_comi,
20046         ix86_expand_builtin): Likewise.
20047
20048 2005-01-05  Richard Henderson  <rth@redhat.com>
20049
20050         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
20051         and VEC_SELECT.
20052         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
20053         (mulv4hi3): Set itanium_class mmmul.
20054         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
20055         (fpack): Rename from fpack_sfsf.
20056
20057 2005-01-05  Richard Henderson  <rth@redhat.com>
20058
20059         PR rtl-opt/10692
20060         * reload1.c (do_input_reload): Restrict the optimization deleteing
20061         a previous output reload to RELOAD_FOR_INPUT.
20062
20063 2005-01-05  Steven Bosscher  <stevenb@suse.de>
20064
20065         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
20066         comment that we fall through after case.
20067         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
20068         (distribute_links): Likewise.
20069         * cse.c (cse_insn): Likewise.
20070         * cselib.c (cselib_invalidate_mem): Likewise.
20071         * df.c: Update comments at the top of the file.
20072         (read_modify_subreg_p): Update comments here too.
20073         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
20074         * flow.c (mark_set_1): Likewise.
20075         (mark_used_regs): Likewise.
20076         * gcse.c (mems_conflict_for_gcse_p): Likewise.
20077         (canon_list_insert): Likewise.
20078         (mark_set): Likewise.
20079         (try_replace_reg): Likewise.
20080         (store_killed_in_insn): Likewise.
20081         * loop.c (count_one_set): Likewise.
20082         (basic_induction_var): Likewise.
20083         * postreload-gcse.c (find_mem_conflicts): Likewise.
20084         * postreload.c (reload_combine_note_store): Likewise.
20085         (move2add_note_store): Likewise.
20086         * reload.c (find_equiv_reg): Likewise.
20087         (mark_referenced_resources): Likewise.
20088         * rtlanal.c (set_noop_p): Likewise.
20089         (note_stores): Likewise.
20090         (note_uses): Likewise.
20091         * sched-deps.c (sched_analyze_1): Likewise.
20092         * sched-rgn.c (check_live_1): Likewise.
20093         (update_live_1): Likewise.
20094         * config/i860/i860.c: Likewise.
20095
20096         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
20097         an lvalue.
20098         (ZERO_EXTRACT): Mention that this one can be an lvalue.
20099
20100         * doc/rtl.texi: Update documentation for bit-fields and SET.
20101
20102 2005-01-05  Roger Sayle  <roger@eyesopen.com>
20103
20104         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
20105
20106 2005-01-05  Jan Hubicka  <jh@suse.cz>
20107             Richard Henderson  <rth@redhat.com>
20108
20109         PR target/18910
20110         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
20111         with an offset.
20112
20113 2005-01-05  Richard Henderson  <rth@redhat.com>
20114
20115         PR target/12902
20116         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
20117         (sse_shufps): Change operand 3 to const_int_operand.
20118         (sse2_storelps): Fix typo in template.
20119         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
20120         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
20121         (ix86_expand_builtin): Likewise.
20122
20123 2005-01-05  Julian Brown  <julian@codesourcery.com>
20124
20125         * config/arm/arm.c (arm_return_in_memory): Treat complex types
20126         as aggregates for AAPCS ABIs.
20127
20128 2005-01-05  Stan Shebs  <shebs@apple.com>
20129
20130         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
20131         Mach-O getters if ppc64.
20132         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
20133         size argument.
20134         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
20135         signed four-byte field for global code case.
20136         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
20137
20138 2005-01-05  Roger Sayle  <roger@eyesopen.com>
20139
20140         PR middle-end/19100
20141         * c-common.c: Include real.h.
20142         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
20143         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
20144         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
20145         * Makefile.in (c-common.o): Update dependencies.
20146
20147 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
20148
20149         * c-parse.in (asm_string): Add trailing semicolon.
20150
20151 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
20152
20153         * c-parse.in (asm_string): New.  Don't allow wide strings in
20154         'asm'.
20155         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
20156         asm_string instead of STRING.
20157
20158 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
20159
20160         * c-typeck.c (constructor_no_implicit): Remove.
20161         (set_designator, process_init_element): Don't check
20162         constructor_no_implicit.
20163
20164 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
20165             Kaz Kojima  <kkojima@gcc.gnu.org>
20166
20167         PR target/16482
20168         * lcm.c (create_pre_exit): New.
20169         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
20170         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
20171
20172 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
20173
20174         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
20175         -msoft-float in target_float_switch.
20176         * arm.c (arm_override_options): Fix processing of target_float_switch.
20177
20178 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
20179
20180         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
20181         preferencing.
20182
20183 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
20184
20185         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
20186         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
20187
20188 2005-01-04  Roger Sayle  <roger@eyesopen.com>
20189
20190         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
20191         if deleting the then-block allows the test-block to fallthru to the
20192         else-block.
20193
20194 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
20195
20196         PR c/19152
20197         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
20198         after the full declaration if the are in two different TUs.
20199
20200 2005-01-04  Richard Henderson  <rth@redhat.com>
20201
20202         PR tree-opt/19158
20203         * tree-sra.c (generate_one_element_init): Just
20204         call gimplify_and_add.
20205         (generate_element_init): Record the
20206         new referenced variables and mark them for renaming
20207         and split out to ...
20208         (generate_element_init_1): This.
20209         (scalarize_init): Don't call push_gimplify_context/
20210         pop_gimplify_context.
20211
20212 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
20213
20214         * toplev.c (get_src_pwd): Handle failure of getpwd().
20215
20216 2005-01-04  Roger Sayle  <roger@eyesopen.com>
20217
20218         * fold-const.c (fold_single_bit_test): Delete unreachable handling
20219         of TRUTH_NOT_EXPR.
20220         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
20221         all the cases handled by it are inverted by invert_truthvalue.
20222
20223 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
20224
20225         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
20226         (save_register_windowsi): Likewise.
20227
20228 2005-01-04  Richard Henderson  <rth@redhat.com>
20229
20230         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
20231
20232 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
20233
20234         PR middle-end/17767
20235         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
20236         any simplifications of vector mode comparison operators.
20237         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
20238
20239 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
20240             Devang Patel  <dpatel@apple.com>
20241
20242         PR tree-optimization/18308
20243         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
20244         the operands before creating a new expression.
20245         * dojump.c (do_jump): Make drop_through_label available
20246         for all cases.  Add expansion of COND_EXPR.
20247
20248 2005-01-04  Ira Rosen  <irar@il.ibm.com>
20249
20250         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
20251         INTEGER_CST instead of TREE_CONSTANT.
20252         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
20253         instead of TREE_CONSTANT.
20254         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
20255         instead of TREE_CONSTANT.
20256
20257 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
20258
20259         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
20260
20261 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
20262
20263         PR target/19240
20264         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
20265         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
20266
20267 2005-01-03  Richard Henderson  <rth@redhat.com>
20268
20269         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
20270         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
20271         fold_convert_const_real_from_real): Split out from ...
20272         (fold_convert_const): ... here.
20273
20274 2005-01-03  Richard Henderson  <rth@redhat.com>
20275
20276         PR target/19235
20277         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
20278         (mov<MMXMODEI>_internal): Likewise.
20279         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
20280         Add V2SF case; use it for SSE1; don't use TI.
20281         (movdf_integer): Likewise.
20282         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
20283
20284 2005-01-03  Ira Rosen  <irar@il.ibm.com>
20285
20286         * tree-vectorizer.c (vect_strip_conversions): New function.
20287         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
20288         check for binary class.
20289
20290 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
20291
20292         Fix PR debug/17924
20293         Fix PR debug/19191
20294         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
20295         is a decl.
20296         * gimple-low.c (mark_blocks_with_used_vars): New function.
20297         (mark_blocks_with_used_subblocks): Ditto.
20298         (mark_used_blocks): Ditto.
20299         (pass_mark_used_blocks): New pass.
20300         * tree-inline.c: Include debug.h.
20301         (expand_call_inline): Call outlining_inline_function here.
20302         * tree-optimize.c (init_tree_optimization_passes): Add
20303         pass_mark_used_blocks.
20304         * tree-pass.h (pass_mark_used_blocks): New.
20305         * Makefile.in (tree-inline.o): Add debug.h dependency.
20306
20307 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
20308
20309         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
20310         VAR_DECLs to have weak_import attribute.
20311
20312         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
20313         'struct ucontext'.
20314
20315 2004-01-03  Steven Bosscher  <stevenb@suse.de>
20316
20317         * passes.c (rest_of_compilation): Don't run regmove if only
20318         flag_expensive_optimizations, require flag_regmove instead.
20319
20320 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
20321
20322         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
20323         register "sparc".
20324         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
20325         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20326         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
20327         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20328
20329 2005-01-03  Richard Henderson  <rth@redhat.com>
20330
20331         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
20332         (ia64_const_ok_for_letter_p): New.
20333         (ia64_const_double_ok_for_letter_p): New.
20334         (ia64_extra_constraint): New.
20335         (ia64_expand_vecint_compare): New.
20336         (ia64_expand_vcondu_v2si): New.
20337         (ia64_expand_vecint_cmov): New.
20338         (ia64_expand_vecint_minmax): New.
20339         (ia64_print_operand): Add 'v'.
20340         (ia64_preferred_reload_class): New.
20341         (ia64_vector_mode_supported_p): New.
20342         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
20343         (PREFERRED_RELOAD_CLASS): Move to function.
20344         (CONST_OK_FOR_LETTER_P): Move to function.
20345         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
20346         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
20347         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
20348         (EXTRA_CONSTRAINT): Move to function.
20349         * config/ia64/ia64.md: Include vect.md.
20350         (itanium_class): Add mmalua.
20351         (type): Handle it.
20352         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
20353         (1b_mmalua): New.
20354         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
20355         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
20356         CONST0_RTX.
20357         (const_int_2bit_operand): New.
20358         (fr_reg_or_0_operand): New.
20359         * config/ia64/ia64-modes.def: Add vector modes.
20360         * config/ia64/ia64-protos.h: Update.
20361         * config/ia64/vect.md: New file.
20362
20363 2005-01-03  Richard Henderson  <rth@redhat.com>
20364
20365         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
20366
20367 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
20368
20369         PR target/19236
20370         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
20371         to SFmode.
20372         (log1pdf2): Change mode of operands[0,1] to DFmode.
20373
20374 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
20375
20376         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
20377         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
20378         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
20379         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
20380         SPARC_RELAXED_ORDERING.
20381
20382 2005-01-03  Richard Henderson  <rth@redhat.com>
20383             Uros Bizjak  <uros@kss-loka.si>
20384
20385         PR target/14631
20386         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
20387         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
20388         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
20389         handling.
20390         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
20391         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
20392         const_pow2_1_to_128_operand): New predicates.
20393
20394 2005-01-02  Greg McGary  <greg@mcgary.org>
20395
20396         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
20397         anonymous decls.
20398         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
20399         object.  [ptr_type]: Remove unused variable.
20400         Remember nearest addressable array-element or record-component
20401         when checking bitfield components.  Tolerate empty BIND_EXPR.
20402
20403 2005-01-01  Richard Henderson  <rth@redhat.com>
20404
20405         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
20406         that don't narrow the value.  Fail for other conversions.
20407
20408 2005-01-01  Richard Henderson  <rth@redhat.com>
20409
20410         PR c/19031
20411         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
20412         * c-lang.c (finish_file): Don't do it here.
20413         * objc/objc-act.c (objc_finish_file): Likewise.
20414
20415         * cgraph.c (decl_assembler_name_equal): New.
20416         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
20417         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
20418         * cgraph.h (struct cgraph_varpool_node): Add next.
20419         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
20420         * varasm.c (assemble_alias): Mark the target as needed.
20421
20422 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
20423
20424         PR middle-end/19221
20425         * function.c (get_arg_pointer_save_area): Use entry_of_function
20426         instead of get_insns.
20427
20428 2005-01-01  Roger Sayle  <roger@eyesopen.com>
20429             Andrew Pinski  <pinskia@physics.uc.edu>
20430             James E. Wilson  <wilson@specifixinc.com>
20431
20432         PR rtl-optimization/12092
20433         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
20434         is zero.
20435
20436 2005-01-01  Roger Sayle  <roger@eyesopen.com>
20437             Olivier Hainque  <hainque@act-europe.fr>
20438
20439         * tree.c (int_fits_type_p): A narrower type always fits in a
20440         wider one, except for negative values into unsigned types.
20441
20442 2005-01-01  Roger Sayle  <roger@eyesopen.com>
20443
20444         * tree.c (int_fits_type_p): Compare the result of force_fit_type
20445         with the original constant rather than require TREE_OVERFLOW.
20446
20447 2005-01-01  Steven Bosscher  <stevenb@suse.de>
20448
20449         PR middle-end/17544
20450         * c-decl.c (finish_function): If compiling C99, annotate the
20451         compiler generated return with the current file name and line 0.
20452         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
20453         the source line is greater than 0.
20454         (remove_bb): Likewise.