OSDN Git Service

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