OSDN Git Service

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