OSDN Git Service

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