OSDN Git Service

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