OSDN Git Service

4ce81e094bf49bb3d0188f204a2bbf676d4b2219
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
2
3         PR target/20813
4         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
5         MASK_PPC_GFXOPT.
6         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
7         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
8         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
9
10 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
11
12         * arm.c (legitimize_pic_address): Fix sense of assertion test for
13         creating pseudos when the base offset is too large.
14
15 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
16
17         * global.c (earlyclobber_regclass): Change the type to
18         VEC(int,heap).
19         (check_earlyclobber): Update uses of earlyclobber_regclass.
20         (mark_reg_use_for_earlyclobber): Likewise.
21         (calculate_local_reg_bb_info): Allocate and free
22         earlyclobber_regclass using the VEC API.
23
24 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
25
26         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
27         assert.
28
29 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
30
31         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
32         (*targetm.foo).
33
34         * config.gcc: Obsolete c4x-* and tic4x-*.
35
36         * tree.h (edge_def): Remove.
37
38         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
39         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
40         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
41         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
42         where appropriate.
43
44         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
45         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
46         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
47         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
48         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
49         machmode.def, mips-tfile.c, params.c, pretty-print.c,
50         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
51         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
52         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
53         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
54         config/i386/cygming.h, config/i386/djgpp.h,
55         config/i386/lynx.h, config/i386/netware.c,
56         config/i386/winnt.c, config/ia64/ia64-c.c,
57         config/iq2000/iq2000.c, config/m32r/little.h,
58         config/m68k/m68k-protos.h, config/m68k/m68k.h,
59         config/m68k/m68k.md, config/mcore/mcore.c,
60         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
61         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
62         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
63         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
64         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
65         config/pdp11/pdp11.h, config/rs6000/darwin.h,
66         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
67         config/s390/2064.md, config/s390/2084.md,
68         config/s390/s390-modes.def, config/s390/s390-protos.h,
69         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
70         config/stormy16/stormy16.c, config/vax/vax-protos.h,
71         config/vax/vax.c, config/vax/vax.h,
72         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
73         copyright.
74
75 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
76
77         * c-typeck.c (build_compound_expr): Correct logic in last change.
78
79 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
80
81         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
82         parameters.  Replace conditional move code with assert checking for
83         ar.lc.  Delete obsolete comments.
84         (set_src_needs_barrier): Delete cond parameter, and code using it.
85         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
86         assert checking for PR_REGS.  Fix calls to update_set_flags and
87         set_src_needs_barrier.
88         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
89         callers.  Rewrite explanatory comment before the function.
90         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
91         Fix all callers.
92
93 2005-04-27  Mike Stump  <mrs@apple.com>
94
95         * doc/cpp.texi: gcc now implements universal character names.
96
97 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
98
99         PR c/21159
100         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
101         being a compound expression whose right-hand side is cast to void.
102
103 2005-04-27  Caroline Tice  <ctice@apple.com>
104
105         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
106         Remove targetm.have_named_sections test.
107         (fix_edges_for_rarely_executed_code): Likewise.
108         (insert_section_boundary_note): Likewise.
109         (reorder_basic_blocks): Check partitioning flag before calling
110         verify_hot_cold_block_grouping.
111         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
112         the function struct rather than global variables.
113         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
114         (COLD_END_LABEL): Likewise
115         (cold_text_section_label): New static global variable.
116         (cold_end_label): Likewise.
117         (dwarf2out_switch_text_section): Get hot/cold section labels from
118         the function struct rather than global variables; test to make sure
119         cfun is defined.
120         (output_aranges): Use cold_text_section_label and cold_end_label;
121         check partitioning flag before putting out delta.
122         (output_ranges): Remove incorrect code attempting to use
123         hot/cold labels.
124         (output_line_info): Get cold section label from function struct; test
125         to make sure cfun is defined.
126         (add_location_or_const_value_attribute): Likewise.
127         (dwarf2out_var_location): Likewise.
128         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
129         write out cold_text_section_label if partition flag is set.
130         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
131         * function.h (struct function): Add new fields to point to hot/cold
132         section labels: hot_section_label, cold_section_label,
133         hot_section_end_label and cold_section_end_label; also add new field
134         for cold text section name, unlikely_text_section_name.
135         * opts.c (decode_options): Turn off partitioning flag if
136         !targetm.have_named_sections.
137         * output.h (hot_section_label): Remove.
138         (hot_section_end_label): Remove.
139         (cold_section_end_label): Remove.
140         (unlikely_section_label): Remove.
141         (unlikely_text_section_name): Remove.
142         * passes.c (rest_of_handle_final):  Remove extra blank line.
143         * varasm.c (unlikely_section_label): Remove.
144         (hot_section_label): Remove.
145         (hot_section_end_label): Remove.
146         (cold_section_end_label): Remove.
147         (unlikely_text_section_name):  Remove.
148         (initialize_cold_section_name): Modify to call
149         targetm.strip_name_encoding; to store cold section name in current
150         function struct, if it exists; and to only use the decl_section_name
151         if flag_named_sections is true.
152         (unlikely_text_section): Modify to get section name out of current
153         function struct, if there is one; otherwise build it from
154         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
155         (in_unlikely_text_section): Likewise.
156         (named_section): Modify to get/put cold section name in current function
157         struct, if there is one.
158         (function_section):  Change 'bool unlikely' to 'int reloc'; check
159         targetm.have_named_sections before calling named_section.
160         (current_function_section): Likewise.
161         (assemble_start_function): Modify to get/put unlikely_text_section_name
162         in current function struct; modify to get hot/cold section labels
163         from function struct; initialize labels using
164         ASM_GENERATE_INTERNAL_LABEL;
165         test partitioning flag before writing out hot section label.
166         (assemble_end_function): Test partitioning flag before writing out
167         hot/cold section labels.
168         (default_section_type_flags_1):  Get cold text section name from
169         function struct if there is one; Set flags correctly for
170         cold text section if there is not a current function struct.
171         
172 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
173
174         * tree-ssa-propagate.c (set_rhs): Revert last change.
175
176 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
177
178         * explow.c (convert_memory_address): Add gcc_assert.
179
180 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
181
182         * configure.ac: Check for ld --sysroot support.
183         * gcc.c: Document %R specifier for specs.
184         (SYSROOT_SPEC): New macro.
185         (sysroot_spec): New variable.
186         (static_specs): Add sysroot_spec.
187         (main): Pass the sysroot spec to the linker if appropriate.
188         * configure: Regenerated.
189         * config.in: Likewise.
190
191 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
192
193         * fold-const.c (fold_binary): Use build_fold_addr_expr
194         for address calculation and INDIRECT_REF handling.
195
196 2005-04-27  Andrew Haley  <aph@redhat.com>
197
198         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
199
200 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
201
202         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
203         pointer when thumb backtracing is on.
204
205         * config/fp-bit.c (abort): Revert change.
206
207 2005-04-27  Ian Lance Taylor  <ian@airs.com>
208
209         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
210
211 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
212
213         * tree-ssa-dce.c: Fix a comment typo.
214
215 2005-04-27  David S. Miller  <davem@davemloft.net>
216
217         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
218         Kill setjmpless_size.  current_function_calls_setjmp is completely
219         computed when we are called, so just use the optimized size value
220         instead of using REG_SAVE_AREA notes.
221         (optimize_save_area_alloca): Delete....
222         * rtl.h (optimize_save_area_alloca): Likewise...
223         * passes.c (rest_of_compilation): and don't call it any more.
224         * reg-notes.def (SAVE_AREA): Delete.
225         
226 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
227
228         * config/fp-bit.c (abort): Add noreturn attribute.
229
230         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
231         gcc_unreachable as appropriate.
232         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
233         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
234         ASM_OUTPUT_REG_POP): Likewise.
235
236 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
237
238         * tree-complex.c (expand_vector_operations_1): Do not build
239         VIEW_CONVERT_EXPR's for the lhs.
240
241 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
242
243         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
244         unnecessary noncanonical RTL handling.
245         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
246         gcc_assert and gcc_unreachable.
247
248         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
249         gcc_unreachable as appropriate.
250         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
251         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
252         use_return_insn, const_ok_for_op, arm_gen_constant,
253         arm_canonicalize_comparison, legitimize_pic_address,
254         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
255         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
256         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
257         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
258         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
259         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
260         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
261         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
262         output_call, output_mov_long_double_fpa_from_arm,
263         output_mov_long_double_arm_from_fpa,
264         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
265         output_move_double, arithmetic_instr, shift_op, int_log2,
266         output_return_instruction, arm_output_function_prologue,
267         arm_output_epilogue, arm_output_function_epilogue,
268         emit_multi_reg_push, arm_get_frame_offsets,
269         arm_compute_initial_elimination_offset, arm_expand_prologue,
270         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
271         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
272         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
273         thumb_compute_initial_elimination_offset,
274         thumb_output_function_prologue, thumb_load_double_from_address,
275         thumb_output_move_mem_multiple, thumb_reload_out_hi,
276         arm_emit_vector_const, arm_dbx_register_number): Likewise.
277         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
278         * config/arm/arm.md (thumb_extendhisi2,
279         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
280         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
281         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
282         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
283         * config/arm/cirrus.md (*cirrus_arm_movdi,
284         *cirrus_movdf_hard_insn): Likewise.
285         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
286
287 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
288
289         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
290         (num_ssa_names): Use VEC_length.
291         (ssa_names): Use VEC_index.
292         * tree-ssanames.c (ssa_names): Change the type to
293         VEC(tree,gc).
294         (init_ssanames, fini_ssa_names, make_ssanames,
295         release_ssa_name): Update uses of ssa_names.
296
297         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
298         Use fold_buildN instead of fold (buildN (...)).
299
300 2005-04-27  Devang Patel <dpatel@apple.com>
301
302         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
303
304 2005-04-27  Matt Thomas <matt@3am-software.com>
305             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
306
307         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
308         (vax_output_mi_thunk): Ditto.
309         (vax_notice_cc_update): Ditto.
310         (INDEX_REGISTER_P): Add trailing \.
311         (BASE_REGISTER_P): Add trailing \.
312         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
313
314 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
315
316         * tree-ssa-propagate.c (set_rhs): Check operand of
317         ADDR_EXPR for gimpliness, too.
318
319 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
320
321         * tree-ssa-pre.c: Fix a comment typo.
322
323 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
324
325         PR tree-optimization/21171
326         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
327         record address uses if the reference is volatile.
328
329 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
330
331         * tree-complex.c (expand_vector_operation): New, extracted from
332         expand_vector_operations_1.
333         (tree_vec_extract): Build a NOP_EXPR.
334         (expand_vec_parallel): Do not care about returning the correct type.
335         (expand_vector_operations_1): Call expand_vector_operation.
336         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
337
338         * tree-complex.c (gate_expand_vector_operations): New.
339         (pass_lower_vector_ssa): Use it.
340         * tree-optimize.c (init_tree_optimization_passes): Include
341         pass_lower_vector_ssa.
342         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
343         (vectorizable_operation): Use it.
344         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
345         integer modes for the vector type.
346
347         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
348         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
349         Do not cope with UNITS_PER_SIMD_WORD == 0.
350         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
351         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
352         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
353         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
354         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
355         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
356         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
357
358         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
359         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
360         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
361
362         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
363         (UNITS_PER_SIMD_WORD): New.
364
365 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
366
367         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
368         gcc_unreachable as appropriate.
369         (ia64_expand_load_address, ia64_expand_tls_address,
370         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
371         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
372         next_scratch_gr_reg, ia64_initial_elimination_offset,
373         ia64_expand_prologue, ia64_expand_epilogue,
374         ia64_output_dwarf_dtprel, ia64_print_operand,
375         ia64_register_move_cost, first_instruction, rws_access_regno,
376         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
377         ia64_sched_init, ia64_variable_issue,
378         ia64_first_cycle_multipass_dfs_lookahead_guard,
379         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
380         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
381         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
382         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
383         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
384         * config/ia64/predicates.md (got_symbolic_operand,
385         sdata_symbolic_operand): Likewise.
386         * config/ia64/vect.md (vcondv2sf): Likewise.
387
388 2005-04-27  Matt Thomas <matt@3am-software.com>
389
390         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
391         CONSTANT_ADDRESS_P in config/vax/vax.h
392         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
393         (INDEX_REGISTER_P): New.
394         (BASE_REGISTER_P): New.
395         (indirectable_constant_address_p): New.  Adapted from
396         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
397         (indirectable_address_p): New.  Adapted from
398         INDIRECTABLE_ADDRESS_P in vax.h.
399         (nonindexed_address_p): New.  Adapted from
400         GO_IF_NONINDEXED_ADDRESS in vax.h.
401         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
402         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
403         (legitimate_address_p): New.  Adapted from
404         GO_IF_LEGITIMATE_ADDRESS in vax.h.
405         (vax_mode_dependent_address_p): New.  Adapted from
406         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
407         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
408         legitimate_constant_address_p.
409         (CONSTANT_P): Use legitimate_constant_p.
410         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
411         (INDIRECTABLE_ADDRESS_P): Removed.
412         (GO_IF_NONINDEXED_ADDRESS): Removed.
413         (INDEX_TEMP_P): Removed.
414         (GO_IF_REG_PLUS_INDEX): Removed.
415         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
416         definitions, depending on whether REG_OK_STRICT is defined.
417         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
418         Two definitions, depending on whether REG_OK_STRICT is defined.
419         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
420         added.
421         (legitimate_constant_p): Prototype added.
422         (legitimate_address_p): Prototype added.
423         (vax_mode_dependent_address_p): Prototype added.
424
425 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
426
427         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
428
429 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
430
431         PR c/21213
432         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
433         transparent union.
434
435 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
436
437         PR c/20740
438         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
439         assertion failures, if __gcc_host_wide_int__ is not properly
440         defined.
441         (init_dynamic_diag_info): Give errors, not assertion failures, if
442         location_t, tree or __gcc_host_wide_int__ are not properly
443         defined.
444
445 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
446
447         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
448         n_iv_uses, iv_use, n_iv_cands, iv_cand,
449         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
450         prepare_decl_rtl, free_loop_data,
451         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
452         VARRAY.
453
454         * tree.h (tree_phi_node): Add a comment about the order of PHI
455         arguments.
456
457 2005-04-26  Paul Brook  <paul@codesourcery.com>
458
459         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
460
461 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
462
463         * config/mips.mips.c (mips_legitimize_tls_address): Use
464         gcc_unreachable.
465
466         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
467         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
468         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
469
470         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
471         'abort'.
472
473 2005-04-26  Jeff Law  <law@redhat.com>
474
475         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
476         (op_iter_init_must_and_may_def): Likewise.
477         (unmodifiable_var_p): Move to a later point in the file.
478         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
479         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
480         (dse_record_phis): Directly check for virtual operands rather than
481         using need_imm_uses_for.
482         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
483         store has multiple V_{MAY,MUST}_DEF operands.
484
485 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
486
487         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
488         stmt.
489
490 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
491
492         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
493         call to find_edge outside a loop to go through a PHI chain.
494
495 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
496
497         PR tree-optimization/17598
498         * fold-const.c (fold_binary): Fold comparisons of addresses
499         of COMPONENT_REFs which reference the same field to
500         comparisons of the addresses of the base objects.
501
502 2005-04-26  Julian Brown  <julian@codesourcery.com>
503
504         * config/arm/arm.c (arm_return_in_msb): New function.
505         (arm_must_pass_in_stack): New function.
506         (TARGET_RETURN_IN_MSB): Define target hook.
507         (TARGET_MUST_PASS_IN_STACK): Define target hook.
508         (arm_function_value): Pad small aggregate return.
509         (arm_pad_arg_upward): New function.
510         (arm_pad_reg_upward): New function.
511         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
512         (FUNCTION_ARG_PADDING): Define macro.
513         (BLOCK_REG_PADDING): Define macro.
514         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
515         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
516         (arm_pad_reg_upward): Declare function.
517
518 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
519
520         * basic-block.h (ei_cond): New.
521         (FOR_EACH_EDGE): Call ei_cond.
522
523         PR tree-optimization/21047
524         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
525         (fold): Don't handle ASSERT_EXPR.
526
527 2005-04-25  Roger Sayle  <roger@eyesopen.com>
528
529         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
530         all writes to any stack register as a read/write dependency on
531         FIRST_STACK_REG.
532         (sched_analyze_2): Likewise, for reads from any stack register.
533
534 2005-04-25  Richard Henderson  <rth@redhat.com>
535
536         * final.c (output_addr_const): Revert 2005-04-09 change.
537
538 2005-04-25  Mike Stump  <mrs@apple.com>
539
540         * config/darwin.c (darwin_encode_section_info): Always set
541         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
542
543 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
544
545         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
546         gensupport.c, protoize.c, toplev.c: Replace calls to
547         `unlock_stream' with `unlock_std_streams'.
548
549 2005-04-25  Devang Patel <dpatel@apple.com>
550
551         * dbxout.c (dbxout_type): Emit attribute vector.
552         
553 2005-04-05  Paul Brook  <paul@codesourcery.com>
554
555         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
556         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
557         * config/arm/arm.c (arm_cxx_atexit_name): New function.
558         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
559         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
560         (register_dtor_fn): Likewise.
561         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
562
563 2005-04-25  Ian Lance Taylor  <ian@airs.com>
564
565         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
566         * c-common.h (EXPR_STMT_EXPR): Don't define.
567         (c_common_stmt_codes): Don't define.
568         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
569         * c-gimplify.c (gimplify_expr_stmt): Remove.
570         (c_gimplify_expr): Remove EXPR_STMT case.
571         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
572         to INIT_STATEMENT_CODES.
573         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
574
575 2005-04-25  Jan Hubicka  <jh@suse.cz>
576
577         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
578
579         * except.c: Include diagnostic.h
580         (dump_eh_tree, verify_eh_tree): New functions.
581         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
582         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
583         (dump_function_to_file): dump eh tree.
584         * tree-eh.c (mark_eh_edge): New function.
585         (mark_eh_edge_found_error): New static variable.
586         (verify_eh_edges): New function.
587
588 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
589
590         * tree-ssa-alias.c (fieldoff_t): Remove.
591         (fieldoff_s): typedef the structure itself.  Create a vector of
592         objects.
593         (push_fields_onto_fieldstack): Return count of fields pushed.
594         Remove peeling of first field.  Adjust.
595         (fieldoff_compare): Adjust.
596         (create_overlap_variables_for): Adjust.
597
598 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
599
600         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
601
602 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
603
604         PR bootstrap/21215
605         * doc/install.texi: Document correct assembler and linker to use
606         on i?86-*-solaris2.10.
607
608 2005-04-25  Steven Bosscher  <stevenb@suse.de>
609
610         Fix PR tree-optimization/21173
611
612         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
613         Unshare expression we pass to force_gimple_operand.
614
615 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
616             Stephen Clarke <stevec@superh.com>
617             Roger Sayle <roger@eyesopen.com>
618
619         PR rtl-optimization/20413
620         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
621         VOIDmode for LABEL_REF.
622         * final.c (shorten_branches): Likewise.
623         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
624         * loop.c (reg_dead_after_loop): Likewise.
625         * varasm.c (decode_addr_const): Likewise.
626         * doc/rtl.texi: Document mode requirement for LABEL_REF.
627
628 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
629
630         * config.gcc (avr-*-*): Remove redundant "case".
631
632 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
633
634         * tree-vect-analyze.c (vect_mark_relevant): Take
635         VEC(tree,heap) instead of varray_type as an argument.
636         (vect_mark_stmts_to_be_vectorized): Change the type of
637         worklist to VEC(tree,heap).  Adjust uses of worklist.
638
639 2005-04-24  Devang Patel  <dpatel@apple.com>
640
641         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
642         
643 2005-04-24  Ian Lance Taylor  <ian@airs.com>
644
645         * c-semantics.c (build_stmt): Remove test of specific tree codes
646         for TREE_SIDE_EFFECTS handling.
647
648 2005-04-24  Per Bothner  <per@bothner.com>
649
650         * c-opts.c (finish_options):  Make the line-number of the <built-in>
651         location 0, as assumed elsewhere, rather than 1.
652
653 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
654
655         * tree-ssa-uncprop.c (equiv_stack): Change the type o
656         VEC(tree,heap).
657         (tree_ssa_uncprop, uncprop_finalize_block,
658         uncprop_initialize_block): Update uses of equiv_stack.
659
660 2005-04-24  Richard Henderson  <rth@redhat.com>
661
662         PR rtl-opt/21163
663         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
664         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
665         constm1_rtx.
666         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
667         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
668         <DIV, MOD>: Likewise.
669
670 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
671
672         * collect2.c (main): Unlock the stdio streams.
673         * gcc.c (main): Likewise.
674         * gcov-dump.c (main): Likewise.
675         * gcov.c (main): Likewise.
676         * gen-protos.c (main): Likewise.
677         * gensupport.c (init_md_reader_args_cb): Likewise.
678         * protoize.c (main): Likewise.
679         * toplev.c (general_init): Likewise.
680
681 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
682
683         PR middle-end/20991
684         * cgraph.h (cgraph_local_info): Add vtable_method field.
685         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
686         and node is vtable_method, finalized and not reachable, don't do
687         anything.
688
689 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
690
691         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
692         COMPARISON_CLASS_P.
693         * tree-ssa-pre.c (create_value_expr_from): Use
694         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
695         * tree-ssa-propagate.c (stmt_makes_single_load,
696         stmt_makes_single_store): Use REFERENCE_CLASS_P.
697         * tree-vect-transform.c (vect_is_simple_cond): Use
698         COMPARISON_CLASS_P.
699         * tree-vrp.c (extract_range_from_assert,
700         build_assert_expr_for, fp_predicate, has_assert_expr): Use
701         COMPARISON_CLASS_P.
702
703         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
704         of tpa_to_clear to VEC(int,heap).  Update uses of
705         tpa_to_clear.  Free tpa_to_clear at the end.
706
707 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
708
709         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
710         function decl.
711
712 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
713
714         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
715         and gcc_unreachable as appropriate.
716         (num_insns_constant, output_vec_const_move,
717         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
718         rs6000_emit_set_const, rs6000_emit_move,
719         spe_build_register_parallel, function_arg,
720         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
721         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
722         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
723         rs6000_common_init_builtins, expand_block_clear,
724         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
725         extract_ME, rs6000_get_some_local_dynamic_name,
726         rs6000_output_function_entry, print_operand,
727         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
728         output_cbranch, output_e500_flip_gt_bit,
729         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
730         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
731         compute_save_world_info, rs6000_stack_info,
732         rs6000_emit_load_toc_table, rs6000_frame_related,
733         spe_synthesize_frame_save, rs6000_emit_epilogue,
734         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
735         output_function_profiler, rs6000_trampoline_size,
736         rs6000_initialize_trampoline, find_addr_reg,
737         rs6000_machopic_legitimize_pic_address,
738         rs6000_initial_elimination_offset,
739         rs6000_dbx_register_number): Likewise.
740         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
741         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
742         *movti_power, *movti_string, call, call_value, sibcall,
743         sibcall_value): Likewise.
744         * config/rs6000/spe.md (*movdf_e500_double,
745         *movv2si_internal): Likewise.
746         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
747         from comment.
748
749 2005-04-24  Richard Henderson  <rth@redhat.com>
750
751         PR target/21101
752         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
753         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
754         Deny modes smaller than 4 bytes.
755         * config/i386/i386-protos.h: Update.
756
757 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
758
759         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
760         Switch h8300-*-rtems* to ELF.
761
762 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
763
764         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
765
766 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
767
768         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
769
770 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
771
772         PR middle-end/21082
773         * fold-const.c: Fold &a[i]-&a[j] to i-j.
774
775 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
776
777         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
778         definitions of ssa names in condition.  Split recusive part to ...
779         (tree_simplify_using_condition_1): New function.
780         (expand_simple_operations): New function.
781
782 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
783
784         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
785         (find_interesting_uses_cond): Do not use integer_zerop and
786         integer_nonzerop to check for integer constants.
787         (set_use_iv_cost): Record the value field.
788         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
789         determine_use_iv_cost_outer): Set the value field of the cost pair.
790         (may_eliminate_iv): Do not return the comparison code.
791         (iv_elimination_compare): New function.
792         (determine_use_iv_cost_condition): Set the value field.  Record
793         noneliminable invariants correctly.
794         (rewrite_use_compare, rewrite_use_outer): Use the value field.
795
796 2005-04-23  DJ Delorie  <dj@redhat.com>
797
798         * diagnostic.c (warning): Accept parameter to classify warning option.
799         (warning0): New, for when a pointer to an error() like function is needed.
800         * errors.c (warning): Likewise.
801         * errors.h (warning, warning0): Adjust prototypes.
802         * toplev.h (warning, warning0): Likewise.
803
804         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
805         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
806         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
807         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
808         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
809         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
810         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
811         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
812
813         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
814         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
815         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
816         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
817         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
818         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
819         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
820         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
821         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
822         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
823         config/rs6000/aix52.h, config/rs6000/darwin.h,
824         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
825         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
826         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
827         config/stormy16/stormy16.c, config/v850/v850-c.c,
828         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
829         callers.
830         
831 2005-04-23  Richard Henderson  <rth@redhat.com>
832
833         PR rtl-opt/21102
834         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
835         performing some integral scalar simplifications.
836
837 2005-04-23  Richard Henderson  <rth@redhat.com>
838
839         PR target/21099
840         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
841         simplifying CONST_VECTOR.
842
843 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
844
845         * tree-ssa-live.c (live_worklist): Take a stack allocated on
846         heap as an argument.  Update uses of stack.
847         (calculate_live_on_entry): Allocate stack on heap.
848
849         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
850         partition_link and tpa_nodes on heap.
851
852         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
853         (mark_stmt_necessary, propagate_necessity,
854         mark_really_necessary_kill_operand_phis): Update uses of
855         worklist.
856         (tree_dce_init): Allocate worklist using VEC_alloc.
857         (tree_dce_done): Free worklist using VEC_free.
858
859 2005-04-23  Mike Stump  <mrs@apple.com>
860
861         * config/darwin.c (machopic_indirection_name): Don't use
862         quotes needlessly.
863         (darwin_emit_unwind_label): Use user_label_prefix instead of
864         "_".
865
866 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
867
868         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
869
870 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
871
872         * config.gcc <cris-*>: Specify .opt files.
873         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
874         config/cris/linux.opt: New files.
875         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
876         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
877         (TARGET_ELF): Override to 0.
878         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
879         -melinux-stacksize=N.
880         * config/cris/cris.c: (cris_handle_option): New function.
881         (TARGET_DEFAULT_TARGET_FLAGS): Override.
882         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
883         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
884         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
885         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
886         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
887         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
888         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
889         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
890         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
891         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
892         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
893         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
894         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
895         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
896         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
897         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
898         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
899         (TARGET_LINUX): Define 0.
900         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
901         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
902         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
903         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
904         (TARGET_LINUX): Override to 1.
905         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
906
907 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
908
909         * haifa-sched.c (schedule_block): Fix thinko in previous
910         assertification patch.
911
912 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
913
914         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
915         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
916         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
917         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
918         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
919         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
920         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
921         for hpux11.[1-9]*.
922         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
923         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
924         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
925         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
926         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
927         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
928         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
929         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
930         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
931         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
932         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
933         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
934         (SUBTARGET_OPTIONS): Delete.
935         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
936         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
937         instead of a string.
938         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
939         (pa_cpu_string, pa_unix_string): Delete.
940         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
941         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
942         TARGET_HPUX_10_10.
943         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
944         (pa_handle_option): New function.
945         (override_options): Remove handling of -march=, -mfixed-range=,
946         -mschedule= and -munix=.
947         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
948         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
949         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
950         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
951         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
952         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
953         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
954         redefining.
955         * config/pa/pa.opt: New file.
956         * config/pa/pa-hpux.opt: New file.
957         * config/pa/pa-hpux1010.opt: New file.
958         * config/pa/pa-hpux1111.opt: New file.
959         * config/pa/pa64-hpux.opt: New file.
960
961 2005-04-22  David S. Miller  <davem@davemloft.net>
962
963         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
964         integer when it's mode is VOIDmode not DImode.
965
966 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
967
968         * config/rs6000/rs6000.md (sync_add<mode>_internal,
969         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
970         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
971         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
972         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
973         "bne- $-xxx" rather than local labels.
974         (sync_lock_release<mode>): Add second operand.
975         (lwsync): Use .long rather than a more meaningful opcode.
976         * doc/md.texi (Standard Names): Add description of second
977         parameter to sync_lock_test_and_set.
978
979 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
980
981         PR tree-optimization/21088
982         * fold-const.c (fold_unary, fold_binary, fold_ternary):
983         Export.
984         * tree-vrp.c (compare_values): Use fold_binary to compare
985         pointers.  Use boolean_type_node as the type of a comparison
986         expression being folded.
987         * tree.h: Add prototypes for fold_unary, fold_binary,
988         fold_ternary.
989
990         * tree-ssa-dom.c: Fix formatting.
991
992 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
993
994         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
995         * lambda-code.c (perfect_nestify): Mark virtual operands in
996         the moved statement for renaming.
997         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
998         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
999         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
1000         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
1001         * tree-flow.h (struct var_ann_d): Update comments.
1002         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
1003         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
1004         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
1005         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
1006         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
1007         debug_names_replaced_by): Remove declarations.
1008         (delete_update_ssa, get_current_def, set_current_def): Declare.
1009         (rewrite_into_loop_closed_ssa): Add new argument.  Update
1010         all callers.
1011         * tree-into-ssa.c: Include params.h.
1012         (old_virtual_ssa_names): Remove.  Update all users.
1013         (need_to_replace_names_p): Remove.  Update all users.
1014         (struct update_ssa_stats_d): Declare.
1015         (update_ssa_stats): New local.
1016         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
1017         dump_tree_ssa_stats, debug_tree_ssa_stats,
1018         dump_update_ssa, debug_update_ssa,
1019         dump_names_replaced_by, debug_names_replaced_by): Declare.
1020         (get_current_def, set current_def): Make extern.
1021         (is_old_name, is_new_name): Protect against references
1022         past the end of the sets.
1023         (add_new_name_mapping): Assert that OLD and NEW are
1024         different SSA names for the same symbol.
1025         When adding a virtual mapping, update stats for virtual
1026         mapping heuristic.
1027         (insert_phi_nodes_for): If UPDATE_P is true, create the
1028         LHS of the new PHI by duplicating SSA name VAR.
1029         (insert_phi_nodes_1): Remove.  Update all users.
1030         (insert_phi_nodes): Remove second argument.  Update all
1031         users.
1032         (maybe_replace_use, maybe_replace_def): New.
1033         (rewrite_update_stmt): Call them.
1034         (mark_def_interesting): Remove calls to is_gimple_reg.
1035         (prepare_phi_args_for_update): Remove.  Update all users.
1036         (prepare_block_for_update): Only process virtual operands
1037         and GIMPLE registers in normal form.
1038         (prepare_use_sites_for): New.
1039         (prepare_names_to_update): Rename from prepare_def_sites.
1040         Call prepare_use_sites_for.
1041         (dump_update_ssa): Rename from dump_repl_tbl.
1042         Update all users.
1043         Show statistics for virtual mapping heuristic.
1044         (debug_update_ssa): Rename from debug_debug_repl_tbl.
1045         (init_update_ssa): Initialize UPDATE_SSA_STATS.
1046         (delete_update_ssa): Make extern.
1047         (mark_set_for_renaming): If the set is empty, do nothing.
1048         (release_ssa_name_after_update_ssa): Update comment.
1049         (insert_updated_phi_nodes_for): Do not remove existing
1050         PHI nodes for symbols.
1051         (switch_virtuals_to_full_rewrite_p): New.
1052         (switch_virtuals_to_full_rewrite): New.
1053         (update_ssa): Call them.
1054         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
1055         for every statement before updating.
1056         If all the names in NEW_SSA_NAMES have been marked for
1057         removal, do nothing.
1058         Only start at the top of the CFG if there are symbols in
1059         SYMS_TO_RENAME.
1060         (ssa_rewrite_finalize_block): Remove.
1061         (ssa_register_new_def): Remove.
1062         (ssa_rewrite_stmt): Remove.
1063         (ssa_rewrite_phi_arguments): Remove.
1064         (ssa_rewrite_initialize_block): Remove.
1065         (ssa_mark_def_sites): Remove.
1066         (ssa_mark_def_sites_initialize_block): Remove.
1067         (ssa_mark_phi_uses): Remove.
1068         (rewrite_ssa_into_ssa): Remove.
1069         * tree-phinodes.c (find_phi_node_for): Remove.
1070         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1071         Call update_ssa.
1072         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
1073         Remove calls to verify_dominators and
1074         verify_loop_structure.
1075         (tree_unswitch_single_loop): Call update_ssa.
1076         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
1077         returns false.
1078         Call verify_stmts.
1079         (delete_tree_ssa): Assert that need_ssa_update_p returns
1080         false.
1081         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
1082         * tree-vectorizer.c (allocate_new_names, rename_def_op,
1083         free_new_names): Remove.  Update all users.
1084         (rename_use_op): Call get_current_def.
1085         (rename_variables_in_bb): Do not handle any real or
1086         virtual definition.
1087         (slpeel_update_phis_for_duplicate_loop): Call
1088         get_current_def and set_current_def instead of using
1089         SSA_NAME_AUX.
1090         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
1091         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
1092         ssa_names_to_replace and delete_update_ssa.
1093         * doc/invoke.texi: Document --param min-virtual-mappings
1094         and --param virtual-mappings-ratio.
1095
1096 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
1097
1098         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
1099         for newly created PHI nodes.
1100         Call create_new_def_for for every new V_MAY_DEF and
1101         V_MUST_DEF on the copied statement.
1102         (struct ssa_name_map_entry): Remove.
1103         (ssa_name_map_entry_hash): Remove.
1104         (ssa_name_map_entry_eq): Remove.
1105         (allocate_ssa_names): Remove.
1106         (rewrite_to_new_ssa_names_def): Remove.
1107         (rewrite_to_new_ssa_names_use): Remove.
1108         (rewrite_to_new_ssa_names_bb): Remove.
1109         (rewrite_to_new_ssa_names): Remove.
1110         (tree_duplicate_sese_region): Remove variables ver,
1111         definitions, phi, ssa_name_map and bi.
1112         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
1113         Call update_ssa.
1114         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
1115         update_ssa instead of rewrite_ssa_into_ssa.
1116         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
1117         create_new_def_for.
1118         (find_uses_to_rename_use): Add argument 'need_phis'.
1119         (find_uses_to_rename_stmt): Do not scan virtual operands.
1120         (find_uses_to_rename): Only scan PHI nodes for
1121         non-virtual names.
1122         (rewrite_into_loop_closed_ssa): Call update_ssa.
1123         (check_loop_closed_ssa_use): Ignore virtual operands.
1124         (check_loop_closed_ssa_stmt): Likewise.
1125         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
1126         NULL.
1127         (rename_variables, set_phi_def_stmts): Remove.
1128         (tree_duplicate_loop_to_header_edge): Reformat comment.
1129         Remove variables BB, I and DEFINITIONS.
1130         Call need_ssa_update_p.
1131         Call update_ssa.
1132         (lv_adjust_loop_header_phi): Reformat comment.
1133         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
1134         (marked_for_rewrite_p, any_marked_for_rewrite_p,
1135         mark_for_rewrite, unmark_all_for_rewrite,
1136         marked_ssa_names): Remove.  Update all users.
1137         (release_ssa_name): If VAR has been registered for SSA
1138         updating, do nothing.
1139         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
1140         (build_assert_expr_for): Call register_new_name_mapping.
1141         (insert_range_assertions): Update call to update_ssa.
1142         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
1143         marked_for_rewrite_p, any_marked_for_rewrite_p,
1144         marked_ssa_names): Remove.
1145
1146 2005-04-22  Jeff Law  <law@redhat.com>
1147
1148         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
1149         (restore_currdefs_to_original_value): Likewise.
1150         (register_definitions_for_stmt): Likewise.
1151         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
1152         for each variable.  Do not allocate/free block_defs_stack either.
1153         Do not iterate if we just thread jumps.  Only iterate if the
1154         tree_cleanup_cfg does useful work (temporary).
1155         (dom_opt_initialize_block): No longer push a marker on
1156         BLOCK_DEFS_STACK.
1157         (dom_opt_finalize_block): Removal call to restore currdefs.
1158         Relax restrictions for recording edge equivalences.
1159         (record_equivalences_from_phis): No longer need to track
1160         CURRENT_DEF.
1161         (optimize_stmt): Similarly.
1162         (thread_across_edge): Simplify by removing the requirement that
1163         statements in the block we are threading through must be nops.
1164         (initialize_hash_element): Handle GOTO_EXPR.
1165
1166 2005-04-22  David S. Miller  <davem@davemloft.net>
1167
1168         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
1169         CONST_DOUBLE_HIGH.
1170         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
1171         fix check on CONST_DOUBLE mode.  It should be VOIDmode
1172         when it is representing an integer.
1173
1174 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1175
1176         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
1177         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
1178         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
1179         find_char_info_specifier_index,
1180         find_length_info_modifier_index): Likewise.
1181         * c-typeck.c (composite_type, pop_init_level): Likewise.
1182         * combine.c (cant_combine_insn_p, try_combine): Likewise.
1183         * cse.c (cse_insn): Likewise
1184         * dominance.c (calc_dfs_tree): Likewise
1185         dwarf2out.c (loc_descriptor_from_tree_1,
1186         add_abstract_origin_attribute, force_decl_die,
1187         force_type_die): Likewise
1188         emit-rtl.c (operand_subword_force): Likewise
1189         explow.c (hard_function_value): Likewise
1190         expmed.c (store_bit_field, expand_divmod,
1191         emit_store_flag_force): Likewise
1192         expr.c (emit_move_multi_word, store_expr,
1193         expand_expr_real_1): Likewise
1194         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
1195         output_operand): Likewise
1196         flow.c (recompute_reg_usage): Likewise
1197         * function.c (assign_stack_temp_for_type, assign_temp, 
1198         handle_epilogue_set): Likewise
1199         * genextract.c (main): Likewise
1200         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
1201         gimplify_modify_expr_rhs, gimplify_expr): Likewise
1202         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
1203         ready_remove, rm_line_notes, rm_other_notes,
1204         schedule_block): Likewise
1205         mips-tfile.c (copy_object, out_of_bounds): Likewise
1206
1207 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
1208
1209         PR target/20813
1210         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
1211         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
1212         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
1213         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
1214         TARGET_XL_COMPAT.
1215         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
1216
1217 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1218
1219         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
1220         (gcc_tree_to_linear_expression): Convert to heap allocated
1221         vectors.
1222         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1223         lbv_to_gcc_expression, lle_to_gcc_expression,
1224         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
1225         perfect_nestify): Likewise.
1226         lambda.h (gcc_loopnest_to_lambda_loopnest,
1227         lambda_loopnest_to_gcc_loopnest): Likewise.
1228         tree-loop-linear.c (linear_transform_loops): Likewise.
1229
1230 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1231
1232         * config/sparc/predicates.md (arith_double_operand): Use
1233         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
1234         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
1235         (DImode, DFmode constant splitters): Likewise.  Remove code for
1236         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
1237         (logical constant splitters): Use const_int_operand predicate.
1238         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
1239         HOST_BITS_PER_WIDE_INT < 64.
1240
1241 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1242
1243         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
1244         gcc_unreachable as appropriate.
1245         (force_mode, emit_move_sequence, singlemove_string,
1246         output_move_double, output_fp_move_double, find_addr_reg,
1247         output_block_move, output_block_clear, output_and,
1248         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
1249         pa_adjust_cost, pa_issue_rate, print_operand,
1250         output_global_address, output_arg_descriptor, output_cbranch,
1251         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
1252         output_call): Likewise.
1253         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
1254         prefetch, prefetch_cc, prefetch_nocc): Likewise.
1255
1256 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
1257
1258         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
1259         _gcov_pow2_profiler and _gcov_one_value_profiler.
1260         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
1261         (GTFILES): Add $(srcdir)/tree-profile.c.
1262         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
1263         __gcov_one_value_profiler): Declare.
1264         * gimplify.c (force_gimple_operand): Check whether the statements
1265         should be produced in ssa form.
1266         (force_gimple_operand_bsi): New function.
1267         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
1268         __gcov_one_value_profiler): New functions.
1269         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
1270         the profiled value is a power of two or not.
1271         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
1272         * tree-flow.h (in_ssa_p): Declare.
1273         (force_gimple_operand_bsi): Declare.
1274         * tree-into-ssa.c (in_ssa_p): New variable.
1275         (rewrite_into_ssa): Set in_ssa_p.
1276         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
1277         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
1278         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
1279         tree_one_value_profiler_fn): New variables.
1280         (tree_init_edge_profiler): Initialize the profiler function decls.
1281         (tree_gen_edge_profiler): Use global gcov_type_node.
1282         (prepare_instrumented_value): New function.
1283         (tree_gen_interval_profiler, tree_gen_interval_profiler,
1284         tree_gen_one_value_profiler): Call the library functions instead of
1285         creating instrumentation code.
1286         * tree.c (build_fn_decl): New function.
1287         * tree.h (build_fn_decl): Declare.
1288         * value-prof.c (rtl_divmod_values_to_profile,
1289         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
1290         tree_mod_pow2_value_transform, tree_find_values_to_profile):
1291         Do not handle may_be_other and precise values of exponents at pow2
1292         profiler.
1293         (tree_mod_subtract_transform): Reflect that value field of
1294         histogram has changed meaning.
1295         (tree_divmod_values_to_profile): Record the values correctly.
1296         (tree_values_to_profile): Update comment.
1297         * value-prof.h (struct histogram_value_t): Remove pow2 data.
1298
1299 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
1300
1301         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
1302         (decl).
1303
1304 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
1305
1306         * config/i386/i386.md (length_immediate): Use gcc_assert or
1307         gcc_unreachable, as appropriate.
1308         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
1309         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
1310         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
1311         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
1312         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
1313         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
1314         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
1315         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
1316         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
1317         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
1318         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
1319         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
1320         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
1321         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
1322         *prefetch_sse_rex): Likewise.
1323         * config/i386/predicates.md (x86_64_immediate_operand,
1324         x86_64_zext_immediate_operand, symbolic_operand,
1325         no_seg_address_operand, aligned_operand,
1326         memory_displacement_operand): Likewise.
1327         * config/i386/sse.md (*mov<mode>_internal,
1328         *movv2df_internal): Likewise.
1329
1330 2005-04-22  Jan Hubicka  <jh@suse.cz>
1331
1332         * Makefile.in (ipa.o, ipa-inline.o): New files.
1333         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
1334         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
1335         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
1336         * cgraphunit.c (cgraph_default_inline_p,
1337         cgraph_decide_inlining_incrementally,  ncalls_inlined,
1338         nfunctions_inlined, initial_insns, overall_insns, 
1339         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
1340         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
1341         cgraph_mark_inline, cgraph_check_inline_limits,
1342         cgraph_default_inline_p, cgraph_recursive_inlining_p,
1343         update_callee_keys, lookup_recursive_calls,
1344         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
1345         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
1346         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
1347         pass_ipa_inline): Move to ipa-inline.c
1348         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
1349         * ipa.c: New file.
1350         * ipa-inline.c: New file.
1351
1352 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1353
1354         * doc/invoke.texi (SPARC options): Document that -mapp-regs
1355         is turned off by default on Solaris.
1356
1357 2005-04-21  Roger Sayle  <roger@eyesopen.com>
1358
1359         * c-common.h (objc_build_method_signature): Update prototype.
1360         * stub-objc.c (objc_build_method_signature): Update the stub
1361         implementation to accept and ignore additional parameter.
1362         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
1363         the value of ellipsis to objc_build_method_signature instead
1364         of setting TREE_OVERFLOW on the parms TREE_LIST node.
1365
1366 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
1367
1368         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
1369         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
1370         gen_rtx_* not gen_rtx_fmt_*.
1371         (rs6000_emit_vector_select): Likewise.
1372         (rs6000_emit_sync): New.
1373         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
1374         (larx, stcx, cmp): New mode substitutions.
1375         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
1376         UNSPEC_ISYNC): New constants.
1377         (rlwinm): Give name.
1378         (memory_barrier, isync, lwsync): New insns.
1379         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
1380         (sync_lock_release<mode>): New expander.
1381         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
1382         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
1383         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
1384         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
1385         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
1386         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
1387         (sync_add<mode>_internal, sync_addshort_internal,
1388         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
1389         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
1390         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
1391
1392         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
1393         is the memory before, not after, the operation.  Clarify
1394         barrier requirements.
1395
1396 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1397
1398         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
1399         * lambda.h (lambda_vector_min_nz): Likewise.
1400         * langhooks.h (struct lang_hooks_for_types,
1401         struct lang_hooks): Likewise.
1402         * output.h (assemble_integer, this_is_asm_operands): Likewise.
1403         * tree.h: Likewise.
1404         * vec.h: Likewise.
1405         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
1406         
1407         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
1408         comments to avoid 'abort'.  Use gcc_assert as necessary.
1409         * opts.c (common_handle_option): Likewise.
1410         * pretty-print.c (pp_base_format_text): Likewise.
1411         * print-rtl.c (print_rtx): Likewise.
1412         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
1413         * regmove.c (try_auto_increment): Likewise.
1414         * reload.c (find_valid_class, find_reloads_toplev,
1415         find_equiv_reg): Likewise.
1416         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
1417         merge_assigned_reloads): Likewise.
1418         * tree-inline.c (inline_forbidden_p_1,
1419         estimate_num_insns_1): Likewise.
1420         * tree-optimize.c (execute_todo): Likewise.
1421         * tree-outof-ssa.c (eliminate_phi): Likewise.
1422         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
1423         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
1424         * tree-ssa-operands.c (parse_ssa_operands,
1425         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
1426         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
1427         * tree-ssanames.c (release_ssa_name): Likewise.
1428         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
1429         walk_tree): Likewise.
1430
1431         * tree-ssa-operands.c (verify_abort): Fold into ..
1432         (verify_imm_links): ... here.
1433
1434 2005-04-21  Richard Henderson  <rth@redhat.com>
1435
1436         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
1437         on non-memory operand for previous inversion.
1438
1439 2005-04-21  Devang Patel  <dpatel@apple.com>
1440
1441         PR optimization/20994
1442         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
1443         x = !(a == b) : p , q;.
1444         (pass_if_conversion): Verify stmts and flow.
1445         
1446 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1447
1448         * optabs.c (gen_conditional_trap): Restore #define.
1449
1450         * alias.c (true_dependence): Remove 'abort' from comments. Use
1451         gcc_assert and gcc_unreachable as appropriate.
1452         (canon_true_dependence): Likewise.
1453         * bb-reorder.c (connect_traces): Likewise.
1454         * c-common.c (c_add_case_label): Likewise.
1455         * c-decl.c (finish_function): Likewise.
1456         * caller-save.c (insert_restore, insert_save): Likewise.
1457         * cfg.c (update_bb_profile_for_threading): Likewise.
1458         * cfganal.c (flow_active_insn_p): Likewise.
1459         * cfgexpand.c (add_reg_br_prob_note): Likewise.
1460         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1461         cfg_layout_merge_blocks): Likewise.
1462         * ifcvt.c (cond_exec_process_insns, merge_if_block,
1463         find_if_block): Likewise.
1464         * integrate.c (allocate_initial_values): Likewise.
1465         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1466         swap_condition, unsigned_condition, signed_condition,
1467         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1468         reg_or_subregno): Likewise.
1469         * lambda-code.c (lambda_compute_auxillary_space,
1470         lambda_transform_legal_p): Likewise.
1471         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1472         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1473         lhd_incomplete_type_error, lhd_expand_expr,
1474         lhd_types_compatible_p, lhd_tree_size): Likewise.
1475         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1476         * local-alloc.c (update_equiv_regs): Likewise.
1477         * loop-unroll.c (peel_loop_completely
1478         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1479         peel_loop_simple, unroll_loop_stupid,
1480         analyze_iv_to_split_insn): Likewise.
1481         * loop.c (gen_prefetch, find_and_verify_loops,
1482         basic_induction_var): Likewise.
1483         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1484         * value-prof.c (tree_find_values_to_profile): Likewise.
1485         * varasm.c (named_section, default_assemble_integer,
1486         decode_addr_const): Likewise.
1487
1488 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
1489            Fariborz Jahanian <fjahanian@apple.com>
1490
1491         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1492         portion of argument passed in fpr.
1493         * expr.c (emit_push_insn): Fix computation of 'offset' used to
1494         decide on partial argument save on stack.
1495
1496 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1497
1498         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1499         comment typos.
1500
1501 2005-04-21  Jan Hubicka  <jh@suse.cz>
1502
1503         * cgraphunit.c: Include tree-pass.h
1504         (cgraph_decide_recursive_inlining,
1505         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1506         cgraph_decide_inlining): Dump goes to dump_file.
1507         (cgraph_optimize): Call ipa passes instead of inliner.
1508         (cgraph_gate_inlining, pass_ipa_inline): New.
1509         * tree-optimize.c (all_ipa_passes): New static variable.
1510         (register_one_dump_file): Dead with IPA passes.
1511         (register_dump_files): Likewise.
1512         (init_tree_optimization_passes): Initialize IPA passes.
1513         (execute_todo): Do cgraph dump when asked to, do not dump function body
1514         for IPA pass.
1515         * tree-pass.h (TODO_dump_cgraph): New macro.
1516         (ipa_passes): Declare.
1517         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1518
1519 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1520
1521         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1522         gcc_assert instead of abort.
1523         (classify_argument, examine_argument, construct_container,
1524         contains_128bit_aligned_vector_p, ix86_check_movabs,
1525         standard_80387_constant_opcode, standard_80387_constant_rtx,
1526         ix86_initial_elimination_offset, ix86_compute_frame_layout,
1527         pro_epilogue_adjust_stack, ix86_expand_epilogue,
1528         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1529         legitimize_tls_address, output_pic_addr_const,
1530         i386_output_dwarf_dtprel, put_condition_code, print_reg,
1531         get_some_local_dynamic_name, print_operand, print_operand_address,
1532         output_387_binary_op, emit_i387_cw_initialization,
1533         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1534         ix86_expand_clear, ix86_expand_binary_operator,
1535         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1536         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1537         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1538         ix86_expand_branch, ix86_expand_setcc,
1539         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1540         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1541         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1542         memory_address_length, ix86_attr_length_immediate_default,
1543         ix86_attr_length_address_default, ix86_agi_dependant,
1544         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1545         ix86_expand_binop_builtin, ix86_force_to_memory,
1546         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1547         x86_emit_floatuns): Likewise.
1548         * config/i386/netware.c (gen_regparm_prefix,
1549         i386_nlm_strip_name_encoding): Likewise.
1550         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1551
1552 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1553
1554         * optabs.c (gen_condiational_trap): Remove #define.
1555         (add_equal_note): Assertify. Remove explicit indirection from
1556         call via function pointer.
1557         (expand_ternary_op, expand_simple_binop, expand_binop,
1558         expand_twoval_unop, expand_twoval_binop,
1559         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1560         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
1561         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1562         prepare_float_lib_cmp, emit_conditional_move,
1563         emit_conditional_add, gen_add2_insn, gen_add3_insn,
1564         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1565         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1566         vector_compare_rtx, expand_vec_cond_expr): Likewise.
1567
1568 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1569
1570         * vec.h: Update API to separate allocation mechanism from type.
1571         (VEC_safe_grow): New.
1572         * vec.c (calculate_allocation): New.
1573         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1574         (vec_gc_free, vec_heap_free): Remove.
1575         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
1576         (VEC): Likewise.
1577         (mangle_macro_name): New.
1578         (struct macro_def): New.
1579         (struct macro): Add multiple argument values.
1580         (macro_expans_end): New.
1581         (push_macro_expansion):  Chain on new macro. Process multiple
1582         args, create follow on expansion. Return follow on argument.
1583         (macro_input): Deal with multiple arguments.
1584         
1585         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1586         (struct tree_binfo): Adjust.
1587         * basic-block.h: Define VEC(edge,gc).
1588         (struct edge_def): Adjust.
1589         (struct basic_block_def, struct edge_iterator): Likewise.
1590         (ei_container, ei_start_1, ei_last_1): Likewise.
1591         * cfg.c (connect_src, connect_dest): Likewise.
1592         * cfgrtl.c (force_nonfallthru_and_redirect)
1593         * dbxout.c (dbxout_type)
1594         * dwarf2out.c (gen_member_die)
1595         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1596         (gcc_tree_to_linear_expression): Adjust.
1597         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1598         lbv_to_gcc_expression, lle_to_gcc_expression,
1599         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1600         perfect_nestify): Likewise.
1601         * lambda.h (gcc_loopnest_to_lambda_loopnest,
1602         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1603         * profile.c (instrument_values): Adjust.
1604         * tree-cfg.c (modified_noreturn_calls): Adjust.
1605         (remove_fallthru_edge): Likewise.
1606         * tree-dump.c (dequeue_and_dump): Adjust.
1607         * tree-flow-inline.h (mark_stmt_modified): Adjust.
1608         * tree-flow.h (modified_noreturn_calls): Adjust.
1609         (tree_on_heap): Remove. (yay!)
1610         (register_new_def): Adjust.
1611         * tree-into-ssa.c: Define VEC(int,heap).
1612         (block_defs_stack): Adjust.
1613         (find_idf, insert_phi_nodes, register_new_def,
1614         rewrite_initialize_block, rewrite_finalize_block,
1615         register_new_update_single, rewrite_update_init_block,
1616         rewrite_update_fini_block, rewrite_blocks,
1617         ssa_rewrite_finalize_block, ssa_register_new_def,
1618         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1619         * tree-loop-linear.c (linear_transform_loops): Adjust.
1620         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1621         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1622         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1623         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1624         vrp_variables_stack): Adjust declarations.
1625         (tree_ssa_dominator_optimize): Adjust.
1626         (dom_opt_initialize_block, remove_local_expressions_from_table,
1627         restore_nonzero_vars_to_original_value,
1628         restore_vars_to_original_value,
1629         restore_currdefs_to_original_value, dom_opt_finalize_block,
1630         record_var_is_nonzero, record_cond, record_const_or_copy_1,
1631         optimize_stmt, update_rhs_and_lookup_avail_expr,
1632         lookup_avail_expr, record_range): Likewise.
1633         * tree-ssa-pre.c: Define VEC(basic_block,heap).
1634         (compute_antic_aux): Adjust.
1635         (inserted_exprs, create_expression_by_pieces, 
1636         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
1637         remove_dead_inserted_code, fini_pre): Likewise.
1638         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1639         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
1640         ssa_prop_init): Likewise.
1641         * tree-ssa.c: Define VEC(bitmap,heap).
1642         (verify_name_tags): Adjust.
1643         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1644         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1645         tree_divmod_values_to_profile, tree_find_values_to_profile,
1646         value_profile_transformations): Likewise.
1647         * value-prof.h: Define VEC(histogram_value,heap).
1648         * varasm.c: Remove alias_pair pointer typedef, define
1649         VEC(alias_pair,gc).
1650         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1651         
1652         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1653         not a pointer to it.  Create an object vector.
1654         (extern_symbols): Turn into an object vector.
1655         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1656
1657 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
1658
1659         PR/20742
1660         * Makefile.in (tree-chrec.o): Depend on params.h.
1661         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1662         default value 20.
1663         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
1664         and fold build with fold_buildN.
1665         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1666         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1667         (tree_contains_chrecs): Compute an estimation of the size of the
1668         given expression.
1669         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1670         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1671         * tree-scalar-evolution.c (simple_iv): Ditto.
1672         * doc/invoke.texi (scev-max-expr-size): Documented.
1673
1674 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
1675
1676         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1677         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1678         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1679         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1680         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1681         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1682         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1683         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1684         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1685         (darwin_fix_and_continue_switch): Delete.
1686         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1687         (SUBTARGET_SWITCHES): Delete.
1688         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1689         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1690         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1691         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1692         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1693         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1694         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1695         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1696         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1697         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1698         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1699         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1700         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1701         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1702         (TARGET_64BIT): Undef before redefining.
1703         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1704         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1705         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1706         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1707         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1708         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1709         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1710         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1711         (ix86_debug_arg_string, ix86_debug_addr_string)
1712         (ix86_align_loops_string, ix86_align_jumps_string)
1713         (ix86_align_funcs_string): Delete.
1714         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1715         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1716         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1717         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1718         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1719         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1720         (SUBTARGET_SWITCHES): Delete.
1721         * config/i386/i386.c (ix86_debug_arg_string): Delete.
1722         (ix86_debug_addr_string): Delete.
1723         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1724         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1725         (ix86_align_loops_string, ix86_align_jumps_string)
1726         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1727         (ix86_align_funcs_string): Make static.
1728         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1729         (ix86_handle_option): New function.
1730         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1731         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1732         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1733         of darwin_fix_and_continue_switch.
1734         (darwin_one_byte_bool): Delete.
1735         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1736         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1737         to darwin_one_byte_bool.
1738         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1739         * config/i386/djgpp.opt, config/i386/i386.opt,
1740         * config/i386/sco5.opt: New files.
1741
1742 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1743
1744         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1745         fp_zero_operand, fp_register_operand, intreg_operand,
1746         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1747         call_operand, call_operand_address, tgd_symbolic_operand,
1748         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1749         symbolic_operand, symbolic_memory_operand, label_ref_operand,
1750         sp64_medium_pic_operand, data_segment_operand,
1751         text_segment_operand, splittable_symbolic_memory_operand,
1752         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1753         eq_or_neq, normal_comp_operator, noov_compare_op,
1754         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1755         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1756         const64_operand, const64_high_operand, arith11_operand,
1757         arith10_operand, arith_double_operand, arith_double_4096_operand,
1758         arith_double_add_operand, arith11_double_operand,
1759         arith10_double_operand, small_int, small_int_or_double,
1760         uns_small_int, uns_arith_operand, clobbered_register,
1761         input_operand, compare_operand): Delete.
1762         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
1763         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1764         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1765         (GEN_HIGHINT64, GEN_INT64): Delete.
1766         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1767         gen_safe_XOR64): Adjust for above deletion.
1768         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1769         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1770         (legitimate_constant_p): Use const_zero_operand instead.
1771         (sparc_extra_constraint_check): Likewise.
1772         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1773         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1774         (PREDICATE_CODES): Delete.
1775         * config/sparc/sparc.md: Include predicates.md.
1776         (All patterns): Adjust for new predicate names.
1777         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1778         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1779         (movdi): Use general_operand predicate.
1780         (movdi_sp64_dbl): Delete.
1781         (movdi_const64_special): Add 'N' constraint.
1782         (movdicc): Use arith10_operand predicate.
1783         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1784         (movdi_cc_reg_sp64): Use arith10_operand predicate.
1785         (movdi_cc_reg_sp64_trunc): Delete.
1786         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1787         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1788         (subdi3_sp32): Delete.
1789         (subdi3_insn_sp32): Change to define_insn_and_split.
1790         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1791         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1792         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1793         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1794         small_int_operand predicate.
1795         (divdi3, udivdi3): Use arith_operand predicate.
1796         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1797         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1798         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1799         (xordi3_sp64_dbl): Delete.
1800         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1801         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1802         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1803         cmp_ccx_set_not): Use arith_operand predicate.
1804         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1805         * config/sparc/predicates.md: New file.
1806
1807 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1808
1809         PR tree-optimization/14846
1810         * fold-const.c (fold_single_bit_test_into_sign_test): New,
1811         split out from ...
1812         (fold_single_bit_test): ... here.
1813         (fold_binary): Call fold_single_bit_test_into_sign_test
1814         instead of fold_single_bit_test.
1815
1816 2005-04-20  James E Wilson  <wilson@specifixinc.com>
1817
1818         PR c++/20805
1819         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1820         is another declaration.
1821
1822 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
1823
1824         * config/cris/predicates.md: New file.
1825         * config/cris/cris-protos.h (cris_store_multiple_op_p)
1826         (cris_movem_load_rest_p): Declare.
1827         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1828         (cris_movem_load_rest_p): Ditto.  Globalize.
1829         (cris_bdap_operand, cris_bdap_biap_operand,
1830         cris_orthogonal_operator, cris_commutative_orth_op,
1831         cris_operand_extend_operator,
1832         cris_additive_operand_extend_operator, cris_extend_operator,
1833         cris_plus_or_bound_operator, cris_mem_op,
1834         cris_general_operand_or_symbol,
1835         cris_general_operand_or_gotless_symbol,
1836         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1837         cris_load_multiple_op): Remove predicate functions.
1838         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1839         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1840         * config/cris/cris.h (PREDICATE_CODES): Don't define.
1841         * config/cris/cris.md: Include predicates.md.
1842         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1843
1844 2005-04-20  Ian Lance Taylor  <ian@airs.com>
1845
1846         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1847         * c-common.h (STMT_EXPR_STMT): Don't define.
1848         (STMT_EXPR_NO_SCOPE): Don't define.
1849         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1850         * c-pretty-print.c (pp_c_primary_expression): Likewise.
1851         (pp_c_expression): Likewise.
1852
1853 2005-04-20  Richard Henderson  <rth@redhat.com>
1854
1855         PR target/21100
1856         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1857
1858 2005-04-20  Jeff Law  <law@redhat.com>
1859
1860         * reload1.c (reload): Ignore equivalences between pseudos and
1861         read only memory.
1862
1863 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
1864
1865         PR c/12913
1866         * c-tree.h (struct c_label_list): Update comment.
1867         (struct c_label_context): Rename to struct c_label_context_se.
1868         (label_context_stack): Rename to label_context_stack_se.
1869         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1870         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1871         c_end_vm_scope): New.
1872         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1873         * c-decl.c (pop_scope): Call c_end_vm_scope.
1874         (pushdecl): Call c_begin_vm_scope for variably modified
1875         declarations.
1876         (define_label): Check for jumping into scope of identifier with
1877         variably modified type.  Push label on stack for those defined at
1878         current context of identifiers with variably modified type.
1879         (start_function): Create stack level for context of identifiers
1880         with variably modified type.
1881         (finish_function): Pop stack level for context of identifiers with
1882         variably modified type.
1883         * c-typeck.c (label_context_stack): Rename to
1884         label_context_stack_se.
1885         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1886         (c_finish_goto_label): Check for jumping into scope of identifier
1887         with variably modified type.  Push label on stack for those jumped
1888         to from current context of identifiers with variably modified
1889         type.
1890         (struct c_switch): Add blocked_vm.
1891         (c_start_case): Initialize blocked_vm.
1892         (do_case): Check blocked_vm.
1893         (c_finish_case): Add comment.
1894         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1895         variable label_context_stack.
1896
1897 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1898
1899         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1900         conditional_replacement, value_replacement, abs_replacement,
1901         minmax_replacement.
1902         (replace_phi_edge_with_variable): Remove argument BB.
1903         (conditional_replacement, value_replacement,
1904         minmax_replacement, abs_replacement): Remove argument PHI_BB.
1905         Update a call to replace_phi_edge_with_variable.
1906
1907         * tree-ssa-phiopt.c: Fix comments.
1908
1909 2005-04-20  Michael Matz  <matz@suse.de>
1910
1911         PR20973
1912         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1913         pseudos.
1914
1915 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1916
1917         * tree-ssa-phiopt.c: Fix comment typos.
1918
1919         PR tree-optimization/21116
1920         * tree-ssa-phiopt.c: Fix a typo.
1921
1922 2005-04-19  Richard Henderson  <rth@redhat.com>
1923
1924         * builtins.c (expand_builtin_sync_operation): Revert last change.
1925         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1926         not vs new value.
1927         (expand_compare_and_swap_loop): Likewise.
1928         (expand_sync_operation): Remove fallback from NAND to AND; invert
1929         memory operand when expanding from cmpxchg.
1930         (expand_sync_fetch_operation): Likewise.
1931         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1932         compare-and-swap.
1933
1934         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1935         when implementing NAND.  Fix double-add for AFTER.
1936         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1937         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1938         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
1939         memory value.
1940         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1941         memory barrier.
1942
1943         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1944         to return old memory value.
1945         (sync_compare_and_swap_cc<IMODE>): Likewise.
1946
1947         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1948         return pre-reload.  Don't consider output or anti dependencies.
1949         * config/ia64/sync.md (IMODE): New.
1950         (modesuffix): Add QI and HI.
1951         (memory_barrier): Simplify expansion.
1952         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1953         (cmpxchg_acq_<IMODE>): Likewise.
1954         (sync_lock_test_and_set<IMODE>): Likewise.
1955         (sync_lock_release<IMODE>): Likewise.
1956
1957 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1958
1959         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1960         ~X or ~Y simplify.
1961
1962 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1963
1964         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
1965
1966 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
1967             Joseph S. Myers  <joseph@codesourcery.com>
1968
1969         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
1970         * c-typeck.c (build_c_cast): Check these options.
1971         * doc/invoke.texi: Document these options.
1972
1973 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1974
1975         * tree-ssa-phiopt.c: Update a comment about the pass.
1976
1977 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
1978
1979         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
1980         config/mcore/mcore.c: Fix comment typos.
1981
1982 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
1983
1984         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
1985         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
1986
1987 2005-04-19  Paul Brook  <paul@codesourcery.com>
1988
1989         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
1990
1991 2005-04-19  Andrew Haley  <aph@redhat.com>
1992
1993         PR java/21022
1994         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
1995         looking at a field's bitpos.
1996
1997 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1998
1999         * system.h (fopen, fdopen, freopen): Define these to the unlocked
2000         libiberty functions.
2001
2002 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
2003
2004         PR tree-optimization/21096
2005         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
2006
2007 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
2008
2009         PR target/21098
2010         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
2011         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
2012
2013 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
2014
2015         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
2016         refers to the function being dumped.
2017
2018 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
2019
2020         * varasm.c (assemble_start_function): Remove reset of in_section.
2021
2022 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2023
2024         PR tree-optimization/21085
2025         * fold-const (fold_binary): Don't change X % -C to X % C if C has
2026         overflowed.
2027
2028 2005-04-19  Ben Elliston  <bje@au.ibm.com>
2029
2030         * doc/invoke.texi (Optimize Options): Refer to the correct
2031         optimisation flag -ftree-dominator-opts, not -ftree-dom.
2032
2033 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
2034
2035         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
2036         alloca argument to be big enough.
2037
2038 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
2039
2040         PR middle-end/21049
2041         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
2042         cfun->cfg are NULL.
2043
2044 2005-04-18  Tom Tromey  <tromey@redhat.com>
2045
2046         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
2047         typo.
2048
2049 2005-04-18  Richard Henderson  <rth@redhat.com>
2050
2051         * config/alpha/alpha.c (alpha_split_atomic_op): New.
2052         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
2053         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
2054         * config/alpha/alpha-protos.h: Update.
2055         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
2056         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
2057         (attr type): Add ld_l, st_c, mb.
2058         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
2059         iornotsi3, xorsi_internal, xornotsi3): New.
2060         * config/alpha/ev4.md (ev4_ld): Add ld_l.
2061         (ev4_ist_c, ev4_mb): New.
2062         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
2063         (ev5_ld_l): New.
2064         * config/alpha/ev6.md (ev6_ild): Add ld_l.
2065         (ev6_ist): Add st_c.
2066         (ev6_mb): New.
2067         * config/alpha/sync.md: New file.
2068
2069 2005-04-18  Richard Henderson  <rth@redhat.com>
2070
2071         * builtins.c (expand_builtin_sync_operation): Fold nand to and
2072         for constants.
2073
2074         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
2075
2076 2005-04-18  Devang Patel  <dpatel@apple.com>
2077
2078         * config/rs6000/atlivec.md (mulv4si3): New pattern.
2079         
2080 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2081
2082         PR tree-optimization/20922
2083         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
2084         Fold X + c >= X and fold X - c <= X to true.
2085
2086 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
2087
2088         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
2089         unsigned int.
2090         (emergency_labeled_state_free): Likewise.
2091
2092 2005-04-18  Nick Clifton  <nickc@redhat.com>
2093
2094         * config/h8300/h8300.md (jump): Remove prescan parameter from
2095         calls to final_scan_insn.
2096
2097         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
2098         parameter from calls to final_scan_insn.
2099
2100         * config.gcc (m68hc12): Use the m68hc11.opt file for target
2101         specific options.
2102         (v850e, v850e1): Use the v850.opt file for target specific
2103         options.
2104
2105 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2106
2107         PR tree-optimization/21001
2108         * tree-optimize.c (init_tree_optimization_passes): Move the
2109         first pass_forwprop immediately before pass_vrp.
2110
2111 2005-04-17  Ian Lance Taylor  <ian@airs.com>
2112
2113         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
2114         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
2115         from enum tree_code op to bool is_sizeof.
2116         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
2117         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
2118         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
2119         case.
2120         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
2121         cases.
2122         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
2123         ALIGNOF_EXPR cases.
2124
2125 2005-04-17  Ian Lance Taylor  <ian@airs.com>
2126
2127         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
2128
2129 2005-04-17  Richard Henderson  <rth@redhat.com>
2130
2131         * config/alpha/alpha.c (va_list_skip_additions): Only define if
2132         TARGET_ABI_OSF.
2133         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
2134         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
2135         of indirection through ssa names while looking for the gpr counter
2136         field.
2137         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
2138         saved va_list_gpr_size and va_list_fpr_size.
2139
2140 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2141
2142         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
2143         both pointers or both integers.
2144
2145         * tree-vrp.c (maybe_add_assert_expr): Don't assert
2146         ASSERT_EXPRs for single-use variable.
2147
2148         * tree-into-ssa.c: Fix a comment typo.
2149
2150 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
2151
2152         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
2153         -mipsN before forcing a default of -mips2.
2154
2155 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2156
2157         * predict.h (IS_TAKEN): Remove.
2158         * rtl.h (NOTE_PREDICTION): Likewise.
2159
2160         * modulo-sched.c (CFG_HOOKS): Remove.
2161
2162         * c-parser.c (N_C_TTYPES): Remove.
2163
2164         * tree-flow-inline.h (get_stmt_operands): Remove.
2165         * lambda-code.c, tree-ssa-loop-unswitch.c,
2166         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2167         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
2168         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
2169         calls to get_stmt_operands.
2170         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
2171
2172 2005-04-17  Richard Henderson  <rth@redhat.com>
2173
2174         PR target/20375
2175         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
2176         of CUMULATIVE_ARGS past the last named argument.
2177         (alpha_va_start): Expect pretend_args_size only if strictly less than
2178         6 named arguments.
2179
2180 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2181
2182         PR middle-end/21024
2183         * builtins.c (expand_builtin_strcat): Convert the result of
2184         strlen to the right type.
2185         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
2186         avoid creating type mismatches.
2187         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
2188         type mismatches.
2189
2190         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
2191
2192 2005-04-16  Richard Henderson  <rth@redhat.com>
2193
2194         PR target/21051
2195         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
2196         Use the mode of boolean_type_node when the user doesn't provide one.
2197         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
2198
2199 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
2200
2201         PR target/20126
2202         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
2203         (const)).
2204
2205         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
2206         comment.
2207
2208 2005-04-16  Roger Sayle  <roger@eyesopen.com>
2209             Steven Bosscher  <stevenb@suse.de>
2210
2211         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
2212         (fold_unary_to_constant): Likewise.
2213
2214 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
2215
2216         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
2217         PROP_ASM_SCAN.
2218
2219 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
2220
2221         * doc/install.texi (Specific): Avoid using asterisks in @anchor
2222         names related to target triplets.
2223         Remove i?86-*-esix from platform directory.
2224         Remove powerpc-*-eabiaix from platform directory.
2225
2226 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
2227
2228         PR middle-end/20491
2229         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
2230         falling through from SUBREG case to REG.
2231
2232 2005-04-15  Roger Sayle  <roger@eyesopen.com>
2233
2234         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
2235         (fold_binary): Update comment mentioning fold_relational_hi_lo.
2236         (fold_binary_to_constant): Simplify using fold_binary.
2237         (fold_unary_to_constant): Likewise, simplify using fold_unary.
2238
2239 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2240
2241         * gthr-posix.c (pthread_cancel): Define.
2242         (pthread_mutexattr_init): Likewise.
2243         (pthread_mutexattr_settype): Likewise.
2244         (pthread_mutexattr_destroy): Likewise.
2245
2246 2005-04-15  David S. Miller  <davem@davemloft.net>
2247
2248         PR target/20673
2249         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
2250
2251 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2252
2253         PR tree-optimization/21031
2254         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
2255         (forward_propagate_into_cond_1): Call it.  Forward propagate
2256         integer-integer casts into COND_EXPRs.
2257
2258 2005-04-15  Dave Korn  <dave.korn@artimi.com>
2259
2260         * gcc.c (default_compilers): Clarify obscure error message when
2261         reading from standard input.
2262
2263 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2264
2265         * basic-block.h (PROP_EQUAL_NOTES): Remove.
2266         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
2267
2268         * tree-ssa-alias.c (init_alias_info): Remove a call to
2269         get_stmt_operands.
2270
2271 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
2272
2273         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
2274         of non-virtual PHI nodes like we use to.
2275
2276 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
2277
2278         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
2279         (attr_copy_rtx): Do not use it.
2280
2281 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
2282
2283         * doc/tree-ssa.texi: Grammer/abbreviation updates.
2284
2285 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
2286
2287         * tree-vect-transform.c (vectorizable_store): Mark necessary
2288         objects in the vectorized store needing renaming.  Update the
2289         SSA graph for V_MAY_DEF operands in the original store.
2290
2291 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
2292
2293         * tree-ssa-pre.c (compute_avail): It's okay to have
2294         TREE_INVARIANT's here, and value number the resulting expressions.
2295         (create_expression_by_pieces): Make sure operands that were
2296         min_invariant when we started, stay that way.
2297
2298 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
2299
2300         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
2301
2302 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2303
2304         PR tree-optimization/20936.
2305         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
2306
2307 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2308
2309         * doc/invoke.texi: Fix typos.
2310         * doc/md.texi: Likewise.
2311         * doc/rtl.texi: Likewise.
2312         * doc/sourcebuild.texi: Likewise.
2313         * doc/tm.texi: Likewise.
2314
2315 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
2316
2317         PR tree-optimization/21004
2318         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
2319         and floorl in c99 mode only.
2320         * builtins.c (expand_builtin_int_roundingfn): Assert that
2321         fallback_fndecl is not NULL_TREE.
2322
2323 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
2324
2325         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
2326         * basic-block.h: Update the prototype for
2327         purge_all_dead_edges.
2328         * cfgexpand.c (tree_expand_cfg): Update a call to
2329         purge_all_dead_edges.
2330         * combine.c (combine_instructions): Likewise.
2331         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
2332         rest_of_handle_cse2, rest_of_handle_gcse,
2333         rest_of_handle_postreload): likewise.
2334
2335 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
2336
2337         PR middle-end/20739
2338         * gimplify.c (gimplify_addr_expr): Compensate for removal of
2339         e.g. cv-qualification conversions.
2340
2341 2005-04-14  Mike Stump  <mrs@apple.com>
2342
2343         * config/darwin-c.c (framework_construct_pathname): We must
2344         find all headers of a framework in the first instance of it
2345         found in the seach path.
2346
2347 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2348
2349         PR tree-optimization/21021
2350         * tree-vrp.c (compare_values): Work around a bug in the front
2351         end that produces a comparison of mismatched types.
2352
2353 2004-04-14  Richard Henderson  <rth@redhat.com>
2354
2355         * config/ia64/ia64.h (enum fetchop_code): Remove.
2356         (enum ia64_builtins): Move ...
2357         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
2358         members except BSP and FLUSHRS.
2359         (ia64_init_builtins): Remove __sync builtins.
2360         (ia64_expand_builtin): Likewise.
2361         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
2362         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
2363         (ia64_expand_lock_release): Remove.
2364         * config/ia64/ia64.md (mf): Move to sync.md.
2365         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
2366         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
2367         * config/ia64/sync.md: New file.
2368         (memory_barrier): Rename from mf.
2369         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
2370         (cmpxchg_acq_<I48MODE>): Likewise.
2371         (sync_lock_test_and_set<I48MODE>): Likewise.
2372
2373         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
2374         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
2375
2376 2004-04-14  Richard Henderson  <rth@redhat.com>
2377
2378         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
2379         (ix86_compare_emitted): New.
2380         (ix86_expand_compare): Use ix86_compare_emitted if set.
2381         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
2382         and ix86_compare_op0 are set.
2383         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
2384         (TARGET_CMPXCHG, TARGET_XADD): New.
2385         (ix86_compare_emitted): Declare.
2386         * config/i386/i386.md: Include sync.md
2387         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
2388         (UNSPECV_XCHG, UNSPECV_LOCK): New.
2389         * config/i386/sync.md: New file.
2390
2391 2004-04-14  Richard Henderson  <rth@redhat.com>
2392
2393         PR middle-end/14311
2394         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
2395         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
2396         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
2397         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
2398         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
2399         BT_FN_I8_VPTR_I8_I8): New.
2400         * builtins.def (DEF_SYNC_BUILTIN): New.
2401         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
2402         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
2403         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
2404         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
2405         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
2406         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
2407         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
2408         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
2409         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
2410         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
2411         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
2412         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
2413         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
2414         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
2415         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
2416         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
2417         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
2418         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
2419         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
2420         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
2421         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
2422         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
2423         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
2424         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
2425         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
2426         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
2427         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
2428         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
2429         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
2430         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
2431         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
2432         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
2433         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
2434         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
2435         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
2436         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
2437         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
2438         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
2439         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
2440         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
2441         BUILT_IN_SYNCHRONIZE: New.
2442         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
2443         as a function.  Accept __sync_ as a prefix as well.
2444         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2445         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2446         expand_builtin_lock_release): New.
2447         (expand_builtin): Call them.
2448         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2449         neither BOTH_P nor FALLBACK_P are defined.
2450         (builtin_type_for_size): New.
2451         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2452         (resolve_overloaded_builtin): New.
2453         * c-common.h (resolve_overloaded_builtin): Declare.
2454         (builtin_type_for_size): Declare.
2455         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2456         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2457         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2458         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2459         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2460         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2461         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2462         sync_compare_and_swap_cc, sync_lock_test_and_set,
2463         sync_lock_release): New.
2464         * optabs.h: Declare them.
2465         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2466         expand_sync_operation, expand_sync_fetch_operation,
2467         expand_sync_lock_test_and_set): Declare.
2468         * genopinit.c (optabs): Add sync optabs.
2469         * optabs.c (init_optabs): Initialize sync optabs.
2470         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2471         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2472         expand_sync_operation, expand_sync_fetch_operation,
2473         expand_sync_lock_test_and_set): New.
2474         * doc/extend.texi (Atomic Builtins): New section
2475         * doc/md.texi (Standard Names): Add sync patterns.
2476
2477 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
2478
2479         * tree-eh.c (lower_try_finally_copy): Generate new code in
2480         response to goto_queue entries as if the queue was sorted by
2481         index, not pointers.
2482         (lower_try_finally_switch): Likewise.
2483
2484 2005-04-14  Richard Henderson  <rth@redhat.com>
2485
2486         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2487         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
2488         register.
2489         (ix86_expand_fp_movcc): Update to match.
2490         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2491         * config/i386/i386-protos.h: Update.
2492         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2493         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2494
2495 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
2496
2497         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2498         refer to 4.0.
2499
2500 2005-04-14  Julian Brown  <julian@codesourcery.com>
2501
2502         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2503         link failures on ppc64 Linux.
2504
2505 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2506
2507         * config.gcc: Set cpu_type for s390.
2508
2509 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
2510
2511         Fix PR tree-optimization/20963
2512         * tree-ssa-pre.c (compute_avail): Remove special case for
2513         TREE_INVARIANT.
2514         (create_expression_by_pieces): Add value numbers for forced out
2515         statements.
2516
2517 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
2518
2519         * config/cris/cris.md: Replace references to (reg:SI 16) with
2520         (reg:SI CRIS_SRP_REGNUM).
2521
2522 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2523
2524         PR tree-optimization/20657
2525         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2526         create an appropriate range from it.
2527
2528 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2529
2530         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2531         <UNSPEC_FIST_CEIL> case.
2532
2533         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2534         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2535         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2536         to implement lfloor and llfloor built-ins as x87 intrinsic function.
2537         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2538         (lfloor<mode>2): New expanders.
2539         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2540         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2541         to implement lceil and llceil built-ins as x87 intrinsic function.
2542         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2543         (lceil<mode>2): New expanders.
2544
2545 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2546
2547         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2548         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2549
2550 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
2551
2552         PR target/20927
2553         * config/s390/s390-modes.def: Define TFmode.
2554
2555 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
2556
2557         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2558         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2559         * config/mips/mips.c (mips16_insn_length): Remove reference to
2560         JUMP_TABLES_IN_TEXT_SECTION.
2561
2562 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2563
2564         * simplify-rtx.c (simplify_binary_operation_1): Return
2565         scalar or vector of constant 0, depending on the xor's
2566         mode.
2567
2568 2005-04-13  Dale Johannesen  <dalej@apple.com>
2569
2570         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
2571         (objc-act.o):  Ditto.
2572         * objc/objc-act.c (objc_gimplify_expr):  New.
2573         (objc_get_callee_fndecl):  New.
2574         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
2575         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
2576         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
2577
2578 2005-04-13  Devang Patel  <dpatel@apple.com>
2579
2580         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2581         temp variables.
2582
2583 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
2584
2585         CRIS prologue as RTL.
2586         * config/cris/cris-protos.h (cris_emit_movem_store)
2587         (cris_expand_prologue): Prototype.
2588         * config/cris/cris.c (struct machine_function): New member
2589         stdarg_regs.
2590         (cfa_label_num, cris_target_asm_function_prologue): Remove.
2591         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2592         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2593         (cris_load_multiple_op, cris_return_address_on_stack)
2594         (cris_return_address_on_stack_for_return): ISO-Cify.
2595         (cris_store_multiple_op): New predicate function.
2596         (cris_expand_prologue, cris_emit_movem_store): New functions.
2597         (cris_print_operand) <case 'O'>: Handle modifications other than
2598         post-increment.
2599         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2600         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2601         (cris_gen_movem_load): Rearrange slightly to make local variable
2602         src a parameter, removing osrc.
2603         (cris_setup_incoming_varargs): Set machine_function member
2604         stdarg_regs to correspond to the number of registers that need to
2605         be saved.
2606         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2607         CRIS_UNSPEC_GOT.
2608         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
2609         cris_general_operand_or_gotless_symbol accept UNSPEC.
2610         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2611         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2612         ("*cris_store_multiple"): New pattern.  Tweak common comment above
2613         this and "*cris_load_multiple".
2614         ("prologue"): New define_expand.
2615
2616         * config/cris/cris.md ("epilogue"): Conditionalize on
2617         TARGET_PROLOGUE_EPILOGUE.
2618
2619 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
2620
2621         PR target/20924
2622         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2623         fpsr 0 instead of fpsr 1.
2624         (divsf3_internal_thr): Ditto.
2625         (divdf3_internal_lat): Ditto.
2626         (divdf3_internal_thr): Ditto.
2627         (divxf3_internal_lat): Ditto.
2628         (divxf3_internal_thr): Ditto.
2629
2630 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2631
2632         PR tree-optimization/20913
2633         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2634
2635         PR tree-optimization/20702
2636         * tree-vrp.c (maybe_add_assert_expr): Recurse into
2637         dominator children that haven't been walked into.
2638
2639 2005-04-13  Julian Brown  <julian@codesourcery.com>
2640
2641         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2642         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2643         is true.
2644
2645 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2646
2647         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2648         config/i386/sse.md: Fix comment typos.
2649
2650         * genattrtab.c (NULL_ATTR): Remove.
2651         * ifcvt.c (NULL_EDGE): Likewise.
2652
2653         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2654
2655         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2656         NOTE_PREDICT): Remove.
2657
2658 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2659
2660         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2661         * configure: Regenerate.
2662         * config.in: Likewise.
2663         * system.h: Declare vsnprintf if not already declared.
2664
2665 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2666
2667         * optc-gen.awk: Handle stand-alone Mask records.
2668         * opth-gen.awk: Likewise.
2669         * doc/options.texi (Option file format): Document them.
2670         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2671         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2672         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2673         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2674         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2675         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2676         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2677         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2678         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2679         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2680         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2681         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2682         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2683         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2684         TARGET_LONG_DOUBLE_128): Likewise.
2685         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2686         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2687         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2688         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2689         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2690         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2691         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2692         * config/sparc/sparc.c (fpu_option_set): New global.
2693         (sparc_handle_option): New function.
2694         (sparc_override_options): Test fpu_option_set.
2695         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2696         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2697         * config/sparc/sparc.opt: New file.
2698         * config/sparc/little-endian.opt: Likewise.
2699         * config/sparc/long-double-switch.opt: Likewise.
2700
2701 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2702
2703         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2704         (bfin_handle_options): Set it if -mshared-library-id= is seen.
2705         * config/bfin/bfin.opt (mshared-library-id=): Lose
2706         Var(bfin_lib_id_given).
2707
2708 2005-04-13  Matt Thomas  <matt@3am-software.com>
2709
2710         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2711         defining.
2712
2713 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2714
2715         * rtl.h (CLEAR_RTX_FLAGS): Remove.
2716
2717         * cgraphunit.c (INSNS_PER_CALL): Remove.
2718
2719         * tree-ssa-forwprop.c (vars,
2720         record_single_argument_cond_exprs,
2721         substitute_single_use_vars): Remove.
2722         (forward_propagate_into_cond_1, forward_propagate_into_cond):
2723         New.
2724         (tree_ssa_forward_propagate_single_use_vars): Call
2725         forward_propagate_into_cond for each COND_EXPR.
2726
2727         * tree-inline.c (INSNS_PER_STMT): Remove.
2728
2729 2005-04-12  Richard Henderson  <rth@redhat.com>
2730
2731         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2732         (ix86_expand_sse_fp_minmax): ... from ...
2733         (ix86_expand_fp_movcc): ... here.
2734         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2735         * config/i386/i386-protos.h: Update.
2736         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2737         (sse_setccsf, sse_setccdf): Allow before reload.
2738         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2739         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2740         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2741         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2742         (anddf3, nanddf3, iordf3, xordf3): New.
2743
2744 2005-04-12  Jeff Law  <law@redhat.com>
2745
2746         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2747         (tree-ssa-uncprop.o): Add dependencies.
2748         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2749         * tree-flow.h (remove_useless_stmts): Remove prototype.
2750         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2751         remove_useless_stmts.
2752         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2753         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2754         * tree-pass.h (pass_uncprop): Declare.
2755         * tree-ssa-uncprop.c: New file.
2756
2757 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
2758
2759         PR target/20670
2760         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2761
2762 2005-04-12  Caroline Tice  <ctice@apple.com>
2763
2764         Temporary fix for partitioning problems.
2765         * passes.c (rest_of_handle_final): Remove code that
2766         frees unlikely_text_section_name,
2767         * varasm.c (assemble_start_function): Test for partitioning
2768         flag before writing out section labels.
2769         (assemble_end_function): Test for partitioning flag before
2770         writing out section labels.
2771
2772 2005-04-12  Steven Bosscher  <stevenb@suse.de>
2773             Stuart Hastings <stuart@apple.com>
2774             Jan Hubicka  <jh@suse.cz>
2775
2776         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
2777         references to gt-tree-cfg.h.
2778         * basic-block.h (struct basic_block_def): Don't skip rbi
2779         for garbage collection.
2780         (struct reorder_block_def): Make GTY-able.
2781         (struct control_flow_graph): New structure.
2782         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2783         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2784         but instead defines to the control_flow_graph for cfun.
2785         (label_to_block_map): New define, points to the label map of
2786         the control_flow_graph for cfun.
2787         (n_edges_for_function, n_basic_blocks_for_function,
2788         last_basic_block_for_function, basic_block_info_for_function,
2789         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2790         basic_block_info_for_function, label_to_block_map_for_function):
2791         Counterparts for the above, taking a struct function as an extra
2792         argument.
2793         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2794         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2795         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2796         (alloc_rbi_pool, free_rbi_pool): Remove.
2797         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2798         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2799         here...
2800         (cfg_layout_finalize) ... and don't free it here.
2801         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2802         garbage collected.
2803         * flow.c (free_basic_block_vars): Set label_to_block_map and
2804         n_edges to zero too.
2805         * function.h (struct function): Add cfg field.
2806         * function.c (allocate_struct_function): Allocate the cfg.
2807         * tree-cfg.c (label_to_block_map): Remove.
2808         (build_tree_cfg): Don't allocate the rbi pool here...
2809         (delete_tree_cfg_annotations): ...and don't free it here.
2810         Also don't nullify label_to_block_map for cfun.
2811
2812 2005-04-12  Caroline Tice  <ctice@apple.com>
2813
2814         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2815         Revert my patch from April 9.
2816         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2817         (reorder_basic_blocks): Revert my patch from April 9.
2818         (insert_section_boundary_note): Revert my patch from April 9.
2819         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2820         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2821         (COLD_END_LABEL):  Revert my patch from April 9.
2822         (cold_text_section_label):  Revert my patch from April 9.
2823         (cold_end_label): Revert my patch from April 9.
2824         (dwarf2out_switch_text_section): Revert my patch from April 9.
2825         (output_aranges): Revert my patch from April 9.
2826         (output_ranges):  Revert my patch from April 9.
2827         (output_line_info): Revert my patch from April 9.
2828         (add_location_or_const_value_attribute):  Revert my patch from April 9.
2829         (dwarf2out_var_location): Revert my patch from April 9.
2830         (dwarf2out_init):  Revert my patch from April 9.
2831         (dwarf2out_finish): Revert my patch from April 9.
2832         * function.h (struct function): Revert my patch from April 9.
2833         * opts.c (decode_options): Revert my patch from April 9.
2834         * output.h (unlikely_section_label, hot_section_label,
2835         hot_section_end_label, cold_section_end_label,
2836         unlikely_text_section_name): Revert my patch from April 9.
2837         * passes.c (rest_of_handle_final): Revert my patch from April 9.
2838         * varasm.c (unlikely_section_label, hot_section_label,
2839         hot_section_end_label, cold_section_end_label,
2840         unlikely_text_section_name): Revert my patch from April 9.
2841         (initialize_cold_section_name): Revert my patch from April 9.
2842         (unlikely_text_section): Revert my patch from April 9.
2843         (in_unlikely_text_section): Revert my patch from April 9.
2844         (named_section): Revert my patch from April 9.
2845         (function_section): Revert my patch from April 9.
2846         (current_function_section): Revert my patch from April 9.
2847         (assemble_start_function): Revert my patch from April 9.
2848         (assemble_end_function): Revert my patch from April 9.
2849         (default_section_type_flags_1): Revert my patch from April 9.
2850
2851 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2852
2853         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2854         * config/sparc/sparc.md (untyped_call): Save the registers manually.
2855
2856         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2857
2858 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
2859
2860         PR middle-end/20917
2861         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2862         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2863
2864 2004-04-12  Richard Henderson  <rth@redhat.com>
2865
2866         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2867         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2868         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2869         (UNSPEC_*, UNSPECV_*): Renumber.
2870
2871 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
2872
2873         PR mudflap/19266
2874         From Richard Henderson <rth@redhat.com>:
2875         * tree-mudflap.c (mf_build_check_statement_for): Correct block
2876         splitting logic.
2877
2878 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
2879
2880         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2881
2882 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2883
2884         * config/bfin/bfin.c (bfin_library_id_string): Remove.
2885         (bfin_library_id): New variable.
2886         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2887         instead of bfin_library_id_string.
2888         (bfin_handle_option): New function.
2889         (override_options): Remove most code to deal with shared library IDs,
2890         just check they aren't used without -mid-shared-library.
2891         (TARGET_HANDLE_OPTION): Define.
2892         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2893         * config/bfin/bfin.opt (mshared-library-id=): New.
2894
2895 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
2896
2897         * tree-vect-transform.c: Fix comment typos.
2898
2899 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2900
2901         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2902         split critical edges when not possible/profitable.
2903
2904 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2905
2906         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2907         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2908         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2909         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2910         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2911         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2912         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2913         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2914         MASK_NO_BITFIELD.
2915         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2916         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2917         * config/ns32k/ns32k.opt: New file.
2918
2919 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2920
2921         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2922         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2923         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2924         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2925         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2926         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2927         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2928         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2929         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2930         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2931         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2932         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2933         (MASK_COLDFIRE): Formatting fixes.
2934         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2935         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2936         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2937         "_current_shared_library_a5_offset_".
2938         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2939         (MASK_ALL_CPU_BITS): New macro.
2940         (m68k_handle_option): New function.
2941         (override_options): Remove handling of m68k_library_id_string.
2942         * config/m68k/m68k.opt: New file.
2943         * config/m68k/ieee.opt: New file.
2944
2945 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
2946
2947         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2948         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2949         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2950         (TARGET_CXX): Adjust accordingly.
2951         * target.h (struct gcc_target): Remove epxort_class_data.  Add
2952         determine_class_data_visibility and class_data_always_comdat.
2953         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2954         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2955         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2956         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2957         (arm_cxx_determine_class_data_visibility): New.
2958         (arm_cxx_class_data_always_comdat): Likewise.
2959         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2960         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2961         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2962         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2963         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2964         Define.
2965
2966 2005-04-11  Devang Patel  <dpatel@apple.com>
2967
2968         * tree-data-ref.c (build_classic_dist_vector,
2969         compute_subscript_distance): Make externally visible.
2970         * tree-data-ref.h (build_classic_dist_vector,
2971         compute_subscript_distance): Same.
2972         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2973         Check distance vector against vectorization factor.
2974         (vect_analyze_loop): Determine vectorizaion factor before
2975         analyzing data dependences.
2976         * tree-vectorizer.c (loops_num): Make it externally visible and
2977         rename ...
2978         * tree-vectorizer.c (vect_loops_num): ... new name.
2979         * tree-vectorizer.h  (vect_loops_num): New.
2980
2981 2005-04-11  Devang Patel  <dpatel@apple.com>
2982
2983         * tree-vect-analyze.c (vect_analyze_operations): Check
2984         vectorizable codition.
2985         * tree-vect-transform.c (vect_is_simple_cond): New function.
2986         (vectorizable_condition): New function.
2987         (vect_transform_stmt): Handle condition_vec_info_type.
2988         * tree-vectorizer.h (enum stmt_vec_info_type): Add
2989         condition_vec_info_type.
2990         (vectorizable_condition): New.
2991
2992 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
2993
2994         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
2995         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
2996         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
2997
2998         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
2999         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
3000
3001         * dwarf2out.c (output_line_info): Don't try to dereference
3002         a NULL current_function_decl.
3003
3004         * config/t-slibgcc-darwin: Don't put shared libraries in
3005         directories other than $(slibdir).
3006         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
3007         OS uses for it.
3008
3009 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
3010
3011         PR tree-optimization/20933
3012         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
3013         logic to reject aliases between read-only and writable
3014         variables ...
3015         (may_alias_p): ... here.
3016         (get_tmt_for): Do not associate read-only tags to pointers
3017         whose pointed-to type is not read-only.
3018         * tree-ssa.c (verify_ssa): Check that memory stores have at
3019         least one V_MAY_DEF or V_MUST_DEF.
3020
3021 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3022
3023         PR/17092
3024         * configure.ac (gcc_UNLOCKED_FUNCS): New.
3025         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
3026         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
3027         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
3028         _unlocked function.
3029         (fwrite_unlocked): Fix prototype.
3030
3031         * configure, config.in: Regenerate.
3032
3033 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
3034
3035         * tree-ssa-loop-im.c: Include real.h.
3036         (determine_invariantness_stmt): If real division divisor is
3037         invariant and flag_unsafe_math_optimizations enabled, generate
3038         invariant reciprocal for hoisting.
3039         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
3040
3041 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
3042
3043         Fix PR tree-optimization/20926
3044
3045         * tree-ssa-alias.c (add_type_alias): Handle subvars.
3046
3047 2005-04-11  Devang Patel  <dpatel@apple.com>
3048
3049         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
3050         operand ordering.
3051
3052 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3053
3054         * fold-const.c (fold_binary_op_with_conditional_arg):
3055         use fold_buildN instead of "fold (buildN" in some
3056         non obvious places.
3057         (fold_unary): Likewise.
3058         (fold_binary): Likewise.
3059
3060 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
3061
3062         Fix PR tree-optimization/20612
3063         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
3064         handling
3065         (perfect_nestify): preheaderbb is *not* part of loop of the
3066         old destination.
3067
3068 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
3069
3070         * tree-ssa-alias.c (may_alias_p): If the variable
3071         is a global variable and the pointer is parameter
3072         and -fargument-noalias-global is used, then
3073         the pointer cannot alias the variable.
3074
3075 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
3076
3077         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
3078         * config/sparc/sparc.h: Likewise.
3079         * config/sparc/sparc.md: Likewise.
3080
3081 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
3082
3083         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
3084
3085         * tree-vrp.c: Fix a comment typo.
3086
3087 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
3088
3089         PR tree-optimization/20920
3090         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
3091         SSA_NAME flows through an abnormal edge.
3092         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
3093         through abnormal edges.
3094         (maybe_add_assert_expr): Likewise.
3095
3096 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
3097
3098         * config/s390/s390.h (s390_tune_string, s390_arch_string)
3099         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
3100         (s390_stack_size_string, s390_stack_guard_string, target_flags)
3101         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
3102         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
3103         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
3104         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
3105         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
3106         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
3107         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3108         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3109         (TARGET_HANDLE_OPTION): Likewise.
3110         (s390_tune): Initialize to PROCESSOR_max.
3111         (s390_arch_string): Make static.
3112         (s390_tune_string, s390_warn_framesize_string): Delete.
3113         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
3114         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
3115         (s390_handle_arch_option, s390_handle_option): New functions.
3116         (override_options): Remove parsing of option strings.
3117         * config/s390/s390.opt: New file.
3118
3119 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
3120
3121         * tree-complex.c (expand_vector_operations): Call
3122         update_stmt_if_modified.
3123
3124 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
3125
3126         * tree-vect-analyze (vect_determine_vectorization_factor):
3127         Do not use GET_MODE_NUNITS.
3128         * tree-vect-transform.c (vect_get_vec_def_for_operand,
3129         (vectorizable_load, vect_transform_loop): Likewise.
3130
3131 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
3132
3133         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
3134         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
3135         * optabs.h (enum optab_index): Add new OTI_lceil.
3136         (lceil_optab): Define corresponding macro.
3137         * optabs.c (init_optabs): Initialize lceil_optab.
3138         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
3139         and lceildi2 patterns.
3140         * builtins.c (expand_builtin_int_roundingfn): Handle
3141         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
3142         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
3143         BUILT_IN_LLCEIL{,F,L}.
3144         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
3145         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
3146         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
3147         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
3148         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
3149         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
3150         into lceil built-in function and (long long int)ceil{,f,l} into
3151         llceil built-in function.
3152         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
3153         BUILT_IN_LLCEIL.
3154
3155 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3156
3157         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
3158         zero.
3159
3160 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
3161
3162         * config/arm/arm.c: Fix a comment typo.
3163         * doc/tree-ssa.texi: Fix a typo.
3164
3165 2005-04-10  Steven Bosscher  <stevenb@suse.de>
3166
3167         * cselib.c (clear_table): Rename to cselib_clear_table.
3168         * cselib.h (cselib_clear_table): Add prototype.
3169         * gcse.c (gcse_main): Make 'f' argument unused.
3170         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
3171         of each basic block instead.
3172         (compute_sets, compute_hash_table_work): Likewise.
3173         (constprop_register): Change int 'alter_jumps' argument to bool.
3174         (do_local_cprop): Likewise.
3175         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
3176         the insn chain.  Explicitly clear the cselib tables after finishing
3177         one basic block.  Make sure there are no unterminated libcall blocks.
3178         Update compute_sets call.
3179         (cprop): Walk basic blocks instead of the insn chain.
3180         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
3181         Likewise.
3182         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
3183         one_cprop_pass calls.
3184
3185 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
3186
3187         * combine.c (combine_simplify_rtx): Remove a transformation that
3188         relies on an invalid assumption about rtl sign-extension semantics.
3189
3190 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
3191
3192         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
3193         to build_int_cst_wide.
3194
3195 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
3196
3197         PR target/20126
3198         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
3199         set the original address pseudo to the correct value before the
3200         original insn, if possible, and leave the insn alone, otherwise
3201         create a new pseudo, set it and replace it in the insn.
3202         * recog.c (validate_change_maybe_volatile): New.
3203         * recog.h (validate_change_maybe_volatile): Declare.
3204
3205 2005-04-09  Caroline Tice  <ctice@apple.com>
3206
3207         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
3208         Remove targetm.have_named_sections test.
3209         (fix_edges_for_rarely_executed_code): Likewise.
3210         (insert_section_boundary_note): Likewise.
3211         (reorder_basic_blocks): Check partitioning flag before calling
3212         verify_hot_cold_block_grouping.
3213         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
3214         the function struct rather than global variables.
3215         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
3216         (COLD_END_LABEL): Likewise
3217         (cold_text_section_label): New static global variable.
3218         (cold_end_label): Likewise.
3219         (dwarf2out_switch_text_section): Get hot/cold section labels from
3220         the function struct rather than global variables.
3221         (output_aranges): Use cold_text_section_label and cold_end_label;
3222         check partitioning flag before putting out delta.
3223         (output_ranges): Remove incorrect code attempting to use
3224         hot/cold labels.
3225         (output_line_info): Get cold section label from function struct.
3226         (add_location_or_const_value_attribute): Likewise.
3227         (get_subprogram_die): Get hot/cold section labels from function struct.
3228         (dwarf2out_var_location): Likewise.
3229         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
3230         write out cold_text_section_label if partition flag is set.
3231         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
3232         * function.h (struct function): Add new fields to point to hot/cold
3233         section labels: hot_section_label, cold_section_label,
3234         hot_section_end_label and cold_section_end_label; also add new field
3235         for cold text section name, unlikely_text_section_name.
3236         * opts.c (decode_options): Turn off partitioning flag if
3237         !targetm.have_named_sections.
3238         * output.h (hot_section_label): Remove.
3239         (hot_section_end_label): Remove.
3240         (cold_section_end_label): Remove.
3241         (unlikely_section_label): Remove.
3242         (unlikely_text_section_name): Remove.
3243         * passes.c (rest_of_handle_final):  Remove code that frees
3244         unlikely_text_section_name.
3245         * varasm.c (unlikely_section_label): Remove.
3246         (hot_section_label): Remove.
3247         (hot_section_end_label): Remove.
3248         (cold_section_end_label): Remove.
3249         (unlikely_text_section_name):  Remove.
3250         (initialize_cold_section_name): Modify to call
3251         targetm.strip_name_encoding; to store cold section name in current
3252         function struct, if it exists; and to only use the decl_section_name
3253         if flag_named_sections is true.
3254         (unlikely_text_section): Modify to get section name out of current
3255         function struct, if there is one; otherwise build it from
3256         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
3257         (in_unlikely_text_section): Likewise.
3258         (named_section): Modify to get/put cold section name in current function
3259         struct, if there is one.
3260         (function_section):  Change 'bool unlikely' to 'int reloc'; check
3261         targetm.have_named_sections before calling named_section.
3262         (current_function_section): Likewise.
3263         (assemble_start_function): Modify to get/put unlikely_text_section_name
3264         in current function struct; modify to get hot/cold section labels
3265         from function struct; initialize labels using
3266         ASM_GENERATE_INTERNAL_LABEL;
3267         test partitioning flag before writing out hot section label.
3268         (assemble_end_function): Test partitioning flag before writing out
3269         hot/cold section labels.
3270         (default_section_type_flags_1):  Modify to use array instead of
3271          char* for unlikely_text_section_name; set flags correctly for
3272          cold text section if there is not a current function decl.
3273
3274 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
3275
3276         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
3277         and TI_VA_LIST_FPR_COUNTER_FIELD.
3278         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
3279         * tree-pass.h (pass_stdarg): Add.
3280         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
3281         * tree-stdarg.c: New file.
3282         * tree-stdarg.h: New file.
3283         * Makefile.in (OBJS-common): Add tree-stdarg.o.
3284         (tree-stdarg.o): Add dependencies.
3285         * function.h (struct function): Add va_list_gpr_size and
3286         va_list_fpr_size fields.
3287         * function.c (allocate_struct_function): Initialize them.
3288         * target.h (struct gcc_target): Add stdarg_optimize_hook.
3289         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3290         (TARGET_INITIALIZER): Add it.
3291
3292         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
3293         va_list_{g,f}pr_counter_field.
3294         (ix86_setup_incoming_varargs): Don't do anything if reg_save
3295         area will not be used.  Only save registers that tree-stdarg.c
3296         detected they need saving.
3297         (ix86_va_start): Don't set up fields that won't be used.
3298
3299         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
3300         va_list_{g,f}pr_counter_field.
3301         (setup_incoming_varargs): Don't do anything if reg_save
3302         area will not be used.  Only save registers that tree-stdarg.c
3303         detected they need saving.
3304         (rs6000_va_start): Don't set up fields that won't be used.
3305
3306         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
3307         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
3308         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
3309         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
3310
3311 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
3312
3313         PR target/20795
3314         * config/i386/i386.c (construct_container): Pass empty aligned
3315         struct, union or class in memory.
3316
3317 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
3318
3319         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
3320         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
3321         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
3322         config/rs6000/predicates.md: Fix comment typos.
3323
3324         * sched-int.h (haifa_insn_data): Remove blockage and units.
3325         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
3326         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
3327         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
3328
3329 2005-04-09  Jan Hubicka  <jh@suse.cz>
3330             Steven Bosscher  <stevenb@suse.de>
3331
3332         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
3333         * cfgloop.c (get_loop_exit_edges): Likewise.
3334         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
3335         (unloop): Likewise.
3336         * loop-unroll.c (analyze_insns_in_loop): Likewise.
3337         * tree-cfg.c (dump_cfg_status): Likewise.
3338
3339 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
3340
3341         * config/rs6000/predicates.md (altivec_register_operand): Remove
3342         redundant match_code test.
3343         (gpc_reg_operand): Same.
3344         (cc_reg_operand): Same.
3345         (cc_reg_not_cr0_operand): Same.
3346
3347 2005-04-09  Jan Hubicka  <jh@suse.cz>
3348
3349         Forgotten hunk from my last merge patch:
3350         * final.c (output_addr_const): Do not call mark_referenced.
3351
3352 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
3353
3354         * doc/tree-ssa.texi: Add immediate use documentation.
3355
3356 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
3357
3358         * arm.c (FL_WBUF): Define.
3359         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
3360         (arm_is_6_or_7): Delete.
3361         (arm_tune_wbuf): New.
3362         (arm_override_options): Set arm_tune_wbuf.
3363         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
3364         (arm_is_6_or_7): Delete declaration.
3365         (arm_tune_wbuf): New declartion.
3366         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
3367         (model_wbuf): Derive from arm_tune_wbuf.
3368         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
3369         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
3370         (arm740t): Mark CPUs as having a write buffer.
3371
3372 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
3373
3374         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
3375         of 'const_double_operand' in operand 2 constraints.  Update enable
3376         condition.
3377
3378 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
3379
3380         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
3381         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
3382         * optabs.h (enum optab_index): Add new OTI_lfloor.
3383         (lfloor_optab): Define corresponding macro.
3384         * optabs.c (init_optabs): Initialize lfloor_optab.
3385         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
3386         and lfloordi2 patterns.
3387         * builtins.c (expand_builtin_int_roundingfn): New prototype.
3388         (expand_builtin_int_roundingfn): New function.
3389         (fold_builtin_int_roundingfn): New prototype.
3390         (fold_builtin_int_roundingfn): New function, renamed from
3391         fold_builtin_lround.
3392         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
3393         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
3394         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
3395         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
3396         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
3397         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
3398         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
3399         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
3400         into lfloor built-in function and (long long int)floor{,f,l} into
3401         llfloor built-in function.
3402         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
3403         BUILT_IN_LLFLOOR.
3404
3405 2005-04-08  Ian Lance Taylor  <ian@airs.com>
3406
3407         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
3408         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
3409         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
3410         (DO_COND, DO_BODY): Likewise.
3411         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
3412         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
3413         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
3414         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
3415         (build_continue_stmt, build_break_stmt): Don't declare.
3416         (c_do_switch_warnings): Update declaration.
3417         * c-gimplify.c (enum bc_t): Remove.
3418         (struct c_gimplify_ctx, ctxp): Remove.
3419         (push_context, pop_context): Remove static functions.
3420         (c_genericize): Don't call push_context or pop_context.
3421         (begin_bc_block, finish_bc_block): Remove static functions.
3422         (build_bc_goto): Likewise.
3423         (gimplify_c_loop): Likewise.
3424         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
3425         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
3426         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
3427         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
3428         * c-common.c (c_do_switch_warnings): Rename from
3429         c_do_switch_warnings_1.
3430         (c_do_switch_warnings) [old version]: Remove.
3431         (c_do_switch_expr_warnings): Remove.
3432         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
3433         function instead of c_do_switch_expr_warnings.
3434         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
3435         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
3436         * c-pretty-print.c (pp_c_statement): Likewise.
3437         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
3438
3439 2005-04-08  Devang Patel  <dpatel@apple.com>
3440
3441         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
3442         While selecting replacement condition pay attention to loop header.
3443
3444 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
3445
3446         Merge from tree-cleanup-branch: VRP, store CCP, store
3447             copy-prop, incremental SSA updating of FUD chains and
3448             newly exposed symbols.
3449
3450         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
3451         (OBJS-common): Add tree-vrp.o.
3452         (tree-vrp.o): New rule.
3453         * basic-block.h (nearest_common_dominator_for_set): Declare.
3454         * common.opt (ftree-store-ccp): New flag.
3455         (ftree-copy-prop): New flag.
3456         (ftree-vrp): New flag.
3457         (ftree-store-copy-prop): New flag.
3458         * dominance.c (nearest_common_dominator_for_set): New.
3459         * domwalk.c (walk_dominator_tree): Only traverse
3460         statements in blocks marked in walk_data->interesting_blocks.
3461         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
3462         * fold-const.c (fold): Handle ASSERT_EXPR.
3463         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
3464         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
3465         flag_tree_vrp at -O2.
3466         * timevar.def (TV_TREE_VRP): Define.
3467         (TV_TREE_COPY_PROP): Define.
3468         (TV_TREE_STORE_COPY_PROP): Define.
3469         (TV_TREE_SSA_INCREMENTAL): Define.
3470         (TV_TREE_STORE_CCP): Define.
3471         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
3472         to kill_redundant_phi_nodes from comment.
3473         (verify_expr): Handle ASSERT_EXPR.
3474         * tree-dfa.c (mark_new_vars_to_rename): Remove second
3475         argument.  Update all users.
3476         (mark_call_clobbered_vars_to_rename): Remove.  Update all
3477         users.
3478         * tree-flow-inline.h (unmodifiable_var_p): New.
3479         * tree-flow.h (enum value_range_type): Declare.
3480         (struct value_range_def): Declare.
3481         (value_range): Declare.
3482         (remove_all_phi_nodes_for): Remove.  Update all users.
3483         (find_phi_node_for): Declare.
3484         (add_type_alias): Declare.
3485         (count_uses_and_derefs): Declare.
3486         (kill_redundant_phi_nodes): Remove.
3487         (rewrite_into_ssa): Remove.
3488         (rewrite_def_def_chains): Remove.
3489         (update_ssa, register_new_name_mapping, create_new_def_for,
3490         need_ssa_update_p, name_registered_for_update_p,
3491         release_ssa_name_after_update_ssa, dump_repl_tbl,
3492         debug_repl_tbl, dump_names_replaced_by,
3493         debug_names_replaced_by, mark_sym_for_renaming,
3494         mark_set_for_renaming, get_current_def, set_current_def,
3495         get_value_range, dump_value_range, debug_value_range,
3496         dump_all_value_ranges, debug_all_value_ranges,
3497         expr_computes_nonzero, loop_depth_of_name,
3498         unmodifiable_var_p): Declare.
3499         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
3500         ASSERT_EXPR.
3501         * tree-into-ssa.c (block_defs_stack): Update comment.
3502         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
3503         syms_to_rename, names_to_release, repl_tbl,
3504         need_to_initialize_update_ssa_p, need_to_update_vops_p,
3505         need_to_replace_names_p): New locals.
3506         (NAME_SETS_GROWTH_FACTOR): Define.
3507         (struct repl_map_d): Declare.
3508         (struct mark_def_sites_global_data): Add field
3509         interesting_blocks.
3510         (enum rewrite_mode): Declare.
3511         (REGISTER_DEFS_IN_THIS_STMT): Define.
3512         (compute_global_livein): Use last_basic_block instead of
3513         n_basic_blocks.
3514         (set_def_block): Remove last argument.  Update all callers.
3515         (prepare_use_operand_for_rename): Remove.  Update all callers.
3516         (prepare_def_operand_for_rename): Remove.  Update all callers.
3517         (symbol_marked_for_renaming): New.
3518         (is_old_name): New.
3519         (is_new_name): New.
3520         (repl_map_hash): New.
3521         (repl_map_eq): New.
3522         (repl_map_free): New.
3523         (names_replaced_by): New.
3524         (add_to_repl_tbl): New.
3525         (add_new_name_mapping): New.
3526         (mark_def_sites): Assume that all the operands in the
3527         statement are in normal form.
3528         (find_idf): Assert that the block in the stack is valid.
3529         (get_default_def_for): New.
3530         (insert_phi_nodes_for): Add new argument 'update_p'.
3531         Add documentation.
3532         If update_p is true, add a new mapping between the LHS of
3533         each new PHI and the name that it replaces.
3534         (insert_phi_nodes_1): Only call find_idf if needed.
3535         (get_reaching_def): Call get_default_def_for.
3536         (rewrite_operand): Remove.
3537         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
3538         and REWRITE_THIS_STMT are false.
3539         Assume that all the operands in the statement are in
3540         normal form.
3541         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
3542         (rewrite_virtual_phi_arguments): Remove.
3543         (invalidate_name_tags): Remove.
3544         (register_new_update_single, register_new_update_set,
3545         rewrite_update_init_block, replace_use,
3546         rewrite_update_fini_block, rewrite_update_stmt,
3547         rewrite_update_phi_arguments): New.
3548         rewrite_blocks): Remove argument 'fix_virtual_phis'.
3549         Add arguments 'entry', 'what' and 'blocks'.
3550         Initialize the dominator walker according to 'what' and
3551         'blocks'.
3552         Start the dominator walk at 'entry'.
3553         (mark_def_site_blocks): Add argument 'interesting_blocks'.
3554         Use it to configure the dominator walker.
3555         (rewrite_into_ssa): Remove argument 'all'.
3556         Make internal.
3557         (rewrite_all_into_ssa): Remove.
3558         (rewrite_def_def_chains): Remove.
3559         (mark_def_interesting, mark_use_interesting,
3560         prepare_phi_args_for_update, prepare_block_for_update,
3561         prepare_def_site_for, prepare_def_sites,
3562         dump_names_replaced_by, debug_names_replaced_by,
3563         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
3564         delete_update_ssa, create_new_def_for,
3565         register_new_name_mapping, mark_sym_for_renaming,
3566         mark_set_for_renaming, need_ssa_update_p,
3567         name_registered_for_update_p, ssa_names_to_replace,
3568         release_ssa_name_after_update_ssa,
3569         insert_updated_phi_nodes_for, update_ssa): New.
3570         * tree-loop-linear.c (linear_transform_loops): Call
3571         update_ssa instead of rewrite_into_ssa.
3572         * tree-optimize.c (vars_to_rename): Remove.
3573         Update all users.
3574         (init_tree_optimization_passes): Replace
3575         pass_redundant_phi with pass_copy_prop.
3576         Add pass_vrp.
3577         Replace pass_ccp with pass_store_ccp.
3578         Add pass_store_copy_prop after pass_store_ccp.
3579         (execute_todo): If the TODO_ flags don't include updating
3580         the SSA form, assert that it does not need to be updated.
3581         Call update_ssa instead of rewrite_into_ssa and
3582         rewrite_def_def_chains.
3583         If TODO_verify_loops is set, call verify_loop_closed_ssa.
3584         (tree_rest_of_compilation):
3585         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
3586         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
3587         TODO_cleanup_cfg): Renumber.
3588         (TODO_verify_loops, TODO_update_ssa,
3589         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
3590         TODO_update_ssa_only_virtuals): Define.
3591         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
3592         Declare.
3593         * tree-phinodes.c (make_phi_node): Update documentation.
3594         (remove_all_phi_nodes_for): Remove.
3595         (find_phi_node_for): New.
3596         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
3597         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
3598         (interpret_rhs_modify_expr): Likewise.
3599         * tree-sra.c (decide_instantiations): Mark all symbols in
3600         SRA_CANDIDATES for renaming.
3601         (mark_all_v_defs_1): Rename from mark_all_v_defs.
3602         (mark_all_v_defs): New function.  Update all users to call it
3603         with the whole list of scalarized statements, not just the
3604         first one.
3605         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
3606         (compute_flow_insensitive_aliasing): If the tag is
3607         unmodifiable and the variable isn't or vice-versa, don't
3608         make them alias of each other.
3609         (setup_pointers_and_addressables): If the type tag for
3610         VAR is about to change, mark the old one for renaming.
3611         (add_type_alias): New.
3612         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
3613         (ccp_lattice_t): Rename from latticevalue.
3614         (value): Remove.  Update all users.
3615         (const_val): New local variable.
3616         (do_store_ccp): New local variable.
3617         (dump_lattice_value): Handle UNINITIALIZED.
3618         (debug_lattice_value): New.
3619         (get_default_value): Re-write.
3620         (set_lattice_value): Re-write.
3621         (def_to_varying): Remove.  Update all users.
3622         (likely_value): Return VARYING for statements that make
3623         stores when STORE_CCP is false.
3624         Return VARYING for any statement other than MODIFY_EXPR,
3625         COND_EXPR and SWITCH_EXPR.
3626         (ccp_initialize): Re-write.
3627         (replace_uses_in, replace_vuse_in, substitute_and_fold):
3628         Move to tree-ssa-propagate.c.
3629         (ccp_lattice_meet): Handle memory stores when
3630         DO_STORE_CCP is true.
3631         (ccp_visit_phi_node): Likewise.
3632         (ccp_fold): Likewise.
3633         (evaluate_stmt): Likewise.
3634         (visit_assignment): Likewise.
3635         (ccp_visit_stmt): Likewise.
3636         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
3637         into DO_STORE_CCP.
3638         (do_ssa_ccp): New.
3639         (pass_ccp): Use it.
3640         (do_ssa_store_ccp): New.
3641         (gate_store_ccp): New.
3642         (pass_store_ccp): Declare.
3643         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
3644         (may_propagate_copy): Reformat.
3645         Don't abort if ORIG is a virtual and DEST isn't.
3646         If NEW does not have alias information but DEST does,
3647         copy it.
3648         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
3649         copy_prop_kind, which_copy_prop): Declare.
3650         (stmt_may_generate_copy, get_copy_of_val,
3651         get_last_copy_of, set_copy_of_val, dump_copy_of,
3652         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
3653         copy_prop_visit_stmt, copy_prop_visit_phi_node,
3654         init_copy_prop, fini_copy_prop, execute_copy_prop,
3655         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
3656         store_copy_prop): New.
3657         (pass_copy_prop, pass_store_copy_prop): Declare.
3658         * tree-ssa-dom.c (struct opt_stats_d): Add fields
3659         'num_const_prop' and 'num_copy_prop'.
3660         (cprop_operand): Update them.
3661         (dump_dominator_optimization_stats): Dump them.
3662         (tree_ssa_dominator_optimize): Call update_ssa instead of
3663         rewrite_into_ssa.
3664         (loop_depth_of_name): Declare extern.
3665         (simplify_cond_and_lookup_avail_expr): Guard against NULL
3666         values for LOW or HIGH.
3667         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
3668         (record_equivalences_from_stmt): Call expr_computes_nonzero.
3669         (cprop_operand): Only propagate if VAL != OP.
3670         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
3671         statement for renaming.
3672         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
3673         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
3674         add_type_alias if necessary.
3675         Call mark_new_vars_to_rename.
3676         (tree_ssa_iv_optimize): If new symbols need to be renamed,
3677         mark every statement updated, call update_ssa and
3678         rewrite_into_loop_closed_ssa.
3679         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
3680         from LIVEIN if VAR is a virtual.
3681         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
3682         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
3683         (get_call_expr_operands): Reformat statement.
3684         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
3685         symbols.
3686         * tree-ssa-propagate.c (ssa_prop_init): Initialize
3687         SSA_NAME_VALUE for every name.
3688         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3689         get_value_loaded_by): New.
3690         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
3691         substitute_and_fold): Move from tree-ssa-ccp.c.
3692         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
3693         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3694         get_value_loaded_by, replace_uses_in, substitute_and_fold):
3695         Declare.
3696         * tree-ssa.c (verify_use): Fix error message.
3697         (propagate_into_addr, replace_immediate_uses, get_eq_name,
3698         check_phi_redundancy, kill_redundant_phi_nodes,
3699         pass_redundant_phi): Remove.  Update all users.
3700         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3701         add_type_alias, if necessary.
3702         * tree-vectorizer.h (struct _stmt_vect_info): Update
3703         documentation for field 'memtag'.
3704         * tree-vrp.c: New file.
3705         * tree.def (ASSERT_EXPR): Define.
3706         * tree.h (ASSERT_EXPR_VAR): Define.
3707         (ASSERT_EXPR_COND): Define.
3708         (SSA_NAME_VALUE_RANGE): Define.
3709         (struct tree_ssa_name): Add field 'value_range'.
3710         (PHI_REWRITTEN): Remove.
3711         (struct tree_phi_node): Remove field 'rewritten'.
3712         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
3713         -ftree-store-copy-prop): Document.
3714         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
3715         Document usage of update_ssa.
3716
3717 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
3718
3719         PR target/20814
3720         * config/rs6000/predicates.md (altivec_register_operand): Accept
3721         SUBREG.
3722         (and64_operand): Do not limit CONST_INT to mask64_operand.
3723         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
3724         (and_operand): Do not limit CONST_INT to mask_operand.
3725
3726 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
3727
3728         PR rtl-optimization/20466
3729         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
3730         for overlap of the address of each list member.
3731         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
3732
3733 2005-04-08  Mike Stump  <mrs@apple.com>
3734
3735         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
3736
3737         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
3738         instead of 4.
3739
3740 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
3741
3742         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
3743
3744         * function.c (push_function_context_to): Don't set
3745         contains_functions.
3746         * function.h (function): Remove contains_functions.
3747         (current_function_contains_functions): Remove.
3748
3749         * function.h (function): Remove instrument_entry_exit.
3750         (current_function_instrument_entry_exit): Remove.
3751
3752         * function.h (nonlocal_labels): Remove.
3753
3754         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
3755
3756         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
3757         (check_attr_value, write_attr_get, write_expr_attr_cache,
3758         find_attr, make_internal_attr): Don't reference negative_ok or
3759         unsigned_p.
3760         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
3761         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
3762         (ATTR_STATIC): Adjust the value.
3763
3764         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
3765
3766 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
3767
3768         * config/s390/tpf.h (ASM_SPEC): Define.
3769
3770 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
3771
3772         * tree-flow.h: Remove the prototype for
3773         redirect_immediate_uses.
3774         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
3775
3776 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
3777
3778         * arm.c (arm_const_double_by_parts): New function.
3779         * arm-protos.h (arm_const_double_by_parts): Add prototype.
3780         * arm.md (define_split for 64-bit constants): Add another one.
3781
3782 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
3783
3784         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
3785
3786 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3787
3788         * system.h: Revert last change.
3789
3790 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
3791
3792         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
3793         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
3794         (TARGET_SWITCHES): Delete.
3795         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
3796         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
3797         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
3798         * config/xtensa/xtensa.opt: New file.
3799
3800 2005-04-08  Ben Elliston  <bje@au.ibm.com>
3801
3802         * config/fp-bit.c: Include L_mul_tf in #endif comment.
3803         * config/fp-bit.h: Tidy comments.
3804
3805 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3806
3807         * system.h: Poison PARAMS.
3808
3809 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
3810
3811         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
3812         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
3813         (TARGET_SWITCHES): Delete.
3814         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3815         * config/vax/vax.opt: New file.
3816
3817 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
3818
3819         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
3820
3821 2005-04-07  Ian Lance Taylor  <ian@airs.com>
3822
3823         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
3824         define.
3825         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
3826         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
3827         Likewise.
3828
3829 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
3830
3831         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
3832         all immediate uses in PHI nodes.
3833
3834 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
3835
3836         * arm.c (arm_const_double_inline_cost): Handle any constant by
3837         using gen_lowpart and gen_highpart_mode.
3838         (note_invalid_constants): All constants in an RTX with a constraint
3839         that permits memory are now pushed to the constant pool.
3840         (output_move_double): Delete code to handle reg to reg and
3841         constant to reg moves.
3842         (const_double_needs_minipool, output_mov_immediate): Delete.
3843         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
3844         CONST_INT and CONST_VECTOR.
3845         * arm.md (ANY64): New mode macro.
3846         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
3847         (movdf_soft_insn): Split reg-reg and const-reg moves.
3848         (split patterns for 64-bit constant and register moves): New.
3849         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
3850         (cirrus_movdf_hard_insn): Likewise.
3851         * fpa.md (movdf_fpa): Likewise.
3852         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
3853         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
3854         constraints.
3855         (movv2si_internal_2): Likewise.
3856         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
3857         (movdf_vfp): Likewise.
3858         * arm-protos.h (output_mov_immediate): Delete prototype.
3859
3860 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
3861
3862         PR target/20093
3863         * simplify-rtx.c (simplify_unary_operation_1): Check
3864         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
3865
3866 2005-04-06  James E Wilson  <wilson@specifixinc.com>
3867
3868         PR target/20717
3869         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
3870         ADDR_EXPR.
3871
3872 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
3873
3874         * coverage.h (GCOV_TYPE_NODE): Delete.
3875         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
3876         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
3877         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
3878         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
3879         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
3880
3881 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
3882
3883         PR other/20792
3884         * Makefile.in (gcc.pot): Remove options.c dependency.
3885         * optc-gen.awk: Don't quote help strings with N_().
3886
3887 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
3888
3889         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
3890         the function returns a pointer type.
3891
3892 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
3893
3894         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
3895         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
3896         * doc/invoke.texi: Documnet salias-max-implicit-fields.
3897         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
3898         explicit_uses members.
3899         (get_or_create_used_part_for): Initialize new fields.
3900         (fieldoff_compare): New function.
3901         (create_overlap_variables_for): Count number of fields, use
3902         heuristic to determine whether to create subvars for vars with
3903         only implicit uses.
3904         Sort the field list by offset and avoid creating duplicate SFT's.
3905
3906 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
3907
3908         * c.opt (-F): Remove trailing whitespace from help string.
3909         (-finput-charset): Use a tab to separate the switch name and help
3910         string.
3911         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
3912         (-ftree-vectorizer-verbose): Likewise.
3913
3914 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
3915
3916         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
3917         a PHI argument where a use occurs instead of all PHI arguments.
3918
3919 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
3920
3921         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
3922         scope.
3923
3924 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
3925
3926         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
3927         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
3928         config/bfin/bfin.h: Fix comment typos.
3929
3930 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
3931
3932         * doc/install.texi: Update the URL for Jacks.
3933         * doc/sourcebuild.texi: Likewise.
3934
3935 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3936
3937         PR target/17245
3938         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
3939         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
3940
3941 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
3942
3943         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
3944
3945 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
3946
3947         * config/v850/v850-protos.h (override_options): Delete.
3948         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)